Dlaczego usuwanie starych jąder jest niebezpieczne?

36

Skończyło mi się miejsce na dysku rozruchowym, więc postanowiłem usunąć stare jądra. Znalazłem tę stronę, która dokładnie opisuje, co powinienem zrobić: Dokumentacja Lubuntu: Usuń stare jądra .

Usunąłem najstarsze jądro ręcznie i teraz jest w porządku, ale nie rozumiem jednej rzeczy: na końcu artykułu jest trochę kodu, który może usunąć wszystkie stare wersje jądra, ale jest oznaczony jako tylko dla zaawansowanych użytkowników.

Naprawdę nie rozumiem, jakie jest niebezpieczeństwo. Brzmi głupio, ale wydaje się, że mówią, że może być więcej niż jedno jądro używane przez określoną maszynę w tym samym czasie.

Czy to możliwe, że różne aplikacje na moim komputerze Ubuntu mogą jednocześnie używać różnych jąder? Dlaczego usuwanie wszystkich starych jąder jest automatycznie uważane za niebezpieczne?

Siergiej
źródło
8
W rzeczywistości w artykule nie ma słów „niebezpieczeństwo” i „niebezpieczne”. Jak doszedłeś do tak rażąco przesadzonego wniosku?
mikewhthing
2
Kilka razy uaktualniłem do najnowszego jądra i usunąłem moje stare jądro przed ponownym uruchomieniem, ale tylko po to, aby przekonać się, że (w moim konkretnym systemie) jądro nie działa i system nie chce się uruchomić. Teraz najpierw uruchamiam ponownie, a następnie usuwam stare jądro, jeśli wszystko jest w porządku.
Mateusz

Odpowiedzi:

50

Usuwanie starych jąder nie jest z natury niebezpieczne, ale jeśli usuniesz wszystkie jądra i uruchomisz się ponownie, pozostaniesz na ekranie rozgniewanego Grub. Naprawianie, które wymaga znacznej wiedzy (tak, ale z apt-get install linux-generickońcem).

Za pierwszym razem jest to dość ekscytujące, ale ludzie, którzy chcą wyczyścić menu Grub lub odzyskać trochę miejsca na dysku, nie szukają emocji.

Niebezpieczeństwo pochodzi od użytkowników kopiowaniem wklejanie fragmentu kodu, który -unbeknownst do nich i bez uznając risks- nie ma zastosowania. Istnieje wiele przykładów wykrywania starych jąder, a kilka z nich jest idealnych. Nawet mój ostatni wysiłek wciąż ma swoje pułapki. I mówimy o problemie, który można naprawić; wiele postów na Ask Ubuntu może prowadzić do trwałej utraty danych, jeśli zostanie użyty nieprawidłowo.

Staramy się zabezpieczyć przed uszkodzeniem, znakując ryzyko, aby uświadomić użytkownikom potencjalne problemy . W najlepszych scenariuszach użytkownik będzie przygotowany i wyposażony, aby poradzić sobie z problemem, aw najgorszym przypadku przynajmniej nie będzie mógł narzekać, że nie został ostrzeżony.

