如何在具有现有 GPT 的 (U)EFI 设备上安装 Ubuntu?

如何在具有现有 GPT 的 (U)EFI 设备上安装 Ubuntu?

到目前为止,我一直在运行 Ubuntu 11.04。现在我想用几乎全新的 12.04 重新安装 Ubuntu。上次安装 Ubuntu 时,我因为 EFI 而遇到了很多麻烦。但不知怎么的,我终于让它运行起来了。但我记不清是怎么回事了。

现在我在 sda4 上有一个包含个人数据的 gpt 分区,在 sda1 上有一个 EFI 分区,在交换分区和根分区之间。我想在根分区上安装 Ubuntu,而不清除整个 SSD。

每次我尝试安装 ubuntu 时,我的“BIOS”都找不到它。当我在正确的时间按下正确的键时,我会获得可能的启动选项的概览。有一个“grub”条目,但当我输入它时,我会在重新绘制显示后再次获得概览。

我尝试了引导加载程序部分的所有可能性(是的,我今天安装了 Ubuntu 5 次),但不知道如何让我的系统再次运行。我还尝试通过 chroot 修复 grub。我该怎么办?

编辑:是的,安装完成且没有错误。但据我所知,grub 甚至没有加载。我想说我的电脑知道它应该启动 grub,但无法超出 ssd。或者它找不到它要找的东西。安装 elilo 后,这种行为并没有改变(虽然我不知道我是否做对了)。Grub 通常在启动时出现错误时会转到某个 shell,但这里什么也没有发生。

答案1

如果我理解正确的话,你的问题是你的引导加载程序坏了Ubuntu 安装已完成;当您从固件启动 GRUB 时,它会将您转回固件的启动管理器。如果这是不正确的(例如,如果您在启动安装程序时遇到问题),请澄清。

我的建议是安装另一个引导加载程序。根据我的经验,GRUB 2 是至少可用的 Linux 引导加载程序非常可靠,当它发生故障时,通常更换它比尝试修复它更容易。如果这是一个仅 Linux 的系统,我建议您尝试艾利罗。如果您使用 Windows 双启动,请结合使用 ELILO 和重新索引或者尝试Fedora 已修补的 GRUB Legacy。您可以在 Ubuntu 安装程序的“安装前尝试”模式下安装其中任何一个,但您可能需要先执行sudo apt-get install efibootmgr该操作,然后使用该工具将新的引导程序添加到固件的引导程序列表中。请参阅我的 EFI 引导加载程序网页了解更多信息,包括如何使用的详细信息efibootmgr

这样做的缺点是您需要手动管理引导加载程序;更新内核时用于更新引导加载程序的脚本将不再起作用。因此,您必须确保在升级内核时升级引导加载程序配置。

答案2

Grub 安装在具有 GPT 分区表的磁盘上时运行良好,但是为了安装到 GPT 分区磁盘,该磁盘必须有一个小的(1mb 就足够了)分区,尤其是用于 grub。(在 msdos 分区驱动器上有一个空间供 grub 使用,但在 GPT 分区上不存在)。gparted 的最新版本能够创建这些小分区。不幸的是,如果您的驱动器没有这个分区,那么您就很倒霉了,因为移动分区即使只有一兆字节也是一项艰巨的任务。 https://www.gnu.org/software/grub/manual/html_node/BIOS-installation.html

Grub 2 支持从 GPT 甚至从 BIOS 启动,因为不需要 UEFI 本机模式。据我所知,所有非苹果 x86 计算机都支持以 BIOS 模式启动,并且建议使用 BIOS 模式而不是 UEFI 启动。

答案3

正如我在评论中写到的,对我来说,答案是删除现有的 EFI 分区和下面的交换分区,并将它们新建为 efi(而不是 fat16)和交换分区。然后我将引导加载程序配置为安装在 efi 分区上。

sudo parted -l给出(德语):

Modell: ATA C300-MTFDBAK128M (scsi)
Festplatte  /dev/sda:  128GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: gpt

Nummer  Anfang  Ende    Größe   Dateisystem     Name  Flags
 1      17,4kB  200MB   200MB   fat32                 boot
 3      200MB   3888MB  3688MB  linux-swap(v1)
 2      3888MB  27,9GB  24,0GB  ext4
 4      27,9GB  128GB   100GB   ext4

相关内容