Telepítés
A kézi telepítéshez kapcsolódó wiki oldal: https://wiki.archlinux.org/title/Installation_guide (ez a legmegbízhatóbb leírás).
Az arch linuxot a legegyszerűbb az arch install scripttel feltenni, itt egy felületen beállítható minden, és ugyanazokat a lépéseket futtatja le végül, mint ha az Arch wiki alapján kézi telepítést csinálnál.
Kikapcsoltam a BIOS-ban a secure boot-ot. Miután USB drive-ról betootoltam, a következő parancsokat adtam ki.
(Megjegyzés: Etherneten csatlakozik a gépem az Internethez, WIFI esetén az iwctl-lel még csatlakozni kellett volna a megfelelő hálózathoz.)
loadkeys hu
setfont Lat2-Terminus16
archinstall
A következő fontosabb beállításokat választottam ki:
- magyar billentyűzet, magyar locale, UTF-8 enkódolás
- BTRFS fájlrendszer, partícióhoz használt lemez, ajánlott layout, compression kikapcsolva, copy-on-write bekapcsolva.
- LUKS titkosítás a fájlrendszert tartalmazó partíción, jelszóval
- Minimal profile
- SWAP on ZRAM: igen
- systemd-boot bootloader
- Unified kernel: igen
- Sima linux kernel (az LTS-t később tettem fel)
- Europe/Budapest timezone
- NTP bekapcsolva
A rendszer ezután kb 1-2 perc alatt feltelepült, utána azt választottam, hogy szeretnék még a chroot-olt környezetbe belépni, és telepíteni. Kb a következőket tettem fel:
pacman -S linux-headers nvidia-dkms nvidia-utils
pacman -S bluez bluez-utils
pacman -S networkmanager network-manager-applet
pacman -S gnome gnome-tweaks firefox gedit
pacman -S intel-ucode sbctl vim
Kb ennyit, ha valami hiányzott azt menet közben feltettem.
A systemctl enable-t itt a chroot-olt könyvtárban nem lehet futtatni, ezért újrainítottam a gépet (exit, reboot), és engedélyeztem a szolgáltatásokat:
systemctl enable bluetooth
systemctl enable NetworkManager
systemctl enable gdm
reboot
A telepítés kb ennyi volt.
Secure boot
Ezután jött a secure boot engedélyezés, kapcsolódó wiki: https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot
A bios-ban a secure boot-ot kikapcsolva hagytam, és custom-ra állítottam, és az összes meglévő kulcsot, és secure boot változót töröltem (ezzel setup módba került a secure boot).
Bebootoltam az arch linux-ba, és ott root felhasználóval:
1. Ellenőrzés
sbctl status
Itt azt kell látni, hogy a secure boot ki van kapcsolva, és setup módban van, nincs kulcs.
2. Kulcs generálás
sbctl create-keys
3. Kulcs betöltése a Bios/UEFI keystore-jaiba
sbctl enroll-keys -m
A -m -mel a microsoft kulcsokat is feltöltöttük, ha jól értem, akkor ez dual bootnál is jól jön, illetve az összes Microsoft által aláírt komponensnél.
4. Ellenőrzés:
sbctl status
Itt azt kell látni, hogy még mindig ki van kapcsolva a secure boot, de fel van töltve kulcs, és a vendor keys: microsoft.
5. Fájlok aláírása
sbctl verify
Ez ki fogja listázni az összes fájlt, amit alá kell írni, és ami már alá van írva.
Ezeket egyesével alá lehet írni, nekem a következők voltak:
sbctl sign -s /boot/EFI/BOOT/BOOTX64.EFI
sbctl sign -s /boot/EFI/Linux/arch-linux.efi
sbctl sign -s /boot/EFI/Linux/arch-linux-fallback.efi
sbctl sign -s /boot/EFI/systemd/systemd-bootx64.efi
sbctl sign -s /boot/vmlinuz-linux
a -s kapcsoló miatt el is menti az sbctl a fájl elérést, és ha legközelebb szükséges lesz, akkor automatikusan újra aláírja a fájlokat.
6. Plusz, még egy aláírás
sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi
Ha systemd-boot-ot használunk, akkor ez csomag frissítés után csak újraindítást követően frissül a helyére. De így a signed verziót fogja befrissíteni a rendszer, ha talál ilyen fájlt.
7. Teszt
Ezután vissza lehet kapcsolni a secure boot-ot, és működnie kell. Ezt utána az sbctl status-sal, és a bootctl paranncsal is lehet ellenőrizni. Tehát ezen a ponton engedélyezve van a secure boot, alá vannak írva a bootoláshoz szükséges fájlok (és működik az nvidia driver is).
Titkosítás feloldása TPM2 segítségével
Most minden booltáskor be kell írni a jelszót, amit a rendszer partíció titkosításához adtunk meg. Az ehhez szükséges kulcsot fel lehet tölteni TPM-be, hasonlóan, ahogy Windows alatt a bitlock csinálja.
Kapcsolódó wiki:
- https://wiki.archlinux.org/title/Trusted_Platform_Module
- https://wiki.archlinux.org/title/Systemd-cryptenroll
1. Fel kell telepíteni a tpm2-tss csomagot
pacman -S tpm2-tss
2. TPM eszközök listázása
systemd-cryptenroll --tpm2-device=list
3. Kulcs hozzáadása a TPM-hez
systemd-cryptenroll --tpm2-device=auto /dev/nvme0n1p2
A gépemben a /dev/nvme0n1p2 a tikosított partíció. A parancs be fogja kérni a jelszót, amit a gép feloldáskor is meg kell adni.
4. /etc/crypttab.initramfs módosítása (/létrehozása)
A /etc/crypttab.initramfs fájlba a következőt kell beleírni:
root UUID=<UUID> none tpm2-device=auto
Ahol az <UUID> értéke a következő lesz:
lsblk -fs
A gépemen a parancs kimenete így néz ki:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
zram0 swap 1 zram0 <UUID1> [SWAP]
root btrfs <UUID2> 935,4G 2% /home
│ /var/cache/pacman/pkg
│ /var/log
│ /.snapshots
│ /
└─nvme0n1p2 crypto_LUKS 2 <UUID3>
└─nvme0n1
nvme0n1p1 vfat FAT32 <UUID4> 521,4M 49% /boot
└─nvme0n1
Az <UUID1-4> egy konrkét UUID. A titkosított partíció UUID-ét kell megadni a crypttab.initramfs fájlba.
(Nálam pl az nvme0n1p2 (FSTYPE=crypto_LUKS) melletti UUID-t kell)
5. /etc/mkinitcpio.conf módosítása
Módostani kell a /etc/mkinitcpio.conf fájlban a HOOKS felsorolást, bele kell tenni a systemd, és az sd-encrypt hook-ot, valamint törölni kell az encrypt hook-ot.
Nekem ez volt az eredeti sor:
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block encrypt filesystems fsck)
Erre módosítottam:
HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck)
6. initramfs, és a unified kernel image újraépítése
mkinitcpio -P
7. Reboot, teszt
... és ha semmit nem hagytam ki, akkor jelszó nélkül be kell bootolnia a gépnek. :)
LTS kernel telepítése
Jól jöhet még, egy update után, ha valami probléma van. (Az archinstall-lal is fel lehetett volna tenni.)
1. Telepítés
pacman -S linux-headers-lts linux-lts
2. /etc/mkinitcpio.d/linux-lts.preset módosítása
A /etc/mkinitcpio.d könyvtárban létrejött egy linux-lts.preset fájl, de sajnos még nem jó a tartalma. Ezt módosítani kell (a linux.preset-ből lehet puskázni):
#ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux-lts"
PRESETS=('default' 'fallback')
#default_config="/etc/mkinitcpio.conf"
#default_image="/boot/initramfs-linux-lts.img"
default_uki="/boot/EFI/Linux/arch-linux-lts.efi"
default_options="--splash /usr/share/systemd/bootctl/splash-arch.bmp"
#fallback_config="/etc/mkinitcpio.conf"
#fallback_image="/boot/initramfs-linux-lts-fallback.img"
fallback_uki="/boot/EFI/Linux/arch-linux-lts-fallback.efi"
fallback_options="-S autodetect"
3. initramfs, és a unified kernel image újraépítése
mkinitcpio -P
4. reboot, és ellenőrzés
A systemd-boot meg fogja találni az LTS kernelt, ha minden rendben ment. (és az nvidia driver is működik)
Zárszó
Örülök hogy megoszthattam ezeket. Megérte belevágni a kísérletezésbe, érdekes volt új megoldásokat látni: pl az mkinitcpio-t a dracut helyett, a systemd-boot-ot a grub helyett, vagy a unified kernel image-eket. Köszi, hogy elolvastad. :)
- dlaszlo blogja
- A hozzászóláshoz be kell jelentkezni
- 684 megtekintés
Hozzászólások
Kösz!
... és, subscribe.
- A hozzászóláshoz be kell jelentkezni
subs
... The vision and the mission lost,
For those with corporate souls ...
Slackware Linux current | 5.10.38-janos
- A hozzászóláshoz be kell jelentkezni
subs, openSUSE Tumbleweed-en lehet hogy megpróbálnám majd. Még nem tudom.
echo crash > /dev/kmem
- A hozzászóláshoz be kell jelentkezni