Forum Linux.debian/ubuntu ma Debian est morte : VIVE MA DEBIAN

Posté par  (site web personnel) .
Étiquettes :
0
17
nov.
2004
Je voudrais vous temoigner d une aventure assez malheureuse qui m est arrive, et qui aurait pu tres mal se finire. Mais ... j ai eu de la chance.

Je suis utisateur convaincu de Debian SID depuis 4 ans. La machine dont je vais vous parler est mon ordinateur portable que j ai installe en janvier 2003.

Suite a un bug mineur d une application que je ne nommerai pas, j ai decide de reinstaller l aplication en la telechargeant depuis le site officiel. Mais ce que ja i pu telecharger n etait qu un installeur ( en fait l installeur du binaire). Apres une installation en user, j etais satisfait de la nouvelle version. J ai donc repris le processus d installation en root. J ai alors precise le chemin d installation : /usr/bin . La, l installeur me signale que le dossier destination contient deja le programme ( la version buguee), et me propose de vider le dossier avant de continuer l installation. La j ai eu un doute sur la signification du terme 'vider le dossier', et je me suis dit : bon, y doit y avoir une erreur de syntaxe, ils ont du vouloire dire : suprimer du dossier le programme existant. J ai valide la chose. Quand j ai vu que l effacement a pris plus de 1s, la j ai doute. La seconde qui as suivi, j ai bascule dans une autre fenetre :

ls /usr/bin
-> vide.

