私はSATA 3.5インチハードディスクドライブのDMAを無効にしてPIOモードで動作させようとしています。GNU ddrescueを使用して故障したディスクから不良セクタを回復するためです。
私は PartedMagic Linux ライブ CD を使用しており、hdparm で変更しようとしました。ディスクは UDMA6 を使用しているため、次を実行します。
hdparm -p4 /dev/sda
次のエラーが表示されました (PIO4 だけでなく、いくつかのモードで試しました)。
Attempting to set PIO mode to 0
HDIO_SET_PIO_MODE failed: Inappropriate ioctl for device
また、SystemRescueCDのような他のLinuxライブシステムにもカーネルパラメータを追加してみました。リバタ.dma=0起動時に同じ結果が表示され、UDMA6 を使用していることがまだ表示されます...
libata.force について読みましたが、コマンドがよくわかりません。SystemRescueCD の起動時に次のパラメータを試しましたが、今度はシステムが HDD を認識しませんでした (LOL) (そのため、その後もう一度再起動しましたが、このコマンドは残しておきます)。
libata.dma=0 libata.force=
BIOS オプションを確認しましたが、DMA オプションや類似のオプションは見つかりませんでした...
助言がありますか?
非公式:
これは古いデスクトップ コンピューター (13 年前の x64 AMD) で、リカバリを実行するための他のコンピューターがありません (他のコンピューターはラップトップで、混乱を招かずにディスクをマザーボードに直接接続することはできません...)
答え1
PIO/DMA モードがドライブの不良セクタの読み取りにどのように影響するかはわかりません。
しかし、これを試してみてください。
BIOSでAHCIを無効にします。
ライブ CD のカーネル バージョンは何ですか? Debian ライブ CD など、できるだけ新しいものを使用してください (含まれているはずです。含まれ
ddrescue
てhdparm
いない場合は、apt-get install
それらを使用できます)。Linuxhdparm
カーネルが古すぎると、一部の機能がおかしくなることがあります。ケースを開けてドライブの電源ケーブルを取り外した状態でシステムを起動します。ライブ CD が起動するまで待ってから、電源ケーブルを慎重に接続します。ドライブの回路基板に触れず (端だけを持ち、コンピューターの上部など静電気が発生しない高い場所に置く)、静電気が発生していない場合 (ドライブを取り扱う前にケースの金属部分に触れる)、SATA ドライブでは安全です。これにより、BIOS が起動時に送信して干渉する可能性のある ATA セキュリティ コマンドが回避されます。この質問接続後にドライブが表示されない場合は、次のように表示されます。
編集:によるとこれSATA ドライブは PIO モードをサポートしていない可能性があります (PIO は SATA が登場する前は EIDE のものでした)。ただし、BIOS で AHCI を無効にすると、コントローラーは基本的に EIDE をエミュレートするため、引き続き機能する可能性があります。