mirror of
https://github.com/Antynea/grub-btrfs.git
synced 2026-08-23 16:56:17 +08:00
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:
14
initramfs/ubuntu/hooks/grub-btrfs-overlay
Executable file
14
initramfs/ubuntu/hooks/grub-btrfs-overlay
Executable 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
|
||||||
30
initramfs/ubuntu/scripts/local-bottom/grub-btrfs-overlay
Executable file
30
initramfs/ubuntu/scripts/local-bottom/grub-btrfs-overlay
Executable 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
5
initramfs/ubuntu/setup
Executable 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
|
||||||
Reference in New Issue
Block a user