在CentOS这类企业级Linux操作系统中,熟练使用命令行管理U盘是系统管理员和高级用户必备的技能,与图形化界面不同,命令行提供了更直接、更强大且更稳定的控制方式,本文将详细介绍在CentOS环境下如何识别、挂载、使用、格式化U盘,以及如何制作可启动的CentOS安装U盘,并辅以常见问题的解决方案。

识别U盘设备
当U盘插入CentOS系统时,内核会将其识别为一个块设备,首要任务是找到这个设备对应的文件名,U盘会被命名为/dev/sdb、/dev/sdc等,而硬盘通常是/dev/sda。
使用 lsblk 命令
lsblk(List Block Devices)是现代Linux系统中最推荐使用的命令,它能以树状结构清晰地列出所有块设备。
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 
从输出中可以轻易识别出U盘:sdb是一个大小为14.9G的可移动磁盘(RM列为1),它包含一个分区sdb1,我们要操作的就是/dev/sdb1这个分区。
使用 fdisk -l 命令
fdisk -l会列出系统中所有磁盘的分区表,信息更为详细。
sudo fdisk -l
在输出的末尾,你通常会找到类似下面的信息,从而确认U盘设备:
Disk /dev/sdb: 14.9 GiB, 15931539456 bytes, 31116288 sectors
...
Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1        2048 31116287 31114240 14.9G  b W95 FAT32
挂载与卸载U盘
识别出设备后,需要将其“挂载”到系统的一个目录上,才能访问其中的文件。
创建挂载点
挂载点是一个空目录,通常在/mnt或/media下创建。
sudo mkdir /mnt/usb
执行挂载操作
使用mount命令将U盘分区挂载到创建的目录,假设U盘分区是/dev/sdb1,文件系统是FAT32(常见于Windows)。
sudo mount /dev/sdb1 /mnt/usb
如果系统提示文件系统类型错误,可以手动指定:

sudo mount -t vfat /dev/sdb1 /mnt/usb
vfat是FAT32在Linux中的对应类型,对于NTFS,可能需要先安装ntfs-3g包(sudo yum install ntfs-3g),然后使用-t ntfs-3g。
挂载成功后,就可以通过/mnt/usb目录访问U盘文件了:
ls -l /mnt/usb
卸载U盘
使用完毕后,必须先卸载U盘,再拔出,以确保数据已全部写入,防止文件损坏。
sudo umount /mnt/usb
或者直接指定设备:
sudo umount /dev/sdb1
如果提示“target is busy”,说明有进程正在使用U盘中的文件,可以使用lsof /mnt/usb查看是哪个进程占用,结束后再尝试卸载。
格式化U盘
如果需要清空U盘或更换文件系统,可以对其进行格式化,格式化会丢失所有数据,请谨慎操作。
分区(可选)
如果需要重新分区,可以使用fdisk命令。
sudo fdisk /dev/sdb
在fdisk交互界面中,可以使用d删除旧分区,n创建新分区,p选择主分区,w保存更改并退出。
创建文件系统
使用mkfs系列命令创建文件系统,假设我们要格式化/dev/sdb1分区为FAT32:
sudo mkfs.vfat /dev/sdb1
格式化为ext4(Linux原生文件系统,性能更好):

sudo mkfs.ext4 /dev/sdb1
制作可启动的CentOS U盘
这是U盘在CentOS下的一个重要用途。dd命令是最可靠的方法,它会进行逐位复制,完美保留ISO镜像的引导信息。
警告: 此操作会彻底覆盖U盘上的所有数据,请务必确认设备名称正确无误!
- 下载CentOS ISO镜像:从官方网站下载所需的ISO文件。
 - 确认U盘设备:再次使用
lsblk或fdisk -l确认U盘设备是/dev/sdb(注意是整个设备,不是分区/dev/sdb1)。 - 执行
dd命令: 
sudo dd if=CentOS-Stream-9-latest-x86_64-dvd1.iso of=/dev/sdb bs=4M status=progress
if:输入文件,即ISO镜像路径。of:输出文件,即U盘设备名。这里极易出错,写错会导致硬盘数据丢失!bs:块大小,设置为4M可以提高写入速度。status=progress:显示写入进度。
- 同步缓存:
dd命令执行完毕后,运行sync命令,确保所有缓存数据都写入U盘。 
sync
完成之后,一个可启动的CentOS U盘就制作好了。
常见问题与解决方案
| 问题描述 | 可能原因 | 解决方案 | 
|---|---|---|
mount: unknown filesystem type 'exfat' | 
系统默认不支持exFAT文件系统。 | 安装exfat支持:sudo yum install exfat-utils fuse-exfat | 
mount: /mnt/usb: permission denied | 
当前用户没有执行mount的权限,或挂载点目录权限问题。 | 
使用sudo执行命令,或检查/mnt/usb目录权限。 | 
umount: /mnt/usb: target is busy. | 
有程序或终端当前目录正在使用U盘内的文件。 | 使用cd命令退出U盘目录,关闭相关程序,或使用sudo umount -l /mnt/usb强制延迟卸载。 | 
| U盘插入后无任何反应 | U盘硬件故障、USB接口问题或系统服务异常。 | 尝试其他USB接口或电脑,使用dmesg | tail查看内核日志,检查是否有相关错误信息。 | 
相关问答FAQs
Q1: 为什么我的U盘在CentOS的图形界面下没有自动挂载,但在命令行可以手动挂载?
A: 这通常与桌面环境的自动挂载服务有关,GNOME、KDE等桌面环境依赖udisks2和gvfs等服务来实现设备的自动检测和挂载,如果这些服务没有正常运行、被禁用,或者当前用户权限配置不当,自动挂载就会失败,你可以通过systemctl status udisks2检查服务状态,手动挂载使用mount命令,它直接调用内核功能,不依赖这些上层服务,因此更为可靠,尤其是在服务器或最小化安装的系统中。
Q2: 使用dd命令制作启动盘时,of参数后面为什么是/dev/sdb而不是/dev/sdb1?
A: dd是一个底层工具,它进行的是原始数据(raw data)的逐位复制,一个可启动的ISO镜像不仅包含文件数据,还包含了主引导记录(MBR)或GUID分区表(GPT)以及引导加载程序的关键信息,这些信息位于磁盘的起始扇区,如果将of指定为/dev/sdb1(分区),dd只会将数据写入这个分区内,而无法改写磁盘最开始的引导扇区,制作出的U盘将无法启动,必须将整个磁盘设备/dev/sdb作为输出目标,才能完整复制ISO镜像的引导结构和所有数据。