在 /opt 執行 mkdir test 報 mkdir: cannot create directory 'test': Read-only file system,但 mount 顯示掛載選項含 rw。經典三大可能:掛載選項實際為 ro、檔案系統髒位/錯誤需 fsck、底層儲存硬體故障。本文提供由輕到重的三階段排查流程。

mount | grep /opt
# 輸出應含 rw
/dev/sda10 on /opt type ext3 (rw,acl,user_xattr)
ro → 檢查 /etc/fstab 對應行是否為 defaults 或明確 rw,修正後 mount -o remount,rw /opt。rw 仍報錯 → 進入階段二。fuser -m /dev/sda10httpd),先停止服務:systemctl stop httpdumount /optfsck 自動修復(ext3/ext4):fsck -V -a /dev/sda10-V 顯示版本,-a 自動確認修復(非互動)。mount /opt
mkdir test 應成功。若 fsck 修復後短期內再次變 ro,或 dmesg / /var/log/messages 出現 I/O error、Buffer I/O error、FAILED Result: hostbyte=DID_ERROR,極大機率為磁碟/控制器/纜線故障。
| 廠商 | 診斷工具 | 關鍵指標 |
|---|---|---|
| HP | hpacucli / ssacli | Physical Drive Status: OK / Predictive Failure / Failed |
| Dell | delldset / omreport | State: Ready / Failed / Foreign |
| IBM/Lenovo | storcli / MegaCLI | Firmware State: Online / Unconfigured Bad |
| 通用 | smartctl -a /dev/sdX | Reallocated_Sector_Ct > 0、Current_Pending_Sector > 0、SMART overall: FAILED |
chattr +i:報錯為 Operation not permitted,非 Read-only file system。Disk quota exceeded 或 Quota exceeded。mkdir 失敗 Read-only
│
├─ mount 顯示 ro? ──是──→ 修正 fstab + remount,rw
│ │
│ 否
│ │
│ ├─ fsck 修復? ──是──→ 觀察是否復發
│ │ │
│ │ 否
│ │ │
│ │ └─ 硬體診斷 (smartctl / 廠商工具) → 更換故障磁碟
│ │
│ 否
│ │
│ └─ 檢查 chatr/quota → 對症處理
按圖索驥,從掛載選項 → 檔案系統修復 → 硬體診斷,三階段精準定位「Read-only file system」根因。
Linux 分區變唯讀導致資料庫停止寫入?升級 SUSE Linux 11 SP2 徹底解決
Linux 編譯報錯 "/usr/bin/ld: cannot find -lxxx" 根因分析與解決方案
Linux 與 Windows 檔案權限機制深度比較:為何 Linux 更安全?
Linux 瀏覽器 HTTPS 頁面阻擋 HTTP 混合內容警報:CSP upgrade-insecure-requests 部署指南
Linux 編譯安裝 MemcacheQ 訊息佇列服務:BerkeleyDB 與 Libevent 依賴完整處理
Linux fdisk 磁碟分區實戰教學:從裝置命名到格式化全流程