Linux/Saját linux live CD készítése/ZFS root fájlrendszerű gép UEFI módban
Ez a szócikk arról szól, hogyan telepítsünk kézzel (a debootstrap paranccsal) UEFI-s rendszerű gépet. Az UEFI a BIOS korlátait kiküszöbölő új rendszerű firmware.
A kérdés ZFS root fájlrendszerű gépnél kerül elő; egyéb esetekben jóval kényelmesebb a debian gyári telepítőjét használni.
Kiindulási helyzet
[szerkesztés]Üres (virtuális) gépen vagyunk, bebootoltunk a live CD-vel, bejelentkeztünk ssh-val. Van egy partícionálatlan üres diszkünk:
root@ZFS-live:~# cat /proc/partitions major minor #blocks name 11 0 518966 sr0 8 0 8388608 sda 7 0 490984 loop0
Partícionálás
[szerkesztés]GUID partíciós táblát hozunk létre. Az első partíció azonos a BIOS-rendszerben létrehozottal (de ott DOS/MBR-ben). Az UEFI számára külön partícióra van szükség. Ezúttal nem hozunk létre swap partíciót; a BIOS-os szócikkben is csak a partíciós tábla átalakításának bemutatására szolgált.
Disk /dev/sda: 8 GiB, 8589934592 bytes, 16777216 sectors … Disklabel type: gpt Disk identifier: 1EF8015C-ECDC-4D1B-B5C3-7D64A276C02E Device Start End Sectors Size Type /dev/sda1 2048 15362047 15360000 7.3G Linux filesystem /dev/sda2 15362048 15464447 102400 50M EFI System
Az UEFI szabványos fájlrendszere a 32-bites vfat, aminek a legkisebb mérete 32M. Ebből kb. 200K-t használunk.
Pool létrehozás, debian installálás
[szerkesztés]Minden azonos a BIOS-rendszerben leírtakkal, kivéve a bootolhatóvá tételt.
Bootolhatóvá tétel
[szerkesztés]chroot-ban vagyunk. Átmásoltuk a debiant a live CD-ről, javítottuk /etc/default/zfs-t, létrehoztuk initrd-t:
apt-get install zfs-initramfs # ZFS root-hoz kell
update-initramfs -u -t -k all # generaljuk initrd-t
Ahhoz, hogy a grub-ot az UEFI partícióba tegyük, először fájlrendszert kell rajta létrehozni és mountolni:
mkfs.vfat -F 32 /dev/sda2 # ha nem lenne fenn: dosfstools csomag
mkdir /boot/EFI
mount /dev/sda2 /boot/EFI
apt-get install grub-efi # a grub UEFI-s változata
update-grub # létrehozzuk grub menüjét
grub-install --target=x86_64-efi /dev/sda # létrehozza /boot/EFI/EFI/debian/grubx64.efi-t
cd /boot/EFI/EFI
mv debian boot
cd boot
mv grubx64.efi bootx64.efi #64-bites PC-n az UEFI default boot fájlja sda2-ben: \efi\boot\bootx64.efi
cd
umount /boot/EFI /proc /sys /dev # lecsatolunk mindent /mnt alatt
apt-get clean # töröljük apt feleslegessé vált fájljait
exit
zpool export -f helyi # lecsatolnánk a ZFS-t, de szerinte foglalt. Saját magát használja.
A grub-install --target=x86_64-efi /dev/sda
létrehoz egy /boot/EFI/EFI/debian/grubx64.efi nevű fájlt, miközben az UEFI alaphelyzetben a \efi\boot\bootx64.efi-ből bootol.[1] Ez megoldható átnevezéssel, mint fenn, vagy a /boot/EFI/startup.nsh létrehozásával:
\EFI\debian\grubx64.efi
Az utóbbi hátránya, hogy a startup.nsh indulása előtt néhány másodpercig várakozik az UEFI shellben. Az idő állítólag állítható, akár 0-ra is… rejtély, hogyan.
Bootolás, ellenőrzés
[szerkesztés]Az alábbi szkript a legfontosabb dolgokat kiírja ZFS-ről:
zfs list -o name,mountpoint,mounted,compressratio,avail,used,usedsnap,usedds,usedrefreserv,usedchild, \
-t all -S mounted
A kimenet:
NAME MOUNTPOINT MOUNTED RATIO AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD helyi/ROOT / yes 1.83x 6.47G 396M 0 396M 0 0 helyi/tmp /tmp yes 1.00x 6.47G 120K 0 120K 0 0 helyi/var /var yes 2.45x 6.47G 33.5M 0 1.39M 0 32.2M helyi/var/lib /var/lib yes 2.45x 6.47G 32.2M 0 32.2M 0 0 helyi / no 1.88x 6.47G 631M 0 96K 0 631M helyi/swap - - 1.14x 6.66G 200M 0 248K 200M 0
Ezután a szokásos konfigurálások jönnek: hálózat, hosztnév, systemd-szolgáltatások tiltása/engedélyezése, stb.
Jegyzetek
[szerkesztés]- ↑ A vfat fájlrendszerben
\
választja el egymástól a könyvtárneveket. A kis- és nagybetűk azonosnak számítanak.