无法将 Fedora 14 添加到 grub

Dan*_*aya 5 dual-boot 11.04

今天,我将 Fedora 14 安装在与 Ubuntu 相同的硬盘驱动器中的不同分区中。在Fedora 14安装时,我选择不在MBR中安装Boot-loader,而是选择将其安装在Fedora本身的分区中,这是根据我的HD布局/sda3。

在 Fedora 14 安装后,我启动到 Ubuntu 并运行

须藤更新-grub
但是“grub.cfg”无法将 Fedora 14 添加到操作系统列表中。这是 boot-info 脚本的输出。

                  2011 年 5 月 17 日的引导信息脚本 0.60


============================ 启动信息摘要:================ ==============

 => Grub2 (v1.99) 安装在 /dev/sda 的 MBR 中并查看的扇区 1 
    core.img 的硬盘驱动器相同。core.img 在这个位置,看起来
    对于此驱动器上的 (,msdos1)/boot/grub。

sda1: ____________________________________________________________________________________

    文件系统:ext4
    引导扇区类型:-
    引导扇区信息:  
    操作系统:Ubuntu 11.04
    启动文件:/boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

sda2: __________________________________________________________________________

    文件系统:扩展分区
    引导扇区类型:未知
    引导扇区信息:  

sda5: __________________________________________________________________________

    文件系统:交换
    引导扇区类型:-
    引导扇区信息:  

sda3: ____________________________________________________________________________________

    文件系统:ext4
    引导扇区类型:Grub Legacy
    引导扇区信息:Grub Legacy (v0.97) 安装在引导扇区中 
                       sda3 并查看引导驱动器 #1 上的扇区 49897340 
                       对于 stage2 文件。stage2 文件在此
                       /dev/sda 上的位置。Stage2 查看分区 #3
                       对于 /grub/grub.conf。
    操作系统:  
    启动文件:/grub/menu.lst /grub/grub.conf

sda4: __________________________________________________________________________

    文件系统:LVM2_member
    引导扇区类型:-
    引导扇区信息:  

============================ 驱动器/分区信息:================ ============

驱动器:sda _____________________________________________________________________

磁盘 /dev/sda:40.0 GB,40020664320 字节
255 个磁头,63 个扇区/磁道,4865 个柱面,总共 78165360 个扇区
单位 = 1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节 / 512 字节

分区引导开始扇区结束扇区数量扇区 ID 系统

/dev/sda1 * 2,048 49,865,759 49,863,712 83 Linux
/dev/sda2 74,866,686 78,163,967 3,297,282 5 扩展
/dev/sda5 74,866,688 78,163,967 3,297,280 82 Linux 交换 / Solaris
/dev/sda3 49,866,752 50,890,751 1,024,000 83 Linux
/dev/sda4 50,890,752 74,864,639 23,973,888 8e Linux LVM


“blkid”输出:________________________________________________________________

设备 UUID 类型标签

/dev/sda1 03e2a8da-171f-49e9-b24d-434e66cd1140 ext4       
/dev/sda3 dea81d77-a375-4d0e-954e-1829f6b91f10 ext4       
/dev/sda4 mzVoj0-GHJu-DJr4-0G2Y-SzZ0-LTfW-F01yf9 LVM2_member 
/dev/sda5 3e89ba8e-7754-4ee4-aca1-e2a82bffb7a7 交换       

============================== 挂载点:============== ==================

设备 Mount_Point 类型选项

/dev/sda1 / ext4 (rw,errors=remount-ro,user_xattr,commit=0)


========================== sda1/boot/grub/grub.cfg: ============== ==============

-------------------------------------------------- ------------------------------
#
# 不要编辑这个文件
#
# 由 grub-mkconfig 使用模板自动生成
# 来自 /etc/grub.d 和来自 /etc/default/grub 的设置
#

### 开始 /etc/grub.d/00_header ###
如果 [ -s $prefix/grubenv ]; 然后
  设置 have_grubenv=true
  加载环境
