+#! /bin/sh
+
+if [ $# -le 1 -o $# -ge 7 ]; then
+ echo "Usage: $0 vm_name iso_file [os_type [disk_size [memory [video_mem]]]]" >&2
+ echo "Example: $0 Debian debian.iso Debian 10000 512" >&2
+ exit 1
+fi
+
+VM_NAME="$1"
+ISO_IMAGE="$2"
+VM_OS_TYPE="${3:-Linux}"
+DISK_SIZE="${4:-1024}"
+VM_MEM="${5:-1024}"
+VM_VMEM="${6:-128}"
+
+VBoxManage createvm --name "$VM_NAME" --ostype "$VM_OS_TYPE" --register &&
+VBoxManage modifyvm "$VM_NAME" --memory "$VM_MEM" --vram "$VM_VMEM" --ioapic on &&
+
+VBoxManage createhd --filename "$HOME/VirtualBox VMs/$VM_NAME/$VM_NAME".vdi --size "$DISK_SIZE" --format VDI &&
+VBoxManage storagectl "$VM_NAME" --name "SATA Controller" --add sata --controller IntelAhci --bootable on &&
+VBoxManage storageattach "$VM_NAME" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "$HOME/VirtualBox VMs/$VM_NAME/$VM_NAME".vdi &&
+
+VBoxManage storagectl "$VM_NAME" --name "IDE Controller" --add ide --controller PIIX4 &&
+VBoxManage storageattach "$VM_NAME" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium "$ISO_IMAGE" &&
+VBoxManage modifyvm "$VM_NAME" --boot1 dvd --boot2 disk --boot3 none --boot4 none &&
+
+VBoxManage modifyvm "$VM_NAME" --nic1 nat &&
+VBoxManage modifyvm "$VM_NAME" --natpf1 SSH,tcp,localhost,2022,localhost,22 &&
+
+#VBoxManage showvminfo "$VM_NAME" &&
+exec VBoxManage startvm "$VM_NAME"