系统启动过程:
电脑通电->bios 初始化->grub2 磁盘引导阶段->grub2 文件引导阶段->指定 boot 所在分区->启动内核,只读挂在/设备->启动 init 程序进入初始化阶段->启动 systemd 初始化进程->取 /etc/systemd/中的文件->启动程序->启动登陆环境
1.误删虚拟机系统引导文件:
dd if=/dev/zero of=/dev/vda bs=446 count=1 ##删掉446个字节的引导文件
reboot
把虚拟机系统启动项改为从光盘启动,指定镜像文件路径,再次重启
进入恢复界面:
sh-4.2# chroot /mnt/sysimage/
bash-4.2# grub2-install /dev/vda
bash-4.2# exit
bash-4.2# exit
再把系统启动项改为原来的从硬盘启动
2.误删/boot/grub2/grub.cfg文件
删掉/boot/grub2/grub.cfg,系统启动时会卡在grub>这一步
<1>误删/boot/grub2/grub.cfg:
grub2-mkconfig > /boot/grub2/grub.cfg ##恢复grub.cfg文件
<2>误删/boot/grub2/grub.cfg文件并且重启系统后的修复:(查看/boot/grub2/grub.cfg,根据文件中的内容来写)
grub> set root=’hd0,msdos1’
grub> linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1
grub> initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img
grub> boot
系统重启之后:cd /boot/grub2/ ##进入grub2目录
grub2-mkconfig > /boot/grub2/grub.cfg ##恢复grub.cfg文件
3.误删/boot/vmlinuz-3.10.0.0-327.e17.x86_64
加载镜像文件,系统启动改为光盘启动,进入救护模式:
sh-4.2# chroot /mnt/sysimage/
bash-4.2# mount /dev/sr0 /mnt/
bash-4.2# cd /mnt/
两个方法:
(1)直接安装内核文件:
bash-4.2# rpm -ivh kernel-3.10.0-327.e17.x86_64.rpm ##安装内核
exit
exit
再把系统启动项改为原来的从硬盘启动
(2)拆解内核文件,只复制需要的文件:
bash-4.2# mkdir /westos
bash-4.2# cp /mnt/Packages/kernel-3.10.0-327.el7.x86_64.rpm /westos/
bash-4.2# cd /westos/
bash-4.2# rpm2cpio kernel-3.10.0-327.el7.x86_64.rpm | cpio -id
238661 blocks
bash-4.2# cd boot/
bash-4.2# cp vmlinuz-3.10.0.0-327.e17.x86_64 /boot/
bash-4.2# rm -fr /westos/
exit
exit
再把系统启动项改为原来的从硬盘启动
4.误删/boot/initramfs-3.10.0-327.el7.x86_64.img
还没有重启系统:
[root@localhost boot]# mkinitrd /boot/initramfs-3.10.0-327.el7.x86_64.img 3.10.0-327.e17.x86_64 ##恢复文件
误删文件并且重启系统之后的修复:
加载镜像文件,系统启动改为光盘启动,进入救护模式:
sh-4.2# chroot /mnt/sysimage/
bash-4.2# mkinitrd /boot/initramfs-
(uname−r).img
(uname -r) ##$(uname -r)表示先执行括号里的命令
exit
exit
再把系统启动项改为原来的从硬盘启动
5.设置系统开机就关机并且修复
rm -fr /etc/systemd/system/default.target
ln -s /lib/systemd/system/poweroff.target /etc/systemd/system/default.target
reboot
修复:
系统启动时按e:删掉ro所在段ro后面的内容,并把ro修改为rw rd.break
ctrl+x启动系统
switch_root:/# chroot /sysroot/
sh-4.2# rm -fr /etc/systemd/system/default.target
sh-4.2# ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
sh-4.2# exit
switch_root:/# reboot