dd:写入“/dev/null”:设备上没有剩余空间

dd:写入“/dev/null”:设备上没有剩余空间

我正在将 550MB 文件读入 /dev/null 并得到

dd: writing '/dev/null': No space left on device

我很惊讶。我认为 /dev/null 是一个黑洞,你可以在其中发送任意数量的数据(因为它是一个虚拟文件系统)。

是的,当我收到此错误时,我的磁盘几乎已满。除了从磁盘中删除内容之外,我还能做什么?

 ls -l /dev/null
 -rw-r--r--    1 root     root             0 July 7 21:58 /dev/null

代替

 crw-rw-rw-    1 root     root        1,   3 July 7 02:58 /dev/null

我正在使用的命令:

time sh -c "dd if=$filename of=/dev/null"

答案1

/dev/null是一个特殊文件,类型为字符设备。该字符设备的驱动程序会忽略您尝试写入该设备的任何内容,并且写入始终会成功。如果写入/dev/null失败,则意味着您已设法删除正确的文件/dev/null并将其替换为常规文件。您可能不小心删除了/dev/null;那么下一个… >/dev/null会将其重新创建为常规文件。

运行ls -l /dev/null并检查该行是否类似于

crw-rw-rw- 1 root root 1, 3 Sep 13  2011 /dev/null

对于字符设备,它必须以crw-rw-rw-:开头,并且允许每个人读取和写入的权限。c该文件应该由 root 拥有,尽管它不是很重要。所有者和组后面的两个数字标识设备(主设备号和次设备号)。上面我展示了Linux下的值;不同的 UNIX 变体具有不同的值。该日期通常是系统安装日期或上次重新启动的日期,这并不重要。

如果您需要重新创建该文件,某些系统会MAKEDEV在 root 的 PATH 或/dev.运行cd /dev; ./MAKEDEV std或类似的东西来重新创建标准基本设备,例如/dev/null.或者手动创建设备,并提供正确的设备编号;在Linux上,那就是

mknod -m 666 /dev/null c 1 3

相关内容