#!/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