===== 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"