系统故障及其恢复

一.系统启动

1.系统启动流程

通电 ------->bios(主板上的只读存储)作用,硬件检测,激活硬件)

grub系统引导(grub引导分为两个阶段)

1)阶段1 mbr(主引导记录)主引导记录在硬盘的磁道上,一扇区,446个字节

2)阶段2 grub文件引导阶段

由文件/boot/grub2/grub.cfg控制流程,指定/boot分区位置——>加载内核——>启动系统初始化进程——>grub2-mkconfig

2.内核引导阶段

检测硬件设备——>设备驱动初始化——>将/只读挂载——> 载入初始化进程systemd——>内核文件丢失请重新安装内核

3.systemd初始化

开启selinux和systemd-tools——>加载内核参数——>加载系统时钟,键盘,主机名称——>读写挂载/文件系统——>激活raid,lvm设备——>激活系统配额——>启动multi-user.target.wants中的所有服务脚本——>启用虚拟控制台——>启动图形

二.系统启动出错恢复

1.引导程序/boot/gurb出错

破坏/dev/vda前446字节引导:dd if=/dev/zero if=/dev/vda bs=446 count=1  (boot分区在哪挂载就破坏哪)



selinux 内核级加强型防火墙

开机无法引导程序

关闭虚拟机,加入iso镜像光盘,从光驱启动

Troubleshooting                                            #系统修复


Rescue a Res Hat Enterprise Linux system    #选择挽救模式(菜单的第二项)

1.继续    2.只读   3跳过   选择第一项  


chroot /mnt/sysimage

grub2-install /dev/sda       #根据实际boot分区挂载

执行两次exit退出从硬盘启动,恢复成功

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


当系统没有重新启动

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.......  tab 补齐
grub > boot


注:可以让系统正常启动,但是临时的,还需要执行

grub2-mkconfig > /boot/grub2/grub.cfg

3.内核丢失

模拟问题 rm  -rf    /boot/vmlinuz-3.10..............

.

进入到挽救模式


 
进入到挽救模式

chroot /mnt/sysimage 将根分区挂载到硬盘上

mkdir /rhel7   创立目录

mount /dev/sr0 /rhel7  将光盘挂载

cd /rhel7/Packages   进入到光盘的Packages中

cp kernel-3.10.0-123.e17.......  /mnt 将内核复制到mnt

cd /mnt  进入到mnt中

rpm2cpio kernel-3.10......   rpm |cpio -id  使用cpio格式压缩内核并且解压

cd boot 进入到拆分生成的boot目录中

将丢失的内核文件复制回去    

cp vmlinuz-3.10.......  /boot

exit 退出两次



4)当/boot分区被删除后



1》恢复损坏的boot引导程序


2>恢复内核


3>恢复初始化文件


4> 恢复引导文件/boot/grub2/grub.cfg,此时只需要执行grub2-mkconfig > /boot/grub2/grub.cfg即可


5)初始化文件丢失

initramfs-3.10.0-123.el7.x86_64.img     #初始化文件


进入挽救模式

chroot /mnt/sysimage

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

执行两次exit,从硬盘启动成功


6. 闪退

从光盘启动进入挽救模式

chroot /mnt/sysimage

cp /bin/bash            /mnt/sysimage/bin/bash

exit退出即可

注:在系统启动出错恢复时,除却引导文件/boot/grub2/grub.cfg丢失不需要光盘启动进入挽救模式外,其他情况均需要从光盘启动进入挽救模式

#################################附录####################################

开机启动被篡改

错误形成

systemctl set-default     reboot.target   


解决方案解决
在开机选项中按上下键停止读秒
按E进入编辑模式
选择内核启动行
linux16 /vmlinuz-xxxxxxxxxx ro xxxxxxxxxxxxxx  改变为:

inux16 /vmlinuz-xxxxxxxxxxx rw rd.break


ctrl +x
chroot /sysroot
rm -rf /etc/systemd/system/default.target
ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target
exit


忘记root密码


在开机选项中按上下键停止读秒

按E进入编辑模式


选择内核启动行

linux16 /vmlinuz-xxxxxxxxxx ro xxxxxxxxxxxxxx  改变为:


linux16 /vmlinuz-xxxxxxxxxxx rw rd.break

chroot /sysroot/


touch /.autorelabel













猜你喜欢

转载自blog.csdn.net/dream0130__/article/details/79516445