Journal Reconstruire l'installeur anaconda sur FC5

Posté par  (site web personnel) .
Étiquettes :
0
18
sept.
2006
ces temps-ci j'ai laché la construction d'une RHEL AS4 depuis les sources pour passer sur la customisation d'une Fedora core 5, c'est tres enrichissant.

Au début tout baigne, j'ai mon comps.xml perso, j'ai customisé yum pour qu'il me chope les rpm avec leurs dépendances (merci les hooks), jusque là tout va bien.

C'est quand j'attaque anaconda que ça commence à se corser. Surtout le fameux script buildinstall. Bon deja les groupes de packages y sont inscrits en dur, ça blaisse. Mais surtout je tombe sur des erreurs fort sympathiques dont j'me passerais bien.

Ce qui est sympa avec le buildinstall c'est qu'il nécessite la présence de certains RPMs mais il le dit pas. Rien, nada, aucune vérification de leur présence. J'avais déjà remarqué le problème sur le RHEL et javais reussi à me faire une liste de RPMS suffisantes pour que la reconstruction d'anaconda passe sans problème. Mais sur la fedora je bloque. Ceci dit je fais peut être fausse route...

On trouve pas mal de doc sur les anciennes fedora mais rien pour la 5. Comme ya eu pas mal de changement c'est genant (passage a yum et a un repository direct sur le cd). Si quelqu'un a de la doc jsuis preneur, surtout sur la reconstruction de l'installeur du cd.

je vous colle les erreurs pour le fun et au cas où, on sait jamais, quelqu'un serait déjà tombé sur le probleme:


Going to run buildinstall again
Building images...
Assembling package list...
Expanding text packages...
Expanding graphical packages...
retrieving timezones
Building locale archive
Building locale archive
Creating nsswitch.conf
Fixing up /etc/man.config to point into /mnt/sysimage
Running mkfontdir...
Creating SELinux policy...
/usr/sbin/chroot: cannot run command `/usr/sbin/semodule': Aucun fichier ou répertoire de ce type
Getting pango modules
/usr/sbin/chroot: cannot run command `/usr/bin/pango-querymodules': Aucun fichier ou répertoire de ce type
Getting gtk2 input method modules
/usr/sbin/chroot: cannot run command `/usr/bin/gtk-query-immodules-2.0': Aucun fichier ou répertoire de ce type
Getting gtk2 gdk-pixbuf loaders
/usr/sbin/chroot: cannot run command `/usr/bin/gdk-pixbuf-query-loaders': Aucun fichier ou répertoire de ce type
Scrubbing trees... /tmp/treedir.31408/image-template
/usr/sbin/chroot: cannot run command `usr/sbin/ldconfig': No such file or directory
Scrubbing trees... /tmp/treedir.31408/instimage
/usr/sbin/chroot: cannot run command `usr/sbin/ldconfig': Aucun fichier ou répertoire de ce type
Compressing .mo files in stage2 images...
Creating fontconfig cache
/usr/sbin/chroot: cannot run command `/usr/bin/fc-cache': Aucun fichier ou répertoire de ce type


Pourtant le rpm qui contient semodule est bien présent... j'vais continuer à fouiller :)
  • # Des url

    Posté par  . Évalué à 2.

    Rien de concrêt à te proposer.
    Mais voilà quelques url qui te seront peut-être utiles (probable que tu connais déjà ces pages) :
    http://fedoraproject.org/wiki/RechercherUnePage?action=fulls(...) (toutes les pages avec anaconda dans le titre)
    http://fedoraproject.org/wiki/AnacondaBuildDocProject
    http://fedoraproject.org/wiki/AnacondaUserContributedScripts (quelques scripts)
    http://www.redhat.com/archives/anaconda-devel-list/ (archive anaconda-devel)

    Tu peux aussi peut-être demander de l'aide du côté de fedoraunity (ils font les "re-spin" ) : http://fedoraunity.org/

    Bon courage.
    • [^] # Re: Des url

      Posté par  . Évalué à 2.

      Pareil, mais il y a une distrib basée sur Fedora, Blag Linux : http://www.blagblagblag.org/ avec une bonne doc développeur sur leur wiki : http://wiki.blagblagblag.org/Building_BLAG50000 et un forum aussi.
      Bon courage. J'essaie moi aussi d'adapter une distrib à mes besoins, mais j'ai finalement choisi de me baser sur une Ubuntu.
      D'ailleurs ce serait bien de faire profiter la communauté quand tu auras surmonté ton problème ;-)
      • [^] # Re: Des url

        Posté par  (site web personnel) . Évalué à 1.

        merci pour votre aide et pour les liens, ça m'a l'air d'etre du bon (et Blag linux je connaissais pas, jvais aller jetter un oeil ou deux)

        Une fois ce probleme surmonté c'est clair que jvais partager mon experience, surement sous la forme d'un journal expliquand comment customiser une fedora (jpourrais deja ecrire le truc sur construire une RHEL from SRPMS)
      • [^] # Re: Des url

        Posté par  (site web personnel) . Évalué à 1.

        bon jviens de regarder Blag linux et ils se basent sur une fedora < à la version 5 (vu qu'ils utilisent genhdlist qui est remplacé par les metadonnes de yum maintenant). Mais ya quand meme des choses interessantes (et d'autres liens fournit)
        • [^] # Re: Des url

          Posté par  . Évalué à 2.

          La dernière version de Blag est bien basée sur Fedora 5, mais peut-être que la page du wiki n'est pas à jour. Tu peux essayer de demander sur leur forum, if you speak a good english ;-)
          • [^] # Re: Des url

            Posté par  (site web personnel) . Évalué à 1.

            no problem jvais demander

            j'ai un autre point d'ombre qui va venir juste apres la construction de l'installeur, c'est la frabrication des ISO, notement concernant le fichier boot.cat. Si jme trombe pas ce fichier indique les kernels bootables présents sur le cd, donc si j'en rajoute/enleve jsuis bon pour le refaire, mais je trouve null par de la doc à son sujet :(

            Mais bon jdois deja resoudre mon probleme de buildinstall d'anaconda
            • [^] # Re: Des url

              Posté par  . Évalué à 1.

              La doc Ubuntu (la fin, "Building the iso image") peut te servir : https://help.ubuntu.com/community/InstallCDCustomization?act(...)
              Un autre lien intéressant où boot.cat est mentionné (à " Création du CDrtbt") : http://www.lea-linux.org/cached/index/Software-soft_grave-cd(...)
              Par contre tu vas peut-être retomber sur le problème que j'ai actuellement, à savoir que boot.cat est créé lors de la génération de l'iso et lorsque je lance une vérification du CD obtenu j'ai une erreur me disant que le fichier isolinux/boot.cat n'est pas signé. Il doit falloire le signer et remodifier l'iso générée mais je n'ai pas encore trouvé de doc pour faire ça. Si tu sais sais comment faire...
              • [^] # Re: Des url

                Posté par  (site web personnel) . Évalué à 1.

                avec redhat on a un script qui s'appelle implantisomd5 qui s'occupe de calculer un md5sum pour la verification et de l'ajouter dans l'iso (bien sur il doit pas s'agir du md5 de l'iso en elle meme vu quelle est modifiée pour inserer le md5, mais je sais pas de quoi exactement )
              • [^] # Re: Des url

                Posté par  (site web personnel) . Évalué à 1.

                Merci pour les info sur le boot.cat il est tout simplement crée automatiquement par mkisofs, mais uniquement dans l'ISO c'est pour ça que j'minquietais

                Ce qui m'inquiete toujours c'est les erreurs lors du buildinstall d'anaconda, ça me construit qq image quand meme, mais au boot du cd c'est pas encore ça. Il tente de charger un noyau linux alors que j'ai que du vmlinuz, et ça chie grave apres, ça lance pas du tout anaconda. Mais bon jdois pas etre tres loin
                • [^] # Re: Des url

                  Posté par  (site web personnel) . Évalué à 1.

                  bon ok ça c'est fait, c'etait bidon un mauvais ks.cfg

                  là maintenant l'installeur anaconda reconnait pas le CD, ça doit etre 3x rien (enfin jespere).

                  J'approche du but
                  • [^] # Re: Des url

                    Posté par  (site web personnel) . Évalué à 1.

                    bon d'apres cdinstall.c d'anaconda, c'est surement parcequ'il me manque le stage2.img qui devrait être généré par buildinstall. Mais comme celui merde monumentalement c'est pas gagné

                    il doit me manquer une connerie à tout les coups
                    • [^] # Re: Des url

                      Posté par  . Évalué à 1.

                      courage :-)
                      • [^] # Re: Des url

                        Posté par  (site web personnel) . Évalué à 1.

                        Merci

                        bon j'en viens à la conclusion que c'est /usr/bin/runroot qu'il me manque (d'apres le strace)
                        Si quelqu'un sait où se cache cette commande je suis preneur
                        • [^] # Re: Des url

                          Posté par  . Évalué à 1.

                          buildinstall [--comp ] [--pkgorder ] [--version ] [--product ] [--release ] /path/to/build/root

                          --comp (not required)
                          Defaults to dist-7.0. This value is only used by the runroot command which is proprietary to RH and therefore is not required when used by regular users.

                          http://www.fedoraproject.org/wiki/AnacondaBuildInstall

                          Je crois que tu peux t'en passer. Courage, tu touches au but on dirait ;-)
                          • [^] # Re: Des url

                            Posté par  (site web personnel) . Évalué à 1.

                            nan le --comp est obligatoire, enfin du moins sur mon buildinstall

                            par contre ça a pas l'air de servir a grand chose

                            bon sinon jai resolu toute les erreurs, en fait ils faut copier tout le contenu de tous les cds fedora pour reconstruire les images de l'installeur (ouai c'est du lourd). Du coup j'ai un nouveau soucis.

                            Le probleme est que maintenant Anaconda quand je boot sur le CD custom il me le detecte pas, ou le concidere pas comme son cd d'install.

                            Alors j'ai remarqué 2 choses:

                            1) il y a un fichier .buildstamp dans le stage2.img, mais dans celui-ci je vois toujours comme nom de produit "Fedora Core 5" et pas le ptit nom que j'ai indiqué à buildinstall (c'est bien la peine)

                            2) Dans les logs Anaconda sur le CD, quand l'installeur me dit que le CD est pas le bon, j'ai ça:

                            Unable to load NLS charset utf8
                            ISO 9660 Extensions: RRIP_1991A
                            Unable to identify CD-ROM format.
                            VFS: Can't find an ext2 filesystem on dev loop0.

                            et ça, ça me fait peur. Peut etre qu'il sait juste pas gerer l'utf8. Mais le truc byzare c'est le VFS qui veut monter une stage2.img dans dev loop0 au format EXT2, alors que le stage2.img c'est bien connu, est en squashfs sous Fedora...

                            C'est pas encore gagné
                            • [^] # Re: Des url

                              Posté par  (site web personnel) . Évalué à 1.

                              bon ça y est ça marche enfin

                              j'ai perdu quelques jours juste parcequ'il me manquait netpbm pour le splashscreen du bootloader. Jme disais c'est pas grave, j'en veux pas, ba finalement sans ça le fameux buildinstall termine mal la creation du stage2.img ...

                              donc en gros pour customiser 1 ou 2 fichiers du cd pour l'install, il m'a fallu pas mal d'heures de recherche, la copie integrale de tous les CD fedora (c'est surtout cette partie là où j'y croyais pas), beaucoup d'iso, et pas mal de qemu

                              bravo

                              merci pour vos conseils, liens (et encouragements) ça m'a bien aidé :)
                              • [^] # Re: Des url

                                Posté par  . Évalué à 1.

                                Félicitations ;-)

                                Du coup si tu fais une doc j'ai bien envie d'essayer avec une Fedora. Je n'ai pas réussi à faire ce que je voulais avec Ubuntu...
                                Je cherche à faire tenir sur un seul cd une distrib avec juste une suite bureautique, des logiciels comme Tux Paint et GCompris, peut-être quelques jeux, et compléter avec des ebooks s'il reste de la place.

                                Est-ce que tu penses que c'est possible avec Fedora ? Est-ce que Anaconda peut faire tenir les packages essentiels sur un seul CD (localisation FR incluse, sans avoir à rapatrier la moitié des packages par le réseau pendant l'install...) ? Et sans avoir à faire de modification qui rende les mises à jour impossibles par les dépôts officiels ?
                                • [^] # Re: Des url

                                  Posté par  (site web personnel) . Évalué à 1.

                                  là ce que j'ai justement c'est une distrib fedora, où j'indique juste un profil au boot du cd et tout le reste de l'install se fait de maniere automatique

                                  J'ai bien une dizaine de profils (serveur web, dns, squid, nagios etc) le tout tenant sur 1 seul CD.

                                  Donc en mettant juste le strict minimum + gnome ça doit largement etre jouable
                                  • [^] # Re: Des url

                                    Posté par  . Évalué à 1.

                                    C'est juste ce qu'il me faut ! Dans ce cas quelles sont les url qui t'ont été utiles ? Quels sont les écueils à éviter ? Ce serait génial d'avoir une doc pas-à-pas, sous la forme d'un journal comme tu disais plus haut, mais je sais que ce n'est pas toujours évident de trouver le temps pour ça...
                                    Si tu as la même chose pour reconstruire une RHEL depuis les sources ça m'intéresse aussi.

                                    Je te remercie d'avance en tout cas.
                                    • [^] # Re: Des url

                                      Posté par  (site web personnel) . Évalué à 1.

                                      Jsuis en train justement d'ecrire une ptite doc la dessus je la posterais des que possible

                                      En gros je passe par 7 etapes:

                                      Au préalable il faut avoir une liste de packages qu'on veut installer afin de creer le comps.xml contenant les groupes et packages dont tu a besoin. Il faut creer certains groupes qui sont obligatoires (pkgorder de RH est pourri certains noms de groupe sont ecrit en dur dans le code) mais bon ils peuvent etre vide. Pour ça je passe par un fichier a plat, et ensuite un ptit script qui mouline ça en xml. Une fois le comps.xml bien définit on peut commencer

                                      1) Recuperer les packages et leurs dépendances, ici je passe par yum + un ptit plugin bidon fait maison pour qu'il se contente juste de télécharger tous les packages. Ya surement d'autres methodes

                                      2) Creer et placer les RPMS dans un repertoire ayant l'arborescence de notre futur CD (cad les RPMS dans ./Fedora/RPMS par ex, le comps.xml dans ./Fedora/base)

                                      3) Etape qui n'est à faire que de temps en temps, preparer la construction d'anaconda. Donc ici il faut avoir le contenu de tous les CD fedora sous la main, mais à ne pas melanger avec le contenu de notre futur CD

                                      4) Etape à faire au moins une fois. On peut enfin construire Anaconda. Avant on peut virer les fichiers packages de kernel en rpm pour mettre les plus récent (issus des updates fedora). Comme ça quand on va lancer le buildinstall c'est le nouveau noyau qui sera utilisé. Il faut aussi avoir installé certains packages (comme netpbm ;) )
                                      C'est avec le buildinstall qu'on peu renommer notre distrib (avec les option --release, product etc)
                                      Placer les fichiers générés (isolinux et les stage2.img) dans notre futur arbo de cd

                                      5) On genere le ks.cfg (ou les ks.cfg) pour automatiser notre install. On les copie ensuite dans le rep d'isolinux

                                      6) Etape optionnel, modifier les fichier msg de isolinux (histoire d'indiquer les different ks.cfg pour les differents profils)

                                      7) Creation de l'iso, un bon vieux mkisofs


                                      Voila en gros, mais si t'a des questions sur certains points n'hesite pas. Pour la construction de la RHEL AS4 c'etait un peu plus artisanal et on utilisait urpmi pour le calcul des dependances etc
                                      • [^] # Re: Des url

                                        Posté par  (site web personnel) . Évalué à 1.

                                        j'oubliais le fedora-logos a customiser. Il contient les logos/images qu'on voit un peu partout, dès l'install graphique jusqu'au bouton du menu gnome ;)
                                        • [^] # Re: Des url

                                          Posté par  . Évalué à 1.

                                          Merci pour ces infos. J'ai trouvé une autre url intéressante pour recréer les CDs d'installation de Fedora avec les packages mis à jours : http://www.fedora-france.org/modules/wiwimod/index.php?page=(...)
                                          Je vais commencer par ça, histoire de me familiariser un peu avec l'installation de fedora. Et puis ça me servira pour avoir une base à jour.
                                        • [^] # Re: Des url

                                          Posté par  . Évalué à 1.

                                          J'ai une autre question en fait. Comment est-ce que je peux déterminer les packages de base à garder sur mon cd d'install ? Un rpm -qa me donne les packages installés sur ma machine, mais ça ne sera pas suffisant sur une autre config... Comment as-tu fait pour savoir quels packages garder, et être sûr que tu pourras installer ton système n'importe où ?
                                          Peut-être que je pourrais m'aider des catégories visibles en mode "browse" dans le gestionnaire de packages, mais je n'ai pas encore trouvé la correspondance avec les packages qu'elles regroupent.
                                          • [^] # Re: Des url

                                            Posté par  (site web personnel) . Évalué à 1.

                                            et bien un petit yum groupinfo Base et yum groupinfo Core t'indiquera la liste des packages qui sont presque nécessaires et obligatoire pour avoir un système fonctionnel

                                            Sinon regarde un comps.xml de fedora, il est présent sur les cd dans Fedora/base
                                            Tu y retrouvera les groupes Base et Core (et les autres)

                                            Je suis parti sur ça, en nettoyant un peu. Et après il faut pas s'inquiéter, comme j'initialise une base rpm vide, yum calculera toutes les dépendances nécessaires, donc même si t'oublie un rpm important yum risque de se débrouiller. Le but dans le comps.xml n'est pas de lister TOUS les packages.
                                            • [^] # Re: Des url

                                              Posté par  . Évalué à 1.

                                              Je crois que j'ai eu la main un peu lourde en faisant le ménage parmi les packages, du coup j'obtiens ces erreurs quand je veux utiliser pkgorder :

                                              Traceback (most recent call last):
                                              File "/usr/lib/anaconda-runtime/pkgorder", line 161, in ?
                                              addGroups(ds, ["X Window System", "Dialup Networking Support",
                                              File "/usr/lib/anaconda-runtime/pkgorder", line 96, in addGroups
                                              map(ds.selectGroup, groupLst)
                                              File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 1368,
                                              in selectGroup
                                              raise Errors.GroupsError, "No Group named %s exists" % grpid
                                              yum.Errors.GroupsError: No Group named Editors exists

                                              J'ai supprimé plusieurs groupes de comps.xml, mais soit il ne fallait pas, soit j'aurais dû le faire ailleurs aussi... Sais-tu ce que je dois faire pour corriger ça ?
                                              J'espère que mes questions ne te paraissent pas trop "débiles", mais je connais à peine Fedora (j'avais juste testé la fc3 une fois) et je suis un peu perdu...
                                              Je pourrais t'aider sur ta doc au fur et à mesure que j'avance si tu veux. Bon, c'est pas le plus difficile ce que j'ai réussi à faire, mais c'est déjà ça, et sinon je peux relire, corriger.
                                              • [^] # Re: Des url

                                                Posté par  (site web personnel) . Évalué à 1.

                                                pkgorder est mal codé concernant la verification de certains groupes, le nom des groupes est carrement en dur dans pkgorder. Donc le plus simple est de recreer ces groupes (t'as la liste qq part dans pkgorder) mais vide.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.