Linux系统引导过程及引导修复
作者:互联网
一、bios初始化
- BIOS,Basic Input Output System,即基本输入输出系统,对硬件检测、初始化硬件时钟
二、磁盘引导
- 磁盘引导区记录着磁盘的一些最基本的信息,磁盘的第一个扇区被保留为主引导扇区,它位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)以及磁盘的有效标志。
- mbr=主引导记录=0磁道1扇区446
作用:记录grub2引导文件的位置,当mbr数据丢失,系统会因为找不到启动分区而停止启动。 - 查看系统磁盘/dev/sda
清空系统/dev/sda上的mbr数据,当未重启系统时,可以使用 grub2-install /dev/vda ,重新安装grub2(引导程序)到系统硬盘上
若清空了系统/dev/sda上的mbr数据,且重启系统
将会看到以下界面
此时需要用光盘进入系统挽救模式
选择光盘启动方式
启动之后选择Troubleshooting
进入Rescue挽救模式
选择1,continue表示挂载权限为读写
可以看到提示说明,系统硬盘的根分区将被挂载到光盘的 /mnt/sysimage目录
执行chroot /mnt/sysimage,得到系统的shell,之后执行grub2-install /dev/vda ,重新安装grub2(引导程序)到系统硬盘上
编辑 /etc/selinux/config 文件,将selinux设定为disabled(避免其初始化速度太慢)
执行两次exit
重新设定启动方式为磁盘启动,即可修复系统
三、系统初始化镜像
- /boot分区就是操作系统的内核及在引导过程中使用的文件
/boot/initramfs-4.18.0-80.el8.x86_64.img 文件:加载系统时钟、加载selinux、加载系统主机信息、加载/etc/fstab文件中磁盘挂载策略、加载磁盘配额、初始化系统程序开启开机启动服务、开启虚拟控制台、开启图形
- 如果删除了这一文件(镜像丢失)
在未重启系统时,执行以下命令可以进行修复
若删除了文件,且重启了系统,可以看到以下界面
用光盘启动,进入挽救模式
执行以下命令即可
重新用磁盘启动
四、内核加载
- 加载内核作用:/boot/vmlinuz-$(uname -r),系统初始化硬件设备,只读挂载/设备
若将内核加载文件删除
在未重启系统时,复制系统中usr下的内核文件到 /boot 中即可恢复
若删除了内核加载文件,还重启了系统,将会看到以下界面
设定光盘启动方式,进入挽救模式
执行同样的操作即可
五、grub2文件引导
- rhel8:
/boot/grub2/grub.cfg:主引导文件,指定/boot位置;
/boot/loader/entries/xxxxxxxxx.conf:子引导文件,指定系统启动时加载文件成名
删除主引导文件,未重启系统时,执行以下命令即可修复
删除主引导文件,且重启系统时,将会看到以下界面
可以看到boot分区位于/dev/vda3 (系统第一块磁盘的第三个分区),根目录位于系统的/dev/vda3(第一块磁盘的第三个分区)
首先进行手动引导,hd0,msdos1 表示第一块硬盘的第一个分区,并且将根目录挂载到vda3
重启以后,执行以下命令进行修复即可
当子引导文件被删除时
首先同样进行手动引导
进入系统后执行以下命令即可修复,uname -r : 查看内核版本号
出现错误提示,将/usr/modules下的文件复制给/boot/bls.conf,再次执行以下命令即可
可以看到子引导文件已重新生成
六、修复 /boot
- /boot的内容全部删除时
首先用光盘启动,进入挽救模式
将/dev/cdrom(光驱)挂载到/mnt 上
切换到/boot ,重新安装grub2到系统硬盘上
切换到/mnt/BaseOS/Packages/ 强行安装内核
此时/boot 中的文件已经全部生成
最后执行以下命令,修复主引导文件
七、系统启动级别
0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启
- 每一个 Unit(服务等) 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit 。Systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接
修改系统启动方式为无限重启
修复方法:在开机选择界面按e进入到引导文件编辑模式,在内核加载选项最后加入启动级别5,ctrl+x启动
进入系统后,重新设定系统启动方式为有图形网络模式即可
八、超级用户密码忘记
- 在开机选择界面按e进入到引导文件编辑模式,在内核加载选项最后删除到ro选项,更改ro---->rw,加入rd.break参数终止系统启动进入单用户模式,ctrl+x启动
chroot /sysroot :把根目录切换到我们原来的环境中
为root用户设定一个新密码为lee
当/.autorelabel文件存在时,selinux会重新初始化
两次exit即可
标签:引导,修复,boot,系统,内核,Linux,引导文件,磁盘,加载 来源: https://blog.csdn.net/qq_38664479/article/details/116539180