dd 命令指示磁盘空间不足 - 尝试为树莓派格式化 SD 卡

dd 命令指示磁盘空间不足 - 尝试为树莓派格式化 SD 卡

我一直在尝试用最新的格式化SD卡debian jessie-lite与树莓派一起使用的图像。使用dd命令时,它指出复制10兆后设备上没有剩余空间。我搜索过 SE 并尝试使用各种问题的答案,但我总是回到同一个地方。以下是您可能感兴趣的 dd、fdisk、df 和 ls 命令的输出。

/dev/sdb 是 sd 卡

dd bs=4M if=/home/user/Downloads/2017-02-16-raspbian-jessie-lite.img of=/dev/sdb

dd: error writing ‘/dev/sdb’: No space left on device
3+0 records in
2+0 records out
10485760 bytes (10 MB) copied, 0.0137885 s, 760 MB/s

fdisk -l /dev/sdb

Disk /dev/sdb: 10 MiB, 10485760 bytes, 20480 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: 0xdbcc7ab3

Device     Boot  Start     End Sectors  Size Id Type
/dev/sdb1         8192  137215  129024   63M  c W95 FAT32 (LBA)
/dev/sdb2       137216 2807807 2670592  1.3G 83 Linux

ls -al /dev/sdb*

-rw-r--r-- 1 root root 10485760 Mar  3 22:04 /dev/sdb
brw-rw---- 1 root disk    8, 17 Mar  3 22:05 /dev/sdb1
brw-rw---- 1 root disk    8, 18 Mar  3 22:05 /dev/sdb2
brw-rw---- 1 root disk    8, 19 Mar  3 22:05 /dev/sdb3

df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       226G  7.3G  207G   4% /
udev             10M   10M     0 100% /dev
tmpfs           1.6G  9.3M  1.6G   1% /run
tmpfs           3.9G  112K  3.9G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs           792M  4.0K  792M   1% /run/user/119
tmpfs           792M  8.0K  792M   1% /run/user/1000

答案1

-rw-r--r-- 1 root root 10485760 Mar  3 22:04 /dev/sdb

/dev/sdb是常规文件,而不是设备。你一定rm /dev/sdb在某个时刻跑步过。它是在插入设备时自动创建的,但是当您以 root 身份运行命令时,您可能会弄乱它。现在这/dev/sdb是一个常规文件,它存储在内存中的文件系统上,该文件系统的大小限制较低,因为它仅包含设备文件没有这样的内容,因为它们只是“调用此设备驱动程序来存储内容”的标记。

删除该文件(rm /dev/sdb以 root 身份)。然后,要重新创建正确的文件/dev/sdb,最简单的方法是弹出 SD 卡并将其重新插入。完成此操作后,您可以使用您正在使用的命令复制图像,或者简单地

 </home/user/Downloads/2017-02-16-raspbian-jessie-lite.img sudo tee /dev/sdb >/dev/null

答案2

我还得到了“空间不足”的信息,但那是因为我从 iso 映像设备转储 (dd) 到分区 /dev/sdb1,该分区太小了!而且它永远无法启动! 4 年后我添加了这条评论,因为一个答案弄错了如果你想要一个可启动的 USB 记忆棒该怎么办,因此我对此做了一些详细的阐述:

如果您有一个 USB 记忆棒 /dev/sdb(或 sdc、sdf,等等),您可以使用 dd 命令(或 cat)从 iso-boot-image(通常具有 iso9660 分区)制作可启动磁盘

dd if=/distfiles/debian-11.1.0-amd64.iso of=/dev/sdb bs=4M

最后一个参数 bs=4M 不是必需的,它只是为了速度。请注意,创建了分区 sdb1,也可能创建了 sdb2 abd(甚至更多分区)。

检查它是否存在:

ls -l /dev/sdb*

brw-rw---- 1 root disk 8, 32 Oct 22 20:59 /dev/sdb
brw-rw---- 1 root disk 8, 33 Oct 22 20:40 /dev/sdb1
brw-rw---- 1 root disk 8, 34 Oct 22 20:33 /dev/sdb2`

第一列中的 b 显示它们是块设备(“磁盘”)。在本例中,iso 映像上有 2 个分区!然后你可以安装它:

mount /dev/sdb1 /nod1

df -mT /nod1

/dev/sdb1      iso9660        378    378         0 100% /nod1

如果您想将 iso 映像存储在磁盘或 USB 记忆棒上,但不作为启动 USB 记忆棒,则使用 USB 记忆棒上现有的文件系统(分区)(也许使用 mkfs 或 easist 对其进行格式化,使用分区编辑器)然后挂载该分区

mount /dev/sdb1 /nod1

df -mT /nod1

Filesystem     Type 1M-blocks  Used Available Use% Mounted on
/dev/sdc1      vfat     14844  6935      7910  47% /nod1

那么如果你想存储 iso img 供以后使用,你可以这样做:

dd if=/distfiles/debian-11.1.0-amd64.iso of=/nod1

(但请注意,您不能从 USB 记忆棒启动它)

(据我所知。也许将来可能?!:)

现在,如果您列出设备的分区,它们仍然是 fx.ext2 或 vfat 分区,而不是 iso9660,并且会有一个文件称为 debian-11.1.0-amd64.iso

答案3

要写入映像,您需要格式化分区。/dev/sdb是你的设备。您有两个分区,/dev/sdb1并且/dev/sdb2.所以命令是:

dd bs=4M if=/home/user/Downloads/2017-02-16-raspbian-jessie-lite.img of=/dev/sdb2

相关内容