invalid sibling link
自宅サーバーのファイルシステムに深刻なダメージが・・・
この自宅サーバー(Mac mini G4)だが、内蔵SSD(HFS+)のファイルシステムの何処かに異常が生じたらしく、ここ数日定期バックアップが失敗するようになっていた。現象としては特定のディレクトリ、ファイルが読み出せない状態になってしまっていて、当該ディレクトリ、ファイルの削除を試みても「ファイルは存在しない、ディレクトリが空ではないので削除できない」となってしまう。
シングルユーザーモードで起動して "fsck -fy" で修復を試みたのだが、"invalid sibling link" というエラーが出て修復が失敗する。この sibling linkエラーっていうヤツを調べてみたところ、ファイルシステム(HFS+)に結構深刻なダメージが生じているようで、カタログB-treeに不整合が生じているらしい。sibling linkはB-tree(二分木)の兄弟連鎖の情報のことなんだと思うけど、これが何の構造を表しているのか?とか、何故この情報が壊れたのか?などはサッパリ分からない。
ただ修復方法はネット検索して見つけることができた。修復するにはカタログB-treeを再構築する必要があるらしく、今回は以下の方法で何とか復旧できた。
# fsck_hfs -rf /dev/rdisk0s3
** /dev/rdisk0s3
** Root file system
** Checking HFS Plus volume.
** Detected a case-sensitive catalog.
** Checking Extents Overflow file.
** Checking Catalog file.
** Rebuilding Catalog B-tree.
Invalid node structure
(4, 40792)
** Rechecking volume.
** Checking HFS Plus volume.
** Detected a case-sensitive catalog.
** Checking Extents Overflow file.
** Checking Catalog file.
Incorrect number of thread records
(4, 33203)
** Checking multi-linked files.
** Checking Catalog hierarchy.
Invalid directory item count
(It should be 55 instead of 136)
** Checking Extended Attributes file.
** Checking volume bitmap.
** Checking volume information.
Invalid volume free block count
(It should be 16749922 insted of 16546971)
Volume Header need minor repair
(2, 0)
** Repairing volume.
** Rechecking volume.
** Checking HFS Plus volume.
** Detected a case-sensitive catalog.
** Checking Extents Overflow file.
** Checking Catalog file.
** Checking multi-linked files.
** Checking Catalog hierarchy.
** Checking Extended Attributes file.
** Checking volume bitmap.
** Checking volume information.
** The volume MacHD was repaired successfully.
***** FILE SYSTEM WAS MODIFIED *****
|
上記の /dev/rdisk0s3 は "fsck -fy" した時に表示されたrootファイルシステムのデバイス名。これを間違えると修復できないし、かえって事態を悪化させる可能性もあるので注意した方がいいかも。
修復には30分くらいはかかったと思う。
|