如何重置 Intel SATA 控制器 ROM?

如何重置 Intel SATA 控制器 ROM?

我最近嘗試在 AHCI 模式下安裝 Windows Vista。我懷疑這次冒險以某種方式導致內建 Intel SATA 控制器在 AHCI 模式下無法運作。我從一個乾淨的(零填充)SATA HDD 開始,並在系統 BIOS 設定中啟用了適用於 Intel 控制器的 AHCI。我在 Windows Vista 設定中使用 Diskpart 對 HDD 進行了分割區。

我試圖將其安裝到邏輯分區(即邏輯驅動器、邏輯磁碟區),如下所示。

  • 500 MB 主要、活動
  • 40000 MB 擴展
  • 40000 MB 邏輯

但 Windows 拒絕接受這個分割區。它會啟動,然後停止並傳回錯誤訊息。

Windows 無法確定電腦是否包含有效的系統磁碟區。

這足以讓我點擊下一個開始安裝。但顯然這還不夠好。在網路上搜尋後,我了解到這與 BIOS 啟動裝置順序和 Windows Vista 安裝程式無法正確處理 USB 隨身碟安裝有關。我使用的是使用 Windows 7 USB/DVD 下載工具建立的 USB 隨身碟進行安裝。

所以我改變了BIOS中的啟動順序,如下圖所示。

Device boot order from...

Floppy
Hard disk
CD-ROM

To...

Hard disk
Disabled
USB-HDD

And hard disk boot priority from...

Seagate disk
Seagate disk
Kingston USB
WD disk
WD disk
Bootable add-in card

To...

Seagate disk
Seagate disk
WD disk
WD disk
Bootable add-in card
Kingston USB

回到 Windows Vista 設定中,我使用 Diskpart 來清理 HDD。然後我決定給主分區更多的空間,只是為了更好的措施。所以我有以下分區。

  • 1000 MB 主要、活動
  • 40000 MB 擴展
  • 40000 MB 邏輯

安裝在邏輯分割區上開始。於是我離開了電腦,心想現在已經可以了。但當我回來時,它又因另一個錯誤而停止了。

Windows 無法複製安裝所需的檔案。確保安裝所需的所有檔案均可用,然後重新啟動安裝。錯誤代碼:0x80070070

我又試了一次。我再次使用Diskpart來清理磁碟。然後我增加了主分割區的大小,如下所示。

  • 4000 MB 主要、活動
  • 40000 MB 擴展
  • 40000 MB 邏輯

然後我再次開始安裝。這次我沒有遇到任何錯誤。它經歷了所有步驟:複製檔案、擴充檔案、安裝功能、安裝更新、完成安裝。然後電腦重新啟動,然後在執行以下行後立即停止。

Serial ATA AHCI BIOS, Version iSrc 1.20E
Copyright (c) 2003-2008 Intel Corporation
** This version supports only Hard Disk and CDROM drives **
Please wait. This will take few seconds.

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
_

我懷疑Windows Vista安裝程式在安裝過程中遇到了第一個錯誤,因為它無法使用AHCI模式安裝到HDD,之後它以某種方式重置了AHCI設置,然後我能夠第二次安裝它而沒有錯誤因為我的BIOS已經恢復到IDE模式了。

按下電腦上的重設按鈕,電腦立即關閉!然後我再次通電,經過 POST 螢幕,然後它再次停在同一行。按 Ctrl+Alt+Del 重新啟動,然後按 DEL 鍵進入 BIOS 設置,但無法進入設定畫面。它卡在同一條線上,我無法越過它。

現在,我已經完成了清除 CMOS 的所有常規步驟。通過此螢幕的唯一方法是使用主機板上的跳線針清除 CMOS。這是因為我無法進入 BIOS 設定來載入預設設定。此外,一旦 SATA 模式設定為「停用」(IDE),我就能夠跳過 AHCI BIOS 畫面並返回 Windows Vista 安裝。安裝甚至完成了。但是,如果我返回 BIOS 設定並再次啟用 AHCI,它會再次在同一行停止。

另一種繞過 AHCI BIOS 螢幕和卡住的線路的方法是斷開 HDD 與 SATA 連接埠的連接。但當然,我無法啟動任何東西。我的意思是,如果我將 SATA 模式設定為停用 (IDE),我至少可以啟動到 Windows Vista。

我嘗試將硬碟連接到不同的端口,並且還斷開了所有其他硬碟的連接。我從 0 到 5 逐一測試了每個連接埠。

SATA 連接埠 0 上有 HDD...

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
_

SATA 連接埠 1 上有 HDD...

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
  Port-00: No device detected

SATA 連接埠 2 上有 HDD...

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
  Port-00: No device detected
  Port-01: No device detected

SATA 連接埠 3 上有 HDD...

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
  Port-00: No device detected
  Port-01: No device detected
  Port-02: No device detected

