无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
12
返回列表 发新帖
楼主: qq517abcdefg
打印 上一主题 下一主题

[求助] 请问BIOS下如何引导GPT分区中的XP?

    [复制链接]
31#
发表于 2014-8-10 17:06:46 | 只看该作者
510819776 发表于 2014-8-2 21:56
呵呵 不需要用优盘转换
用xorboot给gpt的硬盘做引导
至于xp系统你必须拷贝一个装好的xp  disk.sys必须用2 ...

诚心请教您两个问题,还希望您能悉心指点,谢谢!

1.我将启动安装到gpt分区的winxp系统的4个启动文件做成软盘映像ima包,存放

在gpt分区硬盘的esp分区中,用xorboot_0.71按搜索文件启动ima文件的方式,希

望启动gpt分区中的winxp,启动时提示“ntldr is missing",但其实ima文件中

存在ntldr文件,结果我是采取搜索启动esp分区根目录下的ntldr启动安装在gpt

分区中的winxp的。请问你是如何做到xotboot启动ima文件以启动安装到gpt分区

中的winxp的。

2.从该帖子可看出,你已成功在gpt分区中安装并启动了win7的32位系统,于是我

将在本机另一硬盘(mbr分区方式)分区上安装的win7_x32系统克隆到gpt分区中,

并进行了注册表盘符清理,同时将bootmgr等启动文件做成ima包,存放在esp分区

中,用xotboot搜索启动时,出现“bootmgr is missing"的提示,于是就将

bootmgr等文件放在esp分区中,还用bootice编辑了bcd文件(从256KB减少到几十

kb),按搜索bootmgr启动的方式,启动时提示BCD文件出错。我以前都用bootice

编辑bcd的未出现过问题,看到有网友说bootice编辑后不能启动。你是如何以bios方式启动安装到gpt分区中的win7_x32的。

  

点评

1.从你的描述来看 你做的img是有问题的 xp的系统 我就是xorboot搜索ntldr启动的 没做启动盘 因为这样挺好 win7的系统 直接搜索bootmgr启动 会失败 提示bcd无法读取 所以win7必须要做启动盘来对待 当然有大神也想  详情 回复 发表于 2014-8-11 11:47
回复

使用道具 举报

32#
 楼主| 发表于 2014-8-10 18:43:14 | 只看该作者
510819776 发表于 2014-8-5 22:16
呵呵 grub2的安装需要有点技巧的
貌似需要一个 bios-boot分区才是啊
我是直接做了一个16M的grub2虚拟引 ...


用grub2还有一个奇怪的问题,就是黑屏。
如果直接用update-grub自动安装,会生成背景是暗红色的目录。
从这里启动还没部署的GHOSTXP,虽然能看见XP的logo,但是滚动条滚几圈后,本该出现部署界面的,到这里却黑屏了,颜色和前面的目录一样是暗红色的。(这时看硬盘灯也在闪亮,也许可以自动完成部署,但我没等到最后)
然后我把grub.cfg里面关于video、gfx的代码注释掉,就没这个问题了。

另外你说的前三个分区是不是指一般可见的分区?比如我现在装在E盘,是第6个分区,是不是放在第8个分区就无法启动了?

点评

我的grub2是一个16M的vhd文件 用xorboot查找该grub2.vhd 就可以启动了 界面很美 有图片背景 这个grub2 是 pcbsd 10发行版自带的 你的情况 黑屏应该是grub2的图形模块和你显卡冲突 另外我说的分区就是指分区 实实  详情 回复 发表于 2014-8-11 11:39
回复

使用道具 举报

33#
发表于 2014-8-11 11:39:50 | 只看该作者
2011qq517025464 发表于 2014-8-10 18:43
用grub2还有一个奇怪的问题,就是黑屏。
如果直接用update-grub自动安装,会生成背景是暗红色的目录。 ...

我的grub2是一个16M的vhd文件
用xorboot查找该grub2.vhd 就可以启动了 界面很美 有图片背景
这个grub2 是 pcbsd 10发行版自带的
你的情况 黑屏应该是grub2的图形模块和你显卡冲突
另外我说的分区就是指分区 实实在在的分区
包括efi msr等特殊分区
用diskgen 看 一个个数
我测试 是vboot的菜单用(hd0,****)无法启动 但是如果用uuid 估计是没问题的
回复

使用道具 举报

