私のドライブはhfs +でフォーマットされていますが、きれいではありません。
mount -f -o rw
たとえば、経由でドライブをマウントしようとすると、dmesg
次のエラーが表示されます。
hfs: Filesystem was not cleanly unmounted, running fsck.hfsplus is recommended.
mounting read-only.
fsck.hfsplus
したがって、次のように(部分的に)hfsprogs
問題を解決しようとすると:
$ fsck -dyf /media/sdd2
** /dev/sdd2
Using cacheBlockSize=32K cacheTotalBlock=1024 cacheSize=32768K.
** Checking HFS Plus volume.
** Detected a case-sensitive catalog.
** Checking Extents Overflow file.
** Checking Catalog file.
Invalid map node linkage
(4, 0)
** Volume check failed.
volume check failed with error 7
volume type is pure HFS+
primary MDB is at block 0 0x00
alternate MDB is at block 0 0x00
primary VHB is at block 2 0x02
alternate VHB is at block 3906291630 0xe8d547ae
sector size = 512 0x200
VolumeObject flags = 0x07
total sectors for volume = 3906291632 0xe8d547b0
total sectors for embedded volume = 0 0x00
-y
またはを使用しても-f
ドライブが修理されませんでした。
これはこのエラーの説明に基づいています。ブログ:
B * - Treeを確認した後、fsckは引き続き割り当てマップを確認します。 fsckは上記のようにヘッドノードをチェックします。次に、各ノードを調べて、マップされたノードとして識別され、正しい数のレコードがあることを確認します。ノードがこれらのチェックに失敗した場合、fsckは「無効なマッピングされたノード」を返します。その後、fsckはノードの高さが0(「無効なノードの高さ」)ではないことを確認します。最後にツリーの一番下まで到達し、mapSize(ツリー内のレコードの総数を格納し、ノードが処理されるたびに減少)がゼロでない場合、fsck は、孤立ノードが存在することを認識し、「間違ったマッピングされたノードリンク」を返します。
しかし、エラーはそれ自体は修正されず、パーティションを書き込み可能にマウントできないため、エラーを修正する方法がわかりません。このエラーを解決する方法についてのアイデアはありますか?
PSディスクユーティリティにも同様の問題があります。
答え1
カタログファイル(Bツリー)指定されたファイルシステム(例:高周波FS+-r
) options を指定して、たとえばfsck
次のようになります。
$ fsck.hfsplus -fryd /dev/sdd2
現在、このオプションは、指定されたファイルシステムに新しいカタログファイルに十分な連続スペースがあり、既存のカタログファイルのリーフノードが破損していない場合にのみ機能します(つまり、fsckは各カタログファイルを参照できます)。 bツリーの要求されたノードが成功しました。)
もちろん、データが破損する危険がない場合は、ディスク操作を実行する前にバックアップ(フルイメージディスクダンプ)を作成してください。
を実行して詳細を確認してくださいman fsck.hfsplus
。
それでも役に立たない場合は、次のような他のツールを使用してディスクを修復してみてください。