菲
设置默认值=“2”
如果 [ "${prev_saved_entry}" ]; 然后
  设置saved_entry="${prev_saved_entry}"
  save_env saved_entry
  设置 prev_saved_entry=
  save_env prev_saved_entry
  设置 boot_once=true
菲

函数保存默认{
  if [ -z "${boot_once}" ]; 然后
    saved_entry="${选择}"
    save_env saved_entry
  菲
}

功能记录失败{
  设置记录失败=1
  if [ -n "${have_grubenv}" ]; 然后如果 [ -z "${boot_once}" ]; 然后 save_env 记录失败;fi; 菲
}

功能加载视频{
  insmod vbe
  安装 vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
设置 root='(/dev/sda,msdos1)'
搜索 --no-floppy --fs-uuid --set=root 03e2a8da-171f-49e9-b24d-434e66cd1140
如果 loadfont /usr/share/grub/unicode.pf2 ; 然后
设置 gfxmode=1024x768
  加载视频
  insmod gfxterm
菲
terminal_output gfxterm
insmod part_msdos
insmod ext2
设置 root='(/dev/sda,msdos1)'
搜索 --no-floppy --fs-uuid --set=root 03e2a8da-171f-49e9-b24d-434e66cd1140
设置 locale_dir=($root)/boot/grub/locale
设置 lang=en_US
insmod 获取文本
如果 [ "${recordfail}" = 1 ]; 然后
  设置超时=-1
别的
  设置超时=10
菲
### END /etc/grub.d/00_header ###

### 开始 /etc/grub.d/05_debian_theme ###
设置 menu_color_normal=白色/黑色
设置 menu_color_highlight=黑色/浅灰色
如果 background_color 44,0,30; 然后
  清除
菲
### 结束 /etc/grub.d/05_debian_theme ###

### 开始 /etc/grub.d/10_linux ###
如果 [ ${recordfail} != 1 ]; 然后
  if [ -e ${prefix}/gfxblacklist.txt ]; 然后
    如果 hwmatch ${prefix}/gfxblacklist.txt 3; 然后
      如果 [ ${match} = 0 ]; 然后
        设置 linux_gfx_mode=keep
      别的
        设置 linux_gfx_mode=text
      菲
    别的
      设置 linux_gfx_mode=text
    菲
  别的
    设置 linux_gfx_mode=keep
  菲
别的
  设置 linux_gfx_mode=text
菲
导出 linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; 然后加载视频;菲
menuentry 'Ubuntu, with Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    记录失败
    设置 gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    设置 root='(/dev/sda,msdos1)'
    搜索 --no-floppy --fs-uuid --set=root 03e2a8da-171f-49e9-b24d-434e66cd1140
    linux /boot/vmlinuz-2.6.38-8-generic root=UUID=03e2a8da-171f-49e9-b24d-434e66cd1140 ro安静飞溅vt.handoff=7
    initrd /boot/initrd.img-2.6.38-8-generic
}
menuentry 'Ubuntu, with Linux 2.6.38-8-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    记录失败
    设置 gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    设置 root='(/dev/sda,msdos1)'
    搜索 --no-floppy --fs-uuid --set=root 03e2a8da-171f-49e9-b24d-434e66cd1140
    echo '正在加载 Linux 2.6.38-8-generic ...'
    linux /boot/vmlinuz-2.6.38-8-generic root=UUID=03e2a8da-171f-49e9-b24d-434e66cd1140 ro单 
    echo '正在加载初始 ramdisk ...'
    initrd /boot/initrd.img-2.6.38-8-generic
}
子菜单“以前的 Linux 版本”{
menuentry 'Ubuntu, with Linux 2.6.35-28-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    记录失败
    设置 gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    设置 root='(/dev/sda,msdos1)'
    搜索 --no-floppy --fs-uuid --set=root 03e2a8da-171f-49e9-b24d-434e66cd1140
    linux /boot/vmlinuz-2.6.35-28-generic root=UUID=03e2a8da-171f-49e9-b24d-434e66cd1140 ro安静飞溅vt.handoff=7
    initrd /boot/initrd.img-2.6.35-28-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-28-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    记录失败
    设置 gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    设置 root='(/dev/sda,msdos1)'
    搜索 --no-floppy --fs-uuid --set=root 03e2a8da-171f-49e9-b24d-434e66cd1140
    echo '正在加载 Linux 2.6.35-28-generic ...'
    linux /boot/vmlinuz-2.6.35-28-generic root=UUID=03e2a8da-171f-49e9-b24d-434e66cd1140 ro单 
    echo '正在加载初始 ramdisk ...'
    initrd /boot/initrd.img-2.6.35-28-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    记录失败
    设置 gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    设置 root='(/dev/sda,msdos1)'
    搜索 --no-floppy --fs-uuid --set=root 03e2a8da-171f-49e9-b24d-434e66cd1140
    linux /boot/vmlinuz-2.6.32-21-generic root=UUID=03e2a8da-171f-49e9-b24d-434e66cd1140 ro安静飞溅vt.handoff=7
    initrd /boot/initrd.img-2.6.32-21-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-21-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    记录失败
    设置 gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    设置 root='(/dev/sda,msdos1)'
    搜索 --no-floppy --fs-uuid --set=root 03e2a8da-171f-49e9-b24d-434e66cd1140
    echo '正在加载 Linux 2.6.32-21-generic ...'
    linux /boot/vmlinuz-2.6.32-21-generic root=UUID=03e2a8da-171f-49e9-b24d-434e66cd1140 ro单 
    echo '正在加载初始 ramdisk ...'
    initrd /boot/initrd.img-2.6.32-21-generic
}
}
###结束/etc/grub.d/10_linux ###

