Linux引导过程及引导修复(误删/boot/的文件修复方法)

Linux引导过程及引导修复(误删/boot/的文件修复方法)

Linux引导过程及引导修复(误删/boot/的文件修复方法)

  • Linux引导过程及引导修复(误删/boot/的文件修复方法)
  • 1.如何调整启动设备
    • 在windows的VM如何从光盘启动
      • 方法一
      • 方法二
    • 在Linux中如何从光盘启动
  • 2.通电
  • 3.bios初始化
  • 4.磁盘引导
    • 问题模拟
    • 恢复方式
  • 5.grub2文件引导
    • 问题模拟
    • 子引导文件丢失
      • 解决方式
      • 恢复
    • 主引导文件丢失
      • 解决方式
  • 6.加载内核
    • 误删内核文件
    • 解决方式
  • 7.系统内核初始化镜像
    • 问题模拟
    • 恢复方式
  • 8.系统启动级别
    • 系统启动级别出现问题
    • 恢复方式
  • 9.超级用户密码忘记
    • 恢复方式

1.如何调整启动设备

在windows的VM如何从光盘启动

方法一

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第1张图片

  • 在启动列表中选择从光盘启动
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第2张图片

方法二

  • 打开电源时进入固件
  • 左右键选择Boot
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第3张图片
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第4张图片
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第5张图片
  • 此方式每次启动都是从光盘启动
  • 如果需要从硬盘启动仍然需要进入bios重新调整

在Linux中如何从光盘启动

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第6张图片

  • 添加光驱
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第7张图片
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第8张图片
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第9张图片
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第10张图片
  • 添加光驱完成之后
  • 如何从光驱启动
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第11张图片
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第12张图片
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第13张图片
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第14张图片

2.通电

3.bios初始化

对硬件检测
初始化硬件时钟

4.磁盘引导

mbr=主引导记录=0磁道1扇区446
作用:
记录grub2引导文件的位置
当mbr数据丢失系统会因为找不到启动分区而停止启动

fdisk -l ##查看设备   

启动分区:启动文件所在的分区,分区所在的设备叫做启动设备
*所有在的启动设备上是有引导记录(mbr)的,引导记录安装在哪一个磁盘。
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第15张图片

问题模拟

问题情景模拟方式:
系统磁盘
/dev/sda

dd if=/dev/zero of=/dev/sda bs=446 count=1
##截取零字节数据放到sda硬盘中(相当于用空白板覆盖住)
##清空系统/dev/sda上的mbr数据

of后面的内容是*所有在设备
当系统引导程序被破坏之后系统无法识别从什么位置读取信息
影响:重启之后无法读取磁盘引导
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第16张图片

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第17张图片

恢复方式

恢复方式:
用光盘进入系统挽救模式
chroot  /mnt/sysimage
grub2-install  /dev/sda
##重新安装grub2到系统硬盘上
exit

解决方式;
1.关机;2.从光盘启动:把真实系统(在硬盘中)挂载到/mnt/sysimage中

fdisk -l看*所在的设备是/dev/vda1,在写grub-install时不需要加1
/dev/vda1是启动分区,/dev/vda是启动分区的设备
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第18张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第19张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第20张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第21张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第22张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第23张图片
看到这no error表示成功
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第24张图片

5.grub2文件引导

引导文件:开启系统的两行标题
主引导文件:/boot/grub2目录下
子引导文件:/boot/loader/entries/目录下(将主引导文件标题分散开,减少负载)
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第25张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第26张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第27张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第28张图片

如果引导文件丢失,如何引导系统找回引导文件

问题模拟

模拟场景模拟:
在子目录中删除引导文件,引导文件丢失
手动引导时必须要知道:启动分区所有的系统设备
1.根分区所在的系统设备
2.boot分区所在的系统设备

根分区所在系统设备:
/dev/sda3
启动分区所在系统设备
/dev/sda1
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第29张图片

子引导文件丢失

模拟问题一:子引导文件丢失
无法完成自动引导,需要手动添写引导信息

rm -fr /boot/loader/entries/xxxxxxx.conf

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第30张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第31张图片

解决方式

指定引导分区

  • 1.指定引导分区的位置为第一块硬盘、第一个硬盘第一个分区中(根下boot分区所在位置)
Set root=’hd0,msdos1’

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第32张图片

  • 2.linux16启动内核镜像,ro表示只读,挂载根分区
Linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/sda3

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第33张图片

  • 3.指定系统初始化镜像
Initrd16 /initramfs-4.18.0-193.el8.x86_64.img

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第34张图片

  • 4.引导完成,启动系统boot+回车
boot

在这里插入图片描述

恢复

uname  -r ##查看内核版本

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第35张图片

恢复时解决报错问题:
解决/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

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第36张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第37张图片

主引导文件丢失

