Compare commits

..

3 Commits
v4.2 ... 4.3

Author SHA1 Message Date
Thomas Winant
92eef3079d Don't let the kernel parameters override the subvol for the snapshot (#85)
Previously, the kernel parameters came after the `rootflags=subvol=<snapshot>`
argument. This means that when the user's standard kernel parameters also
contain a `rootflags=subvol=<root>`, it will override the subvol flag of the
snapshot. So put the snapshot's subvol flag last.
2020-03-22 16:33:12 +01:00
Maxim Baz
4e1b628465 Test if snapper is properly configured before using it (#83) 2020-01-17 21:53:24 +01:00
Luflosi
21df698e04 Fix typos (#80) 2019-12-29 14:23:16 +01:00
2 changed files with 16 additions and 10 deletions

View File

@@ -152,6 +152,7 @@ test_btrfs()
fi
set -e
}
##############
### Script ###
##############
@@ -207,7 +208,7 @@ make_menu_entries()
fi
echo 'Loading Snapshot: "${snap_date_time}" "${snap_dir_name}"'
echo 'Loading Kernel: "${k}" ...'
linux \"${boot_dir_root_grub}/"${k}"\" root="${LINUX_ROOT_DEVICE}" rw rootflags=subvol=\""${snap_dir_name}"\" ${kernel_parameters}"
linux \"${boot_dir_root_grub}/"${k}"\" root="${LINUX_ROOT_DEVICE}" rw ${kernel_parameters} rootflags=subvol=\""${snap_dir_name}"\""
if [[ -f "${boot_dir}"/"${u}" && "${i}" != "${prefix_i}-${kversion}-${alt_suffix_i}" ]] ; then
entry "\
echo 'Loading Microcode & Initramfs: "${u}" "${i}" ...'
@@ -238,12 +239,17 @@ snapshot_list()
{
# Query info from snapper if it is installed
type snapper >/dev/null 2>&1
if [[ $? -eq 0 ]]; then
local snapper_ids=($(snapper --no-dbus -t 0 -c "$snapper_config" list | tail -n +3 | cut -d'|' -f 1))
local snapper_types=($(snapper --no-dbus -t 0 -c "$snapper_config" list | tail -n +3 | cut -d'|' -f 2))
if [ $? -eq 0 ]; then
if [ -s "/etc/snapper/configs/$snapper_config" ]; then
printf "# Info: snapper detected, using config '$snapper_config'\n" >&2
local snapper_ids=($(snapper --no-dbus -t 0 -c "$snapper_config" list | tail -n +3 | cut -d'|' -f 1))
local snapper_types=($(snapper --no-dbus -t 0 -c "$snapper_config" list | tail -n +3 | cut -d'|' -f 2))
IFS=$'\n'
local snapper_descriptions=($(snapper --no-dbus -t 0 -c "$snapper_config" list | tail -n +3 | rev | cut -d'|' -f 2 | rev))
IFS=$'\n'
local snapper_descriptions=($(snapper --no-dbus -t 0 -c "$snapper_config" list | tail -n +3 | rev | cut -d'|' -f 2 | rev))
else
printf "# Warning: snapper detected but config '$snapper_config' does not exist\n" >&2
fi
fi
IFS=$'\n'
@@ -523,11 +529,11 @@ check_uuid_required
if [[ "$override_boot_partition_detection" == "true" ]]; then
printf "# Info: Override boot partition detection : enable \n" >&2 ;
boot_separate
else
else
if [[ "$root_uuid" != "$boot_uuid" ]]; then
printf "# Info: Separate boot partition detected \n" >&2 ;
boot_separate
else
else
printf "# Info: Separate boot partition not detected \n" >&2 ;
boot_bounded
fi

View File

@@ -132,10 +132,10 @@ You have the possibility to modify many parameters in `/etc/default/grub-btrfs/c
##
### Automatically update grub
If you would like Grub to automatically update when a snapshots is made or deleted:
If you would like Grub to automatically update when a snapshot is made or deleted:
* Mount your subvolume which contains snapshots to `/.snapshots`
* Use `systemctl start/enable grub-btrfs.path`
* `grub-btrfs.path` automatically (re)generate `grub.cfg` when a modification appear in `/.snapshots`
* `grub-btrfs.path` automatically (re)generates `grub.cfg` when a modification appears in `/.snapshots`
##
### Special thanks for assistance and contributions
* [maximbaz](https://github.com/maximbaz)