重置root密码
centos7与之前的版本不同,当忘记root密码,并采用GBUB2为启动器时,将无法通过单用户模式重置root密码。下面将介绍如何重置centos7的root密码。
1.启动系统,并在GBUB2启动屏显时,按下e键进入编辑模式。
2.进入后,找到“linux16”开头的地方,按“end”键到最后,输入“rd.break”,按“ctrl+x”进入。
3.输入“mount -o remount, rw /sysroot/” 命令,重新挂载系统分区。
4.再输入“chroot /sysroot/” 命令,改变根
5.修改“root” 密码
6.如果系统之前启用了selinux,必须运行“touch /.autorelabel” 命令,否则将无法正常启动系统
7.然后按“Ctrl+d” 退出
8.输入“reboot”命令重启
为防止随意修改增强安全性的做法
为GRUB2菜单加上防编辑密码,以防止一些恶意者像刚才一样修改root密码的行为
1.用“grub2-mkpasswd-pbkdf2”命令生成加密口令
2.复制如下部分“grub.pbkdf2.sha512.1000.D”
3.编辑 “/boot/grub2/grub.cfg”
4.作如下修改
添加“set superusers="username" ”
添加“passwd_pbkdf2 username grub.pbkdf2.sha... ... (后面那一块是上几步复制的)”
5.保存,退出,并测试
修复MBR(master boot record)
MBR:硬盘的0柱面,0磁头,1扇区称为主引导扇区,其中446Byte是bootloader,64Byte为Partition table,剩下的2Byte为magic number。
1.先进行备份,再破坏。
使用dd命令,将sda的mbr进行备份
dd if=/dev/sda of=/root/mbr.bak count=1 bs=512
再用zero设备生成446字节的“0”写入mbr
dd if=/dev/zero of=/dev/sda count=1 bs=446
重启后发现系统已坏
2.装入系统安装光盘,在光盘引导界面选择“Troubleshooting”
3.选择救援模式“Rescue a Centos system”
4.接着选择“continue” ,以rw模式挂载分区
5.进入救援模式
6.使用grub2-install命令重建bootloader,再使用sync写入硬盘,reboot重启系统。
命令:grub2-install --root-directory=/mnt/sys image /dev/sda
sync
7.验证,重启后无错误,grub正常运行。
修复GRUB
grub配置文件丢失,开机后会直接进入grub界面,显示为grub>
由于GRUB2的配置文件及其复杂,所以一定要做好备份
1.先备份再破坏
mkdir grub.bak
chmod 600 grub.bak
ll
cp -rf /boot/grub2/* ./grub.bak
rm /boot/grub2/grub.cfg //破坏
2.重启系统后,进入“grub>”状态,输入以下命令设置启动参数,并启动:
grub>install xfs //xfx 格式
grub>set root='hd0,1' //从第0块磁盘,第一个分区(linux的第一个分区一般是boot,给它小于1G的空间)
grub>linux16 /vmlinuz-3.10.0-229.el.x86_64
root=/dev/mapper/centos-root
grub>initrd16 /initramfs-3.10.0-229.el7.x86_64.img
grub>boot //可以按tab键获得提示
3.启动运行成功后,以root身份登录,还原配置。
cd
cd ./grub.bak/grub.cfg /boot/grub2/
4.重启,测试,成功修复