Linux系统引导过程及引导修复

本文详细描述了如何在Linux系统中初始化BIOS、处理MBR数据丢失、修复GRUB2引导文件,包括清除MBR、更改引导顺序、恢复内核配置及解决启动级别等问题。

bios初始化

对硬件检测
初始化硬件时钟

磁盘引导

mbr=主引导记录=0磁道1扇区446
作用
记录grub2引导文件的位置
mbr数据丢失系统会因为找不到启动分区而停止启动
问题模拟方式
系统磁盘/dev/sda
dd if=/dev/zero of=/dev/vda bs=446 count=1 清空系统/dev/sda上的mbr数据
更改光盘设置
虚拟机进不去
恢复方式
进入bios界面,选择Boot并将CD-ROM移至第一个
进入该界面后,选择Troubleshooting
该界面选择Rescue a Red Hat ...
等待,直到出现该界面,并输入数字1
用光盘进入系统挽救模式
chroot /mnt/sysimage
grub2-install /dev/vda
##重新安装grub2到系统硬盘上
输入两次exit,系统会重启
进入bios界面修改设置
这样子,虚拟机就修复好了

grub2文件引导 

rhel8
/boot/grub2/grub.cfg
/boot/loader/entries/xxxxxxxxx.conf
指定/boot位置
指定系统启动时加载文件成名
模拟问题1
rhel8:
rm -fr /boot/loader/entries/xxxxxxxxx.conf
修复
rhel8:
cp /usr/lib/modules/4.18.0-193.el8.x86_64/bls.conf /boot/
kerne-install add 内核版本号 内核镜像
kernel-install add $(uname -r) /boot/vmlinuz-4.18.0-193.el8.x86_64
手动引导
set root='hd0,msdos1'
linux16 /vmlinuz-3.10.0-957.el7.x86_64 ro root=/dev/nvme0n1p2
initrd16 /initramfs-4.18.0-80.el8.x86_64.img
boot
模拟问题2
rm -fr /boot/grub2/grub.cfg
修复grub2-mkconfig > /boot/grub2/grub.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文件中磁盘挂在策略
加载磁盘配额
初始化系统程序开启开机启动服务
开启虚拟控制台
开启图形
问题出现:
rm -fr /boot/initramfs-xxxxx.img
恢复
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

系统启动级别 

0
关机
1
单用户
2
无图形网络模式
3
无图形网络模式
4
无图形网络模式
5
有图形网络模式
6
重启问题出现:
systemctl set-default reboot.target
恢复
在开机选择界面按<e>进入到引导文件编辑模式
在内核加载选项最后加入启动级别5
ctrl+x
systemctl set-default graphical.target

超级用户密码忘记

恢复
1.在开机选择界面按<e>进入到引导文件编辑模式
2.在内核加载选项最后删除到ro选项
3.更改ro---->rw
4.加入rd.break参数终止系统启动进入单用户模式
5.ctrl+x启动
6.chroot /sysroot
7.echo lee| passwd --stdin root
8.touch /.autorelabel ##/.autorelabel文件存在selinux会重新初始化cp kernel
core-4.18.0-80.el8.x86_64.rpm /mnt/
exit
exit
实验
rm -fr /boot/*
恢复步骤
grub2-install /dev/sda
grub2-mkconfig > /boot/grub2/grub.cfg
rpm -ivh kernel-core-xxxx.rpm
### Linux系统引导过程详解 Linux系统引导过程可以分为几个关键阶段,每个阶段都对系统的正常启动至关重要。 #### BIOS/UEFI固件阶段 当计算机启动时,硬件固件(BIOS或UEFI)首先运行。它执行硬件自检(POST),检查内存、CPU等关键组件。然后,固件从配置的启动设备(如硬盘、USB)加载并执行引导加载器。BIOS使用主引导记录(MBR),而UEFI则从EFI系统分区(ESP)加载.efi文件。此阶段错误可能导致系统无法启动。 #### 引导加载器阶段 引导加载器(如GRUB)接管控制。GRUB加载其配置文件(通常位于`/boot/grub/grub.cfg`),显示启动菜单供用户选择内核版本。加载内核镜像(`vmlinuz`)和初始RAM磁盘(initramfs),后者包含临时根文件系统和驱动程序。GRUB参数(如`root=`指定根分区)在此阶段解析,错误配置会导致内核加载失败。 #### 内核阶段 内核(Linux kernel)被加载到内存并初始化。它解压initramfs,挂载临时根文件系统,检测硬件设备(如磁盘、网络),并加载必要的驱动。然后,内核挂载真正的根文件系统(如ext4或Btrfs),并切换到用户空间。如果内核损坏或initramfs缺失,系统可能卡在此阶段。 #### 初始化系统阶段 内核启动第一个用户空间进程(PID 1),通常是systemd或SysV init。systemd加载服务单元文件(位于`/etc/systemd/system/`),启动关键服务(如网络、登录管理器),并最终呈现登录界面。此阶段问题可能导致服务启动失败或系统无法进入多用户模式。 ### 引导修复方法 #### 引导加载器问题修复 - **症状**:GRUB菜单不显示、错误提示如"GRUB rescue>"或"no such partition"。 - **原因**:GRUB配置文件损坏、分区表错误或MBR/ESP损坏。 - **修复方法**: 1. 使用Linux Live CD/USB(如Ubuntu ISO)启动系统2. 打开终端,挂载根分区(例如`sudo mount /dev/sda1 /mnt`)。 3. 重新安装GRUB: ```bash sudo grub-install --target=i386-pc --boot-directory=/mnt/boot /dev/sda # 针对BIOS sudo grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --boot-directory=/mnt/boot # 针对UEFI ``` 4. 更新GRUB配置:`sudo update-grub`。 #### 内核或initramfs问题修复 - **症状**:内核panic、卡在initramfs提示符或无法挂载根文件系统。 - **原因**:内核镜像损坏、initramfs未更新或驱动缺失。 - **修复方法**: 1. 在GRUB菜单中,选择旧内核版本或恢复模式启动。 2. 如果启动成功,重新生成initramfs: ```bash sudo update-initramfs -u -k all ``` 3. 检查内核日志:`dmesg | grep error`,修复驱动问题。 4. 若文件系统损坏,使用fsck工具:`sudo fsck /dev/sda1`(在Live环境中运行)。 #### 初始化系统或文件系统问题修复 - **症状**:systemd启动失败、服务崩溃或根文件系统只读。 - **原因**:服务配置错误、磁盘错误或权限问题。 - **修复方法**: 1. 在启动时按`e`键编辑GRUB条目,添加内核参数`init=/bin/bash`进入单用户模式。 2. 挂载文件系统为读写:`mount -o remount,rw /`。 3. 修复服务: - 检查日志:`journalctl -xb`(查看启动日志)。 - 重置失败服务:`sudo systemctl reset-failed`。 4. 对于磁盘错误,使用Live CD运行fsck:`sudo fsck -y /dev/sda2`。 ### 高级修复工具 如果上述方法无效,使用系统恢复工具: - **Boot Repair Disk**:自动化修复GRUB和分区问题。 - **SystemRescueCD**:提供命令行工具集(如fsck、testdisk)。 ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值