突然ルートファイルシステムに一切書き込みができなくなった。ファイルに書き込む類のコマンドはすべてRead-only file systemでエラーが出るし適当にtouch hogehogeしてみても同じエラーが出る。
mount | grep /dev/sdしてみると案の定
/dev/sdb2 on / type ext4 (ro,relatime,errors=remount-ro)
となっていてルートファイルシステム/がro=read-onlyになっている。それと同時に原因もわかる。ディスクにエラーが発生し、errors=remount-roによってRead-onlyでremountされたのだろう。
errors=continue / errors=remount-ro / errors=panic エラーが起こったときの振る舞いを指定する。 (エラーを無視し、ファイルシステムに問題があることを記録だけして続ける / ファイルシステムをリードオンリーでマウントしなおす / パニックを起こしてシステムを停止する) デフォルトはファイルシステムのスーパーブロックに設定されている。 これは tune2fs(8) を用いて変更することができる。 https://linuxjm.osdn.jp/html/util-linux/man8/mount.8.html
だそうだ。continueするとエラーのあるファイルシステムでさらに書き込みが行われ復旧が困難になる恐れがある。かといってpanicされてシステムが停止されても困るのでubuntuのfstabに書かれているデフォルトとしては妥当だろう。
sudo fsck -l /dev/sdb2
してyを押しまくったらファイルシステムのエラーは修復された。その後再起動すると無事に(rw,relatime,errors=remount-ro)に復旧された。