From ca1c9e5a2f1f34eea166eeb5735aded680717bd0 Mon Sep 17 00:00:00 2001 From: Michael Chesterton Date: Sun, 10 Mar 2019 15:06:27 +1100 Subject: [PATCH] polish and add --- README.md | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 971e494..92d07a3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,12 @@ mounts an overlay filesystem over the root filesystem I use this for my Raspberry Pi, but it should work on any Debian or derivative. -It uses initramfs. Stock Raspbian doesn't use one so step one would be to get initramfs working. Something like: + +The root file system on the sd-card is mounted read-only on /overlay/lower, and / is a +read-write copy on write overlay. + +It uses initramfs. Stock Raspbian doesn't use one so step one would be to get initramfs working. +Something like: ```bash sudo mkinitramfs -o /boot/init.gz @@ -42,17 +47,39 @@ if [ ! -z "${IMCHROOTED}" ]; then PS1="chroot(${IMCHROOTED})\w:# " fi ``` -I use rootwork to work on the real root filesystem. -I put it in ~/bin and add ~/bin to my path - -After rebooting, the root filesystem should be an overlay. If it's on tmpfs any changes made will be lost after a reboot. If you want to upgrade packages, for example, run `rootwork`, the prompt should change to +After rebooting, the root filesystem should be an overlay. If it's on tmpfs any changes +made will be lost after a reboot. If you want to upgrade packages, for example, +run `rootwork`, the prompt should change to ```bash chroot(/overlay/lower)/:# ``` -You're now making changes to the sdcard, and changes will be permanent. -After you've finished working on the sdcard run `exit`. rootwork tries to clean up by umounting all the mounts it mounted, but often it can't umount a filesystem due to a lock file or something else causing the filesystem to be busy. It's probably a good idea to reboot now for 2 reasons, 1 to clear the mounts that couldn't be umounted, and also to test it still boots ok after the changes you've just made. +You're now making changes to the sdcard, and changes will be permanent. + +I use `rootwork` to work on the real root filesystem. +I put it in ~/bin and add ~/bin to my path. + +The /run directory is problematic to umount, so atm `rootwork` --rbind mounts it +on the sd-card root file system, /overlay/lower, and it isn't umounted like /boot +/proc /sys and /dev are. + +After you've finished working on the sd-card run `exit`. `rootwork` tries to clean up +by umounting all the mounts it mounted and remount /overlay/lower read-only, but +often it can't due to an open file or something else causing the filesystem to be busy. +It's probably a good idea to reboot now for 2 reasons: + +- leaving /overlay/lower read-write could cause file corruption on power loss. +- to test it still boots ok after the changes you've just made. + +Whenever the kernel is updated you need to rerun + +```bash +sudo mkinitramfs -o /boot/init.gz +``` + +TODO: see if there's a hook to automatically run `sudo mkinitramfs -o /boot/init.gz` +on kernel install There are comments in some of the files you might want to read and that's about it.