树莓派在配置openwrt编译环境时遇到Structure needs cleaning错误。
百度各种解决方法无效,就自己分析错误提示,怀疑是SD卡磁盘格式错误。
安装过树莓派系统128G的SD卡在Windows下只显示1.2G,无论怎么格式化只有这么大。在Windows下格式化重置树莓派系统,继续配置openwrt编译环境仍然出错Structure needs cleaning。
于是寻求在linux下格式化,没有别的linux电脑,只能在另外一个8G的SD卡安装树莓派系统,将128G的SD装入读卡器,插入树莓派进行格式化,格式过程如下:
1、查看磁盘信息
sudo fdisk -l
2、找到读卡器挂载位置(此处换为8G SD卡做示例)
Disk /dev/sda: 7.2 GiB, 7744782336 bytes, 15126528 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x267f1d86
Device Boot Start End Sectors Size Id Type
/dev/sda1 8192 137215 129024 63M c W95 FAT32 (LBA)
/dev/sda2 137216 15126527 14989312 7.2G 83 Linux
此上信息可以看出读卡器挂载位置为/dev/sda,有两个分区/dev/sda1和/dev/sda2
3、先卸载两个分区:
umount /dev/sda1
umount /dev/sda2
4、然后格式化sda
mkfs.vfat /dev/sdb
如果出现如下错误:
mkfs.vfat: Device partition expected, not making filesystem on entire device '/dev/sdb' (use -I to override)
请使用:
mkfs.vfat -I /dev/sdb
格式化完成后,再安装树莓派系统进行openwrt编译环境,就没有Structure needs cleaning错误出现了。