OBSD4* : wiki

Installer en dualboot Debian et OpenBSD depuis un LiveUSB Debian

Sources

Prérequis

  • Avoir une clef USB sur laquelle a été copiée l’image iso d’un système Debian GNU/Linux 8 en mode Live (amd64) et personnalisé grâce à livebuild contenant notamment qemu.
  • Avoir copié l’image iso d’un snapshot (amd64) d’OpenBSD sur la deuxième partition de la clef.
  • Avoir une machine bien supportée par les systèmes alternatifs libres et open source et qui sait démarrer sur un port USB. Exemple : Lenovo ThinkPad X200s.

Schéma de partitionnement (de type MBR) :

partition n°1 (primaire) : racine / de Debian 20 Go ext4
partition n°2 (primaire) : swap 2 Go swap
partition n°3 (primaire) : /home de Debian environ 256 Go ext3
partition n°4 (primaire) : OpenBSD environ 30 Go a6

Étape n°1 : Le système Live USB

Nous lançons le système Live depuis la clef USB insérée dans un port USB.

Étape n°2 : Installation du système Debian en utilisant le logiciel « debian-installer-launcher »

  • Nous effectuons une installation classique en veillant à bien formater en « ext3 » la partition n°3 pour permettre le partage à venir entre les deux systèmes. (En effet, OpenBSD sait monter en lecture/écriture des systèmes de fichiers formatés en ext3.)

NB : Depuis le système OpenBSD :

- La partition n°1 (contenant la « racine » du système Debian) sera accessible grâce au fichier à « /dev/sd0i ».

- La partition n°3 (contenant le « home » du système Debian) sera accessible grâce au fichier « /dev/sd0k ».

  • Je n’ai pas cherché à accéder à la partition n°4 (partition de type a6 « OpenBSD ») depuis le système Debian car je n’en vois pas trop l’intérêt !
  • Créer la partition n°4 sans l’utiliser. (Pas de point de montage.)

Étape n°3 : Installation d'OpenBSD

Après l’installation, « debian-installer-launcher » nous rend la main. Nous allons donc installer OpenBSD depuis le système Live via « qemu ».

Nous ouvrons un console virtuelle « Xterm ».

Après un

$ sudo su -

nous voilà le super-administrateur « root » du système Live !

Nous montons la deuxième partition de la clef USB sur laquelle a été copiée l'image iso du snapshot d'OpenBSD.

# mount /dev/sdb2 /mnt/

Nous lançons l’installation classique d’OpenBSD via « qemu ».

# qemu-system-x86_64 -k fr -m 512 -hda /dev/sda -cdrom /mnt/install60.iso -boot d -localtime

Pour le passage de l’installation

Use (W)hole disk or (E)dit the MBR? [whole]

choisir « (E)dit » en écrivant « E » puis valider.

En ce qui concerne « fdisk » :

On édite la 4ème partition primaire pour y créer un système de fichier de type OpenBSD (« a6 »).

fdisk:1> e 3

Pour le passage de l’installation

Partition id ('0' to disable)  [0 - FF]: [0] (? for help)

écrire « a6 » et valider tout ce qui est proposé par défaut. (En effet, cette partition a été construite lors de l’installation sur le disque du système Debian GNU/Linux lors de l’étape n°2.)

Enfin nous quittons « fdisk » en sauvegardant les changements.

fdisk:*1> q 

NB : La partition amorçable est la partition n°1 (celle qui contient le système Debian). Par conséquent, nous n’avons pas effectué de manipulations concernant la partition d’amorçage. Par la suite, nous devrons tout de même faire apparaître le système « OpenBSD » dans l’invite du chargeur d’amorçage GRUB 2.

En ce qui concerne « disklabel » : Les slice (comprendre partitions étendues à la sauce « OpenBSD ») suivants sont créés dans la partition n°4.

Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/sd0a     1005M    108M    846M    11%    /
/dev/sd0o      7.9G    3.2M    7.5G     0%    /home
/dev/sd0d      1.8G   16.0K    1.7G     0%    /tmp
/dev/sd0f      1.9G    372M    1.4G    20%    /usr
/dev/sd0g     1005M    212M    742M    22%    /usr/X11R6
/dev/sd0h      4.0G    2.3G    1.5G    61%    /usr/local
/dev/sd0m      2.0G    2.0K    1.9G     0%    /usr/src
/dev/sd0n      2.0G    2.0K    1.9G     0%    /usr/ports
/dev/sd0l      2.0G    2.0K    1.9G     0%    /usr/obj
/dev/sd0e      2.7G   16.1M    2.6G     1%    /var

