Differenze tra le versioni di "Appunti Arch Linux"
Riga 17: | Riga 17: | ||
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 | 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 | + | * msdos (Master Boot Record o più semplicemente MBR) |
− | * GUID Partition Table | + | * GPT (GUID Partition Table) |
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. | 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. | ||
− | + | I casi in cui è preferibile utilizzare la tabella ''msdos'' sono: | |
* dual-boot con Windows (32-bit o 64-bit) con la scheda madre in modalità Legacy BIOS | * dual-boot con Windows (32-bit o 64-bit) con la scheda madre in modalità Legacy BIOS | ||
Riga 36: | Riga 36: | ||
* la grandezza massima di un disco è di 2 ZiB, mentre su MBR 2 TiB | * la grandezza massima di un disco è di 2 ZiB, mentre su MBR 2 TiB | ||
+ | * permette di fare a meno della tradizionale partizione di /boot con i filesystem BTRFS e ZFS in modo da semplificare la gestione degli snapshot. | ||
== Schede madri BIOS == | == Schede madri BIOS == | ||
− | + | Creare due partizioni. | |
− | |||
− | + | # '''[http://en.wikipedia.org/wiki/BIOS_Boot_partition BIOS GRUB Partition]''': concettualmente l'equivalente dell'MBR dei sistemi GPT. A differenza di quest'ultimo, la cui dimensione è di soli 512 byte, la BIOS GRUB Partition può però essere sufficientemente grande da contenere i driver per il supporto di un filesystem come ZFS o BTRFS. Il contenuto di questa partizione cambia esclusivamente nei rari casi di upgrade del GRUB perché non vi risiedono né kernel né ramdisk. | |
+ | # '''Linux filesystem''': successivamente da formattare col filesystem di nostra scelta: BTRFS, ZFS, ext4, XFS, JFS. | ||
− | + | === Partizionamento === | |
− | + | Col seguente comando verrà creata la partizione BIOS GRUB (EF02) a partire dal 1MB, della grandezza di 64MB; il resto del disco resterà disponibile per il filesystem di Linux. | |
− | |||
− | |||
Se avete più dischi da utilizzare in raid, questa operazione andrà ripetuta per ciascun disco. | Se avete più dischi da utilizzare in raid, questa operazione andrà ripetuta per ciascun disco. | ||
# sgdisk \ | # sgdisk \ | ||
− | --new=1:2048:133120 --typecode=1:EF02 --change-name=1:" | + | --new=1:2048:133120 --typecode=1:EF02 --change-name=1:"GRUB" \ |
− | --largest-new=2 --typecode=2: | + | --largest-new=2 --typecode=2:8300 --change-name=2:"ROOT" /dev/sda |
− | |||
− | |||
− | |||
− | Col seguente comando verrà creata la partizione EFI (EF00) a partire dal 1MB, della grandezza di 512MB; il resto del disco resterà disponibile | + | == Schede madri UEFI == |
+ | Creare due partizioni. | ||
+ | |||
+ | # '''EFI''': è una partizione in formato FAT32 necessaria per l'avvio dei sistemi operativi nei PC con schede madri UEFI. | ||
+ | # '''Linux filesystem''': successivamente da formattare col filesystem di nostra scelta: BTRFS, ZFS, ext4, XFS, JFS. | ||
+ | |||
+ | === Partizionamento === | ||
+ | |||
+ | Col seguente comando verrà creata la partizione EFI (EF00) a partire dal 1MB, della grandezza di 512MB; il resto del disco resterà disponibile il filesystem di Linux. | ||
# sgdisk \ | # sgdisk \ | ||
--new=1:2048:1064960 --typecode=1:EF00 --change-name=1:"efi" \ | --new=1:2048:1064960 --typecode=1:EF00 --change-name=1:"efi" \ | ||
− | --largest-new=2 --typecode=2: | + | --largest-new=2 --typecode=2:8300 --change-name=2:"ROOT" /dev/sda |
La partizione '''EFI''' dovrà poi essere formattata in FAT32 | La partizione '''EFI''' dovrà poi essere formattata in FAT32 | ||
# mkfs.vfat -T32 /dev/sda1 | # mkfs.vfat -T32 /dev/sda1 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Installazione Grub === | === Installazione Grub === |
Versione delle 23:50, 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 ufficiale archlinux-x86_64.iso
- ISO con supporto per lo ZFS archlinux-archzfs-linux.iso
- 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
- msdos (Master Boot Record o più semplicemente MBR)
- GPT (GUID Partition Table)
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.
I casi in cui è preferibile utilizzare la tabella msdos sono:
- 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 comunque 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
- permette di fare a meno della tradizionale partizione di /boot con i filesystem BTRFS e ZFS in modo da semplificare la gestione degli snapshot.
Schede madri BIOS
Creare due partizioni.
- BIOS GRUB Partition: concettualmente l'equivalente dell'MBR dei sistemi GPT. A differenza di quest'ultimo, la cui dimensione è di soli 512 byte, la BIOS GRUB Partition può però essere sufficientemente grande da contenere i driver per il supporto di un filesystem come ZFS o BTRFS. Il contenuto di questa partizione cambia esclusivamente nei rari casi di upgrade del GRUB perché non vi risiedono né kernel né ramdisk.
- Linux filesystem: successivamente da formattare col filesystem di nostra scelta: BTRFS, ZFS, ext4, XFS, JFS.
Partizionamento
Col seguente comando verrà creata la partizione BIOS GRUB (EF02) a partire dal 1MB, della grandezza di 64MB; il resto del disco resterà disponibile per il filesystem di Linux.
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:8300 --change-name=2:"ROOT" /dev/sda
Schede madri UEFI
Creare due partizioni.
- EFI: è una partizione in formato FAT32 necessaria per l'avvio dei sistemi operativi nei PC con schede madri UEFI.
- Linux filesystem: successivamente da formattare col filesystem di nostra scelta: BTRFS, ZFS, ext4, XFS, JFS.
Partizionamento
Col seguente comando verrà creata la partizione EFI (EF00) a partire dal 1MB, della grandezza di 512MB; il resto del disco resterà disponibile il filesystem di Linux.
# sgdisk \ --new=1:2048:1064960 --typecode=1:EF00 --change-name=1:"efi" \ --largest-new=2 --typecode=2:8300 --change-name=2:"ROOT" /dev/sda
La partizione EFI dovrà poi essere formattata in FAT32
# mkfs.vfat -T32 /dev/sda1
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