由于 dd if=/dev/sda 导致 PC 扬声器发出蜂鸣声和混乱的终端字体?

由于 dd if=/dev/sda 导致 PC 扬声器发出蜂鸣声和混乱的终端字体?

跑步时

sudo dd if=/dev/sda

PC 内部扬声器发出声音。此外,所有字体,甚至提示和键入输入都有不同的字符,例如“♡”或“•”。

如果您需要了解更多,请评论。

我通常会使用 of=/dev/null 或 >>/dev/null 进行读取性能测试并启动光驱(使用count=1 iflag=direct skip=500000),其中我跳到 LBA 500000 以将激光镜头置于数据部分的中心。但我想尝试一下如果我不将输出重定向到任何地方会发生什么,结果确实发生了。

有趣的事实:同样的情况也发生在 Windows 上。

答案1

大致的情况是这样的:

  1. 您的dd命令没有of=...参数,以便将数据发送到标准输出。
  2. 当您在终端中运行命令时,正在运行的进程的标准输出将连接到终端。
  3. 终端可以显示文本并进行解释控制序列。根据您的终端类型,有一些序列可以更改字体、颜色或光标位置或响铃(蜂鸣声)等。
  4. 您的硬盘 ( /dev/sda) 包含大量不同的数据,并且其中肯定存在一些纯属偶然的终端控制序列。

因此,您向终端发送大量文本和控制序列,它会尽职尽责地尝试显示和解释它。

答案2

正如卢卡斯所说,这是因为随机数据恰好包含终端控制代码。

要修复它,请运行命令:

reset

相关内容