linux shell学习

Linux下如何mount你的usb硬盘

首先需要在Linux系统里检测到USB硬盘

将USB设备插入USB端口后,Linux系统将一个新的块设备添加到/dev/目录中。这个阶段还无法使用该设备,因为在获取或存储任何数据之前需要先清除USB文件系统。
查找块设备文件的名称,可以运行fdisk -l命令。

# fdisk -l
OR
$ sudo fdisk -l

执行上述命令后,输出

Disk /dev/sdc: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdc1 * 8192 15523839 15515648 7.4G b W95 FAT32

上面的输出很可能会列出连接到系统的多个磁盘。根据其大小和文件系统查找USB驱动器。准备就绪后,记下要安装的分区的块设备名称。例如, FAT32文件系统的/dev/sdc1

建立 mount 的挂载点

在能够使用mount命令挂载USB分区之前,我们需要创建一个挂载点。挂载点可以是主机文件系统中的任何新目录或现有目录。使用mkdir命令创建一个新的挂载点目录来挂载USB设备:

# mkdir /media/usb-drive

挂载USB磁盘

我们准备将USB分区挂载/dev/sdc1到/media/usb-drive挂载点:

# mount /dev/sdc1 /media/usb-drive/

检查USB驱动器是否已正确安装:

# mount | grep sdc1

/dev/sdc1 on /media/usb-drive type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=utf8,shortname=mixed,errors=remount-ro
如果以上mount命令未产生任何输出,就代表没有mount好USB分区,肯定哪里出错了。

如何访问USB设备的数据?

如果一切顺利,我们cd到先前创建的安装点即可访问USB数据/media/usb-drive:

# cd /media/usb-drive

如何卸载USB磁盘?

在我们能够卸载USB分区之前,我们需要确保没有进程正在使用或访问我们的挂载点目录,否则将收到类似于以下内容的错误消息:

umount: /media/usb-drive: target is busy
(In some cases useful info about processes that
use the device is found by lsof(8) or fuser(1).)

关闭shell或离开USB挂载点并执行以下linux命令卸载USB驱动器:

# umount /media/usb-drive

如何永久Mount磁盘?

为了在重启后永久安装USB驱动器,请将以下行添加到/etc/fstab配置文件中:
/dev/sdc1 /media/usb-drive vfat defaults 0 0
但是,如果在Linux系统中添加或删除其他驱动器,则上述安装方法可能会失败。因此,建议使用分区UUID而不是原始块设备名称。为此,请首先找到您的USB驱动器的UUID:

# ls -l /dev/disk/by-uuid/*
lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/2020-08-30-11-31-31-00 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/3eccfd4e-bd8b-4b5f-9fd8-4414a32ac289 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/4082248b-809d-4e63-93d2-56b5f13c875f -> ../../sda5
lrwxrwxrwx 1 root root 10 Mar 28 01:09 /dev/disk/by-uuid/8765-4321 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/E6E3-F2A2 -> ../../sdb2

根据上面的ls命令输出,我们可以看到属于块设备的UUIDsdc1是8765-4321,在文件/etc/fstab加一行:

/dev/disk/by-uuid/8765-4321 /media/usb-drive vfat 0 0

运行mount -a命令安装所有尚未安装的设备。

# mount -a