1.磁盘引导阶段
mbr主引导记录的恢复
模拟问题:dd if=/dev/zero of=/dev/vda/ bs=446 count=1
(1)查看设备,带*的就是引导设备
(2)将引导程序破坏掉,修改selinux状态,重启虚拟机
报错界面:
进入挽救模式:
打开虚拟机管理界面,把虚拟机关闭,点击AddHardware
添加一个光驱,选择7.3镜像,点击finsh完成
选择光盘引导将其调到第一位
再次打开虚拟机选择troubleshooting
选择Rescue a Red Hat Enterprise Linux system,进入挽救
输入1进入系统,按回车继续获得shell
df查看挂载设备可以看到真实系统在/mnt/sysimage中
chroot/mnt/sysimage切换到真实的系统环境
执行命令
两次exit退出
去掉光盘引导,重新选择磁盘引导
登录成功
2.文件引导阶段
(1)引导文件丢失
/boot/grub2/grub.cfg
模拟问题:rm -fr /boot/grub2/grub.cfg
当系统没有重新启动时grub2-mkconfig >/boot/grub2/grub.cfg
具体操作步骤如下:
(1)
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/rhel-root 7657472 3119660 4537812 41% /
devtmpfs 492416 0 492416 0% /dev
tmpfs 508264 88 508176 1% /dev/shm
tmpfs 508264 7132 501132 2% /run
tmpfs 508264 0 508264 0% /sys/fs/cgroup
/dev/sda1 201380 153948 47432 77% /boot
tmpfs 101656 4 101652 1% /run/user/42
tmpfs 101656 8 101648 1% /run/user/0
(2)删除引导文件 ,并恢复引导文件
[root@localhost ~]# rm -fr /boot/grub2/grub.cfg
[root@localhost ~]# grub2-mkconfig > /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-f2308fa67a734a0290404a362ae4304b
Found initrd image:/boot/initramfs-0-rescue-f2308fa67a734a0290404a362ae4304b.img
done
(3)恢复引导文件后查看是否恢复成功
[root@localhost ~]# vim /boot/grub2/grub.cfg
[root@localhost ~]# ls /boot/
config-3.10.0-514.el7.x86_64
grub2
initramfs-0-rescue-f2308fa67a734a0290404a362ae4304b.img
initramfs-3.10.0-514.el7.x86_64.img
initramfs-3.10.0-514.el7.x86_64kdump.img
initrd-plymouth.img
symvers-3.10.0-514.el7.x86_64.gz
System.map-3.10.0-514.el7.x86_64
vmlinuz-0-rescue-f2308fa67a734a0290404a362ae4304b
vmlinuz-3.10.0-514.el7.x86_64
[root@localhost ~]# rm -fr /boot/grub2/grub.cfg
[root@localhost ~]#reboot
进入挽救模式:
grub > set root='hd0,msdos1' ##此位置是不固定的,位置指定/boot所在分区
grub > linux /vmlinuz-3.10.0-514.el7.x86_64 ro root=/dev/mapper/rhel-root ##加载内核,只读挂载根
grup > initrd16 /initramfs-3.10.0-123.el7.x86_64.img
grup > boot
以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行:
[root@localhost ~]# grub2-mkconfig > /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img
Found linux image:/boot/vmlinuz-0-rescuef2308fa67a734a0290404a362ae4304b
Foundinitrdimage:/boot/initramfs0rescuef2308fa67a734a0290404a362ae4304b.img
done
模拟问题:rm -fr /boot/vmlinuz-3.10.0-123.el7x86_64
具体操作如下:
(1)查看/boot/下内容
[root@localhost ~]# ls /boot/
config-3.10.0-514.el7.x86_64
grub2
initramfs-0-rescue-1e89afabb2644126a8da65daf7aee968.img
initramfs-3.10.0-514.el7.x86_64.img
initramfs-3.10.0-514.el7.x86_64kdump.img
initrd-plymouth.imgsymvers-3.10.0-514.el7.x86_64.gz
System.map-3.10.0-514.el7.x86_64
vmlinuz-0-rescue-1e89afabb2644126a8da65daf7aee968
vmlinuz-3.10.0-514.el7.x86_64
(2)切换到/boot/目录下,删除内核文件,重启系统
[root@localhost ~]# cd /boot/
[root@localhost boot]# rm -fr vmlinuz-3.10.0-514.el7.x86_64
[root@localhost boot]# reboot
选择光盘引导将其调到第一位
再次打开虚拟机选择troubleshooting
选择Rescue a Red Hat Enterprise Linux system,进入挽救
chroot /mnt/sysimage/ 切换到真实环境
df
mount /dev/cdrom /media/ 挂载光驱文件到/media/
cd /media/ 切换到挂载点
ls
cd Packages/ 切换到软件包
cp kernel-3.10.0-514.el7.x86_64.rpm /mnt/ 将内核文件安装包复制到/mnt/
cd /mnt
ls
rpm2cpio kernel-3.10.0-514.el7.x86_64.rpm |cpio -id 拆分软件包
ls
cd boot/ 切换到/boot目录
ls
cp vmlinuz-3.10.0-514.el7x86_64 /boot/ 复制内核文件到/boot/
vim /etc/sysconfig/selinux enforcing改为disabled
exit 两次exit退出
exit
去掉光盘引导,重新选择磁盘引导
登录成功
(3)挽救之后,查看/boot/,内核文件存在
(3)系统初始化镜像文件丢失
模拟问题: rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
1.切换到/boot下,ls查看,镜像文件存在
2.删除镜像文件
当系统没有重启时
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)再次查看镜像文件存在
当系统重启后
报错界面:
进入挽救模式:
选择光盘引导将其调到第一位
再次打开虚拟机选择troubleshooting
选择Rescue a Red Hat Enterprise Linux system,进入挽救
输入1进入系统,获得shell
chroot /mnt/sysimage 切换到系统真实环境
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
cd /boot/
ls
exit
exit
去掉光盘引导,重新选择磁盘引导
登录成功
(4)当/boot分区被删除掉后
[root@localhost ~]# rm -fr /boot/*
[root@localhost ~]# reboot
报错界面:
进入挽救模式:
选择光盘引导将其调到第一位
再次打开虚拟机选择troubleshooting
选择Rescue a Red Hat Enterprise Linux system,进入挽救
输入1进入系统,获得shell
具体操作步骤如下:
chroot /mnt/sysimage/
mount /dev/cdrom /opt/ 挂载光驱到/opt/目录
fdisk -l
grub2-install /dev/sda
df
cd /opt/
ls
cd Packages/
cp kernel-3.10.0-514.el7.x86_64.rpm /mnt/ 复制内核安装包到/mnt/
cd /mnt/
ls
rpm -ivh kernel-3.10.0-514.el7.x86_64.rpm --force 强制安装内核软件包
grub2-mkconfig > /boot/grub2/grub.conf
cd /boot/
ls
exit
exit
mbr主引导记录恢复
内核文件恢复
引导文件恢复
两个exit退出
去掉光盘引导,重新选择磁盘引导
登录成功
(5)当开机启动级别被篡改
具体操作如下:
[root@localhost ~]# cd /etc/systemd/system
[root@localhost system]# cd multi-user.target.wants/
[root@localhost multi-user.target.wants]# pwd
/etc/systemd/system/multi-user.target.wants
[root@localhost multi-user.target.wants]# ls
abrt-ccpp.service initial-setup-reconfiguration.service nfs-client.target
abrtd.service irqbalance.service postfix.service
abrt-oops.service kdump.service remote-fs.target
abrt-vmcore.service ksm.service rhsmcertd.service
abrt-xorg.service ksmtuned.service rngd.service
atd.service libstoragemgmt.service rsyslog.service
auditd.service libvirtd.service smartd.service
avahi-daemon.service mcelog.service sshd.service
crond.service mdmonitor.service sysstat.service
cups.path ModemManager.service tuned.service
cups.service NetworkManager.service vmtoolsd.service
[root@localhost multi-user.target.wants]# cd ..
[root@localhost system]# ll /lib/systemd/system/reboot.target
-rw-r--r--. 1 root root 543 Sep 13 2016 /lib/systemd/system/reboot.target
[root@localhost system]# ln -s /lib/systemd/system/reboot.target
/etc/systemd/system/default.target
ln: failed to create symbolic link ‘/etc/systemd/system/default.target’: File exists
[root@localhost system]# rm -fr /etc/systemd/system/default.target
[root@localhost system]# ln -s /lib/systemd/system/reboot.target
/etc/systemd/system/default.target
[root@localhost system]# reboot
删除原来的链接,修改默认链接
挽救模式:按e进入如下界面,在linux16这一行最后添加5,按 ctrl + x,重启系统
重启之后加入图形,在下次启动不会在出现这种问题
[root@localhost ~]# ll /etc/systemd/system/default.target
lrwxrwxrwx 1 root root 33 Jan 25 16:41 /etc/systemd/system/default.target
-> /lib/systemd/system/reboot.target
[root@localhost ~]# rm -fr /etc/systemd/system/default.target
[root@localhost~]# ln -s /lib/systemd/system/graphical.target
/etc/systemd/system/default.target
[root@localhost ~]# ll /etc/systemd/system/default.target
lrwxrwxrwx 1 root root 36 Jan 25 16:49 /etc/systemd/system/default.target ->
/lib/systemd/system/graphical.target
3.超级用户忘记密码的解决方法
(1)开机时在系统启动界面按e
(2)找到以linux16开头的这一行,将ro后内容删掉,把ro改为rw,然后添加rd.break,按ctrl+x开始进入系统
修改后如下图:
(3)切换到真实系统环境
(4)修改超级用户密码
(5)让系统重新扫描所有文件
(6)exit两次系统重新启动
(7)登录成功
(8)密码使用刚刚更改的新密码