1. 问题现象与初步排查
当你在创龙科技的开发板上执行df -h命令时,发现SD卡分区没有正常显示,这是一个在嵌入式Linux开发中相当常见的问题。我最近在调试IMX6ULL平台时就遇到了完全相同的情况,这里分享一下完整的排查思路和解决方案。
首先需要明确的是,df -h命令只显示已经挂载的文件系统。如果SD卡分区存在但没有挂载,或者分区表有问题,都不会在这里显示。正确的排查流程应该是:
- 确认SD卡是否被系统识别
- 检查分区表是否正常
- 验证文件系统是否完整
- 必要时重新创建分区和文件系统
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 确认SD卡设备识别状态
2.1 检查设备节点
在终端执行以下命令查看所有存储设备:
bash复制ls /dev/sd*
正常情况下应该能看到类似/dev/sdb、/dev/sdb1这样的设备节点。如果连/dev/sdb都没有,说明系统根本没识别到SD卡。
2.2 查看内核日志
如果ls /dev/sd*没有显示SD卡设备,需要检查内核日志:
bash复制dmesg | grep -i sd
重点关注是否有类似这样的错误信息:
code复制[ 12.345678] mmc1: card never left busy state
[ 12.345679] mmc1: error -110 whilst initialising SD card
这类错误通常表示硬件连接问题或供电不足。
3. 分区表检查与修复
3.1 使用fdisk查看分区
如果能看到/dev/sdb设备但没有分区,先用fdisk检查:
bash复制sudo fdisk -l /dev/sdb
正常输出应该包含类似这样的分区信息:
code复制Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 264191 262144 128M c W95 FAT32 (LBA)
/dev/sdb2 264192 526335 262144 128M 83 Linux
3.2 常见分区问题
我遇到过以下几种典型情况:
- 分区表损坏
