Files

當文件系統說它已啟用讀寫時,“寫入文件時出錯,只讀文件系統”

  • January 5, 2022

我目前正在嘗試更新嵌入式 Linux 設備上的網路設置。這通常通過修改文件 /opt/etc/network/interfaces 的內容來完成。掛載在 /opt/ 的文件系統預設為 RO,但是,我們在使用命令更新文件內容時暫時將其更改為 RW

mount -o remount,rw /opt

我通過查看 /proc/mounts 的內容確認文件系統已更新為 RW

在此處輸入圖像描述

我相信文件系統現在是可讀寫的,因為我看到了 RW 字母。

但是,當我去修改文件時,我得到一個只讀錯誤。

在此處輸入圖像描述

這讓我很困惑。文件系統根據 /proc/mounts 是可讀寫的,但是,我仍然遇到文件系統錯誤。我不是文件系統大師,但我對正在發生的事情有三種理論:

  1. 儲存設備啟用了某種記憶體鎖定(即開關)。
  2. 該文件實際上存在於嵌套文件系統中,因此它實際上並未託管在 /opt
  3. 我是個假人,缺少一些明顯的東西。

您的問題中沒有任何內容可以證明該文件/opt/etc/network/interfaces實際上位於/opt文件系統上。該路徑上的目錄之一可能是安裝點。或者,更有可能是/opt/etc/network/interfaces它本身或目錄之一,/opt/etc或者/opt/etc/network實際上是一個符號連結,其目標位於另一個文件系統上。

要查看/opt/etc/network/interfaces實際在哪個文件系統上,請執行

df /opt/etc/network/interfaces

如果/opt/etc/network/interfaces它本身是一個符號連結,這將報告符號連結的位置。檢查與ls -l /opt/etc/network/interfaces

Linux 提供了一個方便的實用程序namei來查看路徑中涉及的所有符號連結。

namei /opt/etc/network/interfaces

引用自:https://unix.stackexchange.com/questions/685038