linux系统无法开机及其解决办法

我们在使用linux系统时会遇到很多问题,如系统崩溃,系统起不来,忘记root密码等等,或许很多人遇到这样的问题直接选择重装系统,但是一次次重装显得很麻烦,那么,我们在接下来就来学习几种系统的排错方法。
切记,排错原则就是缺什么则补什么

1.root用户密码忘记

当忘记root用户后
选择进入系统时按‘e’,然后将ro后的删除,改为rw,后加rd.break
chroot /sysroot/						##切换到shell模式
echo xxxxxx | passwd --stdin root		##echo后面的为更改的root密码
touch /.autorelabel						##重启SElinux
两个exit重启

引导阶段

在这里插入图片描述

"e"进入救援模式

在这里插入图片描述

ctrl+x

在这里插入图片描述

开始具体操作

在这里插入图片描述

结果

在这里插入图片描述

2.磁盘引导阶段,mbr主引导的恢复

模拟问题:

dd if=/dev/zero of=/dev/sda bs=446 count=1 删除主引导记录

在这里插入图片描述

在这里插入图片描述

解决方案
若为真实主机,则需要插入镜像光驱,然后光驱启动
由于我们是模拟问题,用的是虚拟机,我们则添加光驱并由光驱启动

在这里插入图片描述
在这里插入图片描述
重启

在这里插入图片描述

在这里插入图片描述

这样就进入了光驱拯救模式,然后开始解决问题

在这里插入图片描述

chroot	/mnt/sysimage				##切换到真实目录
grub2-install	/dev/sda			##此处磁盘应与所截取的位置一致

在这里插入图片描述

两个exit退出,关闭虚拟机且切换磁盘启动

在这里插入图片描述

3.文件引导阶段

1.引导文件丢失

引导文件:/boot/grub2/grub.cfg
模拟问题:rm -fr /boot/grub2/grub.cfg

在这里插入图片描述

当系统没有重启的时候可通过以下命令恢复引导文件

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

在这里插入图片描述

当误删引导文件,系统被重启时会出现这样的情况

###boot###
grub > set root='hd0,msdos1'	##此位置时不固定的,位置指定/boot所在分区,'hd0,msdo1'为第一块磁盘第一分区
在重启前查看df,或者在拯救模式查看df
###根###
grub > linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/mapper/rhel-root #根分区的设备名称
主要查看df,看根分区在哪里,而且如果boot和根时分开的,则linux16 后则不加/root,可自动补齐
###系统初始化镜像###
grub > initrd16 /initramfs-3.10.0-123.el7.x86.img	##可自动补齐
grub > boot

在这里插入图片描述

df查看boot分区位置

在这里插入图片描述

解决:

在这里插入图片描述
在这里插入图片描述

注:表面上看问题已经解决,但是我们刚才时通过镜像的引导文件开启的计算机,故若要解决这个问题,我们还需要手动将引导文件补上,否则每次开机均得手动引导

在这里插入图片描述

2.内核文件丢失

#模拟问题:rm -fr /boot/vmlinuz-3.10.0-514.el7.x86_64
进入到挽救模式
chroot /mnt/sysimage									##进入bash
mount /dev/cdrom /media									##挂载镜像
cd /media/Packages										##进入镜像的Packages目录
cp kernel-3.10.0-514.el7.x86_64.rpm /mnt				##复制内核文件rpm包到mnt底下
cd /mnt
rpm2cpio kernel-3.10.0-514.el7.x86_64.rpm | cpio -id	##拆解内核文件包
cd boot/												##进入拆解后的内核文件所在位置
cp vmlinuz-3.10.0-514.el7.x86_64 /boot/					##复制所需内核文件到/boot下
注:缺什么给什么

原理:缺什么补什么,内核文件丢失的话我们则需要选择一个和系统版本相同的镜像,将所需文件补齐

在这里插入图片描述

在这里插入图片描述

进入挽救模式开始解决问题

在这里插入图片描述

进入磁盘引导,恢复正常

3.系统镜像文件丢失

#模拟问题: rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
#当系统没有重启时
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
或者mkinitrd /boot/initramfs-3.10.0-123.el7.x86_64.img 3.10.0-123.el7.x86_64
uname -r 是查看系统内核版本
#当系统重启后
进入挽救模式
chroot /mnt/sysimage/
再重新生成镜像文件,命令同上相同

在这里插入图片描述

若没有重新生成直接重启:

在这里插入图片描述

进入挽救模式

在这里插入图片描述

4.当/boot分区被删除

##当/boot分区被删除
进入到挽救模式
chroot /mnt/sysimage
grub2-install /dev/sda
mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm --force
grub2-mkconfig > /boot/grub2/grub.cfg

在这里插入图片描述

在这里插入图片描述

进入挽救模式

在这里插入图片描述

在这里插入图片描述

两个exit进入磁盘引导

4.开机启动级别被篡改

#错误形成
systemctl set-default reboot.target

在这里插入图片描述
在这里插入图片描述

将系统启动级别优先级高的改为reboot后,妨碍安系统一直重启
解决办法:

1.开机按上下键停止读秒
2.按E进入编辑模式
3.选择内核启动行
linux16 /vmlinuz..............后面加个5
4.启动系统
ctrl+x
5.再在内核中systemctl set-default graphical.target
6.reboot测试是否修改过来了

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44313519/article/details/87855577