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

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

我的驅動器已格式化為 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 將傳回「無效的映射節點」。然後 fsck 檢查以確保節點高度不為 0(“無效節點高度”)。最後,如果它已經到達樹的底部並且mapSize(儲存樹中的記錄總數並且每次處理節點時遞減)不為0,fsck 知道存在孤立節點並傳回「無效的映射節點連結」。

但是,我不知道如何修復該錯誤,因為它不會自動更正,而且我無法將分割區安裝為可寫入。有什麼想法如何修復該錯誤嗎?

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

答案1

您應該嘗試重建目錄檔案(B樹)在指定的檔案系統(即高頻FS+) 透過指定-r的選項fsck,例如:

$ fsck.hfsplus -fryd /dev/sdd2

目前,只有當指定檔案系統上有足夠的連續空間用於新目錄檔案並且現有目錄檔案中的葉節點沒有損壞時(換句話說,fsck 能夠遍歷每個目錄檔案),此選項才起作用。請求的b 樹中的節點已成功)。

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

透過跑步查看更多man fsck.hfsplus

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

  • 測試磁碟透過 CGSecurity | Mac、Windows、Linux ( apt-get install testdisk)
  • 磁碟戰士由 Alsoft(商業)- 可啟動磁碟或 Mac 應用程式

相關內容