查找安装的驱动器

查找安装的驱动器

为了为了实验,我正在尝试记录 Mac Mini 上 14.04 纯 EFI 启动的最小程序。

这涉及在硬盘上安装一个基本系统(使用 Mac 风格的服务器安装 ISO),但是不是将 GRUB 安装到 MBR。GRUB安装到硬盘的第一个分区,但直到我手动设置 EFI 启动分区,系统才能够启动。

有没有办法使用 USB 安装程序上的引导加载程序手动引导到已安装的系统?我可以访问安装程序上的“高级选项”(即引导加载程序命令行),但我不知道它是什么引导加载程序,因此我找不到它的完整文档。

答案1

不要使用 Mac 专用的安装程序。使用普通(服务器、桌面)安装程序,使用所有默认设置安装系统(避免使用 LVM 除外),然后重新启动。

再次启动 USB 安装程序,但当您看到 GRUB 菜单时,按下C以调出 GRUB 控制台。

查找安装的驱动器

在 GRUB 控制台中,执行

grub> ls
(memdisk) (hd0) (hd0,msdos) (hd1) (hd2) (hd2,gpt3) (hd2,gpt2) (hd2,gpt1)

您可能不会得到与此完全相同的结果,但您将有一些选择。您要查找新安装,而不是安装程序/实时系统。我建议找到一个包含新用户主目录的分区:

grub> ls (hd2,gpt2)/home
jason/

继续尝试这个模式直到找到它。

查找安装的启动分区

如果您知道已将所有内容安装到一个分区,那么您就大功告成了 — 只需使用上一步的结果即可(hdX,gptY)。如果您不知道,或者您不确定,请保留该hdX部分,但浏览所有gptY选项以查找/boot/grub目录:

grub> ls (hd2,gpt1)/boot/grub
error: file `/boot/grub' not found.

不,不是那个。

grub> ls (hd2,gpt2)/boot/grub
unicode.pf2 [...] grub.cfg

找到了!

现在您想将其设置为进一步命令的根:

grub> set root=(hd2,gpt2)

弄清楚启动命令

我发现仅有的正确启动的方法是使用驱动器的 UUID(即没有快捷方式/dev/sdaX!) - 所以让我们得到:

grub> ls -l (hd2,gpt2)
        Partition hd2,gpt2: Filesystem type ext* [...snip...] UUID e86c20b9-83e1-447d-a3be-d1ddaad6c4c6 - Partition start at [...]

请记下 UUID 字符串!你的会有所不同。现在告诉 GRUB Linux 在哪里:

grub> linux /boot/vmlinuz[...tab here!...].efi.signed root=UUID=<the UUID from above>

GRUB 控制台可以完成tab补全,因此如果您只输入部分vmlinuz并点击tab,然后点击.tab再次... 您就不必输入整个文件名。但一定要确保该.efi.signed位在那里!是的,您必须输入整个 UUID。

现在设置initrd(初始 RAM 磁盘):

grub> initrd /boot/initrd[...tab here!...]

启动

类型:

grub> boot

您会发现自己已启动到安装状态!


我不是 GRUB 专家,因此我欢迎任何关于如何减少此时间的提示。尤其是 UUID 部分,这有点令人发指。

相关内容