当我执行“cat debian.iso > /dev/sdX”时会发生什么?

Bor*_*kov 9 linux live-usb devices

我正在创建一个实时 USB 并且不能准确理解:当我将文件(甚至文件系统)直接复制到设备节点(而不是文件系统)时会发生什么?

Jim*_*ris 16

外壳将打开设备/dev/sdXcat命令的所有输出(最终成为 的内容debian.iso)都直接写入该设备。

最终结果是debian.iso逐字节写入底层磁盘的开头/dev/sdX

实际上,设备节点使存储介质的低级内容表现为单个文件。您正在写入这个“文件”,因此写入存储介质。这种哲学被称为“一切都是文件”,被认为是 Unix 系统的定义特征之一。

  • 这个命令和 `dd if=debian.iso of=/dev/sdX` 有区别吗? (10认同)
  • @htor,不是很重要,但是 `dd` 可以让您更好地控制块大小,默认值取决于实现(例如 1 或 512 字节)。使用 `dd` 你可以为你的块设备选择一个更好的大小,比如 4096 字节。 (2认同)
  • @Bob 除了磁带驱动器,您传递给 `dd` 的块大小会影响性能,但不会影响读取和写入的数据。`dd` 块大小与 CD 块大小或文件系统块大小之间没有关系。几兆字节通常会给你最好的性能,尽管 `cat` 可能比 `dd` 更快。 (2认同)
  • 引导扇区如何,之后 /dev/sdX 会像 CD/DVD 映像一样正常引导吗? (2认同)