无忧启动论坛

标题: 请问BIOS下如何引导GPT分区中的XP? [打印本页]

作者: qq517abcdefg    时间: 2014-8-2 16:07
标题: 请问BIOS下如何引导GPT分区中的XP?
本帖最后由 2011qq517025464 于 2014-8-4 12:36 编辑

disk.sys已替换成2003的。硬盘是1TB的。
看见有坛友说用U盘的grldr,我尝试了一下,总是不成功,虽然能看见ntldr的菜单,但是回车后提示ntoskrnl.exe损坏或丢失,无法启动;在boot.ini中加了/kernel等选项为破解64G内存的内核,仍然提示ntoskrnl.exe损坏或丢失(明明不是这个文件名)

更新:用GHOST XP调整一下可以启动,请看12楼
作者: 2012wuzhong    时间: 2014-8-2 17:06
按照分区号多几个选项,如
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
......
multi(0)disk(0)rdisk(0)partition(8)\WINDOWS
然后一一实验。
作者: 2013gdh    时间: 2014-8-2 17:48
我一般直接把gpt转mbr, 需要的话再转回来呗.
或者把那个分区的信息手动填到mbr的分区表里, 就该可以了
作者: 510819776    时间: 2014-8-2 21:56
呵呵 不需要用优盘转换
用xorboot给gpt的硬盘做引导
至于xp系统你必须拷贝一个装好的xp  disk.sys必须用2003的
xorboot写入引导后 可以引导ntldr 或者grldr或者 虚拟磁盘文件
这种方法 可以启动xp win7 32位系统
我已经用了很久了
xp gpt单硬盘启动  我发贴了的
注意 xp系统必须是装好的才可以 知道么??
你可以在虚拟机中装好xp系统 安装好vboot驱动
然后用vboot引导那个xp
最后装好主机驱动就ok了
作者: qj_tzy    时间: 2014-8-3 10:27
本帖最后由 qj_tzy 于 2014-8-3 10:35 编辑
510819776 发表于 2014-8-2 21:56
呵呵 不需要用优盘转换
用xorboot给gpt的硬盘做引导
至于xp系统你必须拷贝一个装好的xp  disk.sys必须用2 ...


诚心请教:

我有两个硬盘,一个为mbr分区、一个为gpt分区,我把gpt分区硬盘接sata-1接口、把mbr分区硬盘接为sata-2接口,或者只连接gpt分区硬盘,以BIOS方式用U盘启动进入winpe,能访问gpt分区硬盘各分区的信息,但用xotboot_0.73制作启动时,按其“磁盘号与分区号”后的“参考”处,根本不出现gpt分区硬盘的信息,诚心请教一下,你是如何做到的,谢谢!
作者: qq517abcdefg    时间: 2014-8-3 13:55
510819776 发表于 2014-8-2 21:56
呵呵 不需要用优盘转换
用xorboot给gpt的硬盘做引导
至于xp系统你必须拷贝一个装好的xp  disk.sys必须用2 ...

我试过xorboot,部署不上去。
作者: wylgogogo    时间: 2014-8-3 13:59
   楼主搞定了吗,搞定了分享下方法。
作者: 510819776    时间: 2014-8-3 22:45
2011qq517025464 发表于 2014-8-3 13:55
我试过xorboot,部署不上去。

xorboot部署不上去
是你自己的操作问题
部署的时候选择部署到磁盘指定扇区
你是按照默认部署到mbr  对于gpt分区表来说失败可以理解
还有xorboot新建引导菜单
使用查找ntldr并启动就好了 不需要确定什么分区号
另外 你的gpt必须有一个fat分区用来放ntldr grldr 等启动文件
xorboot对ntfs支持不好
作者: 510819776    时间: 2014-8-3 22:50
qj_tzy 发表于 2014-8-3 10:27
诚心请教:

我有两个硬盘,一个为mbr分区、一个为gpt分区,我把gpt分区硬盘接sata-1接口、把mbr分区 ...

