Jak mogę naprawić gruba? (Jak odzyskać Ubuntu po zainstalowaniu systemu Windows?)

344

Zainstalowałem system Windows 7, który zjadł plik rozruchowy Ubuntu. Podczas uruchamiania komputera przechodzi teraz bezpośrednio do systemu Windows, nie dając mi opcji uruchamiania Ubuntu.

Jak mogę odzyskać Ubuntu?

Salahuddin
źródło
Myślę, że to wspólne zadanie, mam też dwa dyski twarde i system Ubuntu + Windows. Mam nadzieję, że możesz to naprawić we właściwy sposób. Spróbuj wykonać ten samouczek. Wszelkie pytania, zadaj mi!
antivirtel,
1
Powiązane (gdy GRUB został zainstalowany na MBR niewłaściwego napędu ): Problem z
naprawieniem
Tak, możesz, wystarczy wykonać normalny rozruch i zainstalować w systemie Windows, a następnie powinien pojawić się w menu rozruchowym Grub przy uruchamianiu komputera.
Rampoo1208
Wiem, że to stary wątek, ale rozwiązałem problem, zmieniając tryb uruchamiania w biosie z UEFI na Legacy.
1
UWAGA: zaakceptowana odpowiedź jest ogólną instrukcją naprawy gruba. Ma to również zastosowanie do wielu różnych sytuacji, w których instalator nieprawidłowo napisał GRUB (wszechobecność).
Danatela

Odpowiedzi:

348

Podczas instalacji systemu Windows zakłada, że ​​jest to jedyny system operacyjny (OS) na komputerze lub przynajmniej nie obsługuje on systemu Linux. Zastępuje GRUB własnym programem ładującym. Musisz tylko wymienić moduł ładujący Windows na GRUB. Widziałem różne instrukcje na temat zastępowania GRUB-a za pomocą komend GRUB lub podobnych, ale dla mnie najprostszym sposobem jest po prostu chrootinstalacja i uruchomienie update-grub. chrootjest świetny, ponieważ pozwala pracować nad faktyczną instalacją, zamiast przekierowywać rzeczy tu i tam. To jest naprawdę czyste.

Oto jak:

  1. Uruchom komputer z Live CD lub Live USB w trybie „Try Ubuntu”.
  2. Określ numer partycji głównej partycji. sudo fdisk -l, sudo blkidLub GParted (który powinien być już zainstalowany domyślnie w sesji live) może pomóc tutaj. W tej odpowiedzi założę, że tak /dev/sda2, ale upewnij się, że używasz poprawnego numeru partycji dla twojego systemu!

    Jeśli twoja główna partycja znajduje się w LVM , urządzenie zamiast tego będzie zlokalizowane w /dev/mapper/, najprawdopodobniej, /dev/mapper/{volume}--{os}-rootgdzie {volume}jest nazwa woluminu LVM i {os}jest to system operacyjny. Wykonaj ls /dev/mapperdla dokładnej nazwy.

  3. Zamontuj partycję:

    sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2
    

    Jeśli masz osobny /boot, /varlub /usrpartycje , powtórz kroki 2 i 3 zamontować te partycje na /mnt/boot, /mnt/vari /mnt/usrodpowiednio. Na przykład,

    sudo mount /dev/sdXW /mnt/boot
    sudo mount /dev/sdXY /mnt/var
    sudo mount /dev/sdXZ /mnt/usr
    

    zastępując sdXW, sdXYoraz sdXZodpowiednimi numerami partycji.

  4. Bind montuje inne niezbędne rzeczy:

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
    
  5. Jeśli Ubuntu jest zainstalowany w trybie EFI (w razie wątpliwości zapoznaj się z tą odpowiedzią ), użyj sudo fdisk -l | grep -i efilub GParted, aby znaleźć swoją partycję EFI. Będzie miał etykietę EFI. Zamontuj tę partycję, zastępując sdXYją faktycznym numerem partycji dla twojego systemu:

    sudo mount /dev/sdXY /mnt/boot/efi
    
  6. chroot do instalacji Ubuntu:

    sudo chroot /mnt
    
  7. W tym momencie jesteś w instalacji, a nie w sesji na żywo i działasz jako root. Zaktualizuj grub:

    update-grub
    

    Jeśli wystąpią błędy lub przejście do kroku 7 nie rozwiązało problemu, przejdź do kroku 8. (W przeciwnym razie jest to opcjonalne).

  8. W zależności od sytuacji może być konieczna ponowna instalacja grub:

    grub-install /dev/sda
    update-grub # In order to find and add windows to grub menu.
    
  9. Jeśli Ubuntu jest zainstalowany w trybie EFI, a identyfikator UUID partycji EFI zmienił się, być może trzeba go zaktualizować /etc/fstab. Porównaj to:

    blkid | grep -i efi
    grep -i efi /etc/fstab
    

    Jeśli bieżący UUID partycji EFI (od blkid) różni się od tego w /etc/fstab, zaktualizuj /etc/fstabprzy użyciu bieżącego UUID.

  10. Jeśli wszystko działało bezbłędnie, wszystko gotowe:

    exit
    sudo reboot
    
  11. W tym momencie powinieneś być w stanie uruchomić normalnie.

