7289.jpg

自從 SSD 這玩意被發明出來之後,使用過的人只有一句話:「回不去了」,是大幅優化電腦體驗的首選。我的黑蘋果二號電腦也在組建後不久,開始全面改用 SSD 。然而 SSD 以替代傳統機械硬碟為目標,所以最初使用傳統硬碟的 SATA 匯流排介面,這麼做的好處是用戶只需替換原來的 SATA 機械硬碟即可,但壞處是傳輸速度一下子就頂到 SATA 的肺,也就是實際上 SATA 3 每秒最高約 550 MB 的資料速率。為了突破這個限制,市面上開始有 PCIe 介面的 SSD 產品,但印象中價格也相當驚人,一般庶民根本就買不起。

當時為了想突破 SATA 資料速率瓶頸,我另外購入 HighPoint Rocket 644L 磁碟陣列卡(文章),以搭建兩顆 SATA SSD 作 RAID 0 陣列為方案,可惜實際使用時最高速度也只來到每秒 660/600 MB,並未達到兩倍的理想值,據說和這張 RAID 卡使用的 Marvell 88SE92xx 晶片等級太低有關,也這樣用了很多年。

過了一段時間,市場上開始有支援 NVMe 協議,使用 M.2 介面接口的 SSD 產品,並且從 Intel 9 系列主機板開始內建。隨著時間推進,NVMe SSD 價格越來越低,速度也越來越快,主機板內建 M.2 插槽也逐漸變成標準配置,但是對於相對老舊的 Intel  6/7/8 系列沒有內建 M.2 插槽的主機板來說,NVMe SSD 有如過眼雲煙,如夢幻泡影,即便有 M.2 轉 PCIe 轉接卡產品出現,也因為主機板沒有支援 NVMe 協議,看得到卻吃不到。

後來有神人研究出,可將 NVMe 協議加入 Intel 6/7/8 系列 UEFI BIOS 內,讓老舊的 6/7/8 系列主機板支援 NVMe SSD,不過這些老板子大多沒有 M.2 插槽,所以需要插上 PCIe 轉 M.2 轉接卡,就能使用 NVMe SSD。 

日前無意間看到了相關技術文章後心裡暗癢無比,再做了點功課,砸了三張小朋友購入 SSD 與 M.2 轉 PCIe 轉卡,按圖索驥之後,最終也成功了。

說真的一點都不難,只要小心別買錯東西即可。家裡有 Intel 6/7/8 系列的老電腦,有意花點小錢裝上便宜、高速、又大容量的 NVMe SSD 再多活幾年的話,本文的方法值得一試。

硬體部分

為了避免買到錯誤的硬體,所以先做了點功課,彌補一下知識斷層。查了一下 WIKI,M.2 又名 NGFF(Next Generation Form Factor),其實只是個介面的外觀接口,有一大堆介面都在用,為了怕發生悲劇,所以在這個接口上針對不同介面設計不同的物理防呆設計(在端子處不同的位置上製造缺口),常見由左到右(公座朝上,PIN 腳位從左到右遞增)為 A Key、B Key、E Key、M Key 等。M.2 SSD 常見的是 B Key 或 M Key,其中又大概分為 SATA 協議常用的的 B Key,NVMe 協議大多用的是 M Key。然而也有 M.2 SSD 使用的是 B + M Key,並不表示這類產品一定能在 M Key 母板上運作(如下圖),這就是容易造成混淆的部分。有關 B Key 與 M Key 的 SSD,可查閱這篇文章有比較清楚的說明。

HTB19IdqKFXXXXcDXpXXq6xXFXXXS.jpg

所以了,硬體的部分一律鎖定「M.2 的 M Key」 、「NVMe」 這兩個關鍵字就不會出錯,購買清單如下,一共是 2,938 元,三張小朋友有找:

軟體部分

(1) NVMe 模塊檔案:

