我正在将系统从旧驱动器移至新驱动器,我按照此处描述的步骤进行操作(在外部驱动器上配置 Linux 内核和 grub):
chroot /mnt
dpkg -l | grep linux-image-.*-generic | sort -k3 | tail -n1 | awk '{system ("sudo apt-get install --reinstall " $2)}' #Reinstall Linux kernel packages there (credits: see https://askubuntu.com/a/298855/232047)
update-initramfs -u
grub-install
grub-update
并检查它似乎至少能够在另一台计算机上启动并加载 grub,因此这里的主要问题实际上是 BIOS 无法将新设备识别为有效(它甚至不会在当前笔记本电脑上加载 GRUB) 。
旧驱动器和新驱动器都是MBR并使用grub i386-pc,所以我想知道这可能是什么原因造成的?我检查过,我能够在旧版 Ubuntu 11.10* 的 Live CD 上启动,但它无法在任何较新的 Ubuntu Live CD 版本上启动(现在我想起来大概有 1 或 2 年了)。那么,最近的 grub 版本是否有一些旧 BIOS 不喜欢的变化呢?
注意:Ubuntu 11.10 和更新的 Live CD 似乎都使用带有 efi 的 MBR,至少在它们的引导分区上有一个 efi 文件夹,这很奇怪(为什么 MBR 带有 efi?)。
(*):我在新驱动器上安装了旧版本,以确保驱动器本身不是被拒绝的。正如我所说,旧的 live 能够完美启动。
答案1
不管你相信与否,问题只是分区上缺少启动标志。看来这个BIOS会检查是否有带有BOOT标志的分区,如果没有,就会默默地拒绝该设备。至于 Ubuntu live CD,由于从 BIOS 传统更改为 UEFI,它似乎只能启动 i386 映像或旧的 amd64 映像。