2025/04/05(土)Ubuntuをアップグレードしたらmonitが /home 以下だけ読み込めなくなった件

そのような現象が起きたのですが、Web検索しても解決方法が載っていなかったのでこちらに書きます。誰かの助けになれば幸いです。

動作検証

  • /home/hoge.txt -> x
  • /home/user/hoge.txt -> x
  • /hoge.txt -> o
  • /usr/hoge.txt -> o
  • /dir/hoge.txt -> o (dirは自分で適当に作ったディレクトリ)

    x:monitのCHECK FILEで読み込めない。確かに存在するのに not found と出る(パーミッションも問題ないのに)
    o:monitのCHECK FILEで読み込める

という不具合でした。(CHECK FILEで読み込めないので他の CHECK xx もできない)

monitはroot権限で動いているので、/home 以下を読めるのが想定される動きですが、/home 以下だけなぜか読み込めない現象が生じました。

詳しい原因は不明ですが、monitでrootから別のユーザーになれないみたいなエラーが出たのでそれが何か影響している可能性が高いです。Ubuntuのアップグレード前は正常に読み込めていたので、アップグレードで何かが壊れたとみて間違いなさそうです。

問題解消のための試行錯誤

問題解消のための実験1:/home ディレクトリを作り直す → 一時的に問題解消したがOSを再起動すると再発

/home でなければ読み込めるため、別の /dir を作って、/home 以下のものを全部 /dir にコピーして、 /home を /home_old にリネームして、/dir を /home にリネーム――というのを試してみました。

最初はそれで問題解消したようにみえたのですが、OSを再起動すると同じ /home 以下が読めない問題が再発しました。

問題解消のための実験2:monit をソースからコンパイルしてインストール → 問題解消

少々手間がかかって面倒ですがこちらで問題が解消しました! やり方はWeb検索すると出ると思います。apt remove monit して、元からあったmonitを削除してからインストールしました。

元からあったmonitがUbuntuのアップグレードで正常に動かなくなった原因は依然として謎のままですが…。