在 CentOS 这类基于 Linux 的操作系统中,所有硬件设备,包括硬盘、U盘、光盘等,都被视为文件,要访问这些设备上的数据,必须将它们“挂载”到文件系统树中的某个目录下。/mnt(mount的缩写)目录是系统预设的、专门用于临时挂载设备的标准位置,本文将详细介绍如何在 CentOS 系统中手动挂载和卸载 USB 存储设备以及光盘,并探讨如何实现开机自动挂载。

准备工作:识别设备
在挂载任何设备之前,首要任务是识别其在系统中的设备名称,CentOS 提供了多种命令来完成这项工作,lsblk 是最直观和推荐使用的工具。
以 root 用户或使用 sudo 权限执行以下命令:
lsblk
该命令会以树状结构列出所有块设备,输出结果可能如下所示:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238.5G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
└─sda2 8:2 0 238G 0 part /
sdb 8:16 1 14.9G 0 disk
└─sdb1 8:17 1 14.9G 0 part
sr0 11:0 1 1024M 0 rom 从输出中我们可以解读:
sda是系统的主要硬盘。sdb是一个可移除设备(RM列为1),大小约 15GB,这通常就是我们插入的 USB 设备,它包含一个分区sdb1,我们将要挂载的就是这个分区。sr0是一个只读存储设备(rom),通常代表光盘驱动器。
另一个传统但同样有效的命令是 fdisk -l,它会提供更详细的磁盘分区信息,但对于快速识别,lsblk 更为便捷。
挂载 USB 存储设备
识别出 USB 设备的分区名称(/dev/sdb1)后,即可开始挂载。
第一步:创建挂载点
虽然可以直接挂载到 /mnt 目录,但为了清晰和管理方便,建议为其创建一个专用的子目录。
sudo mkdir /mnt/myusb
第二步:执行挂载命令
挂载命令的基本格式是 mount [选项] <设备文件> <挂载点目录>。
sudo mount /dev/sdb1 /mnt/myusb
mount 命令能够自动检测常见的文件系统(如 ext4, xfs, vfat),如果自动检测失败或需要指定特定的文件系统,可以使用 -t 参数,对于一个 Windows 格式的 FAT32 U盘:
sudo mount -t vfat /dev/sdb1 /mnt/myusb
对于 NTFS 格式的设备,CentOS 可能需要先安装 ntfs-3g 驱动:
sudo yum install ntfs-3g sudo mount -t ntfs-3g /dev/sdb1 /mnt/myusb
第三步:验证挂载

挂载成功后,可以通过以下两种方式验证:
- 使用
df -h查看已挂载的文件系统及其空间使用情况。 - 直接列出挂载点目录的内容:
ls -l /mnt/myusb。
挂载光盘(CD/DVD)
挂载光盘的过程与 USB 类似,但设备名称通常是固定的。
第一步:创建挂载点
sudo mkdir /mnt/cdrom
第二步:执行挂载命令
光盘的设备文件通常是 /dev/sr0,其文件系统类型通常是 iso9660,但 mount 命令一般也能自动识别。
sudo mount /dev/sr0 /mnt/cdrom
或者明确指定文件系统类型:
sudo mount -t iso9660 /dev/sr0 /mnt/cdrom
第三步:验证挂载
同样,使用 ls -l /mnt/cdrom 或 df -h 来查看光盘内容。
安全卸载:umount 命令
当不再需要访问设备时,必须先卸载它,然后再物理移除,卸载操作能确保所有缓存中的数据都被写入设备,防止数据损坏。
卸载命令的格式是 umount <挂载点目录> 或 umount <设备文件>。
sudo umount /mnt/myusb # 或者 sudo umount /dev/sdb1
卸载光盘:
sudo umount /mnt/cdrom
常见问题:设备正忙
如果执行 umount 时提示 target is busy,表示有进程正在访问该挂载点下的文件,可以使用 lsof 或 fuser 命令找出是哪个进程占用了资源,然后终止该进程再卸载。
# 查看占用 /mnt/myusb 的进程 sudo lsof +D /mnt/myusb # 或 sudo fuser -mv /mnt/myusb
找到进程ID(PID)后,使用 kill -9 <PID> 终止进程,然后再次尝试卸载。

实现开机自动挂载:/etc/fstab
如果希望某个设备在系统启动时自动挂载,可以将其配置信息写入 /etc/fstab 文件,该文件包含了系统启动时需要挂载的文件系统的详细信息。
使用 sudo vi /etc/fstab 编辑文件,并添加新行,每行代表一个挂载规则,包含六个字段,用空格或制表符分隔。
| 字段 | 含义 | 示例 |
|---|---|---|
| 设备文件 | 要挂载的设备路径或UUID | /dev/sdb1 或 UUID="xxxx-xxxx" |
| 挂载点 | 挂载到的目录 | /mnt/myusb |
| 文件系统类型 | 设备的文件系统 | vfat, ntfs-3g, ext4, iso9660 |
| 挂载选项 | 挂载参数,多个用逗号分隔 | defaults, auto, ro, nofail |
| dump | 备份设置,0表示不备份 | 0 |
| pass | 开机检查顺序,0表示不检查 | 0 |
示例配置:
为 USB 设备添加一行(建议使用 nofail 选项,避免设备未插入时启动失败):UUID="YOUR_USB_UUID" /mnt/myusb ntfs-3g defaults,nofail 0 0
为光盘驱动器添加一行(使用 noauto 表示不自动挂载,但允许手动 mount /mnt/cdrom 快速挂载):/dev/sr0 /mnt/cdrom iso9660 defaults,noauto,ro 0 0
配置完成后,可以执行 sudo mount -a 命令来测试 /etc/fstab 文件中的所有条目是否正确无误,若无错误输出,则配置成功。
相关问答 (FAQs)
问题1:挂载后,普通用户无法写入USB设备,提示权限不足,怎么办?
解答: 这个问题通常是因为挂载点目录的所有者或权限设置不当,有几种解决方案:
- 使用
sudo:最直接的方法,所有操作都以管理员权限进行。 - 更改挂载点权限:挂载后,使用
sudo chown username:username /mnt/myusb将挂载点的所有者改为当前普通用户,但此方法在每次重新挂载后可能失效。 - 使用挂载选项(推荐):在
mount命令或/etc/fstab中加入uid和gid选项,通过id your_username命令查看你的用户ID(UID)和组ID(GID),在挂载时指定它们,
sudo mount -o uid=1000,gid=1000 /dev/sdb1 /mnt/myusb
在/etc/fstab中,则可以写成:
UUID="YOUR_USB_UUID" /mnt/myusb vfat defaults,uid=1000,gid=1000,nofail 0 0
这样,该用户就能像操作普通文件夹一样读写设备了。
问题2:执行 umount 命令时,系统提示“target is busy”(设备正忙),该如何处理?
解答: 这个提示表示有程序或进程正在使用挂载点 /mnt/myusb 下的文件或目录,强制卸载可能导致数据丢失。
正确的处理步骤是:
- 找出占用进程:使用
lsof或fuser命令定位是哪个进程在占用。sudo lsof +D /mnt/myusb # 或者 sudo fuser -mv /mnt/myusb
这两个命令会列出占用该目录的进程ID(PID)和进程名。
- 终止占用进程:根据上一步得到的PID,使用
kill命令安全地终止进程,如果PID是 1234:sudo kill 1234
如果进程无法正常终止,可以使用
kill -9 1234强制终止。 - 重新尝试卸载:在确认所有占用进程都已退出后,再次执行
sudo umount /mnt/myusb命令,通常就能成功卸载了。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复