无法更改 /etc

无法更改 /etc

我正在使用嵌入式 Linux(使用 LTIB 构建)。

我无法更改/etc目录。基本上我想添加一个启动脚本到/etc/rc.d/init.d

/etc/似乎被安装为 rwfs

输出df -h

Filesystem                Size      Used Available Use% Mounted on
/dev/root                 3.0G    376.9M      2.4G  13% /
tmpfs                   424.2M     36.0K    424.1M   0% /dev
shm                     424.2M         0    424.2M   0% /dev/shm
rwfs                    376.0M      5.1M    370.9M   1% /mnt/rwfs
rwfs                    376.0M      5.1M    370.9M   1% /tmp
rwfs                    376.0M      5.1M    370.9M   1% /var
rwfs                    376.0M      5.1M    370.9M   1% /etc

我努力了 :

umount /etc/ 
touch /etc/dummy  --> just for the sake of checking
reboot
(after boot-up)
ls -lth /etc/dummy ---> file is missing

这是我从 SD 卡启动的映像。在其中一张 SD 卡上,我执行了上述操作umount /etc,然后放置了一个如上所述的虚拟文件,下次启动时,它/etc会按预期重新挂载,tmpfs但虚拟文件可用。但在另一张 SD 卡上,当我尝试相同操作时,虚拟文件​​不可用。

有什么建议么?

输出mount(使用之前umount /etc/):

root@freescale /etc$ mount
rootfs on / type rootfs (rw)
/dev/root on / type ext2 (rw,relatime,errors=continue)
proc on /proc type proc (rw,relatime)
sys on /sys type sysfs (rw,relatime)
tmpfs on /dev type tmpfs (rw,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
shm on /dev/shm type tmpfs (rw,relatime)
rwfs on /mnt/rwfs type tmpfs (rw,relatime,size=385024k)
rwfs on /tmp type tmpfs (rw,relatime,size=385024k)
rwfs on /var type tmpfs (rw,relatime,size=385024k)
rwfs on /etc type tmpfs (rw,relatime,size=385024k)

安装的输出(之后umount /etc):

rootfs on / type rootfs (rw)
/dev/root on / type ext2 (rw,relatime,errors=continue)
proc on /proc type proc (rw,relatime)
sys on /sys type sysfs (rw,relatime)
tmpfs on /dev type tmpfs (rw,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
shm on /dev/shm type tmpfs (rw,relatime)
rwfs on /mnt/rwfs type tmpfs (rw,relatime,size=385024k)
rwfs on /tmp type tmpfs (rw,relatime,size=385024k)
rwfs on /var type tmpfs (rw,relatime,size=385024k)

答案1

这行来自mount

rwfs on /etc type tmpfs (rw,relatime,size=385024k)

说的/etc是事实上tmpfs。现在从维基百科

tmpfs是许多类 Unix 操作系统上临时文件存储设施的通用名称。它旨在显示为已安装的文件系统,但存储在易失性存储器中,而不是持久存储设备中。

存储在中的所有内容tmpfs都是临时的,因为不会在硬盘上创建任何文件;但是,交换空间可在内存不足的情况下用作后备存储。重新启动后,存储在中的所有内容都tmpfs将丢失。

这正是您遇到的情况。

嵌入式系统使用tmpfsfor/etc和一些其他目录,使它们可供任何需要它的程序写入,但同时

  • 避免在写入过程中以及拔掉插头关闭设备时文件系统损坏;
  • 以避免在控制台中执行错误操作时导致操作系统损坏。

可以通过从 USB 启动、运行等方式来拯救“大型”系统。fsck此时,强烈建议仅使用经过验证的配置重新启动。

一般来说,操作系统可能会提供一种方法来提交更改,将它们写入非易失性存储器,下次重新启动时它们将从那里恢复。或者它可能根本不提供方法,也不提供这样的恢复过程。

相关内容