0

I'm currently trying to update the network settings on an embedded Linux device. This is typically done by modifying the contents of file /opt/etc/network/interfaces. The file system mounted at /opt/ is by default RO, however, we temporarily change this to RW while we update the file contents by using the command

mount -o remount,rw /opt

I confirm that the file system has been updated to RW by looking at the contents of /proc/mounts

enter image description here

I believe the file system is now read-writable since I see the RW letters.

However, when I go to modify the file, I get a read-only error.

enter image description here

This confuses me. The file system is read-write per /proc/mounts, however, I'm still getting a file system error. I'm not a file system master, but I have three theories of what's going:

  1. The storage device has some sort of memory lock (i.e. switch) enabled.
  2. This file actually lives in a nest file system, so it's not actually hosted on /opt
  3. I'm a dummy and am missing something obvious.
6
  • Maybe it's SquashFS? Jan 4, 2022 at 20:37
  • Does anything interesting appear in the system logs (especially the kernel logs), either at the time of mounting or at the time of the access attempt? Regarding 2, check df /path/to/file. Jan 4, 2022 at 21:07
  • @Gilles'SO-stopbeingevil' Alright, I think we're onto something. It says the file is mounted on "/opt/vfat". I guess i'm a file system rookie because that makes no since to me given the file location.
    – Izzo
    Jan 4, 2022 at 21:13
  • There must be a symbolic involved. Check namei /path/to/file or readlink -f /path/to/file Jan 4, 2022 at 21:18
  • 1
    Your image of text isn't very helpful. It can't be read aloud or copied into an editor, and it doesn't index very well. Please edit your post to incorporate the relevant text directly (preferably using copy+paste to avoid transcription errors). Jan 11, 2022 at 16:25

1 Answer 1

1

Nothing in your question proves that the file /opt/etc/network/interfaces is actually on the /opt filesystem. One of the directories on that path could be a mount point. Or, more likely, either /opt/etc/network/interfaces itself or one of the directories /opt/etc or /opt/etc/network is actually a symbolic link whose target is on another filesystem.

To see what filesystem /opt/etc/network/interfaces is actually on, run

df /opt/etc/network/interfaces

If /opt/etc/network/interfaces itself is a symbolic link, this reports the location of the symbolic link. Check with ls -l /opt/etc/network/interfaces.

Linux provides a convenient utility namei to see all the symbolic links involved in a path.

namei /opt/etc/network/interfaces

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .