Installer un système hôte Debian GNU/Linux dans une machine virtuelle émulée par Virtualbox

Un peu de vocabulaire pour comprendre le titre

Vocabulaire : système d'exploitation, distribution, release

Un système d'exploitation (en: operating system, abrégé OS) est un ensemble de programmes qui gère les ressources d'un ordinateur (matériel) et les différents logiciels qui tournent dessus (sous forme de processus). Le système d'exploitation que vois allez installer dans une machine virtuelle est GNU/Linux, ici Linux est le nom du noyau, qui est le programme central du système d'exploitation.

Une distribution est une entité (entreprise, association, collectif, individu·e) qui s'occupe de regrouper et éventuellement compiler pour les distribuer de façon cohérente (souvent à l'aide d'un gestionnaire de paquets comme apt ou rpm, etc). Chaque distribution à une spécificité (philosophique, technique, commerciale, etc). La distribution que nous utiliserons prioritaitement est Debian, qui se distingue par ses aspects démocratiques (il y a plusieurs centaines de mainteneurs qui travaillent ensemble), par sa défense du logiciel libre (contrat social de Debian), et la stabilité du système.

La version (en: release), de Debian que nous utiliserons sera la 11, nommée bullseye. Il s'agit de la version actuellement stable de Debian.

Vocabulaire : machine physique, machine virtuelle, système hôte, système invité

Votre ordinateur (fixe ou portable) est une machine physique. Lorsqu'elle démarre, un système d'exploitation est exécuté (en général GNU/Linux, MacOS ou Windows).

Virtualbox est un émulateur de machines virtuelles : ce logiciel va vous permettre de construire et faire tourner des machines virtuelles : ce sont machines pour lesquelles on va pouvoir définir les caractéristiques (RAM, CPU, écran, disques durs, cartes réseau, ports USB, etc), mais toutes ces choses seront émulées par le système d'exploitation exécuté sur la machine physique.

Ces machines virtuelles vont à leur tour exécuter un système d'exploitation. Celui-ci sera visible et accessible depuis le système d'exploitation exécuté par la machine physique (puisque Virtualbox sera un processus du système d'exploitation lancé par la machine physique), mais le contraire n'est pas vrai.

Dans la suite du cours, pour qualifier ces deux systèmes d'exploitations, on dira que le système d'exploitation exécuté directement par la machine physique est le système hôte (en: host) et que le système d'exploitation exécuté par la machine virtuelle est le système invité (en: guest).

Installer Virtualbox

Télécharger une image CD d'installation par le réseau de Debian GNU/Linux

  1. Téléchargez le fichier https://lipn.univ-paris13.fr/~monteil/vb/debian-11.6.0-amd64-netinst.iso

Notez que cette image CD est très petite (388 MiB), elle contient l'installateur Debian et quelques paquets, les autres seront téléchargés lors de l'installation.

Notez qu'à ce niveau vous faites entièrement confiance au fait que les enseignant·es ont téléchargé et vérifié l'intégrité et l'authenticité de cette image à votre place. Nous reviendrons sur ces questions plus tard.

Créer une machine virtuelle raisonnablement équipée

Pour pouvoir installer le système Debian depuis une image CD, il faut que la machine soit capable d'émuler un lecteur de CD dans lequel sera inséré le CD (virtuel) d'installation.

Pour que le système puisse télécharger les paquets, il faut donc que la machine soit connectée au réseau (fourni par le système hôte).

  1. Démarrez Virtualbox
  2. Créez une machine virtuelle :
  1. Configurez la machine plus en détail

Installer le système invité sur la machine virtuelle

  1. Démarrez la machine virtuelle que vous venez de créer en cliquant sur « Démarrer »

  2. Comme un CD amorçable a été inséré dans le lecteur de CD, la machine virtuelle boote dessus.

  3. L'installateur Debian apparaît. Répondez aux questions le plus simplement possible. Si vous ne comprenez pas une question, vous pouvez demander à vos camarades ou enseignant·es. En général, choisissez la réponse proposée par défaut.

    Quelques conseils :

    • Nom de la machine : vous n'êtes pas votre machine, votre machine n'est pas vous, il n'est pas recommandé de donner votre nom ou votre prénom à votre machine.
    • Domaine : comme votre machine est un ordinateur portable qui se connecte un peu partout, elle ne fait pas partie d'un réseau fixe. Par ailleurs, vous n'avez pas (encore) réservé de nom de domaine et cette machine n'a pas vocation à proposer des services sur internet.
    • Au moment de donner un mot de passe pour l'user root, lisez attentivement le petit paragraphe explicatif : ne donnez pas de mot de passe à cet user, cela aura pour effet que l'utilisateur que vous créerez par la suite sera sudoer (il pourra exécuter la commande sudo). Sinon, vous devrez mémoriser deux mots de passe (celui de l'user root et celui de « votre » user).
    • Sélection des logiciels : l'environnement de bureau GNOME est celui utilisé sur les machines de salle TP. Néanmoins il est assez lourd. Si votre ordinateur portable est peu puissant, vous pouvez sélectionner LXDE ou LXQt à la place de GNOME.
  4. Lorsque vous avez fini l'installation et que le redémarrage de la machine virtuelle vous donne accès à un système GNU/Linux fonctionnel (en particulier vous permettant d'aller sur le web), vous pouvez ajouter virtualbox à vos tags.

Se faciliter la vie

Il est possible de favoriser les interactions entre le système hôte et le système invité. En particulier :

Si vous mettez en place de telles améliorations, rédigez une petite documentation sur le wiki pour en faire profiter vos camarades.

FAQ

Bonus : entrevoir la complexité

Notez qu'on a soigneusement ignoré toute la partie concernant le partitionnement des disques en effectuant les choix proposés par défaut. Pourtant ce passage révèle quelques subtilités et c'est souvent à cette étape que les débutant·es sont perdu·es.

Vous pouvez observer ce qu'il se passe sur une nouvelle machine virtuelle de test en sélectionnant les options :

Vous devriez obtenir un schéma de partitionnement qui ressemble à

image

sans qu'on comprenne bien la logique derrière cet enchevêtrement de sigles.

Un des objectifs du cours est de vous amener à comprendre ce genre de schéma, en identifiant, systèmes de fichiers, block devices, etc.