add backup script
parent
383eb41189
commit
8ea9f547ea
|
@ -55,6 +55,7 @@ The scripts will take it from there, asking you for information and downloading
|
||||||
- `install-stage1.sh`: sets up the base system and prepares for installation stage 2
|
- `install-stage1.sh`: sets up the base system and prepares for installation stage 2
|
||||||
- `install-stage2.sh`: continues setting up things after booting into the freshly installed base system
|
- `install-stage2.sh`: continues setting up things after booting into the freshly installed base system
|
||||||
- `opt/grub-config`: the custom grub config generator to be installed in /opt/void-usb
|
- `opt/grub-config`: the custom grub config generator to be installed in /opt/void-usb
|
||||||
|
- `opt/backup-fs`: helper script to regenerate the squashfs
|
||||||
- `procedure.txt`: notes to self, will disappear once finished
|
- `procedure.txt`: notes to self, will disappear once finished
|
||||||
- `bootup.sh`: script that sets up the overlay
|
- `bootup.sh`: script that sets up the overlay
|
||||||
- `bashrc`: just a custom bashrc
|
- `bashrc`: just a custom bashrc
|
||||||
|
|
|
@ -185,6 +185,14 @@ echo "%wheel ALL=(ALL:ALL) ALL" > /mnt/target/etc/sudoers.d/wheel_as_sudo_group.
|
||||||
|
|
||||||
# TODO: add overlayfs scripts (bootup and shutdown)
|
# TODO: add overlayfs scripts (bootup and shutdown)
|
||||||
|
|
||||||
|
mkdir -p /mnt/target/opt/void-usb
|
||||||
|
chmod 755 /mnt/target/opt/void-usb
|
||||||
|
wget --output-document=/mnt/target/opt/void-usb/backup-fs https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/opt/backup-fs
|
||||||
|
chmod 744 /mnt/target/opt/void-usb/backup-fs
|
||||||
|
|
||||||
|
echo "
|
||||||
|
/opt/void-usb/backup-fs" >> /mnt/target/etc/rc.shutdown
|
||||||
|
|
||||||
echo "# See fstab(5).
|
echo "# See fstab(5).
|
||||||
# <device> <mount point> <fstype> <options> <dump> <pass>
|
# <device> <mount point> <fstype> <options> <dump> <pass>
|
||||||
|
|
||||||
|
@ -280,8 +288,6 @@ run_in_target grub-install --target=i386-pc --boot-directory=/boot/efi/LOADER --
|
||||||
run_in_target grub-install --target=i386-efi --boot-directory=/boot/efi/LOADER --efi-directory=/boot/efi --removable --no-nvram --modules="'$TARGET_PRELOAD_GRUB_MODULES'" "'/dev/$TARGET_DISK'"
|
run_in_target grub-install --target=i386-efi --boot-directory=/boot/efi/LOADER --efi-directory=/boot/efi --removable --no-nvram --modules="'$TARGET_PRELOAD_GRUB_MODULES'" "'/dev/$TARGET_DISK'"
|
||||||
run_in_target grub-install --target=x86_64-efi --boot-directory=/boot/efi/LOADER --efi-directory=/boot/efi --removable --no-nvram --modules="'$TARGET_PRELOAD_GRUB_MODULES'" "'/dev/$TARGET_DISK'"
|
run_in_target grub-install --target=x86_64-efi --boot-directory=/boot/efi/LOADER --efi-directory=/boot/efi --removable --no-nvram --modules="'$TARGET_PRELOAD_GRUB_MODULES'" "'/dev/$TARGET_DISK'"
|
||||||
|
|
||||||
mkdir -p /mnt/target/opt/void-usb
|
|
||||||
chmod 755 /mnt/target/opt/void-usb
|
|
||||||
wget --output-document=/mnt/target/opt/void-usb/grub-config https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/opt/grub-config
|
wget --output-document=/mnt/target/opt/void-usb/grub-config https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/opt/grub-config
|
||||||
chmod 744 /mnt/target/opt/void-usb/grub-config
|
chmod 744 /mnt/target/opt/void-usb/grub-config
|
||||||
|
|
||||||
|
@ -297,4 +303,6 @@ chmod 744 /mnt/target/etc/kernel.d/post-remove/99-void-usb
|
||||||
|
|
||||||
run_in_target xbps-reconfigure -fa
|
run_in_target xbps-reconfigure -fa
|
||||||
|
|
||||||
|
run_in_target /opt/void-usb/backup-fs
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function yesno {
|
||||||
|
unset DISCARD_ME
|
||||||
|
while [ -z "$DISCARD_ME" ]; do
|
||||||
|
read -p "[y/n] " -n1 DISCARD_ME
|
||||||
|
case "$DISCARD_ME" in
|
||||||
|
y)
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
n)
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo " Please enter y for yes or n for no."
|
||||||
|
unset DISCARD_ME
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Overlay should still be mounted, right?
|
||||||
|
|
||||||
|
cat /proc/mounts
|
||||||
|
|
||||||
|
read -p "
|
||||||
|
press any key" -n1 DISCARD_ME
|
||||||
|
|
||||||
|
# And no services running?
|
||||||
|
|
||||||
|
ps aux | grep -vF "[kworker"
|
||||||
|
|
||||||
|
read -p "
|
||||||
|
press any key" -n1 DISCARD_ME
|
||||||
|
|
||||||
|
#TODO: remove above debugging sanity checks
|
||||||
|
|
||||||
|
#TODO: refuse to run if system is running
|
||||||
|
|
||||||
|
#TODO: add a way to tell the system whether to back up before shutting down
|
||||||
|
|
||||||
|
#TODO: colors
|
||||||
|
echo "Back up system changes to disk?
|
||||||
|
|
||||||
|
This only affects things outside the /home directory.
|
||||||
|
Backing up the system will take some time.
|
||||||
|
"
|
||||||
|
|
||||||
|
if yesno; then
|
||||||
|
echo "Backing up..."
|
||||||
|
#TODO: fiddle with squashfs parameters to find optimal settings
|
||||||
|
#TODO: What (if any) device nods need to be created? (man mksquashfs -> pseudo file)
|
||||||
|
mksquashfs / /container/new_squashfs.img -b 1M -comp xz -one-file-system -progress -noappend -e /var/cache/xbps
|
||||||
|
#TODO: check if enough disk space
|
||||||
|
# yes -> create new image next to old image
|
||||||
|
# no -> create new image in RAM
|
||||||
|
#TODO: figure out when appending to existing squashfs is a good idea
|
||||||
|
mv /container/new_squashfs.img /container/squashfs.img
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "Not backing up."
|
||||||
|
fi
|
Loading…
Reference in New Issue