X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-autoinstaller.git/blobdiff_plain/2b908ddd954fac426e971da70a31fbf9859e0175..c93cd7e86fd88dc5fd4dd647ef0f10e7b0632fc9:/host/usr/sbin/invirt-update-ai-guest diff --git a/host/usr/sbin/invirt-update-ai-guest b/host/usr/sbin/invirt-update-ai-guest new file mode 100755 index 0000000..f06b3ff --- /dev/null +++ b/host/usr/sbin/invirt-update-ai-guest @@ -0,0 +1,43 @@ +#!/bin/bash + +set -e + +export VG=xenvg +export INSTALLLV=s_install_hda +export INSTALLPATH="/dev/$VG/$INSTALLLV" +export UPDATEPATH="/dev/$VG/update_$INSTALLLV" +export MAPPERPATH="/dev/mapper/$VG-update_$INSTALLLV" +export MOUNTDIRS="/dev /proc /sys" + +clean_up() { + set +e + + for i in $MOUNTDIRS; do + umount "/mnt/install$i" + done + + umount /mnt/install + kpartx -d "$UPDATEPATH" + lvchange -a y "$UPDATEPATH" + lvrename "$UPDATEPATH" "$INSTALLPATH" + exit 0 +} + +trap clean_up ERR + +lvchange -a n "$INSTALLPATH" +lvrename "$INSTALLPATH" "$UPDATEPATH" +lvchange -a ey "$UPDATEPATH" +kpartx -a "$UPDATEPATH" + +mkdir -p /mnt/install +mount "${MAPPERPATH}1" /mnt/install + +for i in $MOUNTDIRS; do + mount --bind $i "/mnt/install$i" +done + +chroot /mnt/install apt-get update +chroot /mnt/install apt-get dist-upgrade + +clean_up