JournalしているUFSでfsckに失敗

起動時に下記のようなエラーが出力された。

# fsck -y /dev/ada0p1
** /dev/ada0p1
USE JOURNAL? yes 
** SU+J Recovering /dev/ada0p1
** Reading 33554432 byte journal from inode 5 
RECOVER? yes 
** Building recovery table. 
** Resolving unreferenced inode list. 
** Processing journal entries 
fsck_ufs: Directory 43643675 name not found 
# 

このada0p1はJournalをenableにしており、/ にmountしてあったのだが、この状態になると、fsckでも復旧できず、困ったことになった。

以下対応策

  1. 再起動し、bootselectorからSingle Userで起動
  2. tunefs -j disable /dev/ada0p1
  3. fsck -y /dev/ada0p1
  4. mount / ; rm /.sujournal
  5. 再起動(reboot)してSingle Userで起動
  6. tunefs -j enable /dev/ada0p1
  7. 再度、再起動(reboot)

これで問題が解決した。