### 开始 /etc/grub.d/20_linux_xen ###
### 结束 /etc/grub.d/20_linux_xen ###

### 开始 /etc/grub.d/20_memtest86+ ###
menuentry "内存测试 (memtest86+)" {
    insmod part_msdos
    insmod ext2
    设置 root='(/dev/sda,msdos1)'
    搜索 --no-floppy --fs-uuid --set=root 03e2a8da-171f-49e9-b24d-434e66cd1140
    linux16 /boot/memtest86+.bin
}
menuentry“内存测试(memtest86+,串行控制台115200)”{
    insmod part_msdos
    insmod ext2
    设置 root='(/dev/sda,msdos1)'
    搜索 --no-floppy --fs-uuid --set=root 03e2a8da-171f-49e9-b24d-434e66cd1140
    linux16 /boot/memtest86+.bin 控制台=ttyS0,115200n8
}
### 结束 /etc/grub.d/20_memtest86+ ###

### 开始 /etc/grub.d/30_os-prober ###
if [ "x${timeout}" != "x-1" ]; 然后
  如果密钥状态;然后
    如果 keystatus --shift; 然后
      设置超时=-1
    别的
      设置超时=0
    菲
  别的
    如果睡眠 --interruptible 3 ; 然后
      设置超时=0
    菲
  菲
菲
### END /etc/grub.d/30_os-prober ###

### 开始 /etc/grub.d/40_custom ###
# 该文件提供了一种添加自定义菜单条目的简单方法。只需键入
# 您要在此评论后添加的菜单条目。注意不要改变
# 上面的 'exec tail' 行。
###结束/etc/grub.d/40_custom ###

### 开始 /etc/grub.d/41_custom ###
如果 [ -f $prefix/custom.cfg ]; 然后
  源 $prefix/custom.cfg;
菲
###结束/etc/grub.d/41_custom ###
-------------------------------------------------- ------------------------------

============================== sda1/etc/fstab: ============== ====================

-------------------------------------------------- ------------------------------
# /etc/fstab:静态文件系统信息。
#
# 使用 'blkid -o value -s UUID' 打印通用唯一标识符
# 对于一个设备;这可以与 UUID= 一起使用,作为更健壮的命名方式
# 即使添加和删除磁盘也能工作的设备。请参见 fstab(5)。
#
#                
proc /proc proc nodev,noexec,nosuid 0 0
# / 在安装期间位于 /dev/sda1
# 被 Dropbox 注释掉
# UUID=03e2a8da-171f-49e9-b24d-434e66cd1140 / ext4 错误=remount-ro 0 1
# 安装期间交换位于 /dev/sda5
UUID=3e89ba8e-7754-4ee4-aca1-e2a82bffb7a7 无交换 sw 0 0
UUID=03e2a8da-171f-49e9-b24d-434e66cd1140 / ext4 错误=remount-ro,user_xattr 0 1
-------------------------------------------------- ------------------------------