大致上分成以下兩種,一種是 3 個檔案(Nvme.ffs / NvmeSmm.ffs / NVMEINT13.ffs),另一種是 1 個檔案(NVMeExpressDxE.ffs) ,兩種者擇一即可。附上 MD5 與 SHA 編碼供比對。

  • Nvme.ffs - MD5: 8CD0A569E6FEB5CEB70C580344BBAFA6 。SHA-1: 4821043E861419B38E8BA9BFE69EA29EFA8948F8
  • NvmeSmm.ffs - MD5: 102D886C595CA21FD73433752992E1E6 ,SHA-1: A82E7EC560B90D3B783DEA3CCBEED0334197A850  
  • NVMEINT13.ffs - MD5: E090C39D2139A06FD8A6A8C4433DB180 ,SHA-1: BD865D5414EDBC2654CB56D7C5E0FA78F66F131C

  • NVMeExpressDxE.ffs - MD5: 563E9FB4F4EFD87ACAEA6B527985CC7F SHA-1: E20889F0A142AC4EA5252E03D1603DE2C954E3AE

坦白說上面的 .ffs 網路上不太好找,不過第一種(3 個 .ffs 檔案)可以在 Intel 9 系列以後的主機板 BIOS 中提取出來。如果網路上真的找不到,就到主機板廠商網站下載 BIOS 檔案之後從中提取,文章後段會補充這個作法。

(2) UEFI BIOS 修改工具(對應 Windows 7/8/10):底下二種工具,擇一即可。

  • MMTool Aptio 5.02.0024 Mod (下載)

(3) 主機板的 UEFI BIOS 檔案。以我的黑蘋果二號 GIGABYTE GA-Z77X-UP4 TH 為例,從這裡下載 F10b 版。

將 NVMe 模塊插入 UEFI BIOS

上述提到的二擇一,我以 Nvme.ffs/NvmeSmm.ffs/NVMEINT13.ffs + UEFITool (0.26.0) 為例:

一、啟動 UEFITool 0.26.0

功能表 File -> Open image file... ->選擇主機板的 BIOS 檔案(Z77XUP4TH.10b)。

截圖 2019-12-08 下午12.56.06.png

選擇濾鏡改為 All Files

截圖 2019-12-08 下午1.03.38.png

截圖 2019-12-08 下午1.05.45.png

二、利用搜尋功能找出 DXE driver 區塊位置

功能表 File -> Search -> 切換到 Text ,Unicode 要打勾,搜尋 DXE 字串

截圖 2019-12-08 下午1.06.39.png

截圖 2019-12-08 下午1.09.59.png

搜尋結果顯示在下方

截圖 2019-12-08 下午1.09.59.png

三、找出 DXE driver 區塊的最下方位置

(1) 點擊下方最後一筆結果(下圖最下方的紅框),上面會顯示結果的位置(下圖中間的紅框)。然後向上找出位置的 UUID 根節點(下圖藍色框內的三角形位置)。

影像_2019_12_8_下午1_15.png

(2) 滑鼠點擊上圖藍色框的三角形,將節點內容收合。

1575782577-2228245770.png

在緊鄰「Volume free space | Free space」(上圖藍框)上方的最後一個 「DXE driver」節點位置(上圖紅框),就是 DXE driver 區塊的最後位置。

四、在 DXE 區塊的最後位置,依序插入三個 NVMe 模塊:

按右鍵 -> Insert After

影像_2019_12_8_下午1_25.png

選擇 Nvme.ffs

截圖 2019-12-08 下午1.27.00.png

然後在插入的 Nvme 模塊後繼續依序插入 NvmeSmm.ffs 與 NVMEINT13.ffs 模塊(意即在插入 NvmeSmm.ffs 之後,在 NvmeSmm.ffs 項目 Insert after 插入 NVMEINT13.ffs )

影像_2019_12_8_下午1_30.png

截圖 2019-12-08 下午1.32.29.png

[省略插入 NVMEINT13.ffs 的操作圖。]

在依序插入三個模塊之後,最後得到的 BIOS 結構圖如下(下圖紅框的部分就是插入的 Nvme.ffs、NvmeSmm.ffs、NVMEINT13.ffs 三個模塊):

