LinuxSir.cn,穿越时空的Linuxsir!

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

GRUB如何启动另一块硬盘上的XP

[复制链接]
发表于 2009-6-23 17:54:05 | 显示全部楼层 |阅读模式
我的电脑两块硬盘,两块都是SATA,WD 640G装了win 7和Fedora,ST 160G装了XP,平时640G的设为第一启动盘,但安装XP时是在Bios里把160G设为启动盘了,然后我想在GRUB里启动XP,加了如下代码
title Microsoft Windows XP
rootnoverify (hd1,0)
chainloader +1
但是启动到GRUB选择XP后黑屏,是不是因为我安装XP时把xp的盘设为主盘的缘故?有没有不重装XP启动的办法?
发表于 2009-6-23 18:02:24 | 显示全部楼层
如果是另一块硬盘的话,可以在 bios 里选择。──这个办法不是很好。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-23 18:09:22 | 显示全部楼层
Post by pingz;2000633
如果是另一块硬盘的话,可以在 bios 里选择。──这个办法不是很好。


这个都不用,开机按F12就能选择,不过还是会一不小心就过去了,最主要我想搞清楚为什么GRUB不能启动,我原来有个老机,一块ATA,一块SATA就可以启动另一块硬盘上的系统,不过那时候装系统的时候没有在BIOS中改来改去。
回复 支持 反对

使用道具 举报

发表于 2009-6-23 18:29:58 | 显示全部楼层
Post by simaqs;2000640
这个都不用,开机按F12就能选择,不过还是会一不小心就过去了,最主要我想搞清楚为什么GRUB不能启动,我原来有个老机,一块ATA,一块SATA就可以启动另一块硬盘上的系统,不过那时候装系统的时候没有在BIOS中改来改去。


那有GRUB不能启动另一块硬盘上系统的道理,我的suse跟XP就是安装在各自的一块硬盘上,启动时将光标移动到windows选项按下回车就进入XP了。
回复 支持 反对

使用道具 举报

发表于 2009-6-23 18:33:52 | 显示全部楼层
两块sata盘,hd0 F11,hd1 winxp
/boot/grub/menu.lst

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=30
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title Fedora (2.6.29.4-167.fc11.i686.PAE)
        root (hd0,0)
        kernel /vmlinuz-2.6.29.4-167.fc11.i686.PAE ro root=UUID=a89c9851-bf3e-4d1f-a7ca-4be1ffa0bae8 rhgb quiet
        initrd /initrd-2.6.29.4-167.fc11.i686.PAE.img
title Windows XP Professional
        map (hd0) (hd1)
        map (hd1) (hd0)
        rootnoverify (hd1,0)
        chainloader +1
makeactive
回复 支持 反对

使用道具 举报

发表于 2009-6-24 18:37:20 | 显示全部楼层
Post by huow005;2000647

        map (hd0) (hd1)
        map (hd1) (hd0)


为什么不直接root指定(hd1,0)而要用map来链文件系统呢?
回复 支持 反对

使用道具 举报

发表于 2009-6-24 18:40:22 | 显示全部楼层
title XP
        rootnoverify (hd1,0)
        makeactive
        chainloader +1
        boot

中不中 回个信哦

(hd*,*) 多试几次 (hd1,0)  (hd0,0)
回复 支持 反对

使用道具 举报

发表于 2009-6-24 21:01:50 | 显示全部楼层
Post by mexi;2000919
为什么不直接root指定(hd1,0)而要用map来链文件系统呢?


若干年前找了个 10G 盘装 fedora,两块 IDE,没法引导 win,在坛子上找了几个帖子试,只有这个成功了,以后就一直照抄。现在那个帖子我也找不见了,好象是北南南北解释用 map 命令。我不太清楚 IDE 到 SATA 是否有什么显著不同。这个帖子解释了 map 命令

http://www.linuxsir.cn/forum.php?mod=viewthread&tid=160163
$info grub
然后搜索map(/map),搜索2、3次得到下面的文字:

DOS/Windows
-----------

GRUB cannot boot DOS or Windows directly, so you must chain-load them (*note Chain-loading:. However, their boot loaders have some critical deficiencies, so it may not work to just chain-load them. To overcome the problems, GRUB provides you with two helper functions.

If you have installed DOS (or Windows) on a non-first hard disk, you have to use the disk swapping technique, because that OS cannot boot from any disks but the first one. The workaround used in GRUB is the command `map' (*note map:, like this:

grub> map (hd0) (hd1)
grub> map (hd1) (hd0)

This performs a "virtual" swap between your first and second hard drive.


IDE 可以这样做, SATA 应该没问题吧。

另外加一句,我安装时,只挂一块盘。安完一个系统后,摘下来,再挂另一块,装另一个系统。挂两个盘后,用 fedora 引导。平时用 fedora,xp 盘没挂,需要时才挂。
回复 支持 反对

使用道具 举报

发表于 2009-6-24 21:17:02 | 显示全部楼层
这里
http://www.linuxsir.cn/bbs/showthread.php?t=39034
的解释
map (hd0) (hd1) (注:map是命令,详细如下)
map (hd1) (hd0)
命令map:当你有两块硬盘,一个无法从第二块硬盘启动的操作系统,例如Windowsxp,就可以使用map命令.你能够将hd0映射为hd1,将hd1映射为hd0。换句话说,你可以虚拟的交换两个硬盘而启动所需要的操作系统 。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-24 23:23:57 | 显示全部楼层
Post by huow005;2000647
两块sata盘,hd0 F11,hd1 winxp
/boot/grub/menu.lst

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=30
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title Fedora (2.6.29.4-167.fc11.i686.PAE)
        root (hd0,0)
        kernel /vmlinuz-2.6.29.4-167.fc11.i686.PAE ro root=UUID=a89c9851-bf3e-4d1f-a7ca-4be1ffa0bae8 rhgb quiet
        initrd /initrd-2.6.29.4-167.fc11.i686.PAE.img
title Windows XP Professional
        map (hd0) (hd1)
        map (hd1) (hd0)
        rootnoverify (hd1,0)
        chainloader +1
makeactive


这个行,thanks!
回复 支持 反对

使用道具 举报

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

本版积分规则

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