linux usb 设备重新挂载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux usb 设备重新挂载相关的知识,希望对你有一定的参考价值。

我有一个linux下运行的nas设备,用的usb无线网卡连路由,但是这个usb无线网卡总是过一会就死了,没有响应,重启机器就好了,或者从新拔插一下就好了,问一下怎么能用linux命令实现类似拔插的效果
用umount可能没用,我还用eject,但是只是把usb网卡卸载了,怎么能在装载呢

用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命令来卸载
参考技术A 用crontab

* */1 * * * /etc/init.d/network restart;

每隔一小时重启一下网络服务。

或插拔USB.

* */1 * * * "umount /dev/hdd1;mount /dev/hdd1 /mnt/usb"
参考技术B mount 命令挂载,

树莓派-USB存储设备自动挂载

简单介绍实现命令行下USB存储设备自动挂载的方法,Linux gnome/kde窗口环境下有移动存储的管理程序,可以实现自动挂载移动存储设备,但是在命令行下 通常需要用mount命令手动挂载USB存储设备。

通过给linux下的设备管理服务udev添加规则配置文件,可以实现命令行下USB存储设备自动挂载。

输入命令:

sudo vim /etc/udev/rules.d/10-usbstorage.rules

写入如下脚本到编辑窗口

KERNEL!="sd*", GOTO="mnt_by_label_auto_mount_end"
SUBSYSTEM!="block",GOTO="mnt_by_label_auto_mount_end"
IMPORT{program}="/sbin/blkid -o udev -p %N"
ENV{ID_FS_TYPE}=="", GOTO="mnt_by_label_auto_mount_end"
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="Untitled-%k"
ACTION=="add", ENV{mount_options}="relatime,sync"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="iocharset=utf8,umask=000"
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", ENV{mount_options}="iocharset=utf8,umask=000"
ACTION=="add", RUN+="/bin/mkdir -p /mnt/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /mnt/%E{dir_name}"
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /mnt/%E{dir_name}", RUN+="/bin/rmdir /mnt/%E{dir_name}" 
LABEL="mnt_by_label_auto_mount_end"

保存退出,再次插入usb存储设备会自动挂载到/mnt目录下面的目录 并且支持utf8格式的中文文件名。

 

以上是关于linux usb 设备重新挂载的主要内容,如果未能解决你的问题,请参考以下文章

linux设备重启后硬盘没显示,可能需要重新插拔

linux 虚拟机上挂载usb (fat32)

如何在 Linux 下格式化 USB 设备

有没有办法保存 USB 设备,以便在重新插入后可以防止重新枚举?

CentOS7 文件系统自动挂载配置

《Linux学习并不难》文件系统管理:设置开机自动挂载Linux文件系统