Chroot sur un système corompu

Bonjour,

Suite à un petit problème technique, mon système refuse totalement de démarrer… GRUB se lance, mais tout de suite après, il marque approximativement l’erreur suivante :

run-init : /sbin/init : No such file or directory
[2,76576 ] Kernel panic – not syncing : attempted to kill init !

En fait, j’étais entrain de lire un disque dur externe lorsque le drame est arrive : avec la commande « cd », je me suis mis dans le dossier de ce disque dur afin d’enclencher la commande « chmod -R a=rwx * » pour rendre tout les fichiers du disque dur externe lisibles et supprimables par tous… Mais, au lieu de s’en prendre uniquement aux fichiers du répertoire courant, comme je le pensais, je croit bien qu’il a fait le tour de tout les fichier du système ! (J’aurais probablement du mettre « ./* » au lieu de « * »…) Bref, le système à commencé à ne plus fonctionner : impossible de lancer les programmes… Du coup, j’ai essayé de redémarrer, mais je me suis retrouvé dans la console « tty1 » et il ne redémarrait pas, alors j’ai tenté de m’identifier en root, mais le programme (getty?) qui s’occupe de ça ne fonctionnait pas non plus ! Bref, j’ai fait un reset barbare… Et depuis, j’ai ce message d’erreur…

Donc j’ai passer 3 heures à chercher à arranger le problème en lançant des shells via les cd d’install d’Ubuntu et de Debian. J’ai fait des « fsck » sur toute les partitions linux, sans résultat. J’ai essayé de faire des chmod sur le /sbin/init, ça n’a rien changer (peut être pas les bons droits?) et surtout, j’ai essayer un chroot sur la partitions, sans succès, mais je m’y prends probablement mal…

À se stade, je me suis fait à l’idée que me système est probablement foutu et que je suis bon pour tout réinstaller. Mais avant ça, j’aimerais au moins pouvoir récupérer la liste des paquets installés sur le système (avec « dpkg --get-selections »)

Rectification :

J’ai fait un « ls -lR » sur le dossier racine du système corrompu et j’ai comparé le résultat à la celui d’un système normal : il ne semble pas y avoir eu de modification des permissions d’accès des fichiers de mes dossiers racine et autres… Conclusion : Je ne sais pas d’où vient le problème (ni comment le résoudre)

Il te manque le fichier cité qui provient du paquet sysvinit.
Tu peux retrouver le paquet dans /var/cache/apt/archives si ton gestionnaire de paquet ne nettoie pas tout automatiquement et extraire le fichier adéquat à la bonne place avec les droits -rwxr-xr-x root root.

[quote=“eol”]Il te manque le fichier cité qui provient du paquet sysvinit.
[…]avec les droits -rwxr-xr-x root root.[/quote]

La première chose que j’ai fait, lorsque j’ai eu le problème, c’est de vérifier que le fichier en question était toujours à sa place, et, effectivement, il y est toujours. Aujourd’hui, je peu même te dire qu’il a bien les permissions qu’il faut, ainsi que le bon propriétaire et le bon groupe. En outre, (toujours d’après ls :slight_smile: le fichier n’a pas été modifié depuis le premier Janvier, hors j’ai déjà redémarré plusieurs fois ma machine depuis cette date et sans problème, donc je doute que le problème viennent de là…

En revanche, j’ai fait quelques recherches à l’aide de « ls -lR », et j’ai regardé quels étaient les derniers fichiers modifiés… parmi eux : un var/log/syslog à 16h31 et le dossier /lib/init/ à 16h24 !

Le syslog m’a permis de vérifier l’heure approximative de mon reset : 17h31 (apparement l’heure prise par « ls » est en décalage d’une heure). Voilà ce que le syslog dit à 17h24 (heure de modification de mon dossier /lib/init/ et probablement l’heure où j’ai commencé à rencontrer des problèmes pour lancer des programmes) :

[code]Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/45-libmtp8.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/55-dm.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/60-fuse-utils.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/60-libgphoto2-2.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/60-libsane.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/60-persistent-storage-dm.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/61-gnome-bluetooth-rfkill.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/77-nm-olpc-mesh.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/80-udisks.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/85-hwclock.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/85-usbmuxd.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/95-upower-battery-recall-dell.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/95-upower-battery-recall-fujitsu.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/95-upower-battery-recall-gateway.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/95-upower-battery-recall-ibm.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/95-upower-battery-recall-lenovo.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/95-upower-battery-recall-toshiba.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/95-upower-csr.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/95-upower-hid.rules’

Feb 14 17:24:29 MAYHEM udevd[489]: can not read ‘/lib/udev/rules.d/95-upower-wup.rules’

[/code]

Puis quand j’ai essayé de redémarrer normalement (via le bouton de gnome) :

[code]Feb 14 17:29:03 MAYHEM console-kit-daemon[2387]: WARNING: Unable to spawn /usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck: Failed to execute child process “/usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck” (No such file or directory)

Feb 14 17:29:35 MAYHEM x-session-manager[2465]: WARNING: Unable to load desktop file ‘/usr/lib/openoffice/program/soffice.desktop’: Aucun fichier ou dossier de ce type

Feb 14 17:29:35 MAYHEM x-session-manager[2465]: WARNING: Unable to find desktop file ‘soffice.desktop’: Impossible de trouver un fichier de clés valide dans les répertoires de recherche

Feb 14 17:29:35 MAYHEM x-session-manager[2465]: WARNING: Unable to find desktop file ‘gnome-/usr/lib/openoffice/program/soffice.desktop’: Impossible de trouver un fichier de clés valide dans les répertoires de recherche

Feb 14 17:29:46 MAYHEM console-kit-daemon[2387]: WARNING: Unable to spawn /usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck: Failed to execute child process “/usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck” (No such file or directory)

Feb 14 17:29:54 MAYHEM console-kit-daemon[2387]: WARNING: Unable to stop system: Failed to execute child process “/usr/lib/ConsoleKit/scripts/ck-system-stop” (No such file or directory)

Feb 14 17:29:54 MAYHEM x-session-manager[2465]: WARNING: Unable to stop system: Unable to stop system: Failed to execute child process “/usr/lib/ConsoleKit/scripts/ck-system-stop” (No such file or directory)

Feb 14 17:29:54 MAYHEM x-session-manager[2465]: WARNING: Failed to execute ‘/usr/bin/gconftool-2 --shutdown’ on logout: L’exécution du processus fils « /usr/bin/gconftool-2 » a échoué (Aucun fichier ou dossier de ce type)#012

Feb 14 17:29:54 MAYHEM console-kit-daemon[2387]: WARNING: Unable to spawn /usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck: Failed to execute child process “/usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck” (No such file or directory)

Feb 14 17:29:54 MAYHEM console-kit-daemon[2387]: WARNING: Unable to spawn /usr/lib/ConsoleKit/run-seat.d/nvidia_helper.ck: Failed to execute child process “/usr/lib/ConsoleKit/run-seat.d/nvidia_helper.ck” (No such file or directory)

Feb 14 17:29:54 MAYHEM console-kit-daemon[2387]: WARNING: Unable to spawn /usr/lib/ConsoleKit/run-seat.d/udev-acl.ck: Failed to execute child process “/usr/lib/ConsoleKit/run-seat.d/udev-acl.ck” (No such file or directory)

Feb 14 17:29:54 MAYHEM gdm[11964]: ERROR: gdm_slave_exec_script : l’exécution a échoué : /etc/gdm/PostSession/Default#012aborting…

Feb 14 17:30:00 MAYHEM kernel: [1035568.568935] [fglrx] IRQ 64 Disabled

Feb 14 17:30:03 MAYHEM gdm[11969]: WARNING: gdm_server_spawn : serveur X non trouvé : /usr/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7

Feb 14 17:30:06 MAYHEM gdm[11972]: WARNING: gdm_server_spawn : serveur X non trouvé : /usr/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7

Feb 14 17:30:09 MAYHEM gdm[11975]: WARNING: gdm_server_spawn : serveur X non trouvé : /usr/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7

Feb 14 17:30:09 MAYHEM gdm[1586]: WARNING: Plusieurs échecs de démarrage du serveur X en peu de temps ; l’affichage :0 a été désactivé

Feb 14 17:30:23 MAYHEM acpid: client 1616[0:0] has disconnected
[/code]

Puis quand j’ai essayé de me connecter en tant que root à la tty1 et tty2:

[code]Feb 14 17:30:34 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:30:34 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:30:34 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:30:34 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:30:34 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:30:34 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:30:34 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:30:34 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:30:34 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:30:34 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:30:34 MAYHEM init: Id “1” respawning too fast: disabled for 5 minutes

Feb 14 17:31:06 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:31:06 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:31:06 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:31:06 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:31:06 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:31:06 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:31:06 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:31:06 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:31:06 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:31:06 MAYHEM init: cannot execute “/sbin/getty”

Feb 14 17:31:06 MAYHEM init: Id “5” respawning too fast: disabled for 5 minutes

Feb 14 17:31:06 MAYHEM acpid: execl(): No such file or directory

Feb 14 17:31:08 MAYHEM acpid: execl(): No such file or directory
[/code]

Sinon, pour ce qui est du dossier /lib/init, je pense que c’est de lui que vient véritablement tout le problème : ces droits on été modifier de drwxr-xr-x vers drwxrwxrwx, et le dossier ne contient plus qu’un seul dossier « rw » et rien d’autre.
Par comparaison, sur mon portable (même système sauf qu’il marche !) le dossier /lib/init a aussi été modifié hier mais contient plus de fichiers. Je suppose que les fichiers correspondants doivent aussi pouvoir être récupérés à partir du paquet sysvinit ?

J’ai du faire un apt-get clean depuis car pas de trace de ce fichier dans le cache d’apt (il y a pourtant des archives vieilles de plus d’un mois). En revanche, je suppose que je peu le télécharger là : packages.debian.org/squeeze/sysvinit . Par contre je suis censé en extraire les fichiers comment ?

N’existe-t-il pas des logiciels sous Linux capable de récupérer des fichiers supprimés ?

Bonjour à tous,

J’ai eu aujourd’hui, suite à une safe-upgrade en Debian SID, le même problème :

  • on ne sait plus rien exécuter
  • au reboot, le plaisant petit message ‘/sbin/init not found’

J’ai fait un live usb stick, et après avoir monté mon ancien hdd, j’ai essayé de chrooter, et voici le résultat :

‘/bin/bash command not found’

alors que le fichier existe bel et bien…

Selon les posts plus bas, libc a supprimé /lib64 et /usr/lib64. La chose a faire est de recréer les liens symboliques à partir d’un live cd/usb (en supposant que vous avez monté votre ancien root sur /mnt/debian) :

[code]# cd /mnt/debian

ln -s lib lib64

cd usr

ln -s lib lib64[/code]

après quoi, vous devriez pouvoir faire un chroot correctement… et votre système fonctionnera au reboot :slightly_smiling:

J’espère que ça marchera pour vous…

sources :

http://forum.nginx.org/read.php?31,197543,197553
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626450