讨论广场 问答详情
自定义 init 初始化命令没有生效
ljp9405312 2024-07-25 15:20:44
134 评论 分享

rk3588  根目录只读   想修改为可写 

/etc/init/myinit.cfg 

{
    "import" : [],
    "jobs" : [{
            "name" : "init",
            "cmds" : [
        "exec /bin/mkdir  -p  /data/aa",
         "exec /bin/mount -o remount,rw /"

            ]
        }
    ]
}

aa  目录建立了,但是 mount  根目录 重新 安装为可写始终 不成功

放到其他位置一样。。

手工执行 /bin/mount -o remount,rw /  可以修改 可写

 

 

另外这里修改了  可读写  系统起来 也没有生效,必须手动执行命令 remount 

# cat /vendor/etc/fstab.dayu210
# fstab file.
#<src>                                                  <mnt_point> <type>    <mnt_flags and options>                              <fs_mgr_flags>
/dev/block/platform/fe2e0000.mmc/by-name/system               /       ext4     rw,barrier=1  wait,required
/dev/block/platform/fe2e0000.mmc/by-name/vendor              /vendor        ext4     ro,barrier=1  wait,required
/dev/block/platform/fe2e0000.mmc/by-name/sys-prod              /sys_prod        ext4     ro,barrier=1  wait
/dev/block/platform/fe2e0000.mmc/by-name/chip-prod              /chip_prod        ext4     ro,barrier=1  wait
/dev/block/platform/fe2e0000.mmc/by-name/userdata               /data       f2fs     discard,noatime,nosuid,nodev,fscrypt=2:aes-256-cts:aes-256-xts  wait,check,fileencryption=software,quota
/dev/block/platform/fe2e0000.mmc/by-name/misc /misc none none wait,required
 

# cat /proc/cmdline
earlycon=uart8250,mmio32,0xfeb50000 root=PARTUUID=614e0000-0000 rw rootwait rootfstype=ext4 console=ttyFIQ0 hardware=dayu210 default_boot_device=fe2e0000.mmc ohos.required_mount.system=/dev/block/
platform/fe2e0000.mmc/by-name/system@/usr@ext4@rw,barrier=1@wait,required ohos.required_mount.vendor=/dev/block/platform/fe2e0000.mmc/by-name/vendor@/vendor@ext4@rw,barrier=1@wait,required ohos.re
quired_mount.misc=/dev/block/platform/fe2e0000.mmc/by-name/misc@none@none@none@wait,required ohos.required_mount.bootctrl=/dev/block/platform/fe2e0000.mmc/by-name/bootctrl@none@none@none@wait,requ
ired
 

134 评论 分享
写回答
全部评论(9)
2 楼

可以试试在init/services/init/standard/switch_root.c中SwitchRoot函数,mount函数添加读写权限参数

 

 

2024-07-25 16:23:15
2024-07-25 17:57:30
引用:“改成"mount rootfs rootfs / remount bind rw nodev",”
非常感谢 OK 了 还要放在 post-fs- 如果是 init 段也不生效 。。。。。。。 "jobs" : [{ "name" : "post-fs-data",
2024-07-25 17:57:30
2024-07-25 17:33:13
引用:“引用内容已删除”
有什么场景一定要写到/目录吗
2024-07-25 17:33:13
2024-07-25 17:01:53
引用:“再确认下这里的init.cfg配置,记得很早之前自己改过,可以挂载为读写,如果验证可以的话,帮忙点采纳回答。”
改成"mount rootfs rootfs / remount bind rw nodev",
2024-07-25 17:01:53
2024-07-25 16:57:15
引用:“感谢 ~~~ 只有 MS_RDONLY 默认没有这个参数,应该是可读写吧。 没有看到可读写 参数?”
再确认下这里的init.cfg配置,记得很早之前自己改过,可以挂载为读写,如果验证可以的话,帮忙点采纳回答。
2024-07-25 16:57:15
2024-07-25 16:44:50
感谢 ~~~ 只有 MS_RDONLY 默认没有这个参数,应该是可读写吧。 没有看到可读写 参数?
2024-07-25 16:44:50
1 楼

系统挂载system和vendor的时候优先会读取cmdline里面的配置,fstab.dayu210里面的对应配置并不会采用,可以尝试修改设备树里面的bootargs看看

device/soc/rockchip/rk3588/kernel/arch/arm64/boot/dts/rockchip/rk3588-linux.dtsi

2024-07-25 16:01:34
2024-07-25 16:06:39
"exec /bin/mount -o remount,rw /" 这个命令执行 和它机制无关吧, 这个命令 在起来后 手动执行 ok , 是不是 可能执行 有一定开销 ,失败了?
2024-07-25 16:06:39
2024-07-25 16:04:36
cmdline 也修改了 见 正文
2024-07-25 16:04:36