製作boot in RAM的windows xp embedded
剛好爬到了微軟msdn網站上的一篇文章
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpesp1/html/ram_sdi.asp
所以想要製作boot in RAM的windows xp embedded
文章內容主要是把xp embedded製作成sdi package,然後將sdi載入ramdisk實現啟動
1. 要先製作可以在機台上開機的xp embedded檔案 (要post-fba過)
2. 把fba過的xp embedded檔案全部copy到用sdi loader載入的虛擬盤X內
3. 利用sdimgr製作fba過的sdi鏡像檔
%sdimgr% -> cscript "c:\program files\windows embedded\utilities\sdimgr.wsf"
%sdimgr% e:\image.sdi /new
%sdimgr% e:\image.sdi /readpart:X: (注意,X是我的虛擬盤,你要把他改成你自己的)
4. 把製作的image.sdi複製到要用RAM開機的機台上c:\image.sdi
5. 此時C盤內目錄下面的資料有
<root>
ntldr (其中ntldr是使用xp附的,或是使用xp embedded內的Remote Boot Service工具包附的)
ntdetect.com
bootfont.bin
boot.ini
image.sdi
6. boot.ini的資料
[boot loader]
default=ramdisk(0)\windows
[operating systems]
ramdisk(0)\windows="Microsoft Windows XPEmbedded in RAM" /rdpath=multi(0)disk(0)rdisk(0)partition(1)\image.sdi/rdimageoffset=4096
(其中rdimageoffset=?????是要看你做的sdi檔案前面的非內容資訊有多大,可以用sdimgr image.sdi指令看是多少)
7. 重新啟動,載入RAMDISK後跑出<window root> \system32\hal.dll 檔案遺失或是損毀
到這邊為止撞山了Orz
四處爬文爬了三天找不出方法來,以下是我目前試過的方式
1.把image.sdi內的boot.ini改成 (非C:\下的boot.ini)
[boot loader]
default=ramdisk(0)\WINDOWS
[operating systems]
ramdisk(0)\WINDOWS="Windows XPE From RAM" /fastdetect
<<<<結果依樣出現<window root> \system32\hal.dll 檔案遺失或是損毀>>>>>>
2.使用windows2003的
setupldr.bin取代C:\下的ntldr
ramdisk.sy_取代image.sdi內windows\system32\drivers\ramdisk.sys
然後添加winnt.sif
此時C盤內目錄下面的資料有
<root>
ntldr (目前ntldr是使用2003的)
ntdetect.com
bootfont.bin
boot.ini
image.sdi
winnt.sif
winnt.sif內容為
[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\windows\System32\" (也試過\windows\)
OsLoadOptions = "/noguiboot /fastdetect /rdimageoffset=4096/rdpath=multi(0)disk(0)rdisk(0)partition(1)\image.sdi" (也試過加上/minint)
<<<<結果出現inf file txtsetup.sif is corrupt or missing,status 14>>>>>>
猜測目前碰到的狀況可能是由於其他人試的方式是for windows xpe (pre-install)
裡面放的是I386\txtsetup.sif 以及其他pre-install驅動&軟件
但是我做成的sdi裡面包的卻是windows xp embedded
sdi裡面放的有\Documents and Settings
\Program Files
\Windows
boot.ini
NTDETECT.com
ntldr
WERUNTIME.ini
麻煩各方高手不吝指教 m(_ _)m
參考資料
◎ ramdisk也可以玩n合一
http://bbs.wuyou.com/viewthread.php?tid=80104&extra=&highlight=ramdisk&page=1
◎ 用Ramdisk啟動WinXPE成功! [總結各位大大的思路和經驗]
http://bbs.wuyou.com/viewthread.php?tid=32786&highlight=ramdisk
◎ 推薦:ramdisk+sdi啟動winpe不成功的可以到這來看一下
http://bbs.wuyou.com/viewthread.php?tid=33059&highlight=ramdisk
◎XPE和WinPE的盤符不同之原因
http://bbs.wuyou.com/viewthread.php?tid=38369&extra=page%3D25
◎ RAM Boot Using SDI in Windows XP Embedded with Service Pack 1
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxpesp1/html/ram_sdi.asp
◎
Running XP Embedded All in Memory?
http://www.xpefiles.com/viewtopic.php?p=419