概要
TrueNASを崩したあとにHDDのみある場合にZFSファイルシステムからデータをサルベージしたときの備忘録
Ubuntu をインストール
ZFSを簡単にマウントするため、仮想環境にUbuntuをインストールして、ZFSユーティリティをインストールする。
root@ubuntu:~# apt install --yes zfsutils-linux
zfsutils-linux は、ZFS ユーティリティを提供するパッケージです。
- zpool: ZFS プールを作成、管理するユーティリティ
- zfs: ZFS ボリューム、スナップショット、メタデータを管理するユーティリティ
- zfs-mount: ZFS ボリュームをマウントするユーティリティ
HDDを接続
USBのケースにHDDをいれ、仮想マシンにマウントする。
Ubuntuで認識されたことを確認する。
root@ubuntu:~# fdisk -l
~~~~~
Device Start End Sectors Size Type
/dev/sdb1 128 4194304 4194177 2G Linux swap
/dev/sdb2 4194432 15628053134 15623858703 7.3T Solaris /usr & Apple ZFS
ZFS Pool をマウントする
まず、Pool名が不明なのでZFS プールをインポートを試します。
root@ubuntu:~# zpool import
pool: DataStore-001
id: 14948082992506273991
state: UNAVAIL
status: The pool was last accessed by another system.
action: The pool cannot be imported due to damaged devices or data.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
config:
DataStore-001 UNAVAIL missing device
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ONLINE
logs
YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY UNAVAIL
ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ UNAVAIL
state: UNAVAIL と表示されているので、インポートに失敗しています。
action メッセージから、プールは破損したデバイスまたはデータのためにインポートできていません。
config セクションから、プールは DataStore-001 という名前で、2 つのデバイスで構成されています。デバイス XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX は ONLINE 状態ですが、デバイス YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY と ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZは UNAVAIL 状態です。(ログを別ディスクとしていたため。)
欠落しているデバイス YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY と ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZを復旧するか、交換する必要がありますが、デバイスは存在しないので、下記のコマンドで強制的にインポートし、メンテナンスモードで起動します。
root@ubuntu:~# zpool import -f DataStore-001 -m
ZFS プールのステータスを表示します。
HEALTH は DEGRADED 状態でプールが冗長性を失っていることを示します。
root@ubuntu:~# zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
DataStore-001 7.27T 3.45T 3.82T - - 1% 47% 1.00x DEGRADED -
本来であればデバイスの復旧を行うべきですが、今回はデータのサルベージのみなのでデータの退避をおこないます。
root@ubuntu:~# zpool status
pool: DataStore-001
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
scan: scrub repaired 0B in 06:03:51 with 0 errors on Sat Oct 7 21:03:53 2023
config:
NAME STATE READ WRITE CKSUM
DataStore-001 DEGRADED 0 0 0
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ONLINE 0 0 0
logs
YYYYYYYYYYYYYYYYYYYY UNAVAIL 0 0 0 was /dev/disk/by-partuuid/YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY
ZZZZZZZZZZZZZZZZZZZZ UNAVAIL 0 0 0 was /dev/disk/by-partuuid/ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ
SAMBAで退避先をマウントする
ファイル共有している別サーバをマウントする。
mkdir /samba_mount
mount -t cifs -o username='usernaem',password='password' //SAMBA/Share /samba_mount
コピー
cp -pr /DataStore-001/* /samba_mount/.

コメント