75 lines
2.1 KiB
Bash
Executable File
75 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
update_initramfs() {
|
|
# regenerate initramfs for single file restore VM
|
|
INST_PATH="/usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore"
|
|
CACHE_PATH="/var/cache/proxmox-backup/file-restore-initramfs.img"
|
|
CACHE_PATH_DBG="/var/cache/proxmox-backup/file-restore-initramfs-debug.img"
|
|
|
|
# cleanup first, in case proxmox-file-restore was uninstalled since we do
|
|
# not want an unuseable image lying around
|
|
rm -f "$CACHE_PATH"
|
|
|
|
if [ ! -f "$INST_PATH/initramfs.img" ]; then
|
|
echo "proxmox-backup-restore-image is not installed correctly, skipping update" >&2
|
|
exit 0
|
|
fi
|
|
|
|
echo "Updating file-restore initramfs..."
|
|
|
|
# avoid leftover temp file
|
|
cleanup() {
|
|
rm -f "$CACHE_PATH.tmp" "$CACHE_PATH_DBG.tmp"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
mkdir -p "/var/cache/proxmox-backup"
|
|
cp "$INST_PATH/initramfs.img" "$CACHE_PATH.tmp"
|
|
|
|
# cpio uses passed in path as offset inside the archive as well, so we need
|
|
# to be in the same dir as the daemon binary to ensure it's placed in /
|
|
( cd "$INST_PATH"; \
|
|
printf "./proxmox-restore-daemon" \
|
|
| cpio -o --format=newc -A -F "$CACHE_PATH.tmp" )
|
|
mv -f "$CACHE_PATH.tmp" "$CACHE_PATH"
|
|
|
|
if [ -f "$INST_PATH/initramfs-debug.img" ]; then
|
|
echo "Updating file-restore debug initramfs..."
|
|
cp "$INST_PATH/initramfs-debug.img" "$CACHE_PATH_DBG.tmp"
|
|
( cd "$INST_PATH"; \
|
|
printf "./proxmox-restore-daemon" \
|
|
| cpio -o --format=newc -A -F "$CACHE_PATH_DBG.tmp" )
|
|
mv -f "$CACHE_PATH_DBG.tmp" "$CACHE_PATH_DBG"
|
|
fi
|
|
|
|
trap - EXIT
|
|
}
|
|
|
|
case "$1" in
|
|
configure)
|
|
# in case restore daemon was updated
|
|
update_initramfs
|
|
;;
|
|
|
|
triggered)
|
|
if [ "$2" = "proxmox-backup-restore-image-update" ]; then
|
|
# in case base-image was updated
|
|
update_initramfs
|
|
else
|
|
echo "postinst called with unknown trigger name: \`$2'" >&2
|
|
fi
|
|
;;
|
|
|
|
abort-upgrade|abort-remove|abort-deconfigure)
|
|
;;
|
|
|
|
*)
|
|
echo "postinst called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|