我有一台运行 Debian Squeeze 的新机器。Grub 安装在 /dev/sda 上,但启动时我只看到一个闪烁的光标,在 Grub 菜单之前。只有当我选择启动选项(在开机自检期间)并选择该特定驱动器时,我才能成功启动到 grub!我已确保在 BIOS 中将正确的驱动器设置为首先启动。
Grub 可以工作,但系统无法自动引导至该驱动器?您知道是什么原因导致的吗?
驱动器 sda/b/c 均为 2TB(sda 与 b/c 作为 raid 设备 md0 一起运行系统)具有以下分区:
$ cat /proc/partitions
major minor #blocks name
8 0 1953514584 sda
8 1 977 sda1
8 2 9765625 sda2
8 3 6445313 sda3
8 4 1937302627 sda4
8 32 1953514584 sdc
8 16 1953514584 sdb
9 0 1953513424 md0
但
# fdisk -l /dev/sda
给出
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 1 243202 1953514583+ ee GPT
任何对这种奇怪行为的见解都将不胜感激。
答案1
您有一个 GPT 分区表,这意味着 Linux 可能被安装为 EFI。
理论:当您尝试在不调用菜单的情况下启动时,GRUB 阶段 0 无法在 GPT 子分区中找到下一阶段。使用启动菜单启动时,BIOS 会调用 EFI,并且启动成功。尝试在 BIOS 中寻找启动到 EFI 模式的选项,看看是否有区别。
答案2
BIOS 可能没有问题,尽管也可能有问题。我会查看 /boot/grub/device.map 文件,该文件保存了 BIOS 到 Linux 标识符的映射。可能是该文件设置不正确导致出现问题。不过,可能很难确定哪个驱动器是哪个,因为您的 RAID 阵列中可能有三个相同的驱动器。