bilibop(7) éxécuter Debian GNU/Linux depuis un support externe

DESCRIPTION

Nombre de distributions GNU/Linux --- au moins les plus populaires d'entre elles --- fournissent en téléchargement gratuit des images de disque aux formats .iso ou .img, qui peuvent être copiées sur une clé USB (parfois juste avec cat(1) ou dd(1), parfois par des méthodes plus complexes) et être immédiatement utilisables 'telles quelles'.

Mais de tels systèmes d'exploitation ne sont pas conçus pour être modifiés; Ils sont accessibles seulement en lecture, et même s'ils fournissent une fonctionnalité appelée 'persistance', celle-ci est limitée. De plus, ces systèmes sont couramment impossibles à maintenir, dans le sens où reconstruire l'image complète du système de fichiers racine est le seul moyen de mettre à jour le système ou de modifier ses paramétrages en profondeur. C'est là souvent une tâche lourde et difficile qui ne peut pas être effectuée depuis le système lui-même: cela nécessite un espace de travail dédié, extérieur au système en cours d'éxécution, ce qui nécessite souvent de faire appel à un autre système d'exploitation pour remplacer l'image de disque par la nouvelle; et certaines de ces tâches ne peuvent être effectuées que par des utilisatrices avancées. Les autres doivent attendre la prochaine mise à jour officielle, si elle arrive un jour.

Bilibop signifie 'Bilibop Is Live Install Boot On Pendrive'. Cet accronyme récursif est maintenant obsolète, mais le nom a été conservé. Le projet bilibop est né comme une alternative aux systèmes LiveUSB.

En réalisant une installation standard de Debian directement sur un support amovible --- généralement une clé USB ou un disque dur externe --- il est possible de l'utiliser comme un système LiveUSB, avec cette différence qu'il se comporte comme n'importe quel système Debian installé: il peut être maintenu, modifié, mis à jour, ou même cassé par l'adminitratrice (root) à n'importe quel moment. En fait, sans un paramétrage spécifique, il peut être cassé n'importe quand par une utilisatrice sans privilèges; mais c'est aussi le cas des systèmes LiveUSB.

Ainsi, bilibop est un ensemble de scripts utilisant ou utilisés par d'autres programmes (initramfs-tools(7), udev(7), ou GRUB2) pour aider les administratrices à maintenir un système d'exploitation Debian GNU/Linux installé sur un support amovible et inscriptible, même si certains de ces scripts peuvent aussi être utilisés dans d'autres contextes. L'un de ses buts principaux est de répondre à des problèmes de sécurité ou de durcir des règles et des politiques standard pour rendre le système plus robuste dans cette situation particulière. Plutôt qu'une nouvelle distribution basée sur Debian, encore une, vivant vite et mourrant jeune, bilibop a été conçu comme un petit ensemble de paquets Debian. bilibop-lockfs peut aussi être installé sur un ordinateur portable ou sur un ordinateur public comme une alternative à fsprotect ou overlayroot, et bilibop-udev (ou bilibop-rules) devrait aussi être installé sur un LiveUSB.

PAQUETS BILIBOP

bilibop
C'est un métapaquet, dépendant de plusieurs autres paquets binaires issus du même paquet source bilibop.
bilibop-common
Il founit principalement des fonctions shell et de la documentation. Voir README.Debian dans la documentation du paquet pour des détails sur ces fonctions. Il inclut aussi la commande drivemap(1).
bilibop-rules
Ce paquet fournit des règles (rules) udev et des scripts d'aide. Son but premier est de fixer le disque hébergeant le système en cours d'éxécution, et toutes ses partitions, comme propriété du groupe 'disk' plutôt que 'floppy', comme c'est le cas actuellement pour les supports amovibles. Il s'agit d'un contournement du bogue #645466. Les règles udev fournies par ce paquet s'appliquent même quand la racine du système est sur un périphérique LUKS, un Volume Logique LVM, un périphérique boucle (loop) ou un point de montage aufs(5) ou overlay, bilibop-rules inclut aussi la commande lsbilibop(8), et quelques scripts d'aide dans /usr/share/bilibop, qui peuvent être éxécutés manuellement ou avec 'dpkg-reconfigure bilibop-rules'. Voir README.Debian dans la documentation du paquet pour les détails.
bilibop-udev
Ce paquet est une sorte de sous-ensemble de bilibop-rules, et est plus adapté aux systèmes LiveUSB. Il fait juste en sorte que le disque hébergeant le système, et toutes ses partitions, appartiennent au groupe 'disk' plutôt que 'floppy'. Ses règles udev créent aussi un lien symbolique (/dev/bilibop) pointant sur le nom du disque. Voir README.Debian dans la documentation du paquet pour les détails.
bilibop-lockfs
En utilisant un script initramfs et un programme d'aide à mount(8), les systèmes de fichiers sont montés en lecture seule comme branches inférieures d'un point de montage aufs(5) ou overlay, les branches inscriptibles correspondantes étant sur des systèmes de fichiers temporaires. De plus, les périphériques en mode bloc sont aussi paramétrés comme accessibles en lecture seule, évitant ainsi les accès en écriture de bas niveau, même par l'administratrice. Cela concourt à rendre le système d'exploitation incassable, sauf avec un marteau. Voir README.Debian dans la documentation du paquet pour les détails.

