Linux/Saját linux live CD készítése/Bootolható ISO-fájl előállítása grub-bal
Ez a szócikk arról szól, hogy egy felinstallált linux rendszerből hogyan lehet hibrid (CD-ről és USB-ről is bootolható) ISO-fájlt létrehozni.
Egy másik szócikk részletesen leírja, hogyan lehet bootolható ISO-t előállítani isolinux-szal. Ez a szócikk csak az attól való eltéréseket tartalmazza.
Az elkészült ISO tesztelése és felírása külön szócikkben található.
A kiindulási helyzet és az installált fájlrendszer tömörítése azonos az ott leírtakkal. A munkakönyvtárak létrehozásában minimális különbség van, a kernel bemásolása megint ugyanaz:
# Munkakonyvtarak letrehozasa
rm -rf live # ha volt elozo tartalom, toroljuk
mkdir -p live/efi/boot
# A kernel bemasolasa
cp -p vmlinuz initrd live/
Bootolás BIOS-ból
[szerkesztés]A grub konfigurációs fájlját (grubbios.cfg) a munkakönyvtárban hozzuk létre:
search --set=root --file /Grub-liveCD insmod all_video set default="0" set timeout=5 menuentry "ZFS live" { linux /vmlinuz boot=live nomodeset initrd /initrd }
A search
utasítás azt mondja a grub-nak, hogy az általa látott diszkek közül arról bootoljon, amelyik root könyvtárában megtalálja a Grub-liveCD fájlt (amit mi teszünk majd oda, lásd alább). Összesen két diszket lát: a CD-t és a memóriadiszket,[1] és magától az utóbbit választaná.
# BIOS-bootolashoz
touch live/Grub-liveCD
GRUBALAP="linux normal search cat ls iso9660 help"
grub-mkstandalone \
--format=i386-pc \
--output=core.img \
--install-modules="$GRUBALAP biosdisk memdisk minicmd" \
--modules="$GRUBALAP biosdisk" \
--locales="" \
--fonts="" \
"boot/grub/grub.cfg=grubbios.cfg"
cat /usr/lib/grub/i386-pc/cdboot.img core.img > bios.img
rm core.img
A touch hozza létre az említett (üres) fájlt, ami alapján a grub megtalálja a bootolandó diszket.
A második sorban egy shell-változóba tesszük a legfontosabb grub-modulok listáját. A modulok hajtanak végre egy-egy utasítást vagy a grub >
prompt után kiadott parancsot. A listát érdemes kiegészíteni:
GRUBALAP="… ext2 lvm zfs part_msdos part_gpt"
Ha a CD grub-jával látjuk a partíciós táblát és a fájlrendszereket, be tudunk bootolni úgy, hogy a grub a CD-ről indul, az op. rendszer pedig a diszkről. Ez hasznos lehet, ha a diszken elromlik a grub. A modulokat érdemes már a bootoláskor betölteni, hogy ne kelljen tudni/keresgélni a nevüket, amikor baj van:
menuentry "ZFS live" { insmod part_msdos …
A grub-mkstandalone
létrehozza a core.img fájlt, amiben benne van a grub bináris program, a megadott modulok, és a fent létrehozott grub konfig. fájl.
A cat
összefűzi a CD-ről bootoló grub diszk-képet az előbbi fájllal, és az eredményt a bios.img-be teszi. Ez az a diszk-kép, ami a CD-ről bootoló grub-ot és a hozzá tartozó fájlokat tartalmazza.
UEFI-bootolás
[szerkesztés]Ez a rész pontosan ugyanaz, mint az isolinuxos változatban, hiszen ott is grub-ot használtunk UEFI boot loadernek.
Az ISO előállítása
[szerkesztés]A live könyvtár alá a fentiekben az alábbi fájlokat másoltuk:
vmlinuz Grub-liveCD initrd efi/boot/bootx64.efi efi/boot/grub.cfg
Az efi kezdetű sorok UEFI rendszerű bootoláshoz kellenek, a Grub-liveCD
BIOS-oshoz, a többi pedig mindkettőben.
Az ISO-t előállító szkript:
# ISO eloallitasa EFI-vel
xorriso -as mkisofs \
-V 'ZFS live' \
-boot-load-size 4 -boot-info-table \
-c boot/grub/boot.cat \
-b boot/grub/bios.img -no-emul-boot \
-eltorito-alt-boot \
-e efi/boot/bootx64.efi -no-emul-boot \
-o zfs-live.iso \
-graft-points \
live \
/boot/grub/bios.img=bios.img \
/boot/grub/grub.cfg=grub.cfg \
/live/filesystem.squashfs=filesystem.squashfs
A xorriso kapcsolóit már ismerjük.
Partíció létrehozás
[szerkesztés]Az ISO elején van partíciós tábla, de nincs partíció. Ez USB-ről bootoláskor probléma lehet. Létrehozunk egy bootolható partíciót, ami a teljes diszket magában foglalja.
# Particio letrehozasa
parted zfs-live.iso <<!!!
mkpart primary 0 -0
set 1 boot on
!!!
Az mkpart
létrehoz egy elsődleges partíciót úgy, hogy nem hagy ki helyet sem a diszk elején, sem a végén. A második sor bootolhatóvá teszi a most létrehozott 1. partíciót. Ugyanezt természetesen fdisk-kel vagy más partícionáló programmal is meg lehet tenni.
Jegyzetek
[szerkesztés]- ↑ Így nézhetjük meg: a visszaszámlálás alatt nyomjuk meg a
c
gombot. grub > promptot kapunk. Azls
kiírja a grub által látott diszkeket, a set pedig a grub környezeti változóit. A root tartalmazza a bootolásra választott diszket. Az Esc gombbal visszaléphetünk a visszaszámláláshoz.
Forrás
[szerkesztés]- Will Haley: Create a Custom Debian Live Environment (CD or USB)
- Mkisofs (OSDev.org)