Что произошло бы, если я удаляю /
каталог, в то время как зарегистрировано как корень в Ubuntu?
Я получил бы своего рода ошибку к эффекту Error: unable to self-destruct
? Или я на самом деле смог бы удалить каталог?
Я действительно пробовал это на живом USB для ответа на вопрос о Quora некоторое время назад (есть еще один отличный ответ Эрика Бауэрсокса).
Первая попытка на установленной системе, где я был уверен, что ничего не произойдет:
# cd /
# rm -rf /
rm: it is dangerous to operate recursively on `/'
rm: use --no-preserve-root to override this failsafe
# rm -rf .
rm: cannot remove directory: `.'
#
Итак, я попробовал это на живом USB (цитата из моего исходного поста):
[ 119] Эрик Бауэрсокс вдохновил меня попробовать его на живом USB (без настойчивости). Как он сказал, огромное количество ошибок об используемых в настоящее время файлах, плюс еще один огромный набор ошибок об используемой файловой системе, доступной только для чтения, в конечном итоге приводили к постепенному исчезновению частей графического интерфейса: сначала значки в панели запуска Unity, затем значок для HUD, затем значки в системном трее. Когда все закончилось (удивительно быстро), только терминал мог сосредоточиться, щелкнув где-либо еще, не сработало. Я мог открыть что-нибудь еще, даже не настройки терминала. Меню локализации и часовые апплеты открывались, но не работали.
Переключение на другие ttys работало один раз (я не удосужился попробовать какие-либо команды), но как только я переключился на GUI, ничего не получалось.
На данный момент ничего не работает. За исключением кнопки питания и клавиш Magic SysRq.
blockquote>
Удаление разделяемых библиотек или самого
rm
не должно вызывать каких-либо проблем, поскольку обе они были бы загружены в память при запускеrm
.
Таким образом, я сделал это в выполнении Ubuntu 14.10 VM в Virtualbox. Я не потрудился устанавливать его сам, но загрузил тот непосредственно от osboxes.org
, Выполнение sudo rm -rf --no-preserve-root /
в терминале вызвало это:
, Который был только видимой частью. Я не позволял ему работать очень долго и закрываю машину.
Так rm
не был полностью succesfull, потому что были некоторые файлы, лежащие вокруг все еще: / мусорное ведро, / выполненный, некоторая часть / lib, и/var
, Но никакой / загружаются и никакое ядро, оставленное, таким образом, это было не загрузочным снова даже при том, что модули были все еще там.
Редактирование : Выполнение его от консоль (Ctrl-Alt-F1 или Правильный-Ctrl F1 в vbox) является намного большим количеством sucessfull, хотя менее захватывающий.
Это выкладывает ошибки о/sys файле, который это не может удалить, то же в/proc. Но нет ничего после того, как это завершится. Только некоторые устройства под/dev и некоторые файлы в выполненном/.
НИКОГДА не делайте ЭТОГО, но если бы Вы сделали sudo rm -rf /
эти rm
, то команда, работая как root
, счастливо начала бы удалять. Если бы это нашло файл, это удалило бы его. Если бы rm
нашел каталог, он ввел бы каталог, удалил бы все файлы, то удалил бы каталог. В конечном счете, rm
исчерпает файлы для удаления или удалит потребности файла rm
(как динамическая библиотека):
$ ldd $( type -p rm)
linux-vdso.so.1 => (0x00007ffd4a978000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f905b7be000)
/lib64/ld-linux-x86-64.so.2 (0x00007f905bbcc000)
, Когда rm
удалит /lib/x86_64-linux-gnu/libc.so.6
или /lib64/ld-linux-x86-64.so.2
, это, вероятно, повредится.
Linux берет свою философию от Unix: "Мощные инструменты мощны, не допускают пальцы в оборудование".
Если ваша цель - удалить папку / и все подпапки, вы можете загрузить Live PenDrive и использовать Gparted, чтобы удалить раздел /, который включен, и перестроить его, если вы этого хотите. Если вы хотите, чтобы все другие папки в корневом каталоге находились в отдельных разделах, вы можете сделать то же самое с другими разделами. Вы просто не можете сделать это специально из командной строки, когда вы загрузились.