Linux
dd:寫入’/dev/null’:設備上沒有剩餘空間
我正在將一個 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