在CentOS 6.2上再次做个练习,#echo "12345" > /etc/passwd 把/etc/passwd里的内容干掉!

结果当然是进不了系统,此类情况我所想到的就是使用单用户模式修复了。5.X的时候一般都是在grub中如下面一行的结尾处加一个单词“single”即可以进入单用户模式。


  1. kernel /vmlinuz-2.6.18-8.el5 single ro root=LABEL=/ rhgb quiet 

然后6.X的却是这样的:


  1. kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=UUID=eb7b1e63-5e8c-4e6c-b87c-140a310e8224 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM 

直接在后面加上"single"居然还是进不了系统,怪……!结果如下图:

Cent OS 6.X 开机错误修复

后来仿照5.X的做法改成kernel /vmlinuz-2.6.18-8.el5 single ro root=LABEL=/ rhgb quiet

出现了下图的提示:

Cent OS 6.X 开机错误修复

有提示就意味着一定有方法!死当活马医,把grub中kernel一行改为


  1. kernel /vmlinuz-2.6.18-8.el5 single ro root=LABEL=/ rhgb quiet rdshell 

系统居然能给出一个debug shell,如图:

Cent OS 6.X 开机错误修复

这就好办了。果断地把etc/passwd恢复就完全正常了。

步骤:


  1. #mount dev/sda2 tmp 首先要知道自己系统是怎么分区的,etc放在哪里 
  2. #cd tmp/etc
  3. #cat passwd- > passwd

OK,直接重启就可以正常运行系统了。