Windows Embedded Standard 7 快速入門手冊 4 of 4

來源:互聯網
上載者:User
如果轉載,請明確標明作者和轉載文章原始網址:

http://blog.sina.com.cn/s/blog_6e94205b0100njpj.html

謝謝

肖正波(happymy)

 

 

此文章存在技術問題,請閱讀以下修正內容:

http://blog.sina.com.cn/s/blog_6e94205b0100o3po.html

 

第四章實戰開發 4.1 我們要做什嗎?

     OK,我想當大家看過前三章後,對WES7的就開發應該有了一個初步的瞭解。在本章將講解以在Vmware 虛擬機器為硬體平台。在Vmware虛擬機器上開發出一個WES 7 的嵌入式系統鏡像。藉此示範一個標準使用ICE編寫應答檔案和自訂開發工具的開發流程。這個開發流程包含一些嵌入式特性的使用。以及覆蓋了如何配置應答檔案實現無人值守安裝、如何整合驅動、在鏡像的安裝過程中如何執行自訂命令和腳、如何封裝系統鏡像以便進行大規模部署等大家常會接觸到的問題。

4.2 建立虛擬機器和採集硬體資訊

     • 步驟  1:對於如何建立Vmware Workstation 7虛擬機器,這裡不詳細講解。只要設定虛擬機器的宿主作業系統為“Windows 7”就可以。

圖4-1 Vmware Workstation 虛擬機器

     • 步驟  2:將Standard_7_32bit.iso載入虛擬機器的光碟機,然後啟動虛擬機器,並從光碟片引導。單擊“Launch WinPE Command Prompt”

• 步驟  3:準備一個格式化好的USB 隨身碟,將USB 隨身碟掛載進虛擬機器。

• 步驟  4:鍵入“Tap /o c:/demo.pmq”。c:為隨身碟的盤符(將產生的PMQ檔案儲存到隨身碟當中)

 

4.3 用Image Configuration Editor(ICE)編寫應答檔案(用與構建母板鏡像)

• 步驟  1:開啟Image Configuration Editor(ICE), 菜單“File”>“Select Distribution Share”選擇Distribution Share檔案夾的位置。預設位置是“C:/Program Files/Windows Embedded Standard 7/DS”如果是64bit的Distribution Share,檔案夾的名稱應為DS64。Distribution Share是由開發工具提供的,使用者不應在其根目錄建立新的檔案夾。

• 步驟  2:單擊“New…”按鈕,建立一個應答檔案。雙擊“Distribution Share/Templates/IBW”下的“Thin Client.xml”

• 步驟  3:菜單“File>Import>import PMQ”,選擇在上一節中產生的PMQ檔案,並匯入。

• 步驟  4: 菜單“Validate>Add Required Packages”。雙擊下方的錯誤資訊。

• 步驟  5: 取消選中“Windows Explorer Shell”,選中“Command Prompt Shell with Shell Support”和“Simplified(PRC) Chinese Language Pack ”。單擊“OK”按鈕。

• 步驟  6: 菜單“Validate>Add Required Packages”。展開“Distribution Share/Packages/Feature Pack/Embedded Enabling Features”雙擊Hide Boot Screens。

• 步驟  7:找到VMware Workstation的安裝目錄下的windows.iso,用winrar或者其他軟體開啟windows.iso,將裡面的所有檔案拷貝到DS庫的“/$OEM$ Folders/$1/Program Files/vmtoolsetup”下,例如:C:/Program Files/Windows Embedded Standard 7/DS/$OEM$ Folders/$1/Program Files/vmtoolsetup”檔案夾。
之後在“/DS/$OEM$ Folders/$1/Windows/Setup/Scripts”檔案夾下建立一個名稱為“SetupComplete.cmd”指令檔。編輯該檔案加入下列命令:

“C:/Program Files/vmtoolsetup/setup.exe” /v/qn
C:/Windows/system32/calc.exe

這樣做會在第7個階段(OOBE)執行上面2條命令,但是此種執行命令或指令碼的方法並不會檢查被執行命令的傳回值,另外如上所示,第一條命令執行後會重新啟動電腦,這有可能造成第二條命令未被執行或沒有被完整的執行。這點在開發過程中要注意!

