linux中挂载的USB设备会自动更换名称,怎么解决
答案:2 悬赏:70
解决时间 2021-03-18 04:01
- 提问者网友:娇妻失忆
- 2021-03-17 03:31
linux中挂载的USB设备会自动更换名称,怎么解决
最佳答案
- 二级知识专家网友:兮沫♡晨曦
- 2021-03-17 04:31
具体的操作过程如下:
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一样的.
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一样的.
全部回答
- 1楼网友:我的任性你不懂
- 2021-03-17 05:46
用crontab
* */1 * * * /etc/init.d/network restart;
每隔一小时重启一下网络服务。
或插拔usb.
* */1 * * * "umount /dev/hdd1;mount /dev/hdd1 /mnt/usb"
通常,在linux系统中,如果要使用硬盘、光盘、软盘或u盘等存储设备, 一般先要挂载(但有些高版本的linux可以做到自动识别和加载设备). 当存储设备挂载完成后就可以像目录一样进行访问了.
在挂载之前需要确定下列三种信息:
*) 要挂载对象的文件系统类型;
*) 要挂载对象的设备名称;
*) 确定挂载点.
1) 获得挂载对象的文件系统类型:
cat /proc/filesystems 可以查看当前linux系统支持的文件类型:
vfat : windows常用的fat32文件系统,兼容fat16系统.
hpfs : os2文件系统.
ext3 : linux文件系统
iso9660 : 光盘文件系统
2) 确定设备名称:
在linux下设备名称通常都在/dev目录下,这些设备的命名都是有规则的,比如: /dev/hda1
"hd"即: hard disk,代表ide硬盘; 'hd'同样也可以用'sd'代替,即scsi,代表scsi硬盘; a代表第一个设备,如果pc机上可以连接4块ide硬盘, 则设备名称依次为hda,hdb,hdc,hdd. 如果是scsi硬盘, 则设备名称为sda.sdb,sdc,sdd.
数字1表示a硬盘的第一个分区,hda2,代表硬盘的第二个分区.
查看/var/log/messages文件,可找出linux辨认出来的设备代号.
3) 确定挂载点:
linux系统中有一个/mnt目录,专门用作挂载点目录:
挂载光盘的例子:
$mount -t iso9660 /dev/cdrom /mnt/cdrom
$umount /mnt/cdrom
挂载软盘的例子:
$mount /dev/fd0 /mnt/floppy
$umount /mnt/floppy
挂载u盘的例子:
$fdisk -l查看外挂闪存的设备号,一般为/dev/sda1
$mount /dev/sda1 /mnt/usb
$umount /mnt/usb
挂载外挂硬盘分区:
$fdisk -l 查看外挂的硬盘分区设备号,假设为: /dev/hda1
$mount -t vfat /dev/hda1 /mnt/vfat
$umount /mnt/vfat
所以,根据上面流程思想,我们现在来看看如何把自己的usb(u盘设备挂载到系统中来),从而可以自由访问u盘里边的文件。看了以下的操作,你会发现操作命令并不是那么的复杂的。此次测试是在vmware+redhat9.0 上测试的。
首先要查看usb设备的名称。 我们在terminal终端用这个命令: dmesg|more 查看系统相关信息。dmesg用来显示开机信息,kernel会将开机信息存储在ring buffer中。若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里边。
得到usb设备的设备名称为 sdb
然后在/mnt/下建立一个usb的文件夹:
mkdir /mnt/usb
最后要用mount命令来挂载sdb(也就是u盘)里边的东西了。
mount /dev/sdb /mnt/usb
其实mount 中并不无其他参数。 因为mount里可以自动识别其中的文件系统。
这样在/mnt/usb下即可以看到里边的文件了。
当卸载usb时,需用umount命令来卸载
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