Virtualisation
De Wiki de Nelly & Richard.
Sommaire |
Virtualisation
RAW to VDI, VDI to RAW, ...
- Il est parfois nécessaire de faire ces quelques manipulations pas toujours évidentes,
RAW to VDI
- Après avoir testé les vditool (un peu lent, et plus trop maintenu depuis le fork de Sun) VirtualBox l'intègre en partie dans VBoxManage convertdd
$ VBoxManage convertdd disk.raw disk.vdi
VDI to RAW
- Là, tu peux toujours faire des recherches avant de choper une info tu vas te coucher tard, ou sinon utilises vditool.
- Bon, le plus rapide reste le bon vieux dd :
1. Démarrage de la vbox avec un systemrescuecd et le dur.vdi à convertir. 2. Montage via sshfs de /tmp par exemple de la machine locale (histoire d'avoir de la place) % sshfs toto@local:/tmp /mnt/custom 3. copie bit à bit % dd if=/dev/sda of=/mnt/custom/sda.raw
- Un petit lien vers une méthode similaire customizé.
le reste
- Bon, ben man qemu-img
Virtualbox
installation
- Commencé par télécharger VirtualBox
- Ajout de votre utilisateur au groupe vboxusers
$ sudo usermod -a vboxusers <votre_username>
- si besoin : installation de kernel-headers et compilation des drivers
$ sudo apt-get install linux-headers $ sudo /etc/init.d/vboxdrv setup
bridge
/!\ Cette partie n'est plus nécessaire à partir de la version 2.1 /!\
- Installation de bridge-utils
$ sudo apt-get -y install bridge-utils
- Si jamais vous installez inutilement tunctl ou uml-utilities et/ou network-manager désinstallez-les :
$ sudo apt-get --purge remove uml-utilities network-manager
- Créer le fichier /etc/vbox/interfaces :
# <vboxN> <utilisateur> <nom-du-bridge> vbox0 votre_username br0 # ajouter ici toutes les interfaces dont vous avez besoin
- Modifiez votre fichier /etc/network/interfaces
# fichier /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp iface br0 inet dhcp bridge_ports eth0
- Redémarrez les interfaces :
$ sudo ifdown eth0 && sudo ifup br0 $ sudo /etc/init.d/vboxnet restart
- Le petit script qui va bien :
#!/bin/bash # démarrage de VirtualBox et de ses interfaces # remplacer <votre_user> par ... # un raccourcis gksudo './script.sh -s' ipaddr=$(ifconfig | grep -c br0) arg1=$1 fncUsage() { echo echo " usage :" echo " virtualbox.sh -s : démarrage des interfaces VirtualBox" echo " virtualbox.sh -h : ce message" echo } if [ $ipaddr -eq 0 ] && [ "$arg1" = "-s" ] ; then echo echo "Démarrage des interfaces VirtualBox" ifup br0 /etc/init.d/vboxnet restart echo echo "Démarrage des interfaces VirtualBox" su <votre_user> -c /usr/bin/VirtualBox elif [ $ipaddr -gt 0 ] && [ "$arg1" = "-s" ] ; then echo echo "Démarrage des interfaces VirtualBox : [OK]" echo su <votre_user> -c /usr/bin/VirtualBox elif [ "$arg1" = "-h" ] ; then fncUsage else fncUsage fi
- Vous pouvez lancer ou créer une machine virtuelle en spécifiant :
réseau : attaché à > Adaptateur réseau hôte
- Cette configuration vous permet d'utiliser vos machines virtuelles de manière ponctuelle en lancant :
$ sudo ifdown eth0 && sudo ifup br0
- Suivant votre utilisation il sera peut-être judicieux d'inverser la ligne auto entre br0 et eth0
- Si vous utilisez simplement iptables ou ufw
- iptables :
$ sudo iptables -A FORWARD -i br0 -o br0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- ufw : /var/lib/ufw/user.rules
### personal rules ### -A ufw-user-forward -i br0 -o br0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- /etc/sysctl.conf ou /etc/ufw/sysctl.conf
Passez évidemment la valeur de net/ipv4/ip_forward à 1
Port série
Machine virtuelle
Il peut-être utile de pouvoir se servir du port série pour simuler certaines configurations
- dans la configuration des interfaces série de la VM
- Mode du port : Tuyau hôte
- Chemin : /tmp/ttyS0
- en CLI
computer:~% VBoxManage modifyvm vm_livecd --uartmode1 server '/tmp/ttyS0'
Machine hôte
Dans un terminal un simple socat
computer:~% socat - /tmp/ttyS0
qemu
installation
- Pour la plupart des distributions vous le trouverez dans les dépôts :
$ sudo apt-get -y install qemu linux-headers build-essential kqemu-source
- Mais bon, faut quand même bosser ;)
$ cd /usr/src $ sudo tar -xjf kqemu.tar.bz2 ; cd /usr/src/modules/kqemu/ $ sudo ./configure $ sudo make $ sudo ./install.sh $ cd ../.. ; rm -fr /usr/src/modules # créez et ajoutez vous au groupe kqemu $ sudo modprobe kqemu ; sudo chown :kqemu /dev/kqemu
- Chargement du module au démarrage :
# echo "kqemu" >> /etc/modules et changement du group du fichier /dev/kqemu dans /etc/rc.local par exemple
Utilisation
- lancement d'une machine virtuelle avec kqemu
$ qemu -boot d -cdrom ISO/systemrescuecd-x86-1.0.3.iso -hda DUR/hdd1.raw -m 512 -kernel-kqemu
NetBSD
- Bon, pas évident, mais voilà le driver net à charger :
qemu -hda netbsd.raw -net nic,macaddr=01:AB:CD:EF:23:00,model=ne2k_pci \ -net tap,ifname=vbox0,script=/etc/qemu-ifup -m 256 -no-acpi -localtime \ -daemonize -no-kqemu -nographic
kvm
- Bon peut de chose l'installation est simpliste :
$ sudo apt-get install kvm
- après on change la commande qemu par kvm