numerous updates
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Purpose : Configure Snapper so update can snapshot / before each upgrade
|
||||
# (updates.d/09-snapshot.sh). Only applies when / is btrfs, which is
|
||||
# archinstall's default. /home is a separate subvolume and is not
|
||||
# included in the snapshots.
|
||||
|
||||
if [ "$(findmnt -no FSTYPE /)" != "btrfs" ]; then
|
||||
echo "/ is not btrfs; skipping Snapper setup."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
source "$HOME/.local/share/coredesktop/utils.sh"
|
||||
|
||||
install_packages snapper
|
||||
|
||||
if [ ! -f /etc/snapper/configs/root ]; then
|
||||
echo "Creating Snapper config for /..."
|
||||
|
||||
# create-config makes its own /.snapshots subvolume and fails if the path
|
||||
# already exists. archinstall mounts a separate @.snapshots subvolume there,
|
||||
# so follow the Arch wiki: unmount it, let snapper create its config, then
|
||||
# swap snapper's nested subvolume back out for the @.snapshots mount.
|
||||
if mountpoint -q /.snapshots; then
|
||||
sudo umount /.snapshots
|
||||
sudo rmdir /.snapshots
|
||||
sudo snapper -c root create-config /
|
||||
sudo btrfs subvolume delete /.snapshots
|
||||
sudo mkdir /.snapshots
|
||||
sudo mount /.snapshots
|
||||
else
|
||||
if [ -e /.snapshots ] && ! sudo rmdir /.snapshots 2>/dev/null; then
|
||||
echo "/.snapshots exists and isn't an empty directory. Move it aside and run this again."
|
||||
exit 1
|
||||
fi
|
||||
sudo snapper -c root create-config /
|
||||
fi
|
||||
|
||||
# Keep only the last 5 pre-update snapshots, and no hourly timeline. Only set
|
||||
# on a config we created, so a config you made yourself keeps its settings.
|
||||
sudo snapper -c root set-config \
|
||||
TIMELINE_CREATE=no \
|
||||
NUMBER_CLEANUP=yes \
|
||||
NUMBER_MIN_AGE=0 \
|
||||
NUMBER_LIMIT=5 \
|
||||
NUMBER_LIMIT_IMPORTANT=5
|
||||
sudo systemctl disable --now snapper-timeline.timer 2> /dev/null || true
|
||||
else
|
||||
echo "Snapper config for / already exists."
|
||||
fi
|
||||
|
||||
sudo systemctl enable --now snapper-cleanup.timer
|
||||
Reference in New Issue
Block a user