'zstd' domyślnym kompresorem obrazów 'initramfs'

Arch Linux - News: Moving to Zstandard images by default on mkinitcpio

… więc:


POPRAWIONE (2021-02-22 11:30)


  1. Kernel’e arch’owe (tylko arch’owe?), od wersji 5.10, wspierają zstd jako format kompresji obrazów startowych initramfs (np. /boot/initramfs-5.10-x86_64.img)
  2. zstd staje się dla mkinitcpio, od wersji 30, domyślnym formatem kompresji.
  3. Zapewne (a może raczej na pewno) istniejące konfiguracje nie będą zmieniane, ale w nowych instalacjach mkinitcpio będzie stosował kompresję zstd, a nie gzip (obecny default).
  4. Na tych, którzy będą używać nowych jąder - nie będzie, to miało wpływu.
  5. Na tych, którzy wybiorą inny format kompresji, niż zstd, lub brak kompresji (COMPRESSION="cat") - nie będzie, to miało wpływu.
  6. Zwrócić uwagę na problem muszą Ci, którzy mają / będą mieć zainstalowane starsze wersje (np. 5.4 LTS), bo system nie wystartuje z obrazem startowym skompresowanym za pomocą zstd. Dlatego trzeba ustawić inny format (gzip, xz …) odkomentowując odpowiednią pozycję w:
/etc/mkinitcpio.conf
--------------------------------------------
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
#COMPRESSION="zstd"

… na przykład xz, jak w przykładzie powyżej.


Ważne!
Komunikat dotyczy, rzecz jasna, ARCH’a i developer’zy Manjaro już zdążyli się od tego zdystansować (poniżej, @Tomek serwuje stosowny link). Jednak tendencja jest jasna → zstd, więc wcześniej czy później temat zaistnieje również w naszym distro. Nie mam wątpliwości, że obecnie odbywa się praca intelektualna, mająca za zadanie uzyskanie odpowiedzi na pytanie, w jaki sensowny sposób (ze względu na oficjalne wsparcie starszych wersji jądra) zaimplementować, to rozwiązanie w Manjaro.

2 polubienia

Ważne info. mam jednego kompa, który najlepiej chodzi na 5.4. Dzięki.

o widzę wybiegamy bardzo w przyszłość…
a póki co ostatnim stable jest Linux 5.10.17

źródło:

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/?h=linux-5.10.y


a już jak mowa o wersji 30 w linku to oczywiście mowa o wersji mkinitcpio 30-1 gdzie obecnie jest mkinitcpio 29-1

takie małe sprostowanie


┌─┤root at spectrwm├──┤sob 20 lut 2021 ─ 124721├──┤~├─╼
└─┤742├──┤0├─╼ » # pacman -Qs "mkinitcpio" 
local/mkinitcpio-busybox 1.32.1-2
    Base initramfs tools
local/mkinitcpio-nfs-utils 0.3-7
    ipconfig and nfsmount tools for NFS root support in mkinitcpio
local/mkinitcpio-zstd 30-1
    Modular initramfs image creation utility
┌─┤root at spectrwm├──┤sob 20 lut 2021 ─ 124742├──┤~├─╼
└─┤743├──┤0├─╼ » # 

/etc/mkinitcpio.conf

MODULES=(i915 ext4)
HOOKS=(base)
COMPRESSION="zstd"
COMPRESSION_OPTIONS=('-10' '-T8' '-c' '-z' '-q')

działa zacnie już od ponad miesiąca ( zainteresowani na pewno wiedzą )

1 polubienie

Pomieszane z poplątanym. Staje się domyślnym formatem kompresji obrazów od wersji mkinitcpio 30-1.

1 polubienie

@azja chyba trochę się pospieszyłeś z tym newsem, w Manjaro nic się w tym zakresie nie zmieni. A przynajmniej nie dopóki są obsługiwane kernele starsze niż 5.10, czyli teoretycznie do końca 2025 roku. Odpowiedź od jednego z deweloperów:

2 polubienia

@LinGruby, @Piaskun
Początkowo nie wiedziałem o co Wam chodzi, ale gdy raz jeszcze spojrzałem na text, to ujrzałem … no fakt, dokonałem ekwilibrystycznego połączenia wersji dwóch różnych pakietów. Nie będę kopał samego siebie i wymyślał powodów, mniejsza z tym - wpis poprawiony, dzięki za czujność.


@Tomek
Nie jestem pewien, czy nic się nie zmieni, bo przejście na zstd ma sens, ale na drodze stoją starsze wersje. W takiej sytuacji, warto by było dopisać parę dodatkowych linii kodu, sprawdzającego obecność odpowiednich wersji kernel’a i stosownie modyfikujących konfigurację mkinitcpio.

Ponownie muszę się do tego przyczepić. Kernel wspiera zstd od wersji 5.9 a nie 5.10 i jest to związane z upstreamem a nie tylko z wymysłem developerów Archa. mkinitcpio przeszło na domyślny format zstd dopiero teraz dlatego, że poprzedni kernel LTS to 5.4 a więc bez obsługi zstd. Aktualnie wszystkie kernele w repo Arch to 5.10 lub 5.11 (zwykły, zen, hardened i lts) więc wszystkie posiadają obsługę zstd.

W repozytoriach Manjaro znajduje się zmodyfikowana wersja mkinitcpio i prawdopodobnie w niej dalej domyślnym rozwiązaniem pozostanie gzip. Dopisanie takiego kodu byłoby możliwe - ale pytanie czy developerzy Manjaro widzą w tym sens. Pożyjemy - zobaczymy.

Czepianie się jest nie na miejscu, bo napisałem: Kernel’e arch’owe. Roztropnie dopisując: tylko arch’owe?
Doceniam jednak Twoje rzeczowe uzupełnienie, czy doprecyzowanie, a przy okazji, rozwianie moich wątpliwości.

Czepianie się, o ile jest zasadne, nieobelżywe i ma na miejscu kulturalne wypunktowanie innego uczestnika dyskusji, zawsze jest na miejscu. A ja już tak niestety mam, jestem etatowym marudą.

Myślę @Piaskun, że myślimy podobnie, tylko mijamy się na poziomie lingwistycznym. Róbmy więc swoje i starajmy się unikać określeń takich jak ‘czepianie się’, bo widzę, że mogą powodować nieporozumienia :slight_smile: