Мне нужно запустить три виртуальные машины на QEMU.
для ВМ в ctrl-vm src-vm dst-vm
делать
case ${VM} в
"ctrl-вм")
mac_addr=00:00:00:00:00:01
нажмите = нажмите 0
порт=30020
;;
"источник-ВМ")
mac_addr=00:00:00:00:00:02
кран = кран1
порт=30021
;;
"дст-вм")
mac_addr=00:00:00:00:00:03
тап=тап2
порт=30022
;;
эсак
ДИСТРО="debian-яблочко"
IMAGE_NAME=${ВМ}
MACHINE_NAME="qemuamd64"
IMAGE_TYPE="wic.img"
ROOTFS="/dev/sda2"
FULL_IMAGE_NAME="${IMAGE_NAME}-${DISTRO}-${MACHINE_NAME}"
ISAR_OUT_DIR="${KAS_WORK_DIR}/build/tmp/deploy/images/${MACHINE_NAME}"
DISK_PATH="${ISAR_OUT_DIR}/${FULL_IMAGE_NAME}"
Ядро = "${DISK_PATH}-vmlinuz"
INITRD="${DISK_PATH}-initrd.img"
если [-n "${QEMU_PATH}" ]; тогда
QEMU_PATH="${QEMU_PATH}/"
фи
QEMU=qemu-система-x86_64
QEMU_EXTRA_ARGS="\
-с \
-нографический \
-процессор хост -smp 4 \
-включить-квм-машина q35 \
-устройство ide-hd,диск=диск \
-device virtio-net-pci,netdev=vnet0,mac=${mac_addr}"
KERNEL_CMDLINE="\
root=${ROOTFS} console=ttyS0 отладка \
"
${QEMU_PATH}${QEMU} \
-drive file=${DISK_PATH}.${IMAGE_TYPE},discard=unmap,if=none,id=disk,format=raw \
-м 1G \
-netdev tap,id=vnet0,ifname=${tap},script=нет,downscript=нет \
-net пользователь,hostfwd=tcp::30020-:22 \
-kernel "${KERNEL}" \
-добавьте "${KERNEL_CMDLINE}" \
-initrd "${INITRD}" ${QEMU_EXTRA_ARGS} "$@" &
сделано
Я хотел бы запускать виртуальные машины в фоновом режиме и подключать их по ssh (IP-адреса уже назначены в образе).
Но когда я запускаю скрипт, в том же терминале запускается консоль ВМ, а остальные 2 ВМ не запускаются. Я уже добавил "&" в конце команды, но все равно не работает.