今天在工作中,一位客戶rm -rf /dev
最終刪除了兩個文件,導致/dev/shm
他的網站不再運作。
據我之前了解到,/dev
這不是虛擬的,但一位技術同事建議重新啟動伺服器,因為/dev
它是虛擬的/proc
。果然我重新啟動了伺服器和客戶端 rm -rf 所在的檔案。
所以,我的問題是;是/dev
虛擬的嗎?是虛擬的那種嗎/proc
?有更多這方面的文件嗎?如何/dev
在不重新啟動伺服器的情況下恢復檔案?
答案1
很長一段時間以來,答案都是「有點」。
目前Linux設備樹由udev
,一個用戶空間設備管理器,幾年前取代了 devfs。 udev 使用系統所需的任何裝置節點填入 /dev,具體取決於其設定檔中配置的規則。
在最新的 Linux 系統上,/dev 位於由devtmpfs
。你可以稱這些為虛擬的。
例子:
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=6109940k,nr_inodes=1527485,mode=755)
如今 /dev 中實際裝置節點的唯一原因是在 udev 啟動之前的引導環境。通常只有/dev/console
和/dev/null
在實際檔案系統中需要,這足以達到可以啟動 udev 的程度。然後它將提供其他一切。