,
Le 19/02/2019 à 13:19 dans /Journal/2017/

Comment créer une iso d'OpenBSD personnalisée?

Depuis la publication d'isotop, je me dis que ça serait intéressant d'expliquer un peu comment cette "non-distribution" est faîte. Vous allez, voir, c'est enfantin.
Je vais décrire la procédure en détaillant les commandes utilisées, sachant qu'en réalité tout ceci est mis dans des scripts pour se simplifier la vie.

Isotop n'est qu'une OpenBSD personnalisée. Pour ça, on récupère d'abord une image d'installation iso depuis un miroir.

ftp -o install6.2.iso https://ftp.fr.openbsd.org/pub/OpenBSD/6.2/amd64/install62.iso

Ensuite, on décompresse cette iso pour pouvoir modifier son contenu :

    mkdir -p loopdir
     mkdir -p ./install6.2
     if [ "$(uname)" = "OpenBSD" ]; then
         vnconfig vnd0 install6.2.iso
         mount -t cd9660 /dev/vnd0c loopdir/
         cp -r loopdir/* ./install6.2
         umount loopdir/
         vnconfig -u vnd0
     else
         mount -o loop install6.2.iso loopdir
         cp -r loopdir/* ./install6.2
         umount loopdir/
     fi
     rm -r loopdir/
 

Selon si on est sous OpenBSD ou Linux, la procédure n'est pas tout à fait la même. Ces commandes n'ont rien de magique, on trouve facilement sur le web comment extraire une iso.

Nous voilà donc avec un dossier install6.2 qui contient tout le nécessaire pour installer OpenBSD. C'est maintenant que la personnalisation commence. On peut configurer l'installation grâce à 3 mécanismes :

C'est parti, on crée un dossier "site" dans lequel on va mettre tout notre bazar :

mkdir site

Allez, pour l'exemple, je vais ajouter un set d'icônes dedans :

mkdir -p site/usr/local/share/icons
 cp -r /usr/local/share/icons/Arc site/usr/local/share/icons

J'y met aussi un script "install.site" qui va activer la gestion d'énergie juste après l'installation :

echo "rcctl enable apmd" >> site/install.site
 echo "rcctl set apmd status on" >> site/install.site
 echo "rcctl set apmd flags -A">> site/install.site
 chmod +x site/install.site
 

Enfin, je mets dans le script lancé au premier démarrage de quoi installer un environnement de bureau :

echo "pkg_add xfce" >> site/etc/rc.firsttime
 chmod +x site/etc/rc.firsttime
 

Allez zou, on met ces configurations dans une archive comme prévu :

cd site
 tar cvzf ../site62.tgz *
 

Ne reste plus qu'à copier cette archive dans l'iso extraite :

cp site62.tgz install6.2/6.2/amd64/site62.tgz 

Lors de l'installation, il sera proposé d'installer le set site62 afin de profiter de cette configuration.

Enfin, on reconstruit l'iso. Remplacez genisoimage par mkisofs selon ce qui est disponible sur votre système :

genisoimage -r -no-emul-boot -b 6.2/amd64/cdbr -c boot.catalog -o ./CustomOBSD.iso install6.2 

Et voilà ;)
Fastoche non ?

Pour plus de détails ou d'idées, je vous invite à aller regarder le code source d'isotop, en particulier les scripts qui servent à la génération des images. Ces derniers permettent notamment de générer une iso personnalisée d'OpenBSD même à partir d'un sysètme Linux.