实验环境:选择自己建立的虚拟机
注意:塞光驱时要关闭虚拟机
当grub磁盘引导出现问题:
(1)fdisk -l 查看磁盘目录 (看*在哪里) ,*号所在硬盘位置即为启动分区
如图所示,我的虚拟机启动分区是dev/vda1
(2)模拟问题:dd if=/dev/zero of=/dev/vda bs=446 count=1 破坏磁盘引导
(3)用getenforce查看selinux状态,如为enforing,用vim /etc/sysconfig/selinux命令将selinux状态改为disabled
最后一定要记得重启
(4)此时使用硬盘启动就会发现打不开虚拟机
(5)此时关闭虚拟机,采用光驱方式启动
设置完之后一定要点Apply,不然设置无效
(6)依次选择第三个与第二个
(7)输入1,回车得到shell
(8)df查看一下
(9)chroot /mnt/sysimage/
(10)grub2-install /dev/vda
(11)exit 两次,关闭虚拟机,进入虚拟控制台,以磁盘方式开启虚拟机
可以看到虚拟机正常启动了
系统启动阶段的引导文件丢失:
(1)模拟问题:rm -fr /boot/grub2/grub.cfg ,并reboot
此时发现虚拟机重启出现了问题
(2)解决问题
以光驱方式启动虚拟机(关闭虚拟机,进入虚拟控制台,改为以光驱方式启动)
输入1,回车得到一个shell
df查看一下
chroot /mnt/ssyimsge/ 回车
grub2-install /dev/vda
以磁盘方式打开虚拟机,输入 set root='hd0,msdos1' 以及 linux16 /vmlinuz-3.10.0-514.el7.x86-64 root=dev/vda1
输入 inittrd16 /inintramfs-3.100-514.el7.x86_64.img
boot
进入图形界面后,输入grub2-mkconfig > /boot/grub2/grub.cfg
更换主机为server
系统内核镜像文件丢失应该怎样解决
模拟问题:
rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64
reboot不能启动
用光驱启动
chroot /mnt/sysimage/
mkdir /rhel7.0
mount /dev/sr0 /rh7.0
cd /rhel7.0/
cd Packages/
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt
cd /mnt
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
exit
系统初始化程序镜像文件丢失应该怎么恢复
模拟问题:
rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
如果系统没有重启直接利用
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)恢复镜像文件
如果已经reboot了,进入rescue模式,以光驱的方式打开虚拟机
输入chroot /mnt/sysimage/进入真实的环境
输入mkinitrd /boot/initramfs-$(uname -r).img $(uname -r),再次进入/boot下查看是否生成img文件
以硬盘的方式启动
系统/boot分区被删除怎么恢复
reboot
用光驱进入rescue模式。
chroot /mnt/sysimage
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
exit两次之后,用硬盘启动
系统开机启动级别被人恶意篡改,一致处于重启模式,怎么解决?
模拟实验:
systemctl set-default reboot.target
此时重启虚拟机,会发现一直处于重启状态
解决方法:
开机按上下键停止读秒
按E进入编辑模式
选择内核启动行
linux16 /vmlinuz-xxxxxxxxx ro xxxxxxxxxx
将ro之后的删除,并将ro改称rw(读写),输入rd.break(停止),然后crtl+x退出,启动系统。
注意这里的chroot在/sysroot/下
可以看到/etc/systemd/system/default.target是一个软连接,将它删除并且重新创建有图形的软连接
成功恢复
root用户密码忘记怎么办
重启主机的时候按下e进入编辑模式
找到内核启动行,删到ro然后更改ro为rw rd.break,ctrl+x退出
passwd 来修改用户密码
设置密码为redhat
再次输入密码redhat
即可更改root用户密码
touch /.autorelabel 让selinux生效,即可重新开启虚拟机。