Linux

dd:寫入’/dev/null’:設備上沒有剩餘空間

  • August 14, 2012

我正在將一個 550MB 的文件讀入 /dev/null,我得到了

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

我很驚訝。我認為 /dev/null 是一個黑洞,您可以在其中發送任意數量的內容(因為它是虛擬 fs)。

是的,當我收到此錯誤時,我的磁碟幾乎已滿。除了從磁碟中刪除內容之外,我還能做什麼?

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"

/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

引用自:https://unix.stackexchange.com/questions/45421