xorboot直接把启动引导代码部署到硬盘的 分区间隙里面
启动菜单
采用 搜索文件并启动的方式 比如搜索ntldr grldr pe.iso grub.vhd等等
不需要折腾什么磁盘号 分区号之类
另外 要搜索的文件请放入 gpt硬盘的efi分区里面
不要放入ntfs分区里面  支持有问题
多看看xorboot说明书吧

作者: qq517abcdefg    时间: 2014-8-3 23:31
510819776 发表于 2014-8-3 22:45
xorboot部署不上去
是你自己的操作问题
部署的时候选择部署到磁盘指定扇区

这样也试过了,boot error
作者: qj_tzy    时间: 2014-8-4 08:30
510819776 发表于 2014-8-3 22:50
xorboot直接把启动引导代码部署到硬盘的 分区间隙里面
启动菜单
采用 搜索文件并启动的方式 比如搜索n ...

谢谢指点,晚上回家试试,不清楚时再请教。
作者: qq517abcdefg    时间: 2014-8-4 12:19
本帖最后由 2011qq517025464 于 2014-8-4 12:38 编辑

又尝试了一下,xorboot还是启动不了。
不过用grub2启动成功了,可惜还需要输入命令,希望有导出.mbr文件之类简单的办法
操作过程:
1.还原GHOST版XP到E盘后,替换disk.sys来支持GPT,再用osletter7.cmd /targetletter:c /currentos:e指定盘符为C
备注:我还原到可见的第三个分区,其实前面还有3个分区,故E盘分区编号是6,磁盘管理器里居然不显示保留分区,只有diskpart能全部显示,导致我少数了一个,ghost自动填的分区号居然是4,又少了一个,感谢楼上提醒,这样与grub2中的(hd0,gpt6)就吻合了。
还有一个问题,部署时会自己还原disk.sys,导致0x0000007b蓝屏,我又替换回去,再替换sp3.cab中的文件就正常了。
另外就是盘符还无法理顺,只好妥协一下来完成部署。MBR下我的深度XP无论还原到哪个盘都会自动指定盘符为C,而且可以正常完成部署。但GPT下就不会这样,系统盘符还是E,导致部署无法正常完成。我尝试过替换注册表中的路径,也许没替换好,还是无法解决这个问题。最后才用osletter7.cmd绕过这个问题。
2.再用ubuntu启动盘装一个grub2,重启就可以进入grub2中,输入如下命令即可启动XP,完成部署,也可以正常启动
set root=(hd0,gpt6)
chainloader +1
boot
备注:我安装过ubuntu 14.04,结果到安装引导器那里报错,说什么failed to get canonical path of /cow,重启后发现引导器没装进去,然后又用ubuntu启动盘挂载ubuntu分区boot目录到/boot,再执行grub-install,这回装进去了,但是没显示菜单,只有命令行,反正MBR里的grub2也不方便用,改天用论坛里的grub2试试看。
作者: 510819776    时间: 2014-8-4 15:26
2011qq517025464 发表于 2014-8-3 23:31
这样也试过了,boot error

boot error
应该是你用的版本没有写入完整的引导代码

作者: qj_tzy    时间: 2014-8-4 21:06
510819776 发表于 2014-8-4 15:26
boot error
应该是你用的版本没有写入完整的引导代码

我用xorboot部署到gpt分区硬盘的指定扇区,指定首扇区为0,辅助扇区为1,并勾选了首扇区为分区的引导扇区区(pbr),重启出现boot error,再用MBR分区硬盘启动,发现gpt分区硬盘由多个分区变为了一个分区,且磁盘类型变为了raw。
作者: 510819776    时间: 2014-8-4 23:38
qj_tzy 发表于 2014-8-4 21:06
我用xorboot部署到gpt分区硬盘的指定扇区,指定首扇区为0,辅助扇区为1,并勾选了首扇区为分区的引导扇区 ...

典型的错误设置
你不懂就百度一下呀
辅助扇区  怎么可以放到gpt分区的硬盘的1扇区??
辅助扇区要放到 gpt分区的分区间隙
换句话说 就是放到 没有分区 也没有数据的地方
gpt分区表的 1扇区  2扇区等都保存有分区信息
你这样做自然会失败 你等于毁了分区信息
作者: qj_tzy    时间: 2014-8-5 00:29
510819776 发表于 2014-8-4 23:38
典型的错误设置
你不懂就百度一下呀
辅助扇区  怎么可以放到gpt分区的硬盘的1扇区??


我用xorboot_.73未成功,用0.68写入gpt分区磁盘,辅助代码存放在分区间隙上,以bios方式启动出现xotboot的菜单,但提示找不到文件,此文件存放在gpt分区磁盘的第一分区为FAT32分区,不知为何?

我原对gpt分区未作研究,不知gpt分区的分区信息存放在 1扇区、 2扇区等起始扇区,感谢指点。

作者: 510819776    时间: 2014-8-5 14:25
qj_tzy 发表于 2014-8-5 00:29
我用xorboot_.73未成功,用0.68写入gpt分区磁盘,辅助代码存放在分区间隙上,以bios方式启动出现xotboo ...

不要用老版本 0.68版本太老了
我用的是 0.71正式版
效果非常好
另外我的引导文件都是放在efi分区的

作者: qj_tzy    时间: 2014-8-5 15:50
510819776 发表于 2014-8-5 14:25
不要用老版本 0.68版本太老了
我用的是 0.71正式版
效果非常好

感谢指点,我现在手里没有xorboot_0.71正式版,本论坛又无该版本下载,想请你将该版本上传一下,谢谢!
作者: 510819776    时间: 2014-8-5 22:14
qj_tzy 发表于 2014-8-5 15:50
感谢指点,我现在手里没有xorboot_0.71正式版,本论坛又无该版本下载,想请你将该版本上传一下,谢谢!

xorboot.7z (113.47 KB, 下载次数: 115)
这是我用的版本
祝你成功
作者: 510819776    时间: 2014-8-5 22:16
2011qq517025464 发表于 2014-8-4 12:19
又尝试了一下,xorboot还是启动不了。
不过用grub2启动成功了,可惜还需要输入命令,希望有导出.mbr文件之 ...

呵呵 grub2的安装需要有点技巧的
貌似需要一个 bios-boot分区才是啊
我是直接做了一个16M的grub2虚拟引导硬盘
全部都用xorboot引导启动
作者: qj_tzy    时间: 2014-8-6 13:25
本帖最后由 qj_tzy 于 2014-8-6 13:26 编辑
510819776 发表于 2014-8-5 22:14
这是我用的版本
祝你成功


谢谢!

已下载安装了xorboot启动代码,通过搜索GPT分区的esp分区中的ntldr,启动安装在gpt分区硬盘第7个分区中的winxp系统,boot.ini的内容如下,已将win2003系统\windows\system32\drivers\下的disk.sys、diskdump.sys文件拷入winxp系统的相同位置覆盖了,system32\dllcache\下无disk.sys文件,windows\Driver Cache\下面已清空,但启动winxp后,过了滚动条,出现了带windows xp字样及徽标的蓝色屏幕,但始终未出现欢迎字样,所以未进入到桌面,不知为何。

