From b2a3a2343cfb654950aba4a81ce50cf1b2eab962 Mon Sep 17 00:00:00 2001 From: Antynea Date: Fri, 26 Nov 2021 16:47:04 +0100 Subject: [PATCH] Add systemd-volatile Adds support for "systemd.volatile=state" only. See: https://github.com/Antynea/grub-btrfs/issues/92#issuecomment-966869223 "GRUB_BTRFS_SYSTEMD_VOLATILE" must be true. The default init on the snapshot should be "systemd". The snapshot must have the tag "ro=true". --- 41_snapshots-btrfs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/41_snapshots-btrfs b/41_snapshots-btrfs index a274a14..eb27259 100644 --- a/41_snapshots-btrfs +++ b/41_snapshots-btrfs @@ -162,8 +162,16 @@ echo "$@" >> "$grub_directory/grub-btrfs.new" } ## menu entries +old_kernel_parameters=${kernel_parameters} make_menu_entries() { + kernel_parameters="${old_kernel_parameters}" + if [[ "${GRUB_BTRFS_SYSTEMD_VOLATILE}" == true ]] ; then + if [[ $(strings -n7 "$grub_btrfs_mount_point/$snap_dir_name_trim/usr/bin/init" | grep -aEiom1 'upstart|systemd|sysvinit') == systemd ]] \ + || [[ $(strings -n7 "$grub_btrfs_mount_point/$snap_dir_name_trim/sbin/init" | grep -aEiom1 'upstart|systemd|sysvinit') == systemd ]]; then + [[ $(btrfs property get "$grub_btrfs_mount_point/$snap_dir_name_trim" ro) != "ro=false" ]] && kernel_parameters="${kernel_parameters} systemd.volatile=state"; + fi + fi ## \" required for snap,kernels,init,microcode with space in their name entry "submenu '${title_menu}' { submenu '${title_submenu}' { echo }"