Ceci est une ancienne révision du document !


Démarrer un système physique sous VirtualBox

Il peut être utile de démarrer un système déjà installé physiquement sous VirtualBox. Les deux parties de cette doc sont issues du forum : [HowTo] Démarrer un Windows installé physiquement dans VirtualBox et Démarrer un Linux installé physiquement dans VirtualBox. Vous pouvez donc y exposer les problèmes que vous rencontrez.

L'idée, comme VirtualBox ne peut pas utiliser un disque physique directement, est de créer un petit fichier "redirigeant" vers votre disque. On utilisera pour cela l'utilitaire VBoxManage.

La plupart des manipulations sont communes à tous systèmes invités. Nous verrons par la suite les divergences entre Linux (Ubuntu) et Windows.

Dans cet exemple :
  • Le système hôte est Ubuntu (et pourrait être n'importe quelle distribution avec Virtualbox fonctionnel
  • Le système invité est Fedora, installé sur le disque interne, partition /dev/sda4

Mapping du disque dur

Détermination de la partition à utiliser

Il faudra indiquer à VirtualBox les partitions du disque auxquelles il peut avoir accès (et pas plus, pour ne par entrer en conflit avec le système hôte !).
On pourra utiliser GParted ou tout autre outil pour repérer les identifiants sous la forme /dev/sdXY des partitions concernées.

Paramétrage des autorisations de votre utilisateur

Pour pouvoir utiliser VBoxManage et le fichier qu'il génère, il est nécessaire d'ajouter son compte utilisateur au groupe disk. Rien de très compliqué la dedans, voici deux solutions :

  • Soit en allant dans Système » Administration » Utilisateurs et groupes ; cliquer sur le bouton Gérer les groupes ; rechercher le groupe disk ; et le modifier en cochant l'identifiant de sa session dans la liste.
  • En ligne de commande :
     sudo usermod -G disk -a $USER

Attention, pour que le changement soit pris en compte, il faut redémarrer sa session.

Création du fichier de mappage du disque

On utilisera la ligne de commande :

  • On se déplace dans le dossier où le fichier sera créé :
    cd ~/.VirtualBox
  • On "mappe" le disque : (à adapter selon la situation)
    VBoxManage internalcommands createrawvmdk -filename Fedora.vmdk -rawdisk /dev/sda -partitions 4 -relative

Ceci ne fait que créer le fichier Fedora.vmdk (de quelques Ko), et ne touche absolument pas au disque.

Dans le cas ou le disque serait inaccessible, il faut réessayer en supprimant l'option -relative.
Très important : dans le cas où le numéro de partition n'est pas spécifié, la machine virtuelle aura accès au disque dur entier. De ce fait, l'étape suivante, à savoir la configuration du gestionnaire de démarrage, n'est plus nécessaire.

Configuration du gestionnaire de démarrage

VirtualBox n'a accès qu'à la partition contenant le système invité… Et donc pas au chargeur de démarrage ! Il faut donc en créer un. Pour résoudre ce problème, on va créer une image iso bootable de Grub. Il est pour le moment difficile de le faire pour Grub2, on le fera donc pour Grub1.

Gestionnaire de démarrage : Grub1

a) On va commencer par créer un répertoire de travail et copier les fichiers nécessaires. Dans un Terminal, saisir les commandes suivantes :

  # création d'un dossier de travail
  mkdir ~/travail
  cd ~/travail/
  # création de l'arborescence
  mkdir -p iso/boot/grub
  # copie des fichiers nécessaires
  cp /usr/lib/grub/*-pc/stage2_eltorito /boot/grub/menu.lst iso/boot/grub

Ne pas fermer le Terminal tout de suite.

b) Maintenant que nous avons récupéré la configuration de Grub, il va falloir la modifier. En effet, les instructions qui permettent de faire démarrer Ubuntu ne seront pas nécessaires ici.

Pour éditer la configuration, un simple éditeur de texte fera l'affaire. Il faut ouvrir le fichier menu.lst contenu dans le répertoire ~/travail/iso/boot/grub/.

À la fin du fichier, il devrait y avoir quelque chose de semblable :

  title        Ubuntu 9.10, kernel 2.6.31-17-generic
  uuid        bec46f24-aa91-4a42-a1e6-f34da429dfd6
  kernel        /boot/vmlinuz-2.6.31-17-generic root=UUID=bec46f24-aa91-4a42-a1e6-f34da429dfd6 ro vga=791
  initrd        /boot/initrd.img-2.6.31-17-generic
  title        Ubuntu 9.10, kernel 2.6.31-17-generic (recovery)
  lock
  uuid        bec46f24-aa91-4a42-a1e6-f34da429dfd6
  kernel        /boot/vmlinuz-2.6.31-17-generic root=UUID=bec46f24-aa91-4a42-a1e6-f34da429dfd6 ro single vga=791
  initrd        /boot/initrd.img-2.6.31-17-generic
  title        Fedora 12, kernel 2.6.30-17-generic
  uuid        fgh4524-gslo-gskf-hgth-f34da42gdbki
  kernel        /boot/vmlinuz-2.6.30-17-generic root=UUID=fgh4524-gslo-gskf-hgth-f34da42gdbki ro vga=791
  initrd        /boot/initrd.img-2.6.30-17-generic
  title        Fedora 12, kernel 2.6.30-17-generic (recovery)
  lock
  uuid        fgh4524-gslo-gskf-hgth-f34da42gdbki
  kernel        /boot/vmlinuz-2.6.30-17-generic root=UUID=fgh4524-gslo-gskf-hgth-f34da42gdbki ro single vga=791
  initrd        /boot/initrd.img-2.6.30-17-generic

Il faut supprimer tous les blocs de texte faisant référence à Ubuntu, seul les blocs de texte qui parle de Fedora nous intéressent et doivent donc rester intact. Cependant, si en dessous des « title Fedora 12 », il y a l'option « savedefault », il faut impérativement la supprimer.

c) Maintenant que notre Grub est configuré correctement, on va pouvoir créer l'image iso bootable :

  # création de l'image iso
  mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso
  # déplacement de l'iso dans le répertoire de VirtualBox
  mv grub.iso ~/.VirtualBox/
  # suppression du répertoire de travail
  cd ; rm -rv ~/travail/

L'image créée se nomme grub.iso et se trouve maintenant dans le dossier caché de VirtualBox. Cette dernière fait à peine 500 ko tongue.

   Gestionnaire de démarrage : Grub2

Étant donné que Grub2 n'a rien à voir avec Grub1, la procédure précédente ne fonctionne pas. Cependant, le tutoriel n'en dit pas plus pour le moment…

  Entre temps, j'ai trouvé ceci : http://ubuntuforums.org/showthread.php? … ost9232654
  La commande proposée (grub-mkrescue --output=~/.VirtualBox/rescue.iso /boot/grub) fabrique bien une image iso bootable avec la bonne configuration. Cependant, le démarrage n'est pas automatique, il faut taper configfile /grub.cfg pour lancer le système.
  J'ai pas trouvé comment lui dire de charger ce fichier automatiquement.

Voir l'explication de Vaderflien.png.

C'est la partie la plus simple, cet OS n'est pas très récalcitrant :)

Lorsque Windows va redémarrer sous VirtualBox, l'environnement matériel va changer :
  • Windows va réinstaller tout plein de pilotes, et rien ne l'empêchera de planter !
  • L'environnement matériel change, la réactivation peut donc être nécessaire.

(Tout ça, contrairement à un système Linux :-) )

  • utilisateurs/felixp/brouillon.1391189611.txt.gz
  • Dernière modification: Le 31/01/2014, 18:33
  • par FelixP