Linux系统引导过程及引导修复
1.通电
2.bios初始化
对硬件检测
初始化硬件时钟
3.磁盘引导
mbr=主引导记录=0磁道1扇区446
作用: 记录grub2引导文件的位置
当mbr数据丢失系统会因为找不到启动分区而停止启动
问题模拟方式
系统磁盘/dev/sda
dd if=/dev/zero of=/dev/sda bs=446 count=1 ##清空系统/dev/sda上的mbr数据
恢复方式:
关闭客户机,进入bios===>boot 将光盘shift+调到启动开机顺序第一位 F10退出保存
用光盘进入系统挽救模式
chroot /mnt/sysimage grub2-install /dev/vda ##重新安装grub2到系统硬盘上
exit
exit 4
修复完成后重新进入bios,恢复原来的开机启动顺序,F10保存退出
修复完成,可以重新启动
修复完成后,关机重新进入bios切换原来的启动顺序
修复完成,可以重新启动
4.grub2文件引导
node1
/boot/grub2/grub.cfg
/boot/loader/entries/
指定/boot位置 指定系统启动时加载文件成名
模拟问题1:
node1:
rm -fr /boot/loader/entries/ ##删除/boot/loader/entries/ 下的子文件
未关机前修复:
node1:
kernel-install add $(uname -r) /lib/modules/4.18.0-193.el8.x86_64/vmlinuz
关机后手动引导
set root=(hd0,msdos1) ##激活boot分区(hd0第一块硬盘,msdos1第一块分区)
linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/sda3 ##加载内核并只读挂载分区
initrd16 /initramfs-4.18.0-193.el8.x86_64.img ##系统初始化程序
boot ##启动
注意:手动完成引导后下次启动还是要手动引导,需要将系统内删除的文件恢复,下次即可自动启动
grub2-mkconfig > /boot/grub2/grub.cfg ##执行此命令完成修复
模拟问题2:
rm -fr /boot/grub2/grub.cfg ##删除boot下的主配置文件/grub2/grub.cfg
修复:
grub2-mkconfig > /boot/grub2/grub.cfg
5.内核加载
加载内核作用: /boot/vmlinuz--4.18.0-193.el8.x86_64
系统初始化硬件设备
只读挂在/设备
问题出现:
rm -fr /boot/vmlinuz--4.18.0-193.el8.x86_64
未重启恢复:
复制系统中usr下的内核文件到/boot中即可
cp /lib/modules/4.18.0-193.el8.x86_64/vmlinuz /boot/vmlinuz-$(uname -r)
进入到挽救模式
chroot /mnt/sysimage
cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)
exit
exit
完成后重启系统,进入BIOS更改回原来的开机顺序,系统就会正常启动
6.系统初始化镜像
/boot/initramfs-4.18.0-80.el8.x86_64.img
作用:
加载系统时钟
加载selinux
加载系统主机信息
加载/etc/fstab文件中磁盘挂在策略
加载磁盘配额
初始化系统程序开启开机启动服务
开启虚拟控制台
开启图形
问题出现: rm -fr /boot/initramfs-4.18.0-193.el8.x86_64.img
恢复: mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
系统重启后,手动修复进入挽救模式
完成后重启系统,进入BIOS更改回原来的开机顺序,系统就会正常启动
7.系统启动级别
0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启
问题出现:
systemctl set-default reboot.target ##开机启动默认级别为reboot.target(系统会无限重启)
恢复:
在开机选择界面按进入到引导文件编辑模式 按上下键让系统停止,输入“e”
在内核加载选项最后加入启动级别5(有图形网络模式)
ctrl+x
系统就会正常启动
进入系统,系统不会自动更改默认启动级别为5 ,需要手动更改
systemctl set-default graphical.target ##更改默认启动级别
8.超级用户密码忘记
恢复:
1.在开机选择界面按进入到引导文件编辑模式
2.在内核加载选项最后删除到ro选项
3.更改ro---->rw
4.加入rd.break参数终止系统启动进入单用户模式
5.ctrl+x启动
6.chroot /sysroot
7.echo lee| passwd --stdin root ##重启系统后root密码为lee
8.touch /.autorelabel ##当/.autorelabel文件存在selinux会重新初始化
exit
exit