Linux:系统排错(修复与维护)

系统排错
一·进行grub磁盘引导阶段
模拟mbr引导分区数据(程序)丢失
实验步骤:

第一步:在虚拟机上:
[root@localhost ~]# dd if=/dev/zero of=/dev/vda bs=446 count=1  ##模拟mbr引导分区数据丢失
[root@localhost ~]# reboot   ##重启后发现无法启动
第二步:
关机,virt-manager进入虚拟机管理界面(先将虚拟机force off);添加镜像,选择镜像启动
第三步:
开机进入救援模式(先选最后一个Troubles...然后选择第二个Rescue;continue->ok->ok)
进入到一个shell
第四步:
df      ##查看
chroot /mnt/sysimage/      ##挂载系统镜像到根目录
grub2-install /dev/vda       ##启动分区所在硬盘
出现NO error reported说明恢复446的分区表成功
exit
exit
第五步:
选择虚拟硬盘启动,重新开机(将CD光驱从第一拉到最后)

第一步:
这里写图片描述
第二步:
点击左下角ADD Hardware添加光驱
这里写图片描述
选择光驱,添加镜像7.0
这里写图片描述
点击Boot Options ,将光驱选在第一位
这里写图片描述
第三步:
选择第三个:Troubleshooting
这里写图片描述
选择第二个:Rescue……
这里写图片描述
选择Continue—>ok—->ok
这里写图片描述
这里写图片描述
这里写图片描述
第四步:
这里写图片描述
在 /etc/sysconfig/selinux 文件中改为disabled后,wq保存:
这里写图片描述
写两次exit退出:
这里写图片描述
第五步:
把光驱调在最后一位
这里写图片描述

注:做完以后必须turn off,否则会循环

二·文件引导阶段

grub引导文件/boot/grub2/grub.cfg丢失

实验步骤:
方法一:删除文件后本机未reboot

在虚拟机上:rm -fr /boot/grub2/grub.cfg
[root@localhost boot]# cd
[root@localhost ~]# cd  /boot/
[root@localhost boot]# ls /boot/grub2
device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes
[root@localhost boot]# rm -fr /boot/grub2/grub.cfg
[root@localhost boot]# ls /boot/grub2      ##删除成功,文件不存在
device.map  fonts  grubenv  i386-pc  locale  themes
[root@localhost boot]# grub2-mkconfig > /boot/grub2/grub.cfg   ##恢复成功
[root@localhost boot]# ls /boot/grub2    ##查看文件存在
device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes

方法一:
这里写图片描述

方法二:删除文件后本机已经重新启动

在新的shell里
grub> set root='hd0,msdos1' ##指定boot分区
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
上述操作可以使系统正常启动,但是临时的,进入系统后要执行grub2-mkconfig > /boot/grub2/grub.cfg
[root@localhost ~]# grub2-mkconfig > /boot/grub2/grub.cfg     ##恢复
[root@localhost ~]# ls /boot/grub2/      ##查看有文件
device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes

方法二:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
成功开启后需要手动恢复:
这里写图片描述

三·内核文件丢失

方法一:删除文件后本机没有重新启动

[root@localhost Desktop]# cd /boot/
[root@localhost boot]# ls
vmlinuz-3.10.0-123.el7.x86_64
[root@localhost boot]# rm -fr vmlinuz-3.10.0-123.el7.x86_64 
[root@localhost boot]# yum whatprovides /boot/vmlinuz-3.10.0-123.el7.x86_64    
桌面上有7.0镜像,打开后点Packages,搜 vmlinuz-3.10.0-123.el7.x86_64 安装包,然后拖到桌面  
[root@localhost boot]# cd  /root/Desktop/
[root@localhost Desktop]# ls
kernel-3.10.0-123.el7.x86_64.rpm
[root@localhost Desktop]# file kernel-3.10.0-123.el7.x86_64.rpm 
kernel-3.10.0-123.el7.x86_64.rpm: RPM v3.0 bin i386/x86_64 kernel-3.10.0-123.el7
[root@localhost Desktop]# rpm2cpio  kernel-3.10.0-123.el7.x86_64.rpm | cpio  -id           ##恢复
219282 blocks
[root@localhost Desktop]# cp boot/vmlinuz-3.10.0-123.el7.x86_64 /boot/     ##复制到/boot/下

这里写图片描述
在7.0镜像中,目录Packages中找到kernel-3.10.0-123.el7.x86_64.rpm,拖拽到桌面
这里写图片描述
恢复以及复制:
这里写图片描述

方法二:删除文件后本机已经重新启动

[root@localhost ~]# cd  /boot/
[root@localhost boot]# ls
vmlinuz-3.10.0-123.el7.x86_64
[root@localhost boot]# rm -fr vmlinuz-3.10.0-123.el7.x86_64
[root@localhost boot]# reboot

首先要进入挽救模式,然后再输入以下步骤:
df
cd /run/install/repo
ls
cd Packages
pwd
cp kernel-3.10.0-123.e17.x86_64.rpm /mnt/sysimage/mnt/      
chroot /mnt/sysimage
cd /mnt/
ls
rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id
cp boot/vmlinuz-3.10.0-123.el7.x86_64  /boot/

删除vmlinuz-3.10.0-123.el7.x86_64
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述
这里写图片描述
重启后查看恢复成功:
这里写图片描述

注:利用光盘恢复所损失文件输入命令时,必须清楚实际/目录的环境

四·初始化程序丢失
[root@localhost Desktop]# rm -fr /boot/initramfs-3.10-123.e17.86_64.img
实验步骤:
方法一:删除文件后本机没有重新启动

[root@localhost ~]# cd  /boot/
[root@localhost boot]# ls
initramfs-3.10.0-123.el7.x86_64.img
[root@localhost boot]# mkinitrd /boot/initramfs-$(name -r).img $(uname -r)       ##恢复  (uname -r  显示内核版本名)   
[root@localhost boot]# ls

这里写图片描述
这里写图片描述

方法二:删除文件后本机重新启动
进入挽救模式:

chroot /mnt/sysimge
mkinitrd /boot/initramfs-$(uname -r).img  $(uname -r)   ##恢复
ls  /boot/initramfs-3.10.0-123.el7.x86_64.img   ##查看是否恢复成功
exit
exit
进入virt-manager后先将server force off 再将光盘驱动调到最后,启动

这里写图片描述
进入挽救模式:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
启动成功后查看是否由此文件:
这里写图片描述

五·系统启动级别被修改

syatemctl set-deflault shutdown.target
实验步骤:
[root@localhost ~]# systemctl set-default multi-user.target 
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target'
[root@localhost ~]# systemctl set-default shutdown.target 
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/shutdown.target' '/etc/systemd/system/default.target'
[root@localhost ~]# reboot

 1.开机按上下键
 2.按e进入编辑模式
 3.选择内核启动行
   linux16 /vmlinuz-xxxx ro xxxxxx  5    ##添加5是表示开启图形
 4.ctrl +x
 5.进入虚拟机
 [root@localhost ~]# systemctl set-default graphical.target
 rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'

这里写图片描述
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/le_anny/article/details/80341523