• 步驟  8:將DS庫的“/$OEM$ Folders/$1/Program Files/vmtoolsetup/Program Files/VMware/VMware Tools/Drivers/”的“scsi”檔案夾拷貝到DS庫的“/Out-of-Box Drivers目錄中,例如將“C:/Program Files/Windows Embedded Standard 7/DS/$OEM$ Folders/$1/Program Files/vmtoolsetup/Program Files/VMware/VMware Tools/Drivers”的“scsi”檔案夾拷貝到“C:/Program Files/Windows Embedded Standard 7/DS/Out-of-Box Drivers”檔案夾下。

$1檔案夾下的所有檔案將會被IBE自動拷貝到目標系統硬碟中。其他類似“$1”的“變數”可以從協助文檔中查詢。除了此種整合檔案的方法:使用imageX修改IBW光碟片/DS目錄下的install.wim檔案。在這裡就不詳細介紹了。

• 步驟  9:菜單“insert > OEM Folders Path…”選中 “C:/Program Files/Windows Embedded Standard 7/DS”下的“$OEM$ Folders”檔案夾,然後單擊“Open”按鈕。

• 步驟  10:按快速鍵“Ctrl+F”,輸入“Home”,單擊“Find”按鈕。雙擊下方的“Answer file”的“IE-InternetExplorer_x86/Home_Page”。

• 步驟  11:將“Home_Page”的“Value”設定成“www.cyent.com.cn”。

• 步驟  12:將同頁上方的“DisableFirstRunWizard”和“DisableWelcomePage”的“Value”設定成“True”。

• 步驟  13: 展開並選中“Answer File/Untitled/FeaturePack/User Interface/ Command Prompt Shell with Shell Support ”。
設定“Filter view by:”為“2 Offline Servicing”。
設定“CustomShell”的“Value”為“C:/windows/system32/cmd.exe”

此處稱之為自訂Shell,是大家常用的嵌入式特性之一。可以將使用者“鎖定”在自訂的應用程式。此處以命令提示字元為例(預設就是命令提示字元)。

• 步驟  14: 在做完第8步之後,展開選中“Distribution Share/Out-of-Box Drivers/mydevices”,滑鼠右鍵“Insert Drive Path to Pass 1 WindowsPE”

此處稱之為整合驅動,此方法只能整合INF格式的驅動程式!磁碟控制卡的驅動(這類驅動稱之為系統啟動必須載入的驅動程式)要在第一階段被載入否則將找不到可用的磁碟。

• 步驟  15: 展開“Answer File/Untitled/Product/Operating System/Foundation Core/Windows Embedded Edition/Setup_X86/UserData”
設定“Filter view by:”為“1 WindowsPE”
設定“AceptEULA”的“Value”為“True”。
展開並設定“ProductKEYKEY/”的“Value”為產品的序號。如果沒有請留空,不要使用00000-00000-00000-00000-00000。
設定“WillShowUI”的“Value”為“OnError”


 
• 步驟  16: 展開“Answer File/Untitled/Product/Operating System/Foundation Core/Windows Embedded Edition/International-Core-WinPE_X86”。
設定“Filter view by:”為“1 WindowsPE”。
設定“UILanguage”的“Value”為“zh-CN”。


 
• 步驟  17: 展開“Answer File/Untitled/Product/Operating System/Foundation Core/Windows Embedded Edition/International-Core_X86”。
設定“Filter view by:”為“4 Specialize”。
設定“UILanguage”的“Value”為“zh-CN”。


 
• 步驟  18: 在DS/$OEM$Folders檔案夾下建立一個名稱為disksp.txt的文字文件。

select disk 0
create partition primary
select partition 1
format FS=NTFS quick
active
exit

將上面的指令碼複製到該文字文件中,並儲存。

菜單“Insert/Synchronous Command/Pass 1 windows PE…”,在彈出的視窗中鍵入(僅鍵入粗體部分的字元):

