26 lines
995 B
Bash
26 lines
995 B
Bash
#!/bin/sh
|
|
|
|
# This demonstration script is an implementation in shell
|
|
# similar to ostree-prepare-root.c. For a bit more information,
|
|
# see adapting-existing.md.
|
|
|
|
## the ostree boot parameter is avaialbe during the init
|
|
env | grep ostree
|
|
# ostree=/ostree/boot.1/.../.../0
|
|
## bind mount the ostree deployment to prepare it for move
|
|
mount --bind $sysroot$ostree $sysroot$ostree
|
|
## bind mount read-only /usr
|
|
mount --bind $sysroot$ostree/usr $sysroot$ostree/usr
|
|
mount --bind -o remount,ro $sysroot$ostree/usr $sysroot$ostree/usr
|
|
## bind mount the physical root
|
|
mount --bind $sysroot $sysroot$ostree/sysroot
|
|
## bind mount the var directory which is preserved between deployments
|
|
mount --bind $sysroot/ostree/deploy/os/var $sysroot$ostree/var
|
|
## make sure target directories are present within var
|
|
cd $sysroot$ostree/var
|
|
mkdir -p roothome mnt opt home
|
|
cd -
|
|
## move the deployment to the sysroot
|
|
mount --move $sysroot$ostree $sysroot
|
|
## after these the init system should start the switch root process
|