================== sda1:Grub 加载文件的位置:====================

           GiB - GB 文件片段

   0.065803528 = 0.070656000 引导/grub/core.img 1
  21.263332367 = 22.831329280 引导/grub/grub.cfg 1
   0.771381378 = 0.828264448 引导/initrd.img-2.6.31-wl 1
   2.054199219 = 2.205679616 引导/initrd.img-2.6.32-21-generic 3
   2.893260956 = 3.106615296 引导/initrd.img-2.6.35-28-generic 2
   6.833232880 = 7.337127936 引导/initrd.img-2.6.38-8-generic 2
   1.772453308 = 1.903157248 引导/vmlinuz-2.6.32-21-generic 2
   2.068012238 = 2.220511232 引导/vmlinuz-2.6.35-28-generic 1
   5.532531738 = 5.940510720 引导/vmlinuz-2.6.38-8-generic 1
   6.833232880 = 7.337127936 initrd.img 2
   2.893260956 = 3.106615296 initrd.img.old 2
   5.532531738 = 5.940510720 vmlinuz 1
   2.068012238 = 2.220511232 vmlinuz.old 1

============================ sda3/grub/grub.conf: ============== ================

-------------------------------------------------- ------------------------------
# grub.conf 由 anaconda 生成
#
# 请注意,更改此文件后不必重新运行 grub
# 注意:您有一个 /boot 分区。这意味着
# 所有内核和 initrd 路径都相对于 /boot/,例如。
# 根 (hd0,2)
# kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda3
默认值=0
超时=0
飞溅图像=(hd0,2)/grub/splash.xpm.gz
隐藏菜单
标题 Fedora (2.6.35.6-45.fc14.i686)
    根 (hd0,2)
    内核/vmlinuz-2.6.35.6-45.fc14.i686 ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DMONT LANG8arsuncyFhere=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root =pc KEYTABLE=us rhgb 安静
    initrd /initramfs-2.6.35.6-45.fc14.i686.img
-------------------------------------------------- ------------------------------

================== sda3:Grub 加载文件的位置:====================

           GiB - GB 文件片段

  23.792903900 = 25.547436032 grub/grub.conf 1
  23.792903900 = 25.547436032 grub/menu.lst 1
  23.793020248 = 25.547560960 grub/stage2 1
  23.817364693 = 25.573700608 initramfs-2.6.35.6-45.fc14.i686.img 2
  23.787566185 = 25.541704704 initrd-plymouth.img 1
  23.791228294 = 25.545636864 vmlinuz-2.6.35.6-45.fc14.i686 1

======================== 未知 MBR/引导扇区/等:================== ======

sda2 上的未知引导加载程序

