在这里抱怨一下,工资怎么还不发给我呀!!没钱添饱肚子怎么学Linux,不求小康,只求温饱。
今天的实验环境是一台RHEL6.0的机子
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
然后做如下的简单破坏:
##############################################
> #!/bin/sh #
> dd if=/dev/zero of=/dev/sda bs=446 count=1 #
> reboot #
> EOF #
加可执行位。 #
[root@localhost ~]# chmod +x grub.sh #
[root@localhost ~]# ./grub.sh #
##############################################
kikupotter:执行完以后,你就彻底进不去咯。
现在我们要怎么办呢?你可能会想到进急救嘛,这很简单。对呀,因为我做的破坏很简单,如果在生产环境出现的问题会非常多,而且复杂那又要怎么办?靠经验!没经验咋办?所以,我一直觉要知道其中的为什么才真理啊,才能判断出是那里出了问题。
翻译部分:
如果发现系统出现故障,这里有几种方法进行修复。但是一定记住这些方法一定要在你很了解系统的基础上才能进行。这里我们就讨论怎么样进入急救模式,单用户模式,emergency模式,然后运用你的所了解的系统情况进行修复。
从文档的翻译部分我们可以看出要修复系统至少要三方面:
1:了解系统的启动过程。
2:判断系统在那个阶段出现问题了。
3:根据1,跟2选择模式。
第一步:那么按照这个顺序的话,我们先来了解一下开机是如何启动的,都用了哪些文件,启动了什么。
url:
第二步:我们快速的在脑海里有个Linux的开机过程之后,你发现机器卡在是bios这里,就说明grub压根就没有进去。没能进grub那是不是grub没了呢?
第三步:根据前两步,得出可能是grub坏了或者是没了。那么我们就进急救模式进行修复。
修复步骤:
###############################################
//从光盘或者FTP,HTTP,NFS进入rescue模式
//我选择从NFS进入:填写服务器名字,对应的文件夹子
进来以后会有这样的四个选项:
continue:读写挂载根文件系统。
read-only:只读挂载根文件系统。什么都做不了。
skip:跳过这一步直接进入.
advanced:扩展选项
上一步我选了continue:然后告诉我已经挂载了/mnt/sysimage上面了。然后,用chroot /mnt/sysimage来转变身份。
Starting shell...
bash-4.1#
//挂载root 分区
bash-4.1#chroot /mnt/sysimage
//安装grub
sh-4.1#grub-install --no-floppy --recheck "(hd0)"
//重启
sh-4.1#exit
bash-4.1#exit
再选择重启选项。
################################################
系统就这样正常启动了。
刚才可能有点简单咯,那么我们现在再修好的机子上来做一下破坏。
##############################################
#!/bin/sh #
dd if=/dev/zero of=/dev/sda bs=446 count=1 #
rm -rf /bin/bash #
rm -rf /bin/mount #
cp /etc/fstab /etc/fstab.bak #
dd if=/dev/zero of=/etc/fstab count=1bs=64 #
reboot #
##############################################
加可执行位。 #
[root@localhost ~]# chmod +x grub.sh #
[root@localhost ~]# ./grub.sh #
##############################################
之后机子就OMG,卡在reboot界面,死也进不去了。
现在我们来修:
第一步:回顾一下开机过程,启动了什么,用了什么文件。
第二步:开机没有进入grub。可能grub坏了哦。
第三步:安装grub
修复步骤:
###############################################
//从光盘或者FTP,HTTP,NFS进入rescue模式
就在这是光盘说:你没有任何的分区哦,所以你将直接启动shell!
先不管先修grub
Starting shell...
bash-4.1#
//挂载root 分区
bash-4.1#chroot /mnt/sysimage
//这有是什么情况?
说找不到/bin/sh,没有那个文件。 现在不能挂载安装grub。咋办?
cd 到/bin下看 sh 好好的躺在那里。那为什么会提示没有呢,我们看看那个chroot是什么命令。/bin 下面没有chroot。
到这里为止,我手贱就下不去了,哪位大哥可以解释一下,为什么会出现这样的报错,我逆向分析,本机上的/bin/bash 被删除了这个命令怎么就不可用了?
做实验手抖了,呜呜。出现的问题希望大家能帮帮我,救救我的Linux。
################################################
本文出自 “kikupotter” 博客,谢绝转载!