1. 问题现象与排查思路
当我们在Linux系统中使用df -h命令查看磁盘空间时,有时会发现插入的SD卡分区没有正常显示。这种情况在嵌入式开发中尤为常见,特别是使用创龙科技等开发板时。首先我们需要明确几个关键点:
df -h命令只显示已挂载的文件系统- SD卡分区未被显示可能涉及硬件识别、分区表、文件系统和挂载等多个环节
- 需要结合其他命令进行系统性排查
典型的排查流程应该是:
- 确认SD卡是否被系统识别
- 检查分区表是否正常
- 验证文件系统是否存在
- 确认是否已正确挂载
2. 硬件识别检测
2.1 使用lsblk查看块设备
lsblk命令是排查存储设备问题的第一道工具,它能显示所有块设备及其层级关系:
bash复制lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
输出示例:
code复制NAME FSTYPE SIZE MOUNTPOINT LABEL
mmcblk0 14.9G
├─mmcblk0p1 vfat 256M /boot boot
└─mmcblk0p2 ext4 14.6G / rootfs
sda 29.7G
└─sda1 ext4 29.7G /mnt/data backup
关键观察点:
- 确认SD卡对应的设备节点(通常是/dev/mmcblk或/dev/sd)
- 检查分区是否存在(p1,p2等后缀)
- 查看文件系统类型是否识别正确
2.2 设备未识别的可能原因
如果lsblk没有显示SD卡设备,可能是:
- 物理连接问题:检查SD卡座接触是否良好
- 驱动未加载:使用
dmesg | grep mmc查看内核消息 - 电源问题:某些开发板需要额外供电才能识别大容量SD卡
- 设备节点权限问题:检查/dev下对应设备的权限
3. 分区表诊断与修复
3.1 使用fdisk检查分区表
当设备已识别但分区未显示时,首先检查分区表:
bash复制sudo fdisk -l /dev/mmcblk0
`
