Skip to content

Commit 4e4e853

Browse files
committed
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
1 parent 89ef805 commit 4e4e853

File tree

3 files changed

+49
-0
lines changed

3 files changed

+49
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/sh -e
2+
PREREQ=
3+
prereqs() {
4+
echo "$PREREQ"
5+
}
6+
case "$1" in
7+
prereqs)
8+
prereqs
9+
exit 0
10+
;;
11+
esac
12+
13+
. /usr/share/initramfs-tools/hook-functions
14+
manual_add_modules overlay
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/sh -e
2+
PREREQ=
3+
prereqs() {
4+
echo "$PREREQ"
5+
}
6+
case $1 in
7+
prereqs)
8+
prereqs
9+
exit 0
10+
;;
11+
esac
12+
13+
. /scripts/functions
14+
on_err() {
15+
panic 'script error'
16+
}
17+
trap on_err ERR
18+
if [ "$readonly" = y ]
19+
then
20+
log_begin_msg 'remount read-only root as read-only layer in non-persistent, writable overlay'
21+
lower_dir="$(mktemp -d -p /)"
22+
ram_dir="$(mktemp -d -p /)"
23+
upper_dir="$ram_dir"/upper
24+
work_dir="$ram_dir"/work
25+
mount --move "$rootmnt" "$lower_dir"
26+
mount -t tmpfs cowspace "$ram_dir"
27+
mkdir -p "$upper_dir" "$work_dir"
28+
mount -t overlay -o lowerdir="$lower_dir",upperdir="$upper_dir",workdir="$work_dir" rootfs "$rootmnt"
29+
log_end_msg
30+
fi

initramfs/ubuntu/setup

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env bash
2+
3+
SCRIPT_DIR="$(cd -P -- "$(dirname -- "$BASH_SOURCE")" && pwd)"
4+
install {"$SCRIPT_DIR",/etc/initramfs-tools}/hooks/grub-btrfs-overlay
5+
install {"$SCRIPT_DIR",/etc/initramfs-tools}/scripts/local-bottom/grub-btrfs-overlay

0 commit comments

Comments
 (0)