JCDN 发表于 2016-12-1 15:49:19

请教UD三分区启动兼容性问题

很早之前就使用P大0pe,后来为了支持efi启动增加了8pe,放在可见区,再后来为了安全增加了一个隐藏分区,放置外置工具和8pe。感觉应该属于目前比较流行的UD三分区法。用了几年了,期间偶尔有8pe启动失败案例,并未深究,前天在一台电脑启动失败,重新写入fba就可以启动了。今天发现又不行了。错误提示grub error 15,同样制作的U盘这个可以启动,那个不能启动,请教各位前辈帮忙分析一下什么情况?还是隐藏分区兼容性不好?

不知 发表于 2016-12-1 19:28:47

猜测可能是BIOS启动后,把UD分区破坏了。
写入FBA,启动一次后,在其它电脑上打开Fbinsttool,看UD分区是否损坏。

不点 发表于 2016-12-1 21:03:40

本帖最后由 不点 于 2016-12-1 21:19 编辑

没看明白事情的来龙去脉。您是不是说 fbinsttool 没问题,而 ud 三分区有问题?换句话说,是不是 fbinsttool 制作的启动盘从未遇到问题,而 ud 三分区却会碰上失败?

假定我猜对了(即,上述问题的答案是 Yes),下面给出我的评论。(假如我猜得不对,请忽略我的评论)

启动这种东西,是要严肃对待的。要想把启动搞好,难度不是一般的高(是非常非常高)。原因是什么?这个我想,大家都知道的(以下讨论范围限于传统 BIOS 启动方式):相关软硬件厂商(即垄断控制者)不希望有任何一款软件能够做到 “启动无忧”。假如您能承认这一点的话,那就不难理解 “搞好启动是异常艰难的” 这个命题。

一个字,难,是不是?既然难,那么(逻辑上很紧凑的)下一个问题:谁来对付它比较合适?那答案自然是启动软件的开发者了。为什么?(这还用问?)专门开发启动软件的人,他了解的情况多,考虑得细致、周到,比 “非开发人员” 不知要细致多少倍。假如他处理不了的问题,你能处理好,那么他是不是赶快把你的处理方法吸收进来,改进软件?我并不深入了解三分区法,但我看到三分区法是在 “隐藏” 上下功夫,这就与 ud 的宗旨背道而驰了,因而也没见到有哪个启动软件的开发者把这些方法加以引进、吸收。我猜,正是这附加的东西,影响了它的宗旨(即,让启动成功率受到了影响)。假如确实是这样的话,那么我认为那是 “得不偿失” 的。



我还真的需要再补充几句。在我使用我自己做的 multimbr 启动盘时,发现插在某些机器上之后,会损坏这个 U 盘上的文件,迹象是,把 U 盘的 FAT 表都搞乱了,即使想用恢复工具来恢复,都很困难,恢复不出很多文件。这个 U 盘只好重做,于是一切又正常了。我怀疑有两种可能性。其一可能是病毒、流氓软件胡乱写入启动区和 FAT 表造成的;其二可能是操作系统本身的 bug 造成的。前者的可能性较大(粗略估计 80%),后者可能性较小(粗略估计 20%)。楼主也有可能是碰到了类似的问题。

JCDN 发表于 2016-12-1 21:32:05

感谢回复,问题出在grub启动8pe上,8pe放在U盘后面B+隐藏分区,中间是数据区。前面是UD隐藏区,0pe在UD隐藏区。我的启动U盘是在0PE上扩展来的,0pe启动始终没有问题,8pe有时候启动失败,看提示应该是grub找不到8pe的启动文件。提供下我的菜单
pxe detect
configfile
default 2
timeout 9
graphicsmode -1 640:480 || graphicsmode -1 -1 -1 24:32
font /BOOT/GRUB/unifont.hex.gz