“diskpart /s “D:/AutoUnattend_Files/windowsPE/$OEM$ Folders/disksp.txt”。然後單擊“OK”按鈕。

我們直接在第一階段調用dskpart進行分區,並配置分區。RunSynchronous和RunAsynchronous可以在指定的階段執行命令。Runsynchronous與RunAsynchronous不同地方是Runsynchronous會等待當前命令執行完,才會執行下一條。

 
• 步驟  19: 展開“Answer File/Untitled/Product/Operating System/Foundation Core/Windows Embedded Edition/Setup_X86/ImageInstall”。
設定“Filter view by:”為“1 WindowsPE”。
設定“InstallToAvailablePartition” 的“Value”為“True”。

這樣設定會使得系統鏡像安裝到第一個標記到活動的分區中。如果要指定安裝分區可以展開“InstallTo”。設定PartitionID的“Value”和“DiskID”的“Value”。


 
• 步驟  20: 展開“Answer File/Untitled/Product/Operating System/Foundation Core/Windows Embedded Edition/Shell-Setup_X86/OOBE”
設定“Filter view by:”為“7 OOBE System”
設定“NetworkLocation” 的“Value”為“Work”。
設定“SkipUserOOBE” 的“Value”為“True”。
設定“SkipMachineOOBE” 的“Value”為“True”。
設定“HideWirelessSetupInOOBE” 的“Value”為“True”。
設定“ProtectYourPC” 的“Value”為“1”。
設定“HideEULAPage” 的“Value”為“True”。

此處的這些設定可以跳過OOBE階段的建立立使用者、設定無線網路等設定。


 
• 步驟  21: 展開並選中“Answer File/Untitled/Product/Operating System/Foundation Core/Windows Embedded Edition/Shell-Setup_X86/U
serAccounts/LocalAccount”。滑鼠右鍵單擊,在彈出的菜單中選擇“Insert New LocalAccount”。
將“Name”設定為“CYBR”
將“DisplayName”設定為“CYBR”
展開“Password”,將“Value”設定為“CYBR”
將下面的“Group”設定為“Administrators”


 
• 步驟  22: 展開“Answer File/Untitled/Product/Operating System/Fou
ndation Core/Windows Embedded Edition/Shell-Setup_X86/AutoLogon”
設定“Filter view by:”為“4 Specialize”。
設定 “Username” 的“Value”為“CYBR”。
設定 “Enabled” 的“Value”為“True”。
設定 “Password”的“Value”為“CYBR”。

 
• 步驟  23: 菜單“Validate>Add Required Packages”。
按“Ctrl+S”快速鍵,儲存應答檔案到案頭,使用預設的檔案名稱即可。
菜單“Tools”->“Create Media”-> “Create IBW Image From Answer file”
在彈出的視窗中單擊“…”按鈕選擇“C:/OSIMAGE”檔案夾,單擊“OK”按鈕開始產生系統鏡像。


 
• 步驟  24: 開啟“開始”菜單,在“附件”中,找到命令提示字元並用滑鼠右鍵單擊,在彈出的菜單中選擇“以管理員的身份運行”。
依次輸入下列命令:

CD C:/Program Files/Windows Embedded Standard 7/Tools/x86
oscdimg -n -m -b”C:/Program Files/Windows Embedded Standard 7/Tools/IBW/x86/BOOT/etfsboot.com” C:/OSimage C:/OSimage/OSimage.iso

這樣就把系統鏡像的安裝源打包成一個ISO光碟片鏡像檔案。

• 步驟  25:  將剛才構建的ISO鏡像再如到虛擬機器然後啟動虛擬機器,如果上面步驟沒有做錯。等待40分鐘系統的構建將順利完成,在這期間不需要手動幹預。
 
4.4 用Image Configuration Editor(ICE)編寫應答檔案(用於SYSPREP封裝系統)

首先說明一下,在這裡給出的是一個比較”通用”的應答檔案(testsysprep.xml),應答檔案的部分內容仍然需要修改後才能使用!以下是應答檔案的內容:

<?xml version=”1.0″ encoding=”utf-8″?>
<unattend xmlns=”urn:schemas-microsoft-com:unattend” xmlns:wcm=”http://schemas.microsoft.com/WMIConfig/2002/State” xmlns:ew=”urn:schemas-microsoft-com:embedded.unattend.internal.v1″>
    <servicing>
        <package action=”configure”>
            <assemblyIdentity name=”Microsoft-Windows-EmbeddedEdition” version=”6.1.7600.16385″ processorArchitecture=”x86″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS” />
            <ew:packageInfo releaseType=”Product” customInfoVersion=”1.0″ />
        </package>
    </servicing>
    <settings pass=”generalize”>
        <component name=”Microsoft-Windows-PnpSysprep” processorArchitecture=”x86″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
            <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
        </component>
        <component name=”Microsoft-Windows-Security-Licensing-SLC” processorArchitecture=”x86″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
            <SkipRearm>0</SkipRearm>
        </component>
    </settings>
    <settings pass=”specialize”>
        <component name=”Microsoft-Windows-International-Core” processorArchitecture=”x86″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
            <UILanguage> zh-CN</UILanguage>
        </component>
        <component name=”Microsoft-Windows-Shell-Setup” processorArchitecture=”x86″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
            <ProductKey>00000-00000-00000-00000-00000</ProductKey>
        </component>
    </settings>
    <settings pass=”oobeSystem”>
        <component name=”Microsoft-Windows-Shell-Setup” processorArchitecture=”x86″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
            <AutoLogon>
                <Password>
                    <Value>CYBR</Value>
                    <PlainText>true</PlainText>
                </Password>
                <Username>CYBR</Username>
                <Enabled>true</Enabled>
            </AutoLogon>
            <OOBE>
                <NetworkLocation>Work</NetworkLocation>
                <SkipUserOOBE>true</SkipUserOOBE>
                <SkipMachineOOBE>true</SkipMachineOOBE>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <ProtectYourPC>1</ProtectYourPC>
                <HideEULAPage>true</HideEULAPage>
            </OOBE>
        </component>
    </settings>
    <settings pass=”windowsPE”>
        <component name=”Microsoft-Windows-International-Core-WinPE” processorArchitecture=”x86″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
            <UILanguage>zh-CN</UILanguage>
        </component>
    </settings>
    <ew:answerFileInfo distributionSharePath=”C:/Program Files/Windows Embedded Standard 7/DS” footprint=”576716800″ ecoreFootprint=”576716800″ />
</unattend>

你可以用ICE開啟這個應答檔案,看看都改了那些配置。特別說明一下,ICE儲存這個應答檔案會報錯。這是很正常的因為這個應答檔案沒有添加任何“組件包”,它是不能用來構建系統鏡像的。所以直接忽略這些錯誤。畢竟用ICE寫一個應答檔案要比用記事本寫方便的多。上面的應答檔案一共配置了:

1. 設定好OOBE過程中的設定(這樣就實現了無人值守的部署)

2. 跳過硬體檢測(減少部署的時間,不會刪除已經配置好的驅動。)

3. 自動登入(這個需要根據自己的需要更改。)

4. 設定了CDKEY(ProductKey必鬚根據實際情況修改,試用版留空。)

5. 重設了啟用計數器(WES 7需要進行產品啟用,最多可以重設3次。所以在最後一次執行syssprep命令,才可以將SkipRearm設定為0)

• 步驟  1 啟動好虛擬機器,等待CMD開啟後,輸入explorer開啟資源管理員(仍然不會出現“案頭”)

• 步驟  2  將剛才的應答檔案(大家自己修改過的)拷貝到“C:/Windows/System32/sysprep”下(直接複製粘貼過去,VMTool剛才已經安裝好了)。

刪除“C:/Windows/Setup/SCRIPTS”下的所有檔案。
回到CMD下執行下面的命令:
sysprep /shutdown /generalize /oobe /unattend:C:/Windows/System32/sysprep/testsysprep.xml

等關機後,就可以使用Ghost或者ImageX進行系統鏡像的批量部署,當然你也可以再次啟動虛擬機器看結果。

最後祝大家元旦快樂!\( ^▽^ )/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.