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