(如無興趣了解問題成因及解決方法原理,可以直接跳到教學正文)

Windows 必須帶有相應之控制器界面驅動程式,方能辨認出該界面及連接到該界面之裝置。例如 Windows 7 / Vista / XP 並未內置 XHCI Driver,除非額外安裝 XHCI (USB3.0) Driver,否則就無法在只有 XHCI 控制器界面(而沒有 EHCI (USB2.0) 控制器界面)之 Intel 100 Series Chipset 底板上使用 USB 功能。因此若在上述底板啟動 Windows 7 USB 安裝媒體時會立即藍畫面。

儲存介面亦不例外。好比 Windows XP 並未內建 AHCI Driver,若電腦底板 BIOS 設定已開啟 AHCI 儲存控制器界面(而非更傳統之 IDE),安裝 XP 時就無法找到及安裝到 AHCI 界面上的硬碟;若 Windows 無內置、無安裝或無啟動 AHCI Driver 而從本來正使用 IDE 界面改為 AHCI 界面,開機時就會彈藍畫面,原因為 Inaccessible Boot Device。Windows 連自己所在之儲存裝置都無法存取,當然無法啟動。

NVMe 乃係新款儲存控制器界面,自 Windows 8.1 起,已內建 NVMe Driver。但 Windows 7 並未內建之。就 Windows Vista 及之後版本,及以最傳統方法而言,安裝 Windows 會用安裝媒體(Setup Media,可開機進入 Windows 安裝程式之光碟或 USB 手指皆為安裝媒體)開機,安裝媒體會啟動一個精簡版本 Windows(WinPE,Preinstallation Environment)來提供圖形界面 (GUI) 讓使用者再安裝一份真正 Windows 到硬碟內。兩個 Windows 都係一個映像檔 (Windows Image),WinPE 在 /sources/boot.wim 內;真正 Windows 在 /sources/install.wim 內。

然而,Windows 7 並未內置 NVMe Driver,亦即 boot.wim 及 install.wim 內皆無內置之,所以啟動 Windows 7 WinPE 時,會無法找到 NVMe SSD,而無法安裝。又因 Windows 7 未內置 USB 3.0 Driver,在只有 XHCI 界面之 Intel 100 Series Chipset 底板會無法啟動安裝媒體。而且,即使你以任何方式繞過使用 WinPE 直接將 Windows 7 安裝到 NVMe SSD,Windows 7 同樣無法讀取 NVMe SSD,所以會藍畫面 (Inaccessible Boot Device)。

教學正文:

要解決 NVMe 及 100 Series Chipset XHCI 問題,就是要確保 install.wim 內置 NVMe 及相應之 XHCI Driver,及使 boot.wim 亦內置之,或直接繞過使用 boot.wim,即不使用 Setup Media。

(特別註明:為何不在 Windows 7 安裝媒體啟動時載入 NVMe SSD 官方 Driver?因為並非每款 NVMe SSD 都有官方 Driver,而且各廠 Driver 並不互通。加上微軟官方通用版 NVMe Driver 係更新檔,不是一般 .inf Driver Package,不能在安裝媒體啟動時載入。再者,新底板去除 EHCI 控制器界面,而 Windows 7 原生不支援 XHCI,始終都係要修改或棄用 Windows 7 boot.wim。)

boot.wim

先講 boot.wim,上文已提及佢係WinPE,乃從 USB 手指開機時會進入之超精簡 Windows,以提供圖形界面讓使用者安裝 Windows。要解決 Windows 7 boot.wim 不支援 NVMe 及 XHCI 之問題,方法有三:

方法一:改用 Windows 8.1 安裝媒體。 如果你已有 Windows 8.1 ISO 、手指或光碟等安裝媒體,這無疑係就手方法,因為無需改動 boot.wim,而且 Windows 8.1 安裝媒體較 Windows 7 好,同時內置 XHCI、NVMe Driver,又不會出現 USB 失效 Bug。

如你有 Windows 8.1 ISO(及於 /source 內有 install.wim (而非 esd)),你可以將之製成 USB 安裝媒體,方法是使用 Rufus 將之轉移到 USB 手指,建議使用 MBR (UEFI/CSM) 及 NTFS 。然後,刪除 /source/install.wim ,並放入已修改好之 Windows 7 install.wim (如何修改將於下文詳述)。記得要刪除 /source/ei.cfg 之頭兩行文字,即 [EditionID] 及位於其下一行之版本值例如 Professional,方能於安裝 Windows 時選擇版本。當然,你可以預先用軟件刪走 Windows 8 ISO 內之 install.wim 才將 ISO 轉移至 USB 手指,以節省寫入 USB 手指之時間。


