Maquinas Virtuales - Script - QEMU/KVM
Introducción
Crear Mquinas virtuales con QEMU
Crear directorios:
mkdir -p /mnt/Maquinas
mkdir -p /mnt/ISOS
Crear disco:
qemu-img create -f qcow2 disco1.qcow2 20G
El espacio se va asignando conforme se vaya necesitando, no se ocupan los 20G de entrana
Crear Maquina virtual:
#! /bin/bash
manufacturer="Ema Inc."
product="Computer"
version="1.0"
serial_board="987354681245675"
serial_cpu="987564751235468"
iso_path="/media/ISOS/Debian12.iso"
vm_image="/media/Maquinas/test.qcow2"
bridge_interface="br0"
mac_address="52:54:00:d3:80:16"
#Comprobar ISO
if [ ! -f "$iso_path" ]; then
echo "Error: El archivo ISO '$iso_path' no existe."
exit 1
fi
# Crear Maquina
qemu-system-x86_64 --enable-kvm \
-smbios type=1,manufacturer="$manufacturer",product="$product",version="$version",serial="$serial_board" \
-smbios type=4,manufacturer="$manufacturer",version="Ema CPU v1.0",serial="$serial_cpu" \
-cpu qemu64,+md-clear,+spec-ctrl,+aes \
-smp cores=2,threads=2 \
-rtc clock=host \
-m 2G \
-M q35 \
--drive file=$vm_image,index=0,media=disk,if=virtio,cache=writeback \
-vga virtio \
-device virtio-net-pci,netdev=nagnar,mac="$mac_address" \
-netdev bridge,id=nagnar,br=br0 \
-cdrom $iso_path \
-boot d
Iniciar Maquina virtual:
#! /bin/bash
manufacturer="Ema Inc."
product="Computer"
version="1.0"
serial_board="987354681245675"
serial_cpu="987564751235468"
vm_image="/media/Maquinas/test.qcow2"
bridge_interface="br0"
mac_address="52:54:00:d3:80:16"
# Iniciar Maquina Virtual
qemu-system-x86_64 --enable-kvm \
-smbios type=1,manufacturer="$manufacturer",product="$product",version="$version",serial="$serial_board" \
-smbios type=4,manufacturer="$manufacturer",version="Ema CPU v1.0",serial="$serial_cpu" \
-cpu qemu64,+md-clear,+spec-ctrl,+aes \
-smp cores=2,threads=2 \
-rtc clock=host \
-m 2G \
-M q35 \
--drive file=$vm_image,index=0,media=disk,if=virtio,cache=writeback \
-vga qxl \
-spice port=5999,disable-ticketing=on \
-device virtio-net-pci,netdev=net1,mac="$mac_address" \
-netdev bridge,id=net1,br=br0 \
Permitir Bridge:
mkdir -p /etc/qemu
touch /etc/qemu/bridge.conf
echo "allow br0" > /etc/qemu/bridge.conf
Las dos opciones funcionan:
Configurar bridge CONFIGURAR BRIDGE
Compartir internet a la maquina virtual desde CELULAR USB
-device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0e8d,productid=0x2004 \
El prefijo 0x indica que los números siguientes están en formato hexadecimal. En este caso, los códigos de vendor_id y product_id generalmente se proporcionan en formato hexadecimal.
Montar dos USB (usb motorola, pendrive)
-device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x0e8d,productid=0x2004 \
-device usb-host,bus=ehci.0,vendorid=0x03f0,productid=0x4640 \
Se puede ver el ping a internet y el contenido del pendrive