如何将启动分区的挂载点设置为/ boot / efi?

我的系统中安装了两个ubuntu,一个安装在SSD(nvme0n1p1)上,一个安装在Harddrive(sda1)上。

升级到17.10后,SSD上的ubuntu无法启动,无法找到文件’/boot/vmlinuz-4.13.0-041300-generic’,尽管文件在那里。 (请参阅错误:找不到文件’/boot/vmlinuz-4.13.0-041300-generic’,如何创建? )

我现在看到gparted,包含这些文件的分区未正确安装,因此grub无法查看文件。

在此处输入图像描述

对于安装在硬盘中的其他操作系统,哪个工作正常,gparted显示:

在此处输入图像描述

一开始,grub还抱怨未找到“22ac8da-d6 ……”分区。 这就是SSD分区显然是如何安装的。

我想我应该更改挂载设置,所以nvme0n1p1有/ boot / efi /作为挂载点,并且在/上有nvme0n1p2,换句话说,就是硬盘驱动器(sda1,sda2)上的分区的确切方式。

有关如何做到这一点的任何帮助?

/ etc / fstab的内容显示/ boot / efi /以前是在nvme0n1p1上

# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # #       # / was on /dev/nvme0n1p2 during installation UUID=22ac8da3-d60a-46db-811d-a09ce5538215 / ext4 errors=remount-ro 0 1 # /boot/efi was on /dev/nvme0n1p1 during installation UUID=C1DE-5B29 /boot/efi vfat umask=0077 0 1 /swapfile none swap sw 0 0 

和blkid的输出:

 /dev/nvme0n1: PTUUID="eb5c38b1-7f71-4b49-a4e9-9e6ab2c9b6a4" PTTYPE="gpt" /dev/nvme0n1p1: UUID="C1DE-5B29" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="5b57c19c-750b-457a-89f1-87130509735e" /dev/nvme0n1p2: UUID="22ac8da3-d60a-46db-811d-a09ce5538215" TYPE="ext4" PARTUUID="2e1b8924-98f4-4821-8f48-8452620182b8" /dev/sda1: UUID="DF5C-3936" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="2798e3ca-54f4-4528-8753-0b516c1a749c" /dev/sda2: UUID="d37fc604-163d-4e04-83de-88993c28e419" TYPE="ext4" PARTUUID="a1331af1-a3e0-4f4e-846c-2ae70d53cb26" 

输出lsblk -f,与gparted的显示一致:

 NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat DF5C-3936 /boot/efi └─sda2 ext4 d37fc604-163d-4e04-83de-88993c28e419 / sr0 nvme0n1 ├─nvme0n1p1 vfat C1DE-5B29 └─nvme0n1p2 ext4 22ac8da3-d60a-46db-811d-a09ce5538215 /media/lukas/22ac8da3-d60a-46db-811d-a09ce5538215 

总结:如何将/ dev / nvme0n1p1的挂载点设置为/ boot / efi /?

在nvme0n1p1中启动17.10时出现的错误消息是:

 error: failure reading sector 0x3b9e12a0 from 'hd2' error: failure reading sector 0x3b9e1200 from 'hd2' error: failure reading sector 0x0 from 'hd2' error: failure reading sector 0x3b9e12a0 from 'hd2' error: failure reading sector 0x3b9e1200 from 'hd2' error: failure reading sector 0x0 from 'hd2' error: no such device: 22ac8da3-d60a-46db-811d-a09ce5538215 error: file '/boot/vmlinuz-4.13.0-041300-generic' not found error: you need to load the kernel first 

