Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

二.bios初始化

对硬件检测

初始化硬件时钟

三.磁盘引导

mbr  系统主引导记录(启动默认读取磁盘的位置,磁头默认零磁道一扇区446字节)

挽救模式的/是光盘的/,硬盘的/会被挂载到当前环境光盘的/mnt/sysimage

模拟问题:

dd if=/dev/zero of=/dev/sda bs=446 count=1

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

恢复:

由光盘启动进入挽救模式

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

chroot /mnt/sysimage

grub2-install /dev/sda

两次exit

重新启动客户机

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

四.grub2文件引导

/boot/loader/entries

kernel-install add $(uname -r) /boot/vmlinuz-$(uname -r)

uname -r         查看内核版本

/boot/vmlinuz

模拟问题:

rhel8

rm -fr /boot/loader/entries/xxxxxx

未重启修复:

kernel-install add $(uname -r)   /boot/vmlinuz-$(uname -r)

                            内核版本号          内核镜像

touch /boot/loader/entries/2554db53fc214de9a4a48e5928c3cb9f-0-rescue.conf

kernel-install add $(uname -r) /boot/vmlinuz-0-rescue-2554db53fc214de9a4a48e5928c3cb9f

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)
                              
重启之后手动引导:

set root=(hd0,msdos1)

linux16 /vmlinuz-4.18.0-80.el8.x86_64 ro root=/dev/sda3

initrd16 /initramfs-4.18.0-80.el8.x86_64.img

boot

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

五.内核加载

加载内核的作用:

fr /boot/vmlinuz-$(uname -r)

系统初始化硬件设备,只读挂载设备

模拟问题:

rm -fr /boot/vmlinuz-$(uname -r)

恢复:

拆解内核安装包并赋值内核压缩镜像到/boot

重装内核

进入到挽救模式

chroot /mnt/sysimage

mount /dev/cdrom /media

cd /media/BaseOS/Packages/

cp kernel-core-4.18.0-80.el8.x86_64.rpm /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/vmlinuz-$(uname -r)

exit

exit

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

六.系统初始化镜像

/boot/initramfs-4.18.0-80.el8.x86_64.img

加载系统时钟

加载selinux

加载系统主机信息

加载/etc/fstab文件中磁盘挂载策略

加载磁盘配额

初始化系统程序开启开机启动服务

开启虚拟控制台

开启图形

模拟问题:

rm -fr /boot/initramfs-xxxx.img

恢复:

未重启:

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

重启之后,进入挽救模式:

chroot /mnt/sysimage

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

exit两次

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

七.系统启动级别

设置开机启动/不启动sshd服务

/etc/systemd/system/multi-user.target.wants

rm -fr sshd.service                开机不启动sshd服务

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

systemctl enable sshd.service

systemctl restart sshd.service           启动sshd服务

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

设置系统启动级别

/etc/systemd/system/default.target

模拟问题:

systemctl set-default reboot.target     设置为无限重启模式

恢复:

重启,上下键停止读秒,按“e” ,ce rhgd quiet这一行

ce rhgd quiet  5     指定启动级别(5 图形界面)

ctrl+x

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

重启后 ,systemctl set-default graphical.target

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

八.超级用户密码忘记

恢复:

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/

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)

九.综合实验

rm -fr /boot/*

恢复:

grub2-install /dev/sda

grub2-mkconfig > /boot/grub2/grub.cfg

rpm -ivh kernel-core-xxxx.rpm

Linux系统中的引导修复(bios初始化,磁盘引导,grub2文件引导,内核加载,系统初始化镜像,超级用户忘记密码)