« VirtualBox » : différence entre les versions
(12 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:Logiciels]] | |||
= Links = | = Links = | ||
* [http://www.virtualbox.org/manual/UserManual.html User Manual utilisateur] | |||
* [https://www.virtualbox.org/wiki/Changelog Changelog] | * [https://www.virtualbox.org/wiki/Changelog Changelog] | ||
Ligne 52 : | Ligne 51 : | ||
| Host Driver Audio || On newer Linux distributions, the PulseAudio subsystem is preferred. | | Host Driver Audio || On newer Linux distributions, the PulseAudio subsystem is preferred. | ||
|} | |} | ||
== [https://www.virtualbox.org/manual/ch06.html#networkingmodes Modes d'accès au réseau] == | |||
=== Not attached === | |||
La machine virtuelle n'est connectée à aucun réseau. | |||
=== Network Address Translation (NAT) === | |||
La MV a accès à internet.<br> | |||
La MV est connectée à un réseau privé (ex :10.0.2.0).<br/> | |||
Les services de la MV ne sont pas accessibles depuis la machine hôte, le réseau local de la machine hôte ou internet.<br/> | |||
Mais il est possible de définir une redirection de ports depuis la machine hôte vers la MV. VB peut ainsi écouter des ports particulier de la machine hôte et renvoyer les paquets destinés à ces ports à la MV.<br/> | |||
<u>Scénario :</u> | |||
*Les données réseau envoyées par la MV sont reçues par VB. | |||
*VB extrait les données TCP/IP et les renvoient à la machine hôte. | |||
*Le destinataire va croire que c'est VB qui lui envoie les données depuis l'IP de la machine hôte. | |||
*VB attend la réponse du paquet envoyé, puis la transforme et l'envoie à la MV. | |||
=== NAT Network === | |||
=== Pont réseau / Bridged adapter === | |||
Création d'une interface réseau pour la MV.<br/> | |||
La machine hôte perçoit la MV comme si elle était physiquement connecté au réseau. | |||
=== Réseau interne / Internal network === | |||
Entre MV. | |||
=== Réseau privé hôte === | |||
Réseau hôte – MV. | |||
=== Réseau Host-only / Host-only Adapter === | |||
Mélange de réseau Bridge et de réseau Internal | |||
= [https://forums.virtualbox.org/viewtopic.php?f=2&t=72851 Pilote de la souris] = | = [https://forums.virtualbox.org/viewtopic.php?f=2&t=72851 Pilote de la souris] = | ||
Ligne 192 : | Ligne 221 : | ||
*Au boot, xp va vérifier le système de fichier. | *Au boot, xp va vérifier le système de fichier. | ||
= [https:// | = [https://superuser.com/questions/529149/how-to-compact-virtualboxs-vdi-file-size Compact VDI file size] = | ||
= | <kode lang='bash'> | ||
# Linux guest: nullify free space | |||
telinit 1 | |||
mount -o remount,ro /dev/sda1 | |||
zerofree -v /dev/sda1 | |||
# Windows guest: defrag then nullify free space with SDelete from Sysinternals | |||
sdelete.exe c: -z | |||
# compact | |||
vboxmanage modifymedium --compact /path/to/thedisk.vdi | |||
</kode> | |||
= [https://www.virtualbox.org/manual/ch08.html CLI / VBoxManage] = | = [https://www.virtualbox.org/manual/ch08.html CLI / VBoxManage] = | ||
Ligne 285 : | Ligne 299 : | ||
== [https://wiki.archlinux.org/index.php/VirtualBox#Extension_pack Installer l'Extension Pack] == | == [https://wiki.archlinux.org/index.php/VirtualBox#Extension_pack Installer l'Extension Pack] == | ||
# Télécharger l'[https://www.virtualbox.org/wiki/Downloads Extension Pack] | # Télécharger l'[https://www.virtualbox.org/wiki/Downloads Extension Pack] | ||
# File → | # File → Tools → Extension Pack Manager | ||
{{info | Il faut les droits root pour l'installation. Polkit ou gksu doit être installé pour demander les droits root.}} | {{info | Il faut les droits root pour l'installation. Polkit ou gksu doit être installé pour demander les droits root.}} | ||
= Logs = | |||
{{boxx|$HOME/VirtualBox VMs/{machinename}/Logs}} | |||
= Guests = | = Guests = | ||
Ligne 393 : | Ligne 410 : | ||
</kode> | </kode> | ||
= | == Ubuntu desktop == | ||
<kode lang='bash'> | |||
# gcc, make and perl are needed to build the kernel with the vbox guest additions | |||
sudo apt install build-essential | |||
</kode> |
Dernière version du 24 mars 2024 à 13:59
Links
Guests configuration
System
Motherboard
Setting | Description |
---|---|
Chipset | PIIX3 is the default chipset for most guests. ICH9 support is experimental. |
Pointing Device | USB Multi-Touch Tablet is suitable for guests running Windows 8 or later. Prefer USB Tablet to PS/2 Mouse |
Enable I/O APIC | With Advanced Programmable Interrupt Controllers, OSes can use more than 16 interrupt requests (IRQs) and therefore avoid IRQ sharing for improved reliability. Enabling the I/O APIC is required, especially for 64-bit Windows guest OSes. It is also required if you want to use more than one virtual CPU in a virtual machine. However, software support for I/O APICs has been unreliable with some OSes other than Windows. Also, the use of an I/O APIC slightly increases the overhead of virtualization and therefore slows down the guest OS a little. All Windows OSes install different kernels, depending on whether an I/O APIC is available. As with ACPI, the I/O APIC therefore must not be turned off after installation of a Windows guest OS. Turning it on after installation will have no effect however. |
Enable EFI | Enables experimental support for the Extensible Firmware Interface, which replaces the legacy BIOS. |
Hardware Clock in UTC Time | If selected, Oracle VM VirtualBox will report the system time in UTC format to the guest instead of the local (host) time. This affects how the virtual real-time clock (RTC) operates and may be useful for UNIX-like guest OSes, which typically expect the hardware clock to be set to UTC. |
Processor
Setting | Description |
---|---|
Enable PAE/NX | Determines whether the Physical Address Extension and NX capabilities of the host CPU will be exposed to the virtual machine. Allow a 32-bit x86 CPU to access more than 4 GB of RAM. |
Display Settings
Setting | Description |
---|---|
Graphics Controller |
|
Enable 3D Acceleration | 3D support is still experimental. |
Audio
Setting | Description |
---|---|
Host Driver Audio | On newer Linux distributions, the PulseAudio subsystem is preferred. |
Modes d'accès au réseau
Not attached
La machine virtuelle n'est connectée à aucun réseau.
Network Address Translation (NAT)
La MV a accès à internet.
La MV est connectée à un réseau privé (ex :10.0.2.0).
Les services de la MV ne sont pas accessibles depuis la machine hôte, le réseau local de la machine hôte ou internet.
Mais il est possible de définir une redirection de ports depuis la machine hôte vers la MV. VB peut ainsi écouter des ports particulier de la machine hôte et renvoyer les paquets destinés à ces ports à la MV.
Scénario :
- Les données réseau envoyées par la MV sont reçues par VB.
- VB extrait les données TCP/IP et les renvoient à la machine hôte.
- Le destinataire va croire que c'est VB qui lui envoie les données depuis l'IP de la machine hôte.
- VB attend la réponse du paquet envoyé, puis la transforme et l'envoie à la MV.
NAT Network
Pont réseau / Bridged adapter
Création d'une interface réseau pour la MV.
La machine hôte perçoit la MV comme si elle était physiquement connecté au réseau.
Réseau interne / Internal network
Entre MV.
Réseau privé hôte
Réseau hôte – MV.
Réseau Host-only / Host-only Adapter
Mélange de réseau Bridge et de réseau Internal
Pilote de la souris
Avec les Guest Addition et le Mouse Integration VirtualBox émule une sourie sur le guest via un pilote.
La sourie est disponible sur le host et le guest et bascule automatiquement de l'un à l'autre.
Pour avoir accès à la sourie sans émulation il faut:
- l'ajouter dans les filtres usb
- désactiver le Mouse Integration (menu Input depuis le guest)
La sourie sera disponible sur le guest mais plus sur le host! |
Save the machine state
Fermer la VM avec la croix → Save the machine state
Raccourcis clavier
Switch to Seamless Mode | Right Ctrl + L |
Switch to Fullscreen | Right Ctrl + F |
Minimize window | Right Ctrl + M |
Take Screenshot | Right Ctrl + E |
Popup Menu | Right Ctrl + Home |
ACPI Shutdown | Right Ctrl + H |
Seemless mode - Bureau intégré
Permet l'affichage du bureau invité sans le fond d'écran: barre des taches et fenêtre.
Booter un fichier IMG
Stockage → Ajouter un Contrôleur disquette → Ajouter une disquette liée au fichier IMG
Migrer des anciennes VM vers VB 4
Before 4.0 | 4.0 or above | |
Default machines folder | $HOME/.VirtualBox/Machines | $HOME/VirtualBox VMs |
Default disk image location | $HOME/.VirtualBox/HardDisks | In each machine's folder |
Machine settings file extension | .xml | .vbox |
File → Export Appliance
Erreurs
Impossible de supprimer une MV
Échec de la suppression de l'instantané {I} de la machine virtuelle {MV}.
Hard disk {HD} has more than one child hard disk (n).
Explication : le fichier *.vdi est utilisé par une autre MV.
Solution : Fichier → Gestionnaire de media …
Sélectionner les fichiers *.vdi correspondant à la MV à supprimer.
Si le fichier *.vdi est « non-connecté » ou « Not Attached », il ne pose pas problème.
Si le fichier *.vdi est connécté à une MV, il doit être libéré.
Qt WARNING: libpng warning: iCCP: known incorrect sRGB profile
Les instantanés (snapshots)
Permet de sauvegarder / restaurant la MV dans un certain état.
Chaque instantané créé un nouveau disque *.vdi, ce qui devient assez vite très gourmand en espace disque.
Les partages réseau
Installez les Guest Additions : Périphériques → Installer les additions invités...
Puis dans les préférences de la MV ajoutez des dossiers à partager.
Hôte Windows
Une fois dans la MV, connectez un lecteur réseau sur le partage \\vboxsrv\NomDuDossierPartagé ou exécutez la commande suivante :
net use Z: \\vboxsrv\NomDuDossierPartagé |
Hôte Linux
# ajouter l'utilisateur courant au groupe vboxsf pour utiliser l'automount → /media/sf_[nom du partage configuré dans vbox] sudo gpasswd -a [user] vboxsf # se délogguer pour que la modification s'applique # monter le partage manuellement sudo mount -t vboxsf [nom du partage configuré dans vbox] /media/dossier |
Changer l'UUID d'un disque vdi
C:\Program File\VirtualBox\VBoxManage internalcommands setvdiuuid disk.vdi |
Redimensionner une partition
Si le disque a des snapshots, il faut tous les supprimer. Sinon pas de redimensionnement. |
Disques VDI
VBoxManage modifyhd your_virtual_disk.vdi --resize the_new_size # Monter GParted Live ISO pour redimensionner la partition # On GPT disks, increasing the size of the disk will result in the backup GPT header not being at the end of the device. # GParted will ask to fix this, click on Fix. |
Méthode générique
# créer un nouveau disque de la taille souhaitée (en Mio, ici 10000 Mio ≈ 10 Gio) VBoxManage createhd -filename new.vdi --size 10000 # cloner l'ancien disque VBoxManage clonehd old.vdi new.vdi --existing # lister les machines virtuelles VBoxManage list vms # afficher les infos de la machine à copier VBoxManage showvminfo VM_name # Storage Controller Bootable (1): on # IDE (1, 0): Empty # SATA (0, 0): ... # on a donc storagectl SATA et port 0 (<SATA> (<0>, 0)) # Détacher l'ancien disque et attacher le nouveau # storagectl SATA et port 0 sont à remplacer par les valeurs obtenues avec showvminfo VBoxManage storageattach VM_name --storagectl SATA --port 0 --medium none VBoxManage storageattach VM_name --storagectl SATA --port 0 --medium new.vdi --type hdd # Monter GParted Live ISO pour redimensionner la partition # On GPT disks, increasing the size of the disk will result in the backup GPT header not being at the end of the device. # GParted will ask to fix this, click on Fix. # dés-enregistrer l'ancien disque et le supprimer VBoxManage closemedium disk old.vdi rm old.vdi |
Ancienne méthode
Il suffit de copier la partition dans une partition plus grande :
- Créer un deuxième disque virtuel de la taille souhaitée et l'ajouter en slave du premier
- Télécharger GParted live et booter la machine virtuelle sur l'iso
- Dans GParted, copier la première partition et la coller dans la deuxième. Pendant le collage, agrandir la partition pour qu'elle prenne tous l'espace. Enfin cliquer sur Apply.
- Ensuite clique droit sur la nouvelle partition → Manage Flags → sélectionner « boot ».
- Désactiver le boot sur le live cd, faire de la nouvelle partition une master partition et supprimer l'ancienne.
- Au boot, xp va vérifier le système de fichier.
Compact VDI file size
# Linux guest: nullify free space telinit 1 mount -o remount,ro /dev/sda1 zerofree -v /dev/sda1 # Windows guest: defrag then nullify free space with SDelete from Sysinternals sdelete.exe c: -z # compact vboxmanage modifymedium --compact /path/to/thedisk.vdi |
CLI / VBoxManage
# démarrer MaVM VBoxManage startvm "MaVM" # sauvegarder l'état de MaVM et l'arrêter VBoxManage controlvm "MaVM" savestate # lister les VM qui tournent VBoxManage list runningvms # obtenir l'UUID depuis le nom VBoxManage showvminfo "MaVM" | rg ^UUID | awk '{print $2}' |
Convert a VHDX to VDI
vboxmanage clonemedium disk ./vm.vhdx ./vm.vdi --format VDI |
Boot sur un disque dur physique ou une clé usb
La fonctionnalité RawDisk permet de booter sur une partition d'un vrai DD ou une clé usb. Le fichier *.vmdk doit être utilisé comme un DD virtuel dans VB.
Créer un lien vers une partition
# ajouter l'utilisateur courant au groupe disk sudo gpasswd -a [user] disk VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sda -partitions 1,2 -relative |
Pour les clés usb ou s'il n'y a qu'une partition ne pas utiliser -partitions |
Commandes Windows
REM lister les disques wmic diskdrive get name,size,model REM lister les partitions VBoxManage internalcommands listpartitions -rawdisk \\.\PhysicalDrive0 VBoxManage internalcommands createrawvmdk -filename C:\path\to\file.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 1,2 -relative |
Déplacer un dossier contenant une machine virtuelle
~/.config/VirtualBox/VirtualBox.xml |
<MachineRegistry> <MachineEntry uuid="{1234abcd-1234-abcd-efgh-000000000000}" src="/path/MyMachine/MyMachine.vbox"/> |
Installation sur Archlinux
pacman -S virtualbox virtualbox-host-modules-arch virtualbox-guest-iso # add current user to vboxusers group sudo gpasswd -a $USER vboxusers |
Redémarrer pour que le module vboxdrv soit chargé et la modification du groupe soit prise en compte. |
Pour l'USB 2, il faut en plus installer l'Extension Pack |
Activer la virtualisation dans le bios (VT-x, AMD-V, hardware-V)
Asus EFI Bios: Advances Mode → Advanced → CPU Configuration → Technologie de virtualisation Intel
Installer l'Extension Pack
- Télécharger l'Extension Pack
- File → Tools → Extension Pack Manager
Il faut les droits root pour l'installation. Polkit ou gksu doit être installé pour demander les droits root. |
Logs
$HOME/VirtualBox VMs/{machinename}/Logs
Guests
64 bits
- Activer dans le BIOS
- Intel Virtualization Technology
- Inter VT-d Feature
- Désinstaller VMWare
- Désactiver Hyper-V (Windows 8)
Send Ctrl + Alt + F1
- Window screen RCtrl + F1
- Full screen LCtrl + Alt + F1
ArchLinux
EFI
Settings → System → Onglet Motherboard → Enable EFI |
Les entrées ne sont pas sauvegardées une fois la machine virtuelle éteinte.
- Solution 1: utiliser le bootloader par défaut
Renommer /boot/EFI/refind/refind_x64.efi en /boot/EFI/BOOT/bootx64.efi - Solution 2: créer le script startup.nsh
/boot/startup.nsh |
\EFI\refind\refind_x64.efi |
- Solution 3: lancer manuellement le bootloader directement depuis le shell UEFI
\EFI\refind\refind_x64.efi |
Xorg
pacman -S xorg-server xf86-video-vesa |
Guest Additions
# pilote vidéo pacman -S virtualbox-guest-modules-arch # VirtualBox Guest userspace utilities pacman -S virtualbox-guest-utils systemctl enable vboxservice |
3D Acceleration
glxinfo | egrep "(OpenGL vendor|OpenGL renderer|OpenGL version)" # accélération logicielle avec LLVMPipe # OpenGL vendor string: VMware, Inc. # OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.7, 256 bits) # OpenGL version string: 3.0 Mesa 11.1.1 # accélération matérielle # OpenGL vendor string: Humper # OpenGL renderer string: Chromium # OpenGL version string: 2.1 Chromium 1.9 |
- No 3D acceleration with Arch + virtualbox-guest-modules 4.3.24-1
- ArchLinux utilise mesa 11.1.1 alors que Mint utilise mesa 10.5.9
The AIGLX errors in Xorg.x.log are displayed even when 3D is working correctly. |
/var/log/Xorg.0.log |
(II) AIGLX: Screen 0 is not DRI2 capable (EE) AIGLX: reverting to software rendering |
Problème réseau: e1000 0000:00:03.0 enp0s3: Detected Tx Unit Hang
Changer le pilote de la carte réseau: Intel PRO/1000 MT Desktop → PCnet Fast III
Debian
Installation des Guest Additions
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential module-assistant # Configure your system for building kernel modules sudo m-a prepare # monter les Guest Additions sudo sh /media/cdrom/VBoxLinuxAdditions.run |
Fedora
Pour pouvoir installer les Guest Additions, installer la paquet kernel-devel.
Ubuntu Server
Installation des Guest Additions:
- Devices → Insert Guest Additions CD image
sudo mkdir /media/cdrom sudo mount /dev/cdrom /media/cdrom cd /media/cdrom # installer les dépendances nécessaires sudo apt-get install -y dkms build-essential linux-headers-generic linux-headers-$(uname -r) # passer à l'utilisateur root sudo su # installer les Guest Additions ./VBoxLinuxAdditions.run # rebooter puis tester que le module est bien chargé lsmod | grep -io vboxguest |
Ubuntu desktop
# gcc, make and perl are needed to build the kernel with the vbox guest additions sudo apt install build-essential |