模拟问题二:主引导文件丢失

rm -fr grub.cfg

解决方式

grub2-mkconfig > /boot/grub2/grub.cfg
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第38张图片

6.加载内核

加载内核作用:
/boot/vmlinuz-$(uname -r)
系统初始化硬件设备
只读挂载在/设备

cd /boot/
ls   ##查看内核文件

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第39张图片

误删内核文件

问题模拟:内核文件删除

rm vmlinuz-4.18.0-193.el8.x86_64
##内核文件删除,系统无法启动

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第40张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第41张图片

解决方式

  • 1.进入挽救模式,选择1,出现命令行
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第42张图片
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第43张图片
chroot /mnt/sysimage/

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第44张图片

  • 2.挂载光驱到/media上
mount /dev/cdrom /media/

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第45张图片

  • 3.复制内核安装包到/mnt上
cd /media/BaseOS/Packages/
cp kernel-core-4.18.0-193.el8.x86_64.rpm /mnt/

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第46张图片

  • 4.解压内核安装包
cd /mnt/
ls
rpm2cpio kernel-core-4.18.0-193.el8.x86_64.rpm | cpio -id 
ls

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第47张图片

  • 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

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第48张图片

  • 6.将内核复制到/boot的目录中
cp /mnt/lib/modules/4.18.0-193.el8.x86_64/vmlinuz /boot/vmlinuz-4.18.0-193.el8.x86_64 

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第49张图片

  • 7.系统重启
- exit
exit   ##系统重启

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第50张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第51张图片

  • 8.调整系统
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第52张图片

  • 9.系统恢复

7.系统内核初始化镜像

/boot/initramfs-4.18.0-193.el8.x86_64.img
加载系统时钟
加载selinux
加载系统主机信息
加载/etc/fstab文件中磁盘挂载策略
加载磁盘配额
初始化系统程序开启开机启动服务
开启虚拟化控制台
开启图形

加载内核完毕后,会加载内核初始化镜像文件
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第53张图片

问题模拟

rm -fr /boot/initramfs-4.18.0-193.el8.x86_64.img
##删除系统内核初始化镜像文件

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第54张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第55张图片

恢复方式

  • 1.进入挽救模式,输入1,得到一个shell
chroot /mnt/sysimage/

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第56张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第57张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第58张图片

  • 2.使用指令生成系统初始化镜像文件
mkinitrd --help ##查看帮助
mkinitrd /boot/initramfs-4.18.0-193.el8.x86_64.img 4.18.0-193.el8.x86_64
##生成内核初始化镜像文件

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第59张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第60张图片

文件生成完毕

  • 3.重启系统
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第61张图片

8.系统启动级别

0   关机
1   单用户
2   无图形网络模式
3   无图形网络模式
4   无图形网络模式
5   有图形网络模式
6   重启
cd  /etc/systemd/system/    ##系统启动脚本都在此目录中
ls   ##查看系统启动级别的脚本连接

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第62张图片

systemctl disable sshd
systemctl enable sshd
##服务开机启动原理:
##当设定服务开机启动或不启动时,系统会在/etc/systemd/system/目录建立或删除连接

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第63张图片

系统启动级别出现问题

systemctl set-default reboot.target   ##会在开机时进入无限开机重启模式

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第64张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第65张图片

恢复方式

  • 1.在此按[e]进入编辑模式
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第66张图片
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第67张图片

  • 2.在第四行更改启动级别,手动指定启动级别为5
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第68张图片

  Ctrl+x

  • 3.使用命令恢复
systemctl set -default graphical.target

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第69张图片

9.超级用户密码忘记

恢复方式

  • 1.在开机选择界面按进入到引导文件编辑模式
    Linux引导过程及引导修复(误删/boot/的文件修复方法)_第70张图片
  • 2.ro 从只读挂载根设备变为读写挂载根设备 rw
ro ------>rw rd.break
##在系统内核加载完成后,终止系统启动

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第71张图片
Linux引导过程及引导修复(误删/boot/的文件修复方法)_第72张图片

  • 3.重启系统
crtl+x ##启动系统

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第73张图片

  • 4.进入系统单用户模式
  • 当前模式下,默认使用root用户
  • 5.转换为真实系统
chroot /sysroot/

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第74张图片

  • 6.改密码,建立新文件(让系统中内核级加强型火墙selinux重新初始化)
echo lee | passwd --stdin root
touch /.authorelabel
##若更改密码后selinux未被重新初始化,会阻止新密码生效

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第75张图片

  • 7.重启系统
- exit
exit

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第76张图片

  • 8.成功登录系统后便可以重新设定密码
echo westos | passwd --stdin root

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第77张图片

Linux引导过程及引导修复(误删/boot/的文件修复方法)_第78张图片

你可能感兴趣的:(笔记,Linux系统基础,linux,云计算)