title从硬盘启动电脑
find --set-root /windows/hh.exe
command srun --nt
titlewin8 PE x64 (支持网络影音)
find --set-root /boot/boot.sdi
chainloader /BOOTMGR
title0PE 老机维护(多系统-回车或空格)
configfile /BOOT/GRUB/menu.lst
title手动GHOST备份恢复
map --mem /IMGS/GHOST.IMA (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

不点 发表于 2016-12-1 23:44:25

JCDN 发表于 2016-12-1 21:32
感谢回复,问题出在grub启动8pe上,8pe放在U盘后面B+隐藏分区,中间是数据区。前面是UD隐藏区,0pe在UD隐藏 ...

那我还是理解错了。我以为你说的是 grub4dos 启动成功率问题。

8PE 放在 U 盘的 “后面”,这本来就可能失败的。要知道,不同的主板 BIOS,其访问扇区的能力是不同的,有的能访问全部的扇区,有的就只能访问 U 盘开头的一部分扇区。

是主板的错,不是你的错。要说你有错的话,那就是,你未能意识到这个问题,你未能把 8PE 放在靠近 U 盘最开头的那些扇区上。

chen463 发表于 2016-12-2 09:01:50

本帖最后由 chen463 于 2016-12-2 09:05 编辑

猜测楼主的问题不在引导的问题上,是引导8PE的菜单语法上,既然已经引导成功,再进入8PE失败,大部分都是菜单的语法不完善造成。
title  win8 PE x64 (支持网络影音)
find --set-root /boot/boot.sdi
chainloader /BOOTMGR
您确认所有的电脑磁盘分区只有一个 /boot/boot.sdi,bootmgr文件吗?如果您不敢肯定,那么建议您更改一下名称,试试。

直接了当,去搜寻它,并且启动它。例如
find --set-root /BOOTXXX
chainloader /BOOTXXX

JCDN 发表于 2016-12-2 15:42:19

感谢各位回复,问题解决了,数据区移到后面,问题解决了,不点大师一言中的。

zds1210 发表于 2016-12-2 15:56:18

本帖最后由 zds1210 于 2016-12-2 15:58 编辑

JCDN 发表于 2016-12-2 15:42
感谢各位回复,问题解决了,数据区移到后面,问题解决了,不点大师一言中的。

可问题又来了,低端隐藏一部分电脑又不支持efi启动。
所以,U盘启动,低高端的矛盾,一直灰常灰常的纠结。
所以,有一些老大,采用双8PE制,一部分打包放在UD区,一部分散开放在高端区。
当然,这些bios老机越来越少,以后要解决的就是efi启动兼容性问题。
还有,bios已经能启动到grub菜单了,说明UD主引导是成功的,貌似修正grub菜单有望解决问题。

不点 发表于 2016-12-2 16:38:22

zds1210 发表于 2016-12-2 15:56
可问题又来了,低端隐藏一部分电脑又不支持efi启动。
所以,U盘启动,低高端的矛盾,一直灰常灰常的纠 ...

貌似修正grub菜单有望解决问题。

zds1210 兄也是 grub4dos 的熟练玩家了。然而也许您忽略了这个问题,我认为,是很基本、或者说,很重要的:

如果 BIOS 有问题,那么,单单从菜单去折腾,是毫无作用的。

也许您的电脑太好了、太守规矩了,所以您可能从未碰上失败、从未碰上稀奇古怪的事情,因而(我猜)您也可能不那么容易能够十分理解楼主所遇到的困难的实质。

恕我直言,您可能忽略了这个大问题:BIOS 并非能够访问全部的扇区;BIOS 的访问能力是有限的。

诚如前面所言,也许您的电脑很正常、您的主板没问题。可是,别人的电脑就是各种各样了,什么乱七八糟情况都可能发生。

楼主提到 error 15,这条错误是 “读磁盘错误”。说明什么呢?说明当 grub4dos 去读文件时,遇到了 “disk read error”,换句话说,就是读扇区失败。进一步推理,那就是,BIOS 的 “读扇区调用” 失败了。再进一步推理,那就是说,要读的文件位于 BIOS 访问不到的地方,或者说,BIOS 鞭长莫及。

zds1210 发表于 2016-12-2 18:47:21

不点 发表于 2016-12-2 16:38
zds1210 兄也是 grub4dos 的熟练玩家了。然而也许您忽略了这个问题,我认为,是很基本、或者说,很重 ...

不点是bios启动的专家。确实如此,物理低端利于bios启动,高端不利于bios启动;而低端隐藏不利于efi启动,而高端隐藏利于efi启动。这个问题确实很矛盾。UD三分区的就是基于这个基础而创立的。
目前比较好的解决方案,标准UD三分区中,还是8PE两份,一份打包放UD区中,一份散开放efi区中,这样子efi/bios兼容性都不错。
而等这些老机子慢慢死去,新机子中bios启动很强,要求很低,高端区的PE也能启动时候,则简化型三分区就大大有用场了。

JCDN 发表于 2016-12-7 16:40:39

zds1210 发表于 2016-12-2 15:56
可问题又来了,低端隐藏一部分电脑又不支持efi启动。
所以,U盘启动,低高端的矛盾,一直灰常灰常的纠 ...

efi启动我目前手头的电脑可以正常启动,先这样了,efi以后有问题再说,分两份也可以,BIOS 和EFI彻底分开。
目前是一个8pe支持BIOS和EFI双启动,将来可以考虑BIOS和EFI各用一个专有PE。最后感谢所以热心朋友的回复,谢谢!

新建 发表于 2016-12-10 17:02:03

我现在就是用三分区,而且是用最原始的三分区,BIOS和EFI开分,各自独立。比如:一个8PE,高端隐藏写入一次用于EFI启动;低端UD写入一次,用于BIOS启动。物理前端的UD区的8PE对付BIOS,物理未端的8PE对付UEFI。一般情况下都能启动,二般情况目前还没有遇到。唯一的不足就是费一点儿U盘空间,虽然浪费一点U盘空间,但使用起来非常稳定,不会出现这样或那样的问题。再说,现在U盘的容量已经不是问题了,所以,也就不必纠结那一点儿U盘空间了。简单的,原始的,最笨的,成功率却是最高的,也是出问题最少的。

wangmeng052 发表于 2017-6-10 23:35:13

俺现在使用mac电脑。
页: [1]
查看完整版本: 请教UD三分区启动兼容性问题