Grub 非常混乱;启动过程中在驱动器之间跳转

Grub 非常混乱;启动过程中在驱动器之间跳转

我已经花了大约两周的时间尝试让运行 10.04 的机器运行 14.04。其中一个持续存在的问题是 GRUB 的行为非常奇怪。

在过去的几天里,我一直在尝试安装 14.04 的替代版本,以便我可以在主版本上工作。(主版本是 /dev/sda6,备选版本是 /dev/sda3。)我会创建分区、复制文件,或者有时使用 USB 安装,或者在一种情况下,将(不同的)驱动器放在另一台机器上以安装到位,然后将其放回此框中。然后,启动到 /sda6,我会运行 update-grub,它会声称它看到了两个安装。

但是当我重新启动时,菜单上没有提供替代安装。

因此,我会手动编辑 /boot/grub/grub.cfg,然后重新启动。菜单不会改变。我会再次查看它;我的编辑仍然在那里,但 grub 忽略了 /sda6 上的 /boot/grub/grub.cfg 文件。它也没有使用 /sda3 的 /boot/grub/grub.cfg。有时系统中有另一个驱动器,但它没有任何grub.cfg 文件。

那是几天前的事了。我设法让 /sda6 安装启动,除了 GUI 之外,其他一切都正常(因为,很明显,Ubuntu 14.04 的 ATI 视频驱动程序完全搞砸了,但这是另一个问题)。我将 Mythbuntu 的 .iso 文件放在我的备用分区上,用 grml-rescueboot 对其进行准备,然后运行 ​​update-grub。它在启动时计算了常用的 vz 和 init 文件,进行了两次内存测试,然后说找到了 grml .iso。好的。

重启。我能看到 GRUB 菜单吗?没有。它直接进入了 /sda6 安装。我对 grub.cfg 和 /etc/default/grub 进行了一次又一次的更改(更改了默认编号和许多其他内容,并在执行完这些操作后运行 update-grub)。没有变化。我尝试从 USB 启动;它仍然直接进入 /sda6。我尝试更改启动顺序以让 USB 先启动,但发现机器的 BIOS 无法将其识别为可启动。

所以我把 USB 放回到另一台 Ubuntu 机器(运行 12.04)上,然后使用 Unetbootin 将 64 位服务器 .iso 复制回它上面。

我将其重新插入要升级的机器,然后启动。这次,我得到了 grub 菜单。但是,我得到的 grub 菜单位于 /sda6 上!WTF??? 当硬盘驱动器 (/sda) 是“第一个”启动设备时,grub 完全忽略了 /sda6 上的文件,但是当我使用 USB 棒启动时,它却使用硬盘驱动器的 /boot 文件?

很好。我从菜单中选择了 Mythbuntu .iso。它启动到那里。但这对我来说没什么用,因为屏幕开始闪烁,十分钟后,屏幕完全变黑了。那可能是坏掉的视频驱动程序搞砸了。

我再次重新启动。grub 或 Mythbuntu 安装程序破坏了 USB 的启动记录,因为再一次,我没有看到 grub 启动菜单,而是看到它直接启动到 /sda6。(目前,这包括看到 Lubuntu 启动屏幕约五秒钟,然后屏幕变黑。结束。)

这台机器确实有 DVD 驱动器。它几乎肯定出现故障;无法从 CD/DVD 启动。我也无法将 /sda 移动到我的另一台计算机。/dev/sda 是一个有五个驱动器的硬件 RAID5 阵列。

我运行 update-grub 的次数已经数不过来了,我运行过 grub-install 和 grub-bios-install,我使用过 fdisk、parted 和 gdisk,甚至还使用 RAID 卡上的固件彻底清除了辅助驱动器,以便我可以尝试完全从头开始安装 grub。我认为 grub 从未正确启动过此系统。

我现在正在认真考虑将 Ubuntu 14.04 称为一场彻底的灾难,从我的备份中恢复 10.04,然后不管它,因为 10.04 在这个盒子上运行了四年,没有出现重大问题,除非有人可以告诉我如何让 grub 正确地完成其工作,或者指出除了 grub 之外还可以使用的其他东西。

有什么想法吗?

答案1

如果您正在使用 Grub2,并且您的所有操作系统都已安装(没有带有 iso 的 live usb),那么您可以随时获得 Grub Customizer。

sudo 添加 apt-repository ppa:danielrichter2007/grub-customizer

sudo apt-get 更新

sudo apt-get 安装 grub-customizer

我的主计算机上安装了 Ubuntu 14.04,外部硬盘上安装了 Ubuntu 和 mint,闪存驱动器上安装了 mint(全部已完全安装),当我将它们全部连接起来并运行 grub 定制程序时,它检测到了每一个,没有问题。

另一种解决方案可能是使用 plop 启动管理器或 super grub2。它们将检测计算机上的操作系统并运行它们。同样,super grub2 不会检测实时 ISO。

相关内容