当root密码不小心忘记时,我们可以通过进入单用户模式修改root口令,为了防止别人进入单用户模式修改密码,我们也可以对grub文件加密,提高安全性,要进入单用户模式必须输入口令才能进去。

    1、修改root口令

       CentOS-6系统修改密码和系统修复_linux系统修复

       在系统启动到此界面时,按任意键,进入隐藏菜单

       CentOS-6系统修改密码和系统修复_linux系统修复_02

       进入此菜单,按a键,

       CentOS-6系统修改密码和系统修复_linux系统修复_03

       按a键进入此界面,在后面输入1,进入单用户模式,单用户模式不需要密码直接进入系统

       CentOS-6系统修改密码和系统修复_linux系统修复_04

       进入这个界面后,就可以修改root口令,然后重启,密码就修改完成。


    2、加密grub文件,grub文件加密后,只有知道密码的才能进入到菜单

       [root@localhost ~]# vim /boot/grub/grub.conf 打开grub配置文件

       default=0

         timeout=5

         splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz

         hiddenmenu

         password --md5  $1$Xwsxo$LAmN4y9Gyz7GVu/lRSghL/ 此栏目就是加密grub

         title CentOS 6 (2.6.32-573.el6.x86_64)

         root (hd0,0)

         kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=ca248f95-07df-4836-a807- e0150c5749c7 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

        initrd /initramfs-2.6.32-573.el6.x86_64.img

        CentOS-6系统修改密码和系统修复_linux系统修复_05

      在次重启系统后,按任意键,就不能直接进入到菜单编辑模式,需要输入口令,才能够进入到编辑模式,如果没有密码,直接回车,就可以直接启动系统。

    

     3、破坏系统启动前两个阶段,通过修复grub让系统能够启动起来

        [root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1

          1+0 records in

          1+0 records out

          446 bytes (446 B) copied, 0.0131584 s, 33.9 kB/s

          通过dd命令,破坏sda磁盘的前446个字节,然后重新启动

        CentOS-6系统修改密码和系统修复_linux系统修复_06

        重启之后,就无法进入系统,可以进入救援模式修复

        CentOS-6系统修改密码和系统修复_linux系统修复_07

        进入此界面,光标向下移动,移动到第三项,Rescue,然后回车

        CentOS-6系统修改密码和系统修复_linux系统修复_08

        CentOS-6系统修改密码和系统修复_linux系统修复_09

        CentOS-6系统修改密码和系统修复_linux系统修复_10

        CentOS-6系统修改密码和系统修复_linux系统修复_11

        在此界面下,通过命令chroot切换到根目录,用grub命令修复sda磁盘,然后exit,退回上一级,重新启动系统,就可以修复系统。

        CentOS-6系统修改密码和系统修复_linux系统修复_12


    4、删除/boot目录和/etc/fstab,通过光盘的救援模式可以修复系统

        [root@localhost ~]# rm -rf /boot/*

        [root@localhost ~]# rm -rf /etc/fstab 

        [root@localhost ~]# reboot

      通过上面一些操作,系统将无法启动

      CentOS-6系统修改密码和系统修复_linux系统修复_13

      重新启动会提示以上错误


       CentOS-6系统修改密码和系统修复_linux系统修复_14

       再次启动,到此界面按esc键盘


       CentOS-6系统修改密码和系统修复_linux系统修复_15

       进入此界面,选CD项,从光盘启动


        CentOS-6系统修改密码和系统修复_linux系统修复_16

          进入以上界面,选第三项,进入救援模式

        

          

          CentOS-6系统修改密码和系统修复_linux系统修复_17

          CentOS-6系统修改密码和系统修复_linux系统修复_18

 

          CentOS-6系统修改密码和系统修复_linux系统修复_19

          CentOS-6系统修改密码和系统修复_linux系统修复_20

          CentOS-6系统修改密码和系统修复_linux系统修复_21

        


          进入以下界面,chroot /mnt/sysp_w_picpath/,是切换不过去的,磁盘配置文件被删除后,根目录不能自动挂载,可以用fdisk命令查看磁盘分区,sda2是根目录,sda1是boot目录

          CentOS-6系统修改密码和系统修复_linux系统修复_22


          用mount命令把根目录挂上,然后再用chroot命令切到根上,重新写磁盘配置文件,然后重新启动,让它自动挂载。重复以上步骤,在进入到救援模式。

          CentOS-6系统修改密码和系统修复_linux系统修复_23 

        

          CentOS-6系统修改密码和系统修复_linux系统修复_24 


        

         重新启动之后,把光盘挂载到media文件下,重新安装内i核,现在boot目录下是空目录,安装内核之后,目录下将会生成内核和initrd文件。从光盘拷贝内核到boot目录有点麻烦,就重新安装内核 

         CentOS-6系统修改密码和系统修复_linux系统修复_25

 

         

        CentOS-6系统修改密码和系统修复_linux系统修复_26

        

        

         有了内核之后,用grub命令,生成grub,并重写grub配置文件,然后exit,退出上一级,重新启动系统,就可以把系统给修复。

         CentOS-6系统修改密码和系统修复_linux系统修复_27

         CentOS-6系统修改密码和系统修复_linux系统修复_28

        

         经过以上步骤操作,就可以把启动文件和磁盘配置文件删除的问题重新修复,系统正常启动。






        

CentOS-6系统修改密码和系统修复_linux系统修复_29