描述:圖中 81B.iso 係已自訂之 Windows 8.1 安裝媒體 ISO,當中不含 install.wim。

RUFUS 官方下載連結:
https://rufus.akeo.ie/downloads/rufus-2.11.exe

方法二:不使用安裝媒體(適用於進階使用者之最快捷方法,最快安裝過程不需三分鐘,熟手者更可兩分鐘完成,快係因為不需使用安裝媒體)。 如你有另一部電腦,可支援 NVMe 及已安裝好 Windows 及有插槽可以再插多隻 NVMe SSD,你可以將 NVMe SSD 插到該電腦,以進行下述步驟;或如果你有 Windows 8.1 WTG 外置硬碟(Windows To Go,可從外置硬碟直接啟動之完整 Windows),可以將之在你要安裝 Windows 7 到 NVMe 之電腦上開機,以進行下述步驟:

如未,就要將 SSD 設為 MBR 及將之格式化。方法係先執行 diskpart,鍵入 list disk,確認邊隻碟係 NVMe SSD 後,鍵入 sel disk #,而 # 為 NVMe SSD 之編號,以選取 NVMe SSD ;再鍵入 clean,這會清除該 NVMe SSD 上之一切分區。然後,鍵入 convert mbr。再繼續使用 diskpart 或改用 diskmgmt.msc 格式化 SSD,當然要格式化為 NTFS。再將要啟動之分區設為 Active(使用中)。註:個人不建議使用 EFI Boot。


描述:list disk

然後使用 GImageX(建議使用此程式,然而其他類似程式或 DISM GUI 皆可),將已修改好之 Windows 7 install.wim (如何修改將於下文詳述)之所需版本 Windows 映像 Apply 到目標 NVMe SSD 之分區。完成後,以系統管理員身份執行 cmd,鍵入 bcdboot X:\Windows /s X: /f BIOS,當中 X 即目標分區代號字母,及如現正使用 Windows 7 就不需 /f BIOS。然後重新啟動就能進入 NVMe SSD 上的 Windows,極速完成。


描述:GImageX Apply Image

GImageX 官方下載連結:
https://www.autoitscript.com/cgi-bin/getfile.pl?gimagex/gimagex.zip

方法三:修改 Windows 7 boot.wim。這是最慢方法。如何修改將於下文詳述。製作 Windows 7 USB 安裝媒體,方法是使用 Rufus 將 Windows 7 ISO 轉移到 USB 手指,建議使用 MBR (UEFI/CSM) 及 NTFS 。然後,刪除 /source/install.wim 及 boot.wim ,並放入已修改好之 Windows 7 install.wim 及 boot.wim。記得要刪除 /source/ei.cfg 之頭兩行文字,即 [EditionID] 及位於其下一行之版本值例如 Professional,方能於安裝 Windows 時選擇版本。當然,你可以預先用軟件替換 ISO 內之 install.wim 及 boot.wim。

RUFUS 官方下載連結:
https://rufus.akeo.ie/downloads/rufus-2.11.exe

install.wim

如何修改 Windows 7 install.wim 及 boot.wim,使之支援 NVMe 及 XHCI?網上好多教學可能教你打 dism 指令,但 dism 指令冗長複雜及較容易打錯(相比之下, diskpart 及 bcdboot 非常簡單),其實不必。網上有人已製作 DISM GUI,免打指令。

DISM GUI 官方下載連結:
https://dismgui.codeplex.com/downloads/get/913554

先下載 DISM GUI,以系統管理員身份執行之,選擇你要修改之 .wim(建議 .wim 要在硬碟甚至 SSD 而非 USB 手指上,以確保速度)。在任一硬碟或 SSD 之根目錄建立資料夾名為 mount,並將完整路徑複製到 DISM GUI 之 Mount Location 欄。


描述:DISM GUI

