免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: aeonsun
打印 上一主题 下一主题

grub引导xp问题,我郁闷了. [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-07-26 21:38 |只看该作者
title winxp
        rootnoverify (sd0,0)
        chainloader +1

论坛徽章:
0
12 [报告]
发表于 2006-07-28 06:39 |只看该作者
title Windows XP
        map (hd0) (hd1)
        map (hd1) (hd0)
        rootnoverify (hd1,0)
        chainloader +1

论坛徽章:
0
13 [报告]
发表于 2006-08-04 09:27 |只看该作者
原帖由 lchxr 于 2006-7-28 06:39 发表
title Windows XP
        map (hd0) (hd1)
        map (hd1) (hd0)
        rootnoverify (hd1,0)
        chainloader +1



使用此方法成功,但不明白其原理,可否讲解一下,谢谢。

同时,再次感谢楼上参与讨论的各位朋友。嘿嘿

[ 本帖最后由 aeonsun 于 2006-8-4 09:32 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2006-08-04 17:57 |只看该作者
Windows 可以和Linux共存同一台电脑上,如果只有一块硬盘,通过Grub引导Windows不成问题。(其实也有问题,那就是Windows和Linux的boot分区必须位于硬盘前1024柱面。这是由于BIOS为了和以前的版本兼容,这个限制在2000年以后生产的主机板不存在)

如果有多个硬盘,并且Windows和Linux安装在同一块硬盘的不同分区,引导也不成问题。

如果Windows和Linux安装在不同的硬盘上,如何启动Widnows取决于Grub装在哪块硬盘。

以两块硬盘为例,第一块硬盘安装Windows,第二块硬盘安装Linux.

1. 如果Grub和Windows在同一硬盘,修改/etc/grub.conf 或/etc/menu.lst
title Windows XP
   rootnoverify (hd0,0)
   chainloader +1

2. 如果Grub和Linux在同一硬盘,并且通过CMOS/BIOS设置为第一引导盘,那么Windows将自动作为第二引导盘。Windows的霸道就在于它只能从第一个引导盘启动,因此必须通过磁盘重映射骗过Windows,这个功能由map命令实现。
title Windows XP
   map (hd0) (hd1)
   map (hd1) (hd0)
   rootnoverify (hd1,0)
   chainloader +1
事实上,map功能是Grub调用BIOS实现的。如果BIOS不支持磁盘映射,此方法失效。(2000年以后生产的机器大部分BIOS支持磁盘映射)。

3. 假设有四块硬盘,第一块硬盘(hd0)安装Windows,第四块硬盘(hd3)安装Linux+Grub,则配置如下
title Windows XP
   map (hd0) (hd3)
   map (hd3) (hd0)
   rootnoverify (hd3,0)
   chainloader +1

希望以上解释能有所帮助。

以下内容摘自http://www.gnu.org/software/grub ... tml#DOS_002fWindows

4.2.6 DOS/Windows

GRUB cannot boot DOS or Windows directly, so you must chain-load them (see 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 (see map), like this:

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

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

Caution: This is effective only if DOS (or Windows) uses BIOS to access the swapped disks. If that OS uses a special driver for the disks, this probably won't work.

Another problem arises if you installed more than one set of DOS/Windows onto one disk, because they could be confused if there are more than one primary partitions for DOS/Windows. Certainly you should avoid doing this, but there is a solution if you do want to do so. Use the partition hiding/unhiding technique.

If GRUB hides a DOS (or Windows) partition (see hide), DOS (or Windows) will ignore the partition. If GRUB unhides a DOS (or Windows) partition (see unhide), DOS (or Windows) will detect the partition. Thus, if you have installed DOS (or Windows) on the first and the second partition of the first hard disk, and you want to boot the copy on the first partition, do the following:

     grub> unhide (hd0,0)
     grub> hide (hd0,1)
     grub> rootnoverify (hd0,0)
     grub> chainloader +1
     grub> makeactive
     grub> boot

[ 本帖最后由 lchxr 于 2006-8-4 20:18 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP