Linux系统出现问题该如何解决

自举功能
*:具备引导能力 可以自举


1.硬盘引导阶段:

MBR主引导记录的恢复:

MBR:MBR的作用是为了记录/boot目标所在分区位置

磁盘的0磁道1扇区的前446字节。

模拟问题:dd if=/dev/zero of=/dev/sda bs=446 count=1

解决办法:手动引导第一块硬盘的第一个分区

进入挽救模式:(进入挽救模式前需要强制停止虚拟机,添加cdrom,并设置启动顺序为cdrom优先)

chroot /mnt/sysimage/
df
grub2-install /dev/sda  ##启动分区所在的硬盘
exit
exit

退出后强制停止虚拟机,取消cdrom启动,再正常启动即可。
2.文件引导阶段:
1)引导文件丢失
/boot/grub2/grub.cfg  ##指定/boot分区位置,加载内核并且只读挂载根,启动系统初始化进程 grub2-mkconfig。
模拟问题:rm -fr /boot/grub2/grub.cfg

在这之前df查看根分区和/boot分区上挂载的文件系统名称

解决办法:
当系统没有重新启动时:

grub2-mkconfig > /boot/grub2/grub.cfg  ##即可修复

当系统被重新启动:

grub > set root='hd0,msdos1'    ##此位置是不固定的,位置指定/boot所在分区
grub > linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/mapper/rhel-root   ##根分区的设备名称
grub > initrd16 /initramfs-3.10.0-123.el7.x86_64.img
grub > boot


以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行:

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


2)内核文件丢失

模拟问题:rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64

解决办法:

进入到挽救模式:

chroot /mnt/sysimage
mkdir /rhel
mount  /dev/sr0  /rhel
cd /rhel/Packages
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt
cd /mnt
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id ##解压内核文件包
ls
cd boot
cp vmlinuz-3.10.0-123.el7.x86_64 /boot ##将内核文件复制到/boot下
exit
exit

退出后强制停止虚拟机,取消cdrom启动,再正常启动即可。

3)系统初始化镜像文件丢失
模拟问题:rm -fr /boot/initramfs-3.10.0-514.el7.x86_64.img

解决办法:

当系统没有重启时:mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

mkinitrd   ##内核版本
uname -r  ##查看内核版本

当系统重启后:进入挽救模式

chroot /mnt/sysimage
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) ##创建镜像文件
cd /boot
ls
exit
exit

退出后强制停止虚拟机,取消cdrom启动,再正常启动即可。

4)当/boot分区被删除

模拟问题:rm -fr /boot/*

解决办法:

进入挽救模式

chroot /mnt/sysimage
mkdir /boot  ##建立boot分区
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
exit


退出后强制停止虚拟机,取消cdrom启动,再正常启动即可。

5)启动级别被篡改

错误形成:

ln -s /lib/systemd/system/reboot.target /etc/systemd/system/default.target

启动级别修改,造成一直重复开机操作

解决办法:

开机按上下键停止读秒

按“E”进入编辑模式

选择内核启动行

linux16 /vmliunz-xxxxxx ro xxxxxxxxxxxxxx

改为:

linux16 /vmliunz-xxxxxx ro xxxxxxxxxxxxxx  5

ctrl+x 启动系统

以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行以下操作:

将启动级别链接到图形上

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马克图布s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值