94 lines
6.2 KiB
Markdown
94 lines
6.2 KiB
Markdown
# UDIB
|
|
|
|
UDIB est l'outil de construction d'installation Debian non assistée.
|
|
Il fournit un utilitaire en ligne de commande pratique pour injecter des fichiers dans les ISOs d'installation Debian.
|
|
En utilisant UDIB, vous pouvez préconfigurer un ISO en injectant un fichier de préconfiguration.
|
|
Les ISOs préconfigurés permettent des installations Debian entièrement automatisées sur du matériel nu (ou n'importe où ailleurs).
|
|
|
|
**Note:** Ce projet est un fork de [YunoHost/custom-debian-iso](https://github.com/YunoHost/custom-debian-iso) qui est lui-même un fork de [ulinja/udib](https://github.com/ulinja/udib).
|
|
|
|
## Guide de démarrage rapide
|
|
|
|
Ce guide court explique comment construire un ISO Debian avec une installation personnalisée et automatisée :
|
|
|
|
1. assurez-vous d'avoir tous les [logiciels requis](#machine-de-construction) installés
|
|
2. clonez ce dépôt et `cd` dans votre copie locale
|
|
3. (optionnel) créez et activez un environnement virtuel : `python3 -m venv .venv && . .venv/bin/activate`
|
|
4. installez les packages python requis : `pip install -r requirements.txt`
|
|
5. tous les ISOs Debian sont disponibles dans <https://cdimage.debian.org/mirror/cdimage/archive/>
|
|
5. créez les ISOs personnalisés : `./udib.py inject -i debian-11.10.0-amd64-netinst.iso`
|
|
6. démarrez à partir de l'ISO `-modified.iso` sur votre machine cible (ou dans une VM)
|
|
|
|
Selon le nombre de réponses que vous avez fournies dans le fichier de préconfiguration, l'installation peut nécessiter une certaine interaction manuelle.
|
|
Les fichiers de préconfiguration sont très puissants, et si vous avez besoin de plus de personnalisation, vous pouvez regarder plus en détail [comment ils fonctionnent](#quest-ce-que-la-préconfiguration).
|
|
Vous pouvez également utiliser UDIB pour obtenir le fichier d'exemple de préconfiguration complet : `./udib.py get preseed-file-full` et l'utiliser comme point de départ.
|
|
Assurez-vous de jeter un œil à la [référence d'utilisation](#guide-dutilisation-détaillé) pour un regard plus approfondi sur UDIB lui-même.
|
|
|
|
## Qu'est-ce que la préconfiguration ?
|
|
|
|
Un fichier de préconfiguration est un fichier texte qui fournit à l'installateur Debian des réponses préalablement définies (préconfigurées) pendant le processus d'installation.
|
|
La préconfiguration d'un ISO Debian vous permet de réduire considérablement la quantité d'interaction utilisateur requise pendant une installation, ou même de l'automatiser entièrement.
|
|
Le fichier de préconfiguration est écrit par vous puis injecté dans l'image d'installation.
|
|
Quand vous démarrez l'installation, toutes les réponses que vous avez fournies à l'installateur debian dans le cadre de votre fichier de préconfiguration sont automatiquement appliquées pendant l'installation.
|
|
Si vous voulez en savoir plus, vous pouvez regarder le [guide officiel](https://www.debian.org/releases/stable/amd64/apb.en.html) de Debian ou l'[aperçu rapide](https://wiki.debian.org/DebianInstaller/Preseed) du wiki Debian, qui expliquent tous deux la préconfiguration bien mieux que je ne peux le faire.
|
|
|
|
## Comment fonctionne UDIB ?
|
|
|
|
Le but principal d'UDIB est l'injection de fichiers dans les ISOs d'installation Debian existants.
|
|
En résumé, il fait cela en extrayant l'ISO, en ajoutant les fichiers à l'initrd de l'ISO, et en repackageant l'ISO à nouveau.
|
|
Vous pourriez faire tout cela manuellement bien sûr en suivant les guides [basique](https://wiki.debian.org/DebianInstaller/Preseed/EditIso#Adding_a_Preseed_File_to_the_Initrd) et [avancé](https://wiki.debian.org/RepackBootableISO) pour le repackaging d'ISO sur le wiki Debian, mais UDIB fait tout cela pour vous.
|
|
|
|
# Dépendances
|
|
|
|
L'utilisation d'UDIB pour créer des ISOs nécessite les logiciels suivants :
|
|
|
|
- GNU/Linux
|
|
- `python3` *(3.10.4 connu pour fonctionner)*
|
|
- [packages python requis](./requirements.txt) peuvent être installés dans un environnement virtuel
|
|
- `xorriso` *(1.5.4 connu pour fonctionner)*
|
|
- **Debian (bullseye):** [xorriso](https://packages.debian.org/bullseye/xorriso)
|
|
- **Arch Linux:** [extra/libisoburn](extra/libisoburn)
|
|
- GNU `gpg`
|
|
- préinstallé sur la plupart des distributions
|
|
- GNU `cpio`
|
|
- préinstallé sur la plupart des distributions
|
|
- GNU `sha512sum`
|
|
- préinstallé sur la plupart des distributions
|
|
|
|
Un accès Internet est (évidemment) requis si vous voulez récupérer des fichiers en utilisant UDIB.
|
|
|
|
# Guide d'utilisation détaillé
|
|
|
|
Vous pouvez voir l'aide en ligne de commande en utilisant `./udib.py --help` pour les options générales et `./udib.py COMMAND --help` pour l'aide avec une sous-commande spécifique.
|
|
|
|
Le nom et la destination des fichiers produits par `udib.py` peuvent être spécifiés avec l'option `--output-file`.
|
|
Alternativement, vous pouvez utiliser l'option `--output-dir` pour spécifier le répertoire où les fichiers produits seront sauvegardés, sans avoir à les nommer explicitement (les noms par défaut seront utilisés).
|
|
|
|
## Récupération d'exemples de fichiers de préconfiguration ou d'ISOs vanille
|
|
|
|
Comme point de départ pour créer votre propre ISO préconfiguré, vous pouvez récupérer un des fichiers d'exemple de préconfiguration de Debian ou un ISO Debian non modifié en utilisant UDIB :
|
|
|
|
```
|
|
udib.py [--output-file FILE | --output-dir DIR] get WHAT
|
|
```
|
|
|
|
`WHAT` doit être une chaîne spécifique et peut être soit :
|
|
|
|
- `preseed-file-basic` pour télécharger le fichier d'exemple de préconfiguration basique de Debian (suffisant dans la plupart des cas)
|
|
- `preseed-file-full` pour télécharger le fichier d'exemple de préconfiguration complet de Debian (a BEAUCOUP d'options de personnalisation)
|
|
- `iso` pour télécharger le dernier ISO netinst Debian stable x86-64 non modifié
|
|
|
|
## Injection de fichiers dans un ISO
|
|
|
|
Pour injecter des fichiers existants dans un ISO, vous pouvez exécuter la commande suivante :
|
|
|
|
```bash
|
|
python udib.py --output-file skylanix.iso inject --image-file debian-12.11.0-amd64-netinst.iso
|
|
```
|
|
|
|
Le script injecte automatiquement tous les fichiers présents dans le dossier `files_to_inject/` :
|
|
- Configuration GRUB personnalisée (`boot/grub/grub.cfg` et thème)
|
|
- Configuration isolinux (`isolinux/menu.cfg` et `splash.png`)
|
|
- Logo personnalisé (`logo.png`)
|
|
- Fichier de préconfiguration (`preseeds/default.preseed`)
|