Ubuntuでは、最近、外付けUSBハードドライブでZFSを試し始めました。現在、zfsプールが破損しているようです。これは、コンピューターを(poweroff
を使用して)シャットダウンした結果として発生した可能性があります。
$ zpool import
pool: zfs
id: 1234512345123451234
state: FAULTED
status: The pool metadata is corrupted.
action: The pool cannot be imported due to damaged devices or data.
The pool may be active on another system, but can be imported using
the '-f' flag.
see: http://zfsonlinux.org/msg/ZFS-8000-72
config:
zfs FAULTED corrupted data
usb-Disk_Name_etc-0:0 ONLINE
インポートしようとすると、約1秒のデータが失われ(これで問題ありません)、「-F」オプションを使用して回復を試みることができることを説明するこの役立つメッセージが表示されます。
$ zpool import zfs
cannot import 'zfs': I/O error
Recovery is possible, but will result in some data loss.
Returning the pool to its state as of Thu 12 Mar 2020 00:58:03 GMT
should correct the problem. Approximately 1 seconds of data
must be discarded, irreversibly. Recovery can be attempted
by executing 'zpool import -F zfs'. A scrub of the pool
is strongly recommended after recovery.
ドライランフラグを使用して、-Fが機能することを確認します。
$ zpool import -Fn zfs
Would be able to return zfs to its state as of Thu 12 Mar 2020 00:58:03 GMT.
Would discard approximately 1 seconds of transactions.
しかし、私が本物を試してみると、「-F」オプションを完全に無視しているようで、元のメッセージを繰り返します。
$ zpool import -F zfs
cannot import 'zfs': I/O error
Recovery is possible, but will result in some data loss.
Returning the pool to its state as of Thu 12 Mar 2020 00:58:03 GMT
should correct the problem. Approximately 1 seconds of data
must be discarded, irreversibly. Recovery can be attempted
by executing 'zpool import -F zfs'. A scrub of the pool
is strongly recommended after recovery.
この回答から「-X」オプションについての言及を見つけました: https://serverfault.com/a/645866/74394 しかし、まったく同じメッセージが表示され続けます。プール名(zfs)と数値ID番号(1234512345123451234など)の両方を使用して、これらのオプションの組み合わせをすべて試しましたが、-Fオプションの使用を提案する上記とまったく同じメッセージが常に表示されます。
-F
-FX
-f
-fF
-fFX
私はここで明らかに間違ったことをしていますか?システムのシャットダウンが原因で1秒のデータが原因でディスク全体が取り返しのつかないほど失われた場合、ZFSは非常に不安定に見えます。 ZFSを試し始めたばかりなので、プールのバックアップコピーがありません。助けてくれてありがとう。
そのUSBデバイスがコミットについて嘘をついている場合、書き込みは並べ替えられる可能性があるため、すべての賭けはオフになり、書き込みの並べ替えとバリアについて嘘をつく間は、メタデータが破棄されるかどうかについてすべての賭けがオフになります。
試してください:zdb -e zfs -ul
これはうまくいけばいくつかのtxgsをリストします。
次に、次のことを試してください。zpoolimport -f -FX -N -T [txg_number]
上記のzdbからtxg_numberを取得しました。
その他の試み:ZFSを最新の0.8.3に更新します。 Ubuntuに同梱されているものはかなり古く、そのバージョン以降、多くの修正と改善が行われています。