# Que faire en cas de grosse c....ie rm -Rf \*

**URL:** <https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487>\
**Category:** Trucs et Astuces\
**Created:** [Février 20, 2016, 6:49 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487 "2016-02-20T18:49:38Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 6:49 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/1 "2016-02-20T18:49:38Z")

</div>

Damned [code]

# rm -Rf \*[/code]malencontreux et irrécupérable (récupérer est un autres souci). Que faire? Bien sûr tout dépend du répertoire sous lequel ça a été fait. Tout ce qui suit est fait sous root, la c…ie ayant déjà été faite, pas la peine de prendre des précautions tardives. Commencez par aller prendre un remontant et un café et rappelez vous qu’une grosse bourde devient une catastrophe à cause de ce qu’on a fait dans les 5-10 minutes qui ont suivies la bourde. Vous pouvez aussi aller sur Pause Café et trouver un troll et une tête de turc sur laquelle vous allez pouvoir vous défouler, Anthropo s’est révélé parfait pour moi dans ce rôle 🙂, qu’il en soit remercié.

1. Sous /: là c’est foutu, il ne reste rien. Si vous êtes adepte de Bernadette, allez à Lourdes, il vous restera Lisieux pour pleurer car ça ne marchera pas 🙂

2. Sous /tmp, /var/tmp, /var/run ça ne devrait pas être grave, recréer le répertoire si il a disparu (attention au mode 1777 pour /tmp ET /var/tmp) et redémarrer.

3. Sous /boot, vous avez juste perdu votre noyau donc ne reboutez pas (réfléchissez si vous ne voyez pas pourquoi). Réinstallez tranquillement votre noyau ET grub ou lilo. Pour grub, il faut tout réinstaller, pour lilo, c’est (comme souvent 🙂) plus simple, un petit «lilo» après la réinstallation du noyau suffit.

4. Sous /usr, ça n’est pas trop grave, il suffit de faire une réinstallation de tous les paquets, or -joie, bonheur- la liste des paquets est récupérable. Il est même possible de ce contenter de réconstruire la branche /usr en décompressant manuellement les paquets dans un coin avec dpkg-deb et de recopier le /usr, ça évitera une reconfiguration de tous les paquets (innocente a priori mais on ne sait jamais). Cela peut même se faire directement sur la machine et via un CD-Live ou USB-live en récupérant préalablement un binaire dpkg-deb et en se souvenant que les paquets sont souvent dans /var/cache/apt/archives (damned vous avez fait «apt-get clean» avant!! Tant pis pour vous!). Il est donc une bonne idée d’avoir ce binaire dans un coin genre sous /root.

Donc, le plus simple, la liste des paquets se récupère par

`# export LST=$(grep -B 1 "Status: install ok installed" /var/lib/dpkg/status | grep Package | sed -e '1,$s/Package: *//')` si on a tous les paquets dans /var/cache/apt/archives, ça deviet plus simple: Il faut tout d’abord retrouver la commande ar, celle ci est dans /usr MAIS il y a busybox, faites donc sous /bin

`# ln -s busybox ar`Vous avec désormais ar de disponible  
Créez un repertoire /tempo puis faites

```auto

```

Là vous avez un répertoire usr convenable, vous le déplacez sous / et vous avez récupéré votre répertoire /usr.

Dans le cas où vous n’avez pas tous les paquets, il suffit de se procurer les paquets apt, gnupg, dpkg et peut être gpgv puis de faire la manoeauvre avec ces paquets. Ensuite un

[code]# apt-get install -d $(grep -B 1 “Status: install ok installed” /var/lib/dpkg/status | grep Package | sed -e ‘1,$s/Package: \*//’)

# [/code]

permet de récupérer les autres paquets et de continuer la manoeuvre.

Les cas recensés à partir d’ici correspondent au cas où vous êtes mal, la machine s’est figé ou ne marche pas bien, ce qui suit se fait donc à partir d’un live CD ou d’une live-USB (vous connaissez [clefagreg](http://clefagreg.dnsalias.org/):?)

1. Sous /bin, /lib c’est plus ennuyeux, vous avez bouffé tous les binaires, la machine ne va pas démarrer et ne continue plus. Cependant ça n’est pas la cata quand même. Vous avez la liste des paquets installés en faisant

`ls *.list | sed -e '1,$s/.list//'`dans le répertoire

Il vous suffit donc de récuperer l’arborescence correspondante en décompressant les paquets correspondants via dpkg-deb: Si les paquets sont dans un répertoire /paquets vous faites

```auto

```

Sous /tmp, vous avez les répertoire lib, bin, … recopiez celui que vous avez effacé. A priori, votre machine est réparée.  
  
Les cas recensés à partir d’ici correspondent au cas où vous êtes vraiment mal:

1. Sous /etc, ah… là, ça me parait foutu, vous avez paumé toute votre configuration, vous êtes comme si vous deviez réinstaller votre machine (une bonne idée est donc de conserver ce répertoire dans un coin, il est petit souvent). À noter que  
$ dpkg --get-selections \> /root/paquets\_installes  
vous permet d’avoir les paquets installés. Je suggère donc

- soit la récupération d’un /etc d’une machine équivalente, à ce moment là

`grep "^/etc" *.list | sed -e '1,$s/^.*://' | sort -u` sur la machine abimée permet de connaître les fichiers sous /etc installés par les paquets (sauf ceux constitués). Pensez que des fichiers n’y figure pas: ceux que vous avez ajoutés ou qui ont été crées avec des scripts (/etc/modules, /etc/resolv.conf, /etc/fstab, /etc/hosts, /etc/hostname, …).

- Soit une réinstallation en utilisant la liste des paquets installés.

1. Sous /var (fut mon cas). Au début on se dit, pas si grave, puis l’étendue des dégats apparait: la base de dpkg, la base d’apt, la base d’aptitude ont disparues. De plus, les données de tous les services ont sautées (votre site, votre base mysql, vos logs, …). Allez pleurer un coup ou taper sur Anthropo sur Pause Café puis revenez. Vous pouvez récupérer des choses:

- La liste des paquets peut se retrouver à l’aide de /usr/share/doc: Un répertoire -\> Un paquet du même nom. La correspondance n’est pas tout à fait exacte mais suffit.
- Recopiez le répertoire /etc ailleurs  
Personnellement, j’ai fait comme suit:
- Installation d’un debootstrap dans un répertoire /tmp/lenny
- Récopie de l’arborescence obtenue sur le disque
- Recopie des sauvegardes des sites, mysql et de etc
- Réinstallation de tous les paquets  
(2 heures)  
Il faut penser à plusieurs choses:
- Un debootstrap directement sur le disque ne fonctionne pas, debootstrap veut un répertoire vide au démarrage, une réinstallation par dessus peut être efficace, je n’ai pas essayé.
- Les fichiers /etc/hosts, /etc/resolv.conf, /etc/network/interfaces, /etc/hostname, /etc/fstab, /etc/modules (?), /etc/crontab, /etc/passwd,shadow,gshadow et group sont démolis. Il faut également réinstallé console-setup.
- Il faut penser à reconfigurer l’heure (tzdata).

(Question: la simple recopie du /var du debootstrap et la réinstallation des paquets aurait-elle suffit? À mon avis oui)

[À PEAUFINER]

---

<div class="post-metadata">

**Author:** ![llapingachos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/llapingachos/32/3637_2.png) [@llapingachos](https://www.debian-fr.org/u/llapingachos)\
**Post date:** [Février 20, 2016, 6:49 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/2 "2016-02-20T18:49:55Z")

</div>

Voilà un T&A qui risque de servir…  
Bien qu’étant encore en “développement”, je me permet de signaler quelques coquilles dans ce tuto :

[quote]4) Sous /usr, ça n’est pas trop grave, il suffit de faire une réinstallation de tous les paquets, or -joie, bonheur- la liste des paquets est récupérable. Il est même possible de ce contenter de réconstruire la branche /usr en décompressant manuellement les paquets dans un coin avec dpkg-deb et de recopier le /usr, ça évitera une reconfiguration de tous les paquets (innocente a priori mais on ne sait jamais). Cela peut même se faire directement sur la machine et via un CD-Live ou USB-live en récupérant préalablement un binaire dpkg-deb et en se souvenant que les paquets sont souvent dans /var/cache/apt/archives (damned vous avez fait «apt-get clean» avant!! Tant pis pour vous!). Il est donc une bonne idée d’avoir ce binaire dans un coin genre sous /root.  
[/quote]  
De plus, je pense que ça serait pas mal de mettre un gros machin en rouge du style “attention ne faites pas cette commande” pour éviter tout accident, cf junichirô dans le fil d’Anthropo :smt003 …  
A+

---

<div class="post-metadata">

**Author:** ![ursus](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/u/e99b99/32.png) [@ursus](https://www.debian-fr.org/u/ursus)\
**Post date:** [Février 20, 2016, 6:50 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/3 "2016-02-20T18:50:03Z")

</div>

La [référence Debian](http://www.debian.org/doc/manuals/reference/index.fr.html) contient aussi beaucoup d’astuces à ce sujet.  
Par exemple, si on perd /etc il y a pas mal à récupérer (passwd, group …) dans /var/backups (à condition de ne pas avoir aussi perdu /var !) : [debian.org/doc/manuals/refer … -rm-passwd](http://www.debian.org/doc/manuals/reference/ch-tips.fr.html#s-rm-passwd)

[quote=“fran.b”](Question: la simple recopie du /var du debootstrap et la réinstallation des paquets aurait-elle suffit? À mon avis oui)[/quote]Confirmation peut-être : [debian.org/doc/manuals/refer … ver-status](http://www.debian.org/doc/manuals/reference/ch-package.fr.html#s-recover-status)

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 20, 2016, 6:50 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/4 "2016-02-20T18:50:03Z")

</div>

[quote=“ursus”]La [référence Debian](http://www.debian.org/doc/manuals/reference/index.fr.html) contient aussi beaucoup d’astuces à ce sujet.  
Par exemple, si on perd /etc il y a pas mal à récupérer (passwd, group …) dans /var/backups (à condition de ne pas avoir aussi perdu /var !) : [debian.org/doc/manuals/refer … -rm-passwd](http://www.debian.org/doc/manuals/reference/ch-tips.fr.html#s-rm-passwd)

> [@](#):
>
> (Question: la simple recopie du /var du debootstrap et la réinstallation des paquets aurait-elle suffit? À mon avis oui)[/quote]Confirmation peut-être : [debian.org/doc/manuals/refer … ver-status](http://www.debian.org/doc/manuals/reference/ch-package.fr.html#s-recover-status)

ce qui me pousse en générale à me demander la meilleur façon de partitionner avec tous séparés ou juste une partition / et un /home à côté ainsi que la SWAP qui vas bien 😕

d’ailleurs je me demande si un fil n’existe pas sur la façon de partitionner ces disques à la sauce debian de façon éfficace ?

---

<div class="post-metadata">

**Author:** ![ursus](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/u/e99b99/32.png) [@ursus](https://www.debian-fr.org/u/ursus)\
**Post date:** [Février 20, 2016, 6:50 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/5 "2016-02-20T18:50:04Z")

</div>

[quote=“Clochette”]d’ailleurs je me demande si un fil n’existe pas sur la façon de partitionner ces disques à la sauce debian de façon éfficace ?[/quote]c.f. le manuel de sécurisation Debian : [debian.org/doc/manuals/secur … .html#s3.2](http://www.debian.org/doc/manuals/securing-debian-howto/ch3.fr.html#s3.2)

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 20, 2016, 6:50 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/6 "2016-02-20T18:50:04Z")

</div>

Merci bien il m’a échappé ce topic ![8)](https://www.debian-fr.org/uploads/default/original/1X/ae031e9834d19166598edd060b063d44f1829139.gif "Cool") je regarde ça de suite :smt003

---

<div class="post-metadata">

**Author:** ![byx](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/94ad74/32.png) [@byx](https://www.debian-fr.org/u/byx)\
**Post date:** [Février 20, 2016, 6:51 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/7 "2016-02-20T18:51:19Z")

</div>

sinon en prevention le mieux reste de se faire un alias a rm.

genre un cp du truc dans un ~/corbeille

c’est le premier truc qu’on nous a appris en iut info 😃

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 6:51 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/8 "2016-02-20T18:51:24Z")

</div>

Quand le but est de libérer de la place disque, ça marche moyen…

---

<div class="post-metadata">

**Author:** ![byx](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/94ad74/32.png) [@byx](https://www.debian-fr.org/u/byx)\
**Post date:** [Février 20, 2016, 6:51 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/9 "2016-02-20T18:51:29Z")

</div>

certes…j’y avait jamais pense 😃

---

<div class="post-metadata">

**Author:** ![vv221](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/dbc845/32.png) [@vv221](https://www.debian-fr.org/u/vv221)\
**Post date:** [Février 20, 2016, 6:51 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/10 "2016-02-20T18:51:32Z")

</div>

```auto
Moins intrusif que le -i, mais tout aussi efficace pour eviter les gaffes !
Et ne JAMAIS utiliser de -f lorsque ce n'est pas justifie !
```

Moins intrusif que le -i, mais tout aussi efficace pour eviter les gaffes !  
Et ne JAMAIS utiliser de -f lorsque ce n’est pas justifie !

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 6:51 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/11 "2016-02-20T18:51:32Z")

</div>

Je sais tout cela, le but n’est pas de dire comment ne pas faire la c…rie, mais que faire quand elle est faite. Le «rm -I» amène une quantité industrielle de «Y» même si il y en a moins que le -i donc devient tout aussi pénible. La meilleure idée serait de faire un wrapper indiquant quels fichiers vont être supprimés parmi une liste de fichiers déclarés importants mais bon, j’ai la flemme et le propos n’est pas là…

---

<div class="post-metadata">

**Author:** ![vv221](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/dbc845/32.png) [@vv221](https://www.debian-fr.org/u/vv221)\
**Post date:** [Février 20, 2016, 6:51 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/12 "2016-02-20T18:51:33Z")

</div>

C’etait plutot a la proposition de byx de creer un alias que mon message repondait…  
C’est vrai qu’on s’est eloigne du sujet qui ne cherche pas a eviter la c_nn_r\*e mais plutot a la corriger…  
Fin du HS, je ne reposterai que si j’ai quelque chose a apporter au sujet initial !

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 6:51 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/13 "2016-02-20T18:51:36Z")

</div>

[quote=“vv221”]`alias rm='rm -I'`  
Moins intrusif que le -i, mais tout aussi efficace pour eviter les gaffes !  
Et ne JAMAIS utiliser de -f lorsque ce n’est pas justifie ![/quote]

`% alias
rm='rm -rf'`  
😆

J’aime vivre dangereusement (et puis avec un NAS qui me récupère tout régulièrement et les fichiers style prog ou .tex/.odt en svn et zsh qui me demande confirmation quand ça va supprimmer un rep entier ça deviens moins dangereux).

@fran.b : Tu compte installer apt dans /root ? Pourquoi ne pas se limiter à dpkg ?

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 6:51 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/14 "2016-02-20T18:51:55Z")

</div>

[quote=“MisterFreez”][  
@fran.b : Tu compte installer apt dans /root ? Pourquoi ne pas se limiter à dpkg ?[/quote]  
Moi, la machine en question était un serveur que je venais d’installer (le Fit-PC slim). Il était impératif qu’elle fonctionne le plus rapidement possible. J’ai suivi ce que j’ai dit pour la partie 7 (rm -Rf /var/\* donc) et ça a marché sans souci (co…rie à 22h05, serveur de nouveau opérationnel à 00h10). Donc pour moi, le pbm est passé…

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 1:59 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/15 "2016-02-21T13:59:52Z")

</div>

Je ne peux plus éditer ce post…  
ah si!

---

<div class="post-metadata">

**Author:** ![Num\_s](https://www.debian-fr.org/user_avatar/www.debian-fr.org/num_s/32/3834_2.png) [@Num\_s](https://www.debian-fr.org/u/Num_s)\
**Post date:** [Février 21, 2016, 2:00 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/16 "2016-02-21T14:00:03Z")

</div>

Y’a pas une coquille dans ta commande de la partie 4) ?.. enfin… il me semble (je n’ai que testé d’avoir la liste des paquets à partir du fichier status (ou status-old… 😉 ), pas leur réinstall… mais bon… ça devrait «&nbsp;correspondre&nbsp;»…):  
remplacer le `| sed -e '1,$s/Package: *//)'` par `| sed -re '1,$s/^Package: *//')` … tu fermes la parenthèse trop tôt… 😉 ![:whistle:](https://www.debian-fr.org/uploads/default/original/1X/899b2c331f8cc02517f77948602974610a95f952.gif "Whistle")😉

édit: pour le test j’ai remplacé apt-get(…) par un «&nbsp;echo&nbsp;»:

```auto
$ echo $(grep -B 1 "Status: install ok installed" /var/lib/dpkg/status | grep Package | sed -re '1,$s/^Package: *//')
```

![:006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif "salut")

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 2:00 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/17 "2016-02-21T14:00:04Z")

</div>

Exact… Je rectifie

---

<div class="post-metadata">

**Author:** ![Num\_s](https://www.debian-fr.org/user_avatar/www.debian-fr.org/num_s/32/3834_2.png) [@Num\_s](https://www.debian-fr.org/u/Num_s)\
**Post date:** [Février 21, 2016, 2:00 UTC](https://www.debian-fr.org/t/que-faire-en-cas-de-grosse-c-ie-rm-rf/17487/18 "2016-02-21T14:00:05Z")

</div>

😉 … et du coup, simple curiosité intéressée (et complètement HS… 'fin, p’tet’pas…), dans le cas de notre ami keb83 ([recuperer-sa-debian-apres-suppression-foireuse-de-paquets-t41678.html](https://www.debian-fr.org/recuperer-sa-debian-apres-suppression-foireuse-de-paquets-t41678.html)), tu penses que ça pourrait marcher avec le fichier status-old? 😒 ![:whistle:](https://www.debian-fr.org/uploads/default/original/1X/899b2c331f8cc02517f77948602974610a95f952.gif "Whistle")😒 (c’est surtout pour savoir si j’ai vu juste en fait… 😉 …)

édit: je pense que t’as fait la même coquille juste un peu plus haut… sur ton «&nbsp;export&nbsp;»… (haaaaa, ces matheux et les parenthèses… ![:005](https://www.debian-fr.org/uploads/default/original/1X/cdd45e7dd754015ac5291329b843a2851a0d4fe8.gif "chaud") ![:016](https://www.debian-fr.org/uploads/default/original/1X/b259ae9d61776a18a151e35004995aa8715555b6.gif "langue-en-vert") ![:005](https://www.debian-fr.org/uploads/default/original/1X/cdd45e7dd754015ac5291329b843a2851a0d4fe8.gif "chaud") ):`# export LST=$(grep -B 1 "Status: install ok installed" /var/lib/dpkg/status | grep Package | sed -e '1,$s/Package: *//')`au lieu de )’ pour la fin… 😉

![:006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif "salut")
