在本文中,我们将了解如何在 Linux 系统上安装 USB 驱动器以访问其数据。Linux 可以临时挂载我们插入的 USB 驱动器,或者永久挂载我们不打算移除的存储设备。
概述
本文将阐述如何使用终端和 shell 命令行在 Linux 系统中挂载 USB 驱动器。这允许您将任何文件系统的 USB 驱动器挂载到系统上的某个挂载点。下面将演示在 Linux 系统上挂载 U 盘的整个过程。
解决方案
Step1 检测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 驱动器。准备就绪后,记下您要挂载的分区的块设备名称。例如,在我们的例子中,将使用/dev/sdc1FAT32 文件系统。
Step 2 创建挂载点
在我们能够使用mount命令挂载 USB 分区之前,我们需要创建一个挂载点。挂载点可以是主机文件系统中的任何新目录或现有目录。使用mkdir命令创建一个新的挂载点目录,用于挂载你的 USB 设备:
Step3 安装 USB 驱动器
在此阶段,我们已准备好将 USB 分区挂载/dev/sdc1到/media/usb-drive挂载点:
# mount /dev/sdc1 /media/usb-drive/
要检查您的 U 盘是否已正确挂载,请再次执行不带任何参数的mount命令grep并用于搜索 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
如果上面的挂载命令没有产生输出,则您的 USB 分区没有挂载。或者,仔细检查您是否在上述命令中使用了正确的块设备名称。
Step 4 访问 USB 数据
如果一切顺利,我们可以通过导航到我们之前创建的挂载点来访问我们的 USB 数据/media/usb-drive:
USB卸载
在我们能够卸载我们的 USB 分区之前,我们需要确保没有进程正在使用或访问我们的挂载点目录,否则我们将收到类似于以下的错误消息:
mount: /media/usb-drive: target is busy
(在某些情况下,有关
使用该设备的进程的有用信息可以通过 lsof(8) 或 fuser(1) 找到。)
关闭您的 shell 或离开 USB 挂载点并执行以下linux 命令来卸载您的 USB 驱动器:
# umount /media/usb-drive
Linux 中的永久 USB 挂载
为了在重启后在 Linux 中永久挂载 USB,请将以下行添加到您的/etc/fstab配置文件中:
/dev/sdc1 /media/usb-drive vfat defaults 0 0
对于任何其他文件系统类型,只需设置正确的类型。例如,以下命令将使用 NTFS 文件系统挂载 USB 驱动程序:
/dev/sdc1 /media/usb-drive ntfs defaults 0 0
注意事项:使用块设备名称引用 USB 驱动器/etc/fstab可能无法为您提供最佳的长期解决方案。根据 Linux 系统上可用的 USB 驱动器的数量,块设备名称可能会更改。尽管它作为临时解决方案可能对您很有用,但您最好使用 UUID 原始块设备名称,如下所述。
# ls -l /dev/disk/by-uuid/*
lrwxrwxrwx 1 root root 10 Mar 27 23:38 /dev/disk/by-uuid/2016-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命令输出,我们可以看到属于块设备的 UUID因此我们的挂载行将是sdc1:8765-4321/etc/fstab
/dev/disk/by-uuid/8765-4321 /media/usb-drive vfat defaults 0 0
运行mount -a命令挂载所有尚未挂载的设备。
小结
在本文中,我们了解了如何在 Linux 系统上安装 USB 驱动器以访问其数据。Linux 可以临时挂载我们插入的 USB 驱动器,或者永久挂载我们不打算移除的存储设备。无论你有一个小拇指驱动器还是一个巨大的外部驱动器,本文的命令应该能够帮助你安装USB 存储设备。