在单引导硬件上没有启动修复的情况下,将Ubuntu BIOS安装转换为EFI / UEFI的命令是什么?

Modified on: Sat, 09 Jun 2018 15:47:23 +0800

意外BIOS模式安装

我的Intel 64位硬件具有UEFI设置实用程序。 Ubuntu 14.04.1 LTS作为唯一的操作系统安装在唯一的驱动器上。意外地,Ubuntu安装在BIOS / CSM /传统模式中。

转换为UEFI

在稍后了解UEFI时,目标是通过EFI / UEFI将此现有Ubuntu安装更改为(更快)启动。我仍然想要某种 - 显示2秒 - 启动菜单,允许我进入UEFI设置实用程序。因此我认为我确实需要使用Grub(不能使用EFI启动存根)和GOP支持需要Grub版本1.99或更高。我已经使用Live CD重新分区了驱动器,并在驱动器的开头插入了200 MiB EFI分区,并将fat16格式的分区标记为类型ID 0xEF。

在:

# fdisk -l /dev/sda
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   108478463    54238208   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

后:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *      411648   108478463    54033408   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda3            2048      411647      204800   ef  EFI (FAT-12/16/32)
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

Partition table entries are not in disk order

请不要启动修复

Ubuntu社区wiki建议使用boot-repair来将Ubuntu转换为EFI模式。我不想使用GUI,或安装任何额外的软件包,我不希望任何数据被意外发送到pastebin.com,因为我想知道将要更改的内容,我不想使用引导修复

引擎盖下

试图弄清楚启动修复实际上做了什么,我找到了这个片段:

  

Boot-Repair会通过卸载grub-pc将BIOS安装转换为UEFI,并在gpt分区时安装grub-efi。

来源:http://ubuntuforums.org/showthread.php?t=2147295&p = 12657352#post12657352

UEFI模式安装比较

在UEFI模式下安装干净的Ubuntu 14.04.1会创建512 MiB Fat32格式的EFI分区。该分区包含一个目录/EFI/ubuntu,包含4个文件:grub.cfggrubx64.efiMokManager.efi

search.fs_uuid 7d843e47-3917-4114-8725-55dfa1fbe002 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

Search.fs_uuid指向Linux安装分区的UUID,在此比较中,UEFI安装Linux安装了分区/ dev / sda2 (与BIOS模式安装中的sda1相比)

找不到潜在的Asrock固件问题

在固件中仍然禁用CSM并使用干净的UEFI模式Ubuntu安装。使用Live CD和gparted将512 MiB EFI分区的大小调整为200 MiB会导致其格式从FAT32更改为FAT16。 Asrock固件P1.50 (AMI在启动消息“BIOS date”中错误地称为BIOS)仍然能够启动到UEFI模式Ubuntu:UEFI + FAT16 = 确定
使用相同的Live CD终端命令gdisk(msdos)代码>及其命令r g p w还会在MBR分区驱动器上生成UEFI可引导Ubuntu: UEFI + MBR = 确定

问题

这是否意味着我需要执行的唯一命令 - 从旧版Ubuntu安装和按此顺序执行 - 是:

# apt-get install grub-efi
# apt-get remove grub-pc

?或者更需要做什么?

作者:,Pro Backup

最佳答案

以UEFI模式启动Ubuntu Linux(14.04)Live CD。 如果是USB启动设备,请在UEFI中禁用“快速启动”。

打开一个终端窗口( Ctrl + Alt + T

要验证您实际上是否在UEFI模式下运行,请使用此bash命令:

$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

结果输出应为:

UEFI

如果显示BIOS,请重新启动固件并更正启动设备首选项。

要执行BIOS到EFI / UEFI转换,请输入以下命令:

UEFI

尽管以错误消息结尾:

$ sudo mount /dev/sda1 /mnt
$ sudo mkdir -p /mnt/boot/efi
$ sudo mount /dev/sda3 /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
# apt-get install grub-efi-amd64

The following extra packages will be installed:
  efibootmgr grub-efi-amd64-bin
The following packages will be removed:
  grub-gfxpayload-lists grub-pc
...
After this operation, 2,399 kB of additional disk space will be used.

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

下一次重启已在固件启动选项菜单中显示“ ubuntu ”,并像以前一样启动到控制台,现在以efi模式启动除外:

Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

如果出现问题,请https://superuser.com/questions/376470/how -to-reinstall-grub2-efi可能会有所帮助。


相关问答

添加新评论