624d1cc2 |
#!/bin/bash
#################################################
# Title: mk-setup-vmdk #
# Date: 2014-11-14 #
# Version: 1.0 #
# Author: dthaluru@vmware.com #
# Options: #
#################################################
# Overview
# Creating hard disk with photon on it
# End
#
set -o errexit # exit if error...insurance ;)
set -o nounset # exit if variable not initalized
set +h # disable hashall
PRGNAME=${0##*/} # script name minus the path
source config.inc # configuration parameters
source function.inc # commonn functions
LOGFILE="/var/log/${PRGNAME}-${LOGFILE}" # set log file name
LFS_DISK="/mnt/photon-disk"
[ ${EUID} -eq 0 ] || die "${PRGNAME}: Need to be root user: FAILURE"
> ${LOGFILE} # clear/initialize logfile
echo -e "Setting up the disk...\n"
set -x
LFS_OPTION=""
VMDK_IMAGE_NAME=mydisk.vmdk
ROOT_PARTITION_SIZE=8
SWAP_PARTITION_SIZE=2 |
33a3c5ac |
BOOT_FIRM_WARE="bios" |
624d1cc2 |
while [[ $# > 0 ]]
do
key="$1"
shift
case $key in
-rp|--ROOT_PARTITION_SIZE)
ROOT_PARTITION_SIZE="$1"
shift
;;
-sp|--SWAP_PARTITION_SIZE)
SWAP_PARTITION_SIZE="$1"
shift
;; |
33a3c5ac |
-fm|--firmware)
BOOT_FIRM_WARE="$1"
shift
;; |
624d1cc2 |
-a|--all)
LFS_OPTION="all"
;;
-m|--minimal)
LFS_OPTION=""
;;
-n|--IMG_NAME)
VMDK_IMAGE_NAME="$1".raw
shift
;;
-h|--help)
echo 'Usage:'
echo '-rp|--ROOT_PARTITION_SIZE :sets root partition size'
echo '-sp|--SWAP_PARTITION_SIZE :sets swap partition size'
echo '-a|--all :installs all available packages'
echo '-n|--IMG_NAME :sets name of the vmdk image'
echo '-m|--minimal :installs basic packages' |
33a3c5ac |
echo '-fm|--firmware :firmware' |
624d1cc2 |
exit 0
;;
*)
# unknown option
;;
esac
done
mkdir -p $LFS_DISK
TOTAL_SIZE=` echo $ROOT_PARTITION_SIZE + $SWAP_PARTITION_SIZE | bc`
echo "Creating raw disk file " $VMDK_IMAGE_NAME " of size " $TOTAL_SIZE
dd if=/dev/zero of=$VMDK_IMAGE_NAME bs=1 seek=$(($TOTAL_SIZE * 1024 * 1024 * 1024)) count=0
chmod 755 $VMDK_IMAGE_NAME
echo "Associating loopdevice to raw disk"
DISK_DEVICE=`losetup --show -f $VMDK_IMAGE_NAME`
echo "Creating partition on raw disk" |
a821a38f |
if [ $SWAP_PARTITION_SIZE -gt 0 ]
then |
30a3f2e7 |
sgdisk -n 1::+3M -n 2::+${ROOT_PARTITION_SIZE}G -n 3: -p $DISK_DEVICE >> $LOGFILE |
a821a38f |
else |
30a3f2e7 |
sgdisk -n 1::+3M -n 2: -p $DISK_DEVICE >> $LOGFILE |
a821a38f |
fi
|
33a3c5ac |
if [ $BOOT_FIRM_WARE = "efi" ]
then
echo "EFI boot partition"
sgdisk -t1:ef00 $DISK_DEVICE >> $LOGFILE
else
echo "BIOS boot partition"
sgdisk -t1:ef02 $DISK_DEVICE >> $LOGFILE
fi |
624d1cc2 |
echo "Mapping device partition to loop device" |
8ff5c437 |
kpartx -avs $DISK_DEVICE >> $LOGFILE |
624d1cc2 |
DEVICE_NAME=`echo $DISK_DEVICE|cut -c6- `
echo "Adding file system to device partition"
mkfs -t ext4 /dev/mapper/${DEVICE_NAME}p2
echo "DISK_DEVICE=$DISK_DEVICE"
echo "ROOT_PARTITION=/dev/mapper/${DEVICE_NAME}p2"
|