影像_2019_12_8_下午1_35.png

五、存檔:File -> Save image file。得到了支援 NVMe 的 UEFI BIOS檔案。

截圖 2019-12-08 下午1.38.44.png

將最後得到的 UEFI BIOS 檔案寫入主機板即可。寫入的方法可參考各主機板的操作手冊。

如果成功了,開機的裝置清單就會顯示 NVMe SSD 裝置。

(相關文章:在 UEFI BIOS 加入 SLIC 2.1 資訊

見證老主機板運行 NVMe SSD 的實力

Windows 環境:

CrystalDiskInfo

Samsung SSD 970EVO_CrystalDiskInfo_2019-12-07 082648.png

AS SSD Benchmark

Samsung SSD 970EVO  2019.12.7 上午 04-36-09.png

macOS 環境:

Samsung SSD 970EVO macOS_NVMeInfo.png

Samsung SSD 970EVO-DiskSpeedTest.png

Samsung 970 EVO NVMe SSD 500G 官方數據為讀寫 3400 MB / 2300 MB,在 Z77 老板子上似乎略有衰減,不過體驗提升還是很有感的。

心得與分享

其實在做功課與實作過程中還是有遇到一些問題,累積了不少經驗與心得,盡可能的寫在這裡,當作是筆記,也給有興趣的人當參考。

一、NVMe SSD 與 PCIe 轉 M.2 的採購

要搞懂 NVMe、PCIe、SATA、M.2 的 A/B/E/M key 這些規格術語,還有什麼 2280/2260/2242/2230 等等,說真的不太容易,還好有這篇文章寫得很清楚。

閱讀文章整理資訊抓出重點,只需確認是否為 NVMe M.2 M-key 的 SSD,以及是否為 PCIe x 4 轉 M.2 M-key 的轉接卡。當我在台南德源電腦一次購入這兩項時,店員也警覺的提醒我「電腦主機板要支援 NVMe」才能用。

再者是選擇 Samsung 970 EVO 的原因。

國外這篇文章中寫到某些 Macbook 機型可以透過轉卡使用某些市售型號的 NVMe SSD ,加上我也有一台 Macbook Air 2013,所以「可以給 Macbook Air 2013 使用」也成為採購標準。考量價格、品牌因素,再扣除使用 QLC 產品等,其實也所剩不多。以目前 970 EVO 500G 大約 3490 ~ 3790 的定價看來,活動打折到 2788 也相對容易剁手。 

(2020.01.03 補充:Macbook Air 2013 確實可用,讀寫速度是 1.4GB/1.4GB,比原廠的 TOSHIBA SSD 還快。)

二、效益

與原來使用 RAID 卡 + SSDx2 作比較:

  RAID 卡 + SSDx2 NVMe + M.2 轉接卡
容量 256GB(128GBx2) 500GB
速度(讀/寫) 660/600 MB 2.8/2.4 GB
PCIe 數量 1 1
電源線 2 0
訊號線 2 0
金額 6,334 2,938

Rocket 644L + Plextor M6S 128G x2 (組 RAID0):總費用 2512 + 1811x2 = 6,334 元(不計兩條 e-SATA 轉 SATA 線),

效益比較:一樣是佔用一個 PCIe x4 插槽,不過花費一半,容量多一倍,讀寫速度超過 4 倍,且大幅節省 2 條 SATA 電源線、2 條 SATA 線在機殼內部走線的糾纏,效益相當不錯。

三、補充說明

(3.1)主機板不支援 NVMe SSD,買來直接安裝的話會怎樣?

還是可以用,只是不能用來當開機的系統碟。沒有 NVMe 協議的主機板在開機時認不到 NVMe SSD,直到進了系統之後 NVMe SSD 才能被辨識出來,只能拿來儲存檔案。

(3.2)選擇插入 Nvme.ffs、NvmeSmm.ffs、NVMEINT13.ffs  三模塊,與選擇插入 NVMeExpressDxE.ffs 單一模塊有何差別?

選擇插入 Nvme.ffs、NvmeSmm.ffs、NVMEINT13.ffs 3 模塊,BIOS 可正常顯示 NVMe SSD 的裝置名稱。插入 NVMeExpressDxE.ffs 單一模塊只會顯示為硬碟,不會顯示裝置名稱。

191209172524.PNG

(3.3)作業系統有限制嗎?

建議使用 Windows 10 ,黑蘋果用戶建議 macOS 10.15 +。據說 macOS 10.13/10.14 只支援極少數 NVMe SSD 廠牌,需手動修正才能使用他廠,比較麻煩。 

(3.4)網路上找不到 Nvme.ffs、NvmeSmm.ffs、NVMEINT13.ffs,如何自行製作生成?

以下示範如何從主機板廠商提供的 UEFI BIOS 提取這三個檔案。

(3.4.1)到技嘉官網下載任一款 Z97 的主機板 UEFI BIOS。建議可選擇功能等級或編號相近的機板。

技嘉 Z97 主機板列表

截圖 2019-12-09 下午3.46.24.png

以黑蘋果的 GA-Z77X-UP4 TH 來說,選擇的 Z97 板子是 GA-Z97X-UD7 TH 這款,下載它的 UEFI BIOS,挑最後一版 F6

截圖 2019-12-09 下午3.43.55.png

下載後解壓縮得到主機板 BIOS 檔案 Z97XU7TH.F6。

(3.4.2)  執行 UEFITool,載入 Z97XU7TH.F6。

截圖 2019-12-09 下午3.54.56.png

File -> Search -> GUID,搜尋 「634E8DB5-C432-43BE-A653-9CA2922CC458」,項目選 Header Only。

截圖 2019-12-09 下午4.04.11.png

點擊下方的搜尋結果(下圖紅框),程式會標定在節點位置上(下圖藍框)。

影像_2019_12_9_下午4_08.png

可以看到 Text 欄位中 Nvme、NvmeSmm、NVMEINT13 這三行。

影像_2019_12_9_下午4_09.png

這三行就是各自擷取 Nvme.ffs、NvmeSmm、NVMEINT13.ffs 的位置。

(3.4.3)各自在 Nvme、NvmeSmm、NVMEINT13 項目上按滑鼠右鍵,選擇 Extract as is ...,即可各自存成 Nvme.ffs、NvmeSmm.ffs、NVMEINT13.ffs。

影像_2019_12_9_下午4_19.png

 

(3.5)如何使用 MMTool 插入 NVMe 的 .ffs 模塊檔案?

(3.5.1)執行 MMTool Aptio 5.02.0024 Mod (MMTool.exe),左上方點擊「Load Image」載入老主機板 BIOS 檔案(Z77XUP4TH.10b)。

截圖 2019-12-09 下午4.30.06.png

(3.5.2)依序操作 1.捲動尋找「CSMCORE」,找到之後點擊該筆資料。2. 程式會自動把 Vol Index 帶入欄位。3. 點擊 Browse,選擇要插入的 .ffs 模塊。4. 點擊 Insert。可以繼續再選其他 .ffs 模塊,重複操作 Insert 的動作, 

影像_2019_12_9_下午4_43.png

視情況 Insert FFS Option 可以選擇 Insert Compressed 以免發生空間不足的錯誤(上圖綠框)。

(3.5.3)插入完 .ffs 之後,點擊 Save Image As 即可另存檔案。

 

參考資料來源:

Autobuy - M.2 SSD 選購指南——SATA、PCIe/NVMe 掌握要訣

PCBeta - 老主板升级支持PCIE NVMe SSD攻略

OSSLab - 如何獲得對具有AMI UEFI BIOS的所有系統的全面NVMe支持

[Tool Guide+News] "UEFI BIOS Updater" (UBU)

 

arrow
arrow

    benjenq 發表在 痞客邦 留言(6) 人氣()