Installation d'OpenBSD 7.0 par clef USB sur SSD+HDD avec dual-boot (le retour)

Auteur: Alnotz <Alnotz_at_protonmail.com>
Date: Wed, 08 Dec 2021 17:45:28 +0000
Au rapport.

Une deuxième installation d’*OpenBSD 7.0* a été menée suite aux retours
de mon premier message.

Étant donné la rareté des tutoriels du le réseau international, je
rédige ici-même la procédure qui a mené au succès d’une cohabitation
entre une distribution *Debian GNU/Linux* (ou dérivée) et une
distribution *OpenBSD*.

Début d’installation
====================

Je suis donc parti de 0. J’ai déconnecté un HDD contenant une sauvegarde
des partitions initiales des deux principaux disques et connecté la clef
USB avant de démarrer la machine.

Depuis l’UEFI l’amorçage est fait par USB.

L’installateur d’*OpenBSD* apparaît et l’option *(I)nstall* est prise.

Après un temps vient la configuration du réseau.

Accès réseau
============

Différentes interfaces sont indiquées. Je choisis `re0` qui correspond
au réseau local (LAN) via Ethernet.

Je choisis en suite `autoconf` pour *IPv4* et *IPv6* puis une URL pour
les téléchargements futurs.
Parmi ceux proposés j’ai préféré ce miroir dont le dépôt est hébergé à
Paris :

ftp.fr.openbsd.org

Vient l’opération délicate des partitions.

Partitionnement des disques
==========================

Selon le système, les disques ne sont pas nommés de la même manière.
Sur *OpenBSD* le HDD est `sd0` et le SSD est `sd1`.

La table (GPT) du HDD est faite via `fdisk` comme suit.

sd1
|
|-0 EFI(fat32)         '/boot/efi'
|
|-1 UBUNTU(ext4fs)     '/'
|
|-2 OPENBSD(ufs)

La nouvelle partition `OPENBSD` est créée sur 64 Gio.

Je continue avec `disklabel` pour configurer les sous-partitions dans
`OPENBSD`.

OPENBSD              [64  Gio]
|
|-a -> '/'           [10  Gio]
|
|-c -> ALL
|
|-e -> '/var'        [6   Gio]
|
|-f -> '/usr'        [8   Gio]
|
|-g -> '/usr/X11R6'  [4   Gio]
|
|-h -> '/usr/local'  [16  Gio]
|
|-i -> MSDOS
|
|-j -> EXT2FS
|
|-k -> '/usr/src'    [10  Gio]
|
|-l -> '/usr/obj'    [10  Gio]

Vient le HDD et sa propre table où est ajoutée `OPENBSD_EXT`.

sd0
|
|-0 UBUNTU_EXT(ext4fs) '/home'
|
|-1 OPENBSD_EXT(ufs)

Trois sous-partitions sont définies dans `OPENBSD_EXT`.

OPENBSD_EXT          [128 Gio]
|
|-b -> SWAP          [32  Gio]
|
|-c -> ALL
|
|-d -> '/var/log'    [8   Gio]
|
|-j -> EXT2FS
|
|-m -> '/home'       [88  Gio]

Reste alors à installer les composants du système *OpenBSD*.

Paquets du système
==================

En général c’est un CD ROM qui possède les «sets» à installer. Ici je
m’attendais à ce que la clef USB les ait sur elle. Pourtant seuls `sd0`
et `sd1` sont disponibles selon l’installateur.

Où diable ont-ils planqué la clef!?

Que je dise que le support est un CD (`cd0`) ou un disque (`disk`), déjà
monté ou non, le répertoire `7.0/amd64` est introuvable.

De ce constat je suis passé par le réseau. Ainsi en optant pour `http`
le dépôt est `https://ftp.fr.openbsd.org/pub/OpenBSD/7.0/amd64/`.

J’ai inclus tous les «sets» et terminé l’installation.
De retour dans le shell je tape `reboot`.

Ça n’a pas suffi pour lancer *OpenBSD* lors du redémarrage.

Entrée dans l’UEFI
==================

Pour permettre l’amorçage du nouveau système, je suis retourné dans mon
premier système d’exploitation [1].

