dd - 带有 microSD 卡的设备上没有剩余空间

Tan*_*ngo 3 dd

我正在 Pi3B 上开发 Raspberry Pi 操作系统。我正在使用一个脚本来执行一些分区操作,有时我想擦除驱动器,所以我使用(作为root):

dd if=/dev/zero of=/dev/mmblk0 status=progress bs=1M
Run Code Online (Sandbox Code Playgroud)

我总是得到这个 - 即使使用不同的 microSD 卡和不同的尺寸:

300941312 bytes (301 MB, 287 MiB) copied, 1 s, 301 MB/s
dd: error writing '/dev/mmblk0': No space left on device
340+0 records in
339+0 records out
356405248 bytes (356 MB, 340 MiB) copied, 1.20626 s, 295 MB/s
Run Code Online (Sandbox Code Playgroud)

该设备如此快地耗尽空间,32、64 或 128GB 卡上甚至没有使用 1GB,这是怎么回事?我可以在 USB 记忆棒上执行同样的操作,没有任何问题,但每次在 microSD 卡上执行此操作时都会遇到此问题。

roa*_*ima 7

在我的 Pi 上,SD 卡已命名/dev/mmcblkN(值N从 0 开始)。您输入了/dev/mmblk0,这表明您正在填充根文件系统而不是写入主存储设备。

您可以通过查看文件类型来验证这一点(考虑每行的第一个字符;-是文件,b是块设备):

ls -l /dev/mmblk0 /dev/mmcblk?
Run Code Online (Sandbox Code Playgroud)

在我的系统上,

brw-rw---- 1 root disk 179, 0 Jul  6 11:54 /dev/mmcblk0
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!我经常需要重新输入一行,而不查看有问题的行,然后复制并粘贴到文本编辑器中以进行比较。但是有了这个 - 我确信我已经为设备使用了制表符补全,然后我意识到(读完你的文章后),我不能,因为该参数以“of=”开头,所以我没有检查打字错误。 (2认同)