Pour ce faire nous éditons le schéma automatique proposé par l’installateur d’OpenBSD et nous allons le modifier comme suit :

> d l

> d n 

> d m

> a m
offset: [???] Enter
size: [???] 2G
Rounding to nearest cylinder: ???
FS type: [4.2BSD] Enter
mount point: [none] /usr/src

> a n 
offset: [???] Enter
size: [???] 2G
Rounding to nearest cylinder: ???
FS type: [4.2BSD] Enter
mount point: [none] /usr/ports

> a l
offset: [???] Enter
size: [???] 2G
Rounding to nearest cylinder: ???
FS type: [4.2BSD] Enter
mount point: [none] /usr/obj

> a o
offset: [???] Enter
size: [???] <LE RESTE>
Rounding to nearest cylinder: ???
FS type: [4.2BSD] Enter
mount point: [none] /home
Nous quittons « disklabel ».

> q
Write new label?: [y] Enter''

Puis nous poursuivons avec l’installation classique.

À la fin, nous arrêtons le système avec la commande « halt -p -q ». Un redémarrage du système nous est alors proposé. Nous validons. Puis nous fermons « sauvagement » la console virtuelle dans laquelle a été lancée la commande « qemu ».

Étape n°4 : Le chargeur d’amorçage GRUB 2

Depuis le système Live, nous allons entrer dans le système Debian installé à l’étape n°2 via la commande « chroot ». Par conséquent, nous allons monter le nécessaire pour le bon fonctionnement du système chrooté.

# mount /dev/sda1 /mnt
# mount -t proc none /mnt/proc
# mount -t sysfs none /mnt/sys
# mount -o bind /dev /mnt/dev 
# mount -o bind /tmp/ /mnt/tmp

Nous entrons dans la « cage ».

# chroot /mnt

Nous voilà dans le système Debian installé sur le disque à l’étape n°2.

(chroot)# 

Nous allons éditer et modifier le fichier « /etc/grub.d/40_custom » ainsi (grâce à l’éditeur de texte « vi »).

(chroot)# vi /etc/grub.d/40_custom
[...]
menuentry ''OpenBSD'' {
set root=(hd0,4)
chainloader +1
}

Après avoir tapé un « wq ! » dans « vi », nous quittons l’édition de ce fichier en sauvegardant les modifications apportées.

Nous ré-installons le chargeur d’amorçage GRUB 2 sur le secteur d’amorçage du disque.

(chroot)# grub-install --recheck /dev/sda

suivi d’un

(chroot)# update-grub2

Nous quittons l’environnement « chrooté ».

(chroot)# exit

Nous voilà de retour dans le système Live.

Étape n°5 : Redémarrage

Nous démontons tout ce qui doit l’être puis nous redémarrons la machine.

# umount /mnt/{proc,tmp,dev,sys} && umount /mnt && reboot

Si tout s’est bien déroulé, le chargeur d’amorçage GRUB 2 nous propose le système Debian (système par défaut) et le système OpenBSD.

Étape n°6 : Étape facultative si la version d’OpenBSD est OpenBSD CURRENT… ou pas d’ailleurs !

Après avoir bien configuré et mis à jour son système OpenBSD, nous pouvons amorcer le système Debian pour sauvegarder la partition numéro n°4 qui contient le système OpenBSD current (en plus de la mise en place de « altroot »). Nous ne sommes jamais assez prudents ! ;-)

Nous ouvrons une session « root » sur le système Debian. Puis nous lançons les commandes suivantes :

# cd /home && mkdir .save && chown -R root:root .save && chmod 700 && cd .save/
# dd if=/dev/sda4 of=obsd_6.0-current_sda4-01.img bs=100M && init 0

Terminé ! ;-)