Osx

如何修復無效的地圖節點連結?

  • October 9, 2014

我的驅動器格式化為 hfs+ 並且不干淨。

例如,當我嘗試通過 安裝驅動器時mount -f -o rwdmesg顯示錯誤:

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 將返回“Invalid Map Node”。然後 fsck 檢查以確保節點高度不為 0(“無效節點高度”)。最後,如果它已經到達樹的底部並且mapSize(它儲存樹中的記錄總數並且每次處理一個節點時遞減)不為0,則fsck知道有孤立的節點並返回“無效的地圖節點連結”。

但是我不知道如何修復該錯誤,因為它沒有被自動更正,我無法將分區掛載為可寫。任何想法如何解決該錯誤?

PS 磁碟工具也有類似的問題。

您應該通過為 指定選項來嘗試在指定的文件系統(即HFS+ )上重建目錄文件( B-tree ) ,例如:-r``fsck

$ fsck.hfsplus -fryd /dev/sdd2

此選項目前僅在指定文件系統上有足夠的連續空間用於新目錄文件並且現有目錄文件中的葉節點沒有損壞(換句話說,fsck 能夠遍歷每個請求的 btree 中的節點成功)。

當然,如果您不想冒進一步損壞任何數據的風險,請在執行任何磁碟操作之前進行備份(整個映像磁碟轉儲)。

通過執行查看更多資訊man fsck.hfsplus

如果這沒有幫助,請嘗試使用其他一些工具來修復您的磁碟,例如:

引用自:https://unix.stackexchange.com/questions/160068