Ubuntuで急に読み込み専用ファイルシステムになった
Raspberry Pi 4上のUbuntuで読み取り専用ファイルシステム問題を解決。fsckを用いた詳細な修復手順を備忘録として共有。
目次
概要
Raspberry Pi 4 Model B Rev 1.2のUbuntu 20.10にて、Kubernetes v1.20.4を動かしており、POD上でgitlabの日次バックアップを実施している時間帯でファイルシステムが壊れ、読み込み専用ファイルシステムになっておりました。
これらの影響により、nodeが使用不可になり、名前解決が出来ない状態に陥りました。
備忘録として対応したことを記録する。
警告:fsck コマンドを使用して、システム領域を修正する場合は、手動で電源 Off/On
できる環境で実施するようにしてください。
事象
/root/
配下にtouchコマンドができない状態を確認。
touch test
touch: 'test' に touch できません: 読み込み専用ファイルシステムです
名前解決不可であることを確認。
curl ifconfig.io
curl: (6) Could not resolve host: ifconfig.io
Failed to start Network Name Resolution.
となり、名前解決サービスが起動不可になることを確認。
systemctl status systemd-resolved
● systemd-resolved.service - Network Name Resolution
Loaded: loaded (/lib/systemd/system/systemd-resolved.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2021-07-20 20:44:25 JST; 2s ago
Docs: man:systemd-resolved.service(8)
https://www.freedesktop.org/wiki/Software/systemd/resolved
https://www.freedesktop.org/wiki/Software/systemd/writing-network-configuration-managers
https://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients
Process: 2930 ExecStart=/lib/systemd/systemd-resolved (code=exited, status=226/NAMESPACE)
Main PID: 2930 (code=exited, status=226/NAMESPACE)
7月 20 20:44:25 k8s-node-a systemd[1]: systemd-resolved.service: Start request repeated too quickly.
7月 20 20:44:25 k8s-node-a systemd[1]: systemd-resolved.service: Failed with result 'exit-code'.
7月 20 20:44:25 k8s-node-a systemd[1]: Failed to start Network Name Resolution.
現在時刻がおかしくなることを確認。
date
2021年 7月 20日 火曜日 20:37:43 JST
対処
/(ルート)
システムで書き込みが出来ない状態になっていますので、fsckコマンドを使用し、ファイルシステムの修正をします。
ファイルシステム修正を実施するデバイスの確認をおこないます。
fdisk -l
...[中略]...
ディスク /dev/sda: 57.76 GiB, 62018519040 バイト, 121129920 セクタ
Disk model: USB 3.0 DISK
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x254a9658
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sda1 * 2048 526335 524288 256M c W95 FAT32 (LBA)
/dev/sda2 526336 121129919 120603584 57.5G 83 Linux
デバイス /dev/sda2
が /(ルート)
となります。
df -PTh
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 380M 19M 362M 5% /run
/dev/sda2 ext4 57G 29G 26G 53% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/sda1 vfat 253M 153M 100M 61% /boot/firmware
tmpfs tmpfs 380M 8.0K 380M 1% /run/user/1000
fsck
コマンドを使用し、対象のデバイスを修復します。
修正<y>?
のように修正するか確認がでるので yes
を押します。
他にも、修正箇所がある場合、都度確認が求められますので yes
を押します。
fsck -f /dev/sda2
fsck from util-linux 2.36
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking iノードs, blocks, and sizes
Iノードs that were part of a corrupted orphan linked list found. 修正<y>? yes
Iノード 34490 was part of the orphaned iノード list. FIXED.
Iノード 1181537 has a extra size (11824) which is invalid
修正<y>? yes
...[中略]...
writable: ***** ファイルシステムは変更されました *****
writable: ***** REBOOT SYSTEM *****
writable: 412572/3769136 files (0.2% non-contiguous), 7686354/15075448 blocks
ファイルシステムの修復が完了すると、 reboot
する必要がありますので、手動で電源 Off/On
します。
筆者の環境では、ファイルシステム修正後、 reboot
コマンド、 shutdown
コマンドが使用出来ない状態となったため、手動で再起動しています。
対処後
対処後、冒頭の事象で確認したコマンドを打ち、問題ないことが確認できれば問題ありません。
まとめ
原因はまったく分かりませんが、今後、発生しないことを祈ります。