Dodaj Windows 10 do listy GRUB OS

29

Niedawno dostałem komputer ze szkoły. Przyszedł z zainstalowanym systemem Windows 8.1. Następnie zainstalowałem kolejną kopię systemu Windows 8.1 (aby korzystał z wbudowanej licencji Windows Pro) i uaktualniłem ją do systemu Windows 10. Następnie zainstalowałem Ubuntu wraz z Windows 8 i 10.

Zauważ, że utworzyłem osobną partycję ext2 255 MB dla / boot.

Teraz, kiedy uruchamiam komputer, najpierw widzę monit GRUB (już go ukryłem, bo podoba mi się to w ten sposób) z opcjami Windows 8 i Ubuntu. Jednak nie ma opcji systemu Windows 10. Jeśli wybiorę Ubuntu, komputer uruchomi się w Ubuntu. Jeśli jednak wybiorę opcję systemu Windows 8, wysyłam ją do programu ładującego system Windows, który daje mi opcje uruchamiania systemu Windows 8 lub Windows 10. (Jednak do tego momentu komputer już załadował jądro i wszystkie . Najwyraźniej Microsoft zrozumiał pojęcie startowego ładowarki i zdecydował, że to znaczy „boot praktycznie cały system, zanim rzeczywiście pokazujący bootloader”. Typowy Microsoft).

Jak mogę wyłączyć moduł ładujący systemu Windows i dodać opcję systemu Windows 10 do GRUB? EDYCJA: Ktoś odpowiedział, mówiąc mi, aby wyłączyć moduł ładujący systemu Windows. Nadal jednak nie wiem, jak dodać system Windows do listy systemu operacyjnego GRUB. Czy ktoś może w tym pomóc?

EDYCJA 2: Po usunięciu systemu Windows 10 z programu ładującego Windows za pomocą EasyBCD wydawało się, że po kilku ponownych uruchomieniach ciągle się odsłania i Windows 10 pojawi się ponownie. Jednak później usunąłem system Windows 10 z listy systemów operacyjnych w msconfig i wydaje się, że został usunięty.

Wciąż jednak nie udało mi się wyświetlić systemu Windows 10 w GRUB-ie. To tak, jakby GRUB po prostu go nie wykrywa.

Zadam też to pytanie, aby ludzie to widzieli - próbowałem użyć boot-repair, jednak to NIE pomogło.

Hitechcomputergeek
źródło
1
@ daltonfury42 Przestań wierzyć, jeśli nie słuchasz lub nie rozumiesz, jakie są wymagania PO! Zalecanie narzędzia, które najczęściej rozwiązuje typowe problemy w typowych starszych konfiguracjach rozruchowych, w przypadku nietypowych instalacji UEFI o specjalnych wymaganiach jest mylące i przynosi efekt przeciwny do zamierzonego.
LiveWireBT
2
@LiveWireBT Tak mi przykro. Widziałem twoją odpowiedź. Usunąłem swój komentarz (i przestałem wierzyć: P). Dzięki!
daltonfury42
1
Myślę, że zamierzam po prostu usunąć całą partycję Windows 10 i przenieść ją na maszynę wirtualną.
Hitechcomputergeek
Szczerze mówiąc, nie jestem pewien, dlaczego ludzie wciąż to popierają, ponieważ IMO to nie jest świetne pytanie. Jednak w tym roku rozwiązałem to w inny sposób - przekształcając MBR na GPT i rozruch UEFI. Zasadniczo przekonwertowałem schemat partycjonowania na GPT, zmieniłem rozmiar partycji Windows, dodałem partycję systemową EFI i umieściłem na niej rEFInd, i utworzyłem Windows BCD za pomocą dysku instalacyjnego Windows. Teraz system uruchamia się przy użyciu rozruchu UEFI, co ułatwia grę z systemami operacyjnymi. W przeciwieństwie do tego, co mówi Internet, konwersja instalacji systemu Windows z BIOS-u na UEFI nie była zbyt trudna, ale nie było to również łatwe.
Hitechcomputergeek
1
Dla każdego, kto w przyszłości chce zrobić coś takiego i chce pozostać przy BIOSie - wierzę, że odpowiedź leży w Windows BCD. Uważam, że instalacja systemu Windows 10 nie ma odpowiedniego modułu ładującego, BCD lub czegoś takiego i nie jest w stanie samodzielnie uruchomić się. Jeśli zrobisz to poprawnie, mam przeczucie, że GRUB powinien zacząć automatycznie znajdować partycję Windows 10.
Hitechcomputergeek

Odpowiedzi:

25

Posługiwać się:

sudo update-grub
sudo grub-install /dev/[BOOT PARTITION eg. Sda6]

polecenia w terminalu Ubuntu, prawdopodobnie rozwiąże twój problem.

Dzięki temu poleceniu system automatycznie wykryje instalacje Windows i doda je do listy GRUB.

Neel Shah
źródło
2
To niestety nie zadziałało. Wygląda na to, że nie wykrywa partycji Windows 10.
Hitechcomputergeek
1
Właściwie miałem ten sam problem z moim systemem (mam Windows 10 i Ubuntu 14.04), i to zostało rozwiązane przez te polecenia.
Neel Shah,
Które polecenie rozwiązało to, update-grubczy grub-install? Czy masz oddzielną partycję / boot? Chodzi o to, że mam osobną partycję rozruchową, myślę, że tak naprawdę to sda6.
Hitechcomputergeek
Wykonanie tych dwóch poleceń (oczywiście) nie rozwiązało tego.
Hitechcomputergeek
7
sudo update-grubzrobił to
thameera
21

Czasami os-prober się myli.

Spójrz na UUID partycji Windows 10, na przykład:

sudo blkid /dev/sda2

Następnie edytuj /etc/grub.d/40_custom, a na końcu pliku dodaj:

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid $your_uuid_here$
   ntldr /bootmgr
}

Nie zapomnij zmienić UUID.

I na koniec zaktualizuj plik konfiguracyjny grub:

sudo update-grub

Źródło

noraj
źródło
2
warto zauważyć, że w przypadku systemu Windows 10 zwykle pierwsza partycja NIE jest pierwszą partycją systemu Windows (tj. sdb2 jest poprawna, a sdb1 NIE jest) Wynika to z tego, jak system Windows 10 jest przechowywany na dysku podczas instalacji, a partycja zarezerwowana przez system lub naprawa systemu jest zawsze pierwsza). Grub często nie znajduje drugiej partycji, jeśli pierwsza na dysku zawiera już coś rozruchowego. najłatwiejszym sposobem znalezienia poprawnego UUID jest znalezienie największej partycji poprzez sudo fdisk -li dopasowanie jej do wyniku blkid.
janmyszkier
9

To rozwiązanie zapewnia prawidłowy wpis w menu grub2 i ładuje łańcuch bezpośrednio do systemu Windows 10 bez odniesienia do BIOS-u. Pochodzi z https://ihaveabackup.net/article/grub2-entry-for-windows-10-uefi, więc nie żądam kredytu. Taką ulgą było znalezienie działającego rozwiązania

Krótko, edytuj /etc/grub.d/40_custom i dodaj:

menuentry 'Windows 10' {
    search --fs-uuid --no-floppy --set=root CC66-4B02
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

Aby znaleźć UUID dla linii --set = root (CC66-4B02 w przykładzie), użyj sudo fdisk -l do identyfikacji partycji EFI, a następnie sudo blkid / dev / sda1 (lub cokolwiek innego), aby znaleźć UUID partycji EFI . Uwaga: nie jest to partycja Windows, ale EFI, której potrzebujesz. Po zapisaniu edycji uruchom sudo update-grub, aby wygenerować plik /boot/grub/menu.cfg, a następnie uruchom ponownie, aby przetestować.

peterthevicar
źródło
Myślę, że polecenie sudo / dev / sda1 powinno być sudo blkid / dev / sda1
makapuf
@makapuf - masz absolutną rację, dziękuję. Poprawione
peterthevicar
Wykonałem dokładnie ten samouczek i podczas próby uruchomienia wpisu pojawia się komunikat „Błąd: nie znaleziono partycji”. Po zamontowaniu partycji wydaje się, że „EFI / Microsoft / Boot / bootmgfw.efi” nie istnieje na tej partycji.
Xerus
8

użyj tej aplikacji EasyBCD dla systemu Windows http://neosmart.net/EasyBCD/ pobierz bezpłatną wersję i zainstaluj ją.

po otwarciu zobaczysz pozycję dla systemu Windows 8 i jedną dla systemu Windows 10.

usuń pozycję systemu Windows 8, a będziesz gotowy.

Zaktualizuj po wykonaniu powyższych kroków, wróć do Ubuntu,

otwórz terminal naciskając ctrl+ alt+T

a następnie kopiuj kolejno te polecenia,

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

i przez to zainstalujesz narzędzie o nazwie boot-repair.

otwórz naprawę rozruchu z deski rozdzielczej, a otrzymasz to okno

wprowadź opis zdjęcia tutaj

wybierz zalecaną naprawę i postępuj zgodnie z instrukcjami.

Pamiętaj, że musisz być podłączony do Internetu podczas korzystania z naprawy rozruchu.

RonnieDroid
źródło
1
@Hitechcomputergeek, jeśli potrzebujesz dodatkowej pomocy, daj mi znać, że uruchomię system Windows i wykonam kilka zrzutów ekranu.
RonnieDroid,
Czy to dodaje Windows 10 do GRUB? (Niech zgadnę: nie) Chcę mieć dostęp do wszystkich trzech systemów operacyjnych z GRUB, a to rozwiązuje tylko część problemu.
Hitechcomputergeek
Zaktualizowałem pytanie, aby zapytać, jak dodać system Windows 10 do listy systemu operacyjnego GRUB. Głosowałem za odpowiedzią, ponieważ rozwiązało to część problemu, ale ponieważ nadal muszę dodać system Windows 10 do GRUB-a, jeszcze nie akceptuję odpowiedzi.
Hitechcomputergeek
2
Zauważyłem również, że mówisz, aby otworzyć Naprawę rozruchu z deski rozdzielczej, ale linia sudo apt-get install -y boot-repair && boot-repairjuż go otworzyła.
Hitechcomputergeek
1
Możesz również użyć tego narzędzia w trybie testowym ubuntu (tryb Live CD), w którym możesz zainstalować, uruchomić i używać go po połączeniu z Internetem lub żoną.
Alamjit Singh,
4

O ile rozumiem twoje pytanie, masz dwie różne instalacje systemu Windows na co najmniej jednym dysku twardym i nie chcesz, aby moduł ładujący Windows przeszkadzał lub zarządzał obydwoma instalacjami systemu Windows. Pamiętam, że w starszych konfiguracjach możliwe było bezpośrednie uruchomienie jądra systemu Windows z Gruba (tutaj mogę się mylić), ale nie byłem w stanie tego zrobić w konfiguracjach UEFI. Posiadanie dwóch niezależnych konfiguracji programu ładującego Windows, które można wywoływać niezależnie z Grub, powinno być bardzo zbliżone do tego, czego szukasz.

Przyszedł z zainstalowanym systemem Windows 8.1.

Zakładam, że jest to komputer obsługujący interfejs UEFI.

  1. Sprawdź, czy komputer faktycznie obsługuje UEFI (jeśli nie , usunę odpowiedź) i zapoznaj się z różnicami między BIOS i UEFI ( różne tryby uruchamiania , efibootmgr, różne tabele partycji, partycja systemowa EFI (ESP), moduły ładujące EFI …).
  2. Następnie sprawdź, czy wszystkie systemy operacyjne są zainstalowane w trybie UEFI i sprawdź , czy masz tablicę partycji GPT. Możesz użyć systemu Windows dismdo tworzenia kopii zapasowych i przywracania partycji do nowego układu tabeli partycji oraz użyć wiersza polecenia z najnowszego nośnika instalacyjnego systemu Windows, aby ponownie zainstalować program ładujący, więcej informacji na ten temat w następnym punkcie.
    • Ponieważ zalecono Ci wypróbowanie różnych innych narzędzi, które nie rozwiązują Twojego problemu, musisz przywrócić te zmiany do nieskazitelnego stanu, w przeciwnym razie będzie to coraz bardziej mylące. Przepraszam za to. :(
  3. Możesz użyć mojej odpowiedzi z Jak uruchomić Windows 8 ze starszej partycji MBR w trybie UEFI przez GRUB?
    • Ta odpowiedź powoduje zainstalowanie niezależnej konfiguracji modułu ładującego system Windows bcdbootw innym miejscu, w którym Grub ją nazwie. Dla wygody wybrałem partycję główną systemu Windows. Musisz to zrobić dla każdej instalacji systemu Windows, aby każda instalacja systemu Windows miała swoją własną i uruchamiała się sama (wyczyść poszczególne menu uruchamiania systemu Windows z innych pozycji).
    • Pamiętaj, że musisz utworzyć osobny wpis dla każdej instalacji systemu Windows, którą chcesz uruchomić, /etc/grub.d/40_customi postępuj zgodnie z instrukcjami i objaśnieniami dotyczącymi UUID, partycji i tabel partycji.
    • Prawdopodobnie wyłącz każdą pół-inteligentną funkcję, która wykrywa różne systemy operacyjne, takie jak sonda OS w Grub ( GRUB_DISABLE_OS_PROBER) lub rozwiązywanie problemów z uruchamianiem systemu Windows lub naprawą rozruchu (lub ręczne czyszczenie po nich).

Uwaga: Twoja prośba była w stanie zarządzać wszystkimi systemami operacyjnymi za pomocą Grub, jednak w UEFI tradycyjny termin „dualboot” staje się prawie błędny. UEFI pozwala na współistnienie kilku programów ładujących na ESP i możesz wybrać, który z nich ma zostać uruchomiony (jeśli zostały one zarejestrowane w oprogramowaniu układowym UEFI, a oprogramowanie układowe producenta nie spełnia wymagań protekcjonalnych, jak tylko uruchamianie systemu Windows). Smutne jest to, że tylko bardzo niewiele osób może pomyśleć o zainstalowaniu więcej niż jednej (niezależnej) wersji systemu Windows , Linux lub jednej wersji Ubuntu na jednym komputerze(lub dysk twardy, który jest używany z kilkoma komputerami i uruchamia inną instalację tej samej wersji systemu operacyjnego na każdym komputerze). Większość z tego jest już możliwa, ale mechanizmy w Windows i Ubuntu (Fedora,…) po prostu wybierają zastąpienie tego, co jest w ich przestrzeni nazw, pod fałszywym założeniem, że może być tylko jeden.

(Uruchamiam Windows8 / 10, Ubuntu, Ubuntu LTS i Fedorę na jednym komputerze i kilka razy majstrowałem przy uruchamianiu UEFI przy różnych wymaganiach.)

LiveWireBT
źródło
1
Nie korzystam z systemu Windows. Ale czy ktoś próbował skopiować / EFI / Windows do / EFI / Windows10 i / lub / EFI / Windows8 i edytować każdy BCD tylko dla tej wersji? A następnie w UEFI tworzenie wpisów dla każdego. Jeśli to działa z UEFI, grub może połączyć się bezpośrednio z każdym.
oldfred
@oldfred To właśnie chciałem wskazać w dolnej części i może istnieć nawet parametr bcdbootokreślający inny katalog docelowy, ale nie jestem pewien. Ładowanie łańcuchowe innych plików binarnych EFI tylko z jednego ESP znacznie upraszcza 40_customi czyni go mniej podatnym na błędy, masz rację. Myślę, że zbytnio skupiłem się na scenariuszach z wieloma dyskami twardymi (w takim przypadku nadal powinieneś być w stanie powiedzieć bcdboot, aby uruchomił Windows na HDD2 z ESP na HDD1). m (
LiveWireBT
Komputer jest w stanie obsługiwać UEFI, ale szczerze mówiąc nie mam pojęcia, że ​​wtf nie działa teraz z partycjami. W szkole zainstalowano niestandardowy obraz systemu Windows 8 i chociaż korzystał on z UEFI i Secure Boot (uważam, że BIOS jest skonfigurowany tak, aby umożliwiać zarówno UEFI, jak i starsze uruchomienie; pamiętam, że wyłączałem Secure Boot), sam dysk twardy jest formatowany przy użyciu MBR. Tutaj masz zrzut ekranu: imgur.com/1vDS4jf (Tak, planuję wkrótce zmienić rozmiar kilku partycji.) Również sam Ubuntu (z grepping dmesg) nie wydaje się być uruchomiony w trybie EFI, ale Nie wiem, czy sam GRUB może
Hitechcomputergeek,
@Hitechcomputergeek Zrzut ekranu pokazuje tabelę partycji msdos / MBR z partycją rozszerzoną i bez partycji EFI. Jak powiedziałem wcześniej, powinieneś mieć GPT i możesz używać go dismdo partycji Windows.
LiveWireBT,
być uruchamiany jako UEFI, ale następnie uruchamiaj inne systemy operacyjne jako nie-UEFI lub coś takiego. UEFI jest mylące. EDYCJA: GRUB nie jest uruchamiany jako UEFI. Nie mam pojęcia, co się stało z oryginalnym systemem Windows. Właściwie, pomyśl o tym, myślę, że to możliwe, że NIE BYŁO UEFI w pierwszej kolejności. Założyłem, że było tak, ponieważ w zasadzie nie można było dostać się do BIOS-u z powodu hibernacji systemu Windows 8, chyba że najpierw go uruchomiłeś, a następnie wcisnąłeś „Uruchom ponownie”, NASTĘPNIE próbował dostać się do BIOS-u. W ogóle nie musiałem tego robić od czasu instalacji Ubuntu (i GRUB).
Hitechcomputergeek,
2

Zaloguj się do swojego systemu operacyjnego Ubuntu, otwórz terminal:

sudo update-grub

restart

Nidhan
źródło