Aller au contenu

Administration Unix - TP séance 11

À la fin de la séance, déposez votre fichier de réponses sur la page Ametice en suivant bien les instructions, même si vous n'avez pas fini la planche ; lorsque vous aurez terminé, vous pourrez re-déposer la version finale.

Exercice 1 : virtualisation avec VirtualBox

a) Installation de VirtualBox

  • Si vous êtes sur un ordinateur de la salle de TP, sous Linux :

    VirtualBox est déjà installé. Lancez-le dans un terminal. Quelle est la version installée ? (menu Aide / À propos)

  • Sur votre ordinateur personnel :

    Quelle est votre plateforme host (système, version) ? Note : si vous avez 2 systèmes sur votre ordinateur, choisissez celui pour lequel vous avez le plus d'espace disque disponible.

    Allez sur le site https://www.virtualbox.org/ puis "Downloads". La dernière version disponible apparaît en premier.

    Si VirtualBox est déjà installé sur votre machine, vérifiez que vous avez bien la dernière version (menu Aide / À propos), sinon désinstallez l'ancienne version et installez la nouvelle à la place.

    Pour installer la dernière version, téléchargez celle qui correspond à votre plateforme, puis suivez les instructions.

    Téléchargez ensuite le pack d'extension toutes plateformes (il apparaît juste après dans la page) et installez-le avec VirtualBox (en cours de route seront affichées les conditions d'utilisation ; allez jusqu'en bas pour faire apparaître le bouton "J'accepte").

    Vérifiez enfin dans le BIOS que l'accélération matérielle de virtualisation (Intel VT-x ou AMD-V) est activée.

b) Téléchargement d'une image ISO

Nous allons installer XUbuntu, qui est une distribution Ubuntu allégée, basée sur le bureau XFCE. Elle peut fonctionner avec peu de RAM et d'espace disque.

Le site officiel est https://xubuntu.org/ puis "Download". Prenez la dernière version LTS (Long Time Support) disponible en passant par un site miroir (par exemple Germany), puis téléchargez le fichier .iso (environ 2.8 Go).

Une autre méthode, donnée en cours, est peut-être plus rapide : allez sur http://sol.dil.univ-mrs.fr/~thiel/ISO/ et téléchargez le fichier .iso de xubuntu.

c) Création d'une machine virtuelle

Dans VirtualBox, cliquez sur "Nouvelle".

Donnez un nom à votre machine (par ex. xubu2004).

Choisissez l'emplacement du disque virtuel :

  • sur un ordinateur de la salle de TP, sous Linux :

    Votre compte utilisateur ayant un quota, il vous faudra stocker les disques virtuels dans /tmp, ce qui signifie que les données seront perdues au reboot. Une autre solution est d'utiliser un disque SSD amovible en USB3 (ça ne marchera pas bien avec une clé USB classique).

  • sur votre ordinateur personnel :

    Vérifiez votre espace disque disponible, il faudra au moins 10 Go (image d'installation + disque virtuel).

    Note : si votre hôte est Windows 10 et qu'au début ou en cours de l'installation vous êtes bloqué sur un écran noir ou avec plein d'erreurs, cf Annexe 1 à la fin de ce document.

Précisez le type et la version du système invité.

Mémoire vive : 1 Go est suffisant (modifiable par la suite dans Configuration).

Créez un disque virtuel maintenant, de type VDI, dynamiquement alloué, de taille max 20 Go (modifiable par la suite avec VBoxManage).

Démarrez la machine.

Choisissez comme disque de démarrage le fichier ISO que vous avez téléchargé (icone à droite, Ajouter, sélectionnez le .iso, idem, puis Démarrer).

Après le démarrage : sélectionnez la langue, puis Installer Xubuntu.

Sélectionnez le clavier.

Cochez "télécharger les mises à jour pendant l'installation" et "installer un logiciel tiers".

Sélectionnez "Effacer le disque et installer".

Au début de l'installation, répondez aux questions (pays, login, nom de l'ordinateur ... le mot de passe peut être court).

Patientez pendant que l'installation se déroule ...

Enfin Redémarrez la machine virtuelle (il n'y a pas besoin de retirer le medium d'installation).

d) Test de la machine virtuelle

Quelle est la taille actuelle du disque virtuel sur votre système hôte ?

Ouvrez un terminal dans le système invité, puis déterminez le nombre de processeurs et la mémoire vive totale de la VM :

