Moja instalka Alpine Linuxa (pod serwery):

0. Pobierz i zbootuj system w wersji "STANDARD x86_64".

1. Partycjonowanie:

1.1 Przejdź skrypt 'setup-alpine' jak zawsze w dysku wybierając 'none',

1.2 Włącz potrzebne repozytoria:

vi /etc/apk/repositories

http://ftp.icm.edu.pl/pub/Linux/distributions/alpine/edge/main
http://ftp.icm.edu.pl/pub/Linux/distributions/alpine/edge/community
http://ftp.icm.edu.pl/pub/Linux/distributions/alpine/edge/testing

1.3 Dodaj rzeczy do partycjonowania:

apk update && apk add curl cfdisk dosfstools e2fsprogs efibootmgr micro

1.4 (Opcjonalnie) wyczyść dysk:

dd if=/dev/zero of=/dev/sda bs=4096 count=1

1.5 Uruchom 'cfdisk' i utwórz tabelę partycji:

cfdisk /dev/sda

Utwórz partycję 256M w formacie EFI System. Z reszty dysku utówrz drugą partycję, nie zmieniając jej formatu. Zapisz zmiany na dysku wybierając 'Write', wpisując 'yes' i zatwierdzając enterem.

1.6 Sformatuj obie partycje:

mkfs.vfat -F32 /dev/sda1 && fatlabel /dev/sda1 ESP && mkfs.ext4 -F -L Linux /dev/sda2

1.7 Zamontuj partycje:

mount -t ext4 /dev/sda2 /mnt && mkdir -p /mnt/boot && mount -t vfat /dev/sda1 /mnt/boot

2. Instalacja:

2.1 Zedytuj skrypt instalacyjny:

micro /usr/sbin/setup-disk

#!/bin/sh

PREFIX=/usr
: ${LIBDIR=$PREFIX/lib}
. "$LIBDIR/libalpine.sh"
. "$LIBDIR/dasd-functions.sh"

# Dodaj poniższą linijkę!
BOOTLOADER="none"

2.2 Zainstaluj system na dysk:

setup-disk -m sys /mnt

3. Konfiguracja:

3.1 Utwórz katalogi dla UKI:

mkdir -p /mnt/etc/kernel && mkdir -p /mnt/etc/kernel-hooks.d

3.1 Utwórz plik 'cmdline' z domyślnymi opcjami:

curl https://adisz.net/linux/cmdline/ >> /mnt/etc/kernel/cmdline && micro /mnt/etc/kernel/cmdline

# Zawartość pliku /etc/kernel/cmdline
# Zmień UUID! (lub zamień go na LABEL)
root=UUID=twój_uuid modules=sd-mod...

3.2 Utwórz skrypt odpowiedzialny za aktualizacje obrazu UKI:

micro /mnt/etc/kernel-hooks.d/99-zz_uki.sh

#!/bin/sh
# Zawartość pliku /etc/kernel-hooks.d/99-zz_uki.sh
# Skrypt wygeneruje nowy bootowalny obraz .efi podczas aktualizacji kernela.

uki=/boot/alpine.efi

ukify build \
        --linux "/boot/vmlinuz-lts" \
        --initrd "/boot/intel-ucode.img" \
        --initrd "/boot/initramfs-lts" \
        --cmdline @/etc/kernel/cmdline \
        --os-release @/usr/lib/os-release \
        --output "$uki"

# Skasuj poniższą linijkę jeśli w piździe masz Secure Boota!
sbctl sign "$uki"

3.3 Nadaj uprawnienia skryptowi:

chmod a+x /etc/kernel-hooks.d/99-zz_uki.sh

3.4 Wejdź w chroot:

chroot /mnt

3.5 Dodaj niezbędne rzeczy:

apk add intel-ucode ukify sbctl systemd-efistub kernel-hooks

3.6 (Opcjonalnie) Włącz Secure Boot:

sbctl create-keys && sbctl enroll-keys -m && apk fix kernel-hooks

3.7 Wyjdź z chroot:

exit

3.9 Utwórz bootowalny wpis UEFI:

efibootmgr -c -d /dev/sda -L "Alpine Linux" -l '\alpine.efi' -u

3.10 (Rekomendowane) Zmień alokator pamięci:

apk add mimalloc2

micro /etc/profile

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Dodaj poniższą linijkę!
export LD_PRELOAD=/usr/lib/libmimalloc.so.2

3.11 Odmontuj parycje i zrestartuj PC:

umount /dev/sda1 && umount /dev/sda2 && reboot

Gotowe!