00000000 81 71 62 ff a1 94 89 ff 4d 43 3a ff fa f2 ec ff |.qb.....MC:.....|
00000010 fb f6 f1 ff fc f8 f4 ff fc f8 f4 ff fc f8 f4 ff |................|
00000020 5d 56 50 ff a1 94 89 ff 81 70 62 ff 81 70 62 ff |]VP......pb..pb.|
00000030 81 70 62 ff 81 70 62 ff 81 70 62 ff a1 94 89 ff |.pb..pb..pb....|
00000040 4d 43 3a ff fa f2 ec ff fb f6 f1 ff fc f8 f4 ff |MC:........|
00000050 fc f8 f4 ff fc f8 f4 ff 5d 56 50 ff a1 94 89 ff |........]VP.....|
00000060 81 70 62 ff 81 70 62 ff 81 70 62 ff 81 70 62 ff |.pb..pb..pb..pb.|
00000070 81 70 62 ff a1 94 89 ff 4d 43 3a ff fa f2 ec ff |.pb.....MC:.....|
00000080 fb f6 f1 ff fc f8 f4 ff fc f8 f4 ff fc f8 f4 ff |................|
00000090 5d 56 50 ff a0 93 89 ff 80 6f 61 ff 80 6f 61 ff |]VP......oa..oa.|
000000a0 80 6f 61 ff 80 6f 61 ff 80 6f 61 ff a0 93 89 ff |.oa..oa..oa.....|
000000b0 4d 43 3a ff fa f2 ed ff fb f6 f2 ff fc f8 f5 ff |MC:................|
000000c0 fc f8 f5 ff fc f8 f5 ff 5d 56 50 ff 9f 93 88 ff |........]VP.....|
000000d0 7f 6f 60 ff 7f 6f 60 ff 7f 6f 60 ff 7f 6f 60 ff |.o`..o`..o`..o`.|
000000e0 7f 6f 60 ff 9f 93 88 ff 4d 43 3a ff fa f2 ed ff |.o`.....MC:.....|
000000f0 fb f6 f2 ff fc f8 f5 ff fc f8 f5 ff fc f8 f5 ff |................|
00000100 5d 56 50 ff 9f 93 88 ff 7f 6f 60 ff 7f 6f 60 ff |]VP......o`..o`.|
00000110 7f 6f 60 ff 7f 6f 60 ff 7f 6f 60 ff 9f 93 88 ff |.o`..o`..o`.....|
00000120 4d 43 3a ff fa f2 ed ff fb f6 f2 ff fc f8 f5 ff |MC:................|
00000130 fc f8 f5 ff fc f8 f5 ff 5d 56 50 ff 9e 92 88 ff |........]VP.....|
00000140 7e 6e 60 ff 7e 6e 60 ff 7e 6e 60 ff 7e 6e 60 ff |~n`.~n`.~n`.~n`.|
00000150 7e 6e 60 ff 9e 92 88 ff 4d 43 3a ff fa f2 ed ff |~n`.....MC:..|
00000160 fb f6 f2 ff fc f8 f5 ff fc f8 f5 ff fc f8 f5 ff |................|
00000170 5d 56 50 ff 9e 92 88 ff 7d 6d 5f ff 7d 6d 5f ff |]VP.....}m_.}m_.|
00000180 7d 6d 5f ff 7d 6d 5f ff 7d 6d 5f ff 9e 92 88 ff |}m_.}m_.}m_.....|
00000190 4d 43 3a ff fa f2 ed ff fb f6 f2 ff fc f8 f5 ff |MC:................|
000001a0 fc f8 f5 ff fc f8 f5 ff 5d 56 50 ff 9e 92 88 ff |........]VP.....|
000001b0 7d 6d 5f ff 7d 6d 5f ff 7d 6d 5f ff 7d 6d 00 fe |}m_.}m_.}m_.}m..|
000001c0 ff ff 82 fe ff ff 02 00 00 00 00 50 32 00 00 00 |.........P2...|
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ||
*
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |................U.|
00000200


============================== 标准错误消息:================ ================

unlzma:解码器错误

根据这个 Fedora 14 在 sda3 中可见。有人知道如何将 Fedora 14 添加到 Ubuntu 的 grub.cfg 以便我可以选择要启动的操作系统吗?提前致谢。

Jam*_*dge 4

启动 Fedora 最简单的方法是在 grub.cfg 中添加一个条目,该条目会链接加载到 Fedora 的 Grub 副本。

/etc/grub.d/15_fedora创建一个包含以下内容的文件:

#!/bin/sh
cat << \EOF
menuentry "Fedora" {
    set root=(hd0,3)
    chainloader +1
}
EOF
Run Code Online (Sandbox Code Playgroud)

使文件可执行,然后重新生成 grub 配置文件:

sudo chmod a+x /etc/grub.d/15_fedora
sudo update-grub
Run Code Online (Sandbox Code Playgroud)

这应该确保重新生成 Grub 配置时菜单项保持不变。