34#
发表于 2014-8-11 11:47:26 | 只看该作者
qj_tzy 发表于 2014-8-10 17:06
诚心请教您两个问题,还希望您能悉心指点,谢谢!

1.我将启动安装到gpt分区的winxp系统的4个启动文件 ...

1.从你的描述来看 你做的img是有问题的
xp的系统 我就是xorboot搜索ntldr启动的 没做启动盘 因为这样挺好
win7的系统 直接搜索bootmgr启动 会失败 提示bcd无法读取
所以win7必须要做启动盘来对待 当然有大神也想到了 分区克隆的方法来使得win7不需要img启动 但是复杂了点
做镜像 其实很简单的
1.硬盘镜像 比如vhd的镜像 用diskgen建立 分配所有空间
然后分区的时候从2048扇区开始
2.用bootice处理虚拟硬盘的mbr为wee 查找zuldr启动(zuldr为软激活引导)
设置pbr为bootmgr引导代码
其他的没啥

点评

用ima包启动的问题已基本解决,但用其启动安装在gpt分区的win7_x32系统,出现启动画面后7B蓝屏,但用其启动该gpt分区的win7_x32系统制作的vhd系统时,卡在了4朵花处。不知为何,还没找到原因。  详情 回复 发表于 2014-8-12 20:44
谢谢指点,我作好ima文件存放在esp分区,用xorboot 启动存放esp分区中的grldr,以启动ima文件,但 xorboot 启动grldr时,总是提示“超出范围”(out of range),不知如何处理。  详情 回复 发表于 2014-8-11 22:57
回复

使用道具 举报

35#
发表于 2014-8-11 22:57:24 | 只看该作者
510819776 发表于 2014-8-11 11:47
1.从你的描述来看 你做的img是有问题的
xp的系统 我就是xorboot搜索ntldr启动的 没做启动盘 因为这样挺 ...

谢谢指点,我作好ima文件存放在esp分区,用xorboot 启动存放esp分区中的grldr,以启动ima文件,但 xorboot 启动grldr时,总是提示“超出范围”(out of range),不知如何处理。
回复

使用道具 举报

36#
发表于 2014-8-12 20:44:35 | 只看该作者
510819776 发表于 2014-8-11 11:47
1.从你的描述来看 你做的img是有问题的
xp的系统 我就是xorboot搜索ntldr启动的 没做启动盘 因为这样挺 ...

用ima包启动的问题已基本解决,但用其启动安装在gpt分区的win7_x32系统,出现启动画面后7B蓝屏,但用其启动该gpt分区的win7_x32系统制作的vhd系统时,卡在了4朵花处。不知为何,还没找到原因。

点评

应该是你的win7有什么驱动之类的冲突了  详情 回复 发表于 2014-8-12 23:52
回复

使用道具 举报

37#
发表于 2014-8-12 23:52:42 | 只看该作者
qj_tzy 发表于 2014-8-12 20:44
用ima包启动的问题已基本解决,但用其启动安装在gpt分区的win7_x32系统,出现启动画面后7B蓝屏,但用其启 ...

应该是你的win7有什么驱动之类的冲突了

点评

在您的指点下,目前,已能正常启动安装在gpt分区中的win7_x32系统了,但还有以下问题未得到解决: 1.如何用grub4dos判断是gpt分区硬盘还是mbr分区硬盘,以根据判断结果采取不同的后续操作。 2.如何用grub4dos  详情 回复 发表于 2014-8-14 08:56
回复

使用道具 举报

38#
发表于 2014-8-13 16:34:55 | 只看该作者
问一句, ntldr可以直接识别gpt分区吗? 总感觉不甚科学
如果不识别, 那efi分区里的ntldr怎么跑起来的

点评

以xorboot+esp分区中的ntldr即可启动安装在gpt分区中的winxp。  详情 回复 发表于 2014-8-14 08:58
回复

使用道具 举报

39#
发表于 2014-8-14 08:56:11 | 只看该作者
510819776 发表于 2014-8-12 23:52
应该是你的win7有什么驱动之类的冲突了

在您的指点下,目前,已能正常启动安装在gpt分区中的win7_x32系统了,但还有以下问题未得到解决:

1.如何用grub4dos判断是gpt分区硬盘还是mbr分区硬盘,以根据判断结果采取不同的后续操作。

