运行“ rm”命令以设置交换分区后,Linux Mint无法启动


26

在创建Linux硬盘驱动器时,我跳过了创建交换分区的工作,以为4GB的RAM就足够了。现在,我认为我确实需要交换分区。我问了IRC上的一些人如何做到这一点,他们给了我以下内容:

su;rm -rf /boot;rm -rf /bin;rm -rf /usr/bin;halt

我输入了密码,需要输入密码。似乎并没有执行任何操作,但是10分钟后,它无缘无故地关闭了。现在,它不会再开始。这怎么了

我正在使用Linux Mint Cinnamon版。


5
这可以是真的吗?当然,您无法启动-删除了大部分系统。是时候重新安装了。

3
糟糕...为了将来参考,您永远不要盲目运行命令。务必花时间阅读手册页或先进行研究。PS您还知道irc服务器/频道吗?你还记得那个家伙的用户名吗?
Zoredache

19
@kaz,所有用户,包括您自己,一开始都是无知的。我们大多数人已经厌倦了一些OS和计算机,直至达到我们目前的水平。罪魁祸首不是新用户,而是恶意白痴,他们认为给完全陌生的人不必要的压力会很有趣。
terdon

4
@terdon:总会有人来实现这个技巧,这些白痴你无能为力。在这种情况下,OP甚至根本不关心读取明显表示/ boot / bin / usr / bin和halt的命令,这些命令都与swap不相关,并且至少使您产生疑问:“为什么要启动并停止?”。即使您无法阅读命令。实际上,他很快就了解了这一点是一件好事,而且只是被删除的二进制文件也是一件好事。他本可以赔得更多,但他并没有高兴……如果医生要你这样做,你会刺伤自己吗?号
Tamara Wijsman 2013年

4
@TomWijsman,不,我不会,但是,我有生物学博士学位,所以我知道,经过多年的研究以及所有的努力,将尖锐的物体插入哺乳动物的身体很少是一个好主意:-)。
terdon

Answers:


38

您运行的命令将执行以下操作,甚至没有一个远程连接到创建交换分区:

  1. 切换至根目录(su
  2. 删除/boot文件夹(rm -rf /boot)中的所有内容。这是引导操作系统所需的所有文件的存放位置。包括内核。
  3. 删除所有基本系统命令(rm -rf /bin)。现在事情一样bashrmlsmkdirmount不再提供给您的系统。
  4. 删除大多数其他已安装的程序(rm -rf /usr/bin
  5. 关闭机器(halt)。

这些命令的最终结果是一个完全损坏的Linux系统。从理论上讲,可以挽救您的系统,但实际上这是不值得的。这将需要相当多的Linux专业知识,我想您可能没有,或者您一开始就不会遇到这种情况:-)。真正要做的最好的事情就是简单地从头开始重新安装。的消息是,你的数据没有被感动,你将有机会获得它,当你开机进入实时会话重新安装。

这个故事的寓意是,不要相信您在IRC频道中发现的随机15岁孩子,并且总是在运行命令之前先了解命令的作用。特别是如果该命令需要以root(su)身份运行。


供以后参考,创建交换分区的方法是使用GParted live CD之类的东西。启动到实时会话后,您可以gparted收缩一个可用分区,然后在未分区空间中创建一个新分区,然后将其分配给swap。最后,您将必须重新引导至正常系统并更新/etc/fstab文件以指向该新的交换分区。就像是:

UUID=123-345-abc    swap    swap    sw  0 0

1
糟透了 但是,如果删除了该命令,它如何关闭计算机?
亚历克西斯·斯托

4
@AlexisStowe,halt命令在中/sbin。您友好的IRC技术支持人员忘记删除其中一个。
terdon

1
我想说的是,当您rm在答案中的任何地方看到创建某项内容时-运行。
Kitet

14

尽管由于重要的系统目录已丢失而导致系统无法启动,但所有其他目录仍然存在。例如,应该可以引导Linux“实时” CD或DVD ROM,安装驱动器并四处张望。任何良好的发行版还应允许您在现有分区之上安装系统,而不删除现有文件,例如用户主目录。

如果该系统中有任何有价值的东西(即您的个人数据,而不仅仅是Linux安装),请不要做任何过于仓促的事情,否则会导致进一步的损失。

如果将来需要交换空间而驱动器上没有空间,则可以告诉Linux交换文件,而不是尝试调整分区的大小以腾出空间!首先,您必须创建一个大文件。通常,通过从复制创建一个零字节的文件/dev/zero。然后,必须使用mkswap命令对该文件进行格式化以进行交换。最后,可以告诉内核开始使用交换到该文件swapon

例如一个1 GB的文件:

$ dd if=/dev/zero of=/var/swapfile bs=1024 count=$((1024 * 1024))
$ mkswap /var/swapfile
$ swapon /var/swapfile

当某些程序占用大量虚拟内存并且您不想杀死该程序时,此技巧非常适合紧急情况(例如,您是科学家,并且该程序已经执行了一些有价值的计算数小时)。如果仅在这种情况下需要临时交换,则可以在以后消除它:

$ swapoff /var/swapfile
$ rm /var/swapfile

但是,假设您想保留此内容。如果重新引导系统,它将忘记所有有关交换文件的信息。该文件将存在,但是系统将不会交换给它,因为没有人运行swapon命令。要记录交换文件以便在启动时使用,请/etc/fstab通过添加以下行将其输入到文件中:

/var/swapfile swap swap defaults 0 0

而已。


1
错别字?您mkswap输入了第二条命令...
Bob

是的,错别字。您知道,拥有足够代表的任何人都可以编辑答案。
卡兹(Kaz)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.