==重置root密码
CentOS 7与之前的版本不同,当忘记root密码,并采用GRUB2为启动器时,将无法通过单用户模式重置root密码。
下面将介绍如何重置CentOS 7的root密码。
1. 启动系统,并在GRUB2启动屏显时,按下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.10000.D……”
3. 编辑“/boot/grub2/grub.cfg”
4. 作如下修改
在第一个“menuentry……”前
添加“set superusers=“username””
添加“password_pbkdf2 username grub.pbkdf2.sha… …”
5. 保存,退出,并测试
=====系统的恢复
==修复MBR
MBR(Master Boot Record主引导记录):硬盘的0柱面、0磁头、1扇区称为主引导扇区。其中446Byte是bootloader,64Byte为Partition table,剩下的2Byte为magicnumber。
1. 先进行备份,再破坏
dd if=/dev/sda of=/root/mbr.bak count=1 bs=512 #使用dd命令,将sda的mbr进行备份
dd if=/dev/zero of=/dev/sda count=1 bs=446 #再用zero设备生成446字节的“0”写入mbr
if:input from/of:output from
重启后发现系统已坏
2. 装入系统安装光盘,在光盘引导界面选择“Troubleshooting”
3. 选择救援模式“Rescue a CentOS system”
4. 装选择“Contunue”,以rw模式挂载分区
5. 进入救援模式
6. 使用grub2-install命令重建bootloader,再使用sync写入硬盘,reboot重启系统
grub2-install --root directory=/mnt/sysimage /dev/sda
sync
reboot
7. 验证,重启后无错误,grub正常运行
==修复grub
grub配置文件丢失,开机后会直接进入grub界面,显示为grub>。由于GRUB2的配置文件极其复杂,所以一定要作好备份
1. 先备份再破坏
cd ~
mkdir grub.bak
chmod 600 grub.bak
cp -rf /boot/grub2/* ./grub.bak
2. 重启系统后,进入“grub>”状态,输入以下命令设置启动参数,并启动:
grub>insmod xfs
grub>set root=‘hd0,1’
grub>linux16 /vmlinuz-3.10.0-229.el7.x86_64
root=/dev/mapper/centos-root
grub>initrd16 /initramfs-3.10.0-229.el7.x86_64.img
grub>boot
3. 启运成功后,以“root”身份登录,还原配置
cp -rf ./grub.bak /boot/grub2/*
4. 重启,测试,成功修复