[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Booten vanaf SSD met GPT en UEFI-partitie lukt niet



On 11/05/2014 11:08 PM, Paul van der Vlis wrote:

Hoi,

Als eerste: misschien is het je niet opgevallen, maar in mijn antwoord
heb ik de term "BIOS" zorgvuldig gemeden. BIOS en UEFI zijn twee
verschillende standaarden waarop het OS contact kan leggen met de
hardware. De manier van booten is daar maar een onderdeeltje van.
Momenteel ondersteunen de meeste moederborden zowel BIOS als UEFI. Wil
je een systeem dat alleen BIOS aan kan (doorgaans de wat oudere
varianten van de OSsen) booten, dan moet je het moederbord in 'legacy
boot' oid zetten. Boot je een systeem dat alleen UEFI aan kan, juist
niet. Als je via BIOS boot, zijn de UEFI specifieke zaken, die van
efibootmrg, niet beschikbaar. Debian, en andere linux smaken, kunnen al
een hele tijd zowel onder BIOS als UEFI opstarten.

> Blijkbaar kan die lijst in sommige gevallen verdwijnen uit de CMOS, en

Zou niet durven zeggen wat dat veroorzaakt. De UEFI varianten van GRUB,
LiLo etc hebben installatie scripts die in die lijst roeren. Maar het
kan ook zijn dat de firmware van het moederbord iets doet als een schijf
niet meer zichtbaar is oid. Of natuurlijk een bug...

> de reparatie is niet echt heel simpel.

Doorgaans betekent dat via UEFI booten naar een linux rescue disk oid en
dan met efibootmgr de zaak weer recht zetten.

Overigens valt de UEFI standaard terug op de loader in:
\EFI\BOOT\BOOTX64.EFI
Als die aanwezig is, zou je die vanuit het boot-menu moeten kunnen laden.

> Als je een bootbare USB-stick hebt dan ziet een bios dat ding, ik snap
> niet zo goed waarom hij dan niet de bootbare Debian disk ziet.

Bij BIOS is de route: MBR lezen die op het begin van de geselecteerde
schrijf staat en dan doen wat daar staat (in ons geval leeft daar
doorgaans grub). Bij UEFI is dat op de GPT partitie de EFI systeem
partitie zoeken. Als er een default bootloader is ingesteld, die daarvan
laden, anders \EFI\BOOT\BOOTX64.EFI laden.

Als je een BIOS boot doet en je hebt geen geldige MBR dan hang je, als
je een UEFI boot doet en je hebt geen geldige UEFI system partitie, dan
hang je ook.

> ( Blijkbaar zijn er twee verschillende methodes, ik vraag me af of het
> niet handig is om altijd die methode te gebruiken die USB sticks
> gebruiken. )

Ook voor USB-sticken geldt dat ze met een MBR, een UEFI system partitie
of met beiden gemaakt kunnen zijn. "De methode die USB sticks gebruiken"
bestaat dus niet.

> Bedoel je in het bios?  Hoe kun je daar dan boot-opties toevoegen?

Ik gebruik hier liever de term "in de bios" niet, omdat het het
verwarrend kan werken. Ik bedoel in het pre-boot menu van je moederbord.
Het hangt van de firmware af wat je daar wel of niet kan doen. Ik heb
even nagekeken, bij mijn thinkpad kan ik die lijst niet aanvullen,
alleen de default kiezen vanuit het pre-boot menu (wat 'setup utility'
heet bij de thinkpad).

>> en met efibootmgr. De efi partitie (zoals je al gemerkt had) kan je
>> gewoon mounten.
> 
> Blijkbaar kan het ook met grub-install, zoals ik deed.

Grub-install, elilo, refind etc hebben installatie scripts die EFI
systeem partitie mounten op /boot/efi, doen wat ze moeten doen en dan
weer unmounten. Sommige van die scripts detecteren ook of er via BIOS of
UEFI geboot is en passen daar de te nemen acties op aan.

>> Overigens heb ik goede ervaringen met de 'refind' efi-bootmanger. De
>> maker ervan heeft ook een efi-rescue disk/usb stick die de computer
>> scant voor met efi-bootbare bestanden. Heel makkelijk als het geheel
>> ergens is ontspoord.
> 
> Dan moet je natuurlijk wel zo'n stick hebben liggen. Ik heb meestal wel
> een Debian-install-stick bij de hand, dat is misschien iets meer werk
> maar het lukt ook. Handig zou het zijn, als het ook vanuit het bios zelf
> kon, bijvoorbeeld met de efi-shell.

In principe kan je elke rescue disk/stick die UEFI kan booten gebruiken
en dan efibootmrg aanroepen. Het charmante van de refind efi-rescue disk
is dat scant naar alles waarvan te booten is en je dan een lijst
presenteert met al je opties. Je kan die dus gebruiken als tussenstap om
naar je uit de lijst 'verdwenen' bootloader te gaan. Je boot dan direct
het systeem wat je wilt hebben en kan dan direct de installatie scripts
van de favoriete bootloader draaien om alles weer recht te zetten. Wel
zo makkelijk.

Wel twee bugs waar je tegenaan kan lopen:
- Ik kon debian-live op mijn thinkpad niet via uefi bootend krijgen
(terwijl dat wel zou moeten), Ubuntu live wel.
- Sommige uefi-bootloader scripts (zoals die van elilo) doen een fsck op
de uefi partitie voor ze hem mounten. Maar in testing zit er een bug in
fsck.vfat die er voor zorgt dat op een UEFI systeem partitie een
onterechte foutmelding wordt gegeven. Daardoor kan het script falen.


groet,

Winfried


Reply to: