|
这个问题是我在911cd问的,终于有了答复(http://www.911cd.net/forums//index.php?showtopic=19168)。
我把答案贴在这里,大家凑合着看吧:
you want to be able to boot different images. You could put extra entries in the BCD file using BCDEDIT but perhaps like me you don't want to display bootmgr's menu and want to use your existing PXELINUX initial PXE stage to choose the image. So want bootmgr to use different BCD files.
So you currently have an entry in pxelinux.cfg\default (or a specific config for your test PC) that says:
CODE
label winpe2
kernel boot/pxeboot.0
which startes the process:
CODE
pxelinux.0
|
v
boot/pxeboot.0
|
v
bootmgr.exe <-- /Boot/BCD
|
v
boot/boot.sdi <-- /Boot/WinPE.wim
|
v
winload.exe
But...the file "\Boot\BCD" is hardcoded into bootmgr.exe!
Ok, no problem...
Copy bootmgr.exe to testmgr.exe and hex edit it:
Change the "\Boot\BCD" unicode text at 0x4F98C to "\Test\BCD".
Also, copy boot\pxeboot.0 to test\pxetest.0 and hex edit this too:
Change the "bootmgr.exe" at 0x5961 to "testmgr.exe"
Copy boot\BCD to test\BCD and use BCDEDIT to change the osdevice and device entries to use "[boot]\Test\TestPE.wim,{ramdiskoptions}". No need to change the boot/boot.sdi entry.
Add an entry in pxelinux.cfg\default:
CODE
label testpe2
kernel test/pxetest.0
Ok, we hope this will now follow this process:
CODE
pxelinux.0
|
v
test/pxetest.0
|
v
testmgr.exe <-- /Test/BCD
|
v
boot/boot.sdi <-- /Test/WinPE.wim
|
v
winload.exe
We, try it and get a checksum error with testmgr.exe.
Ok, it has a PE checksum at 0x130 so we use a tool (such as PE Explorer) to calculate our testmgr.exe's checksum and update the file.
Try again...bootmgr reports:
QUOTE
Windows cannot verify the digital signature for this file.
Looks like testmgr.exe has a digital signature that is getting checked and fails!
Now we're stuck...but there's this stuff about -set nointegritychecks Yes on various google pages...
Using "bcdedit -store x:\BCD -set nointegritychecks Yes"
or "bcdedit -store x:\BCD {guid} -set nointegritychecks Yes"
puts the setting in for the WinPE image (disabling driver signing - I believe) but doesn't stop the problem with our testmgr.exe (which stops before TestPE.wim is even retrieved).
But, what about "bcdedit -store x:\BCD {bootmgr} -set nointegritychecks Yes" ?
Yeah, it works!
[ 本帖最后由 原名丢了 于 2007-3-16 05:40 AM 编辑 ] |
|