Jeśli nie możesz uruchomić się normalnie i nie zrobiłeś kroku 8, ponieważ nie było komunikatów o błędach, spróbuj ponownie w kroku 8.

  • Czasami podanie GRUB2 poprawnej konfiguracji dla partycji nie wystarczy i musisz ją zainstalować (lub zainstalować ponownie) w głównym rekordzie rozruchowym, co robi krok 8. Doświadczenie w pomaganiu użytkownikom na czacie pokazało, że krok 8 jest czasem konieczny, nawet jeśli nie są wyświetlane żadne komunikaty o błędach.
Scott Severance
źródło
1
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Thomas Ward
Nadal chcę, aby Windows był moim głównym systemem rozruchowym. Czy to nadal właściwa poprawka? Jak wybrać system operacyjny do rozruchu? F11?
Jeff
1
@ ScottSeverance Widziałem z twojego profilu, że mieszkasz w DFW. Czy zastanawiałeś się nad prowadzeniem zajęć lub samouczków na żywo, aby wciągnąć ludzi w system Linux?
Mohammed Joraid
1
Te problemy nie starzeją się: D - Nie dlatego, że w przypadku EFI może być konieczna instalacja, grub-efi-amd64a jeśli korzystasz z bezpiecznego rozruchu, którego chcesz użyć grub-install --uefi-secure-boot. Jest to również szczegółowo opisane w superuser.com/a/376471/197980
Raffael
1
To rozwiązanie dotyczy także systemu Windows 10 na komputerze z systemem BIOS (tj. Nie UEFI). Odpowiedzi na to pytanie można udzielić na pytanie - thewindowsclub.com/check-if-uefi-or-bios .
okolnost
115

Instalator Windows nie dba o inny system operacyjny w systemie. Zapisuje więc własny kod nad głównym rekordem rozruchowym. Na szczęście rozwiązanie jest również łatwe.

Musisz naprawić MBR. Wykonaj następujące czynności

Uruchom przy użyciu usb / cd na żywo z Ubuntu. Użyj, boot-repairaby rozwiązać problem.

Po uruchomieniu z Live USB / CD, uruchom następującą komendę w terminalu:

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

Użyj Recomended Repair.

wprowadź opis zdjęcia tutaj

Więcej informacji - https://help.ubuntu.com/community/Boot-Repair

Web-E
źródło
2
chcesz powiedzieć, że jest to celowe przez ludzi Microsoft? Również podwójne uruchamianie działało z Windows 7, więc nie przeczy to pierwszej linii, że „Instalator Windows nie dba o inny system operacyjny w systemie”.
Shagun Sodhani,
System Windows łamie gruba przez cały czas, jest to naprawdę częsty problem, z którym musiałem sobie poradzić. Odpowiedź jest nadal dobra i powinna rozwiązać problem.
damien
6
najpierw zainstalowałeś system Windows 7, a następnie Linux. Więc Linux rozpoznaje Windows, a nie Windows rozpoznaje Linux. Ponownie zainstaluj Windows7, zobaczysz, co miałem na myśli.
Web-E
Nie rób tego, gdy masz zaszyfrowane partycje (luks), to zawiodło. Ponownie instaluje GRUB-a z apt-get - nie mam pojęcia, dlaczego to robi.
Meng Tian
1
naprawa rozruchu bardzo dobrze obsługuje tryb starszego typu, być może trzeba też uruchomić live CD / USB w trybie starszym @fuzzyanalysis :)
Web-E
25

Uruchom z pendrivea USB lub CD z Ubuntu na żywo i
zainstaluj Boot-Repair na Ubuntu, wykonując następujące czynności

Otwórz terminal i uruchom następujące polecenia

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair

Po zakończeniu instalacji możesz uruchomić go z menu System-> Administracja-> Boot-Repair, jeśli używasz Gnome, lub wyszukaj „boot-repair” w desce rozdzielczej, jeśli używasz Unity. Następnie wykonaj następujące zrzuty ekranu:

Metoda 1

  • Kliknij zaawansowane opcje

Początkowy ekran

  • Zaznacz opcje pokazane poniżej

opcja zaawansowana

  • Zmień kartę na Grub Lokalizacja i zaznacz Opcje pokazane na rysunku

wprowadź opis zdjęcia tutaj

Naciśnij Zastosuj i zrestartuj system

Metoda 2

  • Wybierz zalecane opcje naprawy rozruchu, jak pokazano na pierwszym zrzucie ekranu

Dokumentacja:

Stormvirux
źródło
Web-E już dał tę odpowiedź . Może zamiast tego poprawić ten? Zostawiłem komentarz, dlaczego to nie działa.
Dan Dascalescu
2
Ta metoda zadziałała dla mnie po szczególnie paskudnym przypadku aktualizacji systemu Windows 10, która zastąpiła GRUB, a następnie zepsuła własny program ładujący. Po tej procedurze przywrócono zarówno system Windows, jak i Linux. W moim przypadku był to Linux Mint 18.1, a menu naprawy rozruchu wyglądało nieco inaczej, ale wszystko działało dobrze. Dzięki!
TheBigH
11

Wystarczy zainstalować easyBCDw systemie Windows 7 i zrobić

Dodaj nowy wpis> Linux / BSD> (wybierz) Grub2> (push) Dodaj wpis

Następnie możesz wybrać Ubuntu w bootloaderze Windows 7, aby przejść do Grub2 (poprzedni bootloader).

szynka
źródło
3
Same te instrukcje nie przywracają Grub Bootloadera - kiedy je wypróbowałem, dodały dodatkową opcję rozruchu w systemie Windows, która po wybraniu ponownie uruchomiła mój komputer, a następnie zabrała mnie do monitu o grub> Potrzebne byłyby więc dalsze kroki, co robić dalej.
therobyouknow
1
easyBCD pozwala mi dodawać i usuwać opcje rozruchu, które widziałem zarówno w programie ładującym system Windows, jak i systemie BIOS, ale nigdy nie działały, ponieważ easyBCD polega na jakiejś zautomatyzowanej magii w znajdowaniu partycji Linux ... to nie działało, gdy moja partycja Linux był na osobnym dysku twardym.
Analiza rozmyta,
6

W systemach opartych na EFI (takich jak większość systemów dostarczanych z Windows 8 lub nowszym), Windows czasami aktualizuje moduł ładujący lub resetuje go do domyślnego modułu ładującego. Jest to szczególnie powszechne podczas ponownej instalacji systemu operacyjnego lub przeprowadzania ważnej aktualizacji systemu (na przykład aktualizacji do najnowszej wersji systemu Windows). Zauważ, że Windows raczej nie usunie żadnych plików GRUB na komputerze z EFI. Wszystko, co jest potrzebne do uruchomienia Ubuntu, jest nadal dostępne; jest tylko omijany. W takich przypadkach kompletna ponowna instalacja GRUB-a jest przesadą, aw rzeczywistości ma (małą) szansę, że spowoduje nowe problemy.