输出efibootmgr -v

 BootCurrent: 0000 Timeout: 1 seconds BootOrder: 0000,0001,0002,0008,0009 Boot0000* ubuntu HD(1,GPT,2798e3ca-54f4-4528-8753-0b516c1a749c,0x800,0x100000)/File(\EFI\ubuntu\shimx64.efi) Boot0001* grub HD(1,GPT,2798e3ca-54f4-4528-8753-0b516c1a749c,0x800,0x100000)/File(\EFI\ubuntu\grubx64.efi) Boot0002* boot HD(1,GPT,2798e3ca-54f4-4528-8753-0b516c1a749c,0x800,0x100000)/File(\EFI\Boot\bootx64.efi) Boot0008 Onboard NIC (IPV4) PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(14b31f18c7f5,0)/IPv4(0.0.0.0:00.0.0.0:0,0,0)..BO Boot0009 Onboard NIC (IPV6) PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(14b31f18c7f5,0)/IPv6([::]:[::]:,0,0)..BO 

引导信息摘要:

http://paste.ubuntu.com/p/bG54zn47VZ/

SSD和HD上的boot / efi / EFI / ubuntu / grub.cfg是相同的:

 search.fs_uuid d37fc604-163d-4e04-83de-88993c28e419 root hd0,gpt2 set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg 

Oldfred的建议更新:

efibootmgr -v的当前输出

 BootOrder: 0003,0000,0001,0002,0008,0009 Boot0000* ubuntu HD(1,GPT,2798e3ca-54f4-4528-8753-0b516c1a749c,0x800,0x100000)/File(\EFI\ubuntu\shimx64.efi) Boot0001* grub HD(1,GPT,2798e3ca-54f4-4528-8753-0b516c1a749c,0x800,0x100000)/File(\EFI\ubuntu\grubx64.efi) Boot0002* boot HD(1,GPT,2798e3ca-54f4-4528-8753-0b516c1a749c,0x800,0x100000)/File(\EFI\Boot\bootx64.efi) Boot0003* Ubuntu-NVMe HD(1,GPT,5b57c19c-750b-457a-89f1-87130509735e,0x800,0x100000)/File(\EFI\ubuntu\shimx64.efi) Boot0008 Onboard NIC (IPV4) PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(14b31f18c7f5,0)/IPv4(0.0.0.0:00.0.0.0:0,0,0)..BO Boot0009 Onboard NIC (IPV6) PciRoot(0x0)/Pci(0x1c,0x3)/Pci(0x0,0x0)/MAC(14b31f18c7f5,0)/IPv6([::]:[::]:,0,0)..BO 

NVMe上的/boot/efi/EFI/ubuntu/grub.cfg:

 search.fs_uuid 22ac8da3-d60a-46db-811d-a09ce5538215 root hd0,gpt2 set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg 

HDD上的/boot/efi/EFI/ubuntu/grub.cfg:

 search.fs_uuid d37fc604-163d-4e04-83de-88993c28e419 root hd0,gpt2 set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg 

看看这是否在UEFI中添加了从NVMe驱动器启动的条目。 有关参数的详细信息,请参阅man efibootmgr。

 sudo efibootmgr -c -L "Ubuntu-NVMe" -l "\EFI\ubuntu\shimx64.efi" -d /dev/nvme0n1 -p 1 

但每当我使用与Ubuntu不同的-L标签时,它仍然从/EFI/ubuntu/grub.cfg引导,所以请确保你也有,并且它是正确的。 它曾经在其他标签中甚至没有3行grub.cfg,现在它确实如此,但内部的东西仍被编码为仅使用/EFI/ubuntu/grub.cfg。

脚本尚未更新以完全显示NVMe驱动器。 你的grub.cfg应该是:

 search.fs_uuid 22ac8da3-d60a-46db-811d-a09ce5538215 root hd0,gpt2 set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg 

而sda中的那个应该在sda中安装UUID,但可能hd1,gpt2,UUID应该覆盖设备设置。 不确定UEFI和grub如何看到驱动器。 我插入外置SSD,即使在Ubuntu中使用sdc,它也会成为hd0。 然后grub / UEFI将我的所有其他驱动器碰到一个数字。 如果我也插入了闪存驱动器,我必须将hd0更改为hd2以在sda中找到安装。