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?
dual-boot
grub2
windows
boot-repair
Salahuddin
źródło
źródło
Odpowiedzi:
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
chroot
instalacja i uruchomienieupdate-grub
.chroot
jest świetny, ponieważ pozwala pracować nad faktyczną instalacją, zamiast przekierowywać rzeczy tu i tam. To jest naprawdę czyste.Oto jak:
Określ numer partycji głównej partycji.
sudo fdisk -l
,sudo blkid
Lub 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}-root
gdzie{volume}
jest nazwa woluminu LVM i{os}
jest to system operacyjny. Wykonajls /dev/mapper
dla dokładnej nazwy.Zamontuj partycję:
Jeśli masz osobny
/boot
,/var
lub/usr
partycje , powtórz kroki 2 i 3 zamontować te partycje na/mnt/boot
,/mnt/var
i/mnt/usr
odpowiednio. Na przykład,zastępując
sdXW
,sdXY
orazsdXZ
odpowiednimi numerami partycji.Bind montuje inne niezbędne rzeczy:
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 efi
lub GParted, aby znaleźć swoją partycję EFI. Będzie miał etykietęEFI
. Zamontuj tę partycję, zastępującsdXY
ją faktycznym numerem partycji dla twojego systemu:chroot
do instalacji Ubuntu:W tym momencie jesteś w instalacji, a nie w sesji na żywo i działasz jako root. Zaktualizuj 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).
W zależności od sytuacji może być konieczna ponowna instalacja grub:
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:Jeśli bieżący UUID partycji EFI (od
blkid
) różni się od tego w/etc/fstab
, zaktualizuj/etc/fstab
przy użyciu bieżącego UUID.Jeśli wszystko działało bezbłędnie, wszystko gotowe:
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.
źródło
grub-efi-amd64
a 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/197980Instalator 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-repair
aby rozwiązać problem.Po uruchomieniu z Live USB / CD, uruchom następującą komendę w terminalu:
Użyj
Recomended Repair
.Więcej informacji - https://help.ubuntu.com/community/Boot-Repair
źródło
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
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
Naciśnij Zastosuj i zrestartuj system
Metoda 2
Dokumentacja:
źródło
Wystarczy zainstalować
easyBCD
w 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).
źródło
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:
ubuntu
pozycję 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ąbcdedit
narzędzia Windows można ustawić domyślną kolejność uruchamiania GRUB-a. Wykona to poleceniebcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
wpisane w oknie Wiersz polecenia administratora ; jednak jeśli komputer uruchomi się przy aktywnym Bezpiecznym rozruchu,bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
bę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.ubuntu
wpis 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ćefibootmgr
do dostosowania kolejności rozruchu:sudo efibootmgr
aby zobaczyć wpisy rozruchu.BootOrder
linię.ubuntu
i zanotuj jegoBoot####
numer.sudo efibootmgr -o xxxx[,yyyy,zzzz,....]
aby zmienić kolejność rozruchu,xxxx
ustawiają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, żeubuntu
pozycja została przeniesiona na górę listy.Istnieją inne warianty tych procedur, takie jak używanie
bcfg
w powłoce EFI, używaniebless
w 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ą, żebcdedit
lepiej 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.
źródło
efibootmgr
do 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.Istnieje teraz prostsze rozwiązanie:
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.
źródło
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.
źródło
chroot
naprawę niż w Google, aby zainstalować inne narzędzie.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.
źródło
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źć
efi
katalogu.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:
Następnie wykonaj następujące kroki:
sudo dpkg --configure -a
sudo apt install -fy
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.
sudo apt install -y grub-pc
Po uruchomieniu tego polecenia poprosi Cię o wskazanie prądu,
sdXY
aby zainstalować bootloader. Znajdź, gdzie jest zainstalowany obecny system operacyjny za pomocąsudo fdisk -l
polecenia. Będzie oznaczony jakoLinux
. Nawiguj w tym oknie za pomocą Tabklawisza i wybierz opcję za pomocą Spaceklawisza.sudo grub-update
podwó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!).
źródło
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.
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).
źródło
Tylko
fsck
polecenie naprawiłogrub-rescue
dla mnie ekran.Użyj Boot-Repair, aby uruchomić z Live-CD, a następnie otwórz Terminal
Uzyskaj odpowiednie urządzenie:
Musisz znaleźć urządzenie rozruchowe, urządzenie rozruchowe ma
*
w kategorii Boot jak tutaj:Teraz napraw dysk za pomocą:
Uwaga: w tym przykładzie / dev / sda2 jest urządzeniem rozruchowym.
Uruchom ponownie po zakończeniu. Gotowy.
źródło
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 Recovery
urządzenia (partycji?) Do uruchomienia.Idź do
Settings
i wybierzUpdate & Security
:Idź do
Recovery
:Z
Advanced Startup
wybierzRestart Now
Następnie wybierz
Use a Device
i 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-update
ale to nic nie zmieniło.I wtedy okazało moją
/boot/efi
partycję, która była/dev/nvme0n1p1
i uciekłsudo grub-install /dev/nvme0n1p1
, a potemsudo 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 .
źródło
Miałem inny problem, spowodowany (prawdopodobnie) przez
boot-repair
wyczyszczenie moich/etc/grub.d/
szablonów, opisanych w moim pytaniu tutaj: Ubuntu 18.04 nie uruchamia się po instalacji systemu Windows 10Jak 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.d
szablony zostały ukryteboot-repair
.Naprawiłem to przez:
sudo mount /dev/sdxx /mnt
sudo cp /etc/grub.d/* /mnt/etc/grub.d/
sudo update-grub
źródło