GRUB EFI 加载程序在 /boot 中找不到其配置文件

Rsy*_*ync 6 boot grub2 uefi system-installation

我安装了 Ubuntu,但是当我启动时,我直接进入 Grub 救援命令提示符(GNU GRUB 版本 2.00-19ubuntu2.1)。我可以通过键入以下内容获得 Grub 启动界面:

set root=(hd0,5) 
set prefix=(hd0,5)/boot/grub 
insmod normal 
normal
Run Code Online (Sandbox Code Playgroud)

然后我可以启动到 Windows 8 或 Ubuntu。但我真的不想每次重新启动时都输入。

供参考:我有一台新的 2013 年华硕 Q501L。它预装了Window 8.0。我缩小了 Windows 分区,不理会其他 Windows 分区,包括 sda1 和 recovery。我在从缩小的 Windows 分区创建的空间上安装了 Ubuntu。

我尝试了以下方法来解决这个问题:

  1. 启动恢复(这里描述的传统模式和 EFI 模式(也就是说,我在启动修复中收到检测到 WinEFI 的消息,但我已经尝试过在启动修复中激活和不激活 Windows efi)。启动修复说, 使用非 efi 方法完成后: 请不要忘记让您的 BIOS 在 sda1/EFI/ubuntustudio/shimx64.efi 文件上启动!但在我的 BIOS 中,唯一的 Ubuntu 启动选项是“ubuntu (PO: Toshiba MQ. ..75)。

  2. 此处用于将 grub 与引导分区重新关联的说明

  3. 使用 CHROOT 方法的说明(卡在 GRUB 命令行)(注意,没有代表,因此仅限于 2 个链接)
  4. 此处的说明 更改 Grub 记录超时。

在 Grub 命令行中

我真的很茫然。这是来自的输出 sudo fdisk -l

Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 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
Disk identifier: 0x5b98f280

Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1465149167   732574583+  ee  GPT
Partition 1 does not start on physical sector boundary.
Run Code Online (Sandbox Code Playgroud)

这是 df -Th 的结果:

Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda5      ext4       92G  6.2G   81G   8% /
none           tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
udev           devtmpfs  2.8G  4.0K  2.8G   1% /dev
tmpfs          tmpfs     567M  1.1M  566M   1% /run
none           tmpfs     5.0M     0  5.0M   0% /run/lock
none           tmpfs     2.8G   76K  2.8G   1% /run/shm
none           tmpfs     100M   24K  100M   1% /run/user
Run Code Online (Sandbox Code Playgroud)

最后,这是我最近的引导修复尝试的链接:http : //paste.ubuntu.com/6573706/

请帮忙!在解决此问题之前,我不想自定义我的 Ubuntu 安装,因为我不确定是否不必擦除所有内容。

谢谢你。

更新:我安装了 rEFInd。它有效,但前提是我从默认/通用变体启动。我仍然无法从 Ubuntu 尝试使用的特定 Ubuntu 版本启动,因为这些版本直接进入 Grub 命令行。

Liv*_*eBT 1

我可以通过输入以下命令获得 Grub 引导界面:

set root=(hd0,5) 
set prefix=(hd0,5)/boot/grub 
insmod normal 
normal
Run Code Online (Sandbox Code Playgroud)

然后我可以启动到 Windows 8 或 Ubuntu。但我真的不想每次重启时都输入这个。

那已经很远了。在您的 UEFI 设置中,您只需将其放入grub.cfg旁边的/EFI/ubuntustudio/grubx64.efi.

这就是配置文件的样子,它读取包含所有内核的实际 grub.cfg:

search.fs_uuid $paste_uuid_here root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
Run Code Online (Sandbox Code Playgroud)