# [GLIBC] Effacée par erreur (Résolu)

## lefoid

Bonjour à tous

Je viens d'effacer par erreur la Glibc de mon système (oui, je sais, c'est pas bien).

Je vous passe sur le fait que plus rien ne fonctionne    :Confused: 

Ma question est simple : je voudrais la réinstaller en utilisant un environnement

chroot à partir du livecd Gentoo.

J'ai fait :

```
mount /dev/sdb3 /mnt/gentoo

mount /dev/sdb1 /mnt/gentoo/boot

swapon /dev/sdb2

mount -t proc none /mnt/gentoo/proc
```

Mais quand je fais :

```
chroot /mnt/gentoo /bin/bash
```

J'ai un message d'erreur me disant que /bin/bash n'existe pas ...

 *Quote:*   

> chroot : cannot run command '/bin/bash': No such file or directory

 

Ce que je souhaite faire, cest un :

```
emerge glibc
```

en chroot pour remettre tout dans l'ordre.

Si quelqu'un peut m'aider, ce sera avec plaisir; par ailleurs, si ce n'est pas la bonne

méthode, je suis preneur d'une autre explication.

J'ai essayé de trouver la solution sur le net, mais les pages wiki concernant Gentoo

sont down en ce moment.

----------

## netfab

Salut,

D'après info chroot :

 *Quote:*   

> 
> 
>  If you want to use a dynamically linked executable, say `bash', then
> 
> first run `ldd bash' to see what shared objects it needs.  Then, in
> ...

 

