Linux系统引导过程及错误排除

1、通电

哈哈,最简单的问题啦,小编有次电脑放了一晚上,第二天起来电脑开不了机,搞了半天,最后才想起来,晚上宿舍停电,电脑没电了。

2、BIOS初始化

作用:对硬件进行检测,对硬件时钟进行初始化;

错误:硬件本身出现毁坏,如:磁头断裂,主板烧毁;

恢复方式:更换硬件设施。

3、磁盘引导

作用:对开机过程进行引导,其中主引导记录mbr(0磁道,1删去,446字节)用于记录grub2引导文件的位置;当mbr数据丢失,系统就会因找不到启动分区而停止运行;

模拟错误:dd if=/dev/zero of=/dev/nvme0n1 bs=446 count=1(/dev/zero :以无限的提供空字符(0x00,ASCII代码NUL)。常用来生成一个特定大小的文件;/dev/nvme0n1:存放mbr数据的磁盘;bs:块的大小;count:块的个数)

恢复方式:(1)用光盘进入挽救环境(在bios界面修改启动方式为cd;启动界面选择trouble模式;

                  (2)输入:chroot /mnt/sysimage;

                  (3)输入grub2-install /dev/******(磁盘挂载的位置:fdisk可进行查看,‘*’标识的即为mbr挂载的磁盘);输入exit,exit推出安装模式,即可恢复。

Linux系统引导过程及错误排除
图 1 查看设备挂载

 

Linux系统引导过程及错误排除
图 2 修改硬盘内容

 

Linux系统引导过程及错误排除
图 3 进入修复环境

 

Linux系统引导过程及错误排除
图 4 重新装载引导文件

 

Linux系统引导过程及错误排除
图 5 启动成功

4、grub2文件引导

作用:指定/boot位置;指定系统启动时加载文件位置

  rhel7 rhel8
位置 /boot/grub2/grub.cfg

/boot/grub2/grub.cfg

/boot/loader/entries/*****.config

模拟问题 rm -fr /boot/grub2/grub.cfg rm -fr /boot/loadr/entries/*****.config
自动修复(进入挽救模式) grub2-mkconfig > /boot/grub2/grub.cfg kernel-install add $(uname -r) /ib/modules/$(uname -r)/vmlinuz
手动修复

手动引导:

set root='hd0,msdos1'

linux16 /vmlinuz-3.20.***x86 ro  root=/dev/nvme0n1p1(跟分区)

initrd16 /initramfs-********.img

重启服务:

boot

【注】$(uname -r):自动查询主机的内核版本型号

Linux系统引导过程及错误排除
图 6 模拟错误环境

 

Linux系统引导过程及错误排除
图 7 进入恢复环境,进行手动引导

 

【注】这里进行手动引导后,若不处理,重启后任然需要进行手动引导,故为彻底解决问题,我们应重新装载内核信息。

5、内核加载

目录:/boot/vmlinuz-$(uname -r)

作用:系统初始化硬件设备;只读挂在/设备

模拟错误:rm -fr /boot/vmlinuz-$(uname -r)

恢复方式:重装内核

                   (1)进入挽救模式:chroot /mnt/sysimsge

                   (2)挂载磁盘:mount /dev/cdrom /mnt

                   (3)安装内核:

  安装包
rhel7 cd /mnt/BaseOS/Packages rpm -ivh kernel-xxxxx.rpm --force
rhel8 cd /mnt/BaseOS/Packages rpm -ivh kernel-core-xxxxx.rpm --force
Linux系统引导过程及错误排除
图 8 内核文件错误时,出现的故障

 

Linux系统引导过程及错误排除
图 9 重新装载内核

 

Linux系统引导过程及错误排除
图 10 装载过程中

6、系统初始化镜像

目录:/boot/initramfs-4.18.0-80.el8.x86_64.im

作用:加载系统时钟;加载selinux;加载系统主机信息;加载/etc/fstab文件中磁盘挂在策略;加载磁盘配额;初始化系统程序开;启开机启动服务(/etc/systemd/system);开启虚拟控制台;开启图形;

模拟错误:rm -fr /boot/initramfs-xxxxx.img;

恢复方式:在恢复环境中:mkinitrd /boot/initramfs-$(uname -r).img $(uname -r);

Linux系统引导过程及错误排除
图 11 恢复初始化镜像

7、系统启动级别

级别 含义
0 关机
1 单用户模式
2 无图形网络模式
3 无图形网络模式
4 无图网络形模式
5 有图形网络模式
6 重启

模拟错误:systemctl set-default reboot.target

恢复方式:(1)在开机启动界面<e>,进入引导文件编辑模式;

                  (2)在内核加载选项加入启动级别5,<ctrl>+<x>运行;

                  (3)systemctl set-default graphical.target

Linux系统引导过程及错误排除
图 12 错误模拟

 

Linux系统引导过程及错误排除
图 13 设置启动优先级

 此时虽然已经启动成功,但是问题并未解决,当再次启动时,依然会不断启动。

Linux系统引导过程及错误排除
图 14 查看自起选项

 

Linux系统引导过程及错误排除
图 15 修改配置文件

8、修改超级用户密码

(1)在开机选项界面<e>,进入信道文件编辑模式;

(2)删除内核加载选项ro后面的内容;

(3)将ro(只读权限)修改为rw (读写权限);

(4)加入rd.break参数种植系统启动进入单用户模式;

(5)<ctrl>+<x>启动;

(6)进入shell环境:chroot /sysroot;

(7)修改超级用户密码:echo lee | passwd --stdin root;

(8)重新加载selinux标签:touch /.autorelabel。

Linux系统引导过程及错误排除
图 16 进入启动界面,修改启动项

 

Linux系统引导过程及错误排除
图 17 进入超级用户shell, 修改超级用户密码

 

Linux系统引导过程及错误排除
图 18 对超级用户密码进行刷新

 

上述为Linux下系统中开机时系统错误的处理,若有问题,欢迎大家指出;因实验有时结果会覆盖上一条命令的操作,若上述内容还有所不懂,欢迎留言,会在第一时间给尽自己所能,给大家解决。愿上述内容有所用! 

Linux系统引导过程及错误排除Linux系统引导过程及错误排除 JeIIy_7 发布了20 篇原创文章 · 获赞 0 · 访问量 566 私信 关注
上一篇:docker-compose 安装失败 Cannot open self /usr/local/bin/docker-compose


下一篇:27 jquery——操作元素属性