mkdir out && cd out cpio -idv < ../initrd.img
ref: 這一篇的方法好像不需要 用到 initramfs,只需要在真正 init 起來之前做就可以。
修改 kernel boot cmd,init=/myinit
然後myinit 就啟動 /bin/sh
進入後,測試 command:
mkdir : OK
mount / /rom : OK
mount -o remount,ro /rom : fail, 說沒有 /proc/mounts
所以 myinit 要加上
mount -t proc none /proc之後 remount OK
最後是
exec chroot /rom /linuxrc這樣就可以了。
要測試就把上面改成
/bin/sh就會開進 shell 測試在這時候的 command 有沒有用。
mount --move 是變更 mount 位置,這樣就不用 unmount 之後再 mount
成功! final version ( /overlay folder must be created in first):
#!/bin/sh mount -t proc none /proc mount -t tmpfs none /overlay mkdir /overlay/lower mkdir /overlay/upper mkdir /overlay/worker mkdir /overlay/newroot mount / /overlay/lower mount -o remount,ro /overlay/lower mount -t overlay overlay -olowerdir=/overlay/lower,upperdir=/overlay/upper,workdir=/overlay/worker /overlay/newroot exec chroot /overlay/newroot /linuxrc測試...開機後,在 / create abc, ls to see if exist.
reboot, see abc disappear
用 mount 看:
overlay on / type overlay (rw,relatime,lowerdir=/overlay/lower,upperdir=/overlay/upper,workdir=/overlay/worker)大概是成功了。
沒有留言:
張貼留言