W zależności od konfiguracji systemu i polecenia prawdopodobnie straciłeś tylko niektóre pliki - w tym jeden niezbędny - oraz foldery i niektóre łącza sym.
Użycie polecenia rm *
- wykonanego przez administratora w folderze głównym - zwykle usuwa tylko sym-link / etc:
- Uruchom system w trybie pojedynczego użytkownika, sprawdź swój system plików
/sbin/fsck -fy
i podłącz root do odczytu / zapisu za pomocą /sbin/mount -rw /
. Następnie ponownie utwórz sym-link / etc za pomocą ln -s /private/etc /etc
i uruchom ponownie komputer Mac za pomocą shutdown -r now
.
Używając polecenia sudo rm *
- wykonanego przez sudoer w folderze głównym - w standardowej konfiguracji stracisz tylko plik „mach_kernel” i łącza symetrii „etc”, „tmp” i „var”.
(Żadne inne pliki nie zostały usunięte w systemie plików) . Po dalszych badaniach okazuje się, że niektóre inne pliki i foldery są również często usuwane: folder o nazwie sudoer (zwykle krótka nazwa konta administratora) w / private / var / db / sudo / i plik .state z plikiem dowolna nazwa (wygenerowany identyfikator użytkownika konta administratora / sudoer) powiązany z innym plikiem o tej samej nazwie w katalogu / private / var / db / shadow / hash /. Nie mogę ustalić, czy zostały usunięte przez „sudo”, „rm” czy „sudo rm”. Te pliki i foldery mają jednak niewielkie znaczenie.
Przetestowałem to w prawie waniliowej maszynie wirtualnej Mac OS X 10.6.8 Server.
Przed uruchomieniem sudo rm *
folder główny wygląda tak - zawiera niewidoczne pliki, foldery i łącza sym - z 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
Po wykonaniu sudo rm *
tylko jednego pliku i łącza sym zniknęły:
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
Za pomocą niestandardowej instalacji wszystkie inne pliki i dowiązania symboliczne w folderze głównym (jeśli w ogóle istnieją) zostaną również usunięte. Wszystkie niestandardowe foldery (np. / Opt) przetrwają.
Jeśli nie usunąłeś pliku jądra (co jest mało prawdopodobne), spróbuj uruchomić system w trybie pojedynczego użytkownika i odbuduj trzy usunięte sym-linki za pomocą ln -s /.../folder /folder
(np. ln -s /private/etc /etc
)
Jeśli masz kopię zapasową i usunąłeś plik jądra, spróbuj przywrócić plik mach_kernel, dowiązania symboliczne, folder z nazwą użytkownika administratora w ../sudo/ i brakujący plik stanu. Aby przywrócić te pliki z kopii zapasowej, potrzebujesz rozruchowego dysku twardego / napędu kciuka.
Jeśli nie masz kopii zapasowej, spróbuj skopiować plik mach_kernel z innego komputera Mac z tym samym systemem (np. 10.6.8). Odtwórz dowiązania symboliczne. Prawdopodobnie będziesz musiał dostosować własność i uprawnienia (patrz aukcja).
„mach_kernel” jest również dostępny w wersji Mac OS X Combo Update 10.6.8 i prawdopodobnie w innych aktualizatorach combo, takich jak Mac OS X Combo Update 10.6.6 i Mac OS X Combo Update 10.6.7. W ten sposób powinna również działać aktualizacja uszkodzonego systemu za pomocą narzędzia do aktualizacji z zewnętrznego dysku rozruchowego lub podłączonego w trybie dysku docelowego do innego komputera Mac.
Po przywróceniu pliku jądra i dowiązań symbolicznych możesz uruchomić system w trybie superużytkownika i wejść mount -o rw,remount /
i utworzyć brakujący folder w / private / var / db / sudo / with mkdir /private/var/db/sudo/adminname
. Brakujący plik .state sam się odbudowuje.
Jeśli wykonałeś, sudo rm -dR *
jesteś skazany na niepowodzenie bez odpowiedniej kopii zapasowej. Mój system nie był później uruchamialny, ale oszałamiająco tylko ~ 524 MB z 9860 MB zostało usuniętych po zastąpieniu potwierdzeń dla „/System/Library/CoreServices/boot.efi” i „/ dev / fd / 4”.
W drugiej próbie usunąłem 8445 MB z 9860 MB sudo rm -dR *
. Pierwsza próba mogła być również możliwa do odzyskania dzięki aktualizacji combo, niewyraźne pozostałości drugiej próby z pewnością nie są.