diff options
Diffstat (limited to 'linux/scripts/setup-virtual.sh')
-rw-r--r-- | linux/scripts/setup-virtual.sh | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/linux/scripts/setup-virtual.sh b/linux/scripts/setup-virtual.sh new file mode 100644 index 0000000..3583bb6 --- /dev/null +++ b/linux/scripts/setup-virtual.sh @@ -0,0 +1,78 @@ +#!/bin/sh + +# First we define the function +ConfirmOrExit () +{ + while true + do + echo -n "Please confirm (y or n) :" + read CONFIRM + case $CONFIRM in + y|Y|YES|yes|Yes) break ;; + n|N|no|NO|No) + echo "Aborting - you entered $CONFIRM" + exit + ;; + *) echo "Please enter only y or n" + esac + done + echo "You entered $CONFIRM. Continuing ..." +} + +DEV_NAME=${1} +IMG=${2}.qcow2 +SIZE=${3} +CHROOT="/mnt" +DEV="/dev/${DEV_NAME}" + +echo "/srv/qemu/img/${IMG}" +echo "${SIZE}" +echo "DEV_NAME=${DEV_NAME}" +echo "DEV=${DEV}" +echo "CHROOT=${CHROOT}" + +ConfirmOrExit + +#qemu-img create -f qcow2 example.qcow2 20G +qemu-img create -f qcow2 /srv/qemu/img/${IMG} ${SIZE} +qemu-nbd -c ${DEV} /srv/qemu/img/${IMG} + +parted --script ${DEV} \ + mklabel gpt \ + unit mib \ + mkpart primary 2 4 \ + name 1 grub \ + mkpart ESP fat32 4 128 \ + name 2 efi \ + mkpart primary ext4 128 1128 \ + name 3 boot \ + mkpart primary ext4 1128 12128 \ + name 4 root \ + mkpart primary ext4 12128 14128 \ + name 5 var \ + mkpart primary ext4 14128 100% \ + name 6 lvm \ + set 1 bios_grub on \ + set 2 boot on \ + set 6 lvm on + +kpartx -a -s -l -u ${DEV} + +mkfs.fat -F 32 /dev/mapper/${DEV_NAME}p2 +mkfs.ext4 /dev/mapper/${DEV_NAME}p3 +mkfs.ext4 /dev/mapper/${DEV_NAME}p4 +mkfs.ext4 /dev/mapper/${DEV_NAME}p5 +pvcreate /dev/mapper/${DEV_NAME}p6 + +mount /dev/mapper/${DEV_NAME}p4 $CHROOT +mkdir -p $CHROOT/proc +mkdir -p $CHROOT/sys +mkdir -p $CHROOT/dev +mkdir -p $CHROOT/media + +mkdir -p $CHROOT/boot +mount /dev/mapper/${DEV_NAME}p3 $CHROOT/boot +mkdir -p $CHROOT/boot/efi +mount /dev/mapper/${DEV_NAME}p2 $CHROOT/boot/efi +mkdir -p $CHROOT/var +mount /dev/mapper/${DEV_NAME}p5 $CHROOT/var |