Émulons [1] !
Sans refaire un topo sur l’émulation (d’autres le font bien mieux que moi), ça consiste depuis son système, à lancer une machine virtuelle ("machine" comme PC) pour y émuler à l’intérieur un autre système. C’est très bien pour tester des live CD, ou lancer son Windows pour utiliser son logiciel "pro" qui ne marche que sous Windows.
Je vais ici m’attarder, mais pas trop quand même, sur Qemu. Lors du dernier LEF, avec Daniel, nous avons eu le temps de tester un live CD de XEN (un autre émulateur, plus puissant). Cependant, ne l’utilisant pas encore, je vais vous conter ma relation intime avec Qemu ;) Par contre, et j’insiste, je ne vais pas refaire dans l’article la pige à ré-écrire des articles que d’autres ont déjà écrits [2] !
Un système d’exploitation qui marche (oui même Windows fera l’affaire) depuis lequel nous allons émuler.
Un binaire de Qemu. Pour nous, on passe par notre gestionnaire de paquets comme à l’habitude.
soit un système d’exploitation sur le disque dur à booter, soit une iso (d’un live CD c’est bien) qu’on veut tester.
Pour l’installation d’un système d’exploitation via Qemu, je vous renvoie sur Google[2] ;) En effet c’est possible, et relativement simple.
L’intérêt ici n’est pas d’installer, mais bien de tester, avant d’installer :]
On fait simple, et pourtant c’est ce sur quoi j’ai buté pendant plusieurs heures (au bout de 3 jours on peut dire "plusieurs jours" ou pas encore ?)
Qemu n’a pas besoin que l’on soit super user root de l’espace pour l’utiliser, cependant, il faut avoir les même droits que root pour émuler un système existant. Vérifions ensemble. On est bien sous Linux et on veut lancer Windows XP qui est sur /dev/hda1, juste pour voir :)
$ls -l /dev/hda
brw-rw---- 1 root disk 3, 0 2002-06-09 21:27 /dev/hdaLà, vu comme ça, à froid, si vous ne faites pas partie du groupe disk (tapper la commande `groups` pour le savoir) vous allez avoir du mal.
Donc on s’ajoute au bon groupe (toujours en console ; comment ça je l’ai pas dit avant !?) ; en root :
usermod -G disk <votre_login>
Inutile de revenir sur l’importance de faire un `man usermod` ainsi que dans l’élan, un `man ls` (rien d’obligatoire, juste conseillé ;) )
On quitte X et on y revient (^atl-del, où ^=la touche Ctrl, alt=la touche alt, et del la touche del -ça paraît super logique en fait ;) ... ce qui est censé "killer" (fermer de façon violente) X (votre interface graphique) ce qui a pour effet, quand vous utilisez un gestionnaire de login (identifiants) graphique, de vous déloger afin que l’ajout du groupe soit effectif.
À ce stade la commande (toujours dans un xterm, konsole...) `groups` doit nous dire qu’on est dans le groupe disk et qu’on a donc les droits d’écriture (w) et de lecture (r) sur celui-ci.
C’est maintenant que je lance mon sytème via mon lanceur (lilo, grub...).
qemu -boot c -hda /dev/hda
Cette commande devrait faire appraître votre lanceur qui vous donne le choix en général au démarrage ! Cliquez sur _ce que vous voulez_ il le lancera !
Personnellement je suis en train de faire un changement de disque dur et tout ce que cela implique (installation du système d’exploitation sur l’autre disque, copie des fichiers à sauver...). Donc, au lieu de redémarrer à tout va pour voir si mon lvm ou mon initrd est pris en compte, j’émule !
Ça peut tout à fait servir à rester sous Linux, et travailler sous son logiciel qui ne marche QUE sous Windows.
Ça peut servir à tester un live-CD sans redémarrer :
je télécharge l’iso
je l’émule sans le graver
qemu -cdrom /vers/le/chemin/de/l.iso)
On peut émuler un Power-pc pour tester Mac-OSx !
Les possibilités sont énormes et chacun peut y trouver un usage.
Tout d’abord cette histoire de droits ! Qemu n’est pas bavard, et me donnait comme erreur "disque introuvable", sans me parler de permissions. Heureusement on m’a aidé sur irc (irc.freenode.net/#qemu).
Le fait de vouloir démarrer sans passer par un lanceur (grub dans mon cas). En théorie ça donne :
qemu -kernel /mnt/hd/boot/vmlinuz -initrd /mnt/hd/boot/initrd.gz -hda /dev/hda
Cependant, Qemu n’a pas su prendre mon initrd.gz en compte, ce qui me faisait un kernel panic (panique à bord du noyau) (dans Qemu, pas sur mon système réel ;) )
Comme vous l’avez vu, l’exercice peut être très intéressant et est relativement simple. J’espère donc que nombreux seront ceux qui vont tester, et bien sûr faire leurs retours en bas de l’article :)
[1] Le terme est peut-être mal choisi mais il a l’avantage d’être explicite. Nous devons parler de virtualisation
[2] En effet lors de mes recherches je suis tombé sur les 3 ou 4 mêmes articles des dizaines de fois. Les articles étant sous licence libre, tout le monde les a remis sur son site, et Google qui fait bien son boulot, me les a tous sortis dans les 60 premiers. Je vous passe les hurlements et morsures que j’ai laissées à droite à gauche avant d’arriver à mes fins