Linux系统引导过程的排错与恢复(二)常见问题及解决方法


在Linux系统引导过程的排错与恢复(一)中了解了系统引导的基本概念。

本文将模拟各个过程出现错误的情况,并且给出每个错误的解决方法。

硬盘引导阶段

1.mbr主引导记录的恢复

模拟问题:

1.fdisk -l   #查看自己的启动分区的磁盘,此处为/dev/vda
2.将selinux改为disable
3.dd if=/dev/zero of=/dev/vda bs=446  count=1  #从无限空文件里截取446字节的大小,覆盖原来的主引导内容,导致系统找不到引导位置。
4.reboot 重启系统
从磁盘

在这里插入图片描述解决方法:

1.设置系统从镜像启动(首先保证进行下列设置时,虚拟机没有运行)

在这里插入图片描述

在这里插入图片描述在这里插入图片描述2.再次启动时,选择进入挽救模式。
黑色界面为7.3系统的挽救模式

在这里插入图片描述

在这里插入图片描述3.在挽救模式下挽救系统
在这里插入图片描述在这里插入图片描述

chroot  /mnt/sysimage  挽救模式的系统和我本身的系统不一样,把我的系统挂在/mnt/sysimage
grub-install    /dev/vda  (启动分区所在硬盘)

在这里插入图片描述
在这里插入图片描述在这里插入图片描述可以看到,恢复成功。

文件引导阶段

1.引导文件丢失

模拟问题

rm -fr /boot/grub2/grub.cfg

解决方法

1.当系统没有重新启动时,

grub2-mkconfig > /boot/grub2/grub.cfg  #重新make此文件

在这里插入图片描述
2.当系统被重启时
在这里插入图片描述
在这里插入图片描述同样首先添加光驱(有就不必添加)从光驱方式启动,
进入挽救模式。

grub > set root='hd0,msdos1' #此位置不固定,msdos后面的数字指定/boot所在分区
grub >linux16 /vmlinuz-3.10....  ro  root=/dev/vd1  #此文件每个主机也不一样,可以按键tab补齐,后面root=是根分区的设备名称
grub > initrd16 /initramfs-... 同样按键tab补齐
grub > boot

在这里插入图片描述选择启动方式为磁盘启动,进入系统。

上述操作可以使系统正常启动,但是是临时的,进入系统后还需执行,否则再次重启还是会出错。

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

注意:
1.有的主机/boot分区和根分区是分开的,此时内核文件直接是/vm…
2.有的主机/boot和/在一起,内核文件是 /boot/vm…
镜像文件也一样。

3.其实初始化文件和镜像文件挽救时应该和原来主机里的一样。

2.内核文件丢失

模拟问题:

rm -fr /boot/vmlinuz-3.10.0-123.e17.x86_64
主机不同,内核文件版本等也不同,可以cd /boot/下查看
reboot

在这里插入图片描述
解决方法:

选择光驱启动,进入挽救模式。
在这里插入图片描述

chroot /mnt/sysimage
mount /dev/cdrom  /media (或者新建一个目录,挂载新建的目录下)
cd  /media/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 /boot/
cp  vmlinuz-3.10.0-123.e17.x86_64  /boot
exit
exit

在这里插入图片描述
选择磁盘启动
在这里插入图片描述启动成功。

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

模拟问题

rm -fr /boot/initramfs-3.10.0-123.e17.x86_64.img

解决方法:

1.当系统没有重启时

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

举例理解上述命令:
在shell中,输入uname -r 会显示内核版本号
echo time :$(date)  加括号式它优先级最高
会显示
time:....

2.当删除文件并且系统重启时

在这里插入图片描述

进入挽救模式,这里是7.0版本的挽救模式,伪图形,鼠标不可用,需要键盘选择按键
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述选择磁盘启动,恢复正常。

3.当boot分区被删掉之后
进入到挽救模式

chroot /mnt/sysimage
mkdir /boot
grub2-install /dev/vda
mount  /dev/cdrom  /mnt
rpm -ivh  /mnt/Packages-kernel-3.10.0-123.el7.x86_64.rpm --force

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

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

模拟问题:

systemctl set-default reboot.tartget #此时系统一直处于重启状态,也就启动不了。刚启动又被重启。
此类错误可能是某些垃圾软件恶意攻击形成。

解决方法:

1.开机按上下键停止读秒
2.按键“E”进入编辑模式
3.选择内核启动行
linux16  /vmlinuz.......ro........改成
linux16  /vmlinuz.......ro........  5
4.ctrl+x 启动系统
 5.进入系统后,重新设定
 systemctl set-default graphical.tartget

在这里插入图片描述在这里插入图片描述

5.破解超级用户密码(超户忘记密码怎么办)

1.开机按上下键停止读秒
2.按键“E”进入编辑模式
3.选择内核启动行
linux16  /vmlinuz.......ro........改成
linux16  /vmlinuz.......rw rd.break
#在内核启动完成后终止系统初始化程序的执行

4.ctrl+x 启动系统

5.重新设置root密码
chroot /sysroot
echo  新密码  | passwd  --stdin root

touch  /.autorelabel 
#初始化selinux,当selinux未开启时不需要做,但为了保险起见,还是做。

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值