我無法在Linux中將SATA硬碟(工作在UDMA)更改為PIO模式

我無法在Linux中將SATA硬碟(工作在UDMA)更改為PIO模式

我正在嘗試停用 SATA 3.5" 硬碟中的 DMA 以在 PIO 模式下工作,因為要使用 GNU ddrescue 從故障磁碟中恢復一些壞扇區

我正在使用 PartedMagic Linux live CD,並嘗試使用 hdparm 進行修改。磁碟正在使用 UDMA6,因此我運行:

hdparm -p4 /dev/sda  

它向我顯示了以下錯誤(我嘗試了多種模式,而不僅僅是 PIO4):

Attempting to set PIO mode to 0
HDIO_SET_PIO_MODE failed: Inappropriate ioctl for device

另外,我嘗試了其他 Linux live 系統,例如 SystemRescueCD,新增了核心參數libata.dma=0在啟動時。相同的結果,它仍然顯示我正在使用 UDMA6...

我讀過有關 libata.force 的內容,但我不太理解該命令。我在 SystemRescueCD 啟動時嘗試了以下參數,這次系統無法識別 HDD,哈哈(所以我在保留此命令之後再次重新啟動)。

libata.dma=0 libata.force=

我查看了 BIOS 選項,沒有找到任何 DMA 選項或類似選項...

有什麼建議麼?

關閉記錄:

這是一台舊桌上型電腦(13 年的 x64 AMD),我沒有任何其他電腦可以進行復原(我的另一台電腦是筆記型電腦,我無法將磁碟直接連接到主機板而不弄亂。) .)

答案1

不確定 PIO/DMA 模式如何影響磁碟機讀取壞磁區的方式。

但試試這個。

  • 在 BIOS 中停用 AHCI。

  • 您的 Live CD 上的核心版本是什麼?盡可能嘗試使用新的東西,例如 Debian live CD(上面應該有 - 如果沒有,你可以使用ddrescue它們。)如果 Linux 核心太舊,某些功能可能會很奇怪。hdparmapt-get installhdparm

  • 在機箱開啟且驅動器電源線未連接的情況下啟動系統。等到 Live CD 啟動,然後小心連接電源線。如果您不接觸驅動器電路板(僅握住邊緣並放置在非靜電升高表面,例如電腦頂部)並且無靜電(在處理驅動器之前觸摸外殼的金屬部分),這對於 SATA 驅動器來說是安全的) 。這將繞過 BIOS 可能在啟動時發送並幹擾的任何 ATA 安全命令。試著做可接受的答案這個問題表示連接後驅動器是否不可見。

編輯:根據SATA 磁碟機可能不支援 PIO 模式(在 SATA 出現之前,PIO 是 EIDE 的東西)。不過我認為如果您在 BIOS 中禁用 AHCI,控制器本質上是在模擬 EIDE,因此它可能仍然可以工作。

相關內容