我的 /boot/efi 没有指向正确的 ESP 分区

我的 /boot/efi 没有指向正确的 ESP 分区

我有一台带有 2 个存储设备的计算机。我想在一台设备上安装 Windows,在另一台设备上安装 Linux。

出于各种原因,我希望它们尽可能分开。

我正在使用 UEFI。

我在一台设备上安装了 Kubuntu,在设置过程中,我指定它应该用于引导加载程序安装。

但事实证明并非如此。引导加载程序已被写入另一个设备。

我已经从其他设备安装了 ESP 分区,将其内容复制到安装了 Kubuntu 的设备的 ESP 分区,重新启动,在固件启动管理器中,我选择从它启动,它起作用了。

现在使用 mount,我看到 /boot/efi 仍然指向另一台设备上的 ESP 分区。

我查看了 /etc/fstab,其中有一行是 /boot/efi,表示 UUID=931B-CB7F 。此 UUID 与 2 个 ESP 分区 GUID 中的任何一个都不匹配,也与 blkid 返回的任何内容都不匹配。

如何让 /boot/efi 指向安装 KUbuntu 的同一设备上的 ESP 分区?

fstab:

/dev/mapper/vg0-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/nvme1n1p1 during installation UUID=df5a10ea-a128-4c35-82f6-207493d101da /boot           ext4    defaults        0       2
# /boot/efi was on /dev/nvme0n1p2 during installation
#UUID=931B-CB7F  /boot/efi       vfat    umask=0077      0       1 

/dev/mapper/vg0-home /home           ext4    defaults        0       2 

/dev/mapper/vg0-swap none            swap    sw              0       0

lsblk -f | grep -v 循环:

NAME                FSTYPE      FSVER    LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                                  
nvme0n1                                                                                              
├─nvme0n1p1                                                                                          
└─nvme0n1p2         ntfs                       0E68C51168C4F88B                        877.3G     6% /media/xlp-admin/0E68C51168C4F88B
nvme1n1                                                                                              
├─nvme1n1p1         ext4        1.0            df5a10ea-a128-4c35-82f6-207493d101da      1.5G    13% /boot
├─nvme1n1p2         vfat        FAT32          423D-2695                                             
└─nvme1n1p3         crypto_LUKS 2              1fc50d65-62f7-4513-bbf8-0002ae52b6b2                  
  └─nvme1n1p3_crypt LVM2_member LVM2 001       GNoW1G-nfU6-2yuG-MH2O-QGiC-0wmE-ONHQv8                
    ├─vg0-swap      swap        1              6dfe2158-b779-47b6-83c3-cc2df4474ec0                  [SWAP]
    ├─vg0-root      ext4        1.0            b937a6a3-c62d-445a-9709-348a27a79b57     36.1G    21% /
    └─vg0-home      ext4        1.0            d86b3683-d330-4eaf-a278-d82c34a3685f    849.7G     0% /home

与此同时,我在另一台设备上安装了 Windows。Windows 决定将其引导加载程序放在 Linux 设备上,同时删除了 Linux 引导加载程序。我之前制作了一份副本并恢复了它。但在此过程中,Windows 未能安装在另一台设备上,我删除了它,希望 Windows 能在同一设备上创建另一个。

这导致 Linux 不再启动,所以我在 fstab 中将其注释掉。

答案1

似乎你以某种方式破坏了(你的 Windows 驱动器)上的 ESP nvme0n1,我只看到一个未格式化的空分区nvme0n1p1。现在你只有nvme1n1(你的 Linux 驱动器)上的 ESP nvme1n1p2

由于您仍然可以启动到您的安装,因此您只需将中的 UUID 更改为 -output中的/etc/fstabUUID 。然后运行并确保 grub 已完全安装在该分区中。nvme1n1p2lsblksudo mount -asudo grub-install

当系统更新提供新版本时grub,您需要挂载该分区,否则升级将失败。

我无法帮助您处理 Windows 部分。当然,您可以使用 GParted 将这个空分区变成nvme0n1p1有效的 ESP,但您仍然必须在那里安装 Windows 引导加载程序,但这是 Windows 的事情,超出了本文的范围。此链接可能会有帮助。

相关内容