Dlatego zamiast ponownie instalować GRUB w tych przypadkach, zalecam zresetowanie GRUB (lub innego programu ładującego lub menedżera rozruchu, który wolisz), aby był domyślny. Można to zrobić na kilka sposobów, w tym:

  • EasyUEFI - Najłatwiejszym sposobem dostosowania kolejności rozruchu, jeśli system uruchamia się bezpośrednio do systemu Windows, jest użycie EasyUEFI, który jest bezpłatnym (w wersji podstawowej) narzędziem GUI innej firmy do zarządzania kolejnością uruchamiania EFI. Jest to dość zrozumiałe - znajdź ubuntupozycję na liście opcji rozruchu i przenieś ją na górę listy. Przy następnym uruchomieniu, GRUB powinien się pojawić. (Jeśli używasz czegoś innego niż GRUB, musisz zlokalizować jego wpis.)
  • bcdedit- Za pomocą bcdeditnarzędzia Windows można ustawić domyślną kolejność uruchamiania GRUB-a. Wykona to polecenie bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efiwpisane w oknie Wiersz polecenia administratora ; jednak jeśli komputer uruchomi się przy aktywnym Bezpiecznym rozruchu, bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efibędzie to konieczne. W rzeczywistości to drugie polecenie zwykle działa, nawet jeśli Bezpieczny rozruch nie jest używany, więc najpierw użyłbym tego polecenia. Zauważ, że istnieje bardziej zaawansowane narzędzie powłoki systemu Windows, które wymaga nieco innej składni niż przedstawiłem, ale nie pamiętam szczegółów.
  • Jednorazowe uruchomienie z Ubuntu - większość EFI zapewnia wbudowany menedżer rozruchu, do którego dostęp można uzyskać, naciskając klawisz funkcyjny, Esc lub Enter na początku procesu uruchamiania systemu. Są szanse, że ubuntuwpis w celu uruchomienia Ubuntu pojawi się w tym menu menedżera rozruchu, umożliwiając uruchomienie w Ubuntu. Alternatywnie możesz uruchomić system z awaryjnego nośnika systemu Ubuntu, takiego jak instalator uruchomiony w trybie „wypróbuj przed instalacją”. Tak czy inaczej, możesz użyć efibootmgrdo dostosowania kolejności rozruchu:
    1. Wpisz, sudo efibootmgraby zobaczyć wpisy rozruchu.
    2. Zanotuj bieżącą BootOrderlinię.
    3. Znajdź wpis ubuntui zanotuj jego Boot####numer.
    4. Wpisz, sudo efibootmgr -o xxxx[,yyyy,zzzz,....]aby zmienić kolejność rozruchu, xxxxustawiając numer dla Ubuntu. To, co nastąpi po tym, najprawdopodobniej nie jest bardzo ważne, chociaż zauważyłem, że Windows prawdopodobnie powróci do początku kolejności rozruchu, jeśli nie ma go na liście. Dlatego prawdopodobnie powinieneś upewnić się, że Windows znajduje się na liście, i może być bezpieczniej zmienić kolejność na liście, tak aby wszystkie oryginalne wpisy były na liście, tylko z tym, że ubuntupozycja została przeniesiona na górę listy.
  • Narzędzie do konfiguracji oprogramowania układowego - niektóre narzędzia do konfigurowania plików EFI umożliwiają dostosowanie kolejności rozruchu. Szczegóły różnią się znacznie w zależności od EFI, więc nie będę wchodził w szczegóły, ale możesz poszukać takiej opcji w narzędziu instalacyjnym.

Istnieją inne warianty tych procedur, takie jak używanie bcfgw powłoce EFI, używanie blessw macOS, używanie mojego rEFInd do jednorazowego rozruchu itp. Jednak zacznę od EasyUEFI; prawdopodobnie będzie to najprostsze rozwiązanie. Czasami jednak Windows nalega na ustawienie się domyślnie przy każdym uruchomieniu, a raporty wskazują, że bcdeditlepiej poradzi sobie z tym problemem.

Zauważ, że żaden z powyższych nie dotyczy instalacji w trybie BIOS; Ponieważ jednak większość komputerów dostarczanych z systemem Windows 8 lub nowszym uruchamia się w trybie EFI, instalacje w trybie BIOS stają się coraz rzadsze, dlatego w wielu przypadkach lepiej jest rozwiązać ten problem w sposób EFI, niż przez ślepą ponowną instalację GRUB-a.

Rod Smith
źródło
1
ręczne jednorazowe uruchomienie Linuksa (w moim przypadku fedora28) przez wbudowany menedżer rozruchu EFI pozwolił mi użyć efibootmgrdo ponownego zamówienia kolejności rozruchu (zgodnie z opisem Rod -> dzięki!), który został pomieszany przez win10 aktualizacja. Następnie pojawia się GRUB-bootmanager, tak jak kiedyś przed aktualizacją, więc mogę potwierdzić, że dostarczone rozwiązanie działało dla mnie. Nie mogłem znaleźć podstawowej wersji EasyUEFI, a jedynie oferowaną wersję próbną niewolnej wersji pro.
antiplex
5

