暗影翔 发表于 2023-9-19 22:02

【求助】manjaro引导丢失,恢复失败

我就开门见山的说了,不赘述了。
两个nvme,其中一个是windows。后来在第二个里装了manjaro和debian,共用home分区。efi启动分区在nvme0里,grub启动三个系统。
最近manjaro好久没有登录,登录之后yay更新,东西很多,一段时间后感觉kde自动重启了,现象就是所有窗口都没了。进程里也找不到pacman,yay提示有一个文件被锁。
之后重启提示找不到.img文件,试了装的3个内核都是失败。之后启动debian正常。
尝试在debian里,mount 系统分区、启动分区,grub-install,试了几次,提示efi分区空间不足,尝试删除efi分区内文件夹外的文件,重新修复。最后debian也没法启动了。
无奈去下载manjaro iso,ventoy启动manjaro,尝试几次mount、grub-install、update-grub,操作几次发现都只提示找到debian,找不到windows了。
现在的状况是,grub里有manjaro,选择就是黑屏自动重启,debian可以启动。grub里没有windows,想启动只能进bios切换windows boot manager。
参照的帖子是:1、arch wiki:https://wiki.archlinuxcn.org/wiki/GRUB
2、https://zhuanlan.zhihu.com/p/399826005?utm_id=0
3、https://zhuanlan.zhihu.com/p/624915323?utm_id=0


posthoc 发表于 2023-9-19 22:21

Debian里的grub设置可能是默认禁用了os-prober?https://wiki.debian.org/DualBoot/Windows10 先照这里试着把windows搞回来再说吧
manjaro看起来感觉是更新过程中出错把自己滚挂了内核没装好,不是grub问题,不该重新grub-install……

indtability 发表于 2023-9-19 22:26

槽点太多了,共用home,共用efi,你不出问题谁出问题…

grub 没有 windows 可能是因为某次更新后把 grub 的 os-prober 给关了,manjaro 里在/etc/default/grub 里 GRUB_DISABLE_OS_PROBER=false 来重新开启,然后 update-grub 应该就有 windows 了。

中间提到 efi 空间不足,我猜可能是 efi 满了导致 manjaro 更新失败挂掉了。

但折腾这半天之后现在难说是啥问题了,你可以先把 grub 命令和分区结构以及 efi 分区内的文件贴上来,grub 命令是在grub启动时选择 manjaro 按 e 就能看到。

不过说到底,不建议多系统共用efi,非要用的话就不建议用 grub,换systemd-boot吧。

—— 来自 Xiaomi M2012K11AG, Android 13上的 S1Next-鹅版 v2.5.4

すぴぱら 发表于 2023-9-19 22:28

暗影翔 发表于 2023-9-19 22:57

indtability 发表于 2023-9-19 22:26
槽点太多了,共用home,共用efi,你不出问题谁出问题…

grub 没有 windows 可能是因为某次更新后把 grub...

因为efi分区在windows所在的盘,要扩容比较麻烦,所以现在不想折腾。
打开os-prober了,然后debian里更新,直接debian、manjaro全挂,哈哈

indtability 发表于 2023-9-19 23:18

暗影翔 发表于 2023-9-19 22:57
因为efi分区在windows所在的盘,要扩容比较麻烦,所以现在不想折腾。
打开os-prober了,然后debian里更新 ...

等等,你不会是连 windows 一块,三个系统在一个efi 分区内吧,这就难整了。

我建议是 windows 独占它自己那个盘的efi,另外那个盘弄一块 efi 分区,给那个盘上的系统用,一般来说一个内核10兆左右,initrd 有大有小,但加起来应该也超不过百兆,两个系统放一块分多点比较好,应该不差这点空间吧。

目前想开机的话先 live cd 里 chroot 进对应系统,重新安装一遍内核,应该就能进系统,但想常用的话你这个配置容易出问题。

—— 来自 Xiaomi M2012K11AG, Android 13上的 S1Next-鹅版 v2.5.4

disrupt 发表于 2023-9-20 05:22

共用EFI分区没啥问题。主要是你得保证用来安装grub的系统能启动,或者至少容易修。

Manjaro live CD环境os-prober不work是正常的。Debian的问题楼上提到了,默认禁了os-prober,并且内核旧可能无法挂载更新版本的FS

现在你可以试着修Manjaro. 联网之后再mount, chroot;pacman -Syu确保该安装/升级的包都装到位了,然后再grub-install, grub-mkconfig. 你可能还需要mkinitcpio -P

如果Manjaro能启动了,再跑一遍mkconfig把其他OS的grub启动项搞回来

—— 来自 motorola XT2125-4, Android 11上的 S1Next-鹅版 v2.5.2-play

到结构了 发表于 2023-9-20 08:03

虽然没看明白公用home的目的是什么,但是都公用home了你直接重装系统不就好了?除非你往etc里塞了太多东西,不过都用manjaro了也不至于乱玩etc吧

—— 来自 S1Fun

dangoron 发表于 2023-9-20 13:14

用distrobox不行吗,整这么多系统干啥

暗影翔 发表于 2023-9-23 00:59

感谢各位的回复。
今天又试了一遍从最新的manjaro23.0.1镜像进入live环境,mount、manjaro-chroot、pacman、grub-install、update-grub。在nvme1里修复了efi分区。
一通操作,重启了5.15内核的manjaro。然后把多余的6.4内核删了,保留长期支持的5.15、6.1和最新的6.5,之后重启发现只有5.15选项,重启黑屏。继续mhwd一番,fail.
然后重新来一遍重装5.15,重装grub。为啥grub只能找到5.15内核呢?
用mhwd-kernel重装其他内核,发现可以找到其他内核了,ok。
看来是其他内核虽然有,但是引导里的img丢了,需要通过重装找回vmli*.img,然后update-grub就可以找到了。
另live-cd里的update-grub找不到另一个nvme里的windows,但是装好的manjaro里运行update-grub就可以找到其他nvme里的windows。
下面的目标是清空windows硬盘里的efi分区,重新生成window boot manager。
页: [1]
查看完整版本: 【求助】manjaro引导丢失,恢复失败