在 Debian 10 Live USB 上使用 dd 命令时 of=/dev/sdx 和 of=/dev/sdX 之间的区别

在 Debian 10 Live USB 上使用 dd 命令时 of=/dev/sdx 和 of=/dev/sdX 之间的区别

我使用的是 Mac,以 efi 模式启动我创建的 Debian 10 live USB。在实时模式下,我尝试通过下载并将其添加到另一个 U 盘来创建 FreeBSD 安装 USB。在此之前,我想确保我的 USB 记忆棒已归零。在将我的 USB 记忆棒归零时,我注意到在引用驱动器时使用大写“X”/dev/sdX和在引用驱动器时使用小写“x”时 dd 的输出有所不同,/dev/sdx我在 Debian 中使用 dd 命令找不到有关区分大小写的更多信息,以及引用驱动器时sdX和之间的区别是什么。sdx

of=/dev/sdx为什么在使用和 使用时在 dd 命令中得到不同的输出of=/dev/sdX?例如,正如 Imgur 图片链接中所引用的,我将在 Debian live 中使用以下示例:

$ dd if=/dev/zero of=/dev/sdc bs=1M conv=noerror status=progress && sync
15618539520 bytes (16 GB, 15 GiB) copied, 1067 s, 14.6 MB/s
dd: error writing ‘/dev/sdC’ : No space left on device
14901+0 records in
14900+0 records out
15623782400 bytes (16 GB, 15 GiB) copied, 1125.46 s, 13.9 MB/s

但是,如果我在同一个 USB 驱动器上执行该命令of=/dev/sdC,我会得到不同的结果,例如(第二个)示例:

$ dd if=/dev/zero of=/dev/sdC bs=1M conv=noerror status=progress && sync
11725956096 bytes (1.7 GB, 1.6 GiB) copied, 3.3301 s, 575 MB/s
dd: error writing ‘/dev/sdC’ : No space left on device
1825+0 records in
1825+0 records out
1913491456 bytes (1.9 GB, 1.8 GiB) copied, 3.3301 s, 575 MB/s

有人可以向我解释一下这个现象吗?驱动器/dev/sdC和有什么区别/dev/sdc

Debian 10 Live dd 命令 sdx 与 sdX

答案1

dd不关心大小写,这取决于文件系统和内核。在 Debian 上,这是区分大小写的。因此,/dev/sdc设备节点可能在创建/dev/sdC之前不存在,作为.可能是一个 tempfs:ddsdC/dev/dev

% df -hT /dev
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  440M     0  440M   0% /dev

它的大小通常限制为 RAM 的一小部分(我认为默认为 50%)。

因此dd of=/dev/sdC创建了一个在 tmpfs 文件系统上调用的文件sdC,然后继续将其填充到限制。您可能 ~2GB RAM 没有被使用(那么总共可能有 4 GB RAM?)。

dd of=/dev/sdc写入设备并填充它。 Sherlock Holmes 告诉我那是一个 16GB 的磁盘。

相关内容