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

Dan*_*Ran 0 debian dd live-usb usb-drive

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

为什么在使用of=/dev/sdx与使用时 dd 命令中得到不同的输出of=/dev/sdX?例如,如 Imgur pic 链接中所述,我将在 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
Run Code Online (Sandbox Code Playgroud)

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

$ 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
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释这种现象吗?drive/dev/sdC和 和有/dev/sdc什么不一样?

Debian 10 Live dd 命令 sdx 与 sdX

mur*_*uru 5

dd不关心大小写,这取决于文件系统和内核。在 Debian 上区分大小写。那么,/dev/sdc可能是一个设备节点,/dev/sdC可能并不存在,直到dd创造了它,作为一个普通的文件sdC中/dev。/dev可能是一个临时文件:

% df -hT /dev
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  440M     0  440M   0% /dev
Run Code Online (Sandbox Code Playgroud)

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

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

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