无法使用UEFI模式启动新安装的Ubuntu 16.04?

我在BIOS(传统模式)中安装了安装了Ubuntu 14.04的笔记本电脑。

sudo dmidecode

 BIOS Information Vendor: Dell Inc. Version: A16 Release Date: 12/05/2013 ... System Information Manufacturer: Dell Inc. Product Name: Latitude E6410 

我尝试在UEFI模式下安装新的Xubuntu 16.04而不是升级。

  • 切换BIOS从Legacy启动到UEFI并禁用RAID for SATA。

    ( SoftRAID / FakeRAID在每次启动时损坏磁盘末尾的GPT表备份 )

  • 在UEFI模式下使用USB密钥启动,并将分区表从MBR重新调整并转换为GPT。

  • 在UEFI模式下使用USB密钥再次启动并安装Xubuntu。 创建了一个新的启动EFI(FAT32)分区。

重新启动时,UEFI菜单中有一个Ubuntu条目,但选择它会引发有关无引导介质的BIOS错误消息。

尝试了多项但没有成功:

  • 启动修复。
  • 将EFI分区更改为FAT16。
  • 重新安装Xubuntu。

在gparted中分区

sudo sfdisk -d /dev/sda

 label: gpt label-id: 4A4481B5-0322-411E-8D05-552FBE6189AC device: /dev/sda unit: sectors first-lba: 34 last-lba: 976773134 /dev/sda1 : start= 4194304, size= 127924224, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=F1D50A87-ACB2-4868-B1EA-66C3D5223EA4, name="Linux filesystem" /dev/sda2 : start= 874115072, size= 98463744, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=C96E6320-18EA-40B2-BA46-79FC66407917, name="Linux filesystem" /dev/sda4 : start= 2048, size= 409600, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B, uuid=BCB6E471-44F7-4C42-81EC-B276F1D6B6E6, name="EFI" /dev/sda5 : start= 154339328, size= 715456512, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=AEBBA3F2-F8B6-40C0-ABFE-9F530FC5F641, name="Linux filesystem" /dev/sda6 : start= 136513536, size= 17825792, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=515C9B77-B282-4007-8F1A-B0C5D908591E, name="Linux swap" 

最后,我让它在UEFI中启动。 问题在于UEFI固件似乎有问题。 它确实要求EFI分区是GPT表中的第一个分区。 GPT表中的分区条目是无序的。 (EFI是磁盘上的第一个,但在表中排名第四)。

我按照下面的说明解决了这个问题:

  1. 使用Live USB启动
  2. 备份GPT表

     sudo su swapoff sfdisk -d /dev/sda > sda.bkp 
  3. 使用新订单修改新表(EFI是第一个)

     cp sda.bkp sda.new nano sda.new 

    sda.new

     label: gpt label-id: 4A4481B5-0322-411E-8D05-552FBE6189AC device: /dev/sda unit: sectors first-lba: 34 last-lba: 976773134 /dev/sda1 : start= 2048, size= 409600, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B, uuid=BCB6E471-44F7-4C42-81EC-B276F1D6B6E6, name="EFI" /dev/sda2 : start= 4194304, size= 127924224, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=F1D50A87-ACB2-4868-B1EA-66C3D5223EA4, name="Linux filesystem" /dev/sda5 : start= 136513536, size= 17825792, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F, uuid=515C9B77-B282-4007-8F1A-B0C5D908591E, name="Linux swap" /dev/sda6 : start= 154339328, size= 715456512, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=AEBBA3F2-F8B6-40C0-ABFE-9F530FC5F641, name="Linux filesystem" /dev/sda4 : start= 874115072, size= 98463744, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=C96E6320-18EA-40B2-BA46-79FC66407917, name="Linux filesystem" 
  4. 恢复GPT表

     sfdisk /dev/sda < sda.new 

现在,我能够启动。

参考文献:

  • 将分区的编号从sda1更改为sda2
  • 如何在已安装的磁盘上重新编号GPT分区? (更简单,但我没试过)