LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1893|回复: 5

用GRUB4DOS启动fedora 10

[复制链接]
发表于 2008-11-30 02:10:11 | 显示全部楼层 |阅读模式
原创哟,可以申精的么?

先说说我机器的情况:
我的机器是Thinkpad X200,总体上F10对硬件的支持还是不错的,就是摄像头不能用,但也与此无关;硬盘160G,开始分了四个区:10G主/20主/20扩展/100主,的确是Vista太烂了,所以还是重新格掉;第一个主分区拿来做还原系统了,第二个分区拿来装了XP,因为Linux的分区一般会多一点,比较复杂,所以就把20G扩展分区留给fedora了,最后一个分区格成NTFS,方便交换资料。
因为我用惯了PE和WinPM,Windows的MBR修复起来又比GRUB要方便,所以我习惯使用OSLoader(ntldr)来装载grldr引导各种系统,比如PE,SLAX,GHOST(不要鄙视我:-);如此我更习惯于使用GRUB4DOS而不是直接把GRUB安装到MBR,因为这样可以使实现功能文件尽可能的集中到一个分区。GRUB4DOS版本是0.4.3。

在F10正式版发布之前,我下载过一个livecd版来安装,因为是在朋友的机器上,所以就没有把grub安装到mbr了,然后就考虑使用GRUB4DOS来启动,不过实际上GRUB4DOS虽然可以root这个分区,但是使用kernel命令的时候是找不到内核文件的,亦即根本是无法启动linux的,只好郁闷的用虚拟机玩了一下。

网速比较慢,直到昨天我才下好fedora的光盘镜像,考虑到如上文的原因,第一次安装我并没有把GRUB安装到MBR;因为之前用的不是正式版,所以我仍抱有一些侥幸心理,不过实际上GRUB4DOS仍然没能载入kernel,报错还是“错误的文件名”。不过一个细节引起我的注意,那就是对于ntfs格式分区的文件名,GRUB4DOS是可以自动补全文件名的,然而对于ext3分区却不能,所以我猜测GRUB4DOS并不能很好的支持ext3分区。
为了验证我的想法,我把kernel和initrd.img文件拷贝到第一个分区下并且修改了menu.lst文件,增加的内容如下。

title Fedora 10 ( test 1 )
kernel /vmlinuz-2.6.27.5-117.fc10.i686
initrd /initrd-2.6.27.5-117.fc10.i686.img
boot

实际上kernel被正常载入了,问题是没能够挂载系统分区,因为安装的时候出了一些小毛病,跟分区容量和UUID都发生改变了,所以找不到根分区了。
不过这也足够了,因为这意味着使用GRUB4DOS启动fedora是可行的。

我重新安装了一次fedora 10,为了以防万一,就把GRUB安装到了MBR。完成安装以后就用WinPM把MBR备份成fedora.mbr文件并且恢复成Windows的MBR。这次很顺利:即使没有把kernel和initrd.img文件放在Linux的分区里,启动也是可以完成。
不过我也想到了另外一种途径,这种方法会比上者更安全一些,那就是用用GRUB直接载入fedora.mbr。代码如下:

title Fedora 10 ( with MBR )
chainloader /fedora.mbr
boot

这样启动使用的内核文件是linux分区下内核文件,而前者是拷贝到出来的内核文件。
更有趣的是使用OSLoader也是可以装载fedora.mbr文件的,只需要在boot.ini文件中增加一行:

C:\fedora.mbr="Fedora 10"

额外的尝试:
对于GRUB,其所能支持的文件格式通常依赖于GRUB目录下的一批文件。因为用fedora安装好的GRUB可以正常载入,所以我就考虑给GRUB4DOS“升级”一下(笑):我把GRUB4DOS所产生的GRUB目录给删掉了,然后用fedora系统boot目录下的GRUB目录替代了它。不过实际上GRUB4DOS仍然没能认出linux分区下的内核文件,所以我就放弃了这个念头,不知道那位大大有解,洗耳恭听>_<。


此处附上部分已经确认有效的menu.lst文件( fedora根分区是hd0,4 ):

# 设置图形背景文件: set the background file
splashimage=/splash.xpm.gz

# 启动本地的Windows XP
title Windows XP
rootnoverify (hd0,1)
chainloader  +1

# 启动本地的Fedora 10
title Fedora 10 ( with MBR )
chainloader /fedora.mbr

title Fedora 10 ( with Kernel File )
kernel /vmlinuz-2.6.27.5-117.fc10.i686
initrd /initrd-2.6.27.5-117.fc10.i686.img
发表于 2008-11-30 10:15:35 | 显示全部楼层
"所以我猜测GRUB4DOS并不能很好的支持ext3分区"
但是在Fedora10以前的版本都可以用GRUB4DOS引导启动啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-30 11:59:44 | 显示全部楼层
Post by owen6169496;1916579
"所以我猜测GRUB4DOS并不能很好的支持ext3分区"
但是在Fedora10以前的版本都可以用GRUB4DOS引导启动啊


确实不能找到文件,而且执行root (hd0,4)的时候,返回的信息是ext2而不是ext3

