将 Ubuntu BIOS 安装转换为 U 盘中的 EFI/UEFI

将 Ubuntu BIOS 安装转换为 U 盘中的 EFI/UEFI

我在 USB 记忆棒中安装了 Linux(完整安装不是实时安装)。当我设置它时,它使用 BIOS 启动,但现在我需要将其更改为 UEFI,因为一些较新的机器只能在 UEFI 中启动。我读过很多文章,比如并按照说明进行操作,但仍然不起作用。这就是我的 USB 使用的样子fdisk -l

Disk /dev/sdb: 238.5 GiB, 256087425024 bytes, 500170752 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x281a9f52

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1          411648 143362047 142950400  68.2G 83 Linux
/dev/sdb2       143362048 159897599  16535552   7.9G  5 Extended
/dev/sdb3       159897600 500170751 340273152 162.3G  7 HPFS/NTFS/exFAT
/dev/sdb4  *         2048    411647    409600   200M ef EFI (FAT-12/16/32)
/dev/sdb5       143364096 159897599  16533504   7.9G 82 Linux swap / Solaris

其中 sdb1 是 Linux 安装,sdb2 和 sdb5 是交换区,sdb3 是存储,sdb4 是我创建的 EFI 分区。

我从桌面启动,插入 USB 驱动器,然后执行以下操作:

$ sudo mount /dev/sdb1 /mnt
$ sudo mkdir -p /mnt/boot/efi
$ sudo mount /dev/sdb4 /mnt/boot/efi
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys
$ sudo mount --bind /run /mnt/run
$ modprobe efivars
$ sudo chroot /mnt
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu-usb --recheck --no-floppy --debug

Grub 似乎安装成功,并且我得到以下输出:

BootCurrent: 0001
Timeout: 2 seconds
BootOrder: 0002,0001,001B,001A,0000,0019,0017,0018,001C,0021
Boot0000* Windows Boot Manager
Boot0001* UBUNTU
Boot0010  Setup
Boot0011  Boot Menu
Boot0012  Diagnostic Splash Screen
Boot0013  Lenovo Diagnostics
Boot0014  Startup Interrupt Menu
Boot0015  Rescue and Recovery
Boot0016  MEBx Hot Key
Boot0017* USB CD
Boot0018* USB FDD
Boot0019* ATAPI CD0
Boot001A* ATA HDD0
Boot001B* USB HDD
Boot001C* PCI LAN
Boot001D* IDER BOOT CDROM
Boot001E* IDER BOOT Floppy
Boot001F* ATA HDD
Boot0020* ATAPI CD
Boot0021* PCI LAN
Boot0002* ubuntu-usb
Installation finished. No error reported.

然后我卸载了文件系统和 /mnt 并使用 USB 重新启动,但它没有使用 UEFI 启动。它仍然可以在支持 BIOS 的主板上启动,但不能在仅支持 UEFI 的主板上启动。

答案1

这仍然使用 DOS 分区表,该分区表无法在仅 UEFI 系统上用于引导目的。更严格地说,它应该在 CSM 系统上运行,但根据经验,它并不总是如此。

使用该工具将分区表转换为 GPTgdisk它将自动转换为 GPT,然后您可以使用 来检查它是否正确p

相关内容