Linux磁盘修复引导

2 磁盘引导修复

1. MBR

主引导记录(Master Boot Record,MBR)是装有Linux系统的硬盘的第一个扇区,也被称为主引导扇区,是计算机开机以后访问硬盘时所必须要读取的第一个扇区,将其开头的446字节内容特指为“主引导记录”
mbr=主引导记录=0磁道1扇区446
作用:记录grub2引导文件的位置
当mbr数据丢失系统会因为到不到其东分区而停止启动

1.1 磁盘分区

  • 查看硬盘及分区信息:fdisk -l,带*的磁盘是引导(Boot)分区(vda1)

在这里插入图片描述

1.2 清空磁盘数据

  • 使用指令dd覆盖磁盘的第一个扇区446个字节,损坏mbr文件
dd if=/dev/zero of=/dev/vda bs=446 count=1

在这里插入图片描述

  • 重启之后虚拟机之后,由于磁盘引导阶段 mbr主引导记录损坏导致系无法正常启动

在这里插入图片描述

1.3 磁盘的引导修复

(1)关闭虚拟机

(2)添加光驱SATA CDROM

在这里插入图片描述

(3)将SATA CDROM1放在开启启动项的第一个

在这里插入图片描述
(4)启动虚拟机,进入Troubleshooting——>Rescue a Red Hat Enterprise Linux system,进入挽救模式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 输入“1”继续

在这里插入图片描述

  • df可以看到硬盘挂载在 /mnt/sysimage

在这里插入图片描述

  • 将系统挂载更改到根目录/boot下:chroot /mnt/sysimage
  • 重新安装grub到系统硬盘上:grub2-install /dev/vda

在这里插入图片描述

  • 指定SELinux的运行模式为关闭模式:disable,不需要重新写入安全上下文信息,重启 Linux 系统的速度会比较快

在这里插入图片描述

  • 两次exit

在这里插入图片描述
(5)启动虚拟机之前,将VirtiO Disk1放在第一个

在这里插入图片描述

(6) 重新启动虚拟机,挽救模式只是临时使系统正常开启,正常进入系统之后需要再次对主引导记录进行恢复,至此磁盘的引导修复就完成了

在这里插入图片描述

在这里插入图片描述

2 grub2文件引导恢复

/boot/loader/entries/目录中存放了系统启动时指定加载的文件
如果此目录中的文件丢失,将导致系统无法正常启动

实验前用df查看linux服务器文件系统的磁盘空间占用情况
根目录的文件
在这里插入图片描述

2.1 模拟问题

