Linux引导过程及引导修复(误删/boot/的文件修复方法)
Linux引导过程及引导修复(误删/boot/的文件修复方法)Linux引导过程及引导修复(误删/boot/的文件修复方法)Linux引导过程及引导修复(误删/boot/的文件修复方法)1.如何调整启动设备在windows的VM如何从光盘启动方法一方法二在Linux中如何从光盘启动2.通电3.bios初始化4.磁盘引导问题模拟恢复方式5.grub2文件引导问题模拟子引导文件丢失解决方式恢复主引导文
Linux引导过程及引导修复(误删/boot/的文件修复方法)
Linux引导过程及引导修复(误删/boot/的文件修复方法)
1.如何调整启动设备
在windows的VM如何从光盘启动
方法一
- 在启动列表中选择从光盘启动
方法二
- 打开电源时进入固件
- 左右键选择Boot
- 此方式每次启动都是从光盘启动
- 如果需要从硬盘启动仍然需要进入bios重新调整
在Linux中如何从光盘启动
- 添加光驱
- 添加光驱完成之后
- 如何从光驱启动
2.通电
3.bios初始化
对硬件检测
初始化硬件时钟
4.磁盘引导
mbr=主引导记录=0磁道1扇区446
作用:
记录grub2引导文件的位置
当mbr数据丢失系统会因为找不到启动分区而停止启动
fdisk -l ##查看设备
启动分区:启动文件所在的分区,分区所在的设备叫做启动设备
*所有在的启动设备上是有引导记录(mbr)的,引导记录安装在哪一个磁盘。
问题模拟
问题情景模拟方式:
系统磁盘
/dev/sda
dd if=/dev/zero of=/dev/sda bs=446 count=1
##截取零字节数据放到sda硬盘中(相当于用空白板覆盖住)
##清空系统/dev/sda上的mbr数据
of后面的内容是*所有在设备
当系统引导程序被破坏之后系统无法识别从什么位置读取信息
影响:重启之后无法读取磁盘引导
恢复方式
恢复方式:
用光盘进入系统挽救模式
chroot /mnt/sysimage
grub2-install /dev/sda
##重新安装grub2到系统硬盘上
exit
解决方式;
1.关机;2.从光盘启动:把真实系统(在硬盘中)挂载到/mnt/sysimage中fdisk -l看*所在的设备是/dev/vda1,在写grub-install时不需要加1
/dev/vda1是启动分区,/dev/vda是启动分区的设备
看到这no error表示成功
5.grub2文件引导
引导文件:开启系统的两行标题
主引导文件:/boot/grub2目录下
子引导文件:/boot/loader/entries/目录下(将主引导文件标题分散开,减少负载)
如果引导文件丢失,如何引导系统找回引导文件
问题模拟
模拟场景模拟:
在子目录中删除引导文件,引导文件丢失
手动引导时必须要知道:启动分区所有的系统设备
1.根分区所在的系统设备
2.boot分区所在的系统设备
根分区所在系统设备:
/dev/sda3
启动分区所在系统设备
/dev/sda1
子引导文件丢失
模拟问题一:子引导文件丢失
无法完成自动引导,需要手动添写引导信息
rm -fr /boot/loader/entries/xxxxxxx.conf
解决方式
指定引导分区
- 1.指定引导分区的位置为第一块硬盘、第一个硬盘第一个分区中(根下boot分区所在位置)
Set root=’hd0,msdos1’
- 2.linux16启动内核镜像,ro表示只读,挂载根分区
Linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/sda3
- 3.指定系统初始化镜像
Initrd16 /initramfs-4.18.0-193.el8.x86_64.img
- 4.引导完成,启动系统boot+回车
boot
恢复
uname -r ##查看内核版本
恢复时解决报错问题:
解决/bls.conf文件缺失
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
主引导文件丢失
模拟问题二:主引导文件丢失
rm -fr grub.cfg
解决方式
grub2-mkconfig > /boot/grub2/grub.cfg
6.加载内核
加载内核作用:
/boot/vmlinuz-$(uname -r)
系统初始化硬件设备
只读挂载在/设备
cd /boot/
ls ##查看内核文件
误删内核文件
问题模拟:内核文件删除
rm vmlinuz-4.18.0-193.el8.x86_64
##内核文件删除,系统无法启动
解决方式
- 1.进入挽救模式,选择1,出现命令行
chroot /mnt/sysimage/
- 2.挂载光驱到/media上
mount /dev/cdrom /media/
- 3.复制内核安装包到/mnt上
cd /media/BaseOS/Packages/
cp kernel-core-4.18.0-193.el8.x86_64.rpm /mnt/
- 4.解压内核安装包
cd /mnt/
ls
rpm2cpio kernel-core-4.18.0-193.el8.x86_64.rpm | cpio -id
ls
- 5.寻找记录内核文件名称的文件,cat查看
cd lib/
ls
cd modules/
ls
cd 4.18.0-193.el8.x86_64/
ls ##查看到内核名称
cd /boot/loader/entries/
ls
cat /boot/loader/entries/3ad367eb6079476f9f4c1af30bf06390-4.18.0-193.el8.x86_64.conf
- 6.将内核复制到/boot的目录中
cp /mnt/lib/modules/4.18.0-193.el8.x86_64/vmlinuz /boot/vmlinuz-4.18.0-193.el8.x86_64
- 7.系统重启
- exit
exit ##系统重启
-
8.调整系统
-
9.系统恢复
7.系统内核初始化镜像
/boot/initramfs-4.18.0-193.el8.x86_64.img
加载系统时钟
加载selinux
加载系统主机信息
加载/etc/fstab文件中磁盘挂载策略
加载磁盘配额
初始化系统程序开启开机启动服务
开启虚拟化控制台
开启图形
加载内核完毕后,会加载内核初始化镜像文件
问题模拟
rm -fr /boot/initramfs-4.18.0-193.el8.x86_64.img
##删除系统内核初始化镜像文件
恢复方式
- 1.进入挽救模式,输入1,得到一个shell
chroot /mnt/sysimage/
- 2.使用指令生成系统初始化镜像文件
mkinitrd --help ##查看帮助
mkinitrd /boot/initramfs-4.18.0-193.el8.x86_64.img 4.18.0-193.el8.x86_64
##生成内核初始化镜像文件
文件生成完毕
- 3.重启系统
8.系统启动级别
0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启
cd /etc/systemd/system/ ##系统启动脚本都在此目录中
ls ##查看系统启动级别的脚本连接
systemctl disable sshd
systemctl enable sshd
##服务开机启动原理:
##当设定服务开机启动或不启动时,系统会在/etc/systemd/system/目录建立或删除连接
系统启动级别出现问题
systemctl set-default reboot.target ##会在开机时进入无限开机重启模式
恢复方式
-
1.在此按[e]进入编辑模式
-
2.在第四行更改启动级别,手动指定启动级别为5
Ctrl+x
- 3.使用命令恢复
systemctl set -default graphical.target
9.超级用户密码忘记
恢复方式
- 1.在开机选择界面按进入到引导文件编辑模式
- 2.ro 从只读挂载根设备变为读写挂载根设备 rw
ro ------>rw rd.break
##在系统内核加载完成后,终止系统启动
- 3.重启系统
crtl+x ##启动系统
- 4.进入系统单用户模式
- 当前模式下,默认使用root用户
- 5.转换为真实系统
chroot /sysroot/
- 6.改密码,建立新文件(让系统中内核级加强型火墙selinux重新初始化)
echo lee | passwd --stdin root
touch /.authorelabel
##若更改密码后selinux未被重新初始化,会阻止新密码生效
- 7.重启系统
- exit
exit
- 8.成功登录系统后便可以重新设定密码
echo westos | passwd --stdin root
更多推荐
所有评论(0)