linux中的系统排错

1.系统的启动过程

2.硬盘引导阶段出现错误,即mbr主引导记录的恢复

注:实验使用虚拟机

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

上面代码为模拟问题的出现,把grub的主引导分区的446字节覆盖掉,注意此处不可以大于446字节,否则破坏掉分区表,后果不堪设想

重启后发现,无法启动

如何解决呢?这里就需要用到rhel的安装镜像来解决了

首先关闭虚拟机,然后使用virt-manager命令,打开虚拟机设置,添加虚拟光驱,并选择与系统对应的系统镜像,然后在boot options里把光驱作为第一启动项(如何添加虚拟光驱,之前博客有写,虚拟机管理具体请查看以前的博客文章)

然后启动虚拟机,进入以下界面,选择第三个troubleshooting

选择第二个:rescure a red hat enterprise linux system

选择continue,再按两次ok以后,会进入到一个界面

输入代码

chroot /mnt/sysimage/              ##把根目录切换到/mnt/sysimage
grub2-install /dev/vda             ##启动分区所在硬盘,安装grub引导  
exit                               ##退出
exit                               ##退出

然后设置硬盘为优先启动,重启系统,系统就恢复了

3.文件引导阶段

模拟问题:删除硬盘引导文件

rm -fr /boot/grub2/grub.cfg

1)如果删除后还没关机,可执行

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

2)如果重启了,开机后会显示一个这样的画面


然后输入代码

grub> set root='hd0,msdos1'                            
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

4.内核文件丢失

模拟问题:

rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64

重启后发现,系统无法进入

再次进入挽救模式

chroot /mnt/sysimage/
df

mkdir /xupt
mount /devsr0 /xupt
cd xupt/Packages
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt
cd /mnt
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm |cpio -id 

cd /mnt/boot
cp vmlinuz-3.10.0-123.el7.x86_64 /boot
exit
exit

系统就恢复了

5.系统初始化文件镜像丢失

模拟问题:

rm -fr /boot/initramfs-3.10.0-327.el7.x86_64

重启后会发现系统无法启动

如何修复?

首先进入到挽救模式

输入以下代码

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

重启后,问题就解决了

6.当boot分区被删除了怎么办

删除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

exit退出,切换到硬盘启动,ok

7.当开机启动级别被篡改

模拟错误:

systemctl set-default reboot.target

会发现系统陷入无限重启,如何解决呢

开机的时候按上下键停止读秒
按“E”进入编辑模式
选择内核启动行
linux16 /vmlinuz-xxxxxx ro xxxxxxxxx   改为
linux16 /vmlinuz-xxxxxx ro xxxxxxxxx   5

ctrl + x
开机后
systemctl set-default graphical.target

这样就解决了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值