Debian 11 (Bullseye) et VirtualBox
Contexte
Debian 11 (Bullseye) a été publié le 14 août 2021. Quelques jours après, j’en profite pour mettre à jour mon PC. Je m’aperçois que VirtualBox ne fournit pas de package à jour. Le package existant fait référence à la précédente version avec des packages non fournis ou renommées.
Il faudra attendre que l’équipe projet travaille à mettre à jour les packages.
Les installations manuelles à partir d’une archive ne sont pas concluantes. Le fait de vouloir garder l’UEFI ne simplifie pas la tâche.
Version de novembre
Le 22 novembre est publié la version 6.1.30. Comme annoncé par le projet, c’est une version de maintenance. Ce qui est intéressant pour nous, c’est qu’elle intègre cette fonctionnalité :
Note
|
Linux host: For all distribution specific packages (deb/rpm format) fix the packaging so that the feature for unattended installation of guest OSes works |
C’est à dire que les packages ont été mis à jour pour les distribution Linux dont Debian.
Installation
-
Ajoutez ou Mettez à jour le fichier /etc/apt/sources.list.d/virtualbox.list
deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian bullseye contrib
# deb-src [arch=amd64] http://download.virtualbox.org/virtualbox/debian bullseye contrib
-
Mise à jour des packages
apt update
-
Installation de la version 6.1
apt install virtualbox-6.1
Pour rappel, la fin de support pour VirtualBox 6.0 est juillet 2020.
Mise à jour des modules si UEFI est activé.
Si, comme moi, vous avez gardé UEFI actif, il est nécessaire de signer les modules virtualbox. Pour cela, j’ai un script qui permet de le faire :
./sign-vbox-modules
Passphrase for ./MOK.priv ******
[sign-vbox-modules] Signing /lib/modules/5.10.0-9-amd64/misc/vboxdrv.ko...
[sign-vbox-modules] Signing /lib/modules/5.10.0-9-amd64/misc/vboxnetadp.ko...
[sign-vbox-modules] Signing /lib/modules/5.10.0-9-amd64/misc/vboxnetflt.ko...
Pour information, le contenu du script est disponible sur github
Pour plus d’informations, je vous invite à lire mon billet SecureBoot Signer ses modules et pourquoi ?
Suite à l’exécution, il reste à charger les modules :
mobprobe vboxdrv
mobprobe vboxnetadp
mobprobe vboxnetflt
Problèmes avec le hôte seulement
Cependant, si vous avez l’habitude d’utiliser le réseau hôte (host-only), vous ne pourrez plus accèder à vos machines.
Diagnostique
Vous pourrez le voir au niveau du système avec la commande ip a
...
14: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:02 brd ff:ff:ff:ff:ff:ff
15: vboxnet1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:01 brd ff:ff:ff:ff:ff:ff
Nous pouvons constater qu’il n’y a pas (ou plus) d’adresse IP associée aux réseaux virtualbox (vboxnet).
Nouvelle règle
Pour comprendre ce qui te passe, il faut regarder la version précédente, celle publié le 19 octobre, soit la version 6.1.28. Pourquoi parlez de cette version plus ancienne ? car il y a une modification qui a un impact sur vos VMs.
Note
|
Network: More administrative control over host-only network ranges to prevent trouble due to misconfiguration, see user manual. Check updated documentation or your VMs may stop working! |
En effet, à partir de cette version, les adresses IP autorisées sont uniquement les adresses 192.168.56.0/21
par défaut. Pour IPv6, les adresses lien locaux sont autorisées. Vous devez modifier les adresses IP de vos VMs pour être dans la plage concernée ou sinon il faut passer par de la configuration.
Configuration
En effet, cela reste néanmoins configurable. Si vous souhaitez un réseau précis, il suffit de préciser dans le fichier /etc/vbox/networks.conf
, en le créant s’il n’existe pas. Pour cela, il faut écrire les lignes de cette manière
* 192.168.32.0/24
Nous avons trois règles :
-
Nous pouvons configurer autant de ligne que nous le souhaitons.
-
Si la ligne commence par le caractères #, elle sera ignorée.
-
De même, si le fichier existe et qu’il y a aucun plage d’adresse, cela implique que le réseau hôte uniquement est désactivé.
Vérification
Pour vérifier, nous pouvons utiliser de nouveau la commande ip a
et nous avons bien l’adresse IP associé au réseau (vboxnet0 dans l’exemple).
14: vboxnet0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.32.1/24 brd 192.168.32.255 scope global vboxnet0
valid_lft forever preferred_lft forever
inet6 fe80::800:27ff:fe00:0/64 scope link
valid_lft forever preferred_lft forever
15: vboxnet1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 0a:00:27:00:00:01 brd ff:ff:ff:ff:ff:ff
Moteur de recherche
"Eduquer, ce n'est pas remplir des vases mais c'est d'allumer des feux." - Michel Montaigne