当root密码不小心忘记时,我们可以通过进入单用户模式修改root口令,为了防止别人进入单用户模式修改密码,我们也可以对grub文件加密,提高安全性,要进入单用户模式必须输入口令才能进去。
1、修改root口令
在系统启动到此界面时,按任意键,进入隐藏菜单
进入此菜单,按a键,
按a键进入此界面,在后面输入1,进入单用户模式,单用户模式不需要密码直接进入系统
进入这个界面后,就可以修改root口令,然后重启,密码就修改完成。
2、加密grub文件,grub文件加密后,只有知道密码的才能进入到菜单
[[email protected] ~]# vim /boot/grub/grub.conf 打开grub配置文件
default=0
timeout=5
splashimage=(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
在次重启系统后,按任意键,就不能直接进入到菜单编辑模式,需要输入口令,才能够进入到编辑模式,如果没有密码,直接回车,就可以直接启动系统。
3、破坏系统启动前两个阶段,通过修复grub让系统能够启动起来
[[email protected] ~]# 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个字节,然后重新启动
重启之后,就无法进入系统,可以进入救援模式修复
进入此界面,光标向下移动,移动到第三项,Rescue,然后回车
在此界面下,通过命令chroot切换到根目录,用grub命令修复sda磁盘,然后exit,退回上一级,重新启动系统,就可以修复系统。
4、删除/boot目录和/etc/fstab,通过光盘的救援模式可以修复系统
[[email protected] ~]# rm -rf /boot/*
[[email protected] ~]# rm -rf /etc/fstab
[[email protected] ~]# reboot
通过上面一些操作,系统将无法启动
重新启动会提示以上错误
再次启动,到此界面按esc键盘
进入此界面,选CD项,从光盘启动
进入以上界面,选第三项,进入救援模式
进入以下界面,chroot /mnt/sysimage/,是切换不过去的,磁盘配置文件被删除后,根目录不能自动挂载,可以用fdisk命令查看磁盘分区,sda2是根目录,sda1是boot目录
用mount命令把根目录挂上,然后再用chroot命令切到根上,重新写磁盘配置文件,然后重新启动,让它自动挂载。重复以上步骤,在进入到救援模式。
重新启动之后,把光盘挂载到media文件下,重新安装内i核,现在boot目录下是空目录,安装内核之后,目录下将会生成内核和initrd文件。从光盘拷贝内核到boot目录有点麻烦,就重新安装内核
有了内核之后,用grub命令,生成grub,并重写grub配置文件,然后exit,退出上一级,重新启动系统,就可以把系统给修复。
经过以上步骤操作,就可以把启动文件和磁盘配置文件删除的问题重新修复,系统正常启动。