add: logger; syntax: defined drive formats; fix: ISO logic;

This commit is contained in:
Your Name 2024-09-26 00:07:04 +02:00
parent 0ea0ea99e7
commit 4f0abc503a

33
shemum Normal file → Executable file
View file

@ -7,12 +7,13 @@
# * qemu
# * sh
# * curl
# * syslog
# - logger
# Debug mode
# To enable debug mode remove the comment.
# Default: OFF
#set +x
# Default: ON
exec 1> >(logger -s -t $(basename $0)) 2>&1
# Virtual machine settings
RAM="512M"
@ -25,9 +26,10 @@ OS_NAME=$2
#DISK_SIZE=$3
# Defining paths
ROOT_PATH="$HOME/Machines"
ISO_PATH="$ROOT_PATH/$OS_NAME/$OS_NAME.iso"
IMG_PATH="$ROOT_PATH/$OS_NAME/$OS_NAME.img"
ROOT_PATH="~/Machines"
# Defines install image repository.
case $OS_NAME in
@ -37,6 +39,10 @@ case $OS_NAME in
"debian")
INSTALL_IMG=""
;;
*)
echo "$OS_NAME is not an option" >&2
exit 1
;;
esac
# Options
@ -48,34 +54,35 @@ case $OPTION in
if [ ! -f $ISO_PATH ] && [ ! -z $INSTALL_IMG ]; then
echo $INSTALL_IMG
curl -o $ISO_PATH $INSTALL_IMG
elif [ -z $INSTALL_IMG ]; then
echo "Current INSTALL_IMG for $OS_NAME: $INSTALL_IMG"
elif [ ! -z $INSTALL_IMG ]; then
echo "Current INSTALL_IMG for $OS_NAME: $ISO_PATH"
else:
echo "ERROR: Enable debug mode by uncommenting: setx"
echo "Install image path is missing" >&2
exit 1
fi
qemu-system-x86_64 -boot d \
-display curses \
-cdrom $ISO_PATH \
-hda $IMG_PATH \
-drive file=$ISO_PATH,media=cdrom \
-drive file=$IMG_PATH,format=raw \
-m $RAM -smp $CPU
;;
"console")
qemu-system-x86_64 -boot c \
-display curses \
-hda $IMG_PATH \
-drive file=$IMG_PATH,format=raw \
-m $RAM -smp $CPU
;;
"start")
qemu-system-x86_64 -boot c \
-hda $IMG_PATH \
-display none \
-drive file=$IMG_PATH,format=raw \
-m $RAM -smp $CPU
;;
*)
echo "Usage: shemum [init] <virtual machine name> <disk size>"
echo " init initialize a virtual machine"
echo " start start a QEMU virtual machine"
echo " console start a QEMU virtual machine"
echo " start start a QEMU virtual machine without console output"
echo " console start a QEMU virtual machine with console output"
esac