switchroot: Document a bit more, add demo shell implementation

This could help others who want to integrate with other init
systems/initramfs.

Commit-message-by: Colin Walters <walters@verbum.org>

Closes: #784
Approved by: cgwalters
This commit is contained in:
Francesco Giannelli authored and Atomic Bot committed 2017-04-19 18:52:05 +00:00
1 parent 49a525f6a5
commit dea2025531
2 files changed
+40 -9

No files matched your search

+25
View File
@@ -0,0 +1,25 @@
#!/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