Technology · 實用指南
Linux 顯示「Read-only file system」?先證明掛載、namespace 與裝置邊界
先把失敗路徑對應到最深 mount,保存第一個 kernel 錯誤,再區分 policy、namespace 隔離、media 保護與 filesystem 損壞。

EROFS 是 mount 或 filesystem state,不是一般 chmod 權限問題;失敗 process 的 mount view 也可能不同。
固定 path、PID、timestamp 與原始 error,找出最深 mount 並保存 kernel/device evidence,再只修已證明 owner。
固定精確失敗邊界
記錄 absolute path、PID、errno、timestamp、operation、identity 與 container/service context,停止會覆蓋 evidence 的重試。
在失敗 context 使用 findmnt -T 與 /proc/PID/mountinfo 找出最深 target,並和 admin shell 比較。
區分 policy 與 error remount
確認 ro 在 VFS、filesystem 或兩層,檢查 fstab、unit、bind、image、overlay 與 cloud volume config。
保存 journalctl -k 或 dmesg 的 first error;ext4 errors=remount-ro 明確會在 error 後轉唯讀。
證明 backing owner 與範圍
映射 SOURCE、UUID、device-mapper、RAID、network export、loop image 或 cloud volume,並檢查 block device。
僅一個 namespace/bind 唯讀就修 mount policy;superblock/device 唯讀時所有相關 path 都受影響。
只修已證明分支
policy 問題修 source config;filesystem/media error 要停寫、保存資料、unmount 或進 recovery environment,再依官方流程處理。
不要猜測式強制 rw、清 logs 或對 mounted writable filesystem 執行 fsck。
在原 namespace 驗收
回到原 service/container/PID view,重查 exact path flags,確認無新 kernel 或 device error。
建立唯一測試檔,write、fsync、read/compare、remove,再觀察一次正常操作;重現就停止。
