Tôi phải chạy ba máy ảo trên QEMU.
cho VM trong ctrl-vm src-vm dst-vm
làm
trường hợp ${VM} trong
"ctrl-vm")
mac_addr=00:00:00:00:00:01
chạm=nhấn0
cổng = 30020
;;
"src-vm")
mac_addr=00:00:00:00:00:02
nhấn=tap1
cổng = 30021
;;
"dst-vm")
mac_addr=00:00:00:00:00:03
nhấn=tap2
cổng = 30022
;;
thoát hiểm
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"
nếu [ -n "${QEMU_PATH}" ]; sau đó
QEMU_PATH="${QEMU_PATH}/"
fi
QEMU=qemu-system-x86_64
QEMU_EXTRA_ARGS=" \
-s \
-nographic \
-cpu máy chủ -smp 4 \
-enable-kvm -machine q35 \
-device ide-hd,drive=disk \
-thiết bị virtio-net-pci,netdev=vnet0,mac=${mac_addr}"
KERNEL_CMDLINE=" \
root=${ROOTFS} console=ttyS0 gỡ lỗi \
"
${QEMU_PATH}${QEMU} \
-drive file=${DISK_PATH}.${IMAGE_TYPE},discard=unmap,if=none,id=disk,format=raw \
-m 1G \
-netdev tap,id=vnet0,ifname=${tap},script=no,downscript=no \
-người dùng mạng,hostfwd=tcp::30020-:22 \
-hạt nhân "${KERNEL}" \
-chắp thêm "${KERNEL_CMDLINE}" \
-initrd "${INITRD}" ${QEMU_EXTRA_ARGS} "$@" &
xong
Tôi muốn chạy máy ảo ở chế độ nền và kết nối chúng qua ssh (IP đã được chỉ định trong hình ảnh).
Nhưng khi tôi chạy tập lệnh, bảng điều khiển VM khởi động trong cùng một thiết bị đầu cuối và 2 VM khác không khởi động. Tôi đã thêm "&" vào cuối lệnh nhưng vẫn không hoạt động.