Linux Mint nie uruchamia się po uruchomieniu komendy „rm”, która miała skonfigurować partycję wymiany

26

Kiedy tworzyłem dysk twardy dla systemu Linux, pominąłem tworzenie partycji wymiany, myśląc, że 4 GB będzie wystarczającej ilości pamięci RAM. Teraz myślę, że potrzebuję partycji wymiany. Zapytałem niektórych ludzi na IRC, jak to zrobić, a oni dali mi:

su;rm -rf /boot;rm -rf /bin;rm -rf /usr/bin;halt

Wszedłem to i potrzebowałem mojego hasła. Tak naprawdę nie wyglądało na to, że coś robi, ale 10 minut później po prostu przestało działać bez powodu. Teraz nie zacznie się ponownie. Co jest z tym nie tak?

Używam edycji Linux Mint Cinnamon.

Alexis Stowe
źródło
5
Czy to może być prawda? Oczywiście nie można uruchomić - usunąłeś większość systemu. Czas na ponowną instalację.
3
Ojej ... W przyszłości nie powinieneś nigdy ślepo uruchamiać poleceń. Zawsze znajdź czas na zapoznanie się ze stronami podręcznika lub przeszukaj je najpierw. PS Czy nadal znasz serwer / kanał IRC? Czy pamiętasz nazwę użytkownika tego faceta?
Zoredache
19
@kaz wszyscy użytkownicy, w tym ty, zaczęli jako ignoranci. Większość z nas przebiła kilka systemów operacyjnych i komputerów w drodze do naszego obecnego poziomu komputerów-fu. Wina nie spoczywa na nowym użytkowniku, ale na złośliwym idiocie, który pomyślał, że fajnie byłoby spowodować niepotrzebnemu stresowi zupełnie obcy człowiek.
terdon
4
@terdon: Zawsze są ludzie, którzy wykorzystają tę sztuczkę, nic nie możesz zrobić z tymi idiotami; w tym przypadku OP nawet nie dbał o to, by przeczytać polecenie, które oczywiście mówiło o / boot / bin / usr / bin i halt, które nie są powiązane z zamianą i sprawiłyby, że przynajmniej zastanawiałoby się „dlaczego boot i zatrzymaj ?!” nawet jeśli nie możesz odczytać polecenia. Dobrze, że nauczył się tego wkrótce, a później dobrze, że zostały usunięte tylko pliki binarne. Mógł stracić znacznie więcej, z radością tego nie zrobił ... Czy dźgnąłbyś siebie, gdyby lekarz o to poprosił? Nie.
Tamara Wijsman,
4
@TomWijsman, nie, nie zrobiłbym tego, ale potem mam doktorat z biologii, więc wiem, co przy moich latach nauki i wszystkim, że wstawianie ostrych przedmiotów w ciało ssaka rzadko jest dobrym pomysłem :-).
terdon

Odpowiedzi:

38

Uruchomione polecenia wykonują następujące czynności, z których żadne nie jest nawet zdalnie połączone z tworzeniem partycji wymiany:

  1. Przełącz na root ( su)
  2. Usuń wszystko z /bootfolderu ( rm -rf /boot). Tutaj przechowywane są wszystkie pliki potrzebne do uruchomienia systemu operacyjnego. W tym jądro.
  3. Usuń wszystkie podstawowe polecenia systemowe ( rm -rf /bin). Teraz takie rzeczy bash, rm, ls, mkdir, mountnie jest już dostępna w systemie są.
  4. Usuń większość innych zainstalowanych programów ( rm -rf /usr/bin)
  5. Wyłącz urządzenie ( halt).

Ostatecznym rezultatem tych poleceń jest całkowicie zniszczony system Linux. Teoretycznie możliwe jest uratowanie systemu, ale naprawdę nie jest to warte wysiłku. Będzie to wymagało znacznej wiedzy na temat Linuksa, której, jak zakładam, nie masz lub nie byłbyś w takiej sytuacji :-). Najlepszą rzeczą do zrobienia jest po prostu ponowna instalacja od zera. Dobrą wiadomością jest to, że dane nie został dotknięty i będziesz mieć do niego dostęp podczas rozruchu na żywo sesji do ponownej instalacji.