Istnieje teraz prostsze rozwiązanie:

  1. Uruchom ponownie i wprowadź opcje BIOS komputera (F2, a czasem F11).
  2. Przejdź do menu Boot i wybierz Boot Device Priority
  3. Sprawdź, czy Windows Boot Manager znajduje się nad głównym dyskiem rozruchowym (zwykle SATA HDD… lub IDE HDD… ). Jeśli tak, przenieś priorytet dysku rozruchowego powyżej priorytetu Menedżera rozruchu systemu Windows.
  4. Zapisz opcje BIOS i wyjdź (zazwyczaj F10).

Zostało to przetestowane na laptopie Samsung Series 7 Chronos z podwójnym uruchamianiem Windows 8 i Ubuntu 13.10, wyłączonym bezpiecznym uruchamianiem, włączonym UEFI i starszym uruchomieniem.

szum
źródło
To okazało się dla mnie najczystszą opcją. To jeszcze kilka klawiszy, ale hej, to działa. Mam połączenie starszych urządzeń z systemem UEFI. Jeśli użytkownicy uruchamiają jeden system operacyjny znacznie więcej niż inne, może to być szybsze (i bezpieczniejsze) na dłuższą metę.
Analiza rozmyta,
Działa to również dla mnie po automatycznej aktualizacji systemu Windows 10.
luis_js
To rozwiązanie działało dla mnie, gdy usunąłem Ubuntu z systemu Windows 10.
Vikas Gupta
3

Boot-Repair działał dla mnie. Jest to bardzo, bardzo łatwa w użyciu aplikacja graficzna, nie trzeba korzystać z wiersza poleceń, wystarczy kliknąć przycisk :)

Wszystkie dostępne opcje naprawy są opisane w dokumentacji Ubuntu, a osobna strona wyjaśnia, jak uruchomić Boot-Repair (poprzez utworzenie dysku rozruchowego lub instalację na istniejącym dysku Ubuntu) i jak z niego korzystać.

Po prostu uruchom Live CD Ubuntu, zainstaluj Boot-Repair i uruchom go.

Lorenzo-s
źródło
Byłoby miło, gdyby istniał łatwiejszy sposób na naprawę rozruchu. Szybciej jest po prostu skonfigurować chrootnaprawę niż w Google, aby zainstalować inne narzędzie.
Scott Severance,
2

Gdy GRUB jest zepsuty, użytkownik zasadniczo nie ma dostępu do systemów, więc naprawa musi być wykonana z sesji na żywo (live-CD lub live-USB).

Istnieje wiele możliwych przyczyn zerwania GRUB-a: pisanie w systemie Windows na MBR, DRM uniemożliwiający poprawną instalację GRUB, błąd instalatora, zmiana sprzętu ... Aktualizacja GRUB-a zaproponowana początkowo przez Scotta zasadniczo nie jest wystarczająca, ponowna instalacja GRUB-a zaproponowana przez Marco jest wydajniejsze, ale wciąż istnieją różne sytuacje wymagające innych poprawek (dodawanie opcji do jądra, odkrywanie menu GRUB, zmiana opcji GRUB, wybór odpowiedniej architektury hosta ...). Inne trudności w naprawie GRUB-a to użycie chroot i wybór odpowiednich partycji / dysków.

Wszystko to zostało ułatwione w małym graficznym narzędziu: Boot-Repair . Zostanie zintegrowany z Ubuntu 12.04 CD dla łatwiejszego użycia, ale dla osób, które go teraz potrzebują, istnieją już pewne systemy go integrujące: Ubuntu-Secured-Remix (Ubuntu CD integrujący Boot-Repair), Boot-Repair-Disk (CD z bootem -Naprawa przy uruchomieniu), ...

Mam nadzieję że to pomoże.

LovinBuntu
źródło
1

Odpowiedzi udzielone przez Scotta i Web-E są wystarczająco dobre i wiele razy pomogły. Ale wiele razy narzędzie do naprawy rozruchu nie jest w stanie naprawić gruba z powodu problemów związanych z platformą i386 i amd64 lub takim, w którym grub nie może znaleźć efikatalogu.
To, co rozwiązało mój problem ponad 10 razy, to ręczne wyczyszczenie starych instalacji gruba i zainstalowanie nowej.

