如果在“dd”操作后调用,mkfs 会失败

如果在“dd”操作后调用,mkfs 会失败

我想删除我的 eMMC 块上的所有文件(例如 /dev/mmcblk0p1),然后重新创建文件系统(使用 ext4)。

所以我卸载并删除:

umount /dev/mmcblk0p1
dd if=/dev/zero of=/dev/mmcblk0p1 bs=4096

在 dd 之后我立即创建文件系统:

mkfs.ext4 -F -L MyLabel /dev/mmcblk0p1

我收到以下错误:

无法成功初始化配置文件(错误:117)。

重新启动系统和 mkfs 命令将正常工作,不会出现任何错误。

如果我尝试在 dd 之后执行 mkfs(无需重新启动),输出dmesg 如下:

[ 7704.476779] EXT4-fs error (device mmcblk0p1): ext4_map_blocks:596: inode #13: block 8290: comm mkfs.ext4: lblock 0 mapped to illegal pblock 8290 (length 1)

这是为什么?

答案1

尝试:

umount /dev/mmcblk0p1
dd if=/dev/zero of=/dev/mmcblk0p1 bs=4096
sync
mkfs.ext4 -F -L MyLabel /dev/mmcblk0p1

您似乎遇到了内核中的缓冲区缓存问题。强制sync刷新缓冲区。

@roaima 有很好的建议,避免使用,-F因为它可能会掩盖 mkfs 会通知用户的错误。

相关内容