linux中挂载的USB设备会自动更换名称,怎么解决

linux中挂载的USB设备会自动更换名称,怎么解决,第1张

具体的 *** 作过程如下:

1.接入usb设备,然后运行命令:devlabel add -d /dev/sda1 -s /dev/usbdevice (--automount 可去掉!)

/dev/sda1是usb设备名称,具体可以用fdisk -l查看,如果fdisk不能显示,可以用一个万能的方法: (#表示0,1,2,3....)

检测/proc/scsi/usb-storage-#是否存在

如果存在,检测/proc/scsi/usb-storage-#/#是否存在

如果存在,检查文件/proc/scsi/usb-storage-#/#中最后一行Attach:是否是YES

如果是YES,那么 0 = sda, 1=sdb, 2=sdc

/dev/usbdevice是要使用的用户定义的设备名称,这个可以放在任意的目录中,名字大家自己定

automount指定:在 devlabel 重新启动时,如果 /etc/fstab 中有这个设备项目而且这个设备项目存在(找到了带有同一 UUID 的设备),那么就自动挂载这个项目。

2.建一个目录/mnt/usb

3.打开/etc/fstab,在里面添加一行:/dev/usbdevice /mnt/usb auto noauto,owner 0 0

这时就OK了,以后插入usb存储设备时就会自动挂载到/mnt/usb目录下了(前提是要有这个目录)

解决思想:当某个 USB 设备被插入,hotplug 就会运行 updfstab 程序。如果这个usb贮存设备存在,该程序会为它在 /etc/fstab 中添加一项记录。所添加的这一行包含实际设备名称(如 /dev/sda1)和 kudzu 选项。kudzu 选项通知 Kudzu工具如果设备不存在就删除这一行。因为这一行是 devlabel 所需的,你必须删除 kudzu 选项才能使这一行被保留在文件内。你还需把设备名称改成 devlabel 设备名称(如 /dev/usbdevice),并创建挂载点(如 /mnt/usb)。

所以修改后的就是上面的第3步.

最后,还有一种最最简单的方法,也是我现在使用的方法哈:

可以直接打开/etc/hotplug/usb.agent ,在里面找到"add)",在其中的

if [ -x /sbin/devlabel ]then

/sbin/devlabel restart

fi

后面加上

[ -x /usr/sbin/udisk ]&&/usr/sbin/udisk

其中udisk是一个简单的挂载脚本:

#! /bin/sh

mount|grep /mnt/usb

if [ "$?" = "0" ]then

umount /mnt/usb

rmdir /mnt/usb

else

mkdir /mnt/usb

mount /dev/sda1 /mnt/usb

fi

这样做的目的是:当usb设备接入时,hotplug程序就会自动运行,在运行脚本中加入一个挂载脚本,不就一切OK了么~~

不过上面的讨论都只能用于挂载,卸载还是必须用umount(选第3种办法的直接打udisk),这是同WIN一样的.

Linux下手动设置Windows磁盘挂载点

我的笔记本是同时装了Linux系统和Windows系统。Linux系统启动后,Windows磁盘就会自动挂载在/media目录下,而且挂载点的名称又长又难记。例如,windows系统C盘挂载后名称变为FE6C0C5C6C0C1257。如果windows系统总共有好几个盘,那么挂载后,就是一堆字符串,很难分辨到底各自对应哪个盘。于是,我决定手动修改磁盘挂载点。

首先,执行命令“sudo fdisk -l”,显示系统存在的各个磁盘分区信息如下所示:

Device Boot Start End Blocks Id System

/dev/sda1 * 1 2150 17269843 7 HPFS/NTFS

/dev/sda2 2151 14593 99948367 5 Extended

/dev/sda5 2151 4802 21302158+ 7 HPFS/NTFS

/dev/sda6 7414 14593 57673318+ 7 HPFS/NTFS

/dev/sda7 4803 5051 1998848 82 Linux swap / Solaris

/dev/sda8 5052 7413 18971648 83 Linux

由于我的windows系统总共有3个盘:C盘,D盘,E盘,且都是NTFS格式,所以“/dev/sda1”应该对应C盘,“/dev/sda5”应该对应D盘,“/dev/sda6”应该对应E盘。C盘是windows *** 作系统,一般不需要访问。只需要重新挂载D盘和E盘即可。于是我使用mkdir命令在"/home/cary"(cary为我的用户名)目录下创建了programFiles和myDocuments两个目录分别作为D盘和E盘的挂载点(实际上这两个目录的名字是可以随意命名的)。

执行“sudo gedit /etc/fstab”打开fstab文件。参照文件中提示的格式,在文件最后添加下面两行语句:

/dev/sda5 /home/cary/programFiles ntfs defaults,user,rw 0 0

/dev/sda6 /home/cary/myDocuments ntfs defaults,user,rw 0 0

保存该文件后,先执行"sudo umount -a"命令卸载各磁盘,再执行“sudo mount -a”重新挂载所有磁盘。则D盘和E盘就都挂载在指定路径下了。通过“~/programFiles”和“~/myDocuments”两个路径就能访问。

下面对fstab文件作简单介绍。

文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过mount /directoryname命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。

fstab文件格式示例如下:

fs_spec fs_file fs_type fs_options fs_dump fs_pass

/dev/hda1 / ext2 defaults 1 1

fs_spec - 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:IDE设备一般描述为/dev/hdaXN,X是IDE设备通道 (a, b, or c),N代表分区号;SCSI设备一描述为/dev/sdaXN。

fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。

fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的`常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等。

fs_options - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用defaults就可以满足需要。其他常见的选项包括:rw 以读写模式加载该文件系统;user 允许普通用户加载该文件系统。

fs_dump - 该选项被dump命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0

fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统/对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0

那个是设备名,是启动时由udev自动创建的链接,改了也没用,我的做法是改/etc/fstab,自己创建几个文件夹,文件夹的名字好改吧?然后去改fstab,将挂载点改成自己创建的文件夹,比如说/windows/C、/windows/D……

然后系统启动的时候就自动挂载了,你去访问自己创建的文件夹就是访问那些设备。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8429599.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存