CentOS7系统MBR、GRUB2、内核启动流程报错问题

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

目录

Linux启动流程

MBR修复

1、模拟损坏

2、重启测试

3、修复MBR

4、测试系统

GRUB2修复

1、模拟损坏

2、修复GRUB2

3、测试系统

内核修复

1、模拟损坏

2、修复内核

3、测试系统


     博客主页大虾好吃吗的博客

     专栏地址服务器管理

Linux启动流程

        在生产环境中系统出现bug作为一个运维需要知道问题出在哪查看系统日志/使用测试工具/使用top等系统资源命令查看。另一种情况系统直接崩了开机无法打开。那我们就需要看下面LinuxCentOS7启动系统的顺序。根据系统给出的提示修复系统。

来自GPT给出的Linux启动流程可以大致分为以下几个阶段

  1. BIOS/UEFI阶段计算机通电后会首先执行计算机的基本输入输出系统BIOS或统一固件接口UEFI。在这个阶段固件会进行硬件自检和初始化工作并加载引导设备的Master Boot RecordMBR或EFI系统分区的启动程序。

  2. Bootloader阶段引导设备的MBR或EFI系统分区的启动程序会加载操作系统的引导加载器例如Grub或Syslinux。引导加载器会提供一个菜单让用户选择加载哪个操作系统或启动选项。

  3. 内核加载阶段一旦用户选择了启动选项引导加载器会加载Linux内核通常是一个压缩的镜像文件如vmlinuz。加载内核时引导加载器还会传递一些附加的启动参数用于配置内核的行为。

  4. 内核初始化阶段内核被加载后它会进行一系列的初始化操作包括检测和配置硬件设备、初始化内存管理、挂载文件系统等。内核还会启动第一个用户空间进程init进程该进程负责系统的进一步初始化和启动其它进程。

  5. 用户空间初始化阶段在内核初始化完毕后init进程会按照配置文件通常是/etc/inittab中的指示启动一系列的用户空间服务和进程。这些进程包括系统服务如网络服务、时间服务等和用户登录界面如图形界面或命令行界面等。

  6. 用户登录阶段一旦用户空间初始化完成系统会提供一个用户登录界面用户可以输入用户名和密码来登录系统。一旦登录成功用户就可以开始使用操作系统提供的各种功能和进行各种操作。

        总结开机BIOS自动检测系统通过MBR引导通过BRU2菜单选择哪个系统如双系统选择启动选项后加载内核文件systemd初始化。

        通过上面我们简单了解了下Linux的启动进程我们下面模拟损坏并修复。

MBR修复

        Linux MBRMaster Boot Record是系统引导时非常重要的一个数据块引导环境通常安装在磁盘的第一个扇区。

1、模拟损坏

        我们这里使用虚拟环境模拟MBR损坏MBR损坏通常有两种情况MBR文件损坏或grub目录被误删。我们现在模拟损坏只需要把磁盘的第一个扇区前446个字节破坏掉就可以起到MBR损坏的作用。

打开虚拟机使用漏洞命令模拟损坏。

[root@daxia ~]# dd if=/dev/zero of=/dev/sda bs=100 count=1
记录了1+0 的读入
记录了1+0 的写出
100字节(100 B)已复制0.00072338 秒138 kB/秒
[root@daxia ~]# sync

2、重启测试

重启后发现系统自动使用PXE寻找网络中的系统说明MBR引导找不到系统了。

3、修复MBR

        下面我们就开始修复MBR关闭服务器挂载系统光盘进入急救模式。注意我这里直接关闭了虚拟机选择iso文件后默认是启动时连接。开启虚拟机后进入第三选项(急救模式)。

在开启服务器后的操作如下

Troubleshooting→Rescue a CentOS system→ 1 (注意这有个1表示选择继续)

        在急救模式修复执行下面命令。默认进入的系统可以称为伪系统而执行chroot /mnt/sysimage 后看到的才能称之为真正的系统。重启先exit退出再再执行reboot重启测试系统是否正常使用我这是虚拟环境你的系统如果有服务或文件测试起来更好一些。

4、测试系统

        进入后默认是登录页面选择用户名登录因为我这个没有开始创建文件也没有服务只能测试出系统正常开机你做第二遍的时候记得搭建一些服务。

GRUB2修复

1、模拟损坏

注意挂载光盘

        我们先找到grub2菜单文件的存放位置删除文件达到模拟损坏的条件。这回我们想着先创建一个文件后面修复后查看是否还有。grub2目录在boot下删除它后关机。

[root@daxia ~]# mkdir /daxia
[root@daxia ~]# vim /daxia/test.txt
[root@daxia ~]# cat /daxia/test.txt 
aaaaaaaaaa
bbbbbb
ccccccc
daxia
[root@daxia ~]# cd /boot/grub2/
[root@daxia grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale
[root@daxia grub2]# rm -rf *
[root@daxia grub2]# ls
[root@daxia grub2]# init0

可以自己重启测试一下我这里就省略了。

2、修复GRUB2

启动前先修改为光盘启动否则还是找不到grub2菜单。

选择boot→找到光盘按小键盘+把启动顺序设置为第一位→f10保存退出。

        这时又来到了急救模式选择3→第二页选择2可以看上面MBR修复→输入 1表示继续后面可能让你按回车键进入一个shell。

输入下面命令修复GRUB2菜单 

退出后还是需要进入BIOS修改启动顺序。f10保存退出

3、测试系统

进入后默认是登录页面选择用户名登录查看之前创建的目录和文件是否丢失顺便查看一下grub2

[root@daxia ~]# ls /daxia/
test.txt
[root@daxia ~]# cat /daxia/test.txt 
aaaaaaaaaa
bbbbbb
ccccccc
daxia
[root@daxia ~]# ls /boot/grub2/
fonts  grub.cfg  grubenv  i386-pc  locale

        通过上面查看系统修复了文件不会丢失。就好比windows系统的C盘坏了但是D盘、E盘里的文件会消失吗有其他特殊情况这样一整会不会对系统的理解又深了一个层次。你要是没搞懂可以多做几遍要还是没懂那就是我的问题了。

内核修复

1、模拟损坏

注意挂载光盘

        内核文件丢失其实可以和上面一起说步骤基本相同下面就简单讲讲。删除boot目录下的内核文件。vmlinuz-3.10.0-1160.el7.x86_64 内核文件

[root@daxia ~]# cd /boot/
[root@daxia boot]# ls
config-3.10.0-1160.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-e09f912b047c4b689d2483741b68d6d3.img
initramfs-3.10.0-1160.el7.x86_64.img
symvers-3.10.0-1160.el7.x86_64.gz
System.map-3.10.0-1160.el7.x86_64
vmlinuz-0-rescue-e09f912b047c4b689d2483741b68d6d3
vmlinuz-3.10.0-1160.el7.x86_64
[root@daxia boot]# rm -rf vmlinuz-3.10.0-1160.el7.x86_64 

自行测试一下启动后选择系统进不去

2、修复内核

关机后进入BIOS继续选择光盘启动上面有过程略。

        进入急救模式我这里显示了boot直接按回车然后选项3→2→按键1跟上面操作一样进入急救模式。

3、测试系统

到这里就是最后一步修改BIOS的启动项进入系统测试是否文件丢失。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: centos