# [kern panic] error in ld-2.13.so +chroot impossible![résolu]

## gglaboussole

Bonsoir à tous,

Me voilà dans la me...   :Sad: 

le 06 fevrier, impossible d'eteindre ma gentoo... un message "respawn... " à l'écran et obligé d'éteindre le pc à l'arrache...

le 7 fevrier, il démarre plus, alors je suspecte l'extinction brutale de la veille...

Un petit tour sur systemrescuecd et je contrôle le système de fichier (ext4) pas de soucis.

J'en profite pour désactiver le splashscreen  et là, la nouvelle tentative de démarrage me dévoile un magnifique kernel panic :

init[1] segfault at xxxxxxx error 7 in ld-2.13.so - (oh la belle glibc mise à jour hier !) -kernel panic not syncing init not tainted 2.6.37

J'essaie de booter sur mon noyau de secours (2.6.34-r12) pareil...

Je tente alors plusieurs chroot (et c'est une manip que j'ai l'habitude de faire pour cross compiler pour mon portable, donc je pense pas faire une mauvaise manip dans les commandes...)

depuis plusieurs  live cd 64 bits (systemresuecd notament avec bien sûr les noyau ->recue64 et altker64 )

et toujours la même erreur :

segfault (encore un !)

En désespoir de cause j'efface le lien symbolique dans le runlevel /boot d'alsasound  (autre paquet sensible mis à jour la veille)  car ne pouvant pas chrooter je ne pouvais pas lancer rc-update, et je tente un nouveau  redémarrage, en vain

Idem avec softlevel=single

En revanche memtest sur la ram est ok et windows démarre sans problème (de même que tous les live cd testés pour chrooter...)

Voici la liste exhaustive de mes mises à jour depuis le "drame":

glibc-2.13

coreutils-8.10

alsa-lib-1.024

alsa-header-1.024

alsa-plugin-1.024

alsa-utils-1.024.2

openssh-5.8-p1

poppler-0.16.2

Je suspecte fortement la glibc d'être en cause ou alsa-lib.... Qu'en pensez vous ?

Comment régler mon problème de chroot impossible ? -> Est que la glibc peut occasioner un segfault sur un chroot ? 

(si oui alors peut être me suffit il de trouver une glibc compilée et compatible avec mon arch et de copier à la main ses composantes ?)

Merci d'avance pour votre aide

PS: ça la fou mal de fêter ma i33tude sur un kernel panic...  :Embarassed: 

----------

## guilc

Un petit tour sur le bugtracker peut-être ?

https://bugs.gentoo.org/show_bug.cgi?id=353814

Il faut déprelinker ton systeme

La marche à suivre depuis un livecd est indiquée au commentaire 3 : https://bugs.gentoo.org/show_bug.cgi?id=353814#c3

----------

## ghoti

Ouaip, me suis fait piéger hier aussi : méchant kernel panic au boot !  :Embarassed: 

J'avais complètement oublié cette histoire de prelink et je m'aperçois que finalement le gain n'est pas très flagrant.

En tout cas, ça m'a permis de vérifier l'utilité d'un busybox compilé en "static" !  :Wink: 

----------

## guilc

Oui, non seulement ce n'est pas flagrant, mais :

- cela apporte plein de problèmes en trafiquant de manière "non-standard" les binaires ELF, ne pas oublier que c'est un hack

- au niveau sécurité c'est mauvais car cela rend l'adresse des libs prédictible, donc casse le boulot d'ASLR

- cela ne marche pas avec les binaires compilés en PIE (c'est le cas obligatoirement en hardened par exemple, et qui va se généraliser).

- depuis le passage du linker de la libc des hash sysv aux hash gnu, le gain est encore plus faible, les hash gnu étant bien mieux optimisés. (-Wl,--hash-style=gnu)

Et de nos jours, les machines sont suffisamment puissantes pour que cela ne se voie pas...

----------

## gglaboussole

Super guilc, merci beaucoup !   :Very Happy: 

Je test ça dès ce soir...

Mais je ne pourrais faire la manip que si j'arrive à "chrooter" pour "deprelinker", a priori, sur le lien que tu m'as filé le "deprelink" se fait hors chroot... 

c'est donc bien cela qui m'empêche également de chrooter ?

Un petit warn dans les les log n'aurait pas été de trop...

----------

## ghoti

 *gglaboussole wrote:*   

> Mais je ne pourrais faire la manip que si j'arrive à "chrooter" pour "deprelinker", a priori, sur le lien que tu m'as filé le "deprelink" se fait hors chroot... 

 

Voir ce que je disais plus haut ==> utilité d'un busybox "static" !  :Wink: 

En fait, le chroot foire parce que le shell (sh, bash, ...) est prélinké aussi. Résultat : impossible d'avoir une console.

Perso, je m'en suis sorti en copiant le busybox du CD d'install vers /mnt/gentoo/bin et en l'utilisant à la place de sh dans la commande chroot.

Depuis lors, j'ai recompilé busybox en "static" pour au moins ne plus rester coincé par des libs récalcitrantes !  :Wink: 

 *Quote:*   

> Un petit warn dans les les log n'aurait pas été de trop...

 

Les mainteneurs ont provisoirement rectifié le tir : si prelink est détecté, emerge refuse maintenant de mettre la glibc à jour vers 2.13

----------

## gglaboussole

Merci ghoti, ça va m'être utile !

Par contre peux tu préciser :

 *ghoti wrote:*   

> 
> 
> Perso, je m'en suis sorti en copiant le busybox du CD d'install vers /mnt/gentoo/bin et en l'utilisant à la place de sh dans la commande chroot.
> 
> 

 

chroot /mnt/gentoo /bin/busybox ??? au lieu de /bin/bash ?

(peux pas tester d'où je suis en ce moment)

----------

## guilc

 *gglaboussole wrote:*   

> Mais je ne pourrais faire la manip que si j'arrive à "chrooter" pour "deprelinker", a priori, sur le lien que tu m'as filé le "deprelink" se fait hors chroot... 
> 
> c'est donc bien cela qui m'empêche également de chrooter ?

 

Tu n'arrives pas à chrooter parceque bash est prélinké. Relis bien la manip : il commence par deprelinker bash à l'exterieur du chroot. Ensuite, le chroot marche, tu chrootes, et tu deprelinke tout le système depuis l'intérieur du chroot

Maintenant, si prelink est installé,  ça aborte l'emerge de la glibc, ce n'était pas le cas il y a quelques jours

----------

## gglaboussole

Merci à vous deux, j'ai récupéré ma gentoo   :Very Happy: 

----------

