Table des matières

machine virtuelle pour OS historique

objectif installer dans une VM isolée du réseau, un vieil OS dont on a encore besoin
difficulté ★★★☆☆
★★★★☆
public Béotiens GNU/Linux, utilisateurs GNU/Linux avancés, sysadmin
date 30 novembre 2022
Assistance Votre moteur de recherche

Parfois, on a un vieil instrument extrêmement onéreux, comme un microscope, ou une sonde quelconque, qui est pilotée par un logiciel fonctionnant sous windows XP, ou autre OS du même âge. Le PC de pilotage contrôle l'appareil par un lien éthernet ou USB. Ces vieux PC ne peuvent plus être sur le réseau, et quand il tombent en panne, ne peuvent plus non plus être réparés. On peut faire fonctionner ces vieux OS sur une machine virtuelle (MV) à l'intérieur d'un PC récent. Ce document explique comment faire.

Commençons un peu par préciser ce qu'on souhaite. Une expérience utilisateur aussi proche que possible du fonctionnement ordinaire du PC historique. Au démarrage du PC hôte, la MV doit se lancer automatiquement. Il faut également qu'un visualisateur plein écran se lance automatiquement sans qu'aucune intervention de l'utilisateur ne soit nécessaire. Lorsque la MV est éteinte, le PC hôte doit s'éteindre. Si le visualisateur s'arrête mais que la MV est toujours en fonctionnement, c'est un plantage et il faut le relancer.

Il faut également prévoir un mode qui permet à un administrateur de se connecter, de lancer un visualisateur, de faire des tests, etc… On utilisera un fichier garde-fou dans /etc. Le simple fait que ce fichier existe empêche la session de visualisation automatique d'éteindre le PC ou de se relancer si le visualisateur s'arrête, laissant le champ libre à l'administrateur.

J'ai fait des essais en utilisant windows comme système hôte et en utilisant linux. Le plus simple a été au final d'utiliser Ubuntu GNU/Linux comme système hôte. Le tout est très facile. Il suffit de partir d'une installation d'Ubuntu GNU/Linux Desktop, d'ajouter quelques composants logiciels pour avoir le système de virtualisation et d'effectuer une poignée de réglages.

L'installation d'Ubuntu GNU/Linux n'est pas compliquée non plus. Le tutoriel officiel, bien qu'en anglais est très facile à suivre.

Pour le reste, ça se fait en quelques minutes.

terminal

Les commandes indiquées comme celles ci :

echo "Bonjour Monde"

doivent être saisies dans un émulateur de terminal. Chaque ligne doit être validée par l'appui sur la touche ↵ Entrée. Vous trouverez le terminal en tapant «terminal» dans la recherche d'application. Il suffit alors de double-cliquer sur l'icône. Souvent, le raccourci Ctrl+Alt+T démarre un nouveau terminal.

pour les débutants en terminal

Installation des composants logiciels nécessaires

Passée l'installation de Linux, il faut ajouter les composants de virtualisation :

sudo apt-get install virt-viewer libvirt-daemon virt-manager pwgen

Utilisation de deux réseaux virtuels

Par défaut, libvirt propose un seul réseau NATé ce qui donne accès à internet à la machine invitée. On va ajouter une seconde connexion réseau, purement interne, qui ne permet que des connexions entre l'invité et l'hôte. Une fois terminé tous les réglages de l'invité, on pourra supprimer la liaison réseau NAT et ne conserver que la liaison interne.

  1. Avec le compte d'utilisateur ordinaire créé lors de l'installation d'Ubuntu GNU/Linux, ouvrir un émulateur de terminal et exécuter la commande
    virt-manager
  2. Choisir alors «Édition» ⇒ «Détails de la connexion» image
  3. Onglet «Réseau virtuels» on voit le réseau par défaut. En bas de la fenêtre, chosir + pour ajouter un réseau image
  4. Ajouter alors le réseau «intermachine» de type isolé. image

Installation d'un système invité

Toujours à partir de virt-manager, créer une machine virtuelle et y installer le système de son choix. Votre moteur de recherche vous indiquera comment faire.

La seule chose à laquelle il faudra faire attention à ce niveau est l'ajout de deux cartes réseau virtuelles à la MV. L'une sur un réseau purement interne au PC, celle qui, une fois tout réglé sera la seule à fonctionner et l'autre utilisée temporairement pour l'installation du système invité et de ses composants.

Pour le reste, installez donc votre OS invité comme vous le voulez.

À partir de maintenant, toutes les commandes en root

:!: Toutes les commandes ci-dessous sont à exécuter avec l'utilisateur root. Donc, une bonne fois pour toute, dans un émulateur de terminal, lancer la commande suivante :

sudo -i

Réaliser les réglages de démarrage et d'arrêt automatique

Et voilà ! C'est fini. Si on récapitule :

  1. au boot :
    1. la machine virtuelle démarre seule
    2. l'utilisateur virtlauncher est connecté automatiquement
      1. sa session n'est qu'un visualisateur de la MV
      2. quand le visualisateur se termine, le PC hôte est arrêté

C'est le moment de tester.

reboot

Communication avec le monde

Une machine isolée du réseau pour contrôller un appareil, c'est bien, mais parfois on veut tout de même communiquer un peu avec l'extérieur. Par exemple pour mettre à disposition les résultats issus de l'appareil. On peut alors partager un dossier depuis la machine hôte (la machine GNU/Linux) à la fois vers la machine invitée sur le réseau isolé, et vers le réseau local sur lequel se trouve le PC GNU/Linux. Toutes sortes de réglages sont possibles, partage en lecture/écriture vers la machine invitée et en lecture seule vers le reste, afin de rendre impossible le dépôt de fichiers sur la machine historique, dont l'antivirus n'est pas forcément à jour…

Ainsi, depuis le système invité (WinXP ici), on peut déposer les documents dans ce dossier partagé, et les lire depuis le poste de travail habituel.

Ceci n'est pas expliqué ici. Ce n'est pas très compliqué à mettre en place. Votre moteur de recherche favori est votre ami sur ce coup.