今天工作时,一位客户rm -rf /dev
删除了两个文件,导致/dev/shm
他的网站无法再运行。
据我了解,/dev
它不是虚拟的,但一位技术员建议重启服务器,因为/dev
它是虚拟的/proc
。果然,我重启了服务器,客户端 rm -rf 的文件就在那里。
所以,我的问题是:是/dev
虚拟的吗?是那种虚拟的吗/proc
?有没有关于这方面的更多文档?如何/dev
在不重启服务器的情况下恢复文件?
答案1
长期以来,答案一直是“有点”。
目前 Linux 设备树由udev
,一个几年前取代了 devfs 的用户空间设备管理器。udev 根据其配置文件中配置的规则,用系统需要的任何设备节点填充 /dev。
在最新的 Linux 系统上,/dev 位于由以下程序提供的临时 RAM 磁盘中:devtmpfs
.你可以称它们为虚拟的。
例子:
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=6109940k,nr_inodes=1527485,mode=755)
如今,/dev 中实际设备节点的唯一用途是在 udev 启动之前用于引导环境。通常实际文件系统中只需要/dev/console
和/dev/null
,这足以启动 udev。然后它将提供其他一切。