Linux中系统排错及引导恢复

1.磁盘引导阶段
mbr主引导记录的恢复
模拟问题:dd if=/dev/zero of=/dev/vda/ bs=446 count=1
(1)查看设备,带*的就是引导设备
Linux中系统排错及引导恢复_第1张图片
(2)将引导程序破坏掉,修改selinux状态,重启虚拟机
在这里插入图片描述
Linux中系统排错及引导恢复_第2张图片
报错界面:
Linux中系统排错及引导恢复_第3张图片
进入挽救模式:
打开虚拟机管理界面,把虚拟机关闭,点击AddHardware
Linux中系统排错及引导恢复_第4张图片
添加一个光驱,选择7.3镜像,点击finsh完成
Linux中系统排错及引导恢复_第5张图片
选择光盘引导将其调到第一位
Linux中系统排错及引导恢复_第6张图片
再次打开虚拟机选择troubleshooting
Linux中系统排错及引导恢复_第7张图片
选择Rescue a Red Hat Enterprise Linux system,进入挽救
Linux中系统排错及引导恢复_第8张图片
输入1进入系统,按回车继续获得shell
Linux中系统排错及引导恢复_第9张图片
df查看挂载设备可以看到真实系统在/mnt/sysimage中
Linux中系统排错及引导恢复_第10张图片
chroot/mnt/sysimage切换到真实的系统环境

Linux中系统排错及引导恢复_第11张图片
执行命令
在这里插入图片描述
两次exit退出
在这里插入图片描述
去掉光盘引导,重新选择磁盘引导
Linux中系统排错及引导恢复_第12张图片
登录成功
Linux中系统排错及引导恢复_第13张图片
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

Linux中系统排错及引导恢复_第14张图片
当系统被重新启动

[root@localhost ~]# rm -fr /boot/grub2/grub.cfg
[root@localhost ~]#reboot

报错界面:
Linux中系统排错及引导恢复_第15张图片

进入挽救模式:

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

Linux中系统排错及引导恢复_第16张图片
在这里插入图片描述
Linux中系统排错及引导恢复_第17张图片
以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行:

[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

Linux中系统排错及引导恢复_第18张图片
(2)内核文件丢失

模拟问题: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

Linux中系统排错及引导恢复_第19张图片
报错界面:
Linux中系统排错及引导恢复_第20张图片
进入挽救模式:

选择光盘引导将其调到第一位
Linux中系统排错及引导恢复_第21张图片
再次打开虚拟机选择troubleshooting
Linux中系统排错及引导恢复_第22张图片
选择Rescue a Red Hat Enterprise Linux system,进入挽救

Linux中系统排错及引导恢复_第23张图片
输入1进入系统,获得shell
Linux中系统排错及引导恢复_第24张图片
具体操作步骤如下:

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

Linux中系统排错及引导恢复_第25张图片
Linux中系统排错及引导恢复_第26张图片
去掉光盘引导,重新选择磁盘引导
Linux中系统排错及引导恢复_第27张图片
登录成功
Linux中系统排错及引导恢复_第28张图片
(3)挽救之后,查看/boot/,内核文件存在
Linux中系统排错及引导恢复_第29张图片
(3)系统初始化镜像文件丢失

模拟问题: rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
1.切换到/boot下,ls查看,镜像文件存在
Linux中系统排错及引导恢复_第30张图片
2.删除镜像文件
Linux中系统排错及引导恢复_第31张图片
当系统没有重启时
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)再次查看镜像文件存在
Linux中系统排错及引导恢复_第32张图片
当系统重启后

报错界面:
Linux中系统排错及引导恢复_第33张图片
进入挽救模式:
选择光盘引导将其调到第一位
Linux中系统排错及引导恢复_第34张图片
再次打开虚拟机选择troubleshooting
Linux中系统排错及引导恢复_第35张图片
选择Rescue a Red Hat Enterprise Linux system,进入挽救
在这里插入图片描述
输入1进入系统,获得shell
Linux中系统排错及引导恢复_第36张图片

chroot /mnt/sysimage       切换到系统真实环境
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
cd /boot/
ls
exit
exit

在这里插入图片描述
Linux中系统排错及引导恢复_第37张图片
去掉光盘引导,重新选择磁盘引导
Linux中系统排错及引导恢复_第38张图片
登录成功
Linux中系统排错及引导恢复_第39张图片
(4)当/boot分区被删除掉后

[root@localhost ~]# rm -fr /boot/*
[root@localhost ~]# reboot

在这里插入图片描述
报错界面:
Linux中系统排错及引导恢复_第40张图片
进入挽救模式:
选择光盘引导将其调到第一位
Linux中系统排错及引导恢复_第41张图片
再次打开虚拟机选择troubleshooting
Linux中系统排错及引导恢复_第42张图片
选择Rescue a Red Hat Enterprise Linux system,进入挽救
Linux中系统排错及引导恢复_第43张图片
输入1进入系统,获得shell
Linux中系统排错及引导恢复_第44张图片
具体操作步骤如下:

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

挂载光驱到/opt/目录
在这里插入图片描述

Linux中系统排错及引导恢复_第45张图片
mbr主引导记录恢复
Linux中系统排错及引导恢复_第46张图片
内核文件恢复
Linux中系统排错及引导恢复_第47张图片
在这里插入图片描述
引导文件恢复
在这里插入图片描述
在这里插入图片描述
两个exit退出
在这里插入图片描述
去掉光盘引导,重新选择磁盘引导
Linux中系统排错及引导恢复_第48张图片
登录成功
Linux中系统排错及引导恢复_第49张图片
(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

Linux中系统排错及引导恢复_第50张图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除原来的链接,修改默认链接
在这里插入图片描述
挽救模式:按e进入如下界面,在linux16这一行最后添加5,按 ctrl + x,重启系统
Linux中系统排错及引导恢复_第51张图片
重启之后加入图形,在下次启动不会在出现这种问题

[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

Linux中系统排错及引导恢复_第52张图片
3.超级用户忘记密码的解决方法
(1)开机时在系统启动界面按e
Linux中系统排错及引导恢复_第53张图片
(2)找到以linux16开头的这一行,将ro后内容删掉,把ro改为rw,然后添加rd.break,按ctrl+x开始进入系统

Linux中系统排错及引导恢复_第54张图片
修改后如下图:
Linux中系统排错及引导恢复_第55张图片
(3)切换到真实系统环境
在这里插入图片描述
(4)修改超级用户密码
在这里插入图片描述
(5)让系统重新扫描所有文件
在这里插入图片描述
(6)exit两次系统重新启动
在这里插入图片描述
(7)登录成功
Linux中系统排错及引导恢复_第56张图片
(8)密码使用刚刚更改的新密码
Linux中系统排错及引导恢复_第57张图片

你可能感兴趣的:(Linux中系统排错及引导恢复)