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

本文详细介绍了Linux系统的引导过程,包括磁盘引导、GRUB2文件引导、内核加载、系统初始化镜像和系统启动级别。在引导过程中,重点讨论了MBR的修复、GRUB2配置文件的管理,以及如何在遇到问题时使用光盘挽救模式进行修复。通过实例展示了如何手动引导系统并恢复被删除的引导文件。

##通电
##bios初始化 
对硬件检测
初始化硬件时钟

###1.磁盘引导###

mbr=主引导记录=0磁道1扇区446
作用:
记录grub2引导文件的位置
当mbr数据丢失系统会因为找不到启动分区而停止启动

#问题模拟方式
系统磁盘/dev/sda

#实验环境
dd if=/dev/zero of=/dev/sda bs=446 count=1      ##系统损坏    
#未重启
grub2-install /dev/sda             ##即可修复系统

#重启
reboot      

 系统不能启动                                                         
恢复方式
用光盘进入系统挽救模式
Troubleshooting

1
chroot /mnt/sysimage
grub2-install /dev/sda
exit
exit
 

###2.grub2文件引导###

#系统主文件
 /boot/grub2/grub.cfg
#系统子文件
/boot/loader/entries/
 

 cd /boot/
  ls
  vim /boot/grub2/grub.cfg                          ##此文件为手动引导文件
 rm -rf /boot/grub2/grub.cfg                       ##删除主文件
 #未重启
grub2-mkconfig > /boot/grub2/grub.cfg  ##将主文件导入即可
 ls 

 

  rm -rf /boot/vmlinuz-$(uname -r)             ##删除子文件
                                                                     ##可以启动,但不能手动引导
 kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz
 cd /boot/loader/entries/          
 ls

rm -rf /boot/grub2/grub.cfg
rm -rf /boot/vmlinuz-$(uname -r)
reboot                                                           ##删除主文件或子文件后重启

手动引导进入系统
grub> set root=(hd0,msdos1)                      ##确定根下的boot分区位置
grub> linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/sda3     
grub> initrd16 /initramfs -4.18.0-193.el8.x86_64.img    ##内核 初始化镜像文件
grub> boot                                                     ##  启动

 重启后

grub2-mkconfig > /boot/grub2/grub.cfg    ##将主文件导入即可

“子文件被删除后和以上操作步骤相同,内核初始化镜像文件用 Tab键补齐即可,重启后将子文件导入即可”

##3.内核加载##

加载内核作用
/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

##4.系统初始化镜像 ##

/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)

##5.系统启动级别 ##

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

### 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)。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值