一、更改root用户的密码
启动时用上下键停留在选择界面,按e进入,更改linux16这行,从后往前删到ro,输入rw rd.break,然后按Ctrl+X,进入输命令界面。
chroot /sysroot/
passwd 修改成自己想改变的密码
touch /.autorelabel ##selinux识别后可以进入了
exit
exit两边输完将会重启。
二、硬盘引导阶段 mbr主引导记录的恢复((假如446字节被篡改))
先看自己的虚拟机是那个版本的,hostmanectl (这里我的虚拟机快照是7.2版本的)
然后在正常情况下查看自己的server:fdisk -l 得到/dev/vda(看*在那里)
先制造446字节被篡改的错误:
dd if=/dev/zero of=/dev/vda bs=46 count=1(截取446字节)
reboot
这里就启动不起来了
只能进入挽救模式了(挽救模式的进入后面不再进行赘述):
三、文件引导阶段
先df查看自己的/boot分区是挂载的还是独立的
#1)引导文件缺失
引导文件:/boot/grub2/grub.cfg
模拟问题:rm -rf /boot/grub2/grub.cfg
##当系统没有重新启动时
grub2-mkconfig > /boot/grub2/grub.cfg
##当系统被重新启动
grub > set root='hd0,msdos1' ##此位置是不固定的,位置指定/boot所在分区:/boot被挂载到了vda1的情况
grub > linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1 ##根分区的设备名称
grub > initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img ##初始化
grub > boot
##以上操作可以使系统正常启动,但是临时的,所以进入系统后需要执行:
grub2-mkconfig > /boot/grub2/grub.cfg
#2)内核文件丢失
#模拟问题: rm -rf /boot/vmlinuz-3.10.0-123.el7.x86_64
进入到挽救模式
chroot /mnt/sysimage
df可以查看根
mkdir /westos ##名称可以改变
mount /dev/sr0(内核) /westos/
cd /westos
ls 看到有一个Packages
cd Packages/
尽量不要在这里用ls
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt/ ##这里复制的地方自己指定
cd /mnt/
ls可以看到initramfs-3.10.0-123.el7.x86_64.img和kernel-3.10.0-123.el7.x86_64.rpm的内核包
rm -rf initramfs-3.10.0-123.el7.x86_64.img
ls
拆包:rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id
cd boot/
ls -l
看到vmlinuz-3.10.0-123.el7.x86_64
cp vmlinuz-3.10.0-123.el7.x86_64 /boot/
关闭
重新修改启动优先级为hard disk
启动
四、初始化镜像被误删了
(系统版本号使用uname -r查看)
模拟问题:rm -rf /boot/initramfs-3.10.0-123.el7.x86_64.img
#当系统没有重启时
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
#当系统重启了时
进入挽救模式:
chroot /mnt/sysimage
cd /boot/
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
exit
exit
重启成功
五、/boot分区内容被删除
进入到挽救模式:
chroot /mnt/sysimages
1.硬盘引导阶段修复:
2.内核恢复:
3.初始化镜像恢复:
exit
exit
更改disk优先于cd rom,重新启动。