Trebuie să rulez trei VM-uri pe QEMU.
pentru VM în ctrl-vm src-vm dst-vm
do
caz ${VM} în
„ctrl-vm”)
mac_addr=00:00:00:00:00:01
tap=tap0
port=30020
;;
„src-vm”)
mac_addr=00:00:00:00:00:02
atingeți = atingeți1
port=30021
;;
„dst-vm”)
mac_addr=00:00:00:00:00:03
atingeți = atingeți2
port=30022
;;
esac
DISTRO="debian-bullseye"
IMAGE_NAME=${VM}
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}"
KERNEL="${DISK_PATH}-vmlinuz"
INITRD="${DISK_PATH}-initrd.img"
dacă [ -n "${QEMU_PATH}" ]; atunci
QEMU_PATH="${QEMU_PATH}/"
fi
QEMU=qemu-system-x86_64
QEMU_EXTRA_ARGS=" \
-s \
-nografic\
-cpu host -smp 4 \
-enable-kvm -machine q35 \
-dispozitiv ide-hd,unitate=disc\
-device virtio-net-pci,netdev=vnet0,mac=${mac_addr}"
KERNEL_CMDLINE=" \
root=${ROOTFS} console=ttyS0 depanare \
"
${QEMU_PATH}${QEMU} \
-drive file=${DISK_PATH}.${IMAGE_TYPE},scard=unmap,if=none,id=disk,format=raw \
-m 1G \
-netdev tap,id=vnet0,ifname=${tap},script=nu,downscript=nu \
-net user,hostfwd=tcp::30020-:22 \
-kernel „${KERNEL}” \
-adăugați „${KERNEL_CMDLINE}” \
-initrd „${INITRD}” ${QEMU_EXTRA_ARGS} „$@” &
Terminat
Aș dori să rulez VM-uri în fundal și să le conectez prin ssh (IP-urile sunt deja atribuite în imagine).
Dar când rulez scriptul, consola VM pornește în același terminal, iar celelalte 2 VM-uri nu pornesc. Am adăugat deja „&” la sfârșitul comenzii, dar tot nu funcționează.