[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(7)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(7)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /detecthal

作者: 510819776    时间: 2014-8-6 18:53
qj_tzy 发表于 2014-8-6 13:25
谢谢!

已下载安装了xorboot启动代码,通过搜索GPT分区的esp分区中的ntldr,启动安装在gpt分区硬盘 ...

不要把脑残xp系统的文件放到第五个以及第五个以上的分区里面
你把xp放到头四个主分区里面不行么?
同时启动之前 把注册表盘符信息清理下

作者: Duyes    时间: 2014-8-6 23:30
xp不行吧
作者: qj_tzy    时间: 2014-8-7 12:24
510819776 发表于 2014-8-6 18:53
不要把脑残xp系统的文件放到第五个以及第五个以上的分区里面
你把xp放到头四个主分区里面不行么?
同时 ...

在你的提示下,我进入注册表把盘符整理后,用xorboot搜索存放在esp分区中的ntldr、boot.ini等文件,成功启动存放在gpt分区硬盘第7分区(最后一个分区)的winxp系统。启动后,系统盘符为C:,也能访问其他gpt分区的的文件。

非常感谢,空时,再研究一下winxp的vhd系统在gpt分区的安装、启动问题,到时不懂时再请教。
作者: 510819776    时间: 2014-8-7 17:46
qj_tzy 发表于 2014-8-7 12:24
在你的提示下,我进入注册表把盘符整理后,用xorboot搜索存放在esp分区中的ntldr、boot.ini等文件,成功 ...

gpt分区下
vboot启动xp其实没有什么难度
用grldr加载vboot.img的引导盘就ok了
但是 用来vboot的winxp.vhd必须放到 头四个主分区里面
不然会蓝屏 本人实测

作者: qj_tzy    时间: 2014-8-7 23:26
510819776 发表于 2014-8-7 17:46
gpt分区下
vboot启动xp其实没有什么难度
用grldr加载vboot.img的引导盘就ok了

我将上面成功安装在gpt分区中的xp克隆备份为winxp.gho,用WinXP_VHD辅助处理工具2011生成winxp.vhd存放入GPT分区硬盘的第4分区(编号从1起算时),拷入vboot1.1已破解的vbootdsk.sys,挂载vhd文件进入注册表进行盘符清理,第一次能正常进入该VHD系统,系统盘符为c:,可见各gpt分区,但自动安装驱动,重启后7B蓝屏,不知为何,还请指点,谢谢!
作者: 510819776    时间: 2014-8-7 23:49
qj_tzy 发表于 2014-8-7 23:26
我将上面成功安装在gpt分区中的xp克隆备份为winxp.gho,用WinXP_VHD辅助处理工具2011生成winxp.vhd存放入 ...

这个问题就出在 vboot驱动上
你用vhd辅助工具打了vboot补丁
不过这样貌似 你第一次启动后不要更新它
不然会蓝屏
最好是你在完好的xp里面直接安装vboot驱动
离线的方式我不推荐

作者: qj_tzy    时间: 2014-8-9 08:46
本帖最后由 qj_tzy 于 2014-8-9 08:47 编辑
510819776 发表于 2014-8-7 23:49
这个问题就出在 vboot驱动上
你用vhd辅助工具打了vboot补丁
不过这样貌似 你第一次启动后不要更新它


问题已找到,结果不是VBOOT驱动的问题,是disk.sys被还原为了XP的。

现已解决,且经测试,可将VHD文件存放在GPT分区的任一NTFS分区,均启动正常。如我是将其放在第7分区中的。
作者: 510819776    时间: 2014-8-9 16:21
qj_tzy 发表于 2014-8-9 08:46
问题已找到,结果不是VBOOT驱动的问题,是disk.sys被还原为了XP的。

现已解决,且经测试,可将VHD文 ...

那就奇怪了
为啥我的xp.vhd必须放到头四个主分区才可以启动成功???
是因为我vboot菜单用了(hdx,y)的原因么??
看来我应该给vboot菜单加上uuid=来启动了

作者: qj_tzy    时间: 2014-8-9 16:38
510819776 发表于 2014-8-9 16:21
那就奇怪了
为啥我的xp.vhd必须放到头四个主分区才可以启动成功???
是因为我vboot菜单用了(hdx,y)的 ...

且我安装到gpt分区的winxp(而非winxp的VHD系统),安装到gpt分区硬盘的第7分区,也启动正常。
作者: qj_tzy    时间: 2014-8-10 17:06
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的。

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


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

另外你说的前三个分区是不是指一般可见的分区?比如我现在装在E盘,是第6个分区,是不是放在第8个分区就无法启动了?
作者: 510819776    时间: 2014-8-11 11:39
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 估计是没问题的

作者: 510819776    时间: 2014-8-11 11:47
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引导代码
其他的没啥
作者: qj_tzy    时间: 2014-8-11 22:57
510819776 发表于 2014-8-11 11:47
1.从你的描述来看 你做的img是有问题的
xp的系统 我就是xorboot搜索ntldr启动的 没做启动盘 因为这样挺 ...

谢谢指点,我作好ima文件存放在esp分区,用xorboot 启动存放esp分区中的grldr,以启动ima文件,但 xorboot 启动grldr时,总是提示“超出范围”(out of range),不知如何处理。
作者: qj_tzy    时间: 2014-8-12 20:44
510819776 发表于 2014-8-11 11:47
1.从你的描述来看 你做的img是有问题的
xp的系统 我就是xorboot搜索ntldr启动的 没做启动盘 因为这样挺 ...

用ima包启动的问题已基本解决,但用其启动安装在gpt分区的win7_x32系统,出现启动画面后7B蓝屏,但用其启动该gpt分区的win7_x32系统制作的vhd系统时,卡在了4朵花处。不知为何,还没找到原因。
作者: 510819776    时间: 2014-8-12 23:52
qj_tzy 发表于 2014-8-12 20:44
用ima包启动的问题已基本解决,但用其启动安装在gpt分区的win7_x32系统,出现启动画面后7B蓝屏,但用其启 ...

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

作者: 2013gdh    时间: 2014-8-13 16:34
问一句, ntldr可以直接识别gpt分区吗? 总感觉不甚科学
如果不识别, 那efi分区里的ntldr怎么跑起来的
作者: qj_tzy    时间: 2014-8-14 08:56
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代码就好了。若如此,非常感谢!
作者: qj_tzy    时间: 2014-8-14 08:58
本帖最后由 qj_tzy 于 2014-8-14 08:59 编辑
2013gdh 发表于 2014-8-13 16:34
问一句, ntldr可以直接识别gpt分区吗? 总感觉不甚科学
如果不识别, 那efi分区里的ntldr怎么跑起来的


以xorboot+esp分区中的ntldr即可启动安装在gpt分区中的winxp。当然在启动之前,要替换disk.sys。
作者: 510819776    时间: 2014-8-14 09:29
qj_tzy 发表于 2014-8-14 08:56
在您的指点下,目前,已能正常启动安装在gpt分区中的win7_x32系统了,但还有以下问题未得到解决:

1. ...

首先 gpt分区弄win7 32位的基本都是少数
维护和mbr方式相比很难
安装系统也是大难题
所以这个研究其实没啥意义
自己用用就好了  不适合普及的
你说的 1  2 自己去看grub4dos的文库
我不需要隐藏 不过记得以前的g4d 是 hide命令隐藏分区 不知道适合gpt不
至于如何判断是gpt分区   可以通过判断efi分区是否存在决定
第三个问题 我不用ntboot
不了解
作者: 510819776    时间: 2014-8-14 09:32
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驱动被其他软件加载了

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

谢谢指点!

1.我已测试,g4d的hide命令隐藏分区对gpt分区无效。
2.如何判断是gpt分区的问题,若在mbr的分区硬盘建立一个fat分区,并拷入efi的相关文件,所以我想用判断efi分区是否存在这个方法来判断是否是gpt分区硬盘,可能不准确。
作者: 510819776    时间: 2014-8-14 15:52
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
当然你可以换成你自己的命令



作者: qj_tzy    时间: 2014-8-14 22:29
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的主启动代码,是否还可这样判断,是否要采取其他判断方法了
作者: 2013gdh    时间: 2014-8-14 22:43
510819776 发表于 2014-8-14 09:32
ntldr不能在16位模式下直接识别gpt分区
但是识别gpt分区的事情 xorboot已经完成了
所以ntldr启动不过是 ...

谢谢. 请问这个"驱动"是指接管了int 13h吗
作者: 510819776    时间: 2014-8-15 14:23
qj_tzy 发表于 2014-8-14 22:29
若gpt分区硬盘的0扇区写入了xorboot的主启动代码,是否还可这样判断,是否要采取其他判断方法了

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

作者: 510819776    时间: 2014-8-15 14:24
2013gdh 发表于 2014-8-14 22:43
谢谢. 请问这个"驱动"是指接管了int 13h吗

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

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

好的,非常感谢!




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3