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推出安装模式,即可恢复。
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):自动查询主机的内核版本型号
【注】这里进行手动引导后,若不处理,重启后任然需要进行手动引导,故为彻底解决问题,我们应重新装载内核信息。
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 |
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);
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
此时虽然已经启动成功,但是问题并未解决,当再次启动时,依然会不断启动。
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。
JeIIy_7 发布了20 篇原创文章 · 获赞 0 · 访问量 566 私信 关注上述为Linux下系统中开机时系统错误的处理,若有问题,欢迎大家指出;因实验有时结果会覆盖上一条命令的操作,若上述内容还有所不懂,欢迎留言,会在第一时间给尽自己所能,给大家解决。愿上述内容有所用!