2.如何用grub4dos隐藏及显现gpt分区,以在启动某一gpt分区操作系统前先显现该分区,并隐藏其余gpt分区操作系统所在分区。

3.因用grub4dos+ntboot按ntboot nt6=(hdx,y)/vhdos/win7.vhd或win8.vhdx方式,不能启动存放在gpt分区中的win7/win8原生VHD系统,会提示读取BCD出错。于是制作了boot_winnt6.ima包,在已知(hdx,y)/vhdos/win7.vhd或win8.vhdx的盘符(hdx,y)、所在目录/vhdos/、VHD文件名win7.vhd或win8.vhdx的情况下,用bootice生成的一个启动固定盘符、固定目录、固定VHD文件的BCD,手工替换了boot_winnt6.ima包内boot目录下的BCD,用grub4dos启动boot_winnt6.ima,就启动了存放在gpt分区中的vhd系统。但此法不具有灵活性。对任一(hdx,y)/vhdos/win7.vhd或win8.vhdx,须用grub4dos生成相应的bcd,在将boot_winnt6.ima包装入内存后,替换其boot目录下的BCD即可。但我不知如何进行,因我真的没读懂ntboot中是如何实现这一点的,若哪位网友能帮我写出一段这样的GRUB4DOS代码就好了。若如此,非常感谢!

点评

首先 gpt分区弄win7 32位的基本都是少数 维护和mbr方式相比很难 安装系统也是大难题 所以这个研究其实没啥意义 自己用用就好了 不适合普及的 你说的 1 2 自己去看grub4dos的文库 我不需要隐藏 不过记得以前  详情 回复 发表于 2014-8-14 09:29
回复

使用道具 举报

40#
发表于 2014-8-14 08:58:30 | 只看该作者
本帖最后由 qj_tzy 于 2014-8-14 08:59 编辑
2013gdh 发表于 2014-8-13 16:34
问一句, ntldr可以直接识别gpt分区吗? 总感觉不甚科学
如果不识别, 那efi分区里的ntldr怎么跑起来的


以xorboot+esp分区中的ntldr即可启动安装在gpt分区中的winxp。当然在启动之前,要替换disk.sys。

点评

ntldr不能在16位模式下直接识别gpt分区 但是识别gpt分区的事情 xorboot已经完成了 所以ntldr启动不过是借用了xorboot内置的gpt驱动而已 同样的道理 grldr grub2 能引导微软的32位系统 都是因为gpt驱动被其他软  详情 回复 发表于 2014-8-14 09:32
回复

使用道具 举报

41#
发表于 2014-8-14 09:29:36 | 只看该作者
qj_tzy 发表于 2014-8-14 08:56
在您的指点下,目前,已能正常启动安装在gpt分区中的win7_x32系统了,但还有以下问题未得到解决:

1. ...

首先 gpt分区弄win7 32位的基本都是少数
维护和mbr方式相比很难
安装系统也是大难题
所以这个研究其实没啥意义
自己用用就好了  不适合普及的
你说的 1  2 自己去看grub4dos的文库
我不需要隐藏 不过记得以前的g4d 是 hide命令隐藏分区 不知道适合gpt不
至于如何判断是gpt分区   可以通过判断efi分区是否存在决定
第三个问题 我不用ntboot
不了解

点评

谢谢指点! 1.我已测试,g4d的hide命令隐藏分区对gpt分区无效。 2.如何判断是gpt分区的问题,若在mbr的分区硬盘建立一个fat分区,并拷入efi的相关文件,所以我想用判断efi分区是否存在这个方法来判断是否是gpt分  详情 回复 发表于 2014-8-14 11:34
回复

使用道具 举报

42#
发表于 2014-8-14 09:32:07 | 只看该作者
qj_tzy 发表于 2014-8-14 08:58
以xorboot+esp分区中的ntldr即可启动安装在gpt分区中的winxp。当然在启动之前,要替换disk.sys。

ntldr不能在16位模式下直接识别gpt分区
但是识别gpt分区的事情 xorboot已经完成了
所以ntldr启动不过是借用了xorboot内置的gpt驱动而已
同样的道理 grldr grub2 能引导微软的32位系统
都是因为gpt驱动被其他软件加载了

点评

谢谢. 请问这个"驱动"是指接管了int 13h吗  详情 回复 发表于 2014-8-14 22:43
回复

使用道具 举报

