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 -fy
et montez la racine en lecture / écriture avec /sbin/mount -rw /
. Recréez ensuite le lien symbolique / etc avec ln -s /private/etc /etc
et 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.
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.