Differenze tra le versioni di "Appunti Arch Linux"

Da GolemWiki.
Jump to navigation Jump to search
Riga 15: Riga 15:
  
 
= Preparazione del disco =
 
= Preparazione del disco =
Su Linux si può scegliere (salvo casi estremamente particolari) tra due tipi di tabella delle partizioni
+
Su Linux si può scegliere (salvo casi estremamente [https://wiki.archlinux.org/title/partitioning#Partitionless_disk particolari]) tra due [https://unix.stackexchange.com/questions/289389/what-are-the-differences-between-the-various-partition-tables tipi] di tabella delle partizioni
  
 
* Master Boot Record (MBR)
 
* Master Boot Record (MBR)
Riga 104: Riga 104:
 
         initrd  /ROOT@/boot/initramfs-linux.img
 
         initrd  /ROOT@/boot/initramfs-linux.img
 
  }
 
  }
 
 
  
 
= Stuff =
 
= Stuff =

Versione delle 23:08, 27 feb 2023

Arch Linux è una distribuzione Linux leggera ed improntata alla riga di comando. Non è dotata di un installer grafico e perciò non è considerata adatta ai principianti, l'installazione di default consiste in un sistema base sul quale l'utente potrà manualmente aggiungere e configurare tutto quello di cui necessita.

Fornisce l'ultima versione stabile della maggior parte del software opensource disponibile per Linux e lo fa seguendo un modello di distribuzione detto "rolling-release", il suo aggiornamento è quindi continuo e non richiede periodici passaggi da una versione stabile alla successiva.

Il prezzo da pagare è che talvolta gli aggiornamenti (soprattutto: kernel, driver video e librerie) possono determinare problemi talmente gravi al sistema da renderlo inutilizzabile. Per fortuna accorgimenti come lo snapshot del filesystem che, se utilizzati correttamente dall'utente, sono capaci di ovviare a tali problematiche.

Supporti d'installazione

  • ISO con installer grafico Calamares ALCI

Preparazione del disco

Su Linux si può scegliere (salvo casi estremamente particolari) tra due tipi di tabella delle partizioni

  • Master Boot Record (MBR)
  • GUID Partition Table (GPT)

In linea generale è consigliabile di scegliere il GPT perché è un formato più moderno ed ha meno limitazioni rispetto all'MBR risalente ai tempi dell'MS-DOS.

