Linux之系统引导过程及引导修复
一、通电
二、bios初始化
对硬件检测
初始化硬件时钟
三、磁盘引导
mbr —主引导记录 0磁道1扇区 446 ##mbr里装的找到第一个扇区的信息
作用:
记录grub2引导文件的位置
当mbr数据丢失系统会因为找不到自动分区而停止启动
问题模拟方式
系统磁盘/dev/sda
[root@node98 ~]# dd if=/dev/zero of=/dev/vda bs=446 count=1
####清空系统/dev/vda上的mbr数据
1+0 records in
1+0 records out
446 bytes copied, 0.000245783 s, 1.8 MB/s
[root@node98 ~]#
远程连不上了,进主机
恢复方式:
用光盘进入系统挽救模式
chroot /mnt/sysimage
grub2-install /dev/vda
##重新安装grub2到系统硬盘上
exit
exit
调整virt-manager硬件
重启,选forceoff强行重启
选择troubleshooting
选择Rescue a red hat enterprise linux system
过程
进入挽救模式
按1.continue
四、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/
kernel-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
rm -fr /boot/loader/entries/xxxxxxxxx.conf
reboot
exit
exit
forceoff
五、内核加载vmlinuz-xxx
加载内核作用:
/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
问题出现:
rm -fr /boot/vmlinuz-$(uname -r)
reboot
进不去系统。
1.进入第二个选项rescue模式修复。
2.进入硬件rescue。
cp kernel-core-4.18.0-80.el8.x86_64.rpm /mnt/
cd /mnt
rpm2cpio kernel-core-4.18.0-80.el8.x86_64.rpm | cpio -id
cp /mnt/lib/modules/4.18.0-80.el8.x86_64/vmlinuz
六、系统初始化镜像
/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)
系统初始化硬件设备
进入援救模式。
loading
七、系统启动级别
0
关机
1
单用户
2
无图形网络模式
3
无图形网络模式
4
无图形网络模式
5
有图形网络模式
6
重启
问题出现:
systemctl set-default reboot.target
reboot
无限重启。
恢复:
在开机选择界面按进入到引导文件编辑模式
在内核加载选项最后加入启动级别5
ctrl+x
解决方法:
systemctl set-default graphical.target
没装图形的runlevel N 5,启动依然是3.
也可以直接如下
touch /.autorelabel
selinux初始化,不加进入系统无法修改被修改的项目。access deny
八、超级用户密码忘记
恢复:
1.在开机选择界面按进入到引导文件编辑模式
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会重新初始化
exit
exit
实验:
/boot/vmlinuz-$(uname -r)
单主机破解root密码
ctrl - x
## 九、
实验:
rm -fr /boot/*
恢复步骤
grub2-install /dev/sda
###rpm -ivh kernel-4.xxxx.rpm --force
待测试
rpm -ivh kernel-core-xxxx.rpm --force
grub2-mkconfig > /boot/grub2/grub.cfg