summaryrefslogtreecommitdiffstats
path: root/share/examples/bhyve/vmrun.sh
diff options
context:
space:
mode:
Diffstat (limited to 'share/examples/bhyve/vmrun.sh')
-rwxr-xr-xshare/examples/bhyve/vmrun.sh30
1 files changed, 21 insertions, 9 deletions
diff --git a/share/examples/bhyve/vmrun.sh b/share/examples/bhyve/vmrun.sh
index 901404b..88cbd7c 100755
--- a/share/examples/bhyve/vmrun.sh
+++ b/share/examples/bhyve/vmrun.sh
@@ -104,7 +104,10 @@ while getopts ac:C:d:e:g:hH:iI:m:p:t: c ; do
console=${OPTARG}
;;
d)
- eval "disk_dev${disk_total}=\"${OPTARG}\""
+ disk_dev=${OPTARG%%,*}
+ disk_opts=${OPTARG#${disk_dev}}
+ eval "disk_dev${disk_total}=\"${disk_dev}\""
+ eval "disk_opts${disk_total}=\"${disk_opts}\""
disk_total=$(($disk_total + 1))
;;
e)
@@ -183,16 +186,16 @@ make_and_check_diskdev()
echo "Launching virtual machine \"$vmname\" ..."
-virtio_diskdev="$disk_dev0"
+first_diskdev="$disk_dev0"
${BHYVECTL} --vm=${vmname} --destroy > /dev/null 2>&1
while [ 1 ]; do
- file -s ${virtio_diskdev} | grep "boot sector" > /dev/null
+ file -s ${first_diskdev} | grep "boot sector" > /dev/null
rc=$?
if [ $rc -ne 0 ]; then
- file -s ${virtio_diskdev} | grep ": Unix Fast File sys" > /dev/null
+ file -s ${first_diskdev} | grep ": Unix Fast File sys" > /dev/null
rc=$?
fi
if [ $rc -ne 0 ]; then
@@ -207,14 +210,22 @@ while [ 1 ]; do
echo "is not readable"
exit 1
fi
- BOOTDISK=${isofile}
- installer_opt="-s 31:0,ahci-cd,${BOOTDISK}"
+ BOOTDISKS="-d ${isofile}"
+ installer_opt="-s 31:0,ahci-cd,${isofile}"
else
- BOOTDISK=${virtio_diskdev}
+ BOOTDISKS=""
+ i=0
+ while [ $i -lt $disk_total ] ; do
+ eval "disk=\$disk_dev${i}"
+ if [ -r ${disk} ] ; then
+ BOOTDISKS="$BOOTDISKS -d ${disk} "
+ fi
+ i=$(($i + 1))
+ done
installer_opt=""
fi
- ${LOADER} -c ${console} -m ${memsize} -d ${BOOTDISK} ${loader_opt} \
+ ${LOADER} -c ${console} -m ${memsize} ${BOOTDISKS} ${loader_opt} \
${vmname}
bhyve_exit=$?
if [ $bhyve_exit -ne 0 ]; then
@@ -237,8 +248,9 @@ while [ 1 ]; do
i=0
while [ $i -lt $disk_total ] ; do
eval "disk=\$disk_dev${i}"
+ eval "opts=\$disk_opts${i}"
make_and_check_diskdev "${disk}"
- devargs="$devargs -s $nextslot:0,virtio-blk,${disk} "
+ devargs="$devargs -s $nextslot:0,virtio-blk,${disk}${opts} "
nextslot=$(($nextslot + 1))
i=$(($i + 1))
done
OpenPOWER on IntegriCloud