Ubuntu 16.04:grub-efi-amd64-signed无法安装到/target/目录中,出现错误。

我有一台戴尔Inspiron 5567笔记本电脑(i-7,8GB),上面安装了Windows 10操作系统。我想要在Windows 10上安装Ubuntu 16.04作为双启动系统。我已经禁用了快速启动和安全启动选项。但是在安装Ubuntu 16.04时,我遇到了以下错误:
grub-efi-amd64-signed无法安装到/target/目录中。没有GRUB引导加载程序,安装的系统将无法启动。
目标分区是/dev/sda1。
我已经创建了三个分区:
20GB-ext4- Root mounted
18.9GB-ext4- /home
4GB Swap area
日志文件的Launchpad链接: https://bugs.launchpad.net/ubuntu/+source/grub-installer/+bug/1703167

boot-repair的Pastebin链接: https://pastebin.com/raw/u4LSP0V4

sudo fdisk -l的输出结果:

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F87D48DF-F3FF-429E-8F0B-558F81712A60

Device          Start        End    Sectors   Size Type
/dev/sda1        2048    1026047    1024000   500M EFI System
/dev/sda2     1026048    1288191     262144   128M Microsoft reserved
/dev/sda3     1288192 1843265535 1841977344 878.3G Microsoft basic data
/dev/sda4  1927151616 1928073215     921600   450M Windows recovery environment
/dev/sda5  1928073216 1951281151   23207936  11.1G Windows recovery environment
/dev/sda6  1951281152 1953523711    2242560   1.1G Windows recovery environment
/dev/sda7  1843265536 1851078655    7813120   3.7G Linux swap
/dev/sda8  1851078656 1890140159   39061504  18.6G Linux filesystem
/dev/sda9  1890140160 1927151615   37011456  17.7G Linux filesystem

Partition table entries are not in disk order.

sudo parted -l 的输出:

Model: ATA TOSHIBA MQ01ABD1 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name                          Flags
 1      1049kB  525MB   524MB   fat32           EFI system partition          boot, esp
 2      525MB   660MB   134MB                   Microsoft reserved partition  msftres
 3      660MB   944GB   943GB   ntfs            Basic data partition          msftdata
 7      944GB   948GB   4000MB  linux-swap(v1)
 8      948GB   968GB   20.0GB  ext4
 9      968GB   987GB   18.9GB  ext4
 4      987GB   987GB   472MB   ntfs                                          hidden, diag
 5      987GB   999GB   11.9GB  ntfs                                          hidden, diag
 6      999GB   1000GB  1148MB  ntfs                                          hidden, diag


Model: SRT USB (scsi)
Disk /dev/sdb: 32.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
1      1049kB  32.5GB  32.5GB  primary  fat32        boot, lba

请指导我如何解决这个问题。

@RodSmith为什么这是一个重复的问题?你选择的目标有很少有用的答案,而且唯一一个得到显著赞同的答案假设没有EFI分区。而这里的提问者有一个EFI分区,所以我不明白它怎么可能是同样的问题。我错过了什么吗? - terdon
终于成功了 @terdon。已经发布为答案。 - Benedict Florance
2个回答

EFI系统分区已损坏。我通过以下步骤纠正了这个错误:
在Windows上,我使用DISKPART为EFI系统分区分配了一个盘符。打开DISKPART,然后输入LIST DISK来查找磁盘,接着输入SELECT DISK <N>(其中<N>是驱动器编号)。然后按照相同的步骤找到正确的分区(即LIST PARTITION后跟SELECT PARTITION <N>),然后只需输入ASSIGN LETTER = X让Windows将该分区挂载到X盘符。
然后以管理员权限打开CMD。运行CHKDSK X: /f /r 然后,我再次尝试安装Ubuntu,结果安装成功!

我在许多电脑上都见过这个问题,实际上不是grub安装失败了,而是update-grub生成的第一个配置文件失败了。
问题在于30_uefi-firmware中的if/then语句出错了。
最简单的修复方法是在出错后,在安装程序菜单底部选择命令行提示符,并使用nano编辑/etc/grub.d/30_uefi-firmware文件。
我已经将我的修改为以下内容:
gettext_printf "Adding boot menu entry for EFI firmware configuration\n" >&2
cat << EOF
menuentry 'uefi-firmware' {
fwsetup
}
EOF

编辑完成后重新运行安装grub。 注意:在某些系统上,打印命令需要暂时注释掉以便安装程序正常运行。

1在安装程序菜单底部,我没有看到任何命令行提示符。 - Benedict Florance
安装完成后不要安装Grub,启动时应该会出现一个Grub命令行。或者使用安装盘中的Grub(按下"c"键进入命令行)。按照这些指示进行引导https://askubuntu.com/a/931327/694267。您需要根据您的安装情况更改驱动器标识。看起来sda8是根分区,所以`linux (hd0,8)/vmlinuz root=/dev/sda8`。 - ravery
我在启动时遇到了一个像你提到的链接一样的屏幕。现在我该怎么办?按照那个问题的指示进行操作吗?什么时候应该修改/etc/grub.d/30_uefi-firmware文件? - Benedict Florance
是的,请按照这些指示操作,将(hd0,8)和/dev/sda8替换为驱动器标识符。在运行update-grub之前,请修改/etc/grub.d/30_uefi-firmware文件。 - ravery