Nyilván egy linuxos kezdő viszonylag hamar szembesül azzal a problémával, hogy GPT vagy MBR típusú lemezt kell készítenie és nem mindegy, hogy milyen boot avagy live médiát használ.
Amikor valaki kiír egy linux alapú disztrót, nem árt tudni, hogy a számítógép éppen BIOS vagy UEFI módban működik és maga a boot lemez melyik típusú rendszerhez van kiírva.
Ilyenkor bizony nagyon sokan szoktak meglepődni és jönnek is a kérdések a közösségi oldalakon rendszeresen, hogy hol a baj.
A helyzet az, hogy a legtöbb haladó linuxos általában valamilyen hibrid megoldást használ, ami mind a két rendszeren elindul, erre kiváló példa az MX linux telepítője vagy a méltán ismert Ventoy boot media.
Na de hogyan tudunk ilyen lemezt mi magunk készíteni akár több különböző, frugál, live avagy hagyományos, tehát vegyes megoldással rendelkező, több platformhoz is használt operációs rendszerekhez ?
Erről következzen egy kis leírás haladóknak és bátor kezdőknek lépésről lépésre.
Feltételezzük, hogy a művelezthez már mindenki előkészítette a használni kívánt vinyót, pendrive -ot vagy külső meghajtót. Itt a későbbiekben az egyszerűség kedvéért sdX néven hivatkozunk majd rá.
Akinek abszolút semmilyen ismerete nincs az anyaggal kapcsolatban, annak egy kis segítség és videók az alapokkal kapcsolatban:
https://skamilinux.hu/a-nagy-boot-kaosz-efi-uefi-gpt-csm-bios-msdos-mbr-secure-boot/
#UEFI/BIOS hibrid boot drive készítése
1., Amennyiben nincs fenn minden, devuan rendszer esetén például a szükséges csomagok telepítése:
sudo apt install gdisk grub2-common grub-efi-amd64-bin grub-pc-bin
2., A szükséges GUID Partition Table (GPT) partíciók létrehozása:
/sbin/sgdisk -n 1::+1M -c 1:"BIOS boot partition" -t 1:ef02 /dev/sdX
/sbin/sgdisk -n 2::+50M -c 2:"EFI System" -t 2:ef00 /dev/sdX
/sbin/sgdisk -n 3::-0 -c 3:"Linux filesystem" -t 3:8300 /dev/sdX
Értelemszerűen az sdX a meghajtót jelenti, ahol az sd az általános meghajtó elnevezés és az X pedig az a, b, c, d stb… jelöli hogy melyik lemezről beszélünk.
Tipikus hogy általában a /dev/sda a boot lemezünk és a boot partíció mondjuk az sda2.
Ebben a részben : /sbin/sgdisk -n 3::-0 -c 3
a “-n 3” az a partíció száma és a “-0” azt jelenti, hogy mennyi helynek kell maradnia a hátralévő szabad helyből, ami nulla, tehát az egész hátralévő szabad helyet használja fel. a -t opció a fájlrendszer típusa. Ezt az sgdisk -L
segítségével tudjuk ellenőrizni.
ef00 EFI System ef01 MBR partition scheme ef02 BIOS boot partition
3., Hibrid MBR partíciós tábla készítése – itt csak fel kell sorolni, hogy mely partíciók vesznek részt a mókában:
/sbin/sgdisk --hybrid=1:2:3 /dev/sdX
4., Boot flag a data partícióra – erről már sokat beszéltünk a videókban, időnként el szoktuk felejteni – itt a “3:set:2” jelentése az, hogy a harmadik partíción kettes típusú attribútum bitet állítunk (legacy BIOS bootable), erről bővebben a lent megadott linken, az sgid manuálokban lehet találni információt.:
sgdisk --attributes 3:set:2 /dev/sdX
5., Partíciók formattálása
#FAT32
mkfs.vfat -vF32 /dev/sdX2
#ext4
mkfs.ext4 /dev/sdX3
6., A szükséges könyvtárak létrehozása és felcsatolása – értelemszerűen az 1 megás partíciót nem csatoljuk, itt technikai szerepe van csak, de az mondjuk elég lényeges
sudo mkdir /mnt/{efi,data}
sudo mount /dev/sdX2 /mnt/efi
sudo mount /dev/sdX3 /mnt/data
7., GRUB telepítés, UEFI és BIOS boot készítés
sudo grub-install --target=x86_64-efi --recheck --removable \
--uefi-secure-boot --efi-directory=/mnt/efi --boot-directory=/mnt/efi/boot
sudo grub-install --target=i386-pc --recheck \
--boot-directory=/mnt/data/boot /dev/sdX
8., Lehetséges problémák megelőzése – a fallback efi mostanában elég sok problémát generált:
rm /mnt/efi/EFI/BOOT/BOOTX64.CSV
rm /mnt/efi/EFI/BOOT/fbx64.efi
rm /mnt/efi/EFI/BOOT/grub.cfg
9., Adjunk rekurzív módon jogokat az adat partícióra a mindenkori tulajdonosnak:
sudo chown -R 1000:1000 /mnt/data
10., Egy alap konfigurációs fájl készítése – létrehozunk egy grub.cfg
állományt amiben a szintén frissen létrehozott grubhybrid.cfg
fájlra hivatkozunk, ebben lesz a lényeg.
cat > /mnt/efi/boot/grub/grub.cfg << EOF search --set=root --file /grubhybrid.cfg configfile /grubhybrid.cfg EOF cp /mnt/efi/boot/grub/grub.cfg /mnt/data/boot/grub/grub.cfg cat > /mnt/data/grubhybrid.cfg << "EOF"
set menu_color_normal=black/cyan
set menu_color_highlight=light-cyan/cyan
menuentry "Reboot" { reboot }
menuentry "Poweroff" { halt }
if [ ${grub_platform} == "efi" ]; then
menuentry "UEFI setup" { fwsetup }
fi
EOF
No és akkor itt a vége, fuss el véle !
Próbáljuk ki az új boot lemezünket, természetesen ez csupán az alapok ismertetése volt, innentől kezdődik az igazi kocka-móka, a legérdekesebb operációs rendszerek kipróbálása és az ezekhez szükséges menuentry{} bejegyzések készítése.
Példa – egy memteszt hozzáadása az üres boot lemezünkhöz:
menuentry "Memtest86+ (BIOS)" {
linux16 /install/memtest86+
}
menuentry "Memtest86 (UEFI)" {
insmod part_gpt
insmod search_fs_uuid
insmod chain
loopback loop /install/memtest86
chainloader (loop,gpt1)/efi/boot/BOOTX64.efi
}
Ezeket nyilván nem betűről betűre kell bemásolni, hanem testreszabni, hogy oda mutasson minden bejegyzés, ahová te másoltad és ahol ténylegesen találhatóak az adott fájlok !
Ilyen bejegyzéseket én általában a kiszemelt OS live telepítőjén található grub.cfg fájlokból szoktam kimásolgatni, de az alábbi youtube listámon is találhattok ehhez segítséget bőséggel:
https://www.youtube.com/playlist?list=PLTwvqf_atuc1m-hdp_qOKpxtvxD52Nygt
A cikkben felhasznált szakirodalom: https://explainshell.com/explain/8/sgdisk
Illetve ezen oldalon: https://www.rodsbooks.com/gdisk/sgdisk.html
Továbbra is várunk mindenkit nagy szeretettel csevegő oldalunkon élőben:
https://skamilinux.hu/chat/
Aktív fórum témák:
https://skamilinux.hu/phpBB3/search.php?search_id=active_topics
Legutóbbi PuppySzoftverek:
https://sourceforge.net/p/puppyszoftver/activity