En fonction de la configuration de votre système et de votre commande, vous n'avez probablement perdu que quelques fichiers - dont un essentiel - et dossiers et quelques liens symboliques.
En utilisant la commande rm *
- exécuté par un administrateur dans le dossier racine - supprime généralement le lien symétrique /etc uniquement :
- Démarrez en mode utilisateur unique, vérifiez votre système de fichiers avec
/sbin/fsck -fy
et monter Root en lecture/écriture avec /sbin/mount -rw /
. Puis recréez 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é 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 des recherches plus approfondies, il s'avère que d'autres fichiers et dossiers sont également supprimés souvent : un dossier avec un nom de sudoer (généralement le nom court de votre compte admin) dans /private/var/db/sudo/ et un fichier .state avec un nom arbitraire (le generatedUID 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 sont cependant d'une importance mineure.
J'ai testé cela dans une VM de serveur Mac OS X 10.6.8 presque vanille.
Avant d'exécuter sudo rm *
le dossier racine ressemble à ceci - fichiers, dossiers et liens symboliques invisibles 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 dans le dossier racine (s'il en existe) 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 utilisateur unique et reconstruisez les trois liens symboliques supprimés avec ln -s /.../folder /folder
(par exemple ln -s /private/etc /etc
)
-
Si vous avez une sauvegarde et avez supprimé le fichier noyau, essayez de restaurer le fichier mach_kernel, les liens symboliques, le dossier avec votre nom d'utilisateur admin dans ../sudo/ et le fichier d'état manquant. Vous avez besoin d'un disque dur/thumb drive 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 devez probablement ajuster la propriété et les permissions (voir la liste).
"mach_kernel" est également disponible dans le fichier Mise à jour Combo 10.6.8 de Mac OS X et probablement d'autres mises à jour combinées comme Mac OS X Combo Update 10.6.6 et Mac OS X Combo Update 10.6.7. Ainsi, la mise à jour de votre système corrompu avec le dispositif de mise à jour combiné à partir d'une clé USB externe amorçable ou attaché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 de lui-même.
Si vous avez exécuté sudo rm -dR *
vous êtes condamnés sans une sauvegarde appropriée. Mon système n'était plus amorçable par la suite mais, étonnamment, seuls ~524 Mo sur 9860 Mo ont été supprimés après les confirmations d'annulation pour '/System/Library/CoreServices/boot.efi' et '/dev/fd/4'.
Lors d'une deuxième tentative, j'ai obtenu 8445 MB sur 9860 MB supprimés en utilisant sudo rm -dR *
. La première tentative aurait pu être récupérée avec la mise à jour Combo, mais pas les restes dérisoires de la deuxième tentative.