[已解决] 奇怪的挂载问题

鄙人是从 Manjaro 换到 Arch 源的,自从大约去年上半年更换源后就一直稳定,我目前使用的内核是 linux-zen,但在最近的更新中当重启后挂载启动分区就会出错,提示 mount: /boot/efi: 未知的文件系统类型“vfat”.。我目前已经在多次更新后回退到 6.18.13 版本,因为我目前测试最后一次没有出问题的内核就是这个版本。下面的 boot-efi.mount.logsudo journalctl -u boot-efi.mount 的输出结果,pacman.log 是完整的 /var/log/pacman.log。求某个大佬帮忙分析一下。

pacman.log (4.8 MB)

boot-efi.mount.log (26.5 KB)

这个报错通常是因为你实际使用的内核版本和文件系统里的(/usr/lib/modules)不对应。检查你的/boot是否正确挂载了、里边的内核是不是正确更新了。

感谢,经过我的排查,我发现在 /etc/fstab 中引导分区被挂载到了 /boot/efi 中,而initramfs和vmlinuz都生成在了/boot里导致了这个问题。

师傅,这个具体是什么原因呢?我应该遇到了相同问题,/usr/lib/modules中的内核是7.0.3-arch1-2,然后uname -a的内核是7.0.3-arch1-1。最开始我是将efi分区挂载到/boot下的,后来改成了/boot/efi下,重启几次都没发生错误,这次更新了一下内核好像就挂了

原因上面已经有回答了。问题的关键是正在运行的内核版本(uname -r)必须和 /usr/lib/modules 的内核版本号匹配才行。而开机时启动的内核版本,取决于 /boot 目录中的内核版本。

你遇到的问题大概率是从 /boot/efi 中的内核启动了,而更新内核后,新内核安装到了 /boot 目录下,而你启动的还是 /boot/efi 里的旧内核,就版本不匹配了。可以用 archiso 启动,挂载好文件系统后 arch-chroot(不要忘记你的 /mnt/boot/efi),试试删掉 /boot/efi 里的 vmlinuz-* 文件和 *.img 文件,并且删掉原有的 bootloader 并重新安装 bootloader。

如果你想把挂载点改回去 /boot,那不需要重装 bootloader,就是注意 arch-chroot 之前挂载 /mnt/boot 而不是 /mnt/boot/efi,修改 fstab,然后运行 mkinitcpio -P,之后大概就正常了

谢谢师傅,我昨天是iso启动挂载之后,按照ai说法重新生成fstab文件,重新装了一下内核,这样问题好像解决了。