Utknął na niebieskim ekranie po uruchomieniu „rm *” w /

12

I przypadkowo wykonywane rm *na /i od tego czasu nie jestem w stanie zobaczyć mój pulpit. Widzę tylko niebieski ekran z obracającym się sprzętem.

Ironia polega na tym, że w jakiś sposób tęskniłem za moim systemem operacyjnym i innymi płytami CD dołączonymi do mojego komputera Mac. Śledziłem ten artykuł na temat uruchamiania w trybie awaryjnym, ale pokazuje pasek postępu przez długi czas, a następnie ponownie utknął na niebieskim ekranie

Dołączony jest ekran, który widzę podczas uruchamiania.

wprowadź opis zdjęcia tutaj

Nie mogę też przejść do trybu awaryjnego, więc jak mogę wrócić do działającego systemu?

PS: Zastanawiam się także, czy będę mógł odzyskać ustawienia pulpitu bez narażania wszystkich ustawień? Szczególnie interesuje mnie oprogramowanie instalowane za pomocą domowego browaru, baz danych itp. Czy można przywracać lub kopiować usunięte pliki za pomocą naprawy na płycie CD ?. Są tam również moje ukryte pliki zawierające plik bash_profile itp. Czy możesz wskazać, jak mam postępować?

aktualizacja Loguję się do trybu pojedynczego. Sprawdź obraz. Co mam teraz zrobić?

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

aktualizacja nr 3

wprowadź opis zdjęcia tutaj

Wreszcie

wprowadź opis zdjęcia tutaj

Volatil3
źródło
Czy pamiętasz dokładne polecenie, które wykonałeś, użytkownika, z którym byłeś zalogowany w tym czasie i jakie dane wyjściowe wygenerowało polecenie?
nohillside
Czy korzystałeś z -ropcji (lub -R)? Jeśli tego nie zrobiłeś, to nie powinno się zdarzyć.
0942v8653
Nie, wiem, że biegałem z gwiazdką. Usunięto tylko pliki. Wszystkie foldery są tam, ponieważ nawet po uruchomieniu polecenia korzystałem z mojego systemu w GUI, tylko nie mogę go użyć po ponownym uruchomieniu
Volatil3
@patrix było tylko wyjście, że informowało, że foldery nie zostały usunięte, ponieważ były katalogiem
Volatil3
2
W tej chwili Twoim największym zmartwieniem jest powrót do działającego systemu, a nie to, czy instalacja Homebrew przetrwała.
nohillside

Odpowiedzi:

24

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 -fyi 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 /etci 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.

po raz kolejny

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ą.

klanomath
źródło
Wszystko to jest wspaniałe, poprawne i niesamowite, ale z mojego doświadczenia wynika, że ​​jeśli / System lub / Library zostały trafione, system nie może uruchomić się z szarego ekranu lub przejść obok niego. Niebieski ekran podczas uruchamiania oznacza, że ​​system operacyjny został wypisany, uruchomił się poprawnie (lub w większości przypadków) i rozpoczęła się faza uruchamiania środowiska użytkownika. Łatwym sprawdzeniem tego byłoby bardzo ostrożne usunięcie pliku /var/db/.AppleSetupDone w trybie pojedynczego użytkownika, a następnie sprawdzenie, czy można utworzyć nowego użytkownika administracyjnego i wykonać przynajmniej jedną kopię zapasową Time Machine, aby zobaczyć, które pliki użytkownika można odzyskać .
bmike
@klanomath warto zauważyć, że rm * nie usunął plików obrazów z katalogu głównego. Zastanawiam się dlaczego.
Volatil3
@klanomath-rw-r-----@ 1 Adnan staff 2404856 Feb 26 21:33 mountain.jpg
Volatil3
@klanomath plik jpg został pobrany z sieci. Byłem zalogowany z tego samego użytkownika, który uruchomił polecenie rm *.
Volatil3
1
@ Volatil3 Może rm po prostu zrezygnował z usuwania plików przed osiągnięciem mountain.jpg, ponieważ naprawdę nie udało się usunąć wszystkich tych folderów. Albo góra była zbyt duża, by ją usunąć. ;-) Testując sudo rm -dR * w katalogu głównym mojej maszyny wirtualnej, otrzymałem również niespójne wyniki: po prostu sprawdź ostatnią część mojej odpowiedzi. W pierwszej próbie usunięto tylko 7% treści, w drugiej próbie 85%.
klanomath