Vous n'êtes pas identifié(e).
On RTFM (on lit le fameux manuel, ou plutôt la documentation en l’occurrence) :
ou
Quelque citations :
EDIT : AVERTISSMENT !!!
IL EST TRÈS IMPORTANT DE LIRE ATTENTIVEMENT CET SECTION POUR POUVOIR COMPRENDRE CORRECTEMENT LA SUITE.
JE VOUS INVITE ÉGALEMENT À PRATIQUER LES EXEMPLES PROPOSÉS AFIN DE VOUS FAMILIARISER AVEC LA PROCÉDURE.
1.1 Pour les impatients
Mais c'est nous ça !!!
[...]Tout d'abord, lisez ce chapitre À propos de ce manuel dès le début et finissant avec la section Terminologie. Ensuite, passez aux trois tutoriels à l'avant de la section Exemples destinée à vous apprendre la construction de l'image et les bases de la personnalisation. Lisez en premier En utilisant les exemples, puis Tutoriel 1: Une image par défaut, Tutoriel 2: Un logiciel de navigateur Web et finalement Tutoriel 3: Une image personnalisée. À la fin de ces tutoriels, vous aurez un avant-goût de ce qui peut être fait avec les systèmes live. [...]
18.2 Tutoriel 1: Une image par défaut
Cas d'utilisation: Créer une image simple d'abord, en apprenant les bases de live-build.
Dans ce tutoriel, nous construirons une image ISO hybride par défaut contenant uniquement des paquets de base (pas de Xorg) et quelques paquets de prise en charge live, en guise de premier exercice dans l'utilisation de live-build.
Vous ne pouvez pas faire plus simple que cela:
$ mkdir tutorial1 ; cd tutorial1 ; lb config
Examinez le contenu du répertoire config/ si vous le souhaitez. Vous verrez stockés ici une arborescence de configuration, prête à être personnalisée ou, dans ce cas, utilisée immédiatement pour construire une image par défaut.
Maintenant, en tant que superutilisateur, construisez l'image en enregistrant un journal avec tee.
# lb build 2>&1 | tee build.log
En supposant que tout se passe bien, après un certain temps, le répertoire courant contiendra live-image-i386.hybrid.iso. Cette image ISO hybride peut être démarrée directement dans une machine virtuelle comme décrit dans Test d'une image ISO avec QEMU et Test d'une image ISO avec VirtualBox, ou bien copiée sur un support optique ou un périphérique USB comme décrit dans Graver une image ISO sur un support physique et Copie d'un image ISO hybride sur une clé USB, respectivement.
18.3 Tutoriel 2: Un utilitaire d'un navigateur Web
Cas d'utilisation: Créer l'image d'un utilitaire de navigation Web, en apprenant à appliquer des personnalisations.
Dans ce tutoriel, nous allons créer une image utilisable comme un utilitaire de navigation web, ce qui servira d'introduction à la personnalisation d'images live.
$ mkdir tutorial2
$ cd tutorial2
$ lb config
$ echo "task-lxde-desktop iceweasel" >> config/package-lists/my.list.chroot
$ lb config
Notre choix de LXDE pour cet exemple reflète notre volonté de fournir un environnement de bureau minimal, puisque le but de l'image est l'utilisation unique que nous avons à l'esprit, le navigateur web. On pourrait aller encore plus loin et offrir une configuration par défaut pour le navigateur web dans config/includes.chroot/etc/iceweasel/profile/, ou des paquets de prise en charge supplémentaires pour visualiser différents types de contenu web, mais nous laissons cela en exercice pour le lecteur.
Construisez l'image, encore une fois en tant que superutilisateur, et gardez un journal comme dans Tutoriel 1:
# lb build 2>&1 | tee build.log
Encore une fois, vérifiez que l'image est OK et faites un test, comme dans Tutoriel 1:
18.4 Tutoriel 3: Une image personnalisée
Cas d'utilisation: Créer un projet pour construire une image personnalisée, contenant vos logiciels préférés à emporter avec vous sur une clé USB où que vous alliez, et évoluant dans des révisions successives selon les changements de vos besoins et de vos préférences.
Puisque nous allons changer notre image personnalisée pendant un certain nombre de révisions, et que nous voulons suivre ces changements, essayer des choses expérimentalement et éventuellement les annuler si les choses ne fonctionnent pas, nous garderons notre configuration dans le populaire système de contrôle de version git. Nous allons également utiliser les meilleures pratiques d'autoconfiguration via auto scripts tel que décrit dans Gestion d'une configuration.
18.4.1 Première révision
$ mkdir -p tutorial3/auto
$ cp /usr/share/doc/live-build/examples/auto/* tutorial3/auto/
$ cd tutorial3
Éditez auto/config comme suit:
#!/bin/sh
lb config noauto \
--architectures i386 \
--linux-flavours 686-pae \
"${@}"
Exécutez lb config pour générer l'arbre de configuration, en utilisant le script auto/config qu'on a créé:
$ lb config
Remplissez maintenant votre liste de paquets locaux:
$ echo "task-lxde-desktop iceweasel xchat" >> config/package-lists/my.list.chroot
Tout d'abord, --architectures i386 assure que sur notre système de construction amd64, nous construisons une version de 32 bits qui peut être utilisée sur la plupart des machines. Deuxièmement, nous utilisons --linux-flavours 686-pae parce que nous ne prévoyons pas d'utiliser cette image sur des systèmes très anciens. Troisièmement, nous avons choisi le métapaque de la tâche lxde pour nous donner un bureau minimal. Et enfin, nous avons ajouté deux premiers paquets préférés: iceweasel et xchat.
Maintenant, construisez l'image:
# lb build
Notez que contrairement aux deux premiers tutoriels, nous n'avons plus besoin de taper 2>&1 | tee build.log parce que cela est maintenant inclus dans auto/build. [...]
9.1.1 Live/chroot local includes
Les chroot local includes peuvent être utilisés pour ajouter ou remplacer des fichiers dans le système de fichiers chroot/Live afin qu'ils puissent être utilisés dans le système Live. Une utilisation typique est de peupler l'arborescence du répertoire de l'utilisateur (/etc/skel) utilisée par le système live pour créer le répertoire home de l'utilisateur Live. [...]
Pour inclure des fichiers, il suffit de les ajouter à votre répertoire config/includes.chroot. Ce répertoire correspond au répertoire racine / du système live. Par exemple, pour ajouter un fichier /var/www/index.html dans le système live, utilisez:
$ mkdir -p config/includes.chroot/var/www
$ cp /path/to/my/index.html config/includes.chroot/var/www
Votre configuration aura alors le schéma suivant:
-- config
[...]
|-- includes.chroot
| `-- var
| `-- www
| `-- index.html
[...]
Les chroot local includes sont installés après l'installation de paquets de sorte que les fichiers installés par les paquets sont remplacés.
Ce qu'il faut bien comprendre, c'est qu'il faut donc créer dans config/includes.chroot un répertoire etc, puis à l'intérieur un répertoire skel, puis à l'intérieur mettre les fichiers et répertoires cachés contenus dans le /home (ceux commençant par un .) tel que .config pour pouvoir retrouver la même configuration (thème, icônes, fond d'écran, raccourcis, lanceurs personnalisés, tableau de bord...) dans le live de l'iso que celle de son utilisateur courant (et aussi la conserver à l'installation lorsque la bonne option est activée, à savoir "--debian-installer live" ; voir plus bas).
À partir de là...
Dernière modification par AbdelQahar (10-05-2016 10:02:52)
Hors ligne
(Remplacez $user par le nom de votre utilisateur courant)
Je trouve cela plus propre que de travailler dans le /home...
Et là, voilà ce que je propose, alternativement à git, et qui pour moi a grandement simplifié la gestion des choses (mais ce n'est qu'une proposition...) :
On se retrouve avec la chose suivante :
De cette manière on centralise les 3 scripts principaux : config, build et clean. On pourra donc les mettre à jour indépendamment de ce qui se passe dans chacun des répertoires de travail que l'on créera par la suite.
Ce qu'on va faire, c'est que l'on va faire des petits scripts qui vont copier coller ces 3 scripts automatiquement dans les répertoires de travail à chaque fois que l'on voudra mettre à jour quelque chose, puis qui nous les afficheront et nous donneront la possibilité de la modifier juste après la copie.
Cela va être plus clair par la suite je pense.
Voyons tout de suite les scripts que j'ai mis au point et qui fonctionnent...
Hors ligne
Pour du 32 bit par défaut, pae et non-pae. (Ne pas oublier autologin !!!)
J'ai préféré une iso classique plutôt qu'une iso hybride. De toute façon on va faire une clé bootable avec grub...
L'option --debian-installer live permet de faire que ce soit le contenu du système live qui soit copié lors de l'installation ! C'est juste génial !
build :
Il affiche le temps d'exécution en seconde une fois terminé...
clean :
Il efface complètement le fichier config, chose que je trouve plus propre, et qui est également plus en harmonie avec la stratégie de scripts "copier-coller-modifier-exécuter" que l'on va mettre en place par la suite.
Dernière modification par AbdelQahar (10-05-2016 16:31:17)
Hors ligne
On va rentrer dans notre répertoire de test :
et maintenant, premier script maison :
Son contenu :
prep.sh :
Il se trouve donc dans le répertoire scripts, lui-même dans le répertoire triggers. Mais si vous voulez vous organiser autrement parce que cela vous semble tordu., je ne vous en veux pas !
Il va tout simplement crée un repertoire auto s'il n'est pas déjà dans les parages, puis y déposé une version récente du script config en provenance de votre répertoire triggers/auto, puis il va vous l'afficher avec votre éditeur par défaut (vim chez moi) et vous laisser la possibilité de faire un ajustement. Si vous voulez du 64 bit par exemple il vous suffira de remplacer i386 et "i686-pae 586" par amd64.
Puis ensuite il va faire la même chose avec le fichiers live.list.chroot. Si vous voulez une noyau 64 bit, ne gardez qu'une seule ligne et effectuez le même remplacement.
Vous pouvez également mettre "true" pour l'option --backports dans le auto/config puis mettre un noyau plus récent du coup dans le config/package-lists/live.list.chroot (en ce moment c'est le 4.5 dans les backports).
Dernière modification par AbdelQahar (10-05-2016 16:35:25)
Hors ligne
Comment est-il fait ?
gen.sh :
Il fait appelle à deux autres scripts, voilà leur contenu :
remplissage_home.sh :
Il va prendre l'ensemble des fichiers du l'utilisateur courant défini dans le fichiers remplissage_home.txt.
Voici ce que j'y ai mis :
Ça pèse 150 Mo à peu près chez moi. À vous de voir ce que vous voulez mettre... Évitez .local, et essayer de ne pas que ça fasse trop, sinon votre iso en sortie va peser trop lourd.
EDIT : La limitie est de 4 Go, ne la dépassez pas. En effet, comme on va faire un clé multibootable formatée en fat 32, il faut tenir compte de l'une des limitations du fat 32 qui est qu'il peut pas accpeter un fichier unique pesant plus de 4 Go.
remplissage_root.sh :
Même combat :
remplissage_root.txt :
À vous de cerner les fichiers de configuration qui vous semblent essentiels...
Dernière modification par AbdelQahar (10-05-2016 18:08:10)
Hors ligne
Avant de vous dévoiler le contenu un peu de RTFM :
Il est important de bien cerné cela.
clean.sh :
C'est en fonction de ce que vous voulez retailler dans votre iso...
J'ai un autre script concernant plus fin sur ce point là en tête, mais je ne l'ai pas encore rédigé ni testé...
Mais bon, allez, pour finir dans la joie et la bonne humeur, pourquoi ne pas chaîner tout ça ???
auto.sh :
Fastoche !
De cette manière, vous pouvez adapter selon vos besoins chaque étape de la génération de votre iso, et améliorer/modifier selon vos besoin/envies chaque script indépendamment les uns des autres (comme dans le modèle OSI pour ceux qui ont fait du réseau).
N'hésitez surtout à faire des backups du répertoire triggers (avec git par exemple, mais lá je ne peut pas vous aider, je ne m'en suis jamais servi... Il faudrait sans doute que je m'y mette...) et à renommer et déplacer systématiquement les iso obtenues !!!
À suivre : la clé multiboot.
En fait, ce sera juste la synthèse du résultat final du topic suivant : https://debian-facile.org/viewtopic.php?id=11493
Mais en étant plus clair et concis, orienté twiki, avec un joli exemple tout beau tout propre in cha Allah.
Dernière modification par AbdelQahar (10-05-2016 00:51:30)
Hors ligne
Y − 3HG − Auto-hébergé
Hors ligne
Modeste projet de tuto relatif à une approche automatisé de l'utilisation de live-build, puis création d'une clé USB bootable via grub contenant plusieurs images iso.
On installe le jouet :apt-get install live build
À partir de là...
très beau travail
une petite correction à apporter (post #1)
(ne pas oublier le "-" dans live-build
Hors ligne
Dernière modification par AbdelQahar (10-05-2016 10:28:15)
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Si la clé est déjà formatée (comme c'est le cas ici), on peut faire mieux :
Donc /dev/sdb dans ce cas. Mais si pour vous c'est ailleurs, alors adaptez les commandes suivantes en conséquences...
Bon, on peut reformaté histoire de repartir sur une base propre (attention : toutes les données présentes sur la clé seront effacées ; transférer vos données sur une autre support avant d'exécuter cette commande) :
Cela va créer une nouvelle partition en fat 32 utilisant la totalité de l'espace de la clé.
On va lui donner un petit nom :
On monte la clé. Bon, je pense qu'on va le faire en graphique ici (cliquez sur "MULTI-DEB" dans votre gestionnaire de fichiers)
On repère le point de montage, qui devrait être : /media/$user/MULTI-DEB (où $user et votre nom d'utilisateur)
La preuve :
On se place dedans :
Maintenant, on va installer grub dans un dossier boot à la racine de la clé USB :
Vous pouvez vérifier que cela a fonctionné en inspecter le contenu du répertoire boot (celui de la clé USB je veux dire) :
Bon maintenant on va placer des iso à la racine de la clé USB, et ont va créer et éditer le fichier boot/grub/grub.cfg pour pouvoir avoir un joli menu nous permettant de lancer l'image iso de notre choix, avec les options de notre choix...
Hors ligne
Tip: To install debian from any stock install medium on a non-optical medium (e.g. usb stick, HDD), it's necessary to use a different initramfs instead of the default one on the installation medium which is located at (loop)/install.amd/initrd.gz. If you boot with the default one, the installer will unable to find or mount the proper iso image for installation. Please download the initramfs for hard disk installation from an official mirror site, put it in the same directory with the image file and give it a suitable name (debian-7.8.0-amd64-DVD-1.hdd.initrd.gz in this example).
source : https://wiki.archlinux.org/index.php/Mu … ive#Debian
En gros : les images iso de debian on besoin d'un fichier initrd.gz différent pour pouvoir démarrer depuis un support non optique. Il faut alller chercher ce dernier c'est un mirroir debian.
On aurait pu éventuellement essayer l'option --binary-image hdd dans le script config pour éviter cela, sauf que lorsque j'ai essayé (depuis Jessie) j'ai été confronté à des erreurs lors de la génération de l'iso... Point d'interrogation donc. Peut-être que je ressaierai plus tard...
Pour les 32 bit c'est ici :
https://mirrors.kernel.org/debian/dists … /hd-media/
Et pour les 64 bit c'est là :
https://mirrors.kernel.org/debian/dists … /hd-media/
Cliquez simplement sur "initrd.gz" pour télécharger ce fichier, mettez-le sur la racine de la clé USB on lui donnant comme nom : "initrd-i386.gz" pour les iso 32 bit ou "initrd-amd64.gz" pour les iso 64 bit, ça évite de les confondre ou qu'ils ne s'écrasent l'un l'autre si vous voulez avoir des iso des deux architectures sur votre clé MULTI-DEB.
Hors ligne
Pour l'essayer avec simplicité démonter la clé une fois le grub.cfg éditer et utiliser qemu :
En ayant d'abord installer qemu comme suit :
Pas besoin d'installer la totale qemu dans le cas qui nous occupe.
Dernière modification par AbdelQahar (10-05-2016 11:58:00)
Hors ligne
par :
Pour le mode rescue, même combat mais avec un entrée DVD par contre (j'ai l'impression que cette option n'est pas présente pour les iso custom) :
Pour le mode rescue en mode graphique :
Pour l'installation automatisée :
Automatisée en mode graphique :
Pour la synthèse vocale :
Hors ligne
Dernière modification par AbdelQahar (10-05-2016 11:59:54)
Hors ligne
Hors ligne
18.2 Tutoriel 1: Une image par défaut
Cas d'utilisation: Créer une image simple d'abord, en apprenant les bases de live-build.
Dans ce tutoriel, nous construirons une image ISO hybride par défaut contenant uniquement des paquets de base (pas de Xorg) et quelques paquets de prise en charge live, en guise de premier exercice dans l'utilisation de live-build.
Vous ne pouvez pas faire plus simple que cela:
$ mkdir tutorial1 ; cd tutorial1 ; lb config
Examinez le contenu du répertoire config/ si vous le souhaitez. Vous verrez stockés ici une arborescence de configuration, prête à être personnalisée ou, dans ce cas, utilisée immédiatement pour construire une image par défaut.
Maintenant, en tant que superutilisateur, construisez l'image en enregistrant un journal avec tee.
# lb build 2>&1 | tee build.log
source : la doc officielle (voir post1)
Donc, on commence par :
(C'est parce que je l'ai lancé depuis un système 64 bit)
Voilà le résultat :
On se retrouve avec toute cette arborescence là.
Le fichier où indiquer les paquets supplémentaires souhaités est : /config/package-lists/live.list.chroot
Son contenu par défaut :
Il n'y a qu'à ajouter ce que l'on veut.
Le fichier où ajouter les fichiers supplémentaires est : /config/includes.chroot
On peut créer un répertoire /etc/skel ou mettre les fichier de configuration pour l'user live :
Ensuite, on peut aller coller en graphique copier/coller ce que l'on a besoin depuis son répertoire utilisateur (.config, .mozilla, .vimrc, .vim/, ou bien .emacs et .emacs.d/ pour ceux qui utilisent emacs...)
Voilà, de cette manière je pense que c'est très clair pour lb config.
Dernière modification par AbdelQahar (10-05-2016 16:16:59)
Hors ligne
À ce niveau-là va être créé un répertoire chroot dans laquelle la Debian minimale va être install via bootstrap.
[...]
Ici va être créer un dossier cache dans lequelle vont sont trouver tous les paquets .deb. Cela permettra plus tard de refaire le chroot avec deboostrap sans avoir à tout retélécharger.
[...]
On va laisser travailler la commande tranquillement un certain temps
Dernière modification par AbdelQahar (10-05-2016 14:50:49)
Hors ligne
Ici va être créer un répertoire binary qui va servie à généré l'image iso. Tout d'abord, le chroot va être comprimer dans un squashfs (méthode de compression xz) qui sera le système live. Pendant que cette partie (This may take a while.) le squashfs être en train d'être créé dans le répertoire chroot sous le nom "filesystem.squashfs". Vous pouvez suivre son évolution en mode graphique pour le voir grossir. Il sera ensuite déplacé vers le répertoire binary.
[...]
Hors ligne
[...]
Un certains nombre de paquets vont être télécharger pour pouvoir finaliser l'image iso (isolinux surtout !)
À l'issue de l'installation on aura un répertoire isolinux dans notre répertoire binary pour pouvoir faire booter notre système live squashfs
[...]
Et voilà ! notre iso est prète ! Dernière étape de lb build : zsync (je ne sais pas à quoi ça sert...)
FINI !!!!!
De 15h39 à 16h13 comme vous le voyez, sachant que j'ai fait beaucoup de CTRL-Z puis fg pour pouvoir décrire toute la procédure, et sachant aussi ma config : dualcore @ 2 Ghz, 3 Go de RAM DDR2, disque dur standart (non SDD), connection wifi bonne (> 2 Go/s en moyenne).
Dernière modification par AbdelQahar (10-05-2016 15:17:06)
Hors ligne
lb clean --binary va simplement effacer le contenu du fichier binary ainsi que l'image iso. Si vous relancer lb build après cela vous allez reprendre à l'étape de la compression du chroot en squashfs.
lb clean va supprimer le chroot et le binary mais pas le cache, ni le config. De cette manière, vous pouvez relancer lb config avec des options différentes, et reprendre à l'étape du bootstrap sans avoir à retélécharger les paquets (puisqu'il se trouve dans le cache).
Personnellement, pour assurer la cohérence avec les scripts que je propose, je préfère supprimer le binary, le config mais pas le cache. Et pour ce qui est du chroot cela dépend des changements effectués.
Je conseille de faire deux répertoires différents pour chaque architecture : un pour le 64 et un pour le 32.
De cette manière vous avez deux caches distincts, et à chaque fois que vous générez une nouvelle iso, vous la renommez puis vous la déplacez, vous nettoyez avec lb clean et vous passez à l'iso suivante.
Hors ligne
Bien que cela ne soit pas forcément le seul répertoire qui mériterait d'être purgé, dans la plupart des cas selon devrait suffire.
Sinon on lance lb clean sans option, et on repart avec un chroot neuf.
Comme je l'ai dit, à cette étape je pense qu'il y a quelque chose de plus fin à mettre en place, il faut que je travaille dessus.
Quoi qu'il en soit, ce que j'ai proposé fonctionne !
Hors ligne
Soit un plus d'une heure et quart, et l'iso fait environ 1,2 Go.
Dernière modification par AbdelQahar (10-05-2016 18:05:23)
Hors ligne
Je précise que c'est aussi pour moi que je fais ça. Lorsque je suis arrivé à un résultat concluant, je me suis dit : la meilleure façon pour ne pas perdre tout ça, c'est pas de faire des backups : c'est de le poster sur debian-facile ! En plus, ça profitera à d'autres !
Du coup si tu veux les mettre à jour ce sera avec plaisir.
Hors ligne
Par contre, la persistance, je ne suis pas pour. Il y a un certains nombres de désavantages...
Je préfère l'organisation de la distribution Tails : une partition de la clé USB pour l'iso live, et autre une partition (cryptée) pour les données.
Du coup je ne compte pas vraiment faire des recherches ou des essais là-dessus, désolé...
Non effectivement, ce n'est pas très différent, il y à juste quelques options qui ont disparus (--tasks, --packages-lists...), et le fait d'avoir un simple fichier pour faire son script config c'est quand même beaucoup plus pratique que d'avoir à chaque fois à retaper :
etc...
De même avoir un fichier dans lequel écrire les paquets supplémentaires désirés !
En fait, tout est dans la documentation officielle ! C'est une vraie mine d'or ! Elle était consultable en ligne auparavant, désormais pour l'obtenir il faut faire :
Dernière modification par AbdelQahar (10-05-2016 21:07:38)
Hors ligne