142 lines
7.0 KiB
Markdown
142 lines
7.0 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).
|
|
|
|
## 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.
|
|
|
|
## Prérequis
|
|
|
|
Avant d'utiliser UDIB pour créer des ISOs personnalisés :
|
|
|
|
1. Assurez-vous d'avoir tous les [logiciels requis](#dépendances) 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. Téléchargez l'ISO Debian : `python3 udib.py get iso`
|
|
|
|
# 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.
|
|
|
|
## Usage
|
|
|
|
### Télécharger Debian
|
|
|
|
Pour télécharger la dernière ISO Debian x86-64 netinstall :
|
|
|
|
**Version stable :**
|
|
```bash
|
|
python3 udib.py get iso
|
|
```
|
|
|
|
**Version testing :**
|
|
```bash
|
|
python3 udib.py get iso-testing
|
|
```
|
|
|
|
### Exemples avancés de téléchargement
|
|
|
|
Télécharger dans un répertoire spécifique :
|
|
```bash
|
|
python3 udib.py --output-dir /tmp get iso
|
|
```
|
|
|
|
Télécharger avec un nom personnalisé :
|
|
```bash
|
|
python3 udib.py --output-file debian-stable-custom.iso get iso
|
|
```
|
|
|
|
Télécharger le fichier de préconfiguration basique :
|
|
```bash
|
|
python3 udib.py get preseed-file-basic
|
|
```
|
|
|
|
Télécharger le fichier de préconfiguration complet :
|
|
```bash
|
|
python3 udib.py get preseed-file-full
|
|
```
|
|
|
|
Ces commandes téléchargent automatiquement l'ISO et vérifient son intégrité avec les signatures GPG.
|
|
|
|
### Créer un ISO personnalisé
|
|
|
|
**Préparer les fichiers à injecter :**
|
|
|
|
Le dossier `files_to_inject/` doit contenir tous les fichiers que vous souhaitez injecter dans l'ISO :
|
|
- `boot/grub/grub.cfg` : Configuration GRUB personnalisée
|
|
- `boot/grub/theme/` : Thème GRUB personnalisé
|
|
- `isolinux/menu.cfg` : Configuration du menu isolinux
|
|
- `isolinux/splash.png` : Image de fond du menu isolinux
|
|
- `logo.png` : Logo personnalisé affiché pendant l'installation
|
|
- `preseeds/default.preseed` : Fichier de préconfiguration pour l'installation automatisée
|
|
|
|
**Injection de fichiers :**
|
|
```bash
|
|
python3 udib.py --output-file skylanix.iso inject --image-file debian-12.x.x-amd64-netinst.iso
|
|
```
|
|
|
|
**Utilisation :**
|
|
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.
|
|
|
|
# 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).
|
|
|
|
## Commandes avancées
|
|
|
|
### 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é
|
|
- `iso-testing` pour télécharger le dernier ISO netinst Debian testing x86-64 non modifié
|
|
|