Ik'heb een HP Pavilion Touchsmart notebook die werd geleverd met Windows 8. Ik'heb een upgrade naar 8.1 uitgevoerd, en nu wil ik een Ubuntu-distributie dual-booten met Windows 10. Bij het dual-booten met Windows 8.1, kreeg de Windows Boot Manager altijd voorrang, zelfs na het installeren van GRUB. Wat moet ik doen om GRUB de standaard bootloader te laten zijn in plaats van Windows Boot Manager?
Dit is de langste post die ik ooit op een StackExchange site heb gemaakt, maar dit proces vereist veel uitleg en aandacht voor detail. Het'is ook enigszins specifiek voor de hardware in kwestie, wat meer uitleg vereist. Na veel hoofdpijn, twee per ongeluk opnieuw geformatteerde harde schijven, en veel frustratie met HP's buggy firmware implementatie, kreeg ik eindelijk Xubuntu en Windows 10 mooi naast elkaar draaiend. Ik'heb dit gedaan met Windows 10, maar het zou ook moeten werken met Windows 8.1. Beide nieuwere besturingssystemen gebruiken het nieuwe(ish) UEFI firmware systeem, in plaats van het traditionele BIOS systeem, waar de meeste verwarringen met dual-booting lijken te ontstaan. Ik lees veel dingen op veel plaatsen met instructies voor dual-booting met een BIOS systeem, die over UEFI praten alsof het gewoon een ander soort BIOS is, of een optionele laag tussen BIOS en een OS. UEFI en BIOS zijn niet hetzelfde; een UEFI is geen BIOS, en een BIOS is geen UEFI. Ze'zijn totaal verschillend. Er zijn een aantal dingen die anders moeten worden gedaan bij dual-booting met een UEFI systeem. Ten eerste, gebruik geen EasyBCD. Ik'heb veel verouderde dual-booting tutorials gezien die EasyBCD aanbevelen, maar het is ontworpen om te werken met traditionele BIOS-firmware gebruikt door Windows 7 en Windows Vista, en het werkt niet goed met nieuwere UEFI-firmware (Windows 8, 8.1, of 10). Als je al met EasyBCD hebt gerommeld, maak je dan geen zorgen- het ergste wat het waarschijnlijk heeft gedaan is een puinhoop maken in je EFI boot entries door dingen naar de MBR te schrijven. We zullen dat opruimen in stap 4. Over MBR gesproken, vermijd dat als de pest. Het Master Boot Record is wat's gebruikt in traditionele BIOS firmware als een lijst van bootloaders opgeslagen in de boot partitie (of, indien geschreven door Windows, in welke partitie dan ook eerst is) van je harde schijf. Het is bedoeld om een lijst te maken van de besturingssystemen op de harde schijf, en de firmware te vertellen welke het eerst wordt opgestart. Dit werkt niet goed met HP's UEFI firmware. Het lijkt erop dat als er'een MBR wijziging wordt gedaan, HP's UEFI firmware in de war raakt en terugloopt naar de Windows Boot Manager, die GRUB volledig zal omzeilen. Wat je nodig hebt:
Je'moet ingelogd zijn als administrator om dit te doen. Het'is erg belangrijk om Snel opstarten uit te schakelen voordat u GRUB installeert, omdat of het Ubuntu-installatieprogramma Windows' aanwezigheid kan detecteren, afhangt van hoe Windows zichzelf in de opstartpartitie voorstelt. Met Fast Startup goed uitgeschakeld, zou het moeten worden gedetecteerd. Detectie zal worden behandeld in stap 4. Windows 8, 8.1, en 10 gebruiken dit fancy nieuwe ding genaamd Snel Opstarten, dat uw firmware vertelt om een speciale bootloader te laden die het systeem zeer snel herstelt naar de staat van vóór het afsluiten. Best cool, hè? Nou, omdat het de EFI systeem's volgende-boot optie verandert, moet deze functie worden uitgeschakeld terwijl je GRUB installeert. Dit kan worden gedaan door het volgende te doen:
Voordat u Ubuntu installeert, zult u'uw live CD/USB willen gebruiken om er een aparte partitie voor te maken. Op die manier zal'het Windows niet overschrijven. Zorg ervoor dat je'een back-up hebt. Geen garanties- dit hangt af van wat Windows heeft besloten te doen in je boot partitie, en het kan ook afhangen van welke Ubuntu versie/distributie je'gebruikt- ik heb'ze niet allemaal gebruikt. Om de partities te maken, moet je booten naar je live CD/USB, en gparted openen. Er zijn genoeg tutorials over het gebruik van gparted, en het'is vrij gemakkelijk uit te vogelen, dus ik'laat de details aan jou en het internet over.
boot
. Als er geen label optie is, maak je er dan geen zorgen over. U moet echter de "boot" en "esp" vlaggen op deze partitie instellen ; zonder hen zal het Ubuntu-installatieprogramma het gewoon negeren en een legacy modus installatie gebruiken, en Windows (10) zal weigeren om helemaal te installeren met de fout "we couldn't create a new partition or locate an existing one". Of niet. Het lijkt af te hangen van hoe Windows zich die dag voelt...Windows
. Dat maakt het makkelijker voor u tijdens de installatie van Windows. Nu we het toch over het Windows installatieprogramma hebben- begin daar nog niet aan. Als je'nieuwe installaties van zowel Ubuntu als Windows tegelijk doet, in plaats van een upgrade van 8 of 8.1 naar 10, is het veel makkelijker om eerst Ubuntu te installeren.Of u nu een upgrade naar Windows 10 uitvoert vanuit een bestaand Windows OS, of zowel Windows 10 als een Ubuntu-distributie installeert op een nieuwe of nieuw gepartitioneerde harde schijf, het's een stuk eenvoudiger om Ubuntu eerst te installeren. Ubuntu gebruikt GRUB 2 als zijn bootloader, die dingen doet zoals een EFI bootloader zou moeten doen. Windows 10 gebruikt Windows Boot Manager, die dingen doet... nou ja, de manier waarop Windows ze doet... Als u Windows eerst installeert, zult u waarschijnlijk'niet in staat zijn om op te starten naar Ubuntu zonder een speciale toets ingedrukt te houden tijdens het opstartproces om de Windows Boot Manager te stoppen met laden, omdat Windows Boot Manager GRUB niet respecteert wanneer het'wordt toegevoegd aan zijn lijst met bootloaders. Dus installeer in plaats daarvan eerst Ubuntu en GRUB, en voeg dan een vermelding toe aan GRUB voor de Windows Boot Manager.
Stap 4.1: Opschonen van oude EFI entries (optioneel)
Gelieve hier voorzichtig te zijn. Het verwijderen van de verkeerde dingen kan grote problemen veroorzaken.
Voordat we Ubuntu installeren, willen we er zeker van zijn dat de geesten van vroegere OS-installaties ons in de toekomst niet zullen achtervolgen. In een UEFI systeem, gebruiken besturingssystemen EFI (extensible firmware interface) bestanden om de firmware te vertellen: "Hey, ik besta. Wanneer een nieuw besturingssysteem wordt geïnstalleerd, voegt het een item toe aan de EFI Boot Manager's lijst, die het een uniek item nummer geeft, en vertelt de EFI Boot Manager waar het's EFI bestand(en) is (Windows registreert verschillende EFI bestanden- een voor normaal opstarten, een voor een herstel opstart, een voor snel opstarten- mogelijk meer, afhankelijk van uw firmware en uw OS versie). De EFI Boot Manager houdt ook de opstartvolgorde bij: een lijst met invoernummers die aangeven wat eerst wordt opgestart. Als je'hebt gebruik gemaakt van EasyBCD; bcdedit; Windows' Boot Repair of Recovery tools; boot-repair in een Linux OS; of zelfs als je'Windows hebt geupdate of opnieuw hebt geïnstalleerd, is er'een goede kans dat je EFI entry lijst nu een aantal duplicaten heeft. Tenminste, dat was het geval met de mijne. Het hebben van duplicaten hier kan uw bootproces vertragen, aangezien de firmware door de verouderde of verkeerde bestandsingangen zoekt tot het een bootloader vindt die werkt. Het kan ook een boot-loop veroorzaken, waar bootloader A de firmware naar bootloader B wijst, die het weer terug wijst naar A, en dan begint het heel, heel lang te duren...
Hoe dan ook, om je EFI entry lijst te bekijken en te zien wat er opgeschoond moet worden, gebruik je het efibootmgr
pakket met je live CD/USB. Je moet het installeren met sudo apt-get install efibootmgr
in een terminal, en het dan uitvoeren met sudo efibootmgr
. Standaard krijg je een lijst met entries die er ongeveer zo uitziet:
Toen ik deze tool voor het eerst gebruikte nadat ik met EasyBCD en bcdedit had geprobeerd om dingen in de juiste volgorde op te starten, had ik hier meer dan honderd entries, waarvan de meeste dubbel waren.
Als je boot manager lijst niet te rommelig is, of als je niet goed weet wat je kunt verwijderen en wat niet, ga dan gewoon door naar stap 4.2.
Om entries die je niet nodig hebt op te ruimen, gebruik je efibootmgr -b <hex_number> -B
, waarbij hex_number
wordt vervangen door het nummer dat bij de boot entry staat. Dus, om de USB Drive (UEFI)
entry (genummerd Boot2001) in de bovenstaande afbeelding te verwijderen, zou ik sudo efibootmgr -b 2001 -B
gebruiken. U'zult merken dat ik een aantal duplicaten heb laten staan (alle 3000+ genummerde ingangen). Je kunt efibootmgr
met verschillende opties gebruiken om enkele andere attributen van de entries te bekijken, zoals de bestandspaden waarnaar ze verwijzen. Deze entries lijken duplicaten, maar ze wijzen allemaal naar verschillende bestanden die gebruikt worden door mijn HP laptop om zijn BIOS te updaten. Wees voorzichtig met wat u verwijdert. Het kan erg moeilijk of onmogelijk zijn om dingen hier te vervangen. U kunt ook efibootmgr gebruiken om de BootOrder te veranderen, die het weergeeft. Zie de man page voor meer informatie over dit handige gereedschap.
Stap 4.2: Ubuntu installeren
Nadat je'de EFI Boot Manager entries hebt opgeschoond, als je ervoor gekozen hebt om dat te doen, is het eindelijk tijd om Ubuntu te installeren. Met uw live CD/USB geladen, selecteer de installatie optie van het bootloader menu, of start het vanaf het bureaublad na het inloggen. Kies uw opties op de eerste pagina van het installatieprogramma. Het tweede deel zal er ongeveer zo uitzien: (Ik'gebruik Xubuntu 14.04, dus uw installatieprogramma kan verschillen, maar de opties zouden vrij gelijkaardig moeten zijn).
Als uw installatieprogramma uw Windows-installatie niet detecteert (zoals de mijne), zult u'de "Something else" optie moeten selecteren. Van daaruit krijgt u'een scherm dat lijkt op het gparted-menu dat u gebruikte om uw partities in te stellen. Selecteer gewoon de partities die u hebt gemaakt, en wijs ze toe aan het juiste koppelpunt door een partitie te selecteren en te klikken op "Change".
U zou een installatieschijf voor Windows 10 moeten hebben. Voordat u begint met installeren, moet u ervoor zorgen dat u uw productsleutel in de buurt hebt, anders zult u'niet kunnen installeren/upgraden. Als je opstart naar de installatie-cd/USB, is het installatieprogramma vrij eenvoudig. Een beetje te eenvoudig voor mijn comfort- de enige knop was "Installeer Windows 10" of zoiets, en Windows 8, 8.1, en 10, zijn berucht om hun achter-de-schermen-installaties, waar het gewoon zegt "We're getting things ready", en geen details geeft over wat het eigenlijk met uw systeem doet's. Als u'deze instructies tot dusver hebt gevolgd, zou het OK moeten zijn om regelmatig met de installatie te beginnen.
sudo update-grub
. Dit zal het os-prober script uitvoeren dat GRUB gebruikt om grub.cfg te compileren, wat grub's EFI bestand vertelt welke entries op te nemen, welke kleuren te gebruiken, enz. Het os-prober script zou Windows Boot Manager moeten identificeren, en het automatisch aan de lijst toevoegen.
Optioneel kun je Grub Customizer installeren om de volgorde van de menu-items te veranderen en het gedrag en de kleur en achtergrond van het GRUB menu aan te passen. Je kunt dit installeren vanaf een terminal met sudo apt-get install grub-customizer
, en dan sudo grub-customizer
uitvoeren.
Bij gebruik van GRUB op een UEFI systeem gedeeld met een Windows OS, installeer NIET naar MBR. Sommige tutorials noemen het als een cruciale stap om Grub Customizer's "Install to MBR" optie te gebruiken onder het File menu. U zou dit niet moeten doen op de meeste UEFI systemen. De MBR (Master Boot Record) is ontworpen voor BIOS firmwares, en wordt nog steeds tot op zekere hoogte gebruikt door de Windows Boot Loader. GRUB toevoegen aan de MBR, wanneer het al in de EFI entry lijst staat, kan veel haarballen veroorzaken.
Als je er zeker van moet zijn dat GRUB de eerste vermelding in de opstartvolgorde lijst is (d.w.z. als Windows altijd opstart, ook al heb je alles goed gedaan), gebruik dan efibootmgr (zie stap 4.1) om de opstartvolgorde van de EFI Manager's te bekijken/bewerken.
OpmerkingenIk heb Secure Boot helemaal niet genoemd, omdat het normaal gesproken geen invloed zou moeten hebben op Ubuntu's installatie. Veel dual-booting tutorials hebben het over het uitschakelen ervan, maar dat'is meestal niet nodig met een huidige 64-bit installer. Echter, elke PC is anders, en Secure Boot is vrij nieuw (2012), dus verschillende firmwares kunnen dingen anders implementeren. De versie van mijn HP firmware bevat bijvoorbeeld een "legacy boot" optie, die Secure Boot uitschakelt en geïnstalleerde OS'en behandelt alsof het BIOS firmware is: sommige mensen raden aan dit in te schakelen voor het installeren voor dual-boot. Het installeren van Ubuntu in legacy boot mode op mijn systeem verhinderde dat GRUB zichzelf kon toevoegen aan de EFI entry lijst, dus alles wat het kon doen was zichzelf toevoegen aan de MBR, waar Windows Boot Manager volledige controle over had. Windows Boot Manager had veel aanpassingen nodig om zelfs maar de lijst met entry's weer te geven, en na dat alles bootte het alleen de Windows entry's, waardoor GRUB onbruikbaar werd zonder handmatig het EFI bestand te selecteren iedere keer als ik opstartte. Zie hier voor meer informatie over Ubuntu en Secure Boot en Legacy Boot, en informatie over het verschil tussen UEFI en BIOS installaties in het algemeen.
Ik wil geen post dupliceren voor mogelijke beleidsovertreding, dus ik zal mijn antwoord voor dit probleem linken. In het kort heb ik een Samsung laptop met Windows 10 al geïnstalleerd en ik was probeerde Linux te installeren met meerdere instanties; Ubuntu 12.04, 14.04, en 16.04. Ik gebruikte Boot-Repair en veranderde Boot Prioriteit in mijn Setup BIOS wat resulteerde in een functionele, maar rommelige GRUB die eerst laadde. Antwoord van gebruiker Michael Hoffmann geeft goede uitleg voor installeren op lege schijf en hoe GRUB op te schonen, maar ik wilde mijn Windows 10-installatie niet verwijderen.
Gedetailleerde uitleg is te vinden in mijn post HIER.
Een iets eenvoudiger oplossing voor het bovenstaande probleem.