[email protected]启动阶段系统排错

启动阶段系统排错


本节介绍系统排错,但首先要了解系统启动的引导过程,即如下:
[email protected]启动阶段系统排错
如上,假使某一过程出了问题系统将会无法正常启动。那该如何解决呢?接下来我们将以问题的模拟及解决的方式来学习本节内容

1. 磁盘引导阶段

mbr主引导记录的恢复

问题模拟:

dd if=/dev/zero of=/dev/sda bs=446 count=1

RESCURE:
grub2-install 启动分区所在的硬盘

*法一:

>>grub2-install /dev/sda

*法二:
>>reboot
>>chroot /mnt/sysimage    #切换成root模式
>>grub2-install /dev/sda
其启动过程解决如下:
1)页面显示如下
[email protected]启动阶段系统排错
2)关闭虚拟机,并添加磁盘
[email protected]启动阶段系统排错
3)设置从磁盘启动
[email protected]启动阶段系统排错
4)进入挽救模式
[email protected]启动阶段系统排错
5)选择第二项,接下来会得到一个shell
[email protected]启动阶段系统排错
6)在shell中输入如下命令
[email protected]启动阶段系统排错
7)关掉虚拟机,并设置为从硬盘启动
[email protected]启动阶段系统排错

2. 文件引导阶段  

1)引导文件丢失
/boot/grub2/grub.cfg
问题模拟:rm -rf /boot/grub2/grub.cfg

*法一:
直接在shell中输入如下命令
>>grub2-mkconfig  > /boot/grub2/grub.cfg

*法二:
>>reboot

其恢复如下:
grub > set root='hd0,msdos1'    ##此位置是不固定的,位置指定/boot所在分区
grub > linux16 /vmlinuz-3.10.0-327.el7.x86_64 ro root=根分区的设备名称
grub > initrd16 /initramfs-3.10.0-327.el7.x86_64.img


注:以上操作可以使系统正常运行,但是是临时的,所以进入系统后还是要执行:

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

其启动过程解决如下:
页面显示如下:
[email protected]启动阶段系统排错
输入如下命令,可用table键补齐
[email protected]启动阶段系统排错
开启后莫忘执行如下命令
[email protected]启动阶段系统排错

2)内核文件丢失
问题模拟:
rm -rf /boot/vmlinuz-3.10.0-327.el7.x86_64

*法一
>>mount /dev/cdrom /mnt
>>rpm -ivh /mnt/Packages/kernel-3.10.0-123.e17.x86_64.rpm --force

*法二

其开始方式如上,从磁盘启动进入到挽救模式
>>cp /run/install/repo/Packages/kernel-3.10.0-123.e17.x86_64.rpm /mnt/sysimage/mnt
>>cd /mnt/sysimage/mnt
>>rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id
>>cd boot/
>>cp vmlinuz-3.10.0-123.e17.x86_64 /mnt/sysimage/boot


3)系统初始化镜像文件丢失

问题模拟:

rm -rf /boot/initramfs-3.10.0-123.el7.x86_64.img


*法一:
直接在shell中执行如下命令
>>mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

*法二:

>>reboot
>>进入挽救模式
>>chroot /mnt/sysimage/
>>mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

4)当/boot/分区被删掉后
>>进入到挽救模式
>>chroot /mnt/sysimage
>>mkdir /boot
>>grub2-install /dev/vda
>>mount /dev/cdrom /mnt
>>rpm -ivh /mnt/Packages/kernel-3.10.0-123.e17.x86_64.rpm --force
>>grub2-mkconfig > /boot/grub2/grub.cfg