Coincé sur l'écran bleu après avoir exécuté «rm *» dans /

12

J'exécuté accidentellement rm *sur /et depuis, je ne peux pas voir mon bureau. Tout ce que je vois, c'est un écran bleu avec une roue qui tourne.

Ironie du sort, j'ai en quelque sorte manqué mon système d'exploitation et les autres CD fournis avec mon Mac. J'ai suivi cet article sur le démarrage en mode sans échec, mais il affiche la barre de progression pendant une longue période, puis reste bloqué sur l'écran bleu

Ci-joint l'écran que je vois au démarrage.

entrez la description de l'image ici

Je ne peux pas non plus passer en mode sans échec, alors comment puis-je revenir à un système qui fonctionne?

PS: Je me demande également si je pourrai récupérer mes paramètres de bureau sans compromettre tous les paramètres? Je suis particulièrement concerné par les logiciels installés via Home Brew, les bases de données, etc. Est-il possible de restaurer ou de copier des fichiers supprimés par une sorte de réparation via CD?. Mes fichiers cachés infusant bash_profile etc. sont également là. Pouvez-vous guider comment dois-je procéder?

mise à jour je me connecte en mode unique. Vérifiez l'image. Qu'est-ce que je fais maintenant?

entrez la description de l'image ici

entrez la description de l'image ici

mise à jour # 3

entrez la description de l'image ici

enfin

entrez la description de l'image ici

Volatil3
la source
Vous souvenez-vous de la commande exacte que vous exécutez, de l'utilisateur avec lequel vous étiez connecté à l'époque et de la sortie générée par la commande?
nohillside
Avez-vous utilisé l' -roption (ou l' -Roption)? Si vous ne l'avez pas fait, cela ne devrait pas se produire.
0942v8653
Non je sais couru rm avec un astérisque. Seuls les fichiers ont été supprimés. Tous les dossiers sont là parce que même après avoir exécuté la commande, j'utilisais mon système dans l'interface graphique, seulement je ne peux pas l'utiliser après le redémarrage
Volatil3
@patrix il y avait seulement une sortie qui indiquait que les dossiers n'étaient pas supprimés car ils étaient un répertoire
Volatil3
2
Pour le moment, votre plus grande préoccupation est de savoir comment revenir à un système qui fonctionne, pas de savoir si votre installation homebrew a survécu.
nohillside

Réponses:

24

Selon la configuration de votre système et votre commande, vous n'avez probablement perdu que quelques fichiers - dont un essentiel - et des dossiers et quelques liens symboliques.

L'utilisation de la commande rm *- exécutée par un administrateur dans le dossier racine - supprime généralement uniquement le lien symbolique / etc:

  • Démarrez en mode mono-utilisateur, vérifiez votre système de fichiers avec /sbin/fsck -fyet montez la racine en lecture / écriture avec /sbin/mount -rw /. Recréez ensuite le lien symbolique / etc avec ln -s /private/etc /etcet redémarrez votre Mac avec shutdown -r now.

En utilisant la commande sudo rm *- exécutée par un sudoer dans le dossier racine - dans une configuration standard, vous ne perdrez que le fichier 'mach_kernel' et les liens symboliques 'etc', 'tmp' et 'var'.

(Aucun autre fichier n'a été supprimé dans le système de fichiers) . Après de plus amples investigations, il s'avère que certains autres fichiers et dossiers sont également supprimés souvent: un dossier avec le nom d'un sudoer (généralement le nom court de votre compte administrateur) dans / private / var / db / sudo / et un fichier .state avec un nom arbitraire (l'ID généré de votre compte admin / sudoer) lié à un autre fichier de même nom dans / private / var / db / shadow / hash /. Je ne peux pas déterminer s'ils sont supprimés par 'sudo', 'rm' ou 'sudo rm'. Ces fichiers et dossiers ont cependant une importance mineure.

fsevent

J'ai testé cela dans une machine virtuelle de serveur Mac OS X 10.6.8 presque vanille.

Avant d'exécuter sudo rm *le dossier racine ressemble à ceci - fichiers invisibles, dossiers et liens symboliques inclus - avec ls -la:

drwxrwxr-t  32 root  admin      1156 25 Dez 11:55 .
drwxrwxr-t  32 root  admin      1156 25 Dez 11:55 ..
-rw-rw-r--   1 root  admin     15364  4 Jan 14:35 .DS_Store
drwx------   3 root  admin       102 10 Sep 01:37 .Spotlight-V100
d-wx-wx-wt   2 root  staff        68 10 Sep 01:23 .Trashes
----------   1 root  admin         0 23 Jun  2009 .file
drwx------  38 root  admin      1292  4 Jan 14:59 .fseventsd
-rw-------   1 root  wheel      4096 10 Sep 01:29 .hotfiles.btree
drwxr-xr-x@  2 root  wheel        68 18 Mai  2009 .vol
drwxrwxr-x+ 35 root  admin      1190 25 Dez 16:49 Applications
drwxrwxr-x@ 16 root  admin       544 25 Dez 12:04 Developer
drwxrwxr-t+  2 root  admin        68 10 Sep 01:37 Groups
drwxrwxr-t+ 65 root  admin      2210 25 Dez 12:02 Library
drwxr-xr-x@  3 root  wheel       102 26 Feb 20:43 Network
drwxr-xr-x   4 root  wheel       136 10 Sep 01:28 Shared Items
drwxr-xr-x   4 root  wheel       136 10 Sep 02:02 System
drwxr-xr-x+  5 root  admin       170 10 Sep 01:37 Users
drwxrwxrwt@  4 root  admin       136 26 Feb 20:43 Volumes
drwxr-xr-x@ 39 root  wheel      1326 10 Sep 02:09 bin
drwxrwxr-t@  2 root  admin        68 23 Jun  2009 cores
dr-xr-xr-x   3 root  wheel      4013 26 Feb 20:43 dev
lrwxr-xr-x@  1 root  wheel        11 10 Sep 01:26 etc -> private/etc
dr-xr-xr-x   2 root  wheel         1 26 Feb 20:43 home
-rw-r--r--@  1 root  wheel  20828964  8 Jun  2011 mach_kernel
dr-xr-xr-x   2 root  wheel         1 26 Feb 20:43 net
drwxr-xr-x@  6 root  wheel       204 10 Sep 01:28 private
drwxr-xr-x@ 68 root  wheel      2312 10 Sep 02:09 sbin
lrwxr-xr-x@  1 root  wheel        11 10 Sep 01:26 tmp -> private/tmp
drwxr-xr-x@ 14 root  wheel       476 25 Dez 11:57 usr
lrwxr-xr-x@  1 root  wheel        11 10 Sep 01:26 var -> private/var

Après avoir exécuté sudo rm *un seul fichier et les liens symboliques ont disparu:

drwxrwxr-t  28 root  admin   1020 26 Feb 19:41 .
drwxrwxr-t  28 root  admin   1020 26 Feb 19:41 ..
-rw-rw-r--   1 root  admin  21508 26 Feb 19:41 .DS_Store
drwx------   3 root  admin    102  9 Sep 23:37 .Spotlight-V100
d-wx-wx-wt   2 root  20        68  9 Sep 23:23 .Trashes
----------   1 root  admin      0 23 Jun  2009 .file
drwx------  38 root  admin   1292  4 Jan 13:59 .fseventsd
-rw-------   1 root  wheel   4096  9 Sep 23:29 .hotfiles.btree
drwxr-xr-x@  2 root  wheel     68 18 Mai  2009 .vol
drwxrwxr-x+ 35 root  admin   1190 25 Dez 15:49 Applications
drwxrwxr-x@ 16 root  admin    544 25 Dez 11:04 Developer
drwxrwxr-t+  2 root  admin     68  9 Sep 23:37 Groups
drwxrwxr-t+ 65 root  admin   2210 25 Dez 11:02 Library
drwxr-xr-x@  3 root  wheel    102 26 Feb 19:39 Network
drwxr-xr-x   4 root  wheel    136  9 Sep 23:28 Shared Items
drwxr-xr-x   4 root  wheel    136 10 Sep 00:02 System
drwxr-xr-x+  5 root  admin    170  9 Sep 23:37 Users
drwxrwxrwt@  4 root  admin    136 26 Feb 19:39 Volumes
drwxr-xr-x@ 39 root  wheel   1326 10 Sep 00:09 bin
drwxrwxr-t@  2 root  admin     68 23 Jun  2009 cores
dr-xr-xr-x   3 root  wheel   4013 26 Feb 19:39 dev
dr-xr-xr-x   2 root  wheel      1 26 Feb 19:39 home
dr-xr-xr-x   2 root  wheel      1 26 Feb 19:39 net
drwxr-xr-x@  6 root  wheel    204  9 Sep 23:28 private
drwxr-xr-x@ 68 root  wheel   2312 10 Sep 00:09 sbin
drwxr-xr-x@ 14 root  wheel    476 25 Dez 10:57 usr

