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?
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?
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 /mntZamontuj 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
/mnt:sudo chroot /mntapt-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:
exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt
sudo reboot/mnt. Ubuntu zwykle zajmuje się odmontowywaniem / synchronizowaniem systemów plików, ale dla mnie wygląda to na czystsze.
/dev/mdxxxdysk - zakładając, że to mdadm.
/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.
cp /etc/resolv.conf /mnt/etc/resolv.confprzed pójściem do chroot. To i tak zadziałało
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 bootJeś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/devSprawdź, 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:
sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
sudo cp /etc/hosts /mnt/etc/hosts
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
exit
( 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 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ę:
grep MemTotal /proc/meminfo
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-paei linux-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 chrootosobnym oknie / zakładce Terminala).
apt-get update
apt-get -y install linux-image-generic
Zamień na linux-image-genericinny 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óć stary hostsplik. Jeśli pominąłeś krok 11, pomiń również ten krok.
Aby go przywrócić, uruchom następujące polecenie:
cp /etc/hosts.old /etc/hosts
Odmontuj systemy plików, exitwychodząc z chroot:
umount /proc || umount -lf /proc
umount /sys /dev/pts
exit
sudo umount /mnt/dev /mnt
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.
/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ś.
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:
sudo mount /dev/sda2 /mnt
sudo cp /etc/resolv.conf /mnt/etc/
sudo cp /etc/hosts /mnt/etc/
sudo mount --bind /dev/ /mnt/dev
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
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
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:
rm /etc/resolv.conf
rm /etc/hosts
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
umount /proc # if this doesn't work try umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount /mnt
Możesz zrestartować komputer, aby sprawdzić, czy zadziałał.
Adres URL wątku: http://art.ubuntuforums.org/showthread.php?t=1688928
/etc/hostsi usuwać /sbin/initctl? Jest tam z jakiegoś powodu.
/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.
linux-image-2.6.32-26-genericnie 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ł
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.