如果 PCIe 擴展卡插上後,機器連 BIOS 介面都進不去,只停在黑屏或主板啟動前的光標閃爍畫面,這通常不是 Linux 驅動問題,而是更早階段的硬體級卡死。
這個階段作業系統還沒有載入,所以 pci=nomsi、pcie_aspm=off 這類 Linux 核心參數完全幫不上忙。問題發生在 POST(加電自檢)階段,常見卡點包括 PCIe 鏈路訓練、PCIe 資源分配、Option ROM 載入、Legacy / UEFI 相容性衝突,或者擴展卡本身異常。
換句話說:如果連 BIOS 都進不去,先不要急著改 Linux。要先讓主板能完成自檢。
先理解這個故障意味著什麼
正常開機時,主板會掃描 PCIe 設備,給設備分配 bus、I/O、MMIO 等資源,並決定是否載入設備自帶的 Option ROM。某些 SATA 擴展卡、HBA、網卡、採集卡或轉接卡會帶有用於啟動支援或設備初始化的韌體,主板韌體可能會嘗試讀取它。
如果擴展卡、主板 BIOS、PCIe 插槽、電源、外接設備或 Option ROM 其中某一環不相容,就可能卡在主板自檢階段。典型表現是:
- 黑屏,只剩光標閃爍。
- 卡在主板 Logo 前後。
- 按
Del、F2、F11、F12無法進入 BIOS 或啟動選單。 - 拔掉這張 PCIe 擴展卡後一切正常。
- 換回原來的 NVMe、顯卡、網卡後都能啟動。
這種情況可以理解為「主板還沒來得及把控制權交給系統,就已經被這張卡卡住了」。
哪些 PCIe 擴展卡容易觸發這個問題
這類 POST 卡死不只會出現在 JMB585 SATA 擴展卡上。凡是需要主板在開機階段初始化、分配資源或載入 Option ROM 的 PCIe 設備,都可能觸發類似問題。
比較常見的設備包括:
- JMB585、ASM1166 等 PCIe SATA 擴展卡。
- LSI / Broadcom HBA 或陣列卡。
- 2.5G、10G、萬兆電口或光口網卡。
- PCIe 轉 M.2 / U.2 / SATA 轉接卡。
- 視訊採集卡。
- USB 3.x 擴展卡。
- 帶 Option ROM 的老顯卡、老 RAID 卡或伺服器拆機卡。
- 做工一般、韌體魔改、EEPROM 異常的廉價 PCIe 卡。
這些設備的問題不一定是「壞了」,也可能只是和目前主板 BIOS、插槽通道、PCIe 速率、啟動模式或地址資源分配不相容。
為什麼還沒進系統,Linux 核心參數無效
pci=nomsi、pcie_aspm=off、libata.force 這類參數都屬於 Linux 核心啟動參數。它們必須等核心載入後才會生效。
而 BIOS 前光標閃爍、主板 Logo 前卡死、按鍵進不了 BIOS,說明系統還停在 POST 階段。此時運行的是主板韌體,不是 Linux 核心。換句話說,Linux 還沒開始執行,自然也沒有機會讀取這些參數。
所以這類故障的排查重點不是先改 /etc/default/grub,而是先處理:
- BIOS / UEFI 啟動模式。
- CSM / Legacy 相容層。
- PCIe Option ROM。
- PCIe 鏈路訓練。
- PCIe 地址空間和資源分配。
- 擴展卡、插槽、供電和外接設備。
第一步:拔掉擴展卡上的外接設備
先做最低風險的排查:只保留 PCIe 擴展卡插在主板上,把接在擴展卡上的 SATA 資料線、外接設備線纜或硬碟供電先斷開,讓這張卡處於「不掛設備」的狀態。
然後開機測試:
- 如果拔掉硬碟或設備後能進 BIOS,說明擴展卡本身大概率沒有把主板卡死,問題可能在某塊硬碟、線材、供電或啟動盤識別上。
- 如果仍然卡死,說明問題更可能在擴展卡和主板 PCIe / BIOS 相容性上。
為什麼硬碟也可能導致 POST 卡死?有幾種常見原因:
- 某塊硬碟的引導扇區或分區表異常,主板 BIOS 誤判為啟動盤後讀取卡死。
- 多塊機械碟同時上電,電源瞬時電流不足,導致 SATA 控制器或硬碟異常。
- 某根 SATA 線接觸不良,導致控制器初始化階段等待超時。
- 某塊硬碟本身健康狀態很差,拖慢整條初始化流程。
如果拔盤後能啟動,可以再一塊一塊接回硬碟,找到具體是哪塊盤或哪根線觸發問題。
第二步:拔卡進 BIOS,關閉 CSM
很多 PCIe 擴展卡卡在 POST 階段,和 CSM / Legacy 啟動相容層有關。
CSM 是 Compatibility Support Module,用來讓 UEFI 主板相容舊式 Legacy 啟動。問題在於,一些廉價 SATA 擴展卡或魔改卡可能帶有老舊 Option ROM。主板在 CSM 模式下會嘗試載入這些舊式啟動韌體,結果和現代 UEFI 韌體發生衝突。
CSM 和 Option ROM 為什麼會卡住 POST
POST 階段主板會枚舉 PCIe 設備,並判斷這些設備是否帶有可啟動韌體。很多老式存儲卡、RAID 卡、HBA、網卡和 SATA 擴展卡會提供 Option ROM,用來讓主板在作業系統啟動前識別設備,甚至支援從這張卡啟動。
問題是,Option ROM 往往很依賴 BIOS 實作。有些擴展卡的 Option ROM 老舊、魔改、損壞,或者只在特定伺服器主板上測試過。現代消費級主板在 CSM / Legacy 模式下嘗試載入它時,就可能出現初始化死循環、黑屏、光標閃爍或鍵盤無響應。
關閉 CSM、禁用 Storage OpROM 的目的,就是讓主板不要在啟動前嘗試執行這張卡自己的啟動韌體。只要系統盤不接在這張擴展卡上,多數 NAS 和資料盤場景並不需要從擴展卡啟動,交給 Linux / Windows 進入系統後再識別通常更穩。
操作步驟:
- 關機斷電,拔掉這張 PCIe 擴展卡。
- 使用主板原有顯卡、核顯或已有啟動盤開機,進入 BIOS。
- 找到
CSM、Compatibility Support Module或Legacy Boot相關選項。 - 將 CSM 設置為
Disabled。 - 啟動模式盡量改成
UEFI Only。 - 保存 BIOS 設置並關機。
- 重新插上 PCIe 擴展卡測試。
如果關閉 CSM 後能正常過 POST,說明之前大概率是 Legacy Option ROM 或啟動相容層衝突。
第三步:禁用 PCIe / Storage Option ROM
有些 BIOS 會提供更細的 Option ROM 控制項,例如:
PCIe Option ROMStorage OpROMMass Storage Controller Option ROMLaunch Storage OpROM PolicyOption ROM Messages
如果能找到類似選項,可以把擴展卡所在插槽或存儲控制器相關 Option ROM 設置為:
|
|
或:
|
|
這樣做的意思是:不要嘗試從這張擴展卡載入啟動韌體,只把它當成普通 PCIe 設備交給作業系統識別。
如果你的系統盤不接在這張擴展卡上,而只是用它掛資料盤、NAS 盤、倉庫盤、網卡或採集設備,那麼通常不需要從這張卡啟動。禁用它的 Option ROM 反而更穩。
第四步:強制 PCIe 速率為 Gen2 或 Gen1
很多卡標稱走 PCIe Gen3,但主板、轉接卡、線材、槽位和擴展卡做工不夠好時,PCIe 鏈路訓練可能在 Gen3 階段談不攏,主板就會卡在等待設備完成初始化的階段。
PCIe Gen3 鏈路訓練失敗是什麼表現
PCIe 設備插上後,主板和設備會協商鏈路寬度和速率,例如 x1、x2、x4,以及 Gen1、Gen2、Gen3。這個過程叫 Link Training。
如果設備、插槽、轉接卡、主板走線或供電不穩定,雙方可能在較高速率上無法完成協商。常見表現是:
- 插卡後卡在 BIOS 前黑屏或光標閃爍。
- 主板 Logo 停很久,按鍵無響應。
- 偶爾能啟動,偶爾完全卡死。
- 強制 PCIe Gen2 後恢復正常。
- 換到另一個槽位後恢復正常。
- 同一張卡在短槽、芯片組槽上能用,在 CPU 直連大槽上不穩定,或反過來。
這不是作業系統層面的「掉盤」,而是主板和設備還沒完成 PCIe 鏈路初始化。強制 Gen2 / Gen1 的目的,是降低訊號速率,犧牲一點理論帶寬換穩定啟動。
更穩妥的做法是先讓它降速:
- 拔掉這張 PCIe 擴展卡。
- 進入 BIOS。
- 找到對應 PCIe 插槽的速率設置,例如
PCIe Speed、PCIe Link Speed、Max Link Speed。 - 把
Auto或Gen3改成Gen2。 - 如果
Gen2仍不穩定,再嘗試Gen1。 - 保存關機,重新插卡測試。
對 SATA 機械碟來說,Gen2 x1 或 Gen2 x2 通常已經夠用。穩定性優先時,不必執著 Gen3。
如果 BIOS 沒有提供 PCIe 速率設置,才考慮物理降速方案。有人會通過給擴展卡金手指部分引腳貼絕緣膠帶,讓卡退回 x1 模式,以此驗證是否是第二條 PCIe lane 或高頻訊號品質導致卡死。這種方法有風險,容易貼錯位置或造成接觸問題,不建議作為第一選擇。優先用 BIOS 降速。
第五步:開啟 Above 4G Decoding
如果主板上同時有 NVMe、顯卡、無線網卡、HBA、採集卡或多個 PCIe 設備,BIOS 在 POST 階段需要給它們分配地址空間和 MMIO 資源。老主板或資源分配策略比較保守的 BIOS,可能因為資源不足或地址衝突卡住。
可以嘗試開啟:
|
|
常見位置在 BIOS 的 Advanced、PCIe Settings、PCI Subsystem Settings、Chipset 或類似選單下。
它的作用是允許 PCIe 設備使用 4GB 以上的地址空間,有助於緩解多設備環境下的資源分配問題。雖然這個選項常被顯卡直通、礦卡、HBA 和多 PCIe 設備場景提到,但對某些 SATA 擴展卡卡 POST 的情況也值得嘗試。
第六步:換 PCIe 插槽
不要只在一個槽位上反覆試。不同 PCIe 插槽背後的通道來源可能不同:
- 靠近 CPU 的長槽通常是 CPU 直連,優先給顯卡使用。
- 一些短槽或第二條長槽可能來自芯片組 PCH。
- 某些槽會和 NVMe、SATA、Wi-Fi 或其他設備共享通道。
如果擴展卡插在 CPU 直連大槽上卡死,可以嘗試插到芯片組引出的短槽或帶寬較低的槽上。反過來也一樣,如果 PCH 槽不穩定,也可以試試其他槽位。
同時建議查看主板說明書,確認是否存在「插了某個 M.2 後某個 PCIe 槽失效」之類的共享規則。
推薦的高效排查順序
如果你想盡快恢復啟動,可以按這個順序來:
- 拔掉擴展卡上所有外接設備,例如 SATA 硬碟、U.2 盤、外接線纜,只留卡本體測試。
- 如果仍卡死,拔卡進入 BIOS。
- 關閉
CSM,切到UEFI Only。 - 禁用
Storage OpROM或相關 PCIe Option ROM。 - 開啟
Above 4G Decoding。 - 把對應 PCIe 插槽強制改成
Gen2,不行再試Gen1。 - 保存關機,重新插上 PCIe 擴展卡測試。
- 如果能過 POST,再逐塊接回硬碟或設備。
這套路徑優先處理最常見的兩類問題:Legacy / Option ROM 衝突,以及 PCIe Gen3 鏈路訓練不相容。
如何判斷是卡壞了還是主板相容性問題
如果做完上面步驟仍然卡在光標閃爍,還可以做兩個交叉驗證:
- 把這張擴展卡插到另一台電腦上測試。
- 換一張確認正常的同類 PCIe 擴展卡插到目前主板上測試。
判斷邏輯可以這樣看:
- 同一張卡在多台電腦上一插就卡死:更像擴展卡本身有硬體或韌體問題。
- 這張卡只在目前主板卡死,換電腦正常:更像主板 BIOS、插槽通道、PCIe 速率或資源分配相容性問題。
- 目前主板換其他同類擴展卡正常:更支持原卡異常。
- 目前主板換其他 PCIe 設備也不穩定:要懷疑主板插槽、供電、BIOS 設置或 PCIe 通道共享問題。
如果這張卡在多台電腦上一插就卡死,而其他擴展卡在目前主板正常,基本可以懷疑:
- 擴展卡 EEPROM / Option ROM 資料損壞。
- 擴展卡存在短路或供電異常。
- 金手指、焊點、晶振或電源晶片有硬體問題。
- 卡的韌體和多個主板 BIOS 都不相容。
如果它只在某一台主板上卡死,則更可能是主板 BIOS、插槽通道、PCIe 速率、CSM 或資源分配問題。
不要把系統參數當成 BIOS 階段解法
需要特別強調:只要機器還沒進入 Linux,pci=nomsi、pcie_aspm=off、libata.force 這類核心參數都不會生效。
這些參數只能處理作業系統接管硬體之後的問題,例如 Linux 下掉盤、中斷異常、PCIe ASPM 喚醒失敗等。對於 BIOS 前光標閃爍、POST 階段卡死,它們沒有機會執行。
所以這類問題的排障重點是:
- BIOS 設置。
- PCIe 鏈路訓練。
- Option ROM。
- 插槽和資源分配。
- 擴展卡和外接設備的物理狀態。
小結
PCIe 擴展卡插上後卡在 BIOS 前光標閃爍,本質上是 POST 階段就被卡住。最常見的突破口是:
- 斷開所有外接設備,排除硬碟或供電誘因。
- 關閉 CSM,切換到純 UEFI。
- 禁用 Storage / PCIe Option ROM。
- 將 PCIe 速率從 Auto / Gen3 降到 Gen2 或 Gen1。
- 開啟 Above 4G Decoding。
- 更換 PCIe 插槽測試。
如果這些都無效,並且這張卡在其他電腦上也會卡死,就要高度懷疑擴展卡本身硬體或韌體損壞。對 NAS 和存儲伺服器來說,穩定性比參數漂亮更重要。遇到這類 POST 級卡死,優先讓主板能穩定過自檢,再談 Linux 裡的核心參數和驅動排查。