Najpierw wykonaj pierwsze 6 kroków od odpowiedzi Scotta, w której możesz pominąć piąty krok, jeśli wystąpi błąd:

  1. Uruchom komputer z Live CD lub Live USB w trybie „Try Ubuntu”.
  2. Określ numer partycji głównej partycji. sudo fdisk -l, sudo blkidLub GParted (który powinien być już zainstalowany domyślnie w sesji live) może pomóc tutaj. W tej odpowiedzi założę, że tak /dev/sda2, ale upewnij się, że używasz poprawnego numeru partycji dla twojego systemu!

    Jeśli twoja główna partycja znajduje się w LVM , urządzenie zamiast tego będzie zlokalizowane w /dev/mapper/, najprawdopodobniej, /dev/mapper/{volume}--{os}-rootgdzie {volume}jest nazwa woluminu LVM i {os}jest to system operacyjny. Wykonaj ls /dev/mapperdla dokładnej nazwy.

  3. Zamontuj partycję:

    sudo mount /dev/sda2 /mnt  #Replace sda2 with the partition from step 2
    

    Jeśli masz osobny /boot, /varlub /usrpartycje , powtórz kroki 2 i 3 zamontować te partycje na /mnt/boot, /mnt/vari /mnt/usrodpowiednio. Na przykład,

    sudo mount /dev/sdXW /mnt/boot
    sudo mount /dev/sdXY /mnt/var
    sudo mount /dev/sdXZ /mnt/usr
    

    zastępując sdXW, sdXYoraz sdXZodpowiednimi numerami partycji.

  4. Bind montuje inne niezbędne rzeczy:

    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
    
  5. Jeśli Ubuntu jest zainstalowany w trybie EFI ([zobacz tę odpowiedź, jeśli nie masz pewności] [efi]), użyj sudo fdisk -l | grep -i efilub GParted, aby znaleźć swoją partycję EFI. Będzie miał etykietę EFI. Zamontuj tę partycję, zastępując sdXYją faktycznym numerem partycji dla twojego systemu:

    sudo mount /dev/sdXY /mnt/boot/efi
    
  6. chroot do instalacji Ubuntu:

    sudo chroot /mnt
    

Następnie wykonaj następujące kroki:

  1. Skonfiguruj wszystkie oczekujące pakiety.
    sudo dpkg --configure -a
  2. Napraw uszkodzone pakiety.
    sudo apt install -fy
  3. Usuń bieżący grub.
    sudo apt purge -y grub*-common grub-common:i386 shim-signed
    Może to dać ostrzeżenie, że urządzenie nie będzie miało programu ładującego i może nie być w stanie uruchomić się następnym razem. Śmiało i zaakceptuj to.
  4. sudo apt install -y grub-pc
    Po uruchomieniu tego polecenia poprosi Cię o wskazanie prądu, sdXYaby zainstalować bootloader. Znajdź, gdzie jest zainstalowany obecny system operacyjny za pomocą sudo fdisk -lpolecenia. Będzie oznaczony jako Linux. Nawiguj w tym oknie za pomocą Tabklawisza i wybierz opcję za pomocą Spaceklawisza.
  5. Jeśli wszystko pójdzie dobrze, grub zostanie poprawnie zainstalowany. Możesz także zrobić sudo grub-updatepodwójną kontrolę.

Jeśli problem nadal występuje, możesz przeczytać wiki Archa, aby dowiedzieć się więcej o jedzeniu gruba w celu rozwiązania wielu innych problemów. (Tak, pomaga również Ubuntu!).

subtleseeker
źródło
0

System Windows nie widzi partycji sformatowanych w systemie Linux. Musisz użyć gparted z LiveCD i utworzyć partycję podstawową sformatowaną NTFS z flagą boot.

Niektórzy mieli problemy, jeśli nowa partycja podstawowa jest za partycją rozszerzoną, ponieważ system Windows nie zawsze poprawnie resetuje tabelę partycji. Najlepiej mieć dobre kopie zapasowe i osobną kopię zapasową tabeli partycji.

Utwórz kopię zapasową tabeli partycji do pliku tekstowego i zapisz na urządzeniu zewnętrznym.

sudo sfdisk -d /dev/sda > PTsda.txt

Dotyczy to tylko systemów MBR (msdos). Jeśli Twoja instalacja Ubuntu jest na dysku partycji GPT, możesz zainstalować system Windows tylko w trybie UEFI lub przekonwertować dysk z powrotem na MBR (msdos).

oldfred
źródło
Nowe wersje sfdisk i fdisk, które działają z dyskami partycjonowanymi gpt w wersji 16.04 lub nowszej, będą również tworzyć kopie zapasowe dysków partycjonowanych gpt za pomocą powyższego polecenia. oldfred nie pamięta co jadł na kolację w nocy, więc nie wiem, co on pisał z powrotem w 2013 roku :)
oldfred
Cześć Fred, kiedy gotuję, zapominając o wczorajszej kolacji, jest błogosławieństwem. Usunęliśmy nasze poprzednie komentarze.
WinEunuuchs2Unix,
0

Tylko fsckpolecenie naprawiło grub-rescuedla mnie ekran.

Użyj Boot-Repair, aby uruchomić z Live-CD, a następnie otwórz Terminal

Uzyskaj odpowiednie urządzenie:

sudo fdisk -l

Musisz znaleźć urządzenie rozruchowe, urządzenie rozruchowe ma *w kategorii Boot jak tutaj:

Device     Boot   Start       End   Sectors  Size Id Type
/dev/sda1          2048   2000895   1998848  976M 82 Linux swap / Solaris
/dev/sda2  *    2000896 943716351 941715456  449G 83 Linux

Teraz napraw dysk za pomocą:

sudo fsck /dev/sda2 -y

Uwaga: w tym przykładzie / dev / sda2 jest urządzeniem rozruchowym.

Uruchom ponownie po zakończeniu. Gotowy.

Benny
źródło
0

Odpowiedź Scotta Severance jest poprawna i szczegółowa, ale istnieje rozdzielczość, która nie wymaga zewnętrznego urządzenia rozruchowego, więc nie ma potrzeby identyfikowania i ręcznego montowania wszystkich partycji Ubuntu prowadzących do chroot.

W systemie Windows 10 możesz użyć Advanced Recoveryurządzenia (partycji?) Do uruchomienia.

Idź do Settingsi wybierz Update & Security:

wprowadź opis zdjęcia tutaj

Idź do Recovery:

wprowadź opis zdjęcia tutaj

Z Advanced StartupwybierzRestart Now

wprowadź opis zdjęcia tutaj

Następnie wybierz Use a Devicei wszystkie opcje uruchamiania powinny być przedstawione. Wybierz partycję „ubuntu”, a komputer powinien następnie uruchomić się z tej partycji.

Po uruchomieniu w moim zwykłym środowisku Ubuntu próbowałem właśnie uruchomić, grub-updateale to nic nie zmieniło.

I wtedy okazało moją /boot/efipartycję, która była /dev/nvme0n1p1i uciekł sudo grub-install /dev/nvme0n1p1, a potem sudo update-grub.

To wielokrotnie przywracało mój główny rekord rozruchowy, ponieważ wydaje się, że istnieje nowa zasada Windows 10 nadpisywania MBR w przypadku drobnych aktualizacji .

timbo
źródło
0

Miałem inny problem, spowodowany (prawdopodobnie) przez boot-repairwyczyszczenie moich /etc/grub.d/szablonów, opisanych w moim pytaniu tutaj: Ubuntu 18.04 nie uruchamia się po instalacji systemu Windows 10

Jak wskazał komentarz @karels, konfiguracja grub jest generowana przy użyciu plików w /etc/grub.d. Mój katalog zawierał tylko te /etc/grub.d/25_custom, które zawierały dziwne pozycje menu wskazujące na nieistniejące obrazy .efi. Wyglądało na to, że moje /etc/grub.dszablony zostały ukryte boot-repair.

Naprawiłem to przez:

  1. Uruchom z Live CD (prawdopodobnie ważne, aby używać tej samej wersji Ubuntu)
  2. sudo mount /dev/sdxx /mnt
  3. sudo cp /etc/grub.d/* /mnt/etc/grub.d/
  4. sudo update-grub
  5. Uruchom ponownie i zrelaksuj się po 48 godzinach bólu
Adam Moore
źródło