|
|
|
|
|
Ce chapitre contient un bref aperçu du processus de construction et des instructions pour utiliser les trois types d'images les plus couramment utilisées. Le type d'image le plus polyvalent, iso-hybrid, peut être utilisé sur une machine virtuelle, un support optique ou un périphérique USB de stockage portable. Dans certains cas particuliers, comme expliqué plus loin, le type hdd peut être plus approprié. Le chapitre contient des instructions détaillées pour la construction et l'utilisation d'une image netboot, qui est un peu plus compliquée en raison de la configuration requise sur le serveur. C'est un sujet un peu avancé pour tous ceux qui ne connaissent pas déjà le démarrage sur le réseau, mais est inclus ici car une fois la configuration terminée, c'est un moyen très pratique pour tester et déployer des images pour le démarrage sur le réseau local sans le tracas des supports d'images.
La section se termine par une brève introduction à webbooting qui est, peut-être, la meilleure façon d'utiliser des images différentes à des fins différentes, changeant de l'un à l'autre en fonction des besoins en utilisant l'Internet comme un moyen.
Tout au long du chapitre, nous ferons souvent référence à la valeur par défaut des noms des fichiers produits par live-build. Si vous téléchargez une image précompilée, les noms des fichiers peuvent varier.
Un système live signifie généralement un système d'exploitation démarré sur un ordinateur à partir d'un support amovible, tel qu'un CD-ROM, une clé USB ou sur un réseau, prêt à l'emploi sans aucune installation sur le disque habituel, avec auto-configuration fait lors de l'exécution (voir Termes).
Avec les systèmes live, c'est un système d'exploitation, construit pour une des architectures prises en charge (actuellement amd64 et i386). Il est fait à partir des éléments suivants:
Vous pouvez utiliser live-build pour construire l'image du système à partir de vos spécifications, configurer un noyau Linux, son initrd, et un chargeur d'amorçage pour les exécuter, tout dans un format en fonction du support (image ISO9660, image disque, etc.).
Bien que l'objectif de ce manuel soit le développement et la création de vos propres images live, vous pouvez simplement vouloir tester une de nos images précompilées comme une introduction à leur utilisation ou à la construction de vos propres images. Ces images sont construites à l'aide de notre dépôt git live-images et les versions officielles stables sont publiées sur ‹https://www.debian.org/CD/live/›. En outre, les versions plus anciennes et les futures, et des images non officielles contenant micrologiciels et pilotes non libres sont disponibles sur ‹http://live-systems.org/cdimage/release/›.
En tant que service à la communauté, nous gérons un service de construction d'images web sur ‹http://live-systems.org/build/›. Ce site est maintenu sur la base du meilleur effort. Autrement dit, même si nous nous efforçons de le maintenir à jour et opérationnel à tout moment, et de publier des avis d'importantes interruptions du service, nous ne pouvons pas garantir une disponibilité de 100% ou des constructions d'images rapides, et le service peut parfois avoir des problèmes dont la résolution prend un certain temps. Si vous avez des problèmes ou des questions au sujet du service, veuillez nous contacter en donnant le lien vers votre construction.
L'interface web ne permet actuellement pas d'empêcher l'utilisation de combinaisons d'options invalides, en particulier quand le changement d'une option (c'est-à-dire en utilisant live-build directement) modifie les valeurs des autres options énumérées dans le formulaire web, le constructeur web ne modifie pas ces valeurs par défaut. Plus particulièrement, si vous changez la valeur --architectures qui est par défaut i386 pour amd64, vous devez modifier l'option correspondante --linux-flavours de la valeur par défaut 586 pour amd64. Voir la page de manuel lb_config pour la version de live-build installée sur le constructeur web pour plus de détails. Le numéro de version de live-build est indiqué au bas de la page web.
L'estimation du temps donné par le constructeur web est une estimation brute et peut ne pas refléter la durée effective de votre construction. Cette estimation n'est pas actualisée une fois qu'elle est affichée. Soyez patient. Ne rechargez pas la page de la construction, car cela peut soumettre une nouvelle construction avec les mêmes paramètres. Vous devez nous contacter si vous ne recevez pas la notification de votre construction mais seulement une fois que vous êtes sûr que vous avez attendu assez longtemps et vérifié que la notification par e-mail n'a pas été détectée par votre filtre anti-spam.
Le constructeur web est limité dans les types d'images qu'il peut construire. Cela permet de garder les choses simples et efficaces à utiliser et à maintenir. Si vous souhaitez effectuer des personnalisations qui ne sont pas prévues par l'interface web, le reste de ce manuel explique comment construire vos propres images en utilisant live-build.
Quel que soit le type d'image, vous devrez effectuer les mêmes étapes de base pour créer une image à chaque fois. Comme premier exemple, créez un répertoire de travail, passez dans ce répertoire et exécutez la séquence suivante de commandes live-build pour créer une image ISO hybride de base contenant tout le système Debian par défaut sans X.org. Elle est appropriée pour être gravée sur CD ou DVD, et peut également être copiée sur une clé USB.
Le nom du répertoire de travail dépend totalement de vous, mais si vous jetez un œil aux exemples utilisés dans live-manual, c'est une bonne idée d'utiliser un nom qui vous aide à identifier l'image avec laquelle vous travaillez dans chaque répertoire, surtout si vous travaillez ou expérimentez avec différents types d'images. Dans ce cas, vous allez construire un système par défaut, nous allons donc l'appeler, par exemple, live-default.
$ mkdir live-default && cd live-default
Ensuite, exécutez la commande lb config. Cela va créer une hiérarchie "config/" dans le répertoire courant pour être utilisée par d'autres commandes:
$ lb config
Aucun paramètre n'est passé à ces commandes, donc les défauts seront utilisés pour l'ensemble de ses diverses options. Consultez La commande lb config pour plus de détails.
Maintenant que la hiérarchie "config/" existe, créez l'image avec la commande lb build :
# lb build
Ce processus peut prendre un certain temps, en fonction de la vitesse de votre ordinateur et de votre connexion réseau. Une fois le processus terminé, il devrait y avoir un fichier image live-image-i386.hybrid.iso prêt à l'emploi, dans le répertoire courant.
Remarque: Si vous construisez sur un système amd64 le nom de l'image résultante sera live-image-amd64.hybrid.iso. Gardez à l'esprit cette convention de nommage tout au long du manuel.
Après la construction ou le téléchargement d'une image ISO hybride, qui peut être obtenue sur ‹https://www.debian.org/CD/live/›, l'étape suivante est d'habitude de préparer votre support pour le démarrage, soit sur CD-R(W) ou DVD-R(W), des supports optiques ou une clé USB.
Graver une image ISO est facile. Il suffit d'installer /{xorriso} et de l'utiliser à partir de la ligne de commande pour graver l'image. Par exemple:
# apt-get install xorriso
$ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed live-image-i386.hybrid.iso
Les images ISO préparées avec xorriso peuvent être simplement copiées sur une clé USB avec cp ou un logiciel équivalent. Branchez une clé USB avec une capacité suffisamment grande pour votre fichier image et déterminez quel périphérique elle est, que nous appelons ci-dessous ${USBSTICK}. C'est le fichier de périphérique de votre clé, tel que /dev/sdb, pas une partition, telle que /dev/sdb1! Vous pouvez trouver le nom du périphérique en regardant la sortie de dmesg après avoir branché le périphérique, ou mieux encore, ls -l /dev/disk/by-id.
Une fois que vous êtes sûr d'avoir le nom correct de l'appareil, utilisez la commande cp pour copier l'image sur la clé. Ceci écrasera tout fichier déjà existant sur votre clé!
$ cp live-image-i386.hybrid.iso ${USBSTICK}
$ sync
Remarque: La commande sync est utilisée pour s'assurer que toutes les données qui sont stockées dans la mémoire par le noyau lors de la copie de l'image, sont écrites sur la clé USB.
Après avoir copié live-image-i386.hybrid.iso sur une clé USB, la première partition sera utilisée par le système live. Pour utiliser l'espace libre restant, utilisez un outil de partitionnement tel que gparted ou parted afin de créer une nouvelle partition sur la clé.
# gparted ${USBSTICK}
Quand la partition est créée, vous devez y créer un système de fichiers où ${PARTITION} est le nom de la partition, comme /dev/sdb2. Un choix possible serait ext4.
# mkfs.ext4 ${PARTITION}
Remarque: Si vous voulez utiliser l'espace supplémentaire avec Windows, ce système d'exploitation ne peut accéder normalement à aucune partition à part la première. Certaines solutions à ce problème ont été discutées sur notre liste de diffusion, mais il semble qu'il n'y a pas de réponse facile.
Rappelez-vous: Chaque fois que vous installez une nouvelle live-image-i386.hybrid.iso sur la clé, toutes les données sur la clé seront perdues parce que la table de partition est écrasée par le contenu de l'image, vous devez sauvegarder votre partition supplémentaire d'abord pour la restaurer à nouveau après la mise à jour de l'image live.
La première fois que vous démarrez votre support live, qu'il s'agisse de CD, DVD, clé USB, ou du démarrage par PXE, une certaine configuration dans le BIOS de votre ordinateur peut être d'abord nécessaire. Puisque les BIOS varient grandement en fonctionnalités et raccourcis clavier, on ne peut pas aborder le sujet en profondeur ici. Certains BIOS fournissent une touche pour ouvrir un menu d'amorçage au démarrage, qui est le moyen le plus facile si elle est disponible sur votre système. Sinon, vous avez besoin d'entrer dans le menu de configuration du BIOS et modifier l'ordre de démarrage pour placer le dispositif de démarrage pour le système live devant votre périphérique de démarrage normal.
Une fois que vous avez démarré le support, un menu de démarrage vous est présenté. Si vous appuyez simplement sur entrée ici, le système va démarrer en utilisant l'entrée par défaut, Live. Pour plus d'informations sur les options de démarrage, consultez l'entrée «Help» dans le menu et aussi les pages de manuel de live-boot et live-config dans le système live.
En supposant que vous ayez sélectionné Live et démarré une image de bureau live par défaut, après que les messages de démarrage aient défilé, vous devriez être automatiquement connecté au compte user et voir un bureau, prêt à l'emploi. Si vous avez démarré une image de la console uniquement, tel que le type standard des images précompilées, vous devriez être automatiquement connecté à la console pour le compte user et voir une invite du shell, prête à l'emploi.
Exécuter les images live dans une machine virtuelle (VM) peut faire gagner beaucoup de temps. Cela ne vient pas sans avertissements:
À condition de pouvoir travailler avec ces contraintes, examinez les logiciels VM disponibles et choisissez celui qui convient à vos besoins.
La VM la plus polyvalente de Debian est QEMU. Si votre processeur dispose d'une gestion matérielle de la virtualisation, vous pouvez utiliser le paquet qemu-kvm; La description du paquet qemu-kvm énumère brièvement les exigences.
Tout d'abord, installez qemu-kvm si votre processeur le gère. Sinon, installez qemu. Dans ce cas, le nom du programme est qemu au lieu de kvm dans les exemples suivants. Le paquet qemu-utils est également valable pour créer des images de disques virtuels avec qemu-img.
# apt-get install qemu-kvm qemu-utils
Démarrer une image ISO est simple:
$ kvm -cdrom live-image-i386.hybrid.iso
Voir les pages de manuel pour plus de détails.
Afin de tester l'ISO avec virtualbox:
# apt-get install virtualbox virtualbox-qt virtualbox-dkms
$ virtualbox
Créez une nouvelle machine virtuelle, modifiez les paramètres de stockage pour utiliser live-image-i386.hybrid.iso comme le périphérique CD/DVD et démarrez la machine.
Remarque: Pour les systèmes live contenant X.org que vous voulez essayer avec virtualbox, vous pouvez inclure le paquet des pilotes VirtualBox X.org, virtualbox-guest-dkms et virtualbox-guest-x11, dans votre configuration de live-build. Sinon, la résolution est limitée à 800x600.
$ echo "virtualbox-guest-dkms virtualbox-guest-x11" >> config/package-lists/my.list.chroot
Pour faire fonctionner le paquet dmks, il faut également installer le paquet linux-headers pour le noyau utilisé dans l'image. Au lieu de lister manuellement le paquet linux-headers correct dans la liste de paquets crée ci-dessus, live-build peut faire cela automatiquement.
$ lb config --linux-packages "linux-image linux-headers"
La construction d'une image HDD est similaire à une ISO hybride à tous les regards, sauf que vous spécifiez -b hdd et le nom du fichier résultant est live-image-i386.img qui ne peut être gravé sur des supports optiques. Il convient pour le démarrage à partir de clés USB, disques durs USB, et divers autres dispositifs de stockage portables. Normalement, une image ISO hybride peut être utilisée à cette fin, mais si vous avez un BIOS qui ne gère pas correctement les images hybrides, vous devez utiliser une image HDD.
Remarque: si vous avez créé une image ISO hybride avec l'exemple précédent, vous devrez nettoyer votre répertoire de travail avec la commande lb clean (voir La commande lb clean):
# lb clean --binary
Exécutez la commande lb config comme avant, sauf que cette fois en spécifiant le type d'image HDD:
$ lb config -b hdd
Construisez maintenant l'image avec la commande lb build
# lb build
Quand la création de l'image est finie, un fichier live-image-i386.img doit être présent dans le répertoire courant.
L'image binaire générée contient une partition VFAT et le chargeur d'amorçage syslinux, prêts à être écrits directement sur une clé USB. Encore une fois, comme l'utilisation d'une image HDD est juste comme l'utilisation d'une image ISO hybride sur USB, suivez les instructions Utiliser une image live ISO hybride, en utilisant le nom de fichier live-image-i386.img au lieu de live-image-i386.hybrid.iso.
De même, pour tester une image HDD avec Qemu, installez qemu comme décrit ci-dessus dans Test d'une image ISO avec QEMU. Ensuite, exécutez kvm ou qemu, selon la version dont votre système hôte a besoin en précisant live-image-i386.img comme le premier disque dur.
$ kvm -hda live-image-i386.img
La séquence de commandes suivante va créer une image NetBoot de base contenant le système Debian par défaut sans X.org. Elle peut être démarrée sur le réseau.
Remarque: Si vous avez réalisé quelques-uns des exemples précédents, vous aurez besoin de nettoyer votre répertoire de travail avec la commande lb clean:
# lb clean
Dans ce cas spécifique, un lb clean --binary ne serait pas suffisant pour nettoyer les étapes nécessaires. La raison est que dans les configurations de netboot, une configuration initramfs différente doit être utilisée, laquelle live-build exécute automatiquement lors de la construction des images netboot. Puisque la création d'initramfs appartient à l'étape chroot, si on change à netboot dans un répertoire existant, il faut reconstruire le chroot. Par conséquent, il faut faire un lb clean, (qui permettra d'éliminer l'étape chroot, aussi).
Exécutez la commande suivante pour configurer votre image pour démarrer sur le réseau:
$ lb config -b netboot --net-root-path "/srv/debian-live" --net-root-server "192.168.0.2"
Contrairement aux images ISO et HDD, le démarrage sur le réseau ne sert pas l'image du système de fichiers pour le client. Pour cette raison, les fichiers doivent être servis via NFS. Différents systèmes de fichiers réseau peuvent être choisis avec lb config. Les options --net-root-path et --net-root-server indiquent l'emplacement et le serveur, respectivement, du serveur NFS sur lequel l'image du système de fichiers sera située au moment du démarrage. Assurez-vous que ceux-ci sont fixées à des valeurs appropriées pour votre réseau et serveur.
Construisez maintenant l'image avec la commande lb build
# lb build
Dans un démarrage réseau, le client exécute un petit morceau de logiciel qui réside habituellement sur l'EPROM de la carte Ethernet. Ce programme envoie une requête DHCP pour obtenir une adresse IP et les informations sur ce qu'il faut faire ensuite. Typiquement, la prochaine étape est d'obtenir un chargeur d'amorçage de niveau supérieur via le protocole TFTP. Cela pourrait être pxelinux, GRUB, ou démarrer directement à un système d'exploitation comme Linux.
Par exemple, si vous décompressez l'archive généré live-image-i386.netboot.tar dans le répertoire /srv/debian-live, vous trouverez l'image du système de fichiers dans live/filesystem.squashfs et le noyau, initrd et le chargeur d'amorçage pxelinux dans tftpboot/.
Nous devons maintenant configurer trois services sur le serveur pour activer le démarrage sur le réseau: le serveur DHCP, le serveur TFTP et le serveur NFS.
Nous devons configurer le serveur DHCP de notre réseau pour être sûr de donner une adresse IP au client du système du démarrage sur le réseau, et pour annoncer l'emplacement du chargeur d'amorçage PXE.
Voici un exemple source d'inspiration, écrit pour le serveur ISC DHCP isc-dhcp-server dans le fichier de configuration /etc/dhcp/dhcpd.conf:
# /etc/dhcp/dhcpd.conf - configuration file for isc-dhcp-server
ddns-update-style none;
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.254;
filename "pxelinux.0";
next-server 192.168.0.2;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
}
Cela sert le noyau et le ramdisk initial pour le système pendant l'exécution.
Vous devriez installer le paquet tftpd-hpa. Il peut servir tous les fichiers contenus dans un répertoire racine, d'habitude /srv/tftp. Pour le laisser servir des fichiers dans /srv/debian-live/tftpboot, exécutez comme utilisateur root la commande suivante:
# dpkg-reconfigure -plow tftpd-hpa
et remplissez le nouveau répertoire du serveur tftp
Quand l'ordinateur hôte a téléchargé et démarré un noyau Linux et chargé son initrd, il va essayer de monter l'image du système de fichiers live via un serveur NFS.
Vous devez installer le paquet nfs-kernel-server.
Ensuite, rendez l'image du système de fichiers disponible via NFS en ajoutant une ligne comme la suivante /etc/exports:
/srv/debian-live *(ro,async,no_root_squash,no_subtree_check)
et indiquez cette exportation au serveur NFS avec la commande suivante:
# exportfs -rv
La configuation de ces trois services peut être un peu dificile. Vous pourriez avoir besoin de patience pour obtenir que tous fonctionnent ensemble. Pour plus d'informations, consultez le wiki syslinux sur ‹http://www.syslinux.org/wiki/index.php/PXELINUX› ou la section Debian Installer Manual's TFTP Net Booting sur ‹http://d-i.alioth.debian.org/manual/fr.i386/ch04s05.html›. Ils pourraient aider parce que leurs processus sont très semblables.
La création d'images netboot est facile avec live-build, mais les tests des images sur des machines physiques peuvent prendre vraiment beaucoup de temps.
Afin de rendre notre vie plus facile, nous pouvons utiliser la virtualisation.
Éditer /etc/qemu-ifup:
#!/bin/sh
sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /usr/sbin/brctl addif br0 $1
sleep 2
Obtenir, ou construire un grub-floppy-netboot.
Lancer qemu avec "-net nic,vlan=0 -net tap,vlan=0,ifname=tun0"
Webbooting est une manière très pratique de télécharger et d'amorcer les systèmes live en utilisant l'Internet comme un moyen. Il ya très peu d'exigences pour webbooting. D'une part, vous avez besoin d'un support avec un chargeur d'amorçage, un disque ram initial et un noyau. D'autre part, un serveur web pour stocker les fichiers squashfs qui contiennent le système de fichiers.
Comme d'habitude, vous pouvez construire les images vous-même ou utiliser les fichiers précompilés, qui sont disponibles sur le site du projet sur ‹http://live-systems.org/›. L'utilisation des images précompilées serait pratique pour faire l'essai initial jusqu'à ce que l'on peut affiner leurs propres besoins. Si vous avez construit une image live, vous trouverez les fichiers nécessaires pour webbooting dans le répertoire de construction sous binary/live/. Les fichiers sont appelés vmlinuz, initrd.img et filesystem.squashfs.
Il est également possible d'extraire les fichiers d'une image iso déjà existant. Pour ce faire, on doit monter l'image comme suit:
# mount -o loop image.iso /mnt
Les fichiers se trouvent sous le répertoire live/. Dans ce cas précis, il serait /mnt/live/. Cette méthode présente l'inconvénient que vous avez besoin d'être root pour pouvoir monter l'image. Cependant, il présente l'avantage qu'elle est facilement scriptable et ainsi, facilement automatisée.
Mais sans aucun doute, la meilleure façon d'extraire les fichiers d'une image iso et les télécharger sur le serveur web au même temps, est d'utiliser le midnight commander ou mc. Si vous avez le paquet genisoimage installé, le gestionnaire de fichiers à deux panneaux vous permet de voir le contenu d'un fichier iso dans un panneau et de télécharger les fichiers via FTP dans l'autre panneau. Même si cette méthode nécessite un travail manuel, elle ne nécessite pas les privilèges root.
Tandis que certains utilisateurs vont utiliser la virtualisation pour tester le webbooting, nous utilisons du matériel réel ici pour correspondre au possible cas d'utilisation suivant qui seulement devrait être considéré comme un exemple.
Afin de démarrer une image webboot il suffit d'avoir les éléments mentionnés ci-dessus, c'est-à-dire, vmlinuz et initrd.img sur une clé usb dans un répertoire nommé live/ et installer syslinux comme chargeur de démarrage. Ensuite, démarrer à partir de la clé usb et taper fetch=URL/CHEMIN/DU/FICHIER aux options de démarrage. live-boot va télécharger le fichier squashfs et le stocker dans la ram. De cette façon, il est possible d'utiliser le système de fichiers compressé téléchargé comme un système live normal. Par exemple:
append boot=live components fetch=http://192.168.2.50/images/webboot/filesystem.squashfs
Cas d'utilisation: Vous avez un serveur web dans lequel vous avez stocké deux fichiers squashfs, un qui contient un bureau complet, comme par exemple gnome, et un d'un système standard. Si vous avez besoin d'un environnement graphique pour une machine, vous pouvez brancher votre clé usb et télécharger l'image qui contient gnome. Si vous avez besoin des outils inclus dans le deuxième type d'image, peut-être pour une autre machine, vous pouvez télécharger celle du système standard.