如何让 Grub 识别我的旧 Linux 分区

如何让 Grub 识别我的旧 Linux 分区

问题:
我有两个分区。其中一个分区上安装了 Fedora 9,另一个分区上刚安装了 Fedora 12。现在我已经安装了 Fedora 12,但我无法让 Grub 启动旧分区。我该如何配置 Grub 以启动我的旧 Fedora 分区?

一些注意事项:

  • 我的 Fedora 9 似乎在 fdisk 中显示为 Linux LVM,而不仅仅是 Linux。我在该 Linux 上安装了虚拟盒,但它本身并不是虚拟机。
  • 我很确定 Fedora 12 安装的是 grub 而不是 grub2
  • 我可以从 Fedora 12 live CD 查看并挂载这两个分区,如果这有帮助的话
  • 我的盒子是64位的。

信息:
这是我从中获得的信息fdisk -l

Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0005745c

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       64685   519578624   83  Linux
/dev/sda2           65706       65730      200812+  83  Linux
/dev/sda3           65731       91201   204595807+  8e  Linux LVM
/dev/sda4           64686       65705     8193150    5  Extended
/dev/sda5           64686       65705     8192000   82  Linux swap / Solaris

这就是我目前的情况menu.lst

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,0)
#          kernel /boot/vmlinuz-version ro root=/dev/sda1
#          initrd /boot/initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu

title Fedora (2.6.31.12-174.2.3.fc12.x86_64)
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.31.12-174.2.3.fc12.x86_64 ro root=UUID=876dd1b5-104a-46de-b5fb-08f96d2ce420  LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet mem=8192M
    initrd /boot/initramfs-2.6.31.12-174.2.3.fc12.x86_64.img
title Fedora 9
    rootnoverify (hd0,3)
    chainloader +1

列表中的第一个 Fedora 是 Fedora 12,可以正确启动,第二个只是猜测我的 Fedora 9 安装在哪里。当我在启动时在 Grub 中选择它时,它会进入一个空白屏幕,光标闪烁,对键盘没有反应。

更新:
我能够安装我的旧 FC9 系统,并且在 /boot 部分中,我在 menu.lst 下找到了这个,如果有帮助的话:

title Fedora (2.6.27.25-78.2.56.fc9.x86_64)
    root (hd0,1)
    kernel /vmlinuz-2.6.27.25-78.2.56.fc9.x86_64 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
    initrd /initrd-2.6.27.25-78.2.56.fc9.x86_64.img

问题:
我需要做什么才能启动我的旧 Fedora?

答案1

LVM 不是“Linux 虚拟机”,而是“逻辑卷管理器“如果我正确理解了 LVM,要引导到 LVM 上的根分区,您需要一个单独的/启动LVM 之外的分区(那是/dev/sda2?)。您的系统可能仍保留此文件,但如果您的 FC12 安装覆盖了它,则恢复将更加困难。

以下是 Grub 与 LVM 问题的几个链接:链接1链接2

另请参阅“安装 Linux LVM 卷”- 你应该通过在启动到 FC12 时挂载并检查其根分区,可以验证您的旧 FC9 系统是否仍然正常。如果是这样,即使您已经覆盖了 FC9/启动分割。

以下是 LVM 系统的 Grub 启动项示例 (来源)。 在这种情况下,(hd0,0)(意义/dev/sda1)很小/启动分区,其余系统位于 LVM 上/dev/sda2。注意根=lvm2root=条目核心线:

title Debian GNU/Linux, kernel 2.6.26 Using LVM with SATA Disk
root (hd0,0)
kernel /vmlinuz-2.6.26 root=/dev/ram0 lvm2root=/dev/mapper/sda_vol-root
initrd /initrd-lvm2-2.6.26.gz

事后分析:这位用户最终得到了最好的结果。FC12 安装没有覆盖或重新格式化 FC9/启动分割,/dev/sda2,而所需要的只是访问 FC9 的旧/boot/grub/菜单.lst并将启动项复制到 FC12 的 Grub 菜单中。

答案2

title Fedora (2.6.31.12-174.2.3.fc12.x86_64)
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.31.12-174.2.3.fc12.x86_64 ro root=UUID=876dd1b5-104a-46de-b5fb-08f96d2ce420  LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet mem=8192M
    initrd /boot/initramfs-2.6.31.12-174.2.3.fc12.x86_64.img
title Fedora 9
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.31.12-174.2.3.fc12.x86_64 ro root=*****  LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet mem=8192M
    initrd /boot/initramfs-2.6.31.12-174.2.3.fc12.x86_64.img

看到我在哪里写了 root=***** 了吗?要么获取 hd0,3 的 UUID,要么只在那里写入 root=/dev/hda3 或 /dev/sda3。而且……如果这是正确的分区,那就没问题了。

相关内容