Il faut vérifier que chaque lib dont bash a besoin est copiée sur le nouveau root ( # ldd /bin/bash ).

clic

----------

## lefoid

Salut netfab

Voici ce que me donne :

```
(chroot)livecd ~ # ldd /bin/bash

   linux-vdso.so.1 =>  (0x00007fffb85fe000)

   libncurses.so.5 => /lib/libncurses.so.5 (0x00002b06f28ab000)

   libdl.so.2 => /lib/libdl.so.2 (0x00002b06f2b08000)

   libc.so.6 => /lib/libc.so.6 (0x00002b06f2d0c000)

   /lib64/ld-linux-x86-64.so.2 (0x00002b06f268f000)

(chroot)livecd ~ # 

```

J avoue ne pas savoir qu en faire (desole mon clavier est en qwerty et je n y comprends rien)

----------

## nico_calais

Essaie 

```
ldd -v /bin/bash
```

Cela devrait être plus explicite.

----------

## lefoid

Salut nico calais

Voici ce que ca donne :

 *Quote:*   

> (chroot)livecd ~ # ldd -v /bin/bash
> 
> 	linux-vdso.so.1 =>  (0x00007ffffc5fe000)
> 
> 	libncurses.so.5 => /lib/libncurses.so.5 (0x00002adeae834000)
> ...

 

Le probleme que je vois c est que /bin/bash utilise glibc et que c est justement le paquet qui

me manque.

----------

## nico_calais

D'après ce que j'ai suivi sur ce poste et de ma "noobité" sur ce sujet. Le premier truc que j'essaierai de faire, c'est si t'as de la place, recuperrer un stage3, le detarrer quelque part et essayer de copier les libs manquantes. 

De là, je sais pas ce que ça va donner. Bonne chance  :Wink: 

----------

## netfab

Et bien etant donné que tu as purement et simplement désinstallé la glibc, j'imagine que certaines libs ont dû disparaitre de ton système :

```

# ls -l /mnt/gentoo/lib/libdl.so.2

```

doit te renvoyer un joli no such file or directory non ?

Donc, avant d'éxécuter le chroot, vérifie que pour chaque lib dont bash a besoin, la lib est bien présente sur ton /mnt/gentoo, si elle ne l'est pas, tu la copies depuis le cd.

```

# cp /lib/libdl.so.2 /mnt/gentoo/lib/libdl.so.2

```

(Attention à ne pas écraser des libs existantes)

----------

## pititjo

Je dis peut-être une annerie mais ça ne réglerais pas le problème de décompresser un stage3 à la racine de la gentoo sans écraser les fichier existant puis de réemerger system ?

----------

## lefoid

Salut à tous

Je vais tenter la copie des fichiers manquants et je vois ce que ça donne.

Quant au "détarage" d'un stage 3, j'y ai pensé mais j'ai peur d'effacer mon /home.

Je vois ça et je vous tiens au courant.

Merci de votre aide.

----------

## nico_calais

 *pititjo wrote:*   

> Je dis peut-être une annerie mais ça ne réglerais pas le problème de décompresser un stage3 à la racine de la gentoo sans écraser les fichier existant puis de réemerger system ?

 

Heu ouais..faut pas se planter quoi ^^

----------

## kwenspc

un tar xvjpf ça écrases pas les fichiers qui ne sont pas en dans l'archive. donc si par exemple tu as /usr/truc/bidule et que ce rep/fichier n'est pas dans l'archive tar, il va pas l'écraser. Sinon oui. Fin... fait un test avant pour être sûr  :Laughing: 

----------

## lefoid

Salut kwenspc

Je vais sans doute finir par ça, mais j'essaie encore en chroot.

Là, ça avance. J'ai copié les fichiers qui manquaient, mais bien

entendu, il en manque toujours...

Cependant, je suis arrivé à obtenir le /bin/bash.

Maintenant, j'ai un autre souci, le système ne veut pas compiler

la glibc. Il me dit :

 *Quote:*   

> id : ne peut trouver le nom de l'usager ID 0

 

Il me semble comprendre qu'il y a un problème de wheel aussi.

Bref, l'emerge s'arrête "pour éviter de faire un boulette !!!"

----------

## brubru

Salut

il y a des paquets binaire là : http://tinderbox.dev.gentoo.org/html/, c'est peut-être plus simple qu'avec un stage3. Attention à bien prendre la bonne version/arch pour ton système.

 *Quote:*   

> Bref, l'emerge s'arrête "pour éviter de faire un boulette !!!"

 

meme si le bash marche, il y a peut-être des dépendances supplémentaires de la libc pour portage.

----------

## pititjo

 *lefoid wrote:*   

> Salut à tous
> 
> Je vais tenter la copie des fichiers manquants et je vois ce que ça donne.
> 
> Quant au "détarage" d'un stage 3, j'y ai pensé mais j'ai peur d'effacer mon /home.
> ...

 

Au pire, si /home est sur une partition séparée (et ça me semble assez prudent) il suffit de ne pas a monter pour qu'elle ne risque rien.

 *nico_calais wrote:*   

> Heu ouais..faut pas se planter quoi ^^

 

C'est ça d'être root   :Laughing: 

----------

## netfab

Oui, c'est normal, plus de glibc, plus rien d'éxécutable  :Smile: 

Jette un oeil ici, tu peux tenter le coup si tu as de la place sur un disque dur.

----------

## lefoid

Merci à tous.

Merci netfab,

Le topic que tu m'as indiqué a l'air de fonctionner. La glibc compile gentiment   :Smile: 

Pour ne pas faire n'importe quoi ensuite, je voudrais quelques précisions si possible.

Une fois la compil effectuée, le 

```
quickpkg glibc
```

crée un binaire de glibc je pense.

J'ai peur de ne pas trop comprendre ce qu'il faut faire après. Qu'est-ce qui doit

rester "mounter" et comment le "untaré" ce pckg ? Y a-t-il des arguments

particuliers à passer ?

Je vois bien la finalité mais j'ai peur de me rater, et j'ai déjà assez gaffé comme

ça pour aujourd'hui.

Pour la petite histoire, la glibc refusant de "downgrader", j'ai bêtement pensé

qu'en l'"unemergeant" et en re emergeant glibc derrière, ça irait.

Et la glibc s'était upgradé en essayant d'installer icedtea6, qui a refusé l'obstacle

à l'arrivée de eclipse...

Bref, le plugin-java icedtea, ce ne sera pas pour tout de suite   :Laughing: 

(Oui, le blackdown existe mais il plante sur de nombreuses pages)  :Laughing: 

----------

## nico_calais

 *Quote:*   

> Pour la petite histoire, la glibc refusant de "downgrader", j'ai bêtement pensé
> 
> qu'en l'"unemergeant" et en re emergeant glibc derrière

 

ça m'est déjà arrivé aussi de faire ça. Crois moi, on le fait pas 2 fois :p

----------

## lefoid

Oui, boulette ... mais merci nunux et la communauté gentoo.

Je crois comprendre qu'après que le fichier ait été compilé entièrement

(comme indiqué sur le topic que tu m'as indiqué), j'en fais un binaire

avec :

```
quickpkg glibc
```

Ensuite, je fais un 

```
cd /mnt/gentoo
```

suivi d'un

```
emerge --usepkg glibc
```

et je fais une prière   :Wink: 

Pour l'instant, ça compile toujours ...

PS : merci brubru pour le lien concernant les binaires; je les ai zappés,

pris que j'étais à suivre le topic. Ca m'aurait évité peut-être la

compilation...

----------

## netfab

 *Quote:*   

> 
> 
> ```
> 
> quickpkg glibc
> ...

 

Le quickpkg te créé un tarball du paquet glibc dans /usr/portage/packages.

Une fois qu'il y est, tu démontes tout, et tu remontes les partitions de ton système comme si tu allais chrooter.

Si tout s'est correctement déroulé, tu devrais avoir le fichier :

/mnt/gentoo/usr/portage/packages/All/glibc-2.6.1.tbz2 (si c'est bien cette glibc là que tu as compilée)

Tu n'as juste qu'à le décompresser sur ton système :

```

# cd /mnt/gentoo

# tar xvjpf /mnt/gentoo/usr/portage/packages/All/glibc-2.6.1.tbz2

```

(tu ne pourras pas faire un emerge, tu ne sera pas dans le chroot mais sur le livecd)

----------

## lefoid

Bon, ça se passe mal   :Confused: 

Le "untarage" s'est bien déroulé, mais impossible de rebooter.

J'ai les messages suivants :

 *Quote:*   

> * Checking root filesystem ...
> 
> fsck.ext3 : Impossible de résoudre "UUID= blah ..blah " <-- UUID de mon disque dur/partition
> 
> Filesystem couldn't be fixed 
> ...

 

J'ai regardé mon /etc/fstab et comparé les valeurs avec un 

```
ls -l /dev/disks/by-uuid/
```

et ça correspond   :Confused: 

Je ne peux malgré tout plus démarrer ...

Promis, je ne toucherai plus à glibc .... entre autres   :Wink: 

EDIT : je viens d'apercevoir un message disant que :

 *Quote:*   

> /sbin/udevtrigger

 

est manquant. Je vais voir ça de plus près.

EDIT 2 : c'était ça, manquait un fichier (encore !); ça a redémarré avec une foultitude de messages

d'erreurs. Ceci étant, c'est parti pour un

```
emerge -e system && emerge -e world && etc-update && source /etc/profile && emerge --depclean && revdep-rebuild
```

Un grand merci à tous pour votre aide. C'est résolu et promis, "le f'rai pu m'sieurdame"   :Wink: 

----------