rm -fr /boot/loader/entries/*

在这里插入图片描述
重启后出现下图界面

在这里插入图片描述

2.2 手动引导修复

set root='hd0,msdos1' ##第一个磁盘的第一个分区
##/dev/mapper/rhel-root是系统/分区的设备名称
linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/mapper/rhel-root ##内核文件及/分区所在的设备名称
initrd16 /initramfs-4.18.0-193.el8.x86_64.img ##系统初始化文件
boot #启动系统

在这里插入图片描述
切换到磁盘启动之后可以正常进入系统

在这里插入图片描述

手动引导进入到系统中后,只是从暂时的修复了引导问题,此时查看 /boot/loader/entries/中的文件仍为空,若虚拟机重新启动之后,仍然会出现文件引导的问题,只有在/boot/loader/entries/生成新的引导文件之后才能彻底解决此问题

在这里插入图片描述

  • 重新生成/boot/loader/entries/中的文件
  • uname -r :查看内核版本
 kernel-install add $(uname -r) /boot/vmlinuz-4.18.0-193.el8.x86_64 

正常情况下,执行完此命令后自动生成/boot/loader/entries/目录中文件,如是出现系统无法自动生成全部的引导文件,需要手动修改

在这里插入图片描述
若系统提示无法自动生成:
/boot/loader/entries/71e18fa292e14cbc921c721d1fc7dcd9-0-rescue.conf

此时将已经生成的.conf文件作为xxxx-rescue.conf的模板,并修改其中的内容

在这里插入图片描述
在这里插入图片描述
此时grub2文件引导恢复就完成了

2.3 硬盘引导修复

  • 选择硬盘启动,进入到挽救模式
chroot /mnt/sysimage/ ##切换系统环境
kernel-install add $(uname -r) /boot/vmlinuz-$(uname -r)

在这里插入图片描述

进入系统后界面如下,此时只需手动在/boot/loader/entries/目录中生成xxxx-rescue.conf文件即可

在这里插入图片描述

3 内核加载

内核加载的作用:系统初始化硬件设备

3.1 模拟实验环境

  • 删除内核文件
rm -fr /boot/vmlinuz-4.18.0-193.el8.x86_64 

在这里插入图片描述

3.2 修复内核文件

  • 重启系统后出现下图的界面

在这里插入图片描述

  • 选择从硬盘启动系统,并进入挽救模式
chroot /mnt/sysimage ##切换环境
mount /dev/cdrom /media ##将硬盘挂载到 /media目录
cd /media/BaseOS/Packages
cp kernel-core-$(uname -r).rpm  /mnt/ ##将内核的安装包复制到/mnt目录里面
cd /mnt
rpm2cpio kernel-core-$(uname -r).rpm | cpio -id #解压内核的安装包
cp /mnt/lib/modules/$(uname -r)/vmlinuz  /boot/vmlinuz-$(uname -r) ##复制内核初始化文件到/boot下,并修改文件的名称
exit
exit

在这里插入图片描述

在这里插入图片描述

  • 切换到磁盘启动系统之后能够正常进入

在这里插入图片描述

4 系统初始化镜像

4.1 模拟实验环境

  • 删除系统中的初始化镜像文件

rm -rf initramfs-4.18.0-193.el8.x86_64.img

在这里插入图片描述

  • 重启后出现下图界面

在这里插入图片描述

4.2 恢复方法

  • 选择从硬盘启动,并进入到挽救模式
chroot /mnt/sysimage ## 切换系统环境
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) ## 恢复系统初始化镜像文件

执行两次:exit

在这里插入图片描述
选择从磁盘启动,能正常进入系统界面

5 删除/boot/ 下的所有文件

5.1 模拟实验

  • 删除/boot下的所有文件: rm -rf /boot/*

在这里插入图片描述

  • 重启系统进入下图界面

在这里插入图片描述

5.2 恢复方法

设置系统从硬盘启动,并进入挽救模式

chroot /mnt/sysimage ##切换环境
mount /dev/cdrom /media ##将硬盘挂载到 /media目录
cd /media/BaseOS/Packages
cp kernel-core-$(uname -r).rpm  /mnt/ ##将内核的安装包复制到/mnt目录里面
cd /mnt
rpm2cpio kernel-core-$(uname -r).rpm | cpio -id #解压内核的安装包
grub2-install /dev/vda ##获取磁盘引导mbr
rpm -ivh kernel-core-4.18.0-193.el8.x86_64.rpm --force
exit
exit

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6 忘记超级用户的密码

如果忘记普通用户的登陆密码,可以以超级用户的身份重新设定普通用户的密码。但是如果超级用户的密码忘记了,就无法进入系统,此时我们可以通过以下的方法修改超级用户的密码。

  • 修改超级用户密码
  • 进入到系统启动界面,根据提示按 “ e ” 键进入编辑模式

在这里插入图片描述

  • 初始化界面如下

在这里插入图片描述

  • 删除内核加载选项中 “ ro ” ~ “ quite ” 之后的内容,更改 rorw ,并添加 rw rd.break

在这里插入图片描述

  • 根据提示按Ctrl + x 启动后,进入下面的界面
chroot /sysroot ## 切换到系统真正的根目录下
echo lee| passwd --stdin root ##修改root用户的密码
8.touch /.autorelabel		##当/.autorelabel文件存在selinux会重新初始化

在这里插入图片描述
只需等待一段时间重新进入系统,输入超级用户的账号和修改成功的密码即可

7 系统启动级别

7.1 模拟问题

systemctl set-default graphical.target ##进入系统后默认进入图形化界面
systemctl set-default multi-user.target ##进入系统后默认进入无图形化界面

在这里插入图片描述
系统启动后默认执行重启操作:systemctl set-default reboot

在这里插入图片描述
重启系统后,系统一直在开机界面跳转

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

7.2 恢复方法

(1)在开机选择界面按,“ e ” 进入到引导文件编辑模式

在这里插入图片描述
(2)初始化界面

在这里插入图片描述
(3)在内核加载选项最后加入启动级别5,Ctrl+x启动

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值