Gli unici casi in cui è essere preferibile utilizzare MBR nei seguenti casi:

  • dual-boot con Windows (32-bit o 64-bit) con la scheda madre in modalità Legacy BIOS
  • in schede madri molto datate il BIOS potrebbe non supportare lo schema GPT (esiste un trucco per aggirare l'ostacolo)

Vantaggi di GPT su MBR:

  • offre un sistema di denominazione delle partizioni indipendente dal filesystem (PARTLABEL, PARTUUID)
  • supera il concetto di partizione primaria ed estesa (su MBR il numero massimo di partizioni primarie, quelle su cui si può installare un sistema operativo è limitato a 4). Su GPT, nella configurazione standard, si possono definire fino a 128 partizioni.
  • la grandezza massima di un disco è di 2 ZiB, mentre su MBR 2 TiB


Schede madri BIOS

Cenni di teoria

Per fare a meno della tradizionale partizione di /boot ed utilizzare ZFS come unico filesystem si consiglia di partizionare il disco secondo il nuovo formato GPT.

Sarà comunque necessario creare due partizioni: una per il Grub ed una per gli zpool.

La prima, denominata Bios Grub Partition, è concettualmente l'equivalente del MBR nei sistemi GPT. A differenza del MBR, la Bios Grub Partition può però essere sufficientemente grande da contenere il codice per il supporto allo ZFS. Il vantaggio sta nel fatto che a differenza della tradizionale partizione /boot dove risiedono anche kernel e ramdisk, il contenuto di quest'ultima cambia esclusivamente nei rari casi di upgrade del Grub.

Partizionamento

Col seguente comando verrà creata la partizione di Grub (EF02) a partire dal 1MB, della grandezza di 64MB; il resto del disco resterà disponibile per lo i pool dello ZFS. Se avete più dischi da utilizzare in raid, questa operazione andrà ripetuta per ciascun disco.

# sgdisk \
--new=1:2048:133120 --typecode=1:EF02 --change-name=1:"grub" \
--largest-new=2 --typecode=2:BF01 --change-name=2:"zfs" /dev/sda

Schede madri UEFI

Partizionamento

NB: NON avendo un computer con scheda madre UEFI non ho potuto verificare questa procedura e non ne ho potuto testare il funzionamento

Col seguente comando verrà creata la partizione EFI (EF00) a partire dal 1MB, della grandezza di 512MB; il resto del disco resterà disponibile per lo i pool dello ZFS.

# sgdisk \
--new=1:2048:1064960 --typecode=1:EF00 --change-name=1:"efi" \
--largest-new=2 --typecode=2:BF01 --change-name=2:"zfs" /dev/sda

La partizione EFI dovrà poi essere formattata in FAT32

# mkfs.vfat -T32 /dev/sda1


Impostare il fuso orario

# ln -s /usr/share/zoneinfo/Europe/Rome /etc/localtime 

Impostare la mappatura della tastiera

# echo KEYMAP=it > /etc/vconsole.conf

Installazione Grub

Sistema con BIOS

# pacman -S grub
# grub-mkconfig -o /boot/grub/grub.cfg
# grub-install /dev/sda

Sistema UEFI

NB: NON avendo un computer con scheda madre UEFI non ho potuto verificare questa procedura e non ne ho potuto testare il funzionamento

# pacman -S grub
# mkdir /boot/EFI
# mount /dev/sda1 /boot/EFI
# grub-install --target=x86_64-efi --efi-directory=$esp --bootloader-id=grub --recheck --debug
# grub-mkconfig -o /boot/grub/grub.cfg

Modifiche a Grub

Per permettere il caricamento del sistema è necessario aggiungere zfs_force=1 zfs=bootfs alla riga di caricamento del kernel nel file /boot/grub/grub.cfg.

Esempio di configurazione

set timeout=2
set default=0
menuentry 'Arch Linux'{
       insmod gzio
       insmod part_gpt
       insmod zfs
       set root='hd0,gpt2'
       linux   /ROOT@/boot/vmlinuz-linux zfs_force=1 zfs=bootfs root=ZFS=rpool/ROOT rw  quiet
       initrd  /ROOT@/boot/initramfs-linux.img
}

Stuff

Installer - manual (Linux From Scratch) - script (Arch, NixOS, Gentoo) - text (Arch, Slackware, Debian) - Calamares (Debian, NixOS, Arch spinoff)

Network - manual (net-tools, iproute2, wpa_supplicant) - iwd/iwgtk - ConnMan - systemd-networkd - NetworkManager (nmcli/nmtui/applet)

Boot Loader - GRUB: UEFI, BIOS, multiboot, internal shell - systemd-boot: UEFI only, integrated in systemd - LILO: only BIOS, multiboot, discontinued (but still default on Slackware)

Filesystem - EXT4: simply, stable, integrated encryption - BTRFS: raid01, snapshots, subvolumes, included in kernel - ZFS: raidz, support for encryption, snapshots, subvolumes, NOT included in the standard kernel - XFS (SGI Irix) + LVM: RedHat way to manage snapshots/subvolumes/raid - misc: ReiserFS, JFS (IBM AIX) - historic: minix, ext2, ext3 - cryptofs

RAID - hardware - standard: dmraid (mdadm) - LVM (logical volume manager): snapshots, cache, all raid type supported - ZFS: can't remove a storage from a pool - BTRFS: stable only raid 0 and 1, can add/remove storage from array


CONFIG - Systemd - Desktop Enviroment applications - Distro tool (drakconf, Yast, etc...) - configuration.nix - rc.conf - webmin/RHEL WEB CONSOLE

Package manager - pkgtools (Slackware) - dnf (rpm) - apt-get/dpkg (deb) - pacman - nix - zypper (Suse) - pkgsrc/pkgin (Netbsd) - snap - Flatpak - appimage - docker

Systemd

   systemd-udevd - successor of devfsd, hwdetect and hotplug, manages device in /dev by adding, symlinking and renaming them
   systemd-boot — simple UEFI boot manager;
   systemd-cryptenroll — Enroll PKCS#11, FIDO2, TPM2 token/devices to LUKS2 encrypted volumes;
   systemd-firstboot — basic system setting initialization before first boot;
   systemd-homed — portable human-user accounts;
   systemd-logind — session management;
   systemd-networkd — network configuration management;
   systemd-nspawn — light-weight namespace container; https://wiki.archlinux.org/title/systemd-nspawn
   systemd-resolved — network name resolution;
       systemd-timesyncd — system time synchronization across the network;
   systemd/Journal — system logging
   systemd/Timers — alternative to cron

Installazione Arch - Partizionamento: -- gpt vs msdos -- btrfs + snapshots -- zfs - Grub2 - configurazione della rete da riga di comando (LAN) - wifi da riga di comando - systemd - gestori alternativi di pacchetti: nix, snap, flatpak, appimage - container: lxc, systemd-nspawn, toolbox/podman https://github.com/toolbx-images/images


Bibliografia

https://wiki.archlinux.org/title/Installation_guide

https://wiki.golem.linux.it/Howto

https://wwwcdf.pd.infn.it/AppuntiLinux/a21.htm

https://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-11.2-NOCHUNKS.html