1. linux montuje všetky BTRFS subvolumes rovnakou kompresiou (asi podľa prvého riadku v /etc/fstab)
2. dekomprimácia celého filesystému nepomohla, starší kernel ju i potom vôbec nevidí, nenamontuje z nej nič, ani nekomprimovanú subvolumes.
Vyriešil som to takto:
- na USB s live Xubuntu som pridal práve ten kernel, ktorý mal ako aktuálny - získal som ho z vytvoreného image namontovaného do virtuálneho Xubuntu s kernelom 4.14 (loop).
- nabootoval som z USB
- upravil som bootovaciu sekvenciu aby nabootoval pridaný kernel a root partícia bola rovnaká ako pri normálnom boote (vrátane subvolume)
- zmenšil som partíciu BTRFS a vytvoril malú ext4 (som lenivým takže už online namontovanú btrfs cez Gparted)
- presunul /boot na vytvorenú ext4 partíciu
- preinštaloval grub, nastavil /boot/grub/grub.cfg, upravil /etc/fstab
Systém normálne nabehol a funguje aj s zstd kompresiou nad btrfs. Podľa mňa to ide celkom fajn. Benchmarky som nerobil.
1. Uff, to mě docela překvapilo, ale mělo by to snad jít obejít
„You can simulate this by enabling compression on the subvolume directory and the files/directories will inherit the compression flag.“
https://btrfs.wiki.kernel.org/index.php/Compression#Can_I_set_compression_per-subvolume.3F
Samozrejme komprimáciu partície som zmenil nielen zmenou nastavenia v fstab, ale aj defragmentáciou s parametrom -c.
Btrfs som nikdy podrobne neskúmal, ale podľa mňa btrfs obsahuje nejaké flags, podobne ako zfs. Ak sa raz nastaví že používa zstd, zmeniť sa to dá (možno) nejakými systémovými príkazmi, prípadne sa nedá vôbec (rovnako ako nieje cesta späť pri upgrade zfs).
To je dobra poznamka, napsal jsem k tomu neco do mailinglistu. Grub2 zatim zstd nema, ani jsem nevidel zadny patch v jejich mailinglistu.
Pokud je root se zstd (a je stale namountovany), je v tuhle chvili nutne po zmene souboru v /boot udelat rekompresi se zlib nebo lzo. Jinak je nutne nabootovat 4.14 (live/usb), namountovat root a opravit.
To je síce pravda, ale grub.cfg je obyčajný texťák, takže ten sa skomprimuje. Zadávať pri každom štarte systému konfiguráciu cez grub rescue je minimálne nepohodlné.
Samozrejme kernel bol komprimovaný gzipom a initramfs bol xz.
Boot partícia na BTRFS bola preto, lebo to rok bez problémov fungovalo a na 32 GB eMMC disku nie je až tak veľa zbytočného miesta, aby sa neoplatilo ho šetriť.
Kolega bol proste príliš iniciatívny, skompiloval si kernel z gentoo-sources-4.14.0 hneď ako vyšiel a hneď upravil komprimáciu v fstab a spustil defragment s paramatrom -czstd.
Problém je nateraz vyriešený, osobitná boot partícia má 256MB, zmestia sa naň 3 kernely aj s initramfs. Keď upravia grub tak, aby vedel čítať aj súbory komprimované zstd, pravdepodobne dá všetko späť.
asi je dobré mít /boot oddělený, se mi zdá, že grub blbne i s kompresí lzo/gzip minimálně na jednom stroji s Ubuntu, tam jsou initramfs nekomprimované a často se přebalují při různých updatech. Občas některý (zpravidla ten nejnovější) nenaběhne, grub říká, že initramfs obsahuje garbage a pak nenajde rootfs...
namountovat bez komprese a cp -r /boot /boot2; rm -rf /boot;mv /boot2 /boot to dočasně opravilo