NASで使用中のHDDがコワレタのでリペアします。
Ubuntuの起動時にNASをマウントするようにしているのですが、どうやらマウントしていないようです。もう数年間は使っているHDDなのでそろそろ壊れる頃だなと思っていたので、遂にこの日が来てしまったかと。。
でもね、まだ諦めるのは早いです。論理的に壊れているだけで、物理的には壊れていないかもしれません。なので、HDDが物理的に壊れてなければ助かる道があるかも知れません。
ますは、対象のHDDをUSBでPCに接続してみる
———————————
Unable to mount 2.0 TB ボリューム
Error mounting /dev/sdd1 at /aaa/moge2/s1d2f1sa3d21as32d1f: Command-line `mount -t “xfs” -o “uhelper=udisks2,nodev,nosuid” “/dev/sdd1” “/aaa/moge2/s1d2f1sa3d21as32d1f”‘ exited with non-zero exit status 32: mount: Structure needs cleaning
「Structure needs cleaning」:構造はクリーニングが必要です!
だと。。
xfs_checkで確認してみる
———————————
sudo xfs_check /dev/sdd1
sudo xfs_check /dev/sdd1
[sudo] password for hoge:
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed. Mount the filesystem to replay the log, and unmount it before
re-running xfs_check. If you are unable to mount the filesystem, then use
the xfs_repair -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption — please attempt a mount
of the filesystem before doing this.
hoogehoge@brokendish:~$
メタデータが変更されちゃってるよヤバイよ的なことを言っている
では、それを直せればいいのですね。。
「xfs_repair -L」で修復するのですが
redhatに以下の記載が、、
「ログが破損していて再生できない場合は -L (ログのゼロ化を強制) オプションを使ってログの消去を行います (xfs_repair -L /dev/device)。 ただし、 これを行うと破損が悪化したりデータを損失したりする場合があります。」
もう掛けですね、ヤルしか無い。
(バックアップもNAS2号機に取ってあるので)
xfs_repair -L
———————————
sudo xfs_repair -L /dev/sdd1
Phase 1 – find and verify superblock…
Phase 2 – using internal log
– zero log…
ALERT: The filesystem has valuable metadata changes in a log which is being
destroyed because the -L option was used.
– scan filesystem freespace and inode maps…
– found root inode chunk
Phase 3 – for each AG…
– scan and clear agi unlinked lists…
– process known inodes and perform inode discovery…
– agno = 0
– agno = 1
– agno = 2
– agno = 3
– agno = 4
– agno = 5
– agno = 6
– agno = 7
– agno = 8
– agno = 9
– agno = 10
– agno = 11
– agno = 12
– agno = 13
– agno = 14
– agno = 15
– agno = 16
– agno = 17
– agno = 18
– agno = 19
– agno = 20
– agno = 21
– agno = 22
– agno = 23
– agno = 24
– agno = 25
– agno = 26
– agno = 27
– agno = 28
– agno = 29
– agno = 30
– agno = 31
– process newly discovered inodes…
Phase 4 – check for duplicate blocks…
– setting up duplicate extent list…
– check for inodes claiming duplicate blocks…
– agno = 0
– agno = 1
– agno = 2
– agno = 3
– agno = 4
– agno = 5
– agno = 6
– agno = 7
– agno = 8
– agno = 9
– agno = 10
– agno = 11
– agno = 12
– agno = 13
– agno = 14
– agno = 15
– agno = 16
– agno = 17
– agno = 18
– agno = 19
– agno = 20
– agno = 21
– agno = 22
– agno = 23
– agno = 24
– agno = 25
– agno = 26
– agno = 27
– agno = 28
– agno = 29
– agno = 30
– agno = 31
Phase 5 – rebuild AG headers and trees…
– reset superblock…
Phase 6 – check inode connectivity…
– resetting contents of realtime bitmap and summary inodes
– traversing filesystem …
– traversal finished …
– moving disconnected inodes to lost+found …
Phase 7 – verify and correct link counts…
done
終わったのでマウントしてみる
sudo mount /dev/sdd1 /mnt/Abc
ファイルにアクセス出来るようになったのでOK。
一部は壊れてるかも知れないけど、直ったぽい。