Jak mogę zapobiec zastąpieniu GRUB-a przez system Windows podczas korzystania z komputera z podwójnym uruchomieniem

19

Dużo czytałem o podwójnym uruchamianiu i wydaje się to tak proste, jak ładowanie systemu Windows, a następnie ładowanie Linuksa za pomocą GRUBa, ale wszyscy mówią, że Windows uwielbia niszczyć GRUBa, kiedy tylko jest taka możliwość. Jakie kroki mogę podjąć, aby temu zapobiec (inne niż użycie programu ładującego system Windows, chcę, aby było to tak proste, jak to możliwe)?

Nathan2055
źródło
1
Powiązane: Jak odzyskać gruba po instalacji systemu Windows
Gilles „SO- przestań być zły”

Odpowiedzi:

17

Windows nadpisać sektor startowy, kiedy tylko go zainstalować, należy uaktualnić go do nowej wersji lub narzędzi mechanicznych podoba bootrec /fixmbr, bootrec /fixbootlub starszy fdisk /mbr. Ogólnie najpierw zainstaluj system Windows, a następnie Linux. Sektor rozruchowy pozostanie włączony, dopóki nie zrobisz jednej z powyższych czynności. (Być może istnieją też inne sposoby zapisywania na MBR.) Ale jeśli stracisz GRUB, można go łatwo przywrócić:

  • Uruchom komputer z dysku CD na żywo (CD / DVD lub dysku flash).
  • Zostań rootem lub użyj sudo poniższych poleceń.
  • W razie potrzeby wyświetl dostępne partycje: fdisk -l
  • Windows prawie na pewno będzie istniał na / dev / sda1: mount /dev/sda1 /mnt
  • Ponownie zainstaluj GRUB w MBR: grub-install --root-directory=/mnt/ /dev/sda
  • Restart: shutdown -r now
  • Przywróć menu GRUB: update-grub

Możesz również zainstalować 100% Unixa, Linuksa lub BSD i po prostu uruchomić system Windows na maszynie wirtualnej, jeśli komputer jest wystarczająco silny.

Ponadto: system BIOS komputera może mieć opcję ochrony sektora rozruchowego.

Krzysztof
źródło
Czy poprzez aktualizację masz na myśli system Windows 7 do Windows 8, czy tylko Windows Update?
Nathan2055
1
@ Nathan2055 Tak, od 7 do 8 ... nowe, wyższe wersje systemu Windows. Windows Update nie wpłynie na MBR.
Christopher
Tak myślałem. Dobrą rzeczą jest to, że wątpię, czy będę bałaganić MBR pod Windows, a po przeczytaniu tego nie mogę przejść do Windows 8 .
Nathan2055
1
Alternatywnie możesz spróbować skonfigurować bootloader systemu Windows do ładowania łańcucha do gruba: oreillynet.com/pub/h/2337 Trochę bardziej zaangażowany i może być zbyt pracochłonny dla zbyt małego efektu, ale zrobienie tego w ten sposób powoduje, że jeśli Windows zastępuje bootloader, nadal będziesz mógł uruchomić system Linux.
Bratchley,
@JelDavis: Tak, przeczytałem kilka samouczków na ten temat, ale dla kogoś, kto nie ma absolutnie żadnego doświadczenia, nawet ładuje GRUB i fakt, że nie sądzę, że Windows sprawi mi kłopot, biorąc pod uwagę, że nie chcę uaktualniać, Myślę, że pójdę z waniliową konfiguracją GRUB-a i nie będę bałaganu z bootloaderem.
Nathan2055
4

Myślę, że pójdę z waniliową konfiguracją GRUB-a i nie będę bałaganu z bootloaderem.

Jeśli używasz jakiejkolwiek formy gruba, masz problem z programem ładującym. GRUB oznacza „Grand Unified Bootloader”. I są dwie wersje - grub v1 i grub v2. Wszystkie nowoczesne systemy Linux używają grub2 automatycznie. Jeśli zainstalujesz dowolny system Linux, grub jest domyślnym programem ładującym, chyba że korzystasz z LILO, czego nie sugerowałbym.

Osobiście mam system podwójnego rozruchu z XP i Wheezy. Powstrzymuję XP przed pisaniem gruba, wyłączając opcję „przywracania systemu Windows”.

Zanim wyłączyłem opcję przywracania, musiałbym naprawić grub przynajmniej raz w tygodniu, ponieważ bootloader systemu Windows wciąż nadpisywał grub.

Naprawiam instalację systemu Windows 8 na zewnętrznym dysku twardym przez port USB. Mam nadzieję, że to pójdzie bez problemu i nie zadziała z moim mbr.

Jenn
źródło
1
wyłączenie opcji przywracania systemu Windows prawdopodobnie rozwiązało ten problem.
DrCord,
2

Jest to obejście, którego używam, działa z aktualizacjami systemu Windows bez konieczności interwencji: Zmień nazwę EFI / Microsoft w EFI / Microsomething Zamień ścieżkę rozruchową systemu Windows w grub.cfg na EFI / Microsomething / bootmfgw.efi Jak to:

menuentry "Microsoft Windows UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --set=root <PROVIDE YOUR EFI DRIVE UUID>
    chainloader /EFI/Microsomething/Boot/bootmgfw.efi
}
światło nocne
źródło
1

Po prostu otwórz gparted, kliknij prawym przyciskiem myszy partycję, w której jest Grub, przejdź do zarządzania flagami i zaznacz boot.

John Milionis
źródło
2
Może to działać, jeśli instalacja systemu Windows zmieniła jedynie partycję rozruchową. W moim przypadku instalacja systemu Windows 8.1 zastąpiła MBR, wymagając grub-installrozwiązania Christophera .
Nathan Kidd
1

Rozwiązanie, które znalazłem gdzieś w Internecie (unix.stackexchange.com), polega na dezaktywacji menedżera rozruchu systemu Windows. Wejdź do Linuksa (oryginalna instalacja, jeśli możesz lub na żywo CD / DVD) i uruchom następującą komendę:

efibootmgr

Pamiętaj, że ta metoda będzie działać tylko wtedy, gdy Linux został zainstalowany w trybie UEFI, więc pojawi się błąd, jeśli Linux został zainstalowany w trybie Legacy. Jeśli zainstalowałeś go w trybie UEFI, otrzymasz trochę informacji i listę. Gdzieś na liście zauważysz moduł ładujący / menedżera rozruchu systemu Windows i Linux. Prawdopodobnie system Windows będzie miał wyższy priorytet (kolejność rozruchu znajduje się powyżej listy).

Są też gwiazdki * obok niektórych, jeśli nie wszystkich wpisów, oznaczając je jako aktywne.

Spójrz na 4-cyfrowy numer rozruchowy obok pozycji systemu Windows i uruchom

sudo efibootmgr --bootnum #### --inactive

Spowoduje to dezaktywację wpisu systemu Windows. Upewnij się również, że teraz wyłączony system Windows ma wyższy priorytet, jeśli jeszcze tego nie zrobił:

sudo efibootmgr --bootorder ####,$$$$,&&&&,%%%%

gdzie #### to numer rozruchowy systemu Windows.

Jeśli zrestartujesz teraz, uruchomisz system grub, jeśli opcja Linux jest włączona z najwyższym priorytetem.

Zauważ, że system Windows nie rozpoznaje, że został wyłączony, więc nie zostanie to przywrócone przez uruchomienie systemu Windows lub aktualizację.

Brałem udział w lokalnym festiwalu instalacji systemu Linux, w którym instalujemy system Linux dla zainteresowanych osób, najczęściej jako dodatkowy system operacyjny obok systemu Windows. Jeszcze nie widziałem, aby ta metoda zawiodła i wypróbowałem ją na kilku dystrybucjach (głównie Ubuntu i Mint) i kilku sprzedawcach (Asus, Acer, HP, Lenovo).

Karlovsky120
źródło
0

System Windows 10 zastępuje GRUB 2, gdy zmieniasz kolor tekstu, rozmiar, czcionkę lub tytuły pozycji menu.

Istnieją dwa sposoby rozwiązania tego problemu.

  1. Możesz zainstalować Linuksa w trybie Legacy (Ustawienia BIOS> Boot> Legacy Support + Legacy First).

  2. Możesz wyłączyć Przywracanie systemu Windows (inaczej Ochrona systemu) (Panel sterowania> System i zabezpieczenia> System> Ochrona systemu> Konfiguruj> Wyłącz).

Anonimowy
źródło