Jak uruchomić update-grub z LiveCD?

62

Okej, więc zrobiłem coś głupiego. Próbowałem wyczyścić moje wpisy Grub i przypadkowo usunąłem wszystkie moje jądra Linuksa z Grub (nadal są na dysku twardym). Więc teraz, oczywiście, Grub nie daje mi żadnego sposobu na uruchomienie się w Ubuntu; Mogę dobrze uruchomić system Windows, ale Ubuntu nie ma nawet na liście.

Chcę więc po prostu uruchomić „sudo upgrade-grub”, aby przywrócić Ubuntu do listy. Mogę uruchomić komputer z LiveCD, ale jak tam uruchomić to polecenie? (Nawiasem mówiąc, moja instalacja Ubuntu jest na sda5.)

Kelley
źródło
Działa to doskonale ... czy to zrobiło zaledwie 2 dni temu- opensource-sidh.blogspot.in/2011/06/…
Nirmik
w tym wątku chcesz wskazać - że w 12.10 polecenie update-grub nie działa z grub <2.0?! - W zeszły weekend sam spartaczyłem moją instalację 12.10 (pear OS 7.0.1) z grub-install, a potem update-grub nie działał - musiałem ratować z supergrub-CD ...
dschinn1001

Odpowiedzi:

81

Ponieważ mówisz, że pojawia się program ładujący GRUB-a, ale menu jest puste, myślę, że nie musisz ponownie instalować GRUB-a, ale zamiast tego uruchom aktualizację-GRUB. Aby to osiągnąć, możesz użyć Live CD, zamontować odpowiednie partycje z dysku twardego, chroot w zamontowanym katalogu i uruchomić update-grub, który powinien działać tak, jakbyś działał na rzeczywistym dysku twardym.

Uruchom z Live CD, wybierając „Wypróbuj Ubuntu bez instalacji”.

Po uruchomieniu uruchom terminal (ctrl-alt-t) i zamontuj partycję Ubuntu na / mnt. Zakładam, że partycja Ubuntu to / dev / sda5, ale powinieneś sam to ustalić. Daj mi znać, jeśli potrzebujesz pomocy:

sudo mount /dev/sda5 /mnt

Następnie zamontuj kilka potrzebnych katalogów:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc

Ponadto, jeśli masz oddzielną partycję rozruchową Ubuntu (obecnie jest to dość rzadkie, ale może tak być):

sudo mount /dev/sdaX /mnt/boot

Skąd możesz wiedzieć, czy masz partycję rozruchową?

Po zamontowaniu partycji Ubuntu otwórz /mnt/etc/fstab. Jeśli widzisz wpis /boot, zanotuj, na które urządzenie wskazuje ( /dev/sda4może?). To ten, który musisz zamontować.

Po ich zamontowaniu wykonaj chroot, aby rozpocząć korzystanie z zamontowanego katalogu jako partycji głównej:

sudo chroot /mnt

Otrzymasz #/monit. Pierwszą rzeczą do zrobienia jest potwierdzenie, że używasz właściwego /bootkatalogu. Przejdź do /boot/grubplików tam. Powinno być kilka plików .mod i plik grub.cfg. Jeśli katalog jest pusty, nie kontynuuj, ponieważ oznacza to, że NIE jest to twój rzeczywisty bootkatalog. Spójrz powyżej, aby dowiedzieć się, jak ustalić, czy musisz zamontować dodatkowy bootkatalog.

Po potwierdzeniu, że /boot/zawiera prawidłowe pliki, co oznacza, że jest to poprawna lokalizacja, wpisz:

sudo update-grub

To powinno odbudować plik /boot/grub/grub.cfg z pozycjami menu.

Następnie wyjdź z chroot:

exit

W tym momencie możesz sprawdzić, czy wszystko zostało poprawnie zaktualizowane. W tym celu cd /mnt/boot/grubi sprawdź, czy są tam pliki gruba, powinna być paczka plików .mod i grub.cfg, te ostatnie powinny zawierać wpisy dla jądra Ubuntu. Jeśli widzisz tylko pliki grub.cfg i nie ma plików .mod, oznacza to, że NIE jest to prawidłowy katalog rozruchowy, sprawdź powyżej, jak zamontować oddzielną partycję rozruchową.

Odmontuj systemy plików:

sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot #Only if you mounted it earlier
sudo umount /mnt/

A następnie uruchom ponownie, mam nadzieję, że twoje menu Grub zostanie przywrócone.

