一、修复446字节的grub2数据损坏:
破坏过程:
dd if=/dev/zero of=/dev/vda bs=446 count=1
reboot
重启后无法登陆系统
修复过程:
关闭虚拟机,使用相应版本的iso镜像通过光驱进行系统修复
添加光驱,选择iso镜像路径,finish
设置boot options,将启动顺序调整为光驱优先,打开虚拟机
选择troubleshooting拯救模式,选择rescue a red hat enterprise linux system,点击continue-ok-ok,得到shell
进入shell后输入chroot /mnt/sysimage/,将/dev/vda挂载回/目录
再输入grub2-install /dev/vda 安装mbr
连续输入exit两次,退出
注意:为加快启动速度,可在shell中进入selinux配置文件,将selinux关闭
待系统进入光驱修复界面后关闭虚拟机,进入boot options将光驱启动调至硬盘后面,重新启动即可修复
二、修复linux系统缺少引导文件
破坏过程:
rm -fr /boot/grub2/grub.cfg
reboot
删除自动引导文件后开机需要手动引导
修复过程:
set root=‘hd0,msdos1’
注意:之前/boot分区挂载在哪里,此处引号中就输入相应内容,hd0表示第一块硬盘,msdos1表示第一个分区
linux16 /boot/vmlinuz-3.10xx ro root=/dev/vda1
注意:第二步后加入selinux=0可以关闭selinux
initrd16 /boot/initramfs-3.10xx
boot ##引导结束,启动系统
进入系统后,恢复自动引导文件,在shell中输入下面的命令:
grub2-mkconfig > /boot/grub2/grub.cfg ##恢复自动引导文件
延伸:window系统手动引导
c
set root='hd0,msdos1'
chainloader +1
boot
三、修复系统缺少内核文件
破坏过程:
rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64
reboot
重启后无法正常启动
修复过程:
内核文件在系统安装时安装包里的文件,如果内核文件被删除,通过光驱启动拯救模式得到shell
重新挂载/目录,然后通过光驱镜像得到安装包,解压后进入boot目录将内核文件复制到/boot/中,连续输入exit两次,退出
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id ##解压命令
待系统进入光驱修复界面后关闭虚拟机,进入boot options将光驱启动调至硬盘后面,重新启动即可修复
四、修复系统缺少内核初始化镜像
破坏过程:
rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
reboot
重启后无法正常启动
修复过程:
未重启时可使用命令恢复
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
$(uname -r)表示先执行此命令,uname -r 表示显示内核版本号
重启后关闭虚拟机,从光驱启动进入拯救模式得到shell,挂载到/目录上,输入上面的命令即可恢复(有一个报错,Broken pipe)
两次exit退出
待系统进入光驱修复界面后关闭虚拟机,进入boot options将光驱启动调至硬盘后面,重新启动即可修复
五、修复开机默认配置文件被篡改
破坏过程:
cd /etc/systemd/system
ln -snf /usr/lib/systemd/system/poweroff.target default.target
reboot
修复过程:
进入引导选择系统时上下键暂停,选择要进入的系统,按e 在启动内核命令后输入 5 后 可以正常启动
但是是临时的,需要重新设置开机打开图形
systemctl set-default graphical.target
延伸:
/etc/systemd/system/multi-user.target.wants/ ##开机自动加载服务的目录
/etc/systemd/system/default.target ##开机默认图形配置的文件
systemctl set-default graphical.target ##开机打开图形
systemctl set-default multi-user.target ##开机不打开图形
六、更改root超级用户密码
修复过程:
进入引导后上下键暂停,按e进入删除启动内核后面的内容 添加rw rd.break
输入chroot /sysroot/进入shell
echo westos |passwd --stdin root ##更改密码为westos
touch /.autorelabel ##重新建立密码后selinux默认不识别,需要让selinux重新读取新生成的密码
exit exit
七、删除/boot分区后恢复/boot分区
破坏过程:
rm -fr /boot
reboot
重启后无法正常启动
修复过程:
关闭虚拟机,通过光驱模式启动得到shell,按照之前的操作,依次安装mbr、恢复内核文件、初始化镜像和开机自动引导文件后通过硬盘启动即可
八、开机大量服务启动失败
修复过程:
关闭虚拟机,通过光驱模式启动得到shell,
cp /bin/bash /mnt/sysimage/bin/bash
一次exit退出通过硬盘启动即可