Je télécharge deux fichiers du même dépôt : `BOOTX64.EFI` et
`BOOTIA32.EFI`.

Je crée ensuite le répertoire `/boot/efi/EFI/openbsd/` et y copie les
deux fichiers car la partition `EFI` est montée sur `/boot/efi/`.

Dans les distributions comme *Debian* existe la commande `efibootmng`.
Elle permet de gérer les différentes entrées d’amorçage de l’UEFI.

Les commandes qui suivent suffisent pour obtenir une deuxième entrée
amorçable pour *OpenBSD* :

sudo efibootmgr --create \
  --disk $BOOT_DISK \
  --part $EFI_PART_NB \
  --label 'OpenBSD' \
  --loader '\EFI\openbsd\BOOTX64.EFI'
sudo efibootmgr --bootorder $ENTRIES_LIST

Dans mon cas j’ai `BOOT_DISK=/dev/nvme0n1` pour le SSD car c’est lui qui est
amorcé. Comme c’est la première partition (`EFI`), j’ai `EFI_PART_NB=1`.

Enfin j’ai ajusté l’ordre des entrées, `ENTRIES_LIST` étant une suite de
numéros hexadécimaux séparés par des virgules, soit
`ENTRIES_LIST='0000,0001,0002,0003,0004,0005'` dans mon cas.

Ça a suffi à rendre *OpenBSD* accessible. ;-)

Mais comment ajouter *OpenBSD* dans *GRUB 2*, mon chargeur d’amorçage ?

Intégration à GRUB 2
====================

Encore une fois c’est le premier système d’exploitation que sera créée
une entrée d’*OpenBSD* dans GRUB 2.

Dans le fichier de configuration `/etc/grub.d/40_custom` j’ai ajouté ces
lignes:

menuentry "OpenBSD 7.0" {
  insmod ufs2
  chainloader (hd3,gpt1)/EFI/openbsd/BOOTX64.EFI
}

Le SSD qui était `/dev/sd1` dans *OpenBSD* puis `/dev/nvme0n1` dans une
distribution comme *Debian* devient `(hd3)` dans *GRUB 2*.
De même la partition `EFI` qui était `/dev/sd1a` puis `/dev/nvme0n1p1`
se transforme en `(hd3,gpt1)`.

À quand un standard unique pour nommer les périphériques? :-/

La commande `update-grub` permet de terminer la configuration.
Un redémarrage de la machine devrait afficher la nouvelle entrée lorsque
*GRUB 2* apparaît.

Dernières manipulations
=======================

Une fois revenu dans *OpenBSD* j’ai mis à jour le système via la
commande `syspatch`.

J’ai aussi amélioré le système en ajoutant un répertoire `/tmp` monté
sur la RAM.
Pour ce faire j’ai suivi les conseils de _at_Solene [2].

Dans le fichier de configuration `/etc/fstab` j’ai ajouté cette ligne :

swap /tmp mfs rw,nodev,nosuid,-s=2g 0 0

Ce qui revient à ajouter une «sous-partition» MFS de 2 Gio montée sur
`/tmp`. Sur 32 Gio de RAM ce n’est pas trop invasif.

Ne pas oublier de faire aussi ces trois commandes :

umount /tmp
chmod 1777 /tmp
mount /tmp

J’ai redémarré pour être sûr de la modification.

Voilà comment je suis parvenu à atteindre mon but (voir le premier
message). Reste à explorer *OpenBSD 7.0*. :-)

Prochaine étape
===============

* Apprendre à compartimenter correctement chaque application.

* Contribuer à un nouveau tutoriel pour les autres noobs d’*OpenBSD* ?

Bibliographie
=============

[1] Nouvelle entrée d’amorçage:
https://ackstorm.de/posts/uefi-openbsd-fedora-dual-boot.html
[2] Monter `/tmp` dans la RAM:
https://dataswamp.org/~solene/2018-05-08-mfs-tmp.html

Fière de son succès,
Alnotz, encore un gnou.

Sent with ProtonMail Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

Le lundi 6 décembre 2021 à 21:14, Gers-Informatique (ap) <adresse-publique_at_gers-informatique.com> a écrit :

