#!/bin/bash

if [ "$1" != "SURE" ]; then
	echo "Run this script inside a domU."
	echo "Usage: $0 SURE"
	exit 3
fi

# backup /boot
mv /boot /boot.pvbck || exit 5

# create new boot
mkfs.ext4 /dev/xvdx1
mkdir /boot
mount /dev/xvdx1 /boot

cp /boot.pvbck/* /boot/
rm /boot/initrd.img-*

# create initramfs
apt-get -y install initramfs-tools
echo "RESUME=none" >/etc/initramfs-tools/conf.d/resume

update-initramfs -c -k all

# grub
apt-get -y install grub2 grub-pc

paxctl -cmp /usr/bin/grub-*
paxctl -cmp /usr/sbin/grub-*
paxctl -cmp /usr/lib/grub/i386-pc/grub-*

grub-mkdevicemap
grub-install /dev/xvdx

cp /etc/default/grub /etc/default/grub.pvbck

#GRUB_CMDLINE_LINUX_DEFAULT=""
#GRUB_CMDLINE_LINUX="console=hvc0 console=tty1 console=ttyS0 earlyprintk=xen elevator=noop"
#GRUB_TERMINAL=serial
#GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT=\".*\"/GRUB_CMDLINE_LINUX_DEFAULT=\"\"/" /etc/default/grub
sed -i "s/GRUB_CMDLINE_LINUX=\".*\"/GRUB_CMDLINE_LINUX=\"console=hvc0 console=tty1 console=ttyS0 earlyprintk=xen elevator=noop\"/" /etc/default/grub
sed -i "s/.*GRUB_TERMINAL=.*/GRUB_TERMINAL=\"serial\"\nGRUB_SERIAL_COMMAND=\"serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1\"/" /etc/default/grub

update-grub

# /boot/grub/grub.cfg
# /dev/xvda* ---> /dev/xvde*
sed -i "s/\/dev\/xvda/\/dev\/xvde/" /boot/grub/grub.cfg
sed -i "s/\/dev\/xvdb/\/dev\/xvdf/" /boot/grub/grub.cfg
sed -i "s/\/dev\/xvdc/\/dev\/xvdg/" /boot/grub/grub.cfg
sed -i "s/\/dev\/xvdd/\/dev\/xvdh/" /boot/grub/grub.cfg

sed -i "s/\/dev\/xvdx/\/dev\/xvda/" /boot/grub/grub.cfg


# fstab
#/dev/xvda* ---> /dev/xvde*
#/dev/xvda1 /boot ext4 defaults,noexec,nosuid 0 2
cp /etc/fstab /etc/fstab.pvbck
sed -i "s/\/dev\/xvda/\/dev\/xvde/" /etc/fstab
sed -i "s/\/dev\/xvdb/\/dev\/xvdf/" /etc/fstab
sed -i "s/\/dev\/xvdc/\/dev\/xvdg/" /etc/fstab
sed -i "s/\/dev\/xvdd/\/dev\/xvdh/" /etc/fstab

echo >> /etc/fstab
echo "# boot partition" >> /etc/fstab
echo "/dev/xvda1 /boot ext4 defaults 0 2" >> /etc/fstab

mcedit /etc/fstab
