我使用的是 MacBookAir5,2 (2012),我已经在 Mac OS X 上运行 Ubuntu 一段时间了。我第一次安装 Ubuntu 时使用了 rEFIt,效果很好。
当我开始使用 Docker 时,我的磁盘空间不够了,于是我决定换一个新的 SSD 驱动器。我换了磁盘,然后安装了 Ubuntu 14.10。
在此之后,我摆弄了 rEFInd(因为 rEFIt 没有维护),并且读了很多Rod Smith 的页面
但是,现在我只想要 Ubuntu,不想在这台机器上启动任何其他东西。但不知何故,我告诉它efibootmgr
做什么,它却不运行。问题是 rEFInd 在启动后不会运行。我启动系统的唯一方法是在启动时按下 alt 键,然后选择 USB 记忆棒上的 rEFInd。不过,这种方法很好用,没有任何问题 - 只是有点不方便。:-)
如果我在不连接 USB 的情况下启动,则只会看到灰色屏幕,没有任何显示。它会“永远”保持灰色(我等待的时间不超过 20 分钟)。
我的 SSD 包含四个分区:
GPT fdisk (gdisk) 版本 0.8.8 分区表扫描: MBR:混合型 BSD:不存在 APM:不存在 GPT:存在 发现具有混合 MBR 的有效 GPT;使用 GPT。 磁盘 /dev/sda:937703088 个扇区,447.1 GiB 逻辑扇区大小:512字节 磁盘标识符 (GUID):B30ED5AD-A6B6-4FF9-9CC4-1F440536FB9F 分区表最多可容纳 128 个条目 第一个可用扇区是 34,最后一个可用扇区是 937703054 分区将按照 8 扇区边界对齐 总可用空间为 264949 个扇区 (129.4 MiB) 编号 起始(扇区) 结束(扇区) 大小 代码 名称 1 40 409639 200.0 MiB EF00 EFI 系统分区 2 409640 195722143 93.1 GiB AF00 Macintosh HD 3 195985408 921180159 345.8 GiB EF00 LINUX 4 921180160 937701375 7.9 GiB 0700 交换
为了缩小问题范围,我实际上删除了 ESP 中的所有文件。我现在efibootmgr
报告的是:
BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 0000
Boot0000* rEFInd Boot Manager HD(1,28,64000,7fa6ae3f-d9a7-4411-838a-1d0133b9993a)File(\EFI\refind\refind_x64.efi)
BootFFFF* ACPI(a0341d0,0)PCI(1f,2)SATA(0,0,0)HD(2,64028,e066090,00007690-046d-0000-175e-0000ca5e0000)File(\System\Library\CoreServices\boot.efi)
和
root@fredrik-mbair:~# tree /boot/efi/ | grep -v png /启动/efi/ └── 电喷 │ │ 重新查找 │ │ 图标 │ │ ── 按键 │ │ │ ── altlinux.cer │ │ │ │ │ │ │ │ │ │ │ │ ── fedora-ca.cer │ ... │ │ │ │ │ │ │ │ │ │ └── SLES-UEFI-CA-证书.cer │ │ ── refind.conf │ └── refind_x64.efi └── 工具 5 个目录,68 个文件
最后一条信息是:当我在拔下 USB 棒的情况下启动并按下 alt 键时,我会看到一个 (1) 硬盘图标,其下方有 Windows 文本。如果我选择该图标,屏幕会变黑,屏幕左上角会出现一个白色闪烁光标(下划线字符),类似于 80x25 线或类似的控制台。之后什么也没发生。“rEFInd Boot Manager”选项不会出现。
我不知道“Windows”选项从何而来,我也不知道FFFF选项是什么。
root@fredrik-mbair:~# efibootmgr -b FFFF -B
invalid hex value FFFF
因为除了单个 Ubuntu 操作系统和 Linux 内核之外我不会使用任何其他东西,所以我可以使用 gummiboot,但我不确定当efibootmgr
无法在启动时运行 rEFInd 时它会有什么帮助……
最后一次尝试运行install.sh
(从 PPA 安装)给出以下输出:
root@fredrik-mbair:~# /usr/share/refind/install.sh 在 Linux 上安装 rEFInd.... 使用 vfat 在 /boot/efi 中找到 ESP 在 /boot/efi/EFI/refind 中找到了 rEFInd 安装;正在升级它。 复制 rEFInd 二进制文件 注意:将现有的图标目录备份为icons-backup。 找到现有的 refind.conf 文件;将示例文件复制为 refind.conf-sample 以避免覆盖您的自定义设置。 rEFInd 已设置为默认启动管理器。 发现现有的 //boot/refind_linux.conf;不覆盖。 安装已成功完成。
我不知道下一步该去哪儿。
答案1
因此,为了达到目的,我做了以下事情:
第一次尝试是这样的:
- 删除 /boot/efi 下的所有内容
- 清空混合 MBR(使用
gdisk
,专家菜单,n
然后w
) /usr/share/refind/install.sh
efibootmgr -c -l \\EFI\\refind\\... -L TIRED
这实际上让 rEFInd 在重启后运行。但是,它没有检测到vmlinuz-3.16.0-28-generic.efi.signed
我想要运行的内核。它显示了选项,并且都指向No bootable device
80x25 控制台。
install.sh
啊哈,所以我尝试用重新运行脚本--alldrivers
。 重启后,我又回到了灰色屏幕,什么都没显示。
重新启动,从我的 USB 驱动器中获取 rEFInd,然后:
- 删除了
/boot/efi
分区 - 将 U 盘上的所有内容复制到
/boot/efi
- 使用以下方式创建了新条目(删除旧条目)
efibootmgr
以及我如何拥有一个工作系统。
细节:
root@fredrik-mbair:~# gdisk -l /dev/sda GPT fdisk (gdisk) 版本 0.8.8 分区表扫描: MBR:保护 BSD:不存在 APM:不存在 GPT:存在 找到具有保护性 MBR 的有效 GPT;使用 GPT。 磁盘 /dev/sda:937703088 个扇区,447.1 GiB 逻辑扇区大小:512字节 磁盘标识符 (GUID):B30ED5AD-A6B6-4FF9-9CC4-1F440536FB9F 分区表最多可容纳 128 个条目 第一个可用扇区是 34,最后一个可用扇区是 937703054 分区将按照 8 扇区边界对齐 总可用空间为 264949 个扇区 (129.4 MiB) 编号 起始(扇区) 结束(扇区) 大小 代码 名称 1 40 409639 200.0 MiB EF00 EFI 系统分区 2 409640 195722143 93.1 GiB AF00 Macintosh HD 3 195985408 921180159 345.8 GiB EF00 LINUX 4 921180160 937701375 7.9 GiB 0700 交换
/启动/efi/ ═── 电喷 │ └── 靴子 │ │ ── bootia32.efi │ │ ── bootx64.efi │ │ ── drivers_ia32 │ ... │ ... │ ... │ ... │ ... │ ... │ │ │ │ │ 许可协议.txt │ │ └── reiserfs_ia32.efi │ │ ─驱动程序_x64 │ ... │ ... │ ... │ ... │ ... │ ... │ │ │ │ │ 许可协议.txt │ │ └── reiserfs_x64.efi │ │ 图标 │ └── refind.conf ── shellia32.efi └── shellx64.efi 5 个目录,81 个文件
root@fredrik-mbair:~# efibootmgr -v 启动电流:0000 超时:5 秒 启动顺序:0000 Boot0000* COPY HD(1,28,64000,7fa6ae3f-d9a7-4411-838a-1d0133b9993a)文件(\EFI\boot\bootx64.efi) BootFFFF* ACPI(a0341d0,0)PCI(1f,2)SATA(0,0,0)HD(2,64028,e066090,00007690-046d-0000-175e-0000ca5e0000)文件(\System\Library\CoreServices\boot.efi)