===== KVM ===== ==== Crear imagen ==== qemu-img create -f qcow2 image.img 10G ==== Get images info ==== qemu-img info /route/example.img ==== Convert image from qcow2 to raw ==== qemu-img convert -f qcow1 -O raw /var/lib/libvirt/images/kvm2.img /var/lib/libvirt/images/kvm2_new.img qemu-img convert -f vpc -O qcow2 ==== Snapshots ==== qemu-img create -f qcow2 -F qcow2 -b win10.qcow2 win10_UOC_DB.img === KVM con I/O iscsi paravirtualizado soporte trim optimizados ceros y teclado español=== qemu-system-x86_64 -enable-kvm -m 4000 -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd -drive if=none,discard=on,detect-zeroes=on,file=debian.cow,id=hd -k es === KVM con I/O paravirtualizado y escritorio remoto spice === kvm -m 512 -drive file=iso/linuxmint-14.1-mate-dvd-32bit.iso,if=virtio -net nic,model=virtio -net user -vga qxl -spice port=5900,addr=155.210.47.75,disable-ticketing ==== Screen + KVM ==== cd /mnt/datos/ && screen -S Nagios -d -m kvm -curses nagios.img -redir tcp:11022::22 -redir tcp:11080::80 cd /mnt/datos/ && screen -S XP -d -m kvm -m 350 -nographic -usbdevice tablet xp.img -redir tcp:3389::3389 ==== montar imagenes raw vmdk qcow ==== modprobe nbd max_part=16 qemu-nbd -c /dev/nbd0 cosa.vmdk partprobe /dev/nbd0 mount /dev/nbd0p1 mnt === Si hay lvm === vgscan vgchange -a y ==== Ubuntu + KVM + VNC ==== * El arranque correcto con vnc requiere quitar de la linea boot la opción "splash" ==== KVM con BIOS uefi ==== kvm -bios /usr/share/ovmf/OVMF.fd -m 2G cosa.img ==== KVM con BIOS uefi nueva sintaxis ==== cp /usr/share/OVMF/OVMF_VARS.fd . kvm -drive if=pflash,format=raw,readonly=on,file=/usr/share/ovmf/OVMF.fd \ -drive if=pflash,format=raw,file=OVMF_VARS.fd # requiere copia editable de OVFM_VARS.fd ==== Modos de red ==== * + info http://www.linux-kvm.org/page/Networking === User Networking === == Redirección de puertos == qemu-system-x86_64 -net nic,model=rtl8139 -net user,hostfwd=tcp::3389-:3389,hostfwd=tcp::1992-:1992 **Cuando usar:** * Un modo simple para que la máquina virtual tenga acceso al host, a internet y a recursos de la red local * No se va a necesitar acceder a la máquina virtual desde la red o desde otra máquina * You are ready to take a huge performance hit. * Warning: User networking does not support a number of networking features like ICMP. Certain applications (like ping) may not function properly. **Modo de uso** kvm -net nic -net user /path/to/hda.img === Private Virtual Bridge === **Cuando usar:** * Se quiere crear una red virtual entre dos máquinas virtuales === Public Bridge === **Cuando usar:** * Se quiere asignar una IP a la máquina virtual y se quiere que sea accesible desde la red. ** ¿Ejemplo?** etfiat@debian-brutal:~$ cat puentes #puente y tap brctl addbr br0 ifconfig br0 192.168.0.1 up #apt-get install uml-utilities tunctl -b -u etfiat -t tap1 ifconfig tap1 #brctl addif br0 tap1 #nat #permitimos redirección echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F iptables -t nat -F iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 155.210.47.75 #maquina virtual kvm -hda debian.img -m 256 -net nic,macaddr=52:54:00:12:34:50,vlan=0 -net tap,vlan=0,ifname=tap1 # -nographic #bajada de puente y tap brctl delif br0 tap1 ifconfig br0 down brctl delbr br0 tunctl -d tap1 etfiat@debian-brutal:~$ cat /etc/kvm/kvm-ifup #!/bin/sh switch=$(ip route ls | awk '/^default / { for(i=0;i kvm -cdrom debian-8.3.0-amd64-netinst.iso -net bridge -net nic,model=virtio -drive file=/dev/sdh,format=raw -m 2048 kvm -cdrom debian.iso -net bridge -net nic,model=virtio -drive file=/dev/sdh,format=raw -m 2048 kvm -drive file=debian.img,if=virtio -drive file=debian.iso,if=virtio,media=cdrom kvm -drive file=debian-8.3.0-amd64-netinst.iso,media=cdrom -drive file=debian.img,if=virtio,format=raw -m 2048 -net bridge -net nic,model=virtio # The loopback network interface auto lo iface lo inet loopback allow-hotplug enp10s3f0 iface enp10s3f0 inet manual auto br0 iface br0 inet static address 155.210.4.98 netmask 255.255.255.240 network 155.210.4.0 broadcast 155.210.4.111 gateway 155.210.4.110 dns-nameservers 155.210.12.9 155.210.3.12 dns-search unizar.es bridge_ports enp10s3f0 bridge_stp off bridge_fd 0 bridge_maxwait 0 auto br1 iface br1 inet static address 10.148.97.254 broadcast 10.148.97.255 netmask 255.255.255.0 network 10.148.97.0 dns-nameservers 155.210.12.9 155.210.3.12 dns-search unizar.es ==== Pasar dispositivo usb a la VM ==== sudo kvm -m 4000 -cdrom Descargas/Fedora-Games-Live-x86_64-33-1.2.iso -usb --device usb-host,vendorid=0x258a,productid=0x0027 ==== Bridges en interfaces con vlan ==== # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface vlan-raw-device eno1 #auto eno1.516 #iface eno1.516 inet static # address 10.0.4.207 # netmask 255.255.255.0 # gateway 10.0.4.254 auto eno1.516 iface eno1.516 inet manual auto brblades iface brblades inet static address 10.0.4.207 netmask 255.255.255.0 gateway 10.0.4.254 bridge_ports eno1.516 bridge_stp off bridge_fd 0 bridgeç_maxwait 0 #auto eno1.1105 #iface eno1.1105 inet static # address 172.16.200.101 # netmask 255.255.255.0 auto eno1.1105 iface eno1.1105 inet manual auto brceph iface brceph inet static address 172.16.200.101 netmask 255.255.255.0 bridge_ports eno1.1105 bridge_stp off bridge_fd 0 bridge_maxwait 0 ==== Bridged network sintaxis nueva ==== qemu-system-x86_64 -enable-kvm \ -m 4096 frontal.img \ -device e1000,netdev=net0,mac=DE:AD:BE:EF:00:FA \ -netdev tap,id=net0,script=/etc/kvm/kvm-brblades-ifup,downscript=/etc/kvm/kvm-ifdown \ -device e1000,netdev=net1,mac=DE:AD:BE:EF:00:FB \ -netdev tap,id=net1,script=/etc/kvm/kvm-brceph-iup,downscript=/etc/kvm/kvm-ifdown \  $ cat /etc/kvm/kvm-brceph-ifup #!/bin/sh # # Script called by kvm on tap interface creation # KVM_BR=`basename $0 -ifup | sed -e 's/^[^-]*-\?//'` KVM_BRIDGE=${KVM_BR:-$KVM_BRIDGE} echo "$0:" echo "Adding $1 to bridge interface $KVM_BRIDGE" brctl addif "$KVM_BRIDGE" "$1" ip link set "$1" up $ cat /etc/kvm/kvm-ifdown #!/bin/sh # # Script called by kvm on tap interface deletion # KVM_BR=`basename $0 -ifdown|sed -e 's/^[^-]*-\?//'` KVM_BRIDGE=${KVM_BR:-$KVM_BRIDGE} echo "$0:" echo "Removing $1 from bridge $KVM_BRIDGE" ip link set "$1" down brctl delif "$KVM_BRIDGE" "$1"