$ cat /proc/cpuinfo
$ cat /proc/meminfo

Ouvrez le navigateur et faites une recherche Google pour tester le réseau.

Revenez dans le terminal et lancez la commande top. Constatez que de la mémoire swap est utilisée ("MiB Ech" : "util.") dans le disque virtuel, ce qui veut dire que la mémoire vive prévue est trop juste.

Éteignez la VM, puis dans VirtualBox, allez dans Configuration :

  • dans Système / Carte mère, Mémoire vive : 2048Mo (sauf si votre ordinateur a moins de 4 Go de RAM)
  • dans Système / Processeur, Nombre de processeurs : 2 (sauf si votre ordinateur a moins de 4 cœurs)
  • Affichage / Écran, augmentez la mémoire Vidéo (128 Mo si votre machine a suffisamment de mémoire vidéo, ça dépend de votre carte graphique).
  • Dans le même onglet, cochez l'accélération 3D.

Redémarrez la VM, ouvrez un terminal et un navigateur ; vérifiez avec top que le swap n'est plus utilisé.

e) Additions invité

Nous allons maintenant installer dans le système invité des pilotes pour qu'il puisse utiliser au mieux les périphériques simulés par la VM.

Ouvrez un terminal dans le système invité puis recopiez cette commande, qui va rajouter les paquets nécessaires à la compilation de modules du noyau :

$ sudo apt install build-essential linux-headers-$(uname -r) dkms

S'il y a un message d'erreur selon lequel le paquet linux-headers-xxx ne peut être trouvé, mettez à jour votre système avec sudo apt update puis sudo apt upgrade, puis relancez la commande d'installation.

En haut de la fenêtre "xubu2004 [En fonction] - Oracle VM VirtualBox", menu Périphériques / Insérez l'image CD des Additions invités.

⟶ le CD est monté automatiquement par XUbuntu.

Dans la fenêtre "Gestionnaire de fichier" qui vient d'apparaître, cliquez avec le bouton droit / "Ouvrir un terminal ici", puis lancez :

$ ls
...
$ sudo ./VBoxLinuxAdditions.run
...                                 # ça peut prendre un moment
$ sudo reboot

Après le redémarrage de la VM, agrandissez la fenêtre pour constatez que l'écran virtuel s'adapte à la fenêtre.

Vous pouvez maintenant activer le copier-coller dans les 2 sens : en haut dans la fenêtre "xubu2004 [En fonction] - Oracle VM VirtualBox", menu Périphériques / Presse-papier partagé / Bidirectionnel.

f) Partage d'un répertoire

On peut partager un répertoire du système hôte avec le système invité ; de la sorte, tous les fichiers et sous-répertoires du répertoire partagé seront manipulables depuis le système invité, et vice-versa.

Sur le Bureau de votre système hôte, créez un répertoire PartageXUbu.

Dans le système invité, ouvrez un terminal, tapez pwd et notez le chemin (par exemple /home/thiel) ; dans la suite on le désigne par <home_guest>.

En haut de la fenêtre "xubu2004 [En fonction] - Oracle VM VirtualBox", menu Périphériques / Dossiers partagés / Réglage des dossiers partagés, cliquez sur +, Chemin du dossier (flêche à droite) / Autre, allez dans Bureau/PartageXUbu, Choisir ; Cochez Montage automatique et Configuration permanente.

Pour le point de montage : <home_guest>/Bureau/PartageHost (en remplaçant <home_guest> par le chemin noté précédemment). Enfin cliquez sur OK puis OK.

À ce stade vous devriez voir sur le bureau invité un icone PartageHost ; mais si vous le double-cliquez vous aurez sans doute un problème de droits insuffisants.

Dans un terminal invité, tapez

$ mount | grep PartageHost
PartageXUbu on /home/thiel/Bureau/PartageHost type vboxsf \
(rw,nodev,relatime,iocharset=utf8,uid=0,gid=998,dmode=0770,fmode=0770,\
tag=VBoxAutomounter)
$ ls -l Bureau
total 4
drwxrwx--- 1 root vboxsf 4096 janv. 15 12:20 PartageHost

Le système invité a bien monté le répertoire hôte PartageXUbu comme un disque dans PartageHost, mais sans donner de droits au user (fmode/dmode à 770 dans mount, rwxrwx--- dans ls).

Une solution consiste à rajouter notre user dans le groupe vboxsf : Dans le terminal invité, taper

$ sudo adduser "$USER" vboxsf

L'effet n'est pas immédiat :

$ groups
thiel adm cdrom sudo dip plugdev lpadmin lxd sambashare

Il faut se déconnecter puis reconnecter (ou encore redémarrer la VM). On constate ensuite que le groupe a été ajouté :

$ groups
thiel adm cdrom sudo dip plugdev lpadmin lxd sambashare vboxsf

Vous pouvez maintenant double-cliquer sur l'icone du dossier PartageHost, et tester que le partage fonctionne :

  • dans la machine hôte, créez un fichier essai1.txt dans PartageXUbu ;
  • constatez dans la machine invité que le fichier essai1.txt est apparu ; éditez-le et ajoutez une ligne, enregistrez ;
  • dans la machine hôte, affichez essai1.txt et constatez qu'il a bien été modifié.

Faites de même en créant un fichier essai2.txt dans la machine invité puis en le modifiant dans la machine hôte.

g) Accès USB

Il est possible de donner l'accès dans le système invité à certains périphériques USB de la machine hôte.

Si votre système hôte est Linux, il faut d'abord autoriser VirtualBox à accéder aux ports USB de l'ordinateur, en le rajoutant dans le groupe vboxusers. Dans un terminal du système hôte, tapez :

$ sudo adduser "$USER" vboxusers

puis déconnectez-vous et reconnectez-vous sur votre hôte pour que le changement prenne effet (il n'y a pas besoin de la redémarrer).
Note : si votre système hôte est Windows, il n'y a pas ce problème.

Insérez ensuite une clé USB dans un port de votre ordinateur.

En haut de la fenêtre "xubu2004 [En fonction] - Oracle VM VirtualBox", menu Périphériques / USB, sélectionnez la clé insérée.

Après quelques instants, la clé est montée par le système invité et apparaît dans le gestionnaire de fichiers.

Vous pouvez également y accéder via un terminal dans le système invité. Le nom du répertoire de montage, ici /media/thiel/A32D-7CB0, est affiché en haut dans le filemanager, mais on peut aussi le trouver de cette façon :

$ mount | grep media
/dev/sdb1 on /media/thiel/A32D-7CB0 type vfat (rw,nosuid,nodev,\
relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,\
iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,\
errors=remount-ro,uhelper=udisks2)

On voit dans la sortie de mount que

  • la clé USB est montée en rw,
  • le répertoire nous appartient (uid=1000,gid=1000)
  • la clé est montée dans le répertoire /media/thiel/A32D-7CB0
$ cd /media/thiel/A32D-7CB0

/media/thiel/A32D-7CB0$ ls -la | head -3
total 116
drwxr-xr-x  12 thiel thiel  4096 janv.  1  1970 .
drwxr-x---+  3 root  root   4096 janv. 16 12:16 ..

Essayez maintenant d'éjecter la clé USB depuis le gestionnaire de fichiers invité : il vous répondra que le volume est occupé par le terminal. Dans le terminal invité, quittez le répertoire monté :

/media/thiel/A32D-7CB0$ cd
~$

Vous pouvez maintenant faire l'éjection dans le système invité.

À noter : au moment où on autorise la clé USB dans le menu Périphériques / USB de VirtualBox, la clé est automatiquement démontée par VirtualBox dans le système hôte. Donc, après avoir éjecté la clé dans le système invité, vous pouvez physiquement retirer la clé USB de votre ordinateur puisqu'elle n'est plus montée nulle part.

Annexe 1 : installation bloquée sur host Windows 10

Si au début de l'installation, la VM affiche un écran noir et se bloque, ou encore si la VM crache en cours d'installation, la raison est un conflit entre l'hyperviseur Hyper-V de Windows (utilisé par WSL) et VirtualBox.

Sur les versions >= 6.1.30 de VirtualBox le problème ne devrait plus apparaître.

Le problème a été décrit en détail ici :
https://forums.virtualbox.org/viewtopic.php?t=99390

Une solution consiste à désactiver Hyper-V, soit complètement, soit de rajouter une option au boot (Windows 10 Hyper-V ON / Windows 10 Hyper-V OFF) :

https://www.tenforums.com/tutorials/139405-run-hyper-v-virtualbox-vmware-same-computer.html