define initramfs scripts for ubuntu

provide a hook to require overlayfs module so the file system is available
define a general script to overlay any readonly root filesystem into a non-persistent, writable filesystem
This commit is contained in:
Luis Marsano
2022-12-19 16:34:09 -05:00
parent 89ef805e81
commit 4e4e853f2d
3 changed files with 49 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
#!/bin/sh -e
PREREQ=
prereqs() {
echo "$PREREQ"
}
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
manual_add_modules overlay

View File

@@ -0,0 +1,30 @@
#!/bin/sh -e
PREREQ=
prereqs() {
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
. /scripts/functions
on_err() {
panic 'script error'
}
trap on_err ERR
if [ "$readonly" = y ]
then
log_begin_msg 'remount read-only root as read-only layer in non-persistent, writable overlay'
lower_dir="$(mktemp -d -p /)"
ram_dir="$(mktemp -d -p /)"
upper_dir="$ram_dir"/upper
work_dir="$ram_dir"/work
mount --move "$rootmnt" "$lower_dir"
mount -t tmpfs cowspace "$ram_dir"
mkdir -p "$upper_dir" "$work_dir"
mount -t overlay -o lowerdir="$lower_dir",upperdir="$upper_dir",workdir="$work_dir" rootfs "$rootmnt"
log_end_msg
fi

5
initramfs/ubuntu/setup Executable file
View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
SCRIPT_DIR="$(cd -P -- "$(dirname -- "$BASH_SOURCE")" && pwd)"
install {"$SCRIPT_DIR",/etc/initramfs-tools}/hooks/grub-btrfs-overlay
install {"$SCRIPT_DIR",/etc/initramfs-tools}/scripts/local-bottom/grub-btrfs-overlay