container-management (1775B)
1 #!/bin/bash 2 # copy kernel and create snapshot of current state 3 # assumes $fsroot will be mounted 4 bin=$(dirname "$0") 5 # load config 6 source "$bin/config" 7 8 # some variables 9 subvolume_a="$prefix$a" 10 subvolume_b="$prefix$b" 11 subvolume_c="$prefix$c" 12 subvolume_d="$prefix$d" 13 14 # copy kernel 15 printf -- "%s\n" "copying /boot/$b-vmlinuz-$kernel to /boot/$c-vmlinuz-$kernel" 16 cp "/boot/$b-vmlinuz-$kernel" "/boot/$c-vmlinuz-$kernel" 17 printf -- "%s\n" "copying /boot/$b-initramfs-$kernel.img to /boot/$c-initramfs-$kernel.img" 18 cp "/boot/$b-initramfs-$kernel.img" "/boot/$c-initramfs-$kernel.img" 19 printf -- "%s\n" "copying /boot/$b-initramfs-$kernel-fallback.img to /boot/$c-initramfs-$kernel-fallback.img" 20 cp "/boot/$b-initramfs-$kernel-fallback.img" "/boot/$c-initramfs-$kernel-fallback.img" 21 printf -- "%s\n" "copying /boot/vmlinuz-$kernel to /boot/$b-vmlinuz-$kernel" 22 cp "/boot/vmlinuz-$kernel" "/boot/$b-vmlinuz-$kernel" 23 printf -- "%s\n" "copying /boot/initramfs-$kernel.img to /boot/$b-initramfs-$kernel.img" 24 cp "/boot/initramfs-$kernel.img" "/boot/$b-initramfs-$kernel.img" 25 printf -- "%s\n" "copying /boot/initramfs-$kernel-fallback.img to /boot/$b-initramfs-$kernel-fallback.img" 26 cp "/boot/initramfs-$kernel-fallback.img" "/boot/$b-initramfs-$kernel-fallback.img" 27 28 # rotate snapshots start by deleting d 29 btrfs subvolume delete "$fsroot/$subvolume_d" 30 printf -- "%s\n" "moving $fsroot/$subvolume_c to $fsroot/$subvolume_d" 31 mv "$fsroot/$subvolume_c" "$fsroot/$subvolume_d" 32 printf -- "%s\n" "moving $fsroot/$subvolume_b to $fsroot/$subvolume_c" 33 mv "$fsroot/$subvolume_b" "$fsroot/$subvolume_c" 34 35 # snapshot current state 36 btrfs subvolume snapshot "$fsroot/$subvolume_a" "$fsroot/$subvolume_b" 37 38 # create $stamp to date the latest snapshot 39 date "+$stamp_format" > "$fsroot/$subvolume_b/$stamp"