43#
发表于 2014-8-14 11:34:08 | 只看该作者
510819776 发表于 2014-8-14 09:29
首先 gpt分区弄win7 32位的基本都是少数
维护和mbr方式相比很难
安装系统也是大难题

谢谢指点!

1.我已测试,g4d的hide命令隐藏分区对gpt分区无效。
2.如何判断是gpt分区的问题,若在mbr的分区硬盘建立一个fat分区,并拷入efi的相关文件,所以我想用判断efi分区是否存在这个方法来判断是否是gpt分区硬盘,可能不准确。

点评

用g4d判读磁盘是gpt分区表很简单 dd if=(hd0)+1 skip=450 bs=1 count=1 of=(md)400+1 checkrange 0xee read 0x32000 && echo gpt 原理是gpt硬盘的分区表保留的mbr里面第一个主分区分区id是0xee 代码的意思是  详情 回复 发表于 2014-8-14 15:52
回复

使用道具 举报

44#
发表于 2014-8-14 15:52:47 | 只看该作者
qj_tzy 发表于 2014-8-14 11:34
谢谢指点!

1.我已测试,g4d的hide命令隐藏分区对gpt分区无效。

用g4d判读磁盘是gpt分区表很简单
dd if=(hd0)+1 skip=450 bs=1 count=1 of=(md)400+1  
checkrange 0xee read 0x32000 && echo gpt
原理是gpt硬盘的分区表保留的mbr里面第一个主分区分区id是0xee
代码的意思是
判断硬盘0扇区偏移450字节是否为0xEE  如果是就执行echo gpt
当然你可以换成你自己的命令


点评

若gpt分区硬盘的0扇区写入了xorboot的主启动代码,是否还可这样判断,是否要采取其他判断方法了  详情 回复 发表于 2014-8-14 22:29
回复

使用道具 举报

45#
发表于 2014-8-14 22:29:52 | 只看该作者
510819776 发表于 2014-8-14 15:52
用g4d判读磁盘是gpt分区表很简单
dd if=(hd0)+1 skip=450 bs=1 count=1 of=(md)400+1  
checkrange 0xe ...

若gpt分区硬盘的0扇区写入了xorboot的主启动代码,是否还可这样判断,是否要采取其他判断方法了

点评

已经说的很明白了 xorboot只是负责启动而已 不会修改mbr或者gpt的分区表 如果分区表都修改了 那就不是引导工具 而是分区工具了 gpt的头一个扇区保留mbr结构是 只有windows系统才会优先解读 0xee 是必须的 如  详情 回复 发表于 2014-8-15 14:23
回复

使用道具 举报

46#
发表于 2014-8-14 22:43:06 | 只看该作者
510819776 发表于 2014-8-14 09:32
ntldr不能在16位模式下直接识别gpt分区
但是识别gpt分区的事情 xorboot已经完成了
所以ntldr启动不过是 ...

谢谢. 请问这个"驱动"是指接管了int 13h吗

点评

xorboot的引导包含了gpt的识别代码 这样就不需要ntldr来识别了  详情 回复 发表于 2014-8-15 14:24
回复

使用道具 举报

47#
发表于 2014-8-15 14:23:54 | 只看该作者
qj_tzy 发表于 2014-8-14 22:29
若gpt分区硬盘的0扇区写入了xorboot的主启动代码,是否还可这样判断,是否要采取其他判断方法了

已经说的很明白了
xorboot只是负责启动而已
不会修改mbr或者gpt的分区表
如果分区表都修改了  那就不是引导工具 而是分区工具了
gpt的头一个扇区保留mbr结构是 只有windows系统才会优先解读
0xee 是必须的
如果你分区表没有0xee 就一定不是标准的gpt分区表

点评

好的,非常感谢!  详情 回复 发表于 2014-8-15 14:32
回复

使用道具 举报

48#
发表于 2014-8-15 14:24:38 | 只看该作者
2013gdh 发表于 2014-8-14 22:43
谢谢. 请问这个"驱动"是指接管了int 13h吗

xorboot的引导包含了gpt的识别代码
这样就不需要ntldr来识别了
回复

使用道具 举报

49#
发表于 2014-8-15 14:32:59 | 只看该作者
510819776 发表于 2014-8-15 14:23
已经说的很明白了
xorboot只是负责启动而已
不会修改mbr或者gpt的分区表

好的,非常感谢!
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-22 11:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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