今天在工作中,一个客户端有rm -rf /dev ,最后删除了/dev/shm中的两个文件,迫使他的站点不再工作。
从我以前学到的/dev不是虚拟的,但同事技术人员build议重新启动服务器,因为/dev是虚拟的/proc 。 果然,我重新启动了服务器和客户端rm -rf'd在那里的文件。
所以,我的问题是, 是/dev虚拟? 它是像/proc那样的虚拟types吗? 有更多的文件吗? 如何在不重新启动服务器的情况下恢复/dev文件?
很长一段时间的答案是“有点”。
目前,Linux设备树由udevpipe理, udev是几年前取代devfs的用户空间设备pipe理器。 udev根据configuration文件中configuration的规则,将系统所需的任何设备节点填充到/ dev中。
在最新的Linux系统上,/ dev位于由devtmpfs提供的临时RAM磁盘中。 你可以调用这些虚拟的。
例:
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=6109940k,nr_inodes=1527485,mode=755)
现在/ dev中的实际设备节点的唯一原因是启动环境,在udev启动之前。 通常在实际的文件系统中只需要/dev/console和/dev/null ,这足以达到udev可以启动的地步。 它会提供一切。