Роман Теличко

Заметки веб-разработчика/админа

Что будет если выполнить rm -Rf / в Линуксе?

// | 3405 просмотров | комментариев (0)

Как известно, команда удаления всех данных рекурсивно вниз без задавания лишних вопросов для заданной папки в Линукс выглядит как rm -Rf .
И тут возникает вопрос:
«А что будет если такой папкой будет корневой каталог системы (/)?»

Чтобы проверить это, я установил себе на виртуальную машину Ubuntu Server 13.04.
Итак, запускаем:

sudo rm -Rf /

На что система мне ответила, что нужно добавить ещё один параметр
--no-preserve-root

rm -Rf /

Добавляем и запускаем:

sudo rm -Rf --no-preserve-root /

ВНИМАНИЕ: Ни в коем случаи не повторяйте это дома 🙂

Это запустило удаление, что сопровождалось руганью в стиле «Отказано в доступе».

rm -Rf --no-preserve-root /

И когда оно всё-таки выполнилось я попробовал перезапустить систему. А поскольку команды reboot уже не было, пришлось «дёргать» заветными тремя кнопками.

Не сложно догадаться, что после этого система уже не запустилась.

grub error loading

Так что — случайно удалить систему не получится, т.к. есть заветная спасающая опция --no-preserve-root.

Во избежания подобных ситуаций, я рекомендую ставить пакет safe-rm
Делается это так:

sudo apt-get install safe-rm

У него есть конфигурационный файлик /etc/safe-rm.conf, в который можно дописать те пути, что вы бы не хотели случайно удалить.

Вот например добавим в него путь /var и попробуем его удалить:

sudo rm -Rf /var

Но нас остановит safe-rm выдав следующее сообщение:

safe-rm

Пользуйтесь!
Удачи.