Manjaro 内核损坏的修复方法

由于系统更新后,内核版本不同导致grub找不到新的内核从而无法启动。

解决方法:
1、重装系统(没有什么是重装解决不了的,如果有,那就再装一次(狗头保命)!)
2、liveUSB解决:重新将新的内核挂到相应的位置
准备工作:

  • 一个较新版本的Manjaro Linux安装盘(GPT模式 DD写入)

开始修复:
首先通过liveUSB启动,在liveUSB的中我们原先的系统文件是保存在电脑的磁盘上的,默认不会被挂载,所以我们先要把除了/home以外的系统目录挂载到当前的任意目录,我们选择挂载在/mnt中:

sudo mkdir /mnt/manjaro
sudo mount /dev/sda4 /mnt/manjaro # sda4为/分区所在设备,可以使用lsblk查看
[xueji@xueji-pc ~]$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0    70G  0 part 
├─sda2   8:2    0   100G  0 part 
├─sda3   8:3    0   250G  0 part 
└─sda4   8:4    0  45.8G  0 part /
sdb      8:16   0 119.2G  0 disk 
├─sdb1   8:17   0    99M  0 part /boot/efi
├─sdb2   8:18   0   128M  0 part 
├─sdb3   8:19   0 118.5G  0 part 
└─sdb4   8:20   0   581M  0 part 

随后是关键的一步,因为在UEFI下安装Manjaro Linux时我们都额外为/boot/efi/进行了单独的分区,所以我们这里也需要挂载它。默认挂载根目录时并不会挂载这个目录,因为它们不在同一个分区,我的efi目录根据lsblk显示位于/dev/sda1
所以我们把efi目录也挂载进文件系统,否则内核无法重新安装:

sudo mount /dev/sdb1 /mnt/manjaro/boot/efi

另外对于一些虚拟目录,例如/dev/sys,我们也需要手动绑定,否则chroot后运行pacman会出错:

sudo mount --bind /dev /mnt/manjaro/dev
sudo mount --bind /proc /mnt/manjaro/proc
sudo mount --bind /sys /mnt/manjaro/sys

这样系统文件就准备完成了,现在我们在挂载目录下chroot,然后重新安装内核:

cd /mnt/manjaro
chroot .
pacman -S linux # 如果这一步报错,检查自己系统目录是否正确挂载,如果正确挂载则先运行pacman -S archlinux-keyring
reboot

这样的话重新启动就可以找到新的内核了!

文章参考于:https://www.cnblogs.com/apocelipes/p/10192882.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容