/
如果我以 root 身份登录 Ubuntu 时删除该目录,会发生什么情况?
我会得到某种错误吗Error: unable to self-destruct
?或者我实际上可以删除该目录吗?
答案1
我确实在 USB 上尝试过这个来回答Quora 上的一个问题不久前(Eric Bowersox 还给出了另一个很好的答案)。
第一次在已安装的系统上尝试,我确信不会发生任何事情:
# 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 上尝试了它(引用我的原始帖子):
Eric Bowersox 鼓励我在实时 USB 上试用它(不持久化)。正如他所说,大量有关当前正在使用的文件的错误,加上另一组有关正在使用的只读文件系统的错误,最终导致 GUI 的部分逐渐消失:首先是 Unity 启动器中的图标,然后是 HUD 图标,然后是系统托盘中的图标。当所有操作结束时(非常快),只有终端可以聚焦,单击其他任何地方都不起作用。我可以打开其他任何东西,甚至连终端的首选项都不能打开。本地化和时钟小程序的菜单打开了,但不起作用。
切换到其他 tty 一次成功(我没有尝试任何命令),但是一旦我切换回 GUI,什么都不起作用。
此时什么都不起作用。除了电源按钮和 Magic SysRq 键。
删除共享库或其rm
本身不会导致任何问题,因为它们在rm
启动时都会被加载到内存中。
答案2
所以我连续做了Ubuntu 14.10虚拟机内部虚拟盒。我没有费心自己安装,而是直接从osboxes.org
sudo rm -rf --no-preserve-root /
在终端运行导致出现以下情况:
那只是看得见的部分。我没有让它运行太久就关闭了机器。
因此rm
没有完全成功,因为仍有一些文件残留:/bin、/run、/lib 的某些部分和 /var
但是没有 /boot 也没有内核,所以即使模块仍然存在,也无法再次启动。
编辑:从安慰(Ctrl-Alt-F1 或在 vbox 中按右 Ctrl-F1)虽然不那么引人注目,但更为成功。
它吐出有关无法删除 /sys 文件的错误,/proc 中也是如此。但完成后什么也没有留下。只有 /dev 下的一些设备和 /run 中的一些文件。
答案3
永远不要这样做,但是如果你执行了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:“强大的工具才是强大的,不要让手指触及机器”。
答案4
如果您的目标是删除 / 文件夹及其所有子文件夹,您可以启动 Live PenDrive 并使用 Gparted 删除 / 所在的分区并重建它(如果这是您想要的)。如果您想要 root 下位于不同分区的所有其他文件夹,您可以对其他分区执行相同操作。当您从命令行启动时,您无法故意从命令行执行此操作。