INSTALLATION

Debian peut être installée sur un disque amovible comme elle le serait sur un disque interne, avec les restrictions suivantes:
  • Il est hautement recommandé d'installer un système chiffré. Autrement, que peut-il se passer si la clé USB ou le DD externe a été perdu ou oublié quelque part, ou même volé ? Malheureusement (mais il y a des raisons de sécurité évidentes), cela ne peut pas être complètement automatisé.
  • En raison des limites du nombre de cycles d'écriture sur la mémoire flash, il n'est pas recommandé d'y installer un espace d'échange (swap): cela peut réduire considérablement la durée de vie du support.
  • Même si l'architecture amd64 est maintenant la plus commune sur les ordinateurs personnels modernes, l'installation d'un système compatible x86 le rendra plus versatile et capable de tourner autant sur une architecture amd64 que i386 (et même sur ia32, mais cela peut nécessiter un schéma de partitionnement spécifique).
  • Prenez garde, vers la fin de l'installation, que le chargeur de démarrage soit bien écrit sur le secteur d'amorçage principal (MBR) du disque sur lequel le système vient d'être installé: le choix par défaut, 'install on MBR' l'installera sur le secteur d'amorçage principal du premier disque !
  • En prenant en compte les recommandations précédentes, choisissez 'Expert Install' ou 'Expert Graphical Install' dans le menu de démarrage de l'installeur. Si vous devez installer Debian sur plusieurs périphériques, n'effectuez pas une installation automatique avec l'option 'Auto Install' dans le menu de démarrage de l'installeur. Si vous avez vraiment besoin d'automatiser ce processus pour gagner du temps, utilisez plutôt un fichier preseed.

PARAMÈTRES ET CONFIGURATION

Le principal avantage d'une installation standard par rapport à un système Live est que le système installé peut répondre exactement à vos besoins: si les besoins évoluent, le système peut être facilement modifié. Il peut être installé et configuré pour être utilisé dans différents contextes:

• usage quotidien (c'est mon cas)
• routeur et/ou pare-feu pour un réseau local
• serveur ftp et/ou http (c'est mon cas)
• récupération de données et analyse post-mortem (c'est mon cas)
• mirroir d'un dépôt de paquets Debian embarqué (c'est mon cas)
• système de test
• système à but pédagogique
• autres

Parce qu'un système d'exploitation tournant depuis un support externe est généralement utilisé sur des ordinateurs différents, avec des claviers, des architectures, des écrans, etc. potentiellement différents, il peut être nécessaire que certains paramétrages soient aussi flexibles que possible. Ce champ est sans doute trop large pour être couvert dans une seule page de manuel: voir /usr/share/doc/bilibop-common/misc/* pour quelques trucs et astuces, détails et suggestions de paramètrages possibles.

FICHIERS

/usr/share/bilibop-common/README.Debian
/usr/share/bilibop-common/examples/bilibop.conf
/usr/share/bilibop-common/misc/*
/usr/share/bilibop-lockfs/README.Debian
/usr/share/bilibop-lockfs/examples/bilibop.conf
/usr/share/bilibop-rules/README.Debian
/usr/share/bilibop-rules/examples/bilibop.conf

AUTEUR

Cette page de manuel a été traduite de l'anglais par Alexandre Martin <[email protected]> dans le cadre du projet bilibop.