Oli
źródło
11
Nie usuwaj wszystkich swoich jąder (oczywiście), ale także nie usuwaj aktualnie działającego jądra, jeśli właśnie zainstalowałeś zaktualizowane jądro i jeszcze nie uruchomiłeś się ponownie. Czemu? Jeśli coś się zepsuje w zaktualizowanym jądrze, zawsze możesz wybrać poprzednie jądro w Grub i wrócić do pracy. W przeciwnym razie utkniesz w systemie, którego nie można uruchomić i będziesz musiał zagrać w „grę LiveCD” (nie jest to fajna gra, BTW).
Nathan Osman,
1
To prawie tak zabawne jak dd if=/dev/zero of=/dev/sda bs=512 count=1. Nie pamiętam, co próbowałem zrobić (coś o wielu menedżerach rozruchów, które denerwują moje życie). Spędziłem około siedmiu godzin z LiveCD, próbując naprawić tabele partycji.
phyrfox,
1
To takie proste, zachowaj (przynajmniej) jedno jądro, które jest przetestowane i na pewno działa. Ktoś - @NathanOsman - musiał chyba wyrazić to słowami. Druga ważna lekcja, której się tutaj nauczyłeś, nie rób rzeczy, o których nie wiesz, jakie są konsekwencje.
Nicolai
1
Nie użyłbym słowa „ekscytujący”, ale kiedy to zrobiłem, czułem intensywne uczucie.
MDeBusk
Po rozwiązaniu problemów z jądrem w przeszłości jestem znacznie szczęśliwszy, gdy zostawiam trzy jądra. Generalnie używam obecnie działającego jądra, najnowszego jądra i tego tuż przed bieżącym. To daje mi najnowszy przy ponownym uruchomieniu, ten znany z działania i poprzedni, jeśli z jakiegoś powodu się nie powiedzie. To prawdopodobnie przesada, ale jest zatwierdzona przez CYA.
flickerfly
4

Stare jądra są częścią pakietów. Jeśli po prostu usuniesz /boot/vmlinuz-3.13.0-44-generic, pozostawisz resztki okruchów.

Najpierw dowiedz się, którego jądra używasz. NIE usuwaj niczego z tą wartością:

$ uname -r  
3.13.0-49-generic  

YMMV. Następnie zapytaj, dpkgco wie:

$ dpkg -l linux-*

Niektóre z tych pakietów można usunąć, ale co jeszcze tam jest? Za pomocą jednej linii wyodrębnionej (w systemie MY) z danych wyjściowych dpkg -l linux-*:

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

Teraz zobaczymy, co inne paczki mają -3.13.0-44w swoich nazwach:

$ dpkg -l *-3.13.0-44*

Po przeprowadzeniu ostatecznej kontroli, aby upewnić się, że bieżące jądro ( uname -r) NIE znajduje się na liście pakietów, możesz rozpocząć usuwanie ich przez wybrany system zarządzania pakietami.

waltinator
źródło
0

Ostatnim razem, gdy usunąłem swoje stare jądra, pożyczyłem stary fragment kodu. Ten fragment kodu wymagał ponownego uruchomienia po zainstalowaniu nowego jądra, więc zostałem bez jądra. Na szczęście złapałem to przed ponownym uruchomieniem, ale jak powiedzieli inni, mogłem pozostawić „zły ekran grub”.

Krótko mówiąc, jest to po prostu coś, co można łatwo zepsuć, co powoduje, że system z cegły jest trudny do odzyskania.

alfonsojon
źródło
0

To nie jest niebezpieczne. Korzystając z systemu Linux, możesz robić dokładnie to, co chcesz, jeśli znasz właściwe polecenia.

W /bootkatalogu możesz zrobić prosty, ls -laaby mieć długą listę, a także znaleźć ukryte pliki lub katalogi (których nie powinno tam być, jeśli takie istnieją!).

Na podstawie tych informacji możesz ocenić daty i pliki starych wersji. Nie usuwaj wszystkich, ale najstarsze pliki, które odpowiadają tej samej wersji.

W pewnym momencie myślałem, że jeśli możliwe jest skompilowanie jądra ze źródła, konieczne będzie zmodyfikowanie nowego. .configPlików, które nie sądzę, jest to przypadek, jak na swoje wyjaśnienia, będzie tam pozostać.

Jeśli więc zdarzy się, że po usunięciu starych plików odpowiadających jednej wersji i po ponownym uruchomieniu komputera może się zdarzyć, że napotkasz panikę jądra.

Prostym rozwiązaniem jest uruchomienie komputera z systemem Linux na żywo przez USB lub CD / DVD. chrooti przebuduj jądro za pomocą narzędzi takich jak dracut.

Nitin J Mutkawoa
źródło