Jak przywrócić system po przypadkowym usunięciu wszystkich jąder?
69
Próbowałem usunąć stare jądra, ale musiałem usunąć wszystkie jądra na moim laptopie z Ubuntu 11.04. Czy można to naprawić za pomocą rozruchu USB lub montażu dysku twardego w innym systemie?
Uruchom na żywo CD (lub na żywo USB), zamontuj niektóre systemy, chroot na nim i zainstaluj jądro. Po pomyślnej instalacji jądra odmontuj systemy plików.
Otwórz terminal
Zamontuj partycję Ubuntu: sudo mount /dev/sdXY /mnt
Zamontuj specjalne partycje:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
(opcjonalnie) Gdy jesteś podłączony do sieci, użyj serwerów DNS ze swojego środowiska Live (w przeciwnym razie nazwy hosta nie będzie można rozwiązać):
cp /etc/resolv.conf /mnt/etc/resolv.conf
Chroot do /mnt:sudo chroot /mnt
Zainstaluj jądro Linuksa: apt-get install linux-image-generic(nie wymaga sudo, ponieważ jesteś rootem po chroocie)
Po udanej instalacji jądra wyjdź z chroota i odmontuj niektóre systemy plików:
Tak bym zasugerował. Nie rozumiem, dlaczego to nie zadziała.
Oli
Ok, dzięki za potwierdzenie. Dodałem również kroki końcowe, odmontowywanie /mnt. Ubuntu zwykle zajmuje się odmontowywaniem / synchronizowaniem systemów plików, ale dla mnie wygląda to na czystsze.
Lekensteyn
1
@MaheshKatta Najpierw musisz zainstalować RAID. Więc zamiast kroku drugiego (gdzie montujesz pojedynczy dysk) będziesz mapować /dev/mdxxxdysk - zakładając, że to mdadm.
Oli
4
@James Edytuj /etc/resolv.conf(usuń go, jeśli jest to dowiązanie symboliczne) i umieść nameserver 8.8.8.8w nim coś podobnego (publiczny serwer DNS Google). Wymień go, jeśli to konieczne.
Lekensteyn
3
Nvm. Wygląda na to, że musiałem edytować plik w chroot. Może powinieneś dodać do odpowiedzi cp /etc/resolv.conf /mnt/etc/resolv.confprzed pójściem do chroot. To i tak zadziałało
Peter Raeves,
56
Ta rozszerzona procedura uwzględnia większość komplikacji, które mogą wystąpić, w tym problemy z połączeniem z Internetem w chroot, nie wiedząc, który pakiet jądra zainstalować (przed Ubuntu 12.10, nie zawsze tak będzie linux-image-generic), nie wiedząc od razu, która partycja, a nawet który dysk fizyczny zawiera /system plików i ma osobną /bootpartycję.
Nie napisałem tego w odniesieniu do żadnej z innych procedur tutaj, chociaż zauważysz pewne podobieństwa. Oparłem ją luźno na tej procedurze (chociaż te instrukcje dotyczą czegoś zupełnie innego, obszernie je dostosowałem i tylko niektóre polecenia, nie proza, są kopiowane).
Usunąłeś wszystkie pakiety jądra, a Ubuntu nie może uruchomić się bez zainstalowanego jądra. Rozwiązaniem jest więc uruchomienie z płyty CD / DVD / USB chrootna żywo do zainstalowanego systemu i zainstalowanie w nim jądra.
Uruchom komputer z dysku CD / DVD na żywo Ubuntu lub dysku flash USB na żywo.
Wybierz Wypróbuj Ubuntu (nie instaluj Ubuntu ).
Gdy pojawi się pulpit, upewnij się, że masz połączenie z Internetem. Jeśli nie, połącz się z Internetem. Jednym ze sposobów sprawdzenia, czy masz połączenie z Internetem, jest otwarcie przeglądarki internetowej. Możesz nawet postępować zgodnie z pozostałymi instrukcjami, podnosząc odpowiedź Ask Ubuntu w przeglądarce internetowej, w systemie CD / DVD / USB na żywo. Zdecydowanie polecam to zrobić.
Otwórz okno terminala za pomocą Ctrl+ Alt+ T.
W oknie terminala uruchom to polecenie, aby wyświetlić listę swoich partycji:
sudo parted -l
Zobaczysz coś takiego (ale nie będzie dokładnie tak):
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 20.4GB 20.4GB primary ext4 boot
2 20.4GB 21.5GB 1072MB extended
5 20.4GB 21.5GB 1072MB logical linux-swap(v1)
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0
has been opened read-only.
Error: Can't have a partition outside the disk!
Sprawdź uzyskane dane wyjściowe, aby określić nazwę urządzenia partycji zawierającej /system plików systemu Ubuntu zainstalowanego na dysku twardym (który naprawiasz).
Jeśli masz tylko jedną ext4partycję, to ta.
Jeśli masz więcej niż jedną ext4partycję, prawdopodobnie jest to pierwsza. Jeśli jednak pierwszy jest bardzo mały - mniej niż gigabajt - może to być osobna /bootpartycja (pamiętaj też o tym).
Należy pamiętać, że to, czy bootwymieniono na liście, Flagsma bardzo niewiele wspólnego z tym, czy partycja jest oddzielną /bootpartycją. Mój system, którego informacje wymieniono powyżej, nie ma osobnej /bootpartycji.
Nazwa urządzenia dla partycji zaczyna się od nazwy urządzenia dla dysku fizycznego, podanej bezpośrednio Diskw drugim wierszu. Następnie wystarczy dodać numer partycji na końcu tego. Tak więc nazwa urządzenia dla partycji zawierającej mój/ system plików to /dev/sda1. Oto dwie linie, w których znalazłem te informacje:
Disk /dev/sda: 21.5GB
1 1049kB 20.4GB 20.4GB primary ext4 boot
Jeśli masz więcej niż jeden dysk fizyczny, otrzymasz więcej niż jedną listę, jak pokazano powyżej. Ale chyba, że masz zainstalowany inny system uniksowy, prawdopodobnie będziesz mieć tylko jeden dysk zawierający ext4partycje, przynajmniej bez celowego tworzenia ich na innym dysku. Jeśli masz wiele dysków z ext4partycjami, ext4partycja zawierająca /system plików prawdopodobnie znajduje się na dysku, który również zawiera linux-swappartycję.
Jest możliwe , że system Ubuntu /system plików jest na partycji innej niż typu ext4. Kiedy tak się dzieje, prawie zawsze ext3i prawie zawsze na dość starym systemie. Jest to bardzo rzadkie, chyba że samemu celowo skonfigurujesz takie rozwiązanie.
Zapamiętaj nazwę urządzenia partycji, która zawierała twój /system plików (lub zapisz go). Jeśli jest inny niż /dev/sda1, zastąpisz /dev/sda1go w poniższych krokach.
(Jeśli wyglądało na to, że masz oddzielną /bootpartycję, pamiętaj też nazwę tego urządzenia).
Zamontuj /system plików /mnti podłącz jego /devsystem plików:
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
Sprawdź, czy uszkodzony system Ubuntu, który naprawiasz, ma osobną /bootpartycję, którą należy zamontować osobno. (Jeśli jesteś pewien, że tak nie jest, możesz to pominąć).
Aby to sprawdzić, uruchom:
ls /mnt/boot
Jeśli jest wyjście (jak grub memtest86+.bin memtest86+_multiboot.bin, ale niekoniecznie dokładnie to), wtedy uszkodzony system znajduje /bootsię na tej samej partycji co jego /i nie musisz montować niczego, aby uzyskać do niego dostęp.
Ale jeśli nie ma danych wyjściowych, będziesz musiał zamontować /bootsystem plików:
sudo mount BOOT-PARTITION /mnt/boot
Zastąp BOOT-PARTITIONnazwą urządzenia /bootpartycji (patrz krok 6 powyżej).
chroot do uszkodzonego systemu, podłącz pozostałe ważne wirtualne systemy plików i ustaw niektóre ważne zmienne środowiskowe:
sudo chroot /mnt
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
Sprawdź, czy dostęp do Internetu działa od wewnątrz, chrootpoprzez uruchomienie pingpewnego niezawodnego hosta, o którym wiadomo, że normalnie reaguje na polecenia ping:
ping -c 5 www.google.com
Powinieneś zobaczyć coś takiego:
PING www.l.google.com (74.125.131.147) 56(84) bytes of data.
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=1 ttl=44 time=61.3 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=2 ttl=44 time=62.3 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=3 ttl=44 time=61.8 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=4 ttl=44 time=63.8 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=5 ttl=44 time=66.6 ms
--- www.l.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 61.367/63.212/66.608/1.897 ms
Jeśli wygląda to głównie tak, a liczba poprzednia % packet lossjest mniejsza niż 100, oznacza to, że połączenie internetowe w chroot:
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
Działa, więc możesz pominąć krok 11 .
Jeśli wygląda tak głównie, a poprzednia liczba % packet lossto 100, połączenie wymaga rozwiązania problemu . Upewnij się, że połączenie w systemie Live CD (na przykład przez przeglądarkę internetową lub uruchamiając to samo polecenie w osobnej, nie chrootedytowanej zakładce / oknie terminala) działa. Upewnij się, że wpisujesz polecenie poprawnie. Użyj, www.google.comjeśli nie byłeś.
Jeśli dane wyjściowe wcale nie wyglądają tak, jak powyższe, ale zamiast tego mówi ping: unknown host www.google.com, to sieć nie działa jeszcze w chroot.
Skonfiguruj sieć w chroot. Pomiń ten krok, chyba że wystąpił unknown hostbłąd w kroku 10 powyżej.
Aby skonfigurować sieć, wykonaj kopię zapasową hostspliku uszkodzonego systemu , a następnie skopiuj na żywo system CD hostsi resolv.confpliki. (Nie trzeba tworzyć kopii zapasowej wersji uszkodzonego systemu resolv.conf, ponieważ plik ten jest automatycznie regenerowany w locie).
Otwórz nową kartę Terminal ( Ctrl+ Shift+ T) lub, jeśli wolisz, nowe okno Terminal ( Ctrl+ Shift+ Nlub po prostu Ctrl+ Alt+ T). Uruchom w nim następujące polecenia:
( exitPolecenie na końcu zamyka nową kartę / okno.)
Powtórz krok 10 powyżej, aby upewnić się, że dostęp do Internetu działa teraz z poziomu chroot. Powinno.
Zastanów się, który pakiet jądra powinien zostać zainstalowany. Zwykle tak będzie linux-image-generic. Ale nie zawsze.
Jeśli nie masz pewności, którą zainstalować, będzie to zależeć częściowo od tego, którą wersję Ubuntu zainstalowałeś, a częściowo od innych informacji. Jeśli nie masz pewności, którą wersję Ubuntu zainstalowałeś, dowiedz się, uruchamiając to polecenie (w chroot, a nie w osobnym oknie / zakładce Terminal):
lsb_release -r
Na Ubuntu 12.10 (kolejna wersja Ubuntu, obecnie w fazie rozwoju), zawsze tak będzie linux-image-generic. (Zobacz to , to i to .)
W systemie Ubuntu 12.04 LTS prawdopodobne są linux-image-generici linux-image-generic-pae. (W przeciwieństwie do poprzednich wersji 12.04 nie ma już oddzielnego jądra serwera i pulpitu).
Jeśli zainstalowany system Ubuntu (który naprawiasz) to wersja 64-bitowa, użyj linux-image-generic. ( linux-image-generic-paedotyczy tylko systemów 32-bitowych).
Możliwe jest zainstalowanie 32-bitowego systemu Ubuntu na komputerze 32-bitowym lub 64-bitowym. Ponadto możesz użyć 32-bitowego lub 64-bitowego dysku CD na żywo do naprawy zainstalowanego 32-bitowego systemu. Jeśli więc nie wiesz, czy zainstalowany system Ubuntu jest 32-bitowy, czy 64-bitowy, sprawdź, uruchamiając to polecenie (w chroot, nie w osobnym oknie / zakładce Terminal):
dpkg-architecture -qDEB_HOST_ARCH_BITS
Wyjście będzie albo 32albo 64.
(Należy pamiętać, że nieuname -m jest to poprawny sposób na znalezienie tych informacji, ponieważ nawet gdy zostanie uruchomiony w , poinformuje Cię o architekturze działającego jądra , które jest jądrem systemu Live CD, a nie jądrem zainstalowanego (uszkodzonego) systemu).chroot
Jeśli zainstalowany system Ubuntu (który naprawiasz) jest wersją 32-bitową, najlepsze jądro do użycia będzie zależeć od ilości pamięci RAM. Polecam:
linux-image-generic jeśli masz mniej niż 3 GB pamięci RAM
linux-image-generic-pae jeśli masz 3 GB pamięci RAM lub więcej.
(W ten sposób instalator Ubuntu wybiera, który z nich utworzone, odkąd instalator zyskał możliwość instalowania jądra PAE. Zobacz rozdzielczość do tego błędu . Jeśli chcesz dowiedzieć się, co PAE jest zobaczyć ten artykuł w Wikipedii . Jeśli chcesz dowiedz się więcej o PAE w Ubuntu, zobacz stronę wiki Ubuntu .)
Jeśli nie wiesz, ile masz pamięci RAM, uruchom to polecenie, aby dowiedzieć się:
grep MemTotal /proc/meminfo
To jest wymienione w kilobajtach . Aby przekonwertować na gigabajty , podziel przez 1 048 576 (1024 2 ).
3 koncerty = 3 145 728 kB
Na Ubuntu zwalnia przed 12,04, możliwości są prawdopodobne linux-image-generic, linux-image-generic-paei linux-image-server.
Jeśli korzystasz z systemu Ubuntu Server, użyj linux-image-server.
W przeciwnym razie postępuj zgodnie z powyższymi wskazówkami dla systemów 12.04.
To moment, na który czekałeś! Zainstaluj jądro w uszkodzonym systemie.
(Tak jak poprzednio, chyba że wyraźnie zaznaczono inaczej, te polecenia są uruchamiane w chrootosobnym oknie / zakładce Terminala).
Zamknij system Live CD / DVD / USB, wyjmując Live CD / DVD lub dysk flash USB. Uruchom system zainstalowany na dysku twardym, który właśnie naprawiłeś. Zainstalowałeś w nim pakiet jądra (i jako część instalacji, dostarczone przez niego jądro zostanie dodane z powrotem do menu uruchamiania GRUB2). Jeśli wszystko działało poprawnie, system powinien uruchomić się bez problemów. (Myślę, że tym razem możliwe jest, że uruchomienie zajmie trochę więcej czasu niż zwykle).
OŚWIADCZENIE: Nie testowałem powyższej procedury na każdym możliwym systemie Ubuntu, więc możliwe jest, że istnieje błąd, którego nie zidentyfikowałem.
W przyszłości polecam zawsze starać się, aby dwa jądra były zainstalowane. Dobrze jest mieć dwa, na wypadek, gdyby jeden z nich przestał działać z jakiegokolwiek powodu (możesz wybrać drugi w menu uruchamiania GRUB2). Dodatkowo, jeśli zamierzasz zachować dwa jądra i przypadkowo odinstalujesz jedno z nich więcej niż chciałeś i zrestartujesz komputer, nadal masz jedno z którego chcesz uruchomić system.
To może być najlepsze pisemne wyjaśnienie, jak zrobić coś złożonego w Linuksie, jakie kiedykolwiek czytałem. Dzięki
ZincX,
Wow, to jest bardzo pomocne! Wielkie dzięki!
Rafał Cieślak
2
Dziękuję bardzo Eliaszowi - po głupim usunięciu wszystkich moich obrazów linuksowych uratowałeś mi bekon. Jedyny czkawka, którą miałem, to krok: sudo cp /etc/resolv.conf /mnt/etc/resolv.conf Dostałem błąd „cp: nie pisanie przez wiszące dowiązanie symboliczne` /mnt/etc/resolv.conf ”. Znalazłem ten wątek i wykonałem instrukcje według jednego plakatu: „rm /mnt/etc/resolv.conf” przed „cp /etc/resolv.conf /mnt/etc/resolv.conf”, aby rozwiązać problem z wiszącym dowiązaniem symbolicznym.
@ xcal400 /etc/resolv.confjest obecnie zarządzany przez resolvconf, będzie automatycznie generowany podczas korzystania z NetworkManagera i można go bezpiecznie usunąć przy użyciu, rm /etc/resolv.confjak się dowiedziałeś.
Lekensteyn
3
To powinna być zaakceptowana odpowiedź. Dzięki!
Jean-Michel Garcia
0
Kiedy usunąłem swoje jądro, znalazłem to rozwiązanie na forach Ubuntu. Śledziłem każdy krok i system został odzyskany. Mam nadzieję, że to ci pomoże.
Chroot może działać, chroot oznacza, że po uruchomieniu systemu zmieniasz główny system plików. Na przykład zacząłeś od live CD, ale zmieniasz katalog główny „/” na miejsce, w którym jest zainstalowane twoje Ubuntu.
Powiedzmy, że twój ubuntu jest zainstalowany na / dev / sda2, a następnie możesz wypróbować następujące polecenia:
teraz jesteś rootem "/" jest na / dev / sda2, spróbuj zainstalować jądro
apt-get update
apt-get install linux-image-2.6.32-26-generic
update-initramfs -cv -k all
update-grub
Musiałem tu trochę zgadnąć, ponieważ nigdy wcześniej nie musiałem tego robić, ale o tym powinno być. Nie wiem, czy pojawi się ostrzeżenie o błędzie fstab (np. Nie można znaleźć roota).
Teraz musisz wyczyścić niektóre rzeczy i odmontować zamontowane partycje: Kod:
Dlaczego miałbyś wymieniać /etc/hostsi usuwać /sbin/initctl? Jest tam z jakiegoś powodu.
Lekensteyn,
Wydaje się, że ostatecznie opiera się na LiveCDCustomization ; niektóre kroki nie są konieczne do naprawy już zainstalowanego systemu. W szczególności nie musisz nic robić z /sbin/initctllub dbus-uuidgenlub dpkg-divert. Być może trzeba będzie wymienić, /etc/hostsaby połączyć się z Internetem, ale nie zwykle, a jeśli tak, należy odłożyć oryginał. W zainstalowanym systemie (zamiast na żywo CD, który uruchamia się, a następnie rozpakowuje system plików squashfs), nie musisz uruchamiać update-initramfsani nawet update-grubpo instalacji jądra.
Eliah Kagan
Ponadto, ponieważ ta procedura nie instaluje żadnego metapakietu jądra, jądro może nie zostać później poprawnie zaktualizowane, chyba że zostanie zainstalowany metapakiet. Co więcej, linux-image-2.6.32-26-genericnie będzie właściwym jądrem dla większości ludzi do zainstalowania.
Eliah Kagan
0
Po usunąłem stare jądra z Trusty14.04 Wczoraj (FTR: ja nie nie usunąć dwa ostatnie z nich!) Mój system nie będzie już uruchomić. GRUB pokazał
Error: File not found
Error: You need to load the kernel first
Nie mam pojęcia dlaczego.
Następnie wykonałem doskonałe instrukcje Eliaha Kagana, aby zainstalować linux-image-genericz płyty CD na żywo. Zainstalował 150 MB nowego jądra, ale niestety to nie rozwiązało problemu.
Na szczęście znalazłem tę stronę . Boot-RepairNarzędzie dostał to dobrze, mój system jest uruchomiony ponownie.
Chciałem tylko dodać moje doświadczenie, które przeszedłem dzisiaj podczas aktualizacji do Willy. Trochę posprzątałem i znalazłem się tylko z memtestem. Google sprawiło, że zrozumiałem, że usunąłem jądra. Jednym z ograniczeń było wolne połączenie sieciowe, więc pobieranie pełnego ISO nie było opcją. Użyłem więc Ubuntu Minimal CD (tylko 40 MB) i uruchomiłem na nim. Po wykryciu opcji sprzętowej (która pomogła mi połączyć się z siecią bezprzewodową) przeszedłem do opcji powłoki. Postępowałem zgodnie z instrukcjami @Lekensteyn i udało mi się. kilka rzeczy: musisz skopiować resolv.confprzed przejściem do chroot, w przeciwnym razie twój DNS zostanie wkręcony, a ponieważ zalogowany użytkownik nie ma roota w sudo.
Wiem, że jest stary, ale pomyślałem, że dodanie tej odpowiedzi doda wartość tym, którzy napotkają problem.
Odpowiedzi:
Uruchom na żywo CD (lub na żywo USB), zamontuj niektóre systemy, chroot na nim i zainstaluj jądro. Po pomyślnej instalacji jądra odmontuj systemy plików.
sudo mount /dev/sdXY /mnt
Zamontuj specjalne partycje:
(opcjonalnie) Gdy jesteś podłączony do sieci, użyj serwerów DNS ze swojego środowiska Live (w przeciwnym razie nazwy hosta nie będzie można rozwiązać):
/mnt
:sudo chroot /mnt
apt-get install linux-image-generic
(nie wymaga sudo, ponieważ jesteś rootem po chroocie)Po udanej instalacji jądra wyjdź z chroota i odmontuj niektóre systemy plików:
sudo reboot
źródło
/mnt
. Ubuntu zwykle zajmuje się odmontowywaniem / synchronizowaniem systemów plików, ale dla mnie wygląda to na czystsze./dev/mdxxx
dysk - zakładając, że to mdadm./etc/resolv.conf
(usuń go, jeśli jest to dowiązanie symboliczne) i umieśćnameserver 8.8.8.8
w nim coś podobnego (publiczny serwer DNS Google). Wymień go, jeśli to konieczne.cp /etc/resolv.conf /mnt/etc/resolv.conf
przed pójściem do chroot. To i tak zadziałałoTa rozszerzona procedura uwzględnia większość komplikacji, które mogą wystąpić, w tym problemy z połączeniem z Internetem w
chroot
, nie wiedząc, który pakiet jądra zainstalować (przed Ubuntu 12.10, nie zawsze tak będzielinux-image-generic
), nie wiedząc od razu, która partycja, a nawet który dysk fizyczny zawiera/
system plików i ma osobną/boot
partycję.Nie napisałem tego w odniesieniu do żadnej z innych procedur tutaj, chociaż zauważysz pewne podobieństwa. Oparłem ją luźno na tej procedurze (chociaż te instrukcje dotyczą czegoś zupełnie innego, obszernie je dostosowałem i tylko niektóre polecenia, nie proza, są kopiowane).
Usunąłeś wszystkie pakiety jądra, a Ubuntu nie może uruchomić się bez zainstalowanego jądra. Rozwiązaniem jest więc uruchomienie z płyty CD / DVD / USB
chroot
na żywo do zainstalowanego systemu i zainstalowanie w nim jądra.Uruchom komputer z dysku CD / DVD na żywo Ubuntu lub dysku flash USB na żywo.
Wybierz Wypróbuj Ubuntu (nie instaluj Ubuntu ).
Gdy pojawi się pulpit, upewnij się, że masz połączenie z Internetem. Jeśli nie, połącz się z Internetem. Jednym ze sposobów sprawdzenia, czy masz połączenie z Internetem, jest otwarcie przeglądarki internetowej. Możesz nawet postępować zgodnie z pozostałymi instrukcjami, podnosząc odpowiedź Ask Ubuntu w przeglądarce internetowej, w systemie CD / DVD / USB na żywo. Zdecydowanie polecam to zrobić.
Otwórz okno terminala za pomocą Ctrl+ Alt+ T.
W oknie terminala uruchom to polecenie, aby wyświetlić listę swoich partycji:
Zobaczysz coś takiego (ale nie będzie dokładnie tak):
Sprawdź uzyskane dane wyjściowe, aby określić nazwę urządzenia partycji zawierającej
/
system plików systemu Ubuntu zainstalowanego na dysku twardym (który naprawiasz).Jeśli masz tylko jedną
ext4
partycję, to ta.Jeśli masz więcej niż jedną
ext4
partycję, prawdopodobnie jest to pierwsza. Jeśli jednak pierwszy jest bardzo mały - mniej niż gigabajt - może to być osobna/boot
partycja (pamiętaj też o tym).Należy pamiętać, że to, czy
boot
wymieniono na liście,Flags
ma bardzo niewiele wspólnego z tym, czy partycja jest oddzielną/boot
partycją. Mój system, którego informacje wymieniono powyżej, nie ma osobnej/boot
partycji.Nazwa urządzenia dla partycji zaczyna się od nazwy urządzenia dla dysku fizycznego, podanej bezpośrednio
Disk
w drugim wierszu. Następnie wystarczy dodać numer partycji na końcu tego. Tak więc nazwa urządzenia dla partycji zawierającej mój/
system plików to/dev/sda1
. Oto dwie linie, w których znalazłem te informacje:Jeśli masz więcej niż jeden dysk fizyczny, otrzymasz więcej niż jedną listę, jak pokazano powyżej. Ale chyba, że masz zainstalowany inny system uniksowy, prawdopodobnie będziesz mieć tylko jeden dysk zawierający
ext4
partycje, przynajmniej bez celowego tworzenia ich na innym dysku. Jeśli masz wiele dysków zext4
partycjami,ext4
partycja zawierająca/
system plików prawdopodobnie znajduje się na dysku, który również zawieralinux-swap
partycję.Jest możliwe , że system Ubuntu
/
system plików jest na partycji innej niż typuext4
. Kiedy tak się dzieje, prawie zawszeext3
i prawie zawsze na dość starym systemie. Jest to bardzo rzadkie, chyba że samemu celowo skonfigurujesz takie rozwiązanie.Zapamiętaj nazwę urządzenia partycji, która zawierała twój
/
system plików (lub zapisz go). Jeśli jest inny niż/dev/sda1
, zastąpisz/dev/sda1
go w poniższych krokach.(Jeśli wyglądało na to, że masz oddzielną
/boot
partycję, pamiętaj też nazwę tego urządzenia).Zamontuj
/
system plików/mnt
i podłącz jego/dev
system plików:Sprawdź, czy uszkodzony system Ubuntu, który naprawiasz, ma osobną
/boot
partycję, którą należy zamontować osobno. (Jeśli jesteś pewien, że tak nie jest, możesz to pominąć).Aby to sprawdzić, uruchom:
Jeśli jest wyjście (jak
grub memtest86+.bin memtest86+_multiboot.bin
, ale niekoniecznie dokładnie to), wtedy uszkodzony system znajduje/boot
się na tej samej partycji co jego/
i nie musisz montować niczego, aby uzyskać do niego dostęp.Ale jeśli nie ma danych wyjściowych, będziesz musiał zamontować
/boot
system plików:Zastąp
BOOT-PARTITION
nazwą urządzenia/boot
partycji (patrz krok 6 powyżej).chroot
do uszkodzonego systemu, podłącz pozostałe ważne wirtualne systemy plików i ustaw niektóre ważne zmienne środowiskowe:Sprawdź, czy dostęp do Internetu działa od wewnątrz,
chroot
poprzez uruchomienieping
pewnego niezawodnego hosta, o którym wiadomo, że normalnie reaguje na polecenia ping:Powinieneś zobaczyć coś takiego:
Jeśli wygląda to głównie tak, a liczba poprzednia
% packet loss
jest mniejsza niż 100, oznacza to, że połączenie internetowe wchroot
:Działa, więc możesz pominąć krok 11 .
Jeśli wygląda tak głównie, a poprzednia liczba
% packet loss
to 100, połączenie wymaga rozwiązania problemu . Upewnij się, że połączenie w systemie Live CD (na przykład przez przeglądarkę internetową lub uruchamiając to samo polecenie w osobnej, niechroot
edytowanej zakładce / oknie terminala) działa. Upewnij się, że wpisujesz polecenie poprawnie. Użyj,www.google.com
jeśli nie byłeś.Jeśli dane wyjściowe wcale nie wyglądają tak, jak powyższe, ale zamiast tego mówi
ping: unknown host www.google.com
, to sieć nie działa jeszcze wchroot
.Skonfiguruj sieć w
chroot
. Pomiń ten krok, chyba że wystąpiłunknown host
błąd w kroku 10 powyżej.Aby skonfigurować sieć, wykonaj kopię zapasową
hosts
pliku uszkodzonego systemu , a następnie skopiuj na żywo system CDhosts
iresolv.conf
pliki. (Nie trzeba tworzyć kopii zapasowej wersji uszkodzonego systemuresolv.conf
, ponieważ plik ten jest automatycznie regenerowany w locie).Otwórz nową kartę Terminal ( Ctrl+ Shift+ T) lub, jeśli wolisz, nowe okno Terminal ( Ctrl+ Shift+ Nlub po prostu Ctrl+ Alt+ T). Uruchom w nim następujące polecenia:
(
exit
Polecenie na końcu zamyka nową kartę / okno.)Powtórz krok 10 powyżej, aby upewnić się, że dostęp do Internetu działa teraz z poziomu
chroot
. Powinno.Zastanów się, który pakiet jądra powinien zostać zainstalowany. Zwykle tak będzie
linux-image-generic
. Ale nie zawsze.Jeśli nie masz pewności, którą zainstalować, będzie to zależeć częściowo od tego, którą wersję Ubuntu zainstalowałeś, a częściowo od innych informacji. Jeśli nie masz pewności, którą wersję Ubuntu zainstalowałeś, dowiedz się, uruchamiając to polecenie (w
chroot
, a nie w osobnym oknie / zakładce Terminal):Na Ubuntu 12.10 (kolejna wersja Ubuntu, obecnie w fazie rozwoju), zawsze tak będzie
linux-image-generic
. (Zobacz to , to i to .)W systemie Ubuntu 12.04 LTS prawdopodobne są
linux-image-generic
ilinux-image-generic-pae
. (W przeciwieństwie do poprzednich wersji 12.04 nie ma już oddzielnego jądra serwera i pulpitu).Jeśli zainstalowany system Ubuntu (który naprawiasz) to wersja 64-bitowa, użyj
linux-image-generic
. (linux-image-generic-pae
dotyczy tylko systemów 32-bitowych).Możliwe jest zainstalowanie 32-bitowego systemu Ubuntu na komputerze 32-bitowym lub 64-bitowym. Ponadto możesz użyć 32-bitowego lub 64-bitowego dysku CD na żywo do naprawy zainstalowanego 32-bitowego systemu. Jeśli więc nie wiesz, czy zainstalowany system Ubuntu jest 32-bitowy, czy 64-bitowy, sprawdź, uruchamiając to polecenie (w
chroot
, nie w osobnym oknie / zakładce Terminal):Wyjście będzie albo
32
albo64
.(Należy pamiętać, że nie
uname -m
jest to poprawny sposób na znalezienie tych informacji, ponieważ nawet gdy zostanie uruchomiony w , poinformuje Cię o architekturze działającego jądra , które jest jądrem systemu Live CD, a nie jądrem zainstalowanego (uszkodzonego) systemu).chroot
Jeśli zainstalowany system Ubuntu (który naprawiasz) jest wersją 32-bitową, najlepsze jądro do użycia będzie zależeć od ilości pamięci RAM. Polecam:
linux-image-generic
jeśli masz mniej niż 3 GB pamięci RAMlinux-image-generic-pae
jeśli masz 3 GB pamięci RAM lub więcej.(W ten sposób instalator Ubuntu wybiera, który z nich utworzone, odkąd instalator zyskał możliwość instalowania jądra PAE. Zobacz rozdzielczość do tego błędu . Jeśli chcesz dowiedzieć się, co PAE jest zobaczyć ten artykuł w Wikipedii . Jeśli chcesz dowiedz się więcej o PAE w Ubuntu, zobacz stronę wiki Ubuntu .)
Jeśli nie wiesz, ile masz pamięci RAM, uruchom to polecenie, aby dowiedzieć się:
To jest wymienione w kilobajtach . Aby przekonwertować na gigabajty , podziel przez 1 048 576 (1024 2 ).
Na Ubuntu zwalnia przed 12,04, możliwości są prawdopodobne
linux-image-generic
,linux-image-generic-pae
ilinux-image-server
.linux-image-server
.To moment, na który czekałeś! Zainstaluj jądro w uszkodzonym systemie.
(Tak jak poprzednio, chyba że wyraźnie zaznaczono inaczej, te polecenia są uruchamiane w
chroot
osobnym oknie / zakładce Terminala).Zamień na
linux-image-generic
inny pakiet jądra, który zdecydowałeś się zainstalować w kroku 12 powyżej, jeśli jest inny.Jeśli musiałeś wykonać krok 11, aby skonfigurować sieć w
chroot
, przywróć staryhosts
plik. Jeśli pominąłeś krok 11, pomiń również ten krok.Aby go przywrócić, uruchom następujące polecenie:
Odmontuj systemy plików,
exit
wychodząc zchroot
:Zamknij system Live CD / DVD / USB, wyjmując Live CD / DVD lub dysk flash USB. Uruchom system zainstalowany na dysku twardym, który właśnie naprawiłeś. Zainstalowałeś w nim pakiet jądra (i jako część instalacji, dostarczone przez niego jądro zostanie dodane z powrotem do menu uruchamiania GRUB2). Jeśli wszystko działało poprawnie, system powinien uruchomić się bez problemów. (Myślę, że tym razem możliwe jest, że uruchomienie zajmie trochę więcej czasu niż zwykle).
OŚWIADCZENIE: Nie testowałem powyższej procedury na każdym możliwym systemie Ubuntu, więc możliwe jest, że istnieje błąd, którego nie zidentyfikowałem.
W przyszłości polecam zawsze starać się, aby dwa jądra były zainstalowane. Dobrze jest mieć dwa, na wypadek, gdyby jeden z nich przestał działać z jakiegokolwiek powodu (możesz wybrać drugi w menu uruchamiania GRUB2). Dodatkowo, jeśli zamierzasz zachować dwa jądra i przypadkowo odinstalujesz jedno z nich więcej niż chciałeś i zrestartujesz komputer, nadal masz jedno z którego chcesz uruchomić system.
źródło
/etc/resolv.conf
jest obecnie zarządzany przezresolvconf
, będzie automatycznie generowany podczas korzystania z NetworkManagera i można go bezpiecznie usunąć przy użyciu,rm /etc/resolv.conf
jak się dowiedziałeś.Kiedy usunąłem swoje jądro, znalazłem to rozwiązanie na forach Ubuntu. Śledziłem każdy krok i system został odzyskany. Mam nadzieję, że to ci pomoże.
Chroot może działać, chroot oznacza, że po uruchomieniu systemu zmieniasz główny system plików. Na przykład zacząłeś od live CD, ale zmieniasz katalog główny „/” na miejsce, w którym jest zainstalowane twoje Ubuntu.
Powiedzmy, że twój ubuntu jest zainstalowany na / dev / sda2, a następnie możesz wypróbować następujące polecenia:
Kod:
teraz jesteś rootem "/" jest na / dev / sda2, spróbuj zainstalować jądro
Musiałem tu trochę zgadnąć, ponieważ nigdy wcześniej nie musiałem tego robić, ale o tym powinno być. Nie wiem, czy pojawi się ostrzeżenie o błędzie fstab (np. Nie można znaleźć roota).
Teraz musisz wyczyścić niektóre rzeczy i odmontować zamontowane partycje: Kod:
Możesz zrestartować komputer, aby sprawdzić, czy zadziałał.
Adres URL wątku: http://art.ubuntuforums.org/showthread.php?t=1688928
źródło
/etc/hosts
i usuwać/sbin/initctl
? Jest tam z jakiegoś powodu./sbin/initctl
lubdbus-uuidgen
lubdpkg-divert
. Być może trzeba będzie wymienić,/etc/hosts
aby połączyć się z Internetem, ale nie zwykle, a jeśli tak, należy odłożyć oryginał. W zainstalowanym systemie (zamiast na żywo CD, który uruchamia się, a następnie rozpakowuje system plików squashfs), nie musisz uruchamiaćupdate-initramfs
ani nawetupdate-grub
po instalacji jądra.linux-image-2.6.32-26-generic
nie będzie właściwym jądrem dla większości ludzi do zainstalowania.Po usunąłem stare jądra z Trusty14.04 Wczoraj (FTR: ja nie nie usunąć dwa ostatnie z nich!) Mój system nie będzie już uruchomić. GRUB pokazał
Nie mam pojęcia dlaczego.
Następnie wykonałem doskonałe instrukcje Eliaha Kagana, aby zainstalować
linux-image-generic
z płyty CD na żywo. Zainstalował 150 MB nowego jądra, ale niestety to nie rozwiązało problemu.Na szczęście znalazłem tę stronę .
Boot-Repair
Narzędzie dostał to dobrze, mój system jest uruchomiony ponownie.źródło
Chciałem tylko dodać moje doświadczenie, które przeszedłem dzisiaj podczas aktualizacji do Willy. Trochę posprzątałem i znalazłem się tylko z memtestem. Google sprawiło, że zrozumiałem, że usunąłem jądra. Jednym z ograniczeń było wolne połączenie sieciowe, więc pobieranie pełnego ISO nie było opcją. Użyłem więc Ubuntu Minimal CD (tylko 40 MB) i uruchomiłem na nim. Po wykryciu opcji sprzętowej (która pomogła mi połączyć się z siecią bezprzewodową) przeszedłem do opcji powłoki. Postępowałem zgodnie z instrukcjami @Lekensteyn i udało mi się. kilka rzeczy: musisz skopiować
resolv.conf
przed przejściem do chroot, w przeciwnym razie twój DNS zostanie wkręcony, a ponieważ zalogowany użytkownik nie ma roota w sudo.Wiem, że jest stary, ale pomyślałem, że dodanie tej odpowiedzi doda wartość tym, którzy napotkają problem.
źródło