Linux
從“FAULTED”zfs 池中恢復。“-F”選項似乎被忽略了
在 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。
然後嘗試:zpool import -f -FX -N -T
$$ txg_number $$ 您從上面的 zdb 獲得 txg_number 的位置。
其他嘗試:將 ZFS 更新到最新的 0.8.3。Ubuntu 附帶的東西非常古老,自該版本以來已經有很多修復和改進。