破損したドライブのパーティションを回復するためにddrescueを使用しようとしています。私は走る:
$ sudo ddrescue -r -1 -v /dev/sdd3 OUT.img dd_rescue_logfile
しばらくはうまくいくようですが、約1時間後にドライブが/ devから消えたため、「現在の速度」は0に低下しました。ドライブを回復するために私が考えることができる唯一の方法は、システムを再起動し、ddrescueコマンドを実行して中断された部分から再起動することでした。これにより、プログラムの実行が非常に困難になります。ただ残して数日間忘れられないからです。ディスクが消えないように継続的に監視する必要があります。私はArch LinuxとFedora 22の両方でこの動作を見ました。
私はある時点でカーネルがドライブへのアクセスを失い、/ devからドライブを削除したとします。これを避ける方法はありますか?デバイスが破損しているように見えるか存在しない場合でも、デバイスをそのままにするようにカーネルに指示しますか?
答え1
正しいモジュールをアンロード/再ロードすると(またはドライバをバインド解除して再バインドした場合)、再起動せずに再スキャンできます。
たとえば、
[ 978.527221] sd 11:0:0:1: [sdk] Attached SCSI removable disk
#~> echo 11:0:0:1 > /sys/bus/scsi/drivers/sd/unbind
#~> echo 11:0:0:1 > /sys/bus/scsi/drivers/sd/bind
[ 5572.027119] sd 11:0:0:1: [sdk] Attached SCSI removable disk
あるいは、この方法が機能しておらず、同じコントローラに接続されている他のデバイスがない場合は、たとえば/sys/bus/pci/drivers/ahci/
AHCIを介してコントローラ全体をバインド解除してバインドできます。
実際に動作しているかどうかをテストする欠陥のあるドライブはありませんが、以前はこの方法を使用して、デフォルトでホットスワップ不可能なスロットからMicroSD / MMCカードを強制的に再検出しました。
ddrescue
速度をゼロに下げる場合は、そのオプションをサポートしていることを-a, --min-read-rate=<bytes>
確認したい場合があります。遅い領域を欠陥として処理してスキップします。最悪のシナリオは、外部からディスクを監視し、強制的に再起動する必要があることですddrescue
。
答え2
USB2NVMEアダプタを使用しており、USBアダプタを抜いて再接続するだけで、故障したドライブを数秒で再起動できます。
つまり、NVMEドライブを直接冷却(12Vファンを使用)すると、ドライブが消えなくなることがわかりました。ドライブが冷えた瞬間からはddrescue
表示されなくなりますddrescue: Input file disappeared: No such file or directory
。
答え3
/dev/sdx
また、起動直後にソースデバイスが消えることがddrescue
あり、SATAドライブをシステムに接続するために使用したUSB「トースター」を抜いて再挿入すると、再起動が発生することがわかります。
ddrescueを再起動すると、数分間実行された直後にクラッシュが発生します。を使用すると、lsblk
ドライブが接続されていることを簡単に確認できます。とにかく、私は1 Ubuntuシステムでddrescueを数回実行し、ddrescueが少し古い(1.23)最新の19.04 Ubuntuで何度も実行しました。
上記とは別の場所で述べたバインド/バインド解除の回避策を試しても問題が発生し、CentOS 7システム(CentOS Linuxバージョン7.7.1908(コア))でddrescueバージョン1.24を使用してddrescueを実行するとkernel 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
成功すると思いました。 !
ドライブが実行されると(/var/log/messagesによって)、多くのエラーが発生しますが、この時点で10時間以上実行され、単一のハードドライブインスタンスが消えませんでした。
私がCentOSを再試行することになったのは、数年前にも同様の回復状況が発生し、当時私が使用していたCentOS 6システムではドライブが失われなかったことを発見したからです。
お役に立てば幸いです。