无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
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个分区就无法启动了?
回复

使用道具 举报

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引导代码
其他的没啥
回复

使用道具 举报

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有什么驱动之类的冲突了
回复

使用道具 举报

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

使用道具 举报

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
不了解
回复

使用道具 举报

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驱动被其他软件加载了
回复

使用道具 举报

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
当然你可以换成你自己的命令


回复

使用道具 举报

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吗
回复

使用道具 举报

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分区表
回复

使用道具 举报

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, 2025-8-15 06:56

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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