roadmr
źródło
Kiedy próbuję uruchomić trzy polecenia montowania, otrzymuję komunikat „punkt montowania / mnt / dev nie istnieje” lub odpowiadający każdemu z nich.
Kelley
czy Twoja instalacja Ubuntu na / dev / sda5? Jeśli tak, po sudo mount /dev/sda5 /mnttym powinieneś być w stanie cd /mntzobaczyć tam drzewo instalacji Ubuntu. Powinien mieć dev, sys i proc. Jeśli nie, być może instalujesz niewłaściwą partycję. Czy możesz to sprawdzić? Dzięki!
roadmr
Zrestartowałem LiveCD i tym razem wydaje się działać. Musiałem za pierwszym razem coś źle wpisać, chociaż byłem ostrożny. W każdym razie restartuję się teraz ... i nie, nic się nie zmieniło. Nadal nie ma wyboru Ubuntu w menu Grub.
Kelley
Aby odpowiedzieć na twoje pytanie, po uruchomieniu „sudo mount / dev / sda5 / mnt”, a następnie „cd / mnt”, widzę dev, sys i proc.
Kelley
1
Pan, ratujesz życie :) Dzięki za to. Działa jak urok.
ereOn
14

Uruchom z Live CD.

Naciśnij Alt+ Ctrl+, Taby otworzyć terminal i uruchomić następujące polecenia:

sudo mount / dev / sda5 / mnt

Zainstaluj moduł ładujący GRUB2:

sudo grub-install --root-directory = / mnt / dev / sda

To jest /dev/sda- sam dysk twardy, a nie partycja Ubuntu - /dev/sda5.

Odmontuj partycję Ubuntu i uruchom ponownie komputer w następujący sposób:

sudo umount / dev / sda5; sudo restart

Jeśli masz zainstalowany więcej niż jeden system operacyjny, ponownie wykryj systemy operacyjne w następujący sposób:

sudo update-grub

Otóż ​​to!

Basharat Sialvi
źródło
1
oznaczono moją do usunięcia - nie ma sensu dwa razy w tym samym
23 93 26 35 19 57 3 89
Dzięki, ale to nie działa. Ponownie instaluje Gruba, ale po ponownym uruchomieniu wciąż nie został zaktualizowany, więc moja instalacja Ubuntu nadal nie pojawia się w Grube. Jakoś muszę zaktualizować Gruba przed ponownym uruchomieniem, na przykład z LiveCD.
Kelley
@ Kelley Czy jesteś pewien, że instalacja Ubuntu jest na sda5? Możesz to sprawdzić, uruchamiając sudo fdisk -l. Instalacja Ubuntu będzie mieć *po / dev / sdxx.
Basharat Sialvi
Tak, jest na sda5. Jednak * jest po sda2, który jest moją partycją Windows (i ostatnią partycją, na której udało mi się uruchomić, ponieważ jest to jedyny wybór w moim menu Grub).
Kelley
Chroot Przeczytaj inne odpowiedzi.
ish
1

Moim rozwiązaniem tego problemu było:

  1. pobierz supergrub2disk ze strony http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/
  2. umieść go na pendrive http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. uruchom komputer z pendrive z supergrub2disk na nim
  4. zaloguj się do swojego Ubuntu
  5. pobierz Boot-Repair dla Ubuntu z https://help.ubuntu.com/community/Boot-Repair

Może nie jest to najszybsze rozwiązanie, ale dla mnie było najłatwiejsze.

jmarceli
źródło
1

To rozwiązanie jest dokładnie takie samo jak odpowiedź roadmr, tyle że znacznie łatwiejsze.

  1. Uruchom się na Live CD AntiX.
  2. Menu> Aplikacje> Narzędzia systemowe> Naprawa rozruchu
  3. Wybierz „Napraw plik konfiguracyjny GRUB” (ta opcja uruchamia aktualizację-grub)
  4. Wybierz dysk / partycję, na której znajduje się / boot
  5. Uruchom ponownie po zakończeniu.

W moim szczególnym przypadku „Ponowna instalacja GRUB Bootloader” naprawił to dla mnie. Mam konfigurację Windows / Linux do podwójnego rozruchu. Użyłem Macrium 7, aby utworzyć klon dysku do pliku. Następnie przywróć ten plik na nowy dysk. Po przywróceniu go na nowy dysk uruchomi się na czarny ekran z migającym kursorem w lewym górnym rogu .

Jeff Luyet
źródło
-1

Dzięki za wspaniałą pomoc! Jednak ostatecznie nic nie działało, a ponieważ miałem osobną partycję / home, mogłem ponownie zainstalować Ubuntu bez utraty danych. Nadal muszę ponownie instalować programy i przeprowadzać konfigurację, ale w tym momencie wszystko wydaje się dobre.

Kelley
źródło
1
Cieszę się, że jakoś to rozwiązałeś, ale chrooting powinien był zadziałać i uważam to za najlepsze rozwiązanie.
Mahesh
Tak. Nie wiem, dlaczego to nie zadziałało, ale odpowiedź była świetna (i głosowałem za nią). Zapewniliście dużo pomocy i być może odpowiedzi pomogą komuś innemu rozwiązać ten problem.
Kelley