return 0
}
-mount_dom0_rootfs()
-{
- mkdir -p /mnt/xenclient || return 1
- mount /dev/xenclient/root /mnt/xenclient || return 1
- mkdir -p /mnt/xenclient/config || return 1
- mount /dev/xenclient/config /mnt/xenclient/config || return 1
- mkdir -p /mnt/xenclient/storage || return 1
- mount /dev/xenclient/storage /mnt/xenclient/storage || return 1
- mount --bind /dev /mnt/xenclient/dev || return 1
- mount --bind /proc /mnt/xenclient/proc || return 1
- return 0
-}
-
-umount_dom0_rootfs()
-{
- umount /mnt/xenclient/dev
- umount /mnt/xenclient/proc
- umount /mnt/xenclient/config
- sync
- for TAP in /sys/class/blktap2/blktap* ; do
- [ ! -e "${TAP}/remove" ] || echo 1 > "${TAP}/remove"
- done
- umount /mnt/xenclient/storage
- umount /mnt/xenclient
-}
-
install_dom0()
{
DOM0_ROOTFS="$1"
}
iterate_over_packages upgrade_iovm
+GRUB_ACTIVE_PARTITION="hd0,1"
+XC_PARTITION=$( pvdisplay -c | awk -F: '{ if ( $2 == "xenclient" ) print $1; }' )
+
+do_cmd mount_dom0_rootfs >&2 || return 1
+do_cmd chroot /mnt/xenclient "/usr/share/xenclient/install-bootloader" \
+ "${XC_PARTITION}" "${GRUB_ACTIVE_PARTITION}" >&2
+RET="$?"
+do_cmd umount_dom0_rootfs >&2
+
+if [ $RET -ne 0 ]; then
+ echo "Error reinstalling the bootloader">&2
+ exit ${Abort}
+fi
+
+
+
mixedgauge "Upgrade successful" 100
# FIXME:
return 0
}
+
+#-----------------------------------------------------------
+
+mount_dom0_rootfs()
+{
+ mkdir -p /mnt/xenclient || return 1
+ mount /dev/xenclient/root /mnt/xenclient || return 1
+ mkdir -p /mnt/xenclient/config || return 1
+ mount /dev/xenclient/config /mnt/xenclient/config || return 1
+ mkdir -p /mnt/xenclient/storage || return 1
+ mount /dev/xenclient/storage /mnt/xenclient/storage || return 1
+ mount --bind /dev /mnt/xenclient/dev || return 1
+ mount --bind /proc /mnt/xenclient/proc || return 1
+ return 0
+}
+
+#-----------------------------------------------------------
+
+umount_dom0_rootfs()
+{
+ umount /mnt/xenclient/dev
+ umount /mnt/xenclient/proc
+ umount /mnt/xenclient/config
+ sync
+ for TAP in /sys/class/blktap2/blktap* ; do
+ [ ! -e "${TAP}/remove" ] || echo 1 > "${TAP}/remove"
+ done
+ umount /mnt/xenclient/storage
+ umount /mnt/xenclient
+}
+