
Сегодня на работе клиент rm -rf /dev
удалил два файла, из- /dev/shm
за чего его сайт перестал работать.
Из того, что я узнал ранее, /dev
не является виртуальным, но коллега-техник предложил перезагрузить сервер, поскольку /dev
является виртуальным, как /proc
. Конечно, я перезагрузил сервер, и файлы, которые клиент rm -rf'd нашел там.
Итак, мой вопрос: /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 может быть запущен. Затем он предоставит все остальное.