ubuntu@ubuntu:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 2.2G 1 loop /rofs
loop1 7:1 0 63.3M 1 loop /snap/core20/1828
loop2 7:2 0 4K 1 loop /snap/bare/5
loop3 7:3 0 346.3M 1 loop /snap/gnome-3-38-2004/119
loop4 7:4 0 46M 1 loop /snap/snap-store/638
loop5 7:5 0 49.9M 1 loop /snap/snapd/18357
loop6 7:6 0 91.7M 1 loop /snap/gtk-common-themes/1535
sda 8:0 1 14.3G 0 disk
└─sda1 8:1 1 14.3G 0 part /cdrom
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 260M 0 part
├─nvme0n1p2 259:2 0 16M 0 part
├─nvme0n1p3 259:3 0 100G 0 part
├─nvme0n1p4 259:4 0 53.8G 0 part
├─nvme0n1p5 259:5 0 150G 0 part
├─nvme0n1p6 259:6 0 2G 0 part
├─nvme0n1p7 259:7 0 20G 0 part
├─nvme0n1p8 259:8 0 1000M 0 part
├─nvme0n1p9 259:9 0 3.8G 0 part
└─nvme0n1p10 259:10 0 146.2G 0 part
ubuntu@ubuntu:~$ sudo blkid
/dev/nvme0n1p1: LABEL_FATBOOT="SYSTEM" LABEL="SYSTEM" UUID="089E-F1DD" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="651b35be-bac5-4234-a196-dfe2baff470d"
/dev/nvme0n1p10: UUID="0ee6a92a-908c-4514-9468-e61624276e6d" TYPE="ext4" PARTUUID="5d39f680-371a-4698-89c4-6475036fd9f4"
/dev/nvme0n1p3: LABEL="Windows" UUID="1A9AA1479AA11FED" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="d6db50e2-e7b4-43ba-9000-0a31e4ce9d52"
/dev/nvme0n1p4: LABEL="DATA1" UUID="4CF4A160F4A14D50" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="dea19e23-edb8-4142-8df1-d836e318289b"
/dev/nvme0n1p5: UUID="328a92a4-4379-4972-98db-d191eaa129c5" TYPE="ext4" PARTUUID="3888a516-35fe-4588-a484-f4ba688d0357"
/dev/nvme0n1p6: LABEL="WinRE_DRV" UUID="5826A1A426A1841A" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="5ab9b5c1-a6d8-405a-95a4-4df591afcb1d"
/dev/nvme0n1p7: LABEL="LENOVO_PART" UUID="6670A3BC70A390FB" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="cb6d9fd4-32f4-4ffb-b710-35a955ccb1d5"
/dev/nvme0n1p8: LABEL="LRS_ESP" UUID="F8A5-9ADD" TYPE="vfat" PARTLABEL="Basic data partition" PARTUUID="c132c21b-f5f8-4845-a195-f7da01063d05"
/dev/sda1: LABEL="UBUNTU 20_0" UUID="52B0-870F" TYPE="vfat" PARTUUID="00baf2f2-01"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/nvme0n1p2: PARTLABEL="Microsoft reserved partition" PARTUUID="62e323c6-aee5-4c4f-b7a3-2f5dc0ab8c7c"
/dev/nvme0n1p9: UUID="53d9e73e-a78c-485f-9239-7f1c27158c96" TYPE="swap" PARTUUID="104af7e5-15c3-4b2b-870d-123a84567a9a"
以下是执行grub-install
的一般步骤:
-
启动到Live USB环境。
-
挂载EFI系统分区(通常这是第一个FAT32分区):
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
-
挂载您想要设为默认的Ubuntu发行版的根分区 。例如,如果Ubuntu 20.04的根分区是
/dev/nvme0n1p10
,则执行:sudo mount /dev/nvme0n1p10 /mnt
-
(可选)挂载其他必要的分区 ,例如
/boot
(如果它是一个单独的分区)和交换分区。 -
使用chroot命令切换到挂载的系统环境(这将允许您执行命令,就像您是在该系统内执行一样):
sudo chroot /mnt
-
重新安装GRUB 到整个磁盘设备上(这里是
/dev/nvme0n1
):grub-install /dev/nvme0n1
-
更新GRUB配置:
update-grub
-
退出chroot环境并卸载分区:
exit sudo umount /mnt sudo umount /mnt/boot/efi
-
重启计算机。
请注意,grub-install
命令会将GRUB的启动代码安装到磁盘的启动区域,而update-grub
会生成一个新的grub.cfg
配置文件,其中包含所有已安装操作系统的启动项。
在您的情况下,如果您不确定哪个是Ubuntu 20.04或Ubuntu 22.04的根分区,您可以使用blkid
命令来检查,或者查看/mnt/etc/fstab
文件来确认。您应该选择一个您经常使用的Ubuntu版本作为默认启动项。如果您希望GRUB能够显示所有可启动的操作系统,包括Windows,那么在安装GRUB后,通常不需要对--root-directory
参数做特别指定,因为GRUB会自动检测并配置所有安装在EFI系统分区上的操作系统。