在Linux系统中,将外部存储设备如SD卡连接到文件树中,使其可以被访问和操作的过程称为“挂载”,对于CentOS用户而言,无论是进行数据备份、文件传输还是为树莓派等单板计算机烧录系统,掌握SD卡的挂载方法都是一项基础且实用的技能,本文将详细介绍在CentOS环境下安全、高效地挂载SD卡的完整流程,涵盖从设备识别到卸载的各个环节,并解答一些常见问题。

第一步:识别SD卡设备
在挂载之前,首要任务是准确地识别出系统分配给SD卡的设备名称,Linux系统中,存储设备通常以/dev/sd*(如/dev/sdb, /dev/sdc)或/dev/mmcblk*(如/dev/mmcblk0)的形式出现,错误的识别可能导致系统硬盘被误操作,造成灾难性后果,因此此步骤需格外谨慎。
lsblk(List Block Devices)是一个现代且直观的工具,它能以树状结构清晰地列出所有块设备。
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 在这个例子中:
sda是系统内置硬盘。sdb是我们要找的SD卡,关键识别标志是RM列值为1(表示Removable,可移动设备),以及SIZE列显示的容量与你的SD卡相符。- 我们需要挂载的是分区
sdb1,而不是整个磁盘sdb。
fdisk -l会列出所有磁盘分区表信息,输出较为详细,但不如lsblk直观。
sudo fdisk -l
在输出中寻找与SD卡容量匹配的设备,例如Disk /dev/sdb: 14.9 GiB。
第二步:创建挂载点
挂载点是SD卡在文件系统中的“入口”,它必须是一个已存在的空目录,我们将临时挂载点创建在/mnt或/media目录下。/mnt traditionally用于临时挂载,而/media则常用于可移动设备。
我们选择在/mnt下创建一个名为sdcard的目录:
sudo mkdir /mnt/sdcard
这个命令会请求root权限(通过sudo),因为/mnt目录属于系统目录。
第三步:执行挂载操作
准备工作就绪后,就可以使用mount命令将SD卡分区挂载到指定的挂载点。
基本挂载命令:
sudo mount /dev/sdb1 /mnt/sdcard
这里,/dev/sdb1是我们在第一步中识别出的SD卡分区,/mnt/sdcard是刚刚创建的挂载点。mount命令通常会自动检测文件系统类型(如FAT32, exFAT, NTFS等)并完成挂载。

指定文件系统类型挂载:
在某些情况下,系统可能无法自动识别文件系统,或者你需要指定特定的挂载选项,这时可以使用-t参数,SD卡常见的文件系统是FAT32(vfat)和exFAT。
挂载FAT32分区:
sudo mount -t vfat /dev/sdb1 /mnt/sdcard
挂载exFAT分区:
CentOS默认可能不包含exFAT支持,如果挂载失败,需要先安装相关工具包。# 对于CentOS 8/Stream/9 使用 dnf sudo dnf install exfatprogs # 对于CentOS 7 使用 yum sudo yum install exfat-utils fuse-exfat
安装完成后,再执行挂载:
sudo mount -t exfat /dev/sdb1 /mnt/sdcard
第四步:验证与访问
挂载成功后,可以通过多种方式进行验证。
df -h命令会以人类可读的格式(如KB, MB, GB)显示已挂载的文件系统及其空间使用情况。
df -h | grep sdcard
输出应包含类似以下内容:
/dev/sdb1 15G 32K 15G 1% /mnt/sdcard 这表明/dev/sdb1已成功挂载到/mnt/sdcard。
访问文件:
你可以像操作普通目录一样访问SD卡中的内容了。
ls -l /mnt/sdcard
你可以进行复制、移动、删除等操作,将一个文件复制到SD卡:
cp ~/my_document.txt /mnt/sdcard/
第五步:安全卸载SD卡
在完成所有数据操作后,为了确保所有数据都已写入SD卡并防止数据损坏,必须先卸载SD卡,然后再物理拔出。
使用umount命令:

sudo umount /mnt/sdcard
或者,你也可以直接指定设备文件来卸载:
sudo umount /dev/sdb1
处理“设备正忙”错误:
如果卸载时提示“target is busy”或“device is busy”,说明有进程正在访问该挂载点下的文件,你可以使用lsof命令查看是哪个进程占用了它:
lsof /mnt/sdcard
终止相关进程后,再尝试卸载。
常用命令速查表
| 命令 | 功能描述 | 示例 |
|---|---|---|
lsblk | 列出所有块设备,用于识别SD卡 | lsblk |
sudo fdisk -l | 查看磁盘分区详情,辅助识别设备 | sudo fdisk -l |
sudo mkdir <目录> | 创建挂载点目录 | sudo mkdir /mnt/sdcard |
sudo mount <设备> <挂载点> | 挂载设备到指定目录 | sudo mount /dev/sdb1 /mnt/sdcard |
df -h | 查看已挂载文件系统的空间使用情况 | df -h |
sudo umount <挂载点或设备> | 卸载已挂载的设备 | sudo umount /mnt/sdcard |
相关问答FAQs
挂载时提示“unknown filesystem type ‘exfat’”该怎么办?
解答: 这个错误表明你的CentOS系统内核缺少对exFAT文件系统的支持,exFAT是许多大容量SD卡(通常大于32GB)的默认格式,你需要手动安装用户空间文件系统工具来提供支持,请根据你的CentOS版本执行以下命令之一:
- 对于CentOS 8, CentOS Stream, CentOS 9:
sudo dnf install exfatprogs
- 对于CentOS 7:
sudo yum install exfat-utils fuse-exfat
安装完成后,再次尝试使用
mount -t exfat /dev/sdb1 /mnt/sdcard命令进行挂载即可。
为什么我挂载SD卡后,普通用户没有权限写入文件?
解答: 这通常发生在挂载FAT32或exFAT等Windows风格的文件系统时,这些文件系统本身不记录Linux的权限信息(如用户、组、读写执行权限),默认情况下,mount命令会以root用户身份挂载它们,导致普通用户无法写入,解决方法是在挂载时指定uid(用户ID)和gid(组ID)或使用umask来设置默认权限。
- 获取当前用户的ID和组ID:
id your_username
输出会类似
uid=1000(your_username) gid=1000(your_username) groups=1000(your_username)...,记下uid和gid(此处均为1000)。 - 使用
-o选项进行挂载,赋予当前用户权限:sudo mount -o uid=1000,gid=1000 /dev/sdb1 /mnt/sdcard
这样,
your_username用户就可以在/mnt/sdcard目录下自由读写文件了,如果你希望所有用户都能读写,可以使用更宽松的umask选项,如-o umask=000。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复