我正在研究一个装有 Debian/Lenny 的系统,它安装在几个旧的 IDE PATA 驱动器(包括 /boot 在内的几个 RAID-1 分区)和一个最近添加的 SATA 驱动器上。系统运行良好,但我一直在研究 GRUB 设置,以便升级旧驱动器……
如果我在启动菜单出现时直接进入 grub 命令行并检查那里的驱动器(使用
grub> root (<TAB>...)
) 然后我看到 hd0 和 hd1 是 PATA,而 hd2 是 SATA。
但是,如果我在系统启动后执行相同的操作,则我会看到 hd0 现在是 SATA,而 hd1 和 hd2 是 PATA。(此外,系统将 /dev/sda、c、b 映射到 SATA、PATA、PATA。)
这让我有点担心grub>
机器启动后从提示符进行更改。所以:
为什么 grub 看到的设备顺序在这两种情况下会发生变化?
还:
一些 GRUB 命令的正确运行似乎依赖于 device.map 的正确性。目前它包含一行:
(hd0) /dev/md0
(即 RAID1 /boot)但我不知道它是从哪里来的(我认为这个系统可以追溯到 woody)! grub-mkdevicemap
想要将其重新生成为hd[0,1,2]->sd[a,b,c]
(但我还没有让它生成)。 update-grub
告诉我:warning: grub-probe can't find drive for /dev/sdb1
。鉴于枚举顺序的变化,对于健康的 device.map 应该是什么样的,有什么建议吗?(我不清楚它是否应该包含启动前或启动后的设备枚举顺序)。
答案1
启动前驱动器顺序似乎与 BIOS 启动菜单中的顺序相对应。在那里进行更改对启动后顺序没有影响,所以我只是将其更改为与启动后顺序相同,并且启动后生成的新 devices.map 现在包含一些在启动前也有效的内容。
达到了预期的效果:我对在启动前或启动后的 grub shell 中乱搞感到更舒服了,而且我知道 a>grub setup (hd1) (hd1,0)
在哪里真的去。
答案2
编辑您的/boot/grub/device.map
文件以反映启动时间映射,并且使用命令行grub
实用程序应该是完全安全的。
答案3
也许在启动时你的 grub 会进行驱动器映射:
不知道实际情况如何,但我记得有时你只能从主硬盘启动,并且需要使用映射功能才能正确启动。查看 grub 的配置,也许这就是 grub 所做的。