FreeBSD – Howto install VirtualBox

Installation de VirtualBOX sous FreeBSD 8 en ligne de commande.

Je voulais créer un petit lab composé de CentOS sur ma FreeBSD. C’est chose faite:

– Première étape : installer le port virtualbox-ose:

virtualbox-ose-4.0.12 A general-purpose full virtualizer for x86 hardware


lupus# cd /usr/ports/emulators/virtualbox-ose
lupus# make install clean

– Il faut cocher en plus: – QT4 – GUESTADDITIONS – X11 – VDE – VNC

– Ensuite création d’une VM:

lupus# VBoxManage createvm --name centos-pam --register
Virtual machine 'centos-pam' is created and registered.
UUID: cdb74972-15fa-4fcb-aec9-9540964abd44
Settings file: '/root/VirtualBox VMs/centos-pam/centos-pam.vbox'

– Création d’un disk de 10Gb


lupus# VBoxManage createhd --filename VirtualBox\ VMs/centos-pam/pam.vdi --size 10000
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 18aaa295-22a7-4f38-a400-3cb51ed50e94

– Déclaration d’un controlleur SATA

lupus# VBoxManage storagectl centos-pam  --name "SATA Controller" --add sata --controller IntelAHCI

– Affectation de l’image vdi au controlleur SATA:

lupus# VBoxManage storageattach  centos-pam --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium VirtualBox\ VMs/centos-pam/pam.vdi

– Pour installer l’OS guest, il nous faut déclarer un lecteur CD

lupus# VBoxManage storagectl centos-pam  --name "IDE Controller" --add ide

– Affectation de l’image ISO CentOS à ce nouveau contrôleur:

lupus# VBoxManage storageattach centos-pam --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium /usr/jails/CentOS-6.0-i386-minimal.iso

– Définiton de l’ordre du boot

lupus# VBoxManage modifyvm centos-pam --boot1 dvd --boot2 disk --boot3 none --boot4 none

– Il nous faut un peu de RAM

lupus# VBoxManage modifyvm centos-pam --memory 1024 --vram 128

– Ne pas oublier la carte réseau, sinon l’intérêt est limité. La première carte (eth0) est pour avoir Internet (NAT). La 2eme (eth1) est pour faire communiquer les VM ensemble (si on créer plusieurs VM). eth0 aura automatiquement une IP via le DHCP de VirtualBox. eth1 devra se voir attribuer une ip manuellement (192.168.200.1 par exemple). Cette partie se fait sur l’OS guest directement.

lupus# VBoxManage modifyvm centos-pam --nic1 nat --nictype1 82540EM
lupus# VBoxManage modifyvm centos-pam --nic2 intnet

– Afin d’avoir accès depuis l’host vers la VM, on peut faire une redirection de port (rediriger le port local 22 de la VM vers l’OS sur le port 22224).

lupus# VBoxManage modifyvm centos-pam --natpf1 "guestssh,tcp,,22224,,22"

– Démarrer la VM en activant VNC (-n) et choisir le port (-m 5901) afin de prendre le contrôle de la console par ce biais.

VBoxHeadless -n -m 5901 --startvm centos-pam

– Maintenant, il suffit depuis son pc a la maison de faire un tunnel SSH :

ssh -L 5903:lupus:5903 nico@lupus

– Depuis mon pc a la maison, je démarre une session VNC sur localhost:5903 et la console apparait permettant ainsi de procéder à l’installation de l’OS.

– Quand l’installation est terminée, il faut enlever l’image ISO

lupus# VBoxManage storageattach centos-pam --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium none

– Si jamais on souhaite enlever un NAT existant:

lupus# VBoxManage modifyvm centos-pam --natpf1 delete guestssh

– Une VM tout seule, c’est pas marrant, autant en avoir 2 mais sans se refaire l’installation from scratch.
Pour cela : CLONER l’image disque (la VM source doit être éteinte).

lupus# VBoxManage createvm --name centos-sensei --register
lupus# VBoxManage clonehd /usr/jails/VirtualBox\ VMs/centos-pam/pam.vdi /usr/jails/VirtualBox\ VMs/centos-sensei/sensei.vdi --format VDI
lupus# VBoxManage storagectl centos-sensei --name "SATA Controller" --add sata --controller IntelAHCI
lupus# VBoxManage storageattach centos-sensei --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /usr/jails/VirtualBox\ VMs/centos-sensei/sensei.vdi

– On peut lister les VM créées:

lupus# VBoxManage list vms
"centos-pam" {cdb74972-15fa-4fcb-aec9-9540964abd44}
"centos-sensei" {3d030271-3a63-4c9b-a3b1-9a70c2b1e12a}

– On peut maintenant y aller en SSH

lupus# ssh -p 22224 localhost uname -a
root@localhost's password:
Linux centos-pam 2.6.18-274.7.1.el5 #1 SMP Thu Oct 20 16:20:37 EDT 2011 i686 i686 i386 GNU/Linux

Bon LAB !