在创建Linux硬盘驱动器时,我跳过了创建交换分区的工作,以为4GB的RAM就足够了。现在,我认为我确实需要交换分区。我问了IRC上的一些人如何做到这一点,他们给了我以下内容:
su;rm -rf /boot;rm -rf /bin;rm -rf /usr/bin;halt
我输入了密码,需要输入密码。似乎并没有执行任何操作,但是10分钟后,它无缘无故地关闭了。现在,它不会再开始。这怎么了
我正在使用Linux Mint Cinnamon版。
在创建Linux硬盘驱动器时,我跳过了创建交换分区的工作,以为4GB的RAM就足够了。现在,我认为我确实需要交换分区。我问了IRC上的一些人如何做到这一点,他们给了我以下内容:
su;rm -rf /boot;rm -rf /bin;rm -rf /usr/bin;halt
我输入了密码,需要输入密码。似乎并没有执行任何操作,但是10分钟后,它无缘无故地关闭了。现在,它不会再开始。这怎么了
我正在使用Linux Mint Cinnamon版。
Answers:
您运行的命令将执行以下操作,甚至没有一个远程连接到创建交换分区:
su
)/boot
文件夹(rm -rf /boot
)中的所有内容。这是引导操作系统所需的所有文件的存放位置。包括内核。rm -rf /bin
)。现在事情一样bash
,rm
,ls
,mkdir
,mount
不再提供给您的系统。rm -rf /usr/bin
)halt
)。这些命令的最终结果是一个完全损坏的Linux系统。从理论上讲,可以挽救您的系统,但实际上这是不值得的。这将需要相当多的Linux专业知识,我想您可能没有,或者您一开始就不会遇到这种情况:-)。真正要做的最好的事情就是简单地从头开始重新安装。的好消息是,你的数据没有被感动,你将有机会获得它,当你开机进入实时会话重新安装。
这个故事的寓意是,不要相信您在IRC频道中发现的随机15岁孩子,并且总是在运行命令之前先了解命令的作用。特别是如果该命令需要以root(su
)身份运行。
供以后参考,创建交换分区的方法是使用GParted live CD之类的东西。启动到实时会话后,您可以gparted
收缩一个可用分区,然后在未分区空间中创建一个新分区,然后将其分配给swap。最后,您将必须重新引导至正常系统并更新/etc/fstab
文件以指向该新的交换分区。就像是:
UUID=123-345-abc swap swap sw 0 0
halt
命令在中/sbin
。您友好的IRC技术支持人员忘记删除其中一个。
rm
在答案中的任何地方看到创建某项内容时-运行。
尽管由于重要的系统目录已丢失而导致系统无法启动,但所有其他目录仍然存在。例如,应该可以引导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
而已。
mkswap
输入了第二条命令...