> Hello,
>
> j'ai lu, mais n'ai pas grand chose pour t'aider.
>
> je trouve cela intéressant.
>
> en effet, une belle installation.
>
> l'impression que j'ai : en fait, tu veux faire de la "coloc" d'OS.
>
> la coloc, c'est très à la mode pour les appartements, en ce moment.
>
> cela demande des adaptations et organisations .... adéquates... (donc le
>
> Grub, etc...).
>
> moi, j'aime pas trop (la coloc d'os).
>
> je préfère prendre un PC d'occasion sur lebon du coin d'à coté.
>
> y a des machines d'entreprises, avec un i7 4770 et plein de go de ram
>
> pour... 120 ou 140 E.
>
> elles sont très puissantes (voir benchmark du proc), et cela leur donne
>
> une deuxième très belle vie ....
>
> (et peu de gens en veulent, parce qu'ils voient un proc "série 4" alors
>
> qu'on est à 11.... alors ils boudent, sans voir la puissance déjà dispo).
>
> quitte à avoir à eteindre l'un pour alumer l'autre, autant avoir deux
>
> machines, dédiés à chaque os,... et donc sûrement fonction.
>
> bon, mais ce que tu vas faire est très intéressant aussi.
>
> peut être faire ensuite un petit article pour expliquer tous les trucs
>
> et astuces, et comment faire cela ?
>
> y a beaucoup d'infos et d'expériences qui seront utiles, dans une
>
> aventure comme celle là...
>
> A+
>
> A
>
> Cordialement,
>
> Antoine Herzog
>
> 06 95 65 88 22
>
> Favorisez le numérique sain,... donc libre, pour vous, vos proches,
>
> vos clients, vos fournisseurs,... et tous ceux que vous aimez !
>
> Conseil, audit, assistance et réalisations pour une bonne Hygiène
>
> Numérique http://www.hygiene-numerique.org/,... et éviter la
>
> "Malbouffe Numérique http://www.malbouffe-numerique.com/".
>
> http://www.gers-informatique.com
>
> Nouveaux tarifs 2021
>
> http://www.gers-informatique.com/Prestations-Gers-Informatique-tarifs.php.
>
> Le 06/12/2021 à 07:53, Vincent Finance a écrit :
>
> > Bonjour Alnotz,
> >
> > Je vois que tu as l'air de vouloir faire un belle installation pour ta
> >
> > machine et je t'encourage dans ce projet, même si ironiquement, je n'ai
> >
> > jamais vraiment fait de chose équivalent car pas très bon pour
> >
> > configurer GRUB pour un dual-boot de ce type ^^' .
> >
> > Concernant tes partitions, cela me semble pas trop mal, mais je pense
> >
> > que tu peux profiter de tes 32 Go de RAM pour mettre ton /tmp dans un
> >
> > tmpfs. Cela mettra ta partition /tmp dans une partie de la RAM, ce qui
> >
> > est pratique pour l'effacer à chaque reboot et parmet d'economiser de
> >
> > l'espace disque que tu peux réutiliser ailleurs. La partition /var
> >
> > semble un peu petite et elle risque de contenir pas mal de logs au fil
> >
> > du temps, d'où ma remarque.
> >
> > Je te mets un article (en anglais) de solene pour faire ton tmpfs sous
> >
> > OpenBSD : https://dataswamp.org/~solene/2018-05-08-mfs-tmp.html
> >
> > Concernant ton obstacle, c'est un classique pour moi : en fait, tu dois
> >
> > considérer ta clé USB comme un disque et l'image install70.img contient
> >
> > les filesets. La technique est de choisir 'disk' dans le menu, puis
> >
> > répondre 'No' à la question 'Is the disk already mounted?'.
> >
> > Il va afficher ensuite le menu des disques et tu pourras voir ta clé
> >
> > (en appuyant sur '?', tu peux voir la liste des périphériques derrière
> >
> > les noms). Il suffira de la sélectionner et de laisser le choix par
> >
> > défaut pour le dossier des filesets et il te proposera de les
> >
> > installer.
> >
> > Concernant l'usage de 2 disques sur une install OpenBSD, j'ai un cas
> >
> > similaire sur un VPS et j'ai pas de soucis en particulier. Mêmes les
> >
> > mises à niveau marchent bien, tant que tu laisses le bon disque
> >
> > démarrer en premier (ce qui n'était pas mon cas avant).
> >
> > Bon courage à toi et hésite pas à donner un retour ici.
> >
> > ~vinishor
> >
> > Le dimanche 05 décembre 2021 à 13:41 +0000, Alnotz a écrit :
> >
> > > Salutation.
> > >
> > > Je suis un gnou habitué des distributions similaires à GNU/Linux
> > >
> > > Debian avec un peu d’expérience en matière d’installation.
> > >
> > > Je me suis rendu compte que les distributions BSD n’étaient pas moins
> > >
> > > intéressantes.
> > >
> > > Étant encore dans la découverte je souhaite me renseigner sur une
> > >
> > > installation d’OpenBSD 7.0.
> > >
> > > Le message est plus tôt volumineux et c’est normal : je n’ai pas
> > >
> > > trouvé de tutoriel pour cette situation.
> > >
> > > Est-ce vraiment atypique ?
> > >
> > > Si quelqu’un connait une méthode d’installation plus efficace dans ces
> > >
> > > conditions ça m’intéresse! :-)
> > >
> > > But
> > > ===
> > >
> > > Plus précisément je souhaite :
> > >
> > > -   Une cohabitation avec Kubuntu 18.04 ;
> > > -   Une entrée dans GRUB2 ;
> > > -   Installer via `install70.img` dans une clef USB ;
> > > -   Adapter à une architecture AMD64 ;
> > > -   Adapter à des tables GPT avec UEFI ;
> > > -   Partager entre un SSD et un HDD [2].
> > >
> > > Support d’installation
> > > ======================
> > >
> > > Pour installer OpenBSD, j’ai décidé de copier le fichier
> > >
> > > `install70.img` dans une clef USB de taille supérieure à 2 Gio.
> > >
> > > Conformément aux instructions [1] la copie est obtenue ainsi :
> > >
> > > dd if=install70.img of=/dev/sdc bs=1M status=progress
> > >
> > > Après un HDD connecté en SATA et un SSD connecté en M.2, la clef est
> > >
> > > la dernière connectée avant démarrage de la machine.
> > >
> > > Cette clef est amorcée depuis l’UEFI de la machine.
> > >
> > > Je suppose que la clef contient tous les fichiers nécessaires pour une
> > >
> > > installation complète du système, interface graphique incluse.
> > >
> > > L’installation est manuelle puisque nécessitant une personnalisation
> > >
> > > des tables de partition et de sous-partition.
> > >
> > > De plus le clavier n’a pas une disposition QWERTY(US).
> > >
> > > Tables de partition
> > > ===================
> > >
> > > Le SSD permet dans peu de mémoire une lecture rapide, notamment pour
> > >
> > > amorcer le système.
> > >
> > > Le HDD permet une extension importante du stockage de mémoire qui est
> > >
> > > autant lu qu’écrit.
> > >
> > > Un couple SSD+HDD permet d’exploiter le meilleur des deux mondes.
> > >
> > > On a un premier partitionnement dans le SSD nommé `sd1` :
> > >
> > > sd1
> > >
> > > > -0 -> EFI(fat32) '/boot/efi/'
> > > >
> > > > -1 -> UBUNTU_ROOT(ext4fs) '/'
> > > >
> > > > -2 -> OPENBSD_ROOT(ufs)
> > > >
> > > > La partition `OPENBSD_ROOT` contient alors ce qui amorcera OpenBSD.
> > > >
> > > > Je nomme sous-partition ce qui divise une partition UFS d’OpenBSD.
> > >
> > > Contrairement aux systèmes GNU/Linux, une séparation dans OpenBSD
> > >
> > > en plusieurs parties est encouragée.
> > >
> > > La partition `OPENBSD_ROOT` de 64 Gio est disposée comme suit :
> > >
> > > OpenBSD_ROOT
> > >
> > > > -a -> '/' [1 Gio]
> > > >
> > > > -c -> ALL
> > > >
> > > > -e -> '/var/' [2 Gio]
> > > >
> > > > -f -> '/usr/' [4 Gio]
> > > >
> > > > -g -> '/usr/X11R6/' [1 Gio]
> > > >
> > > > -h -> '/usr/local/' [16 Gio]
> > > >
> > > > -i -> MSDOS
> > > >
> > > > -j -> EXT2FS
> > > >
> > > > -k '/usr/src/' [4 Gio]
> > > >
> > > > -l '/usr/obj/' [4 Gio]
> > > >
> > > > Cette disposition est inspirée du manuel de `disklabel(8)`.
> > > >
> > > > On a un second partitionnement dans le HDD nommé `sd0` :
> > >
> > > sd0
> > >
> > > > -0 -> UBUNTU_HOME(ext4fs) '/home/'
> > > >
> > > > -1 -> OPENBSD_EXT(ufs)
> > > >
> > > > La partition `OPENBSD_EXT` de 128 Gio contient les plus gros volumes.
> > > >
> > > > Elle est disposée ainsi :
> > >
> > > OpenBSD_EXT
> > >
> > > > -b -> SWAP [32 Gio]
> > > >
> > > > -c -> ALL
> > > >
> > > > -d -> '/tmp/' [16 Gio]
> > > >
> > > > -j -> EXT2FS
> > > >
> > > > -m -> '/home/' [80 Gio]
> > > >
> > > > J’espère que l’installateur tiendra compte correctement des
> > > >
> > > > différentes sous-partitions en dépit de disques différents.
> > > >
> > > > La partition `SWAP` est adaptée aux 32 Gio de RAM.
> > >
> > > De bonnes proportions en taille pour les sous-partitions ?
> > >
> > > Obstacles
> > > =========
> > >
> > > Ce qui bloque dans l’installation se situe après le partitionnement
> > >
> > > via les outils fdisk et disklabel.
> > >
> > > L’installateur demande la nature du support et l’emplacement des
> > >
> > > sets qui pourront être installés.
> > >
> > > Considère-t-on une clef USB comme un CD ROM (`cd0`) ou comme un disque
> > >
> > > dur (`disk`) ?
> > >
> > > Un répertoire nommé `/7.0/AMD64/` semble être celui par défaut
> > >
> > > contenant les sets mais est introuvable.
> > >
> > > S’agit-il d’un pseudo-fichier tel que `/dev/rsd0c`?
> > >
> > > Doit-on télécharger soi-même ce répertoire et le téléverser dans la
> > >
> > > clef USB ou a-t-il un nom différent?
> > >
> > > Futur : entrée dans GRUB2
> > > =========================
> > >
> > > Suite à l’installation d’`*OpenBSD 7.0*` la prochaine étape sera
> > >
> > > l’inclusion au GRUB par une nouvelle entrée dans le menu [3].
> > >
> > > Pour se faire le système Kubuntu 18.04 sera démarré.
> > >
> > > Le fichier `/etc/grub.d/41_openbsd` sera créé avec le code suivant :
> > >
> > > menuentry "OpenBSD 6.4"
> > >
> > > {
> > >
> > > chainloader (hd0,gpt1)/EFI/openbsd/bootx64.efi
> > >
> > > }
> > >
> > > Un répertoire `/boot/efi/EFI/openbsd/` devra contenir les fichiers
> > >
> > > `bootia32.efi` et `bootx64.efi`.
> > >
> > > Exécuter la commande `update-grub` suffira a terminer la
> > >
> > > configuration.
> > >
> > > Bibliographie
> > > =============
> > >
> > > [1] Guide d’installation :
> > >
> > > https://ftp.fr.openbsd.org/pub/OpenBSD/7.0/amd64/INSTALL.amd64
> > >
> > > [2] Exemple du couple SSD+HDD :
> > >
> > > https://bsdly.blogspot.com/2017/07/openbsd-and-modern-laptop.html
> > >
> > > [3] Entrée dans le GRUB :
> > >
> > > https://teddit.net/r/openbsd/comments/9uyra9/
> > >
> > > dual_boot_debian_and_openbsd_issue_with_grub/
> > >
> > > Espérant être assez explicite,
> > >
> > > Alnotz, encore un gnou.
> > >
> > > Sent with ProtonMail Secure Email.
ReÇu le 08/12/2021 18:45

Cette archive a été créée par hypermail 2.3.0 : 09/12/2021 01:30 CET