OVH Cloud OVH Cloud

Restaurer une Debian

4 réponses
Avatar
Rémi Moyen
Salut,

Comme ceux qui lisent tous les messages ici ont pu constater, je viens
de subir un crash disque assez m=E9chant (table des partitions
illisible...). Apr=E8s moults essais, j'ai fini par r=E9parer =E7a, et mon
disque est =E0 nouveau reconnu par le syst=E8me, ouf. On verra bien si
=E7a durera, mais c'est un autre probl=E8me...

Mais dans l'affaire, il y a quelques fichiers (au hasard) qui ont
disparu du disque. Je m'en rends compte parce que, par exemple,
Thunderbird ne d=E9marre plus et se plaint d'un fichier manquant dans
/usr/lib/mozilla-thunderbird : un endroit que je ne risque absolument
pas d'avoir =E9t=E9 modifier moi-m=EAme !! De m=EAme, IceWM fait un
coredump tout de suite, et de m=EAme pour deux-trois autres trucs que
j'ai essay=E9.

(je suppose qu'entre le crash disque lui-m=EAme, et les nombreuses
manips dans tous les sens que j'ai fait apr=E8s, y'a quelques morceaux
du disque qui ont fini par =EAtre compl=E9tement dans les choux. Disons
que je m'estime heureux de n'avoir perdu que deux-trois fichiers par
endroits !)

Donc, je cherche comment faire proprement pour remettre tout =E7a
d'aplomb. Mon id=E9e, c'est en gros de r=E9installer tous les paquets du
syst=E8me : comme =E7a, je me retrouverais avec tout ce que j'avais
avant, proprement install=E9. Sauf pour les deux-trois trucs que j'avais
install=E9 =E0 la main, mais ils sont vraiment rares. Probl=E8me, comment
faire ?

J'ai essay=E9 par exemple de d=E9sinstaller (apt-get remove) puis de
r=E9installer (apt-get install) certains paquets. =C7a marche, mais je me
vois mal faire =E7a avec les paquets critiques du syst=E8me...

Sinon, j'ai vu passer l'option --reinstall de apt-get, et un apt-get
--reinstall install toto a l'air de se comporter comme je m'y attends.
Mais l=E0 aussi, je ne suis pas s=FBr de comment il g=E9rera les paquets
critiques. Est-ce que je peux sans probl=E8mes faire un script pour
faire un --reinstall sur tous les paquets de mon syst=E8me ? Mis =E0 part
le fait qu'il va t=E9l=E9charger des milliards de choses, est-ce que =E7a
risque de poser un probl=E8me ailleurs ?

Sinon, est-ce que quelqu'un a une autre id=E9e pour remettre sur ses
pattes un syst=E8me Debian o=F9 il manque un certain nombre (probablement
tr=E8s peu, statistiquement) de fichiers au hasard ?

Merci !
--=20
R=E9mi Moyen

4 réponses

Avatar
lgmdmdlsr
Rémi Moyen wrote:

Salut,


Salut.

Sinon, est-ce que quelqu'un a une autre idée pour remettre sur ses
pattes un système Debian où il manque un certain nombre (probablement
très peu, statistiquement) de fichiers au hasard ?


Le paquet debsums est très utile dans ce cas-là, pour repérer les fichiers
manquants et les paquets correspondants.

Après un apt-get install --reinstall paquet permet de réinstaller les
fichiers manquants.

--
lgmdmdlsr

Avatar
lhabert
Rémi Moyen :

722 Mo à télécharger


Bah ça c'est habituel, suffit de rester deux semaines sans faire un
dist-upgrade. Avec tous les packages qui se font upgrader parce que le
mainteneur a décidé de rajouter une virgule dans un commentaire d'un fichier
de conf... J'exagère à peine.

Avatar
Rémi Moyen

Sinon, j'ai vu passer l'option --reinstall de apt-get, et un apt-get
--reinstall install toto a l'air de se comporter comme je m'y attends.
Mais là aussi, je ne suis pas sûr de comment il gérera les paquets
critiques. Est-ce que je peux sans problèmes faire un script pour
faire un --reinstall sur tous les paquets de mon système ? Mis à part
le fait qu'il va télécharger des milliards de choses, est-ce que ça
risque de poser un problème ailleurs ?


Bon, alors je me réponds tout seul, juste pour les archives :

Ça marche très bien !

Évidemment, il a mis quelques heures à tout récupérer (c'est assez
amusant de voir un truc genre "956 paquets à récupérer, 722 Mo à
télécharger"...). Et après, en fait, certains paquets faisaient planter
apt-get tout de suite, ce qui fait que j'ai dû au final passer la liste
par petits bouts. À la fin, les paquets qui posaient problème au début
sont bien passés : je suppose qu'entre temps, je-ne-sais-quel fichier
manquant avait été réinstallé.

Bref, une soirée d'occupée, mais aucun réel problème, et mon système est
tout beau comme avant. Et j'ai rien perdu. Cool !

PS : debsums ne m'a pas du tout aidé, il sort des tonnes d'infos que je
ne comprends pas du tout. Mais j'ai cru comprendre qu'il n'était pas
vraiment à jour, et peut-être manquait-il trop de fichiers pour lui
aussi... ?
--
Rémi Moyen

Avatar
Rémi Moyen

Sinon, j'ai vu passer l'option --reinstall de apt-get, et un apt-get
--reinstall install toto a l'air de se comporter comme je m'y attends.
Mais là aussi, je ne suis pas sûr de comment il gérera les paquets
critiques. Est-ce que je peux sans problèmes faire un script pour
faire un --reinstall sur tous les paquets de mon système ? Mis à part
le fait qu'il va télécharger des milliards de choses, est-ce que ça
risque de poser un problème ailleurs ?




Bon, alors je me réponds tout seul, juste pour les archives :

Ça marche très bien !



Comment as-tu fait ton script ?


Euh, comme un bourrin !

À la base, j'ai récupéré la liste des paquets avec :
dpkg --get-selections | grep install | grep -v deinstall | cut -f 1

Ensuite, j'ai commencé par faire un gros --reinstall de tout ça :
apt-get --reinstall install `dpkg --get-selections ...`

Mais avant même de réinstaller quoi que ce soit, certains paquets
faisaient crasher apt-get. C'est là que j'ai commencé à être bourrin.
J'ai mis la liste des paquets dans un fichier et j'ai fait une série de
apt-get --reinstall install `head -50 package_list`
alternés avec un éditeur où j'effaçais les lignes par paquets de 50 si
ça marchait. Quand je tombais sur un paquet qui faisait crasher apt-get,
je le notais dans un coin, l'enlevais de la liste, et recommençais.

Une fois la liste vidée, j'ai fait passer les paquets qui avaient planté
(il n'y en avait que 2, avec cette méthode, en fait).

Bref, pas subtil ni optimal, mais ça a très bien marché.
--
Rémi Moyen