En utilisant une configuration non standard, tous les autres fichiers et liens symboliques du dossier racine (le cas échéant) seront également supprimés. Tous les dossiers non standard (par exemple / opt) survivent.

  • Si vous n'avez pas supprimé le fichier du noyau (ce qui est peu probable), essayez de démarrer en mode mono-utilisateur et de reconstruire les trois liens symboliques supprimés avec ln -s /.../folder /folder(par exemple ln -s /private/etc /etc)

  • Si vous avez une sauvegarde et supprimé le fichier du noyau, essayez de restaurer le fichier mach_kernel, les liens symboliques, le dossier avec votre nom d'utilisateur administrateur dans ../sudo/ et le fichier d'état manquant. Vous avez besoin d'un disque dur / clé USB amorçable pour restaurer ces fichiers à partir de la sauvegarde.

  • Si vous n'avez pas de sauvegarde, essayez de copier le fichier mach_kernel depuis un autre Mac avec le même système (par exemple 10.6.8). Recréez les liens symboliques. Vous devrez probablement ajuster la propriété et les autorisations (voir la liste).

    "mach_kernel" est également disponible dans la mise à jour combinée Mac OS X 10.6.8 et probablement dans d'autres mises à jour combinées comme la mise à jour combinée Mac OS X 10.6.6 et la mise à jour combinée Mac OS X 10.6.7. Ainsi, la mise à jour de votre système corrompu avec le programme de mise à jour combo à partir d'une clé USB bootable externe ou connectée en mode disque cible à un autre Mac devrait également fonctionner.

    Après avoir restauré le fichier du noyau et les liens symboliques, vous pouvez démarrer en mode super utilisateur et entrer mount -o rw,remount /et créer le dossier manquant dans / private / var / db / sudo / avec mkdir /private/var/db/sudo/adminname. Le fichier .state manquant se reconstruit.

Si vous avez exécuté, sudo rm -dR *vous êtes condamné sans une sauvegarde appropriée. Mon système n'a pas pu être démarré par la suite, mais étonnamment seulement ~ 524 Mo sur 9860 Mo ont été supprimés après les confirmations de remplacement pour '/System/Library/CoreServices/boot.efi' et '/ dev / fd / 4'.
Dans une deuxième tentative, j'ai obtenu 8445 Mo de 9860 Mo supprimés à l'aide sudo rm -dR *. La première tentative aurait également pu être récupérée avec la mise à jour combinée, les restes wimpy de la deuxième tentative ne le sont certainement pas.

klanomath
la source
Tout cela est merveilleux, correct et impressionnant, mais mon expérience est que si / System ou / Library a été touché, le système ne peut pas démarrer ou dépasser l'écran gris. Un écran bleu lors du démarrage signifie que le système d'exploitation a été extrait, démarré correctement (ou principalement) et que la phase d'environnement utilisateur de launchd a commencé. Une vérification simple serait de supprimer très soigneusement le fichier /var/db/.AppleSetupDone en mode mono-utilisateur, puis de voir si vous pouvez créer un nouvel utilisateur administrateur et effectuer au moins une sauvegarde Time Machine pour voir quels fichiers utilisateur sont récupérables .
bmike
@klanomath il est intéressant de noter que rm * n'a pas supprimé les fichiers image à la racine. Je me demande pourquoi.
Volatil3
@klanomath-rw-r-----@ 1 Adnan staff 2404856 Feb 26 21:33 mountain.jpg
Volatil3
@klanomath le fichier jpg a été téléchargé depuis net. J'ai été connecté par le même utilisateur qui a exécuté la commande rm *.
Volatil3
1
@ Volatil3 Peut-être que rm a juste abandonné la suppression des fichiers avant d'atteindre mountain.jpg, ne réussissant vraiment pas à supprimer tous ces dossiers. Ou la montagne était tout simplement trop grande pour être supprimée. ;-) En testant sudo rm -dR * à la racine de ma machine virtuelle, j'ai également obtenu des résultats incohérents: il suffit de vérifier la toute dernière partie de ma réponse. Lors de la première tentative, seulement 7% du contenu a été supprimé, lors de la deuxième tentative, 85%.
klanomath