Warung Bebas

Sunday, August 16, 2009

繁體 Windows PE 3.0 (Windows 7 PE) 草擬及維修技術探討

微軟最近推出了 Windows OPK (OEM Preinstallation Kit) 和 AIK (Automated Installation Kit) for Windows 7 的 RTM 版。這兩套部署工具連同 Windows 7 DVD 都包括了最新的 Windows PE 3.0 (Vista 是 2.0,XP/2003 是 1.0-1.6)。小弟趕緊造了一套半製成品。



Startup of Windows 7 PE (3.0), C7PE


Desktop of Windows 7 PE (3.0), C7PE(圖一:登入選項,圖二:桌面和程式)



製作原因



小弟之前的工作之一是在客人面前測試他們帶來的硬體和組裝電腦,例如懷疑主板的內建網卡壞了,便可用包含所有網卡驅動程式和 Firefox 的 PE 測試。30 秒起機,一試,如果可以上網即便知道只屬 Windows 問題,節省重裝 Windows 來測試的時間。



另外也要維修電腦,有時是軟體成因的便需看看可否起動 Windows,如入到還要看看有沒有被密碼鎖上,兩種情況都需要支援 NTFS 的 Windows PE 幫助。首先,入不到 Windows 的可以在進入 PE 後用 nirSoft BlueScreenView 查看所有出現過的藍畫面,假如藍畫面是關於檔案系統或硬碟的 (UNKNOWN_HARD_ERROR、UNMOUNTABLE_BOOT_DEVICE),可以執行檢查磁碟工具 (chkdsk) 以檢查檔案系統和硬碟。想簡單點也可以直接使用系統還原 (Vista/7 可使用「系統修復工具」的「啟動修復」,它會自動偵測和修正包括檔案系統/系統檔案在內問題。XP 則可使用 Registry Restore Wizard,但只能還原登錄檔)。第二,如 Windows 被鎖上,便需使用破解密碼的軟體,有幾種方法甚至不影響已存帳戶的密碼 (WindowsGate、Sala's Password Renew、Sneaky Win Intruder),近乎不留痕跡。



還有就是安裝 Windows 了,我的同事不會用 winnt32 或 unattend 的方法裝 Windows。如果是 最流行的 XP Home 或 Vista Home Basic 中文版,因效率問題,會用 Sysprep 一般化了的 DOS Ghost DVD 而非新裝,而其它沒有製成映像的版本才會新裝。似乎和 Windows PE 毫無關係。但據我所見他們的 Windows 好像不能夠用在 AMD 系統,必需要 Intel CPU 和 IDE 控制器為 Intel 的系統,就算 nVidia/ATI/VIA 晶片組的 Intel 平台底板就不可以了。要解決這問題,可以在倒種後第一次啟動前用 Windows PE 起機,然後載入目標 Windows 的 SYSTEM 登錄檔(hive),然後有兩種做法,(1) 載入經「修改」的 MergeIDE.reg (參考微軟文章 KB314082) 或 (2) 用 Save Hardware ID 或 devcon 工具查看那塊底版的 IDE 控制器的硬體識別碼是甚麼,然後用登錄編輯程式直接更新「HKLM\目標Windows\ControlSet001\Control\CriticalDeviceDatabase」機碼內 ClassGUID 值開首為 4D36E96A,Service 值為 *ide 的對應選項。至於要解決 Intel 平台轉 AMD 的問題,都有兩種作法,(1) 修改「HKLM\目標Windows\ControlSet001\Service\intelppm」將 Start 值改為 4,或 (2) 這方法要在 Sysprep 時做的,方法是使用第三方軟體 OfflineSysprep 內的 AMD 系統修正功能 (Sysprep 不可用於 Windows PE;OfflineSysprep 是在 PE 環境執行的版本)。裝 Windows 小弟很少會用這兩個技巧,但在維修電腦時都間中會用的,因為不少客人壞機要轉底版(不同晶片組)但又不想重裝 Windows。還有想一提,因為新舊底版的驅動不同,在登入 Windows 後裝會很麻煩(例如最好要 PS/2 滑鼠和鍵盤,USB 的很可能需要等待其它驅動裝好後才會辨認),如果預先將新底板的驅動給目標 Windows 利用那就可以解決。這個可使用 SysPrep Driver Scanner 或 DriverPacks BASE 達成 (後者沒有試過)。



還有很多很多情況可以應用 PE 達成的。最後最後一點,曾經試過一次都是在替客人換新板後的舊電腦執行 Sysprep (目的是 Sysprep 的另一副功能 - 延長舊 Windows 的啟用期限,因為換底板後 Windows XP 命令三天內必須重新啟用),但執行前忘了使用 Keyfinder 抄下原有的產品序號,他正在途中來不及問他,但又必須要現場試給他看。Mini-setup / OOBE 需要序號才能繼續完成安裝,怎麼辦呢?最後突然想... 在 Windows PE 使用 Keyfinder 可不可以呢?原來是可以的!最後使用 nirSoft ProduKey (Keyfinder 同類) 搜尋 external Windows installations 就可以了。




Using Keyfinder in Windows 7 PE (3.0), C7PE(圖三:Sysprep 一般化後仍能使用 Windows PE 取回 Windows 的 CD-key)




為何不使用建基於 Windows XP 的 PE 1.x? 因為需要最新版的「系統修復工具」(對應 Windows 7) 和 BCDEdit 等支持。



為何不使用 DOS? Windows PE 的驅動 (大量儲存控制器、網絡、USB) 易找、支援較好 (支援 Windows 的大都可以了),程式多 (支援 Windows 正常版的大都可以了,最多需要抄多幾個 DLL 檔),應用空間大,隨著高速 USB 隨身碟流行,是開機碟未來的大方向;最新 Ghost Solution Suite 2.5 的 Boot Wizard 都預設以 PE 2.0 來做開機碟了,Hiren's Boot CD 9.7 開始都內置了 PE 1.6。



理想中的 project 工作清單


  1. * 設計給 USB 隨身碟結合 PStart (綠色軟體開啟器) 用 (CD 亦可)。PStart 內的程式便是 PE 內的程式,用者可隨意增減

  2. * 每次開機都會偵測隨身碟內的 PStart.xml 檔案,實時更新在「開始程式集」內的連結

  3. 起動快、佔記憶體少,因為將大部份程式*、驅動都放於主 .wim 外**,以佔用最少 PE的運作記憶體為目標。最低運作要求為 256MB,但建議 512MB 或以上 (*1 除需要關聯 zip, rar 等檔案的 7-zip. *2 以 DriverPath 方式,自Vista開始支援自動掃瞄子資料夾)

  4. * 如記憶體不夠,支援啟動虛擬記憶體

  5. 包括至今所有 mass storage controller (大量儲存控制器) 和有線網卡驅動 (來自 driverpacks.net)

  6. 如沒有驅動可由用者隨後加在隨身碟或光碟機「a-z:\driver」資料夾 (以支援任何未來的新晶片)。只要按下桌面上「啟動網絡」PENetCfg 便會開始搜尋、安裝

  7. 可以設定密碼保護登入 (利用 PreLogonConfig.exe,密碼保護後便更適合當成公共電腦用的還原分區)

  8. * 多種開機選項,可與 Ultimate Boot CD/Hiren's Boot CD 結合 (使用 Grub for Dos)

  9. 除了給隨身碟或CD用的軟體外置 .wim 版本,另設有軟體內置 .wim 的版本,為了適合 network boot (PXE) 用途和取代 Windows 7 C:\Recovery 內 winre.wim (啟動修復用途)

  10. 支援中文輸入法,包括舊式倉頡、速成、廣東

  11. * 支持執行 non-Unicode 簡繁體程式 (需切換)

  12. 支援 MMC、CPL (磁碟管理、地區選項等)

  13. 但除 MMC 外並沒使用 WinBuilder,不採用 vpeldr/7peldr (試過可能阻礙 USB、網卡在 PE 上運作)。不使用 explorer.exe,改用 BSExplorer (快和節省 100MB 記憶體,但沒有了「連上網絡磁碟機」功能,需由第三方軟體提供)

  14. 自行中文化 BSExplorer 工作列和開始功能表

  15. PE 和所有軟體盡量為繁體

  16. 補回一些 PE 沒有的 CLI/GUI 程式和 DLL 檔案,例如 devcon, fciv, telnet, nc, nslookup, 小畫家, 計算機

  17. 可上網(內置Firefox、Opera、MSN...)、倒種(Ghost8.3,11,11.5等/Ghostcast Server/ImageX/GImageX/DriveImage XML...)、部署 Windows XP/2003/Vista/2008/7/2008 R2 (內置 OfflineSysprep、XPSetupLauncher...)、救硬碟(用 PE 就不用拆走硬碟,內置GetDataBack、Partition Find and Mount及其餘十多個)、救機(Kaspersky、BlueScreenView、HDDScan、Everest、MBRWizard、TestDisk、ServicePE、RegistryPELoader...)、破解 Windows/網絡/應用軟體密碼(KeyReader、ProduKey、NTPWEdit...)、遠端控制 (Remote Desktop 7, VNC, Putty, WinSCP...)、檔案總管 (Free Commander、7-Zip Explorer、A43...)、一般軟體(Office、SHA/MD5 checker、Eraser、File Renamer、螢幕測試、Notepad++...),專業工具 (SysinternalsSuite、nirSoft Tools、Roadkil Tools、Windows Support Tools、Windows Resource Kits) 及更多。

  18. 還欠甚麼?


(「*」在前的為仍未完成的功能)



Windows PE 3.0 比舊版進步之處


  1. 更新了的指令,包括 BCDBoot, DISM, 支援 VHD 的 Diskpart

  2. 再不需要 peimg /prep 以犧牲 serviceability 來減少大小

  3. 內建 PE 2.o 沒有的 PPPoE 支援 (但怎樣使用?)


  4. WinBuilder Win7PE project 支援無線網卡*、DirectX*、.Net Framework* (* 因佔記憶體太多和運作可能有問題,不會採用)

  5. ...?




製作教學和所需工具



- Windows 7 繁體版 (因 WinBuilder 需要目標語系的 Windows 配合)

- WOPK 或 WAIK 或 Windows 7 DVD (包括 Diskpart, DISM 工具, ImageX, Oscdimg 工具)

- WinBuilder 的 Win7PE project (包括 BSExplorer)

- Nu2Convert (用來編輯 BSExplorer 的 bs_start.ini 等)

- 虛擬電腦, e.g. VMWare Workstation,用作測試效果

- CDImage GUI (用來配合 Oscdimg 製作 ISO),雖然 USB 不需要但虛擬電腦只支援 ISO 或 network boot

- TFTPD32、3Com PXE Server (如使用 network boot 配合虛擬電腦便需這個)

- ...?



方法就留待完成後才繼續寫吧,如果真的有機會能夠完成...



Windows PE 簡介



Windows PE 是一個超簡化版的 Windows,微軟原意只是用來部署

Windows,經 DVD (Windows Vista/7 的 setup 介面就是 Windows PE),或經

network boot (Windows Server 的 WDS 服務)。



因為是 Windows 簡化版,本來只得「命令提示字元」可以用,但坊間下載到的 PE 多是被人180度翻轉自訂,導致出現 IE、工作列/桌面、MMC 這些功能,變到與正式 Windows 接近,加上預載很多有用的救機軟體,最出名在外國有 BartPE、LiveXP、VistaPE,大中華有 NoName XPE, PE 3.0, 等等。所以 Windows PE 已經變了角色成為足以取代 Linux BootCD 作救機用途了。



如果當 Windows PE 為一般作業系統使用,有不少問題的,例如

1) 不可以照正常程序安裝軟體,只行到綠色版軟體

2) Windows PE 主要在 RAM 執行的作業系統,要有足夠記憶體否則耗盡就會掛掉 (除非啟用 pagefile)

3) 亦因為在 RAM 行,所有資料在重新開機後就 bye

4) 沒有聲音,不能作立體影像運算或加速

5) 為防用作盜版系統,Windows PE 1.x (XP 底) 都會每 24 小時重新開機,但有破解的,2.0 (Vista 底) 以上已經不會了。




歡迎用以下方式儲存或分享本文:

















Share

















 

wander-sick Copyright © 2012 Fast Loading -- Powered by Blogger