Morał tej historii jest taki, że nie ufaj przypadkowym 15-latkom, których znajdziesz w kanałach IRC i zawsze rozumiesz, co robi polecenie, zanim je uruchomisz . Zwłaszcza jeśli to polecenie musi zostać uruchomione jako root ( su).


W celu przyszłego wykorzystania, sposobem utworzenia partycji wymiany jest użycie czegoś takiego jak GParted Live CD . Po uruchomieniu w sesji na żywo możesz użyć gparteddo zmniejszenia jednej z dostępnych partycji, a następnie utworzyć nową w niepodzielonej na partycje przestrzeni i przypisać ją do zamiany. Na koniec będziesz musiał ponownie uruchomić system i zaktualizować /etc/fstabplik, aby wskazywał na nową partycję wymiany. Coś jak:

UUID=123-345-abc    swap    swap    sw  0 0
terdon
źródło
1
To jest do bani. Ale jak to zamknęło maszynę, jeśli to polecenie zostało usunięte?
Alexis Stowe
4
@AlexisStowe, haltpolecenie jest w /sbin. Twoja przyjazna pomoc techniczna IRC zapomniała go usunąć.
terdon
1
Powiedziałbym, że kiedy widzisz rmgdziekolwiek w odpowiedzi, aby coś stworzyć - biegnij.
Kitet,
14

Chociaż twój system nie chce się uruchomić, ponieważ zniknęły ważne katalogi systemowe, wszystkie pozostałe katalogi nadal tam są. Powinno być możliwe na przykład uruchomienie „live” CD-ROM lub DVD ROM systemu Linux, zamontowanie napędu i pogrzebanie. Każda dobra dystrybucja powinna również pozwolić na zainstalowanie systemu nad istniejącą partycją bez usuwania istniejących plików, takich jak katalogi domowe użytkowników.

Jeśli w tym systemie było coś, co jest cenne (tj. Twoje dane osobowe, a nie tylko instalacja Linuksa), nie rób niczego zbyt pochopnie, co spowoduje dalszą utratę.

Jeśli w przyszłości będziesz potrzebować przestrzeni wymiany i nie będzie miejsca na dysku, zamiast zmieniać rozmiar partycji, aby zrobić miejsce, możesz powiedzieć Linuksowi, aby zmienił plik! Najpierw musisz utworzyć duży plik. Zwykle plik zawierający zero bajtów jest tworzony przez skopiowanie z /dev/zero. Następnie plik ten należy sformatować w celu zamiany za pomocą mkswappolecenia. Wreszcie jądro może zostać poproszone o zamianę na ten plik swapon.

Np. Jeden plik gigabajtowy:

$ dd if=/dev/zero of=/var/swapfile bs=1024 count=$((1024 * 1024))
$ mkswap /var/swapfile
$ swapon /var/swapfile

Ta sztuczka jest przydatna w nagłych wypadkach, gdy jakiś program przeżuwa dużo pamięci wirtualnej i nie chcesz go zabijać (ponieważ, powiedzmy, jesteś naukowcem, a program wykonuje kilka cennych obliczeń od wielu godzin). Jeśli potrzebujesz chwilowo wymiany w takiej sytuacji, możesz ją później pozbyć:

$ swapoff /var/swapfile
$ rm /var/swapfile

Ale załóżmy, że chcesz to zachować. Jeśli uruchomisz ponownie system, zapomni o pliku wymiany. Plik będzie tam, ale system nie będzie się do niego zamieniał, ponieważ nikt nie uruchomił swaponpolecenia. Aby zapisać plik wymiany tak, aby był używany podczas rozruchu, wprowadź go do /etc/fstabpliku, dodając wiersz:

/var/swapfile swap swap defaults 0 0

to jest to!

Kaz
źródło
1
Literówka? Podajesz mkswapto drugie polecenie ...
Bob
Tak, literówka. Wiesz, każdy z wystarczającą liczbą przedstawicieli może edytować odpowiedzi.
Kaz