STI 3A - 2025 (Ali Terro, Amadou DIACK, Ahmad SAAD, Amer El Jibbawe)
Génère automatiquement un script perform-chroot.sh intelligent basé sur la configuration actuelle de votre système Arch Linux. Ce script permet de reproduire facilement le processus d'arch-chroot depuis un live USB, en gérant automatiquement les configurations complexes.
- Systèmes de fichiers classiques : ext4, xfs, f2fs
- Btrfs avancé : Détection automatique des sous-volumes
- Chiffrement LUKS : Déverrouillage automatique des volumes chiffrés
- Configurations hybrides : Btrfs + LUKS, multi-partitions, etc.
- Service systemd : Génération automatique à l'extinction du système
- Analyse en temps réel : Parse
/etc/fstabet détecte la configuration matérielle - Gestion d'erreurs robuste : Vérifications et fallbacks intelligents
- Nettoyage automatique : Démontage propre en cas d'interruption
- Vérification des périphériques : S'assure de l'existence des volumes avant montage
- Gestion des permissions : Contrôles de sécurité intégrés
- Sauvegarde automatique : Conserve les anciens scripts
- Logs détaillés : Traçabilité complète des opérations
# Avec yay
yay -S auto-archchroot
paru -S auto-archchroot
# Manuellement
git clone https://aur.archlinux.org/auto-archchroot.git
cd auto-archchroot
makepkg -sigit clone https://github.com/madptitprince/auto-archchroot.git
cd auto-archchroot
makepkg -sisudo systemctl enable auto-archchroot.service
sudo systemctl start auto-archchroot.service# Génère immédiatement le script
sudo auto-archchroot
Depuis un live USB Arch Linux :
chmod +x perform-chroot.sh
sudo ./perform-chroot.sh| Système de Fichiers | Non Chiffré | LUKS |
|---|---|---|
| ext4 | ✅ | ✅ |
| btrfs | ✅ (sous-volumes) | ✅ (sous-volumes + LUKS) |
| xfs | ✅ | ✅ |
| f2fs | ✅ | ✅ |
UUID=12345678-1234-1234-1234-123456789012 / btrfs subvol=@,compress=zstd,noatime 0 1
UUID=12345678-1234-1234-1234-123456789012 /home btrfs subvol=@home,compress=zstd,noatime 0 2
UUID=87654321-4321-4321-4321-210987654321 /boot ext4 defaults 0 2UUID=luks-uuid-here / btrfs subvol=@,compress=zstd 0 1
UUID=boot-uuid-here /boot ext4 defaults 0 2
UUID=efi-uuid-here /boot/efi vfat defaults 0 2Le fichier de configuration principal se trouve dans /etc/auto-archchroot/config.conf :
[general]
output_script_path = /home/perform-chroot.sh
fstab_path = /etc/fstab
mount_root = /mnt
log_level = INFO
[luks]
device_prefix = luks_
unlock_timeout = 30
max_attempts = 3
[btrfs]
auto_detect_subvolumes = true
default_subvol_options = compress=zstd,noatime
[script]
colored_output = true
auto_cleanup = true
copy_resolv_conf = trueLe script perform-chroot.sh généré inclut :
- Déverrouillage LUKS : Demande les mots de passe si nécessaire
- Montage hiérarchique : Monte dans l'ordre correct (/, /boot, /boot/efi, etc.)
- Sous-volumes Btrfs : Applique automatiquement les bonnes options
- Pseudo-systèmes : Monte /dev, /proc, /sys, /run
- Réseau : Copie resolv.conf pour la connectivité
- Nettoyage : Démonte tout proprement à la sortie
#!/bin/bash
# Généré automatiquement par auto-archchroot
cryptsetup open /dev/sda2 luks_12345678
mount -o subvol=@ /dev/mapper/luks_12345678 /mnt
mount /dev/sda1 /mnt/boot
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /run /mnt/run
arch-chroot /mntsudo systemctl status auto-archchroot.service
# Voir les logs
sudo journalctl -u auto-archchroot.service
# Vérifier la configuration
sudo auto-archchroot --dry-run# Vérifier les permissions
ls -la /usr/local/bin/auto_archchroot.py
# Tester manuellement
sudo python3 /usr/local/bin/auto_archchroot.py
cat /etc/fstabsudo blkid
sudo cryptsetup status
sudo btrfs subvolume list /Les logs sont disponibles dans /var/log/auto-archchroot.log :
tail -f /var/log/auto-archchroot.log
grep ERROR /var/log/auto-archchroot.log
sudo auto-archchroot --debugLes contributions sont les bienvenues ! Merci de :
- Fork le projet
- Créer une branche pour votre fonctionnalité (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Avant de soumettre, assurez-vous que :
- Les tests passent sur les 4 configurations (ext4/btrfs × plain/LUKS)
- Le code respecte PEP 8
- La documentation est à jour
- Les logs sont appropriés
Ce projet est sous licence GPL v3. Voir le fichier LICENSE pour plus de détails.
- Arch Linux pour l'excellente distribution
- Communauté Btrfs pour la documentation des sous-volumes
- Développeurs systemd pour les services robustes
- Contributeurs qui améliorent ce projet
- Issues GitHub : Signaler un bug
- Discussions : Forum Arch
- AUR Comments : Page AUR
Auto Arch-Chroot - Simplifiez votre workflow de récupération système ! 🚀