PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

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

mardi 31 octobre 2017 à 11:11

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.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Articles similaires