不知道是不是和SATA2磁盘有关:我在安装XP的时候出现过这样奇怪的现象,用移动硬盘安装,分区格式化为FAT32的时候安装程序报错找不到有效分区,但是格式化成NTFS以后竟然又找到了。。。
看来我还得查查磁盘方面的资料~
回复 支持 反对

使用道具 举报

发表于 2008-12-7 01:00:36 | 显示全部楼层
grub4dos 最新版是0.4.4了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-7 19:31:33 | 显示全部楼层
经过个人实验已经确定:使用GRUB4DOS 0.4.4可以很好的识别我的Linux系统分区,并且系统已经成功启动,没有出现0.4.3中无法识别的问题。
在此感谢楼上朋友提醒。
方便需要的朋友下载,这里就直接把官方的发布地址贴出来好了:
http://download.gna.org/grub4dos/
回复 支持 反对

使用道具 举报

发表于 2008-12-8 00:02:29 | 显示全部楼层
X200...

Post by mexi;1916525
原创哟,可以申精的么?

先说说我机器的情况:
我的机器是Thinkpad X200,总体上F10对硬件的支持还是不错的,就是摄像头不能用,但也与此无关;硬盘160G,开始分了四个区:10G主/20主/20扩展/100主,的确是Vista太烂了,所以还是重新格掉;第一个主分区拿来做还原系统了,第二个分区拿来装了XP,因为Linux的分区一般会多一点,比较复杂,所以就把20G扩展分区留给fedora了,最后一个分区格成NTFS,方便交换资料。
因为我用惯了PE和WinPM,Windows的MBR修复起来又比GRUB要方便,所以我习惯使用OSLoader(ntldr)来装载grldr引导各种系统,比如PE,SLAX,GHOST(不要鄙视我:-);如此我更习惯于使用GRUB4DOS而不是直接把GRUB安装到MBR,因为这样可以使实现功能文件尽可能的集中到一个分区。GRUB4DOS版本是0.4.3。

在F10正式版发布之前,我下载过一个livecd版来安装,因为是在朋友的机器上,所以就没有把grub安装到mbr了,然后就考虑使用GRUB4DOS来启动,不过实际上GRUB4DOS虽然可以root这个分区,但是使用kernel命令的时候是找不到内核文件的,亦即根本是无法启动linux的,只好郁闷的用虚拟机玩了一下。

网速比较慢,直到昨天我才下好fedora的光盘镜像,考虑到如上文的原因,第一次安装我并没有把GRUB安装到MBR;因为之前用的不是正式版,所以我仍抱有一些侥幸心理,不过实际上GRUB4DOS仍然没能载入kernel,报错还是“错误的文件名”。不过一个细节引起我的注意,那就是对于ntfs格式分区的文件名,GRUB4DOS是可以自动补全文件名的,然而对于ext3分区却不能,所以我猜测GRUB4DOS并不能很好的支持ext3分区。
为了验证我的想法,我把kernel和initrd.img文件拷贝到第一个分区下并且修改了menu.lst文件,增加的内容如下。

title Fedora 10 ( test 1 )
kernel /vmlinuz-2.6.27.5-117.fc10.i686
initrd /initrd-2.6.27.5-117.fc10.i686.img
boot

实际上kernel被正常载入了,问题是没能够挂载系统分区,因为安装的时候出了一些小毛病,跟分区容量和UUID都发生改变了,所以找不到根分区了。
不过这也足够了,因为这意味着使用GRUB4DOS启动fedora是可行的。

我重新安装了一次fedora 10,为了以防万一,就把GRUB安装到了MBR。完成安装以后就用WinPM把MBR备份成fedora.mbr文件并且恢复成Windows的MBR。这次很顺利:即使没有把kernel和initrd.img文件放在Linux的分区里,启动也是可以完成。
不过我也想到了另外一种途径,这种方法会比上者更安全一些,那就是用用GRUB直接载入fedora.mbr。代码如下:

title Fedora 10 ( with MBR )
chainloader /fedora.mbr
boot

这样启动使用的内核文件是linux分区下内核文件,而前者是拷贝到出来的内核文件。
更有趣的是使用OSLoader也是可以装载fedora.mbr文件的,只需要在boot.ini文件中增加一行:

C:\fedora.mbr="Fedora 10"

额外的尝试:
对于GRUB,其所能支持的文件格式通常依赖于GRUB目录下的一批文件。因为用fedora安装好的GRUB可以正常载入,所以我就考虑给GRUB4DOS“升级”一下(笑):我把GRUB4DOS所产生的GRUB目录给删掉了,然后用fedora系统boot目录下的GRUB目录替代了它。不过实际上GRUB4DOS仍然没能认出linux分区下的内核文件,所以我就放弃了这个念头,不知道那位大大有解,洗耳恭听>_<。


此处附上部分已经确认有效的menu.lst文件( fedora根分区是hd0,4 ):

# 设置图形背景文件: set the background file
splashimage=/splash.xpm.gz

# 启动本地的Windows XP
title Windows XP
rootnoverify (hd0,1)
chainloader  +1

# 启动本地的Fedora 10
title Fedora 10 ( with MBR )
chainloader /fedora.mbr

title Fedora 10 ( with Kernel File )
kernel /vmlinuz-2.6.27.5-117.fc10.i686
initrd /initrd-2.6.27.5-117.fc10.i686.img
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表