然後,Display WIM Info 來取得其資料,boot.wim 只有一個 Image 及若要使用則必須修改之,但 install.wim 可能會有幾個 Image,你可以只修改你要安裝之版本,如專業版或旗艦版。如你想修改全部版本,要逐個 Image 修改。

選擇你要修改之 Image 所屬編號,然後按 Mount WIM,可能需要幾分鐘時間。期間,下載與 NVMe Driver 有關之兩個更新檔 (.msu) ,及如目標電腦係 8/9/100 Series Chipset 底板,就再下載適用於 8/9/100 Series Chipset 之 Intel USB3.0 Driver(警告:加入此 Driver 之 Windows Image 不應用於 7 Series Chipset 底板之電腦上)。

KB2990941 官方下載連結(需要 Email):
https://support.microsoft.com/en-us/kb/2990941
KB3087873 官方下載連結(需要 Email):
https://support.microsoft.com/en-us/kb/3087873
KB2990941 x64 非官方下載連結(直接下載):
http://thehotfixshare.net/board/index.php?autocom=downloads&showfile=20015
KB3087873
x64 非官方下載連結(直接下載):
http://thehotfixshare.net/board/index.php?autocom=downloads&showfile=20866
KB2990941
x86 非官方下載連結(直接下載):
http://thehotfixshare.net/board/index.php?autocom=downloads&showfile=20016
KB3087873
x86 非官方下載連結(直接下載):
http://thehotfixshare.net/board/index.php?autocom=downloads&showfile=20867
Intel USB3.0 Driver for 8/9/100 Series Chipset 官方連結:
https://downloadcenter.intel.com/download/22824/USB-3-0-Driver-Intel-USB-3-0-eXtensible-Host-Controller-Driver-for-Intel-8-9-100-Series-and-Intel-C220-C610-Chipset-Family?product=65855

(特別註明:為何不使用微軟官方做法,下載 Windows ADK 及使用其附帶更新檔?因為 Windows ADK 下載資料量大,可能費時,而且根本不需要用到 ADK 程式,加上微軟官方做法要求將其所載全部更新都插入 Windows 7 install.wim 及 boot.wim,但實際上只需要兩個更新。另外,如不信任非官方下載,可以選用官方連結下載兩個 Windows 更新檔,不過需要提供 Email Address。)

然後將兩個 .msu 檔放入同一資料夾(資料夾中不要有其他檔案),再複製資料夾完整路徑,到 DISM GUI Package Management 頁籤,在 Package Folder 欄貼上路徑,然後按 Add Packages。應該不需一分鐘時間就完成。


描述:Adding .msu package of NVMe support and Intel USB3.0 Driver

如需要,再將剛下載之 Intel USB3.0 Driver 解壓縮,進入 /Drivers 資料夾後,將內裡不適用之 Driver 刪除,例如如果你要安裝 64Bit Windows 7,就將全部 x86 資料夾都刪除,反之亦然。之後複製 /Drivers 資料夾之完整路徑,並貼上至 DISM GUI Driver Management 頁籤之 Drivers Folder Location 欄,確定有剔選 Recurse,再按 Add Drivers。應該不需一分鐘時間就完成。

然後,到 Mount Control 頁籤,按 Dismount WIM,此時會彈出提示問你是否要 Commit Changes(將修改儲存至 .wim 檔內),提示視窗可能會在主視窗後面,要記得按 Yes。可能需要幾分鐘時間。

再次說明,上述修改步驟必須在你要安裝之 install.wim 內相應之Windows 版本 Image 上執行。而如果你要使用 Windows 7 boot.wim,才需要修改之(如何繞過使用 Windows 7 boot.wim 上文已提及)。

修改好 .wim 檔,就會使之支援 XHCI (如需要)及 NVMe,將之用以替換安裝媒體上之原有 .wim 檔,再於下次啟動電腦時,使用該安裝媒體為開機裝置,即可正常安裝 Windows 7。建議在安裝前,先將基本程式之安裝程式放入一儲存裝置內,例如顯示卡 Driver、該底板之網卡 Driver 及 Google Chrome 安裝程式,以便安裝 Windows 後能立即上網,下載其餘所需 Drivers 及程式,避免需要使用底板光碟。


描述:筆者製作之單一 Windows 7 install.wim,可選擇是否需要 8/9/100 Series Chipset XHCI Driver,及同時包括 x64 四個版本及 x86 五個版本。檔案大小:4.22GB