Linux第二本书第八章Linux中的引导过程与修复方法


前言

不正确的操作会导致系统出现各种问题,在实际情况中,重装服务器显然是不现实的,因此我们需要了解系统启动原理并据此找到修复的方法。


一、磁盘引导与修复(使用光盘启动)

在启动程序时,磁头经过mbr程序的指引跳转到boot分区,开启系统启动程序,读取相应的配置文件,系统正常启动,因此当 mbr 数据丢失时,系统会因为找不到启动分区而停止启动。

mbr=主引导记录=0磁道1扇区446存储字节
作用:记录 grub2 引导文件的位置

1、问题模拟

dd if=/dev/zero of=/dev/xxx(系统磁盘) bs=446 count=1  ##清空系统/dev/sda 上的 mbr 数据
此时重启系统后会停滞导致无法正常启动

2、恢复方式

(1)在虚拟机关闭模式下设置光盘为第一启动项,应用,从光盘进入系统,
1)在nodea的管理界面,点击灯泡按钮,添加新磁盘,选择镜像,作为光盘启动
请添加图片描述请添加图片描述2)使用光盘启动进入挽救模式(更改启动盘后Apply后,点击黑色倒三角按钮选择force off后更改启动盘生效,再点击播放按钮进行光盘启动,点击显示屏按钮进入显示界面)
请添加图片描述
3)选择挽救模式请添加图片描述请添加图片描述请添加图片描述选择挽救模式,输入以下命令:
chroot /mnt/sysimage
grub2-install /dev/xxxxxx #重新安装grub2文件到系统硬盘上 /dev/vda是虚拟机nodea的系统磁盘是vda
在这里插入图片描述

(2)执行两次exit,关闭系统,并选择nodea硬盘为第一启动项,启动系统,发现系统可以正常启动

二、grub2 文件引导与修复(不用光盘启动)

文件存储路径:

/boot/grub2/grub.cfg总引导文件
/boot/loader/entries/xxxxxxxxx.conf子引导文件

删除上述任意一个文件都会导致系统无法正常启动

查看挂载情况:虚拟机nodea的磁盘为vda,vda1挂载在/boot下,vda2挂载在/下
请添加图片描述

1、问题模拟1

rm -fr /boot/loader/entries/xxxxxxxxx.conf  #删除子引导文件

2、引导及修复过程

修复(未重启系统):
cp /usr/lib/modules/4.18.0-193.el8.x86_64/bls.conf /boot/
kerne-install add 内核版本号 内核镜像
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz

引导(已经重启系统):
重启系统并执行如下指令
set root='hd0,msdos1'#0磁道1扇区
linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/vda2#df命令查看vda2挂载在根上
initrd16 /initramfs-4.18.0-193.el8.x86_64.img
boot
修复:
完成上述引导过程后可正常进入系统,但是还需要修复,否则下次重启还是无法正常启动
cp /usr/lib/modules/4.18.0-193.el8.x86_64/bls.conf /boot/
kerne-install add 内核版本号 内核镜像
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz#$(uname -r)表示内核版本号

3、问题模拟2

rm -fr /boot/grub2/grub.cfg   #删除总引导文件

4、引导及修复过程

修复(未重启系统):
grub2-mkconfig > /boot/grub2/grub.cfg    #创建cfg总引导文件

引导(已重启系统):
和问题1引导过程相同
引导完还要再修复:
grub2-mkconfig > /boot/grub2/grub.cfg    #创建cfg总引导文件

在这里插入图片描述引导完不要忘记修复,负责再次重启仍会报错

在这里插入图片描述

注意:上述问题出现时,如果没有重启系统,可直接用修复过程修复,如果重启系统可利用上述引导操作进入系统,之后同样需要进行修复,以保证之后可以正常进入系统

三、内核加载(使用光盘启动)

/boot/vmlinuz-$(uname -r)
加载内核作用:系统初始化硬件设备,只读挂在根目录下的设备
没重启直接修复,虚拟机重启了要光盘启动引导修复

模拟问题:
rm -fr /boot/vmlinuz-$(uname -r)
恢复∶
复制系统中usr下的内核文件到/boot中即可
在关闭模式下选择光盘为第一启动项,启动系统,进入到挽救模式,执行以下命令:
chroot /mnt/sysimage
cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)
exit
exit

四、系统初始化镜像(使用光盘启动项)

文件:
/boot/initramfs-4.18.0-80.el8.x86_64.img
作用:
加载系统时钟
加载 selinux
加载系统主机信息
加载/etc/fstab 文件中磁盘挂在策略
加载磁盘配额
初始化系统程序开启开机启动服务
开启虚拟控制台
开启图形
(1)问题模拟
rm -fr /boot/initramfs-4.18.0-193.el8.x86_64.img #删除镜像文件,系统无法正常启动
(2)引导及修复
使用光盘启动
进入修复界面
请添加图片描述mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) #恢复初始化镜像文件,$(uname -r)=4.18.0-193.el8.x86_64表示内核版本
exit
exit
更换启动盘,启动nodea请添加图片描述

五、系统启动级别(不用光盘启动项)

0关机
1单用户
2无图形网络模式
3无图形网络模式
4无图形网络模式
5有图形网络模式
6重启

问题模拟:
systemctl set-default reboot.target
引导及修复:
在开机选择界面按进入到引导文件编辑模式
请添加图片描述在内核加载选项最后加入启动级别 5
请添加图片描述ctrl+x
在nodea中执行,改为图形界面启动:
systemctl set-default graphical.target

六、超级用户密码忘记(不用光盘启动项)

恢复方法:
1.在开机选择界面按进入到引导文件编辑模式
请添加图片描述2.在内核加载选项最后删除到 ro 选项
3.更改 ro---->rw
4.加入 rd.break 参数终止系统启动进入单用户模式
请添加图片描述5.ctrl+x 启动
6.chroot /sysroot
7.echo lee| passwd --stdin root#lee是新密码,root是指对系统用户设置密码
8.touch /.autorelabel ##当/.autorelabel 文件存在 selinux 会重新初始化
exit
exit

七、实验rm-fr /boot/*

步骤:
选择光盘启动,进入挽救模式,#chroot /mnt/sysimage/
在这里插入图片描述光盘vdc挂载在/media上是为了使用光盘镜像里的软件包

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述(2)换成nodea盘启动
在这里插入图片描述(3)引导,把下面grub第二行换为 root=/dev/vda2,因为df可以查到根/挂载在vda2下面(这个挂载在那里需要根据实际情况去确定不唯一

在这里插入图片描述

(4)进入nodea中还要修复
在这里插入图片描述

注意

1.首先要确定nodea的系统盘
vda为nodea的系统盘对应硬盘VirtIO Disk1
vdb对应硬盘VirtIO Disk2
光盘启动对应硬盘VirtIO Disk3

请添加图片描述

2.上面问题,如果产生问题时没有重启虚拟机,只需要修复即可,不用使用光盘启动。如果出错后重新启动虚拟机就需要引导再修复。

3.在vim /etc/sysconfig/selinux,把selinux设置为disabled,这样不用每个都扫描,修复的快。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值