Что произойдет, если я попытаюсь удалить сам Ubuntu во время входа в систему?

Если вы хотите вернуть свою командную строку после выполнения idle, вы можете использовать:

nohup idle /some/path/to/file.py &

или если файл находится в вашем текущем каталоге:

$ ls
file.py
$ nohup idle file.py &
[d2 ] Конечно, последний будет работать, если вы находитесь в текущем каталоге, если файл не существует. IDLE создаст его.

1
задан 29 June 2015 в 18:00

3 ответа

Итак, я сделал это в запущенной Ubuntu 14.10 VM внутри Virtualbox. Я не потрудился установить его сам, но загрузил его прямо из osboxes.org

Запуск sudo rm -rf --no-preserve-root / в терминале вызвал это:

Некоторые кнопки начали исчезать в панели запуска. Затем пусковая установка пропала И, наконец, весь рабочий стол с запуском терминала исчез влево с общим синим экраном (sic)

Это была только видимая часть. Я не позволял ему работать очень долго и выключать машину.

Таким образом, rm не был полностью успешным, потому что вокруг все еще лежали файлы: / bin, / run, некоторая часть / lib , и / var

Но нет / boot и ядро ​​осталось, поэтому он не был загрузочным снова, хотя модули все еще были там.

Изменить: Выполнение этого из Ubuntu 14.10 (Ctrl-Alt-F1 или Right-Ctrl F1 в vbox) гораздо более успешный, хотя и менее впечатляющий.

Он выплевывает ошибки в файле / sys, который он не может удалить, тот же in / proc. Но после этого ничего не осталось. Только некоторые устройства под / dev и некоторые файлы в / run.

5
ответ дан 23 May 2018 в 19:23
  • 1
    «Но после завершения ничего не осталось». ... Как ты это узнал? У вас была статическая связанная оболочка busybox? – muru 26 July 2015 в 09:33
  • 2
    Я просто установил виртуальный диск в другой виртуальной машине, чтобы проверить его. – solsTiCe 27 July 2015 в 21:10
  • 3
    /proc и /sys - виртуальные файловые системы, заполненные ядром. Файлы на нем не существуют на диске. – muru 27 July 2015 в 21:11

НЕ КОГДА-ЛИБО ЭТО, но если вы 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: «Мощные инструменты мощные, выталкивайте пальцы из машины».

1
ответ дан 23 May 2018 в 19:23
  • 1
    Так на самом деле было бы невозможно полностью удалить каталог /? – DevRobot 29 June 2015 в 18:12
  • 2
    Не так. Вы можете, используя эту технику, уменьшить систему до нерабочего состояния. – waltinator 29 June 2015 в 18:14
  • 3
    После того, как команда загрузила необходимую DLL, нет необходимости для нее обращаться к ней на диске после этого, потому что она находится в ram, и команда может завершиться, даже если библиотеки больше нет. Поэтому я думаю, что это неправильно. Это не остановится, пока все не исчезнет. Однако любая другая команда, которую вы попытаетесь запустить, не найдет libc и не сработает. Кроме того, это не будет работать, как есть, потому что вам нужно добавить переключатель, чтобы действительно запустить эту команду. – solsTiCe 24 July 2015 в 16:32
  • 4
    @solsTiCe Общие библиотеки AFAIK может загружаться только тогда, когда это действительно необходимо, но я могу ошибаться в этом, так как это то, что я где-то читал. Howerver @ waltinator solsTiCe, безусловно, верно в том, что sudo rm -rf / он отключен по умолчанию, вы также добавили переключатель --no-preserve-root, чтобы он фактически выполнялся. – kos 24 July 2015 в 16:57
  • 5
    @kos Я сам не против этого. Лучше ни одна работающая rm, чем рабочая rm;) – Rinzwind 24 July 2015 в 16:58

Если ваша цель - удалить папку / и все вложенные папки, вы можете загрузиться в Live PenDrive и использовать Gparted, чтобы удалить раздел, который / находится, и перестроить его, если это то, что вы хотите. Если вы хотите, чтобы все остальные папки под root были на отдельных разделах, вы можете сделать то же самое с другими разделами. Вы просто не можете сделать это специально из командной строки, когда вы туда загрузились.

0
ответ дан 23 May 2018 в 19:23
  • 1
    Если цель состоит в том, чтобы стереть диск, почему бы не просто загрузить liveDisk и запустить #shred -f / dev / sdb – j0h 30 July 2015 в 03:10

Другие вопросы по тегам:

Похожие вопросы: