OpenSUSE Leap 15.0 BTRFS /boot partíció EFI-vel fűszerezve

Kicsit szívni óhajtottam, így feldobtam egy OpenSUSE-t az asztali gépre, bare-metal. Kicsit ismerkedek BTRFS-el így a telepítőnél kis habozás után (csábító volt az XFS…) azt választottam. Nem vagyok túlságosan oda ezekért a dolgokat, szeretem egyszerűen tartani a dolgokat (mount | wc -l 40 soros, wtf.) de azért érdekelnek is ezek az úri huncutságok.

Lényegre térve, telepítéskor kiválasztottam a BTRFS-t, felkonfigolt egy rakat subvolumeot, igenám de szinte mind CoW-ban volt. Értem én, hogy milyen jól lehet ezzel erőforrást spórolni, de amit lemásoltam az legyen lemásolva, ne trükközzön nekem. Telepítő szerencsére nem adott lehetőséget, hogy kikapcsoljam a subvolumeokra, így kitöröltem az összeset és újra létrehoztam. Persze hülye fejjel nem írtam le, hogy miket rakott be (gondoltam én nem akkora tudomány ez), így hasraütésre létrehoztam néhányat, majd el is felejtettem, egészen amíg újra nem indult a telepítés után.

Itt fogadott egy default grub konzol és ennyi. Boot parancsra kérte, hogy előbb töltsem be a kernelt. Itt már gyanús volt, hogy megszívtam. Kis (néhány órás) kutakodás után meglett, hogy nekem jól bemountolja a /-ot a boot subvolumeot meg nem. Kernel, grub.cfg meg úgy kb meg minden ott van ami az induláshoz kell. Kézzel szépen indult a rendszer. A blogbejegyzés apropója pedig ez, hogy kell ezt olyan igazán jól megcsinálni, hogy jó legyen.

Kézi indítás

Mountoljuk be a /boot subvolumeot:

btrfs-mount-subvol (hd0,msdos2) / /@/boot
insmod linux
linux /vmlinuz root=/dev/sda2
initrd /initrd
boot

Értelemszerűen hd0,msdos2 az a btrfs kötet, /dev/sda2 pedig a device ahol a BTRFS kötet van.

Ugye amit tudunk állítgatni /etc/grub.d alatti konfigok (btw.: mi ez a borzalom itt?), amiből lesz a /boot/grub2/grub.cfg az csak akkor kerül fedolgozásra ha már megvan a /boot. Ezt hiába is állítanánk, el sem jutna odáig. Igazából itt csesztem el a dolgot. Defaultból az opensuse nem rakja ki a /boot-ot subvolumera. Csak néhány efi-s könyvtárat onnan, így defaultból ugye a / alatt megtalálta volna a grub.cfg-t, az én konfigomnál ezt hiába kereste.

Automatikusan

Ha már tudjuk és értjük mi a gond nem bonyolult összerakni a dolgokat. Először ugye az efi partíciót fogja feldolgozni és utána csak a btrfs-t. Mountoljuk fel az efi partíciónkat és írjuk át benne az EFI/opensuse/grub.cfg fájlt (adjuk hozzá ezt a sort a search után):

btrfs-mount-subvol (${root}) / /@/boot

Így már szépen felfogja mountolni a /boot-ot és menni fog úgy ahogy kéne.

This entry was posted in BTRFS, Linux, OpenSUSE and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *