我正在处理运行Linux的嵌入式设备。该设备的制造商对其进行了设置,以便将根文件系统加载为只读。
在/ etc / mtab中:
rootfs / rootfs rw 0 0
/dev/root / squashfs ro,relatime 0 0
这意味着我无法修改/ etc中的任何文件,例如添加新用户。
我试过重新挂载根目录:
mount -o remount,rw -t squashfs /dev/root /
但是我得到一个错误
mount: cannot remount block device /dev/root read-write, is write-protected
我查了这个错误,有人说要使用blockdev。该系统未安装blockdev,因此我对其进行了交叉编译并进行了复制。然后我跑了
blockdev --setrw rootfs
但是我又得到一个错误:
blockdev: cannot open rootfs: No such file or directory
如果尚未使/ etc可写,是否有可能?我具有对系统的超级用户访问权限,但无法访问文件系统“脱机”,所有更改都必须通过Bash命令来完成。
/etc
在启动时根据nvram中的某些设置覆盖文件。因此,要更改文件,/etc
请设置“魔术”系统变量,将其提交给nvram,然后重新加载配置或重新启动。绝大多数家用路由器都是这样工作的。但是确切的机制和命令是特定于系统的。