Donc la j avais bes et bien perdu /usr/bin/*

Bilan : je ne peux plus lancer aucune application; tous mes services vont tomber les uns apres les autres.

faites un ls /usr/bin .. et dites vous que tout ce qui apparait chez vous, je ne l ai plus : Eterm, xterm, kill, mozilla, *irc*, *ftp*, apt, dpkg ( les deux BASES pour proceder aux installes sous Debian ) ... bref ... plus rien.

Ca encore, c est pas grave. Sauf que je suis la passerelle du reseau, que je n ai pas d autres UNIX dans le reseau; donc, si je redemarre, Linux ne rebootera pas. Par contre, si j essaye de me depatouiller avec ce qui est encore vivant ( 6 ou 7 terms, gaim, xmms, thunderbird et c est tout ), j ai une chance d y arriver.

Vu que mon seul CD en stoque est un CD de net inst, que je suis en ADSL, et que le support des ADSL chez Sarge n est pas encore implemente, le CD me sert a rien. Si je tente un reboot sur le CD depuis un autre reseau pour proceder a l installation reseau, j en ai pour 24h de dl, 2j de conf, et une semaine de customisation.

Donc tant que la machine roulle, je me dit que tout n est pas perdu.

***

Je fais le bilan : j ai un CD de netints inutile, gaim, un client mail, xmms ( la musique adouci les moeurs ), et 5 Xterm.

Ben y a pas 36 solutions. Depuis la 0.83 gaim supporte le dcc. La procedure est simple: pour installer quoi que ce soit, et restaurer ma machine, j ai besoin de apt et dpkg. J ai leurs version pakage sur CD, mais pas leurversion binaire pour les installer. Donc je demande sur IRC qu on m envoi la version binaire de dpkg ... et la Oh miracle ... chmod est dans /bin ... donc je peux le rendre executable ... je demande deux autres binaires sans importance dont dpkg depend ... puis j attaque les choses propres: je prend quelques pakages sur le CD ( dpkg, apt, wget, perl, findutils et surement d autres que j oublie ) ... je les downgrade en bon et due forme ... question d avoir au moins des programmes qui marchent. Muni de cette "base", je demande qu on me donne les URL de lynx ... et la je deviens autonome. Avec lynx, je peux enfin browser tout seul debian.org, recuperer deux trois bricoles ( dont le tres important gawk ) ... puis je peux faire mon premier update, puis un distupgrade ( pour que apt et dpkg repassent de la version Sarge ( du CD) a la SID ( homogene a mon system) )

Je passe sur les deux trois bugs de locales et Dialog bien utiles a dpkg ( mais pas essentiels ).

Je me muni de quelques extras ( mplayer, xmms, gcc, make, vim, less ... )

et je peux enfin attaquer la phase longue: d un cote je reinstalle les programmes installes depuis les sources ( comme xorg qui devient de plus en plus instable ), et d un autre, on je demande comment lister tous les pakages qui 'devraient etre installes', et forcer la reinstallation. On me propose une commande magique :

COLUMNS=200 dpkg -l |grep ii |awk '{print $2}' |xargs apt-get --yes --reinstall install

Evidement, ca marche pas du premier coup ( le mec avait oublie --yes ), j ai des pakages qui ne sont plus disponibles sur les servers, des reinstallations impossibles a cause de dependances non compatibles ... bref, je degage 4 paquets qui genent, et la ... je pars pour 1h20 de dl.

Ensuite, evidement apt trouve des tas d erreursfatales ... d ou :

cd /var/cache/apt/archives/
for i in `ls` ; do dpkg -i $i || echo $i >> /root/dpkg-bug-list ; done

bref ... apres avoir retelecharge tous les pakages, et vu que apt n arrive pas a les installer, il faut y aller brutte force :

cd /var/cache/apt/archives
for i in `ls` ; do dpkg -i $i || echo $i >> /root/dpkg-bug-list ; done
# retirer le lock et le partial de la liste generee ...
for i in `cat /root/dpkg-bug-list` ; do dpkg -i $i || echo $i >> /root/dpkg-bug-list2 ; done
for i in `cat /root/dpkg-bug-list2` ; do dpkg -i $i || echo $i >> /root/dpkg-bug-list3 ; done
# ... jusqu a ce que le dpkg ne genere plus d erreur.

en yait ... le 5e log genere avait plus que 5 lignes ... un
apt-get -f install
a lesolu les pb, et pour ceux qui restaient ... c etait des pakages sans importance ->
apt-get remove <les pakages>

Resultat, j ai restaure ma machine, tout remarche a peu pres(surtout xorg qui m as saoule), je n ai rien eu a reconfigurer, pas de reboot,et les questions que dpkg me pose a la reinstallation, de toute facon il me les aurait pose si j avais reformatte. L un dans l autre, j ai perdu une journee, mais si j avais tout reformatte, j aurais perdu 4 a 10 jours "pour retrouver ma machine a l identique".

Un autre truc bien utile: par exemple j ai besoin de find. Le pakage le contenant a ete installe, mais le binaire a disparu. Pour retrouver vite fait quoi faire :

dpkg -S find | grep bin
apt-get --reinstall install findutils

***

Les points critiques : pendant la catastrophe, gaim etait deja lance, et le binaire de chmod ne reside pas dans /usr/bin. Ce fut ma chance; sans ca je crois bien que je m en sortais pas.

Bon ... la les Windoziens vont me dire que sous windows, tu peut pas effacer un fichier ouvert ne serait ce qu en lecture. Mais je repond que si tu perd tout ou partie de C:\Program Files :
- il n existe aucune base qui liste les softs qui y etaient installes
- les aplis qui ne tournainte pas seront effacees
- le fait de ne pas pouvoir suprimer un fichier .exe en cours d utilisation fait que le concepte d update de service en live ne peut pas exister : si on ne peut pas remplacer un fichier ouvert, pour mettre a jour un demon, il faut tuer le demon, mettre a jour, puis relancer. Je qui fait dans le meilleur des cas 10s de coupure de service. Et meme 10s dans certains cas c est inacceptable. Sous Linux, tu met a jour, tu lance un kill -1 pour faire reloader la conf, et tu relance a chaud le service sans interruption de service.

Si je prends le cas Gentoo ou Slakware ... ce n est pas dpkg qu il me fallait, mais toute la suite de compilation gcc*, *make*, *conf* ...

Conclusion : je suis heureux d utiliser Linux, et meme dans les cas extremes, le system sait rester stable, et donne TOUJOURS des portes de secours.

Deja separer /bin /sbin /usr/bin et /usr/sbin ... ca permet dans les pires cas de limiter la casse.

***

Si le system avait reboote pour raison inconnue, je pense que j aurais essaye de boot le CD, copier le binaire de dpkg du CD vers le disque, rebooter le dur ( ce qui est possible tant que /bin et /sbin sont intactes ) ... et me depatouiller de la meme maniere.

Bref ... ne formattez pas votre Linux a la vas vite; reflechissez a deux fois. Je suis reste calme, tout est rentre assez vite dans l ordre.


***

URL originale du message:
http://www.doublehp.org/temoignage_de_restauration_d_un_linux_plant(...)
  • # merci les integristes

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

    et apres 36h de lutance ... je fini avec un petit
    apt-get dist-upgrade
    et la sed refuse de se mettre a jour .... je retourne sur mon chan prefere ( #debian ) ... et ils me repondent en coeur :

    Sed bug, fixed package will be uploaded in approx. 24 h.
    READ THE BTS. B.T.S.
    you're a dick for using sid and being stupid.
    your answer to doublehp about the sed-bug...
    ok, so you're a moron for using sid, feel better now?
    (01:31:03) ***ravenbird hereby declares doublehp a troll
    (01:31:09) Guerin: no, doublehp is a moron for deleting /usr/bin
    (01:31:09) Phated: doublehp: And of course -not- installing apt-listbugs.
    Again, fool be you for not installing apt-listbugs while using sid.

    alors que apres avoir reinstalle plusde 900 pakages, execute plus de 50 dpkg -S et apt-get --reinstall ... j ai suppose que c etait ma machine qui avit un pb ...

    et non , je me fait instulter ...

    comme si j avais fait expres d effacer /usr/bin ...
    • [^] # Re: merci les integristes

      Posté par  . Évalué à 2.

      Sid, c'est pas fait pour les débutants, c'est indiqué partout sur le site Debian.

      Tu n'es peut-être pas débutant, mais mets-toi à leur place aussi. Un mec arrive, il utilise sid, il a effacé /usr/bin et il n'arrive pas à installer sed. Ca veut dire qu'en plus, il ne connait ni le DTS, ni apt-listbugs, donc qu'il a même pas fait l'effort de lire les docs. Ca fait franchement pas sérieux, logique que tu te fasses flamer... Et encore, je les trouve sympa, ils te disent quand même que c'est un problème avec sed, ils auraient pu te laisser mariner s'ils avaient voulu...

      En même temps c'est pas de bol, tu t'étais bien débrouillé jusque-là, je comprends que ça te désole, mais fallait pas s'attendre à autre chose non plus. Comme ça t'auras appris ce qu'étaient apt-listbugs et le DTS au moins... ;)
    • [^] # Re: merci les integristes

      Posté par  . Évalué à 4.

      Pour les logiciels installés par tes soins (compilés et tout) il y a /usr/local. En ordonnant ton PATH correctement, tu n'as pas de problème à utiliser la version /usr/local/bin d'un prog qui existe dans /usr/bin/

      Pour savoir ce que tu as comme logiciels installés, il y a aussi dpkg --get-selections (en cronjob par ex) puis dpkg --set-selections && apt-get upgrade pour réinstaller après tes pertes.
  • # Comme dit le proverbe...

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

    Y'a deux type de Debian, celles qui ont fait rm -rf * et celles qui vont le faire :p
    • [^] # A propos d'effacement

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

      Un petit article divertissant, pour ceux qui ne l'avaient pas déjà lu:
      http://hohle.net/scrap_post.php?post=23&m=full(...)
      • [^] # Re: A propos d'effacement

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

        After about a minute, Linux had finished removing files. Several messages were printed for the virtual files and directories that could not be removed. Windows, however, took quite a while (probably close to 20 minutes) to delete all the files on the drive, all the while printing a status message for every file it encountered. As it neared the end and had removed large number of system files, I began to get dialog boxes which popped up informing me, not that files were missing, but that files had been replaced with unrecognized versions. I find this to be a very misleading message considering files had not been replaced, but removed from the system entirely. At least 20 of these dialog boxes appeared, some noting which file was missing, others not, like the one pictured.

        voila deux points que je trouve critiques :

        - pour effacer le meme volume de fichier, l un prend beaucoup plus de temps que l autre -> soit le FS est pourri , soit l operation de traitement est hyper mal codee. Dans les deux cas je conclus que l OS lent est bon a jeter. ( mis a part le fait qu effacer rapidement des fichiers system n est pas bon ... mais qui sur terre effacerait des fichiers systems ? Moi ? jamais ^^ )

        - sous windows ... le message d erreur, en plus de n epas etre tres clair, est totallement errone, et ne represente pas la realite technique: cet OS est donc incompetant a diagnostiquer un probleme 'basique'.

        et pour finir :

        While the important ones required for shutting down the system were obviously locked this made the shutdown seem much more graceful (despite the immenent death I knew would come). Linux, however, lost in style points as it simply gave up, spewing a pink mess across the screen. Normally I would be annoyed with file locking, as it makes it difficult to test a program and build a new version to the same file

        donc en gros .. pour mettre a jour un system en production, il faut le rebooter ( ou du moins tuer tous les services qui vont etre mis a jour pendant TOUTE la duree de la mise a jour )

        Pour mes besoins, je confirme que Linux est le system qui me plait le plus.
        • [^] # Re: A propos d'effacement

          Posté par  . Évalué à 3.

          C'est curieux, normalement sous Windows on ne peut pas effacer les fichiers systèmes.

          J'avais voulu supprimer le tout à fait crucial fichier système du jeu de flipper de W2K et ce coquinou repoussait tout seul quelques secondes après :(

          BeOS le faisait il y a 20 ans !

          • [^] # Re: A propos d'effacement

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

            ah oui j ai eu ca avec des troyens ...

            en fait, si c est un fichier presque system, mais important, il est copie dons un dossier backup, et restaure dans la seconde qui suit son effacement. Du coup, tu peut effacer des fichier qui ne sont pas executes, mais si ils ont ete marques 'system' ... ils seront restaures. C est une feature des NT5.*
  • # "rm -rf /usr" should be ok :)

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

    le binaire de chmod ne reside pas dans /usr/bin

    Ça n'a rien d'un hasard, /usr/bin n'est *pas* une partie vitale du système de fichier, une machine doit être fonctionnelle sans (et en particulier bootable). La meilleure raison se trouve dans le cas de systèmes pour lesquels /usr est une partition exportée en nfs par un serveur: il faut bien pouvoir démarrer en cas de panne réseau.
    Quand je fais un ls sur /bin et /sbin, j'ai a priori tous les outils de base pour administrer un système unix.

    faites un ls /usr/bin .. et dites vous que tout ce qui apparait chez vous, je ne l ai plus : Eterm, xterm, kill, mozilla, *irc*, *ftp*, apt, dpkg ( les deux BASES pour proceder aux installes sous Debian ) ... bref ... plus rien.

    Autant pour Eterm, xterm, etc. ça ne me pose pas de souci, autant pour le dpkg je suis surpris. D'accord il y a bien tar, gunzip, cpio et tout ça, mais bon, avoir l'outil de base d'installation de package de sa distrib dans /bin est à mon sens beaucoup plus raisonnable. Ici, sur ma Mandrake, rpm est dans /bin, et urpmi dans /usr/sbin (normal, c'est juste un front-end)... je trouve ça plus confortable quand même. Pour reprendre le scénario du /usr distant, ça sous-entend que sous debian tu ne peux pas installer un package que tu as en local "normalement" en cas de panne réseau.

    Pour plus d'info sur la hiérarchie unix: http://www.pathname.com/fhs/(...)
    Une lecture très saine, et qui montre bien la place de chaque chose.

    P.S.: la prochaine fois que tu veux t'amuser, efface /bin ou /lib, ça c'est du sport ;-)
    • [^] # Re: "rm -rf /usr" should be ok :)

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

      autant pour le dpkg je suis surpris. [...] ça sous-entend que sous debian tu ne peux pas installer un package que tu as en local "normalement" en cas de panne réseau.

      d ou mon

      le binaire de chmod ne reside pas dans /usr/bin

      car ce qui m as sauve, c est que mon client IRC tournait, et que je pouvais chomedr dpkg . Mais bon ... dpkg aurait ete hors de /usr ... je n aurais sauve que 10 min sur 36h. C est negligeable, mais c est une question de principe : dpkg aurait ete mieux dans /sbin.

      P.S.: la prochaine fois que tu veux t'amuser, efface /bin ou /lib, ça c'est du sport ;-)

      une fois j ai perdu la libc ... donc je sais ce que ca fait ...
      enfin degats limites ... je l avais pas effacee, mais juste renomee ... un export et c etait regle.

      Mais quand je vois qu une mise a jour de distribe est capable de substituer la libc ou init sans jamais planter ... je suis quand meme blase. Je n ose pas imaginer ce que devient une machine ou une mise a jour de libc plante ...

Suivre le flux des commentaires

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