SATA 連接埠 4 上有 HDD...

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
  Port-00: No device detected
  Port-01: No device detected
  Port-02: No device detected
  Port-03: No device detected

SATA 連接埠 5 上有 HDD...

Controller Bus#00, Device#1F, Function#02: 06 Ports, 04 Devices
  Port-00: No device detected
  Port-01: No device detected
  Port-02: No device detected
  Port-03: No device detected
  Port-04: No device detected

如您所知,它停止在目前正在掃描的連接埠上。然後,如果我斷開硬碟,我會收到這個有趣的錯誤。

Controller Bus#00, Device#1F, Function#02: 06 Ports
  No device found
  AHCI BIOS not installed

AHCI BIOS 未安裝

我說有趣是因為它在第一行明確指出我正在使用“Serial ATA AHCI BIOS,版本 iSrc 1.20E”。但由於某些原因設備掃描失敗。也許這就是為什麼我看到“AHCI BIOS 未安裝”錯誤的原因?我已經閱讀了十幾個有關此錯誤類型的網頁,但沒有發現任何結論。有人說這很正常。但就其一而言,我知道我的另一塊主機板上寫著“已安裝 AHCI BIOS”,該主機板來自同一製造商和同一代,它也使用 Award BIOS。

我確信列印出“未安裝 AHCI BIOS”是有原因的。 BIOS 程式設計師可能不會認為這是一個有趣的惡作劇,讓使用者認為系統在正常運作時(即訊息是「正常」)有問題。它的內容可能比我們大多數人關心的要多,因為它需要大量的時間進行調查,並且需要普通用戶不具備的知識水平。另一方面,BIOS 供應商和主機板設計人員並不關心將舊 BIOS 韌體維護超過 2 或 3 年(有時這比最昂貴主機板的保固時間還要短)。相反,他們轉向“下一件大事”,並希望您每年繼續購買新硬體。

如果我將硬碟連接到技嘉 SATA 控制器,則會出現相同的訊息(AHCI BIOS 未安裝)。不過我已經過了那個螢幕了。但這只是因為技嘉 SATA 控制器設定為 IDE 模式,而 Windows Vista 會載入。

有沒有辦法單獨重置或重新刷新 SATA 控制器 ROM?除了主系統 BIOS 之外? 「AHCI BIOS」到底是什麼?它像 BIOS 擴充嗎?它是主系統 BIOS 程式碼的一部分嗎?是否儲存在同一個快閃記憶體晶片中?

另外,您對此有何看法?

截圖


A 乙 C d e

更新1


我檢查了驅動程序,發現 pciide.sys 已啟用,msahci.sys 也已啟用。但 iastorv.sys 卻不是。我已經測試過啟用它並在 BIOS 設定中啟用 Intel AHCI。這沒有幫助。它仍然卡在 AHCI BIOS 設備檢測上。

更新2


啟用相同的驅動程式(pciide.sys、msahci.sys、iastorv.sys),我測試了在 BIOS 設定中啟用 AHCI 的情況下連接到 Gigabyte SATA 控制器。 Windows Vista 開始載入並出現進度條,但很快就遇到了 BSOD 並重新啟動。它就這樣一直循環下去。

F

我測試了停用 iastorv.sys 並僅啟用 msahci.sys(和 pciide.sys)。它確實有效!

G

一些網路論壇會告訴您在 Windows 中啟用所有 AHCI 相關驅動程式(iastor.sys、iastorv.sys、msahci.sys)以便在 AHCI 和 IDE 之間輕鬆切換(pciide.sys 通常在大多數安裝中預設啟用,我猜是為了相容性)。但正如您所看到的,有時禁用其中一個或所有您不使用且不打算使用的驅動程式是更明智的做法。

雖然這是一個不同的 SATA 控制器(不是 Intel),但我開始認為這可能與驅動程式有關。

更新3


技嘉控制器...

我現在已經安裝了技嘉SATA控制器的官方驅動程式。它的版本是1.17.50.2。設備管理員現在顯示以下兩個設備描述。

  • JMB36X 標準雙通道 PCIE IDE 控制器
  • 技嘉 GBB36X 控制器

它似乎基於 JMicron 晶片。

H

Intel SATA 控制器被列為標準 AHCI 1.0 串列 ATA 控制器。忽略旁邊的感嘆號。那隻是因為我禁用了它正在使用的 msahci.sys 驅動程序,所以它在抱怨。但我是在 IDE 模式下從 Gigabyte 控制器執行 Windows Vista,所以這並不重要。我在重新啟動之前再次啟用了它。

因此,我重新啟動並啟用了 Gigabyte 控制器的 AHCI 模式,並且 Windows Vista 正常載入。沒有任何問題。我可以自信地說,技嘉控制器可以在IDE 和AHCI(RAID 未經測試,但預計可以工作)模式下工作,使用Microsoft 通用AHCI 驅動程式(msahci.sys) 或技嘉控制器特定驅動程式(jraid. sys) ,這實際上是一個 JMicron 驅動程式。

請注意,當我測試啟用它們並使用 AHCI 中的 Gigabyte 控制器啟動 Windows 時,iastorv.sys 驅動程式之前與 msahci.sys 驅動程式發生衝突,並且我遇到了 BSOD 錯誤。我沒有測試過,也不想用新的驅動程式來測試它。也許現在已經解決了,也許還沒有。重點是,如果在 AHCI(甚至 RAID)中使用 Gigabyte 控制器,最好停用 iastorv.sys。

英特爾控制器...

現在那個該死的英特爾控制器怎麼樣?它會異或還是不會異或?就是那個問題!

成功測試了技嘉控制器後,就該測試英特爾控制器了。我首先啟用了 pciide.sys、msahci.sys 和 iastorv.sys殘障人士。我使用該f6flpy6489.zip包手動安裝驅動程式。驅動程式版本為8.9.0.1023。新驅動程式名為 iastor.sys,名稱中不帶 V。

設備管理器中的「標準 AHCI 1.0 序列 ATA 控制器」描述會變更為「Intel(R) ICH9R/DO/DH SATA AHCI 控制器」。

我 j k

我真的希望這能奏效。但事實並非如此。我關閉電腦並將硬碟連接到英特爾控制器上的SATA連接埠1,打開電源並再次在BIOS中將SATA模式變更為AHCI。但我又回到了同樣該死的“未檢測到設備”屏幕,並且無法通過它。

所以我的問題仍然存在。這是否表示英特爾控制器上負責 AHCI 功能的 ROM 已損壞或以其他方式損壞?雖然看起來好像只有 AHCI 功能無法操作,但控制器仍在運作。儘管是在 IDE 模式下,但它仍然可以工作,這比完全被烘烤要好。

有知識的人可以發布一個答案,其中包含有關英特爾控制器的實際 ROM 所在位置的資訊嗎? Intel 矩陣儲存有自己的選項 ROM,不是嗎?另外,是否有可能使用一些低階系統實用程式來解決此問題,而無需刪除一個或多個晶片並重新編程,甚至用新晶片替換它們?

值得深思...

我對發生的情況的最佳猜測是,備份 BIOS 已啟動並將其部分複製到主 BIOS 上,並在此過程中以某種方式脫離甚至損壞了 Intel AHCI/RAID 選項 ROM。

我想這可能是在系統開啟時發生的,就在 Windows Vista 向我拋出第一個或第二個錯誤之後,在我更改了設備啟動順序以欺騙 Vista 從 USB 閃存驅動器安裝到 SATA 上之後硬碟(參見0x80070070)。

它發生在那時,或者當我第一次遇到“控制器總線...”設備掃描螢幕的問題時,按下重置按鈕後系統立即關閉。通常情況下,從那時起(正如我一直在觀察的那樣),它通常只是重新啟動,即使我按“重置”按鈕或給它三指敬禮(Ctrl + Alt + Del),它也不會在該階段斷電。

反正!現在我想了一下,在這種情況下,先啟用 IDE 模式並在該模式下安裝 Windows Vista 可能會更好。甚至可以使用 DVD 媒體進行安裝,而不是 USB 隨身碟。安裝完成後,登入Windows並啟用AHCI驅動程序,重新啟動並在BIOS中啟用AHCI模式。這可能剛好奏效了。在這種情況下,這可能是更好的方法,人們希望這樣做。這與常見方法相反,如果您尚未安裝 Windows,大多數人會建議您先在 BIOS 中啟用 AHCI。我不應該那樣做。

我希望這能為其他人提供一個教訓。我會做更多調查,但我不想在這上面花太多時間。除非我能以某種方式將一切重置回正常狀態,否則我認為可以肯定地說,英特爾控制器上的 AHCI 模式現在無法運作。

答案1

我有所描述的確切症狀。我會遇到 SATA AHCI iSrc 掛起的情況,如果我移除驅動器,它就不會掛起。

修復方法是擦除磁碟機上的簽名。我透過以下步驟做到了這一點。

注意:清除簽章將刪除所有分割區以及磁碟上的所有資料。這樣做後您的資料將會消失。謹慎行事。

  1. 拔下驅動器插頭
  2. 插入具有可引導 Linux「即時」ISO 的 USB 驅動器
  3. 引導至 Linux ISO
  4. 在啟動過程開始時,插入驅動器
  5. 執行以下命令以查看要擦除的磁碟機:lsblk
  6. 執行以下命令來擦除磁碟機(將 X 替換為上面找到的磁碟機號碼):wipefs -a /dev/sdX
  7. 對所有需要擦除的磁碟機重複步驟 6。
  8. 重啟

重新啟動後,我不再遇到掛起的情況,並且能夠成功安裝並引導到這些磁碟機。因此,驅動器上的某些簽名似乎導致了掛起。

相關內容