一个Ubuntu命令把我的系统搞崩了?

我几天前在我的电脑上新安装了Ubuntu,用来运行一个独占的程序。我已经完成了使用它的任务,打算重新格式化硬盘并安装Windows系统。然而,我的小弟弟想在终端上运行一个命令,这个命令会摧毁操作系统。我觉得既然我打算重新格式化硬盘,那么运行这个命令应该没有关系。
sudo rm -rf --no-preserve-root /

抱歉,如果这个命令是用来毁灭世界之类的,请原谅我的菜鸟操作。所以它搞砸了操作系统,我用Windows安装U盘重新启动了电脑,计划在Windows安装程序中格式化硬盘。
然而,重新启动后,显示器完全没有接收到任何输入。此外,硬盘指示灯(或者说红灯)没有起作用。(事实上,它是关着的。)风扇还在工作,DVD驱动器也是如此。(我不认为里面有一台电脑扬声器,所以如果你需要一些蜂鸣错误代码,抱歉。)
我尝试将VGA线从显卡插槽换到主板上,但仍然没有信号输入。我试图将旧的Windows XP光盘放入光驱,但没有任何显示。疯狂按下Delete、F12等按钮,但没有任何反应。然后我上网查找并尝试了重新安装内存条的建议,但没有任何变化。我打算手动重置CMOS,但还没有开始。(如果你打算建议这样做,请告诉我,因为我不想不必要地搞砸电脑。)
我有UEFI,所以如果BIOS损坏,我可以使用备份芯片。

7删除文件绝对不会毁坏硬盘。在Windows命令行中,该命令与输入del -s c:\*.*相同(如果我对DOS语法的记忆是正确的话)。当然,删除操作系统会导致操作系统无法正常运行,但不会有其他更严重的后果。你应该能够看到GRUB提示符。你遇到的问题与Ubuntu无关,可能是其他原因引起的。即使硬盘损坏,也不会影响USB或DVD启动。 - Marty Fried
1可能是如何移除Ubuntu并重新安装Windows?的重复问题 - 这就是你最终想要做的,对吗?除此之外,你的问题与Ubuntu无关,因为你的兄弟几乎用那个命令将其删除了。 - David Foerster
5个回答

这在运行systemd的UEFI系统上是可能的。

总结一下,引用那个错误报告中的一条评论

点1: 删除/sys/firmware/efi/efivars/会破坏你的EFI配置,但在正确实现的EFI中,这是可以恢复的。
点2: 有一些硬件存在着破损/实现不良的EFI,通过对它们进行标准操作可能会永久砖化。例如,Ubuntu在某些Samsung笔记本电脑上存储额外数据导致了砖化。这种行为在标准上是可以接受的,但却破坏了这个特定的实现。
点3: 以root身份运行任何写入/dev/sda的操作将破坏你的分区表和/或文件系统。如果没有备份,这是很糟糕的,但在重新分区、创建新的文件系统和重新安装操作系统后,你的机器将能够正常工作。因此,你可以通过引导其他媒体并重新安装来恢复它。
点4: 破坏你的EFI是一个完全不同的问题。在最糟糕的情况下,你将无法对机器进行任何操作,因为它无法启动POST。无法从其他媒体引导,也无法进入某个EFI实用程序来修复丢失的内容。此时,你的计算机就成了一块非常昂贵的纸镇。
问题出现在运行systemd并将efivarfs挂载为可写(位于/sys/firmware/efi/efivars)的发行版上。Systemd需要在此处写入,因此使用systemd的发行版会受到影响。然而,并没有迹象表明Upstart系统受到影响。

@PeterMortensen 或许可以使用 sudo find / -xdev -delete - muru
@PeterMortensen sudo dd if=/dev/zero of=/dev/[在这里填写你的存储驱动器] - Aaron Franke

运行命令rm -rf /可以使任何UEFI设备变砖(包括我正在使用的这台设备)。这样做会删除所有文件,包括已挂载的驱动器和EFI固件变量(这就是造成设备变砖的原因)。Linux将EFI变量挂载在/sys/firmware/efi/efivars/目录下,而rm -rf /将删除该文件夹中的所有文件(即EFI变量)。您的计算机很可能无法修复(EFI使用NVRAM)。
旧版BIOS计算机不会因为rm -rf /而变砖,因为它们没有可以被删除的EFI固件变量。此外,在Windows上也可以用几行代码完成相同的操作(删除所有EFI变量)。

通常情况下,删除文件不会破坏硬盘(见我在末尾的编辑 - 显然有一种方法可以)。该命令与在Windows命令行中输入del -s c:*.*是相同的(如果我对DOS语法记忆正确的话)。当然,删除操作系统将导致操作系统出现故障,但不会有其他影响。

如果您连同其他内容一起删除引导目录,甚至整个分区,您实际上仍然会得到一个GRUB提示符。 GRUB引导加载程序不会被擦除,因为它不是目录结构的一部分,但其菜单是,所以它应该仍然会尝试加载并显示错误信息。

您有其他问题,与Ubuntu无关。即使磁盘损坏,也不会影响USB或DVD启动过程。

编辑:好吧,我想我的答案已经过时了,由于UEFI BIOS,这是我知之甚少的东西。显然,删除关键的UEFI配置信息是可能的。我认为发生的情况是,它被挂载到文件系统上,如果操作不正确,它将不是只读的,并且可以被擦除,从而从BIOS中擦除它。


有些硬盘故障可能会导致启动自检(POST)卡住。曾经遇到一块涂层较厚的硬盘,如果周末不使用,就会冻结,这真的会让一切都停下来,直到我用铅笔橡皮敲打硬盘,才使其恢复正常。(供应商后来更换了硬盘)。 - ubfan1
1在我使用电脑的20多年里,我遇到过很多坏掉的硬盘,但从来没有一个影响到POST。在计算机完成POST之前,它甚至不会访问硬盘。也许如果连接器上有短路,但那与软件无关。 - Marty Fried
我试过断开硬盘,但还是没有反应。我感觉太蠢了。 - You
可能只是BIOS故障吗?这在操作系统被损坏后立即发生,重新启动后,所以要么这只是巧合,要么就是那个命令的原因。 - You
请看这个答案:http://askubuntu.com/a/767286/518562 - You'reAGitForNotUsingGit
@AndroidDev:显然,我错了,这是可能的。当时,我不知道UEFI配置数据可以被挂载然后擦除。我一直在考虑传统的BIOS。UEFI是我试图忽视的东西,因为我根本不使用Windows,也没有任何经验。现在我有了,但我希望我没有。 :-) - Marty Fried
1别担心!说实话,如果我没有看到我给你链接的那个答案,我也会写出完全相同的回答。我一直讨厌UEFI,但现在我更加讨厌它了十倍... - You'reAGitForNotUsingGit
@AndroidDev:我正在我的主要桌面上使用它,但一直想停下来。但是我喜欢尝试新事物,所以我还在使用它。当Grub 2刚出来时,我也有同样的感觉,但还是使用了它。 - Marty Fried

我曾经有过这样的经历,如果你的硬盘使用了Windows不认识的格式(比如ext4),那么Windows安装程序可能会卡住。
在这种情况下,你应该使用GParted(比如this one)运行Linux LiveCD,并将你的硬盘格式化为类似于NTFS或FAT32的格式,然后再尝试安装Windows。

2他的机器无法启动POST。 - headkase
1@Bill 尽管他提到了BIOS,但他说他的电脑在“Windows安装USB”和“Windows XP光盘”上变得没有响应,所以这仍然可能是问题所在。 - admirabilis
1他的显示器没有信号,没有硬盘指示灯,也没有BIOS屏幕。甚至连POST都没有启动: http://zh.wikipedia.org/wiki/上电自检 - headkase

主要问题在于文件系统可以跨设备。这包括任何已挂载的内容。这对UEFI来说是个问题。嘿,对Android也是个问题。如果你有一个已挂载的相机,比如说,你也删除了DCIM的内容,对吧?那么,你学到了什么?制造商可能能帮助你,你也可以通过其他方式刷机。
下次用dd if=/dev/zero擦除磁盘,而且轻率地删除东西迟早会让你后悔。这一切都将以泪水收场。实际上,像这样恶作剧可能会让你坐牢,这比在根目录中使用del .命令更糟糕。