多重開機USB製作 及 開機選單修改(下) - 加入Windows To Go系統



前言

本系列分成上下兩篇,請先閱讀上篇

使用PE的時候一直有點困擾
"就缺了這個軟體呢"
"想要可以保存這個文件啊"
這時候就會想,何不在USB裡面灌個一般系統呢?  →得到的解答: Windows To Go
WTG本身是不難做,但是要跟我們的多重開機合併就會遇到幾個瓶頸

  1. Windows C槽結構固定,無法安裝在特定資料夾
    • 灌進VHD裡面,然後使用Grub4Dos→BCD引導
  2. 灌起來以後效能不佳
    • 安裝EWF把系統載入RAM
    • 使用USB3.0提升速度
    • 盡量保持系統輕量化
      →實測載入系統約30秒
另外,因為Windows10在開機的時候會掃描硬體並安裝驅動,Win7跟XP不會。雖然Linux會,但是還是Windows系統通用性高,所以系統選擇Windows10



步驟大綱

系列分成兩篇敘述,上篇老少皆宜,下篇屬於困難級,請適當斟酌
上篇-建立開機USB:
  1. 處理磁碟分割及引導
  2. 安裝Base模式(8G)
  3. 安裝Add模式(16G)
  4. 安裝Add_xp模式(32G)
  5. 安裝Tools
  6. 測試成果
  7. 注意事項

下篇-加入Windows To Go系統:
  1. 製作Win10 VHD
  2. 設置BCD引導
  3. 安裝EWF影子系統
  4. TroubleShooting

    VHD (Virtual Hard Disk)

    Windows 7 中 VHD 檔案格式其實是虛擬硬盤(virtual machine hard disk)的檔案格式。Windows 7 內建對 VHD(Virtual Hard Disk)的原生支持,可以很容易的將VHD文件掛載到系統中,看起來就像一個真實的硬碟分區(partition)般。

    VHD 是一部虛擬硬盤,不同於傳統硬盤的盤片、磁頭和磁道,VHD硬盤的載體是文件系統上的一個VHD 檔案。如果大家仔細閱讀VHD文件的技術標準,就會發現標準中定義了很多Cylinder、Heads和Sectors等硬盤特有的術語,來模擬針對硬盤的 I/O操作。既然VHD是一塊硬盤,那麼就可以跟物理硬盤一樣,進行分區、格式化、讀寫等操作。
    詳細介紹:
    把 Windows 7 灌進 VHD 虛擬磁碟(上) | T客邦 - 我只推薦好東西

    EWF (Enhanced Write Filter)

    EWF(Enhanced Write Filter,增強型寫入過濾器)是XP Embedded嵌入式系統中的一個強大組件,它被稱為微軟牌的「影子系統」。

    EWF是什麼?簡單的說它就是讓磁碟變成「唯讀」、「防寫」狀態。EWF可以安裝在一般的硬碟上,讓你目前的作業系統變成唯讀保護。

    EWF的工作原理,就是把系統的變動都記錄在RAM上,而不寫入硬碟(除非使用者要求),所以能讓XP變成防寫的狀態。但是如果RAM本身不足夠的話,對於效能會有反效果。

    下載EWF: MEGA 

    正文

    製作Win10 VHD

    第一步,建立空白VHD
    Win+R打開執行,輸入"diskmgmt.msc"打開磁碟管理員
    動作→建立VHD

    大小給15G,Win10裝到能用下限差不多是這樣

    建立完成後應該會自動連結VHD,會出現未初始化VHD

    對著其左半邊右鍵→初始化磁碟

    選擇MBR

    對著黑色右半部右鍵→新增簡單磁碟區

    將Windows10安裝光碟用WinRAR打開,找到"\x64\sources\install.esd",解壓縮出來


    以系統管理員開啟cmd命令提示字元

    先cd到install.esd所在目錄: cd C:\Users\jim60\Desktop\working (視你的檔案位置而定)
    然後解開映像到VHD所在磁區: dism /apply-image /imagefile:install.esd /index:1 /applydir:E:\ (替換成你的15G VHD掛載盤符)

    接下來要建立BCD引導: bcdboot.exe E:\windows /s E: /f ALL (替換成你的15G VHD掛載盤符)

    完成以後VHD裡應該長這樣


    把以下三項複製到隨身碟根目錄下
    • Boot資料夾
    • bootmgr
    • BOOTNXT


    卸載VHD,對著VHD左半邊右鍵→中斷連結

    在USB根目錄下建立一個資料夾"VHD",將15G VHD檔複製進去

    設置BCD引導

    開啟BOOTICE→BCD編輯→其他BCD檔案→...→選擇到USB:\Boot\BCD

    選擇"智慧編輯模式"

    把原有的Win10項目砍掉,重新添加VHD啟動項

    所有欄位設定如圖,然後紅框處兩個按鈕都點一下(兩個一定都要按),然後關閉退出BOOTICE

    建立Grub4Dos引導至BCD
    編輯USB:\List\menu.lst,在中間加入這段
    title  BCD選單\n Boot from BCD Menu\n - VHD Windows 10 1607
    chainloader /bootmgr
    

    至此,多重開機USB建立完成
    接下來要進到VHD做設定了

    這時候要做一件事
    拔網路線!!!!!
    拔網路線!!!!!
    拔網路線!!!!!
    很重要說三次,自動更新會把15G弄炸掉

    BIOS開機進USB,選擇"BCD選單"

    然後就是漫長的等待
    ......
    然後終於出來啦!

    叫你連線到網路的時候跳過

    建立使用者,使用者名稱"User",密碼空著直接下一步

    這裡全部不選,然後下一步到底

    開進桌面第一件事,關更新
    左下角工具列右鍵→設定→更新與安全性→進階選項

    把它全部延到最長

    然後是關防毒

    把所有盤符都加到例外清單

    可以看到,剛灌好就吃掉了8G

    然後開始清理系統,把常用的東西裝上去
    這部分請按照喜好自己處理 ~
    以下直接秀我的調教成果
    (圖內的EWF先無視,我是拿了另一個完成的source來截圖)

    ※注意不要裝太多軟體,盡量使用Portable版,放在"USB:\\Data\"資料夾下,不要占用VHD的空間

    可以看到基本上接近吃滿了
    主要是Office吃很大

    防毒會報毒的東西都放在VHD裡面
    免得開其他系統時跳出殺毒


    安裝EWF影子系統 

    在安裝EWF以前請把win10.vhd複製一份備份起來
    免得萬一安裝失敗了要重做系統

    請下載EWF: MEGA

    把下載的EWF解壓縮,放進VHD內的文件底下

    把"\EWF for x86 + x64\EWF for x86 + x64\EWF-W7(x64)"資料夾下的"System32"、"SysWOW64"兩個資料夾複製到"C:\Windows"下

    "ewf.reg"登錄檔右鍵→合併

    重新啟動

    開起來後,系統管理員開啟cmd

    執行"ewfcfg -install",看到completed即可

    到 C:\WINDOWS 下將 "bootstat.dat" 重新命名為"bootstat.dat.old"

    再次重新啟動

    再次系統管理員開啟cmd,執行"ewfmgr C: -enable"

    回到我的文件,將圖中四個cmd檔案傳送捷徑到桌面

    對著捷徑右鍵→內容→進階→以系統管理員身分執行→確定套用,四個捷徑都要分別做

    以下補充四個捷徑的用法:
    SAVE.bat 是保存本次數據並重啟。
    (就是對系統做出修改設置後,點擊這個會重啟保存你的設置,
    因為EWF 不許對保護的系統盤-做任何修改,只有通過這種方式
    保存你的修改,否則你裝進任何軟體-重啟之後就沒有了,但是
    點擊這個重啟後,設置會被保存。)
    TurnOff.bat 是保存本次數據.並重啟動及關閉EWF 覆蓋層。
    (簡單來說就是關掉EWF)
    TurnOn.bat 就是開啟覆蓋層並重啟。(就是再次啟用了)
    Status.bat 查看當前EWF設定狀態。(查看現在是否有啟用)
    這樣EWF就設定完成拉~
    可以放心地連上網路了~

    TroubleShooting

    Q: Grub4Dos畫面有出來,但是有些功能開不進去,顯示Error 60

    A: 所有ISO跟VHD檔案在磁碟上必須連續
    1. 用WinContig程式檢查是否有碎片
    2. 將有碎片之檔案移出,用SmartDefrag的Free Space Defrag功能把空間重組到一起,再複製回去
    3. 再不行,將整支隨身碟內容複製出來,格式化掉,再複製回去(注意勿遺漏隱藏檔案及重作BOOTICE引導)

    目錄