1、硬盘引导阶段
模拟问题:dd if=/dev/zero of=/dev/vda bs=446 count=1(破坏磁盘引导)
解决问题:使用光盘期启动,进入rescue模式
实验步骤:
fdisk -l 查看磁盘的目录(看*号在哪里)
步骤一:dd if=/dev/zero of=/dev/vda bs=446 count=1 ,reboot。
步骤二:reboot后出现的界面代表采用磁盘方式打开虚拟机打不开,正在找硬件
步骤三:此时关闭虚拟机,采用光驱方式启动,进入虚拟控制台
步骤四:进入如下界面进行选择
步骤五:在非图形化界面进行命令操作
chroot /mnt/sysimage切换到系统的真实环境
grub2-install 启动分区所在硬盘
grub2-install /dev/vda
两次exit即可
步骤六:改变系统读取方式
2、文件引导阶段
系统启动阶段
(1)引导文件丢失
#模拟问题:自己误删文件rm -rf /boot/grub2/grub.cfg
#删除后,当系统没有重新启动时
利用命令grub2-mkconfig > /boot/grub2/grub.cfg
文件就可以建立
#删除后,当系统已经重新启动了
在启动后的界面操作
grub > set root=‘hd0,msdos1’
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
进入rescue模式
依次输入下面命令:
chroot /mnt/sysimge切换到系统的真实环境
mkdir /rhel7
mount /dev/sr0 /rhel7挂载
cd /rhel7/Packages
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt/
cd /mnt(ls)
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id
cd boot/
cp vmlinuz-3.10.0-123.el7.x86_64 /boot
两次exit
(3)、初始化镜像文件丢失(内核)
#模拟问题:删除rm -rf /boot/initramfs-3.10.0-123.el7.x86_64.img
#当系统没有重启时
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
#当系统重新启动了
选择系统读取光驱,在出现的界面:
输入chroot /mnt/sysimages
输入mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
再次cd /boot/ ls查看即可
(4)当/boot分区被删掉
进入rescue模式,输入下面的命令
chroot /mnt/sysimge
mkdir /boot
grub2-install /dev/vda
mount /dev/sr0 /mnt
rpm -ivh /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm --force
grub2-mkconfig > /boot/grub2/grub.cfg
。。。
系统从图像化界面到非图形化的命令为:
systemctl set-default multi-user.target(reboot)
3、当开机启动级别被篡改
#模拟问题 systemctl set-default reboot.target
#解决
(1)开机按上下键停止读秒
(2)按“e”进入编辑模式
(3)选择内核启动行(hang)
linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxxxx 改为
linux16 /vmlinuz-xxxxxx rw rd.break
(4)ctrl+x退出,启动系统
(5)输入chroot /sysroot/###########这个时候可以修改root密码echo westos | passwd --stdin root(touch /.autorelabel)
(6)rm -fr /etc/systemd/system/default.target
(7)ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target
(8)exit两次