Freebsd

如何在 BSD 上創建 /dev/null?

  • April 2, 2017

/dev/null在我的系統上刪除了一個錯誤編寫的腳本。我確實在這裡找到了答案並嘗試了一下。但是,一旦我向 new 寫入內容/dev/null,系統就會崩潰。恐怕這個答案不適合 BSD。

任何人都可以幫忙嗎?

這是 FreeBSD 10.3

在 FreeBSD 上:

mknod /dev/null c 15 0 root:wheel
chmod 0666 /dev/null

如您所見,數字 15 和 0 不能移植到其他系統。

創建設備節點條目的命令mknod幾乎適用於所有 Unix 系統。設備編號完全取決於 unix 變體,因此您需要在文件中查找它們。在某些系統上,man 4 nullnull第 4 節“特殊文件”中的手冊頁)會告訴您設備號是什麼。(設備在 BSD 和 Linux 上的第 4 節中,但在其他 Unix 變體上,節號可能會有所不同,例如在 Solaris 上是第 7 節。)

如果手冊頁沒有告訴您,請查找MAKEDEV命令,通常位於/dev. 這通常是一個 shell 腳本,您可以在其中輕鬆找到設備編號,或將其作為cd /dev && ./MAKEDEV null.

一些現代 unix 系統不使用MAKEDEV,因為設備節點是自動創建的。在帶有 udev 的 Linux 系統(一些嵌入式系統除外)上就是這種情況,在帶有devfs的 FreeBSD 上也是如此。如何重新創建通常自動創建的條目取決於自動設備創建系統。在 FreeBSD 上,您可以簡單地將設備名稱賦予mknod命令:mknod /dev/null.

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