Differenze tra le versioni di "Appunti Arch Linux"

Da GolemWiki.
Jump to navigation Jump to search
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 (MBR)
+
* msdos (Master Boot Record o più semplicemente MBR)
  
* GUID Partition Table (GPT)
+
* 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.
  
Gli unici casi in cui è essere preferibile utilizzare MBR nei seguenti casi:
+
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 ==
=== Cenni di teoria ===
+
Creare due partizioni.
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 [https://wiki.archlinux.org/index.php/GUID_Partition_Table GPT].
 
  
Sarà comunque necessario creare due partizioni: una per il Grub ed una per gli [http://it.wikipedia.org/wiki/ZFS_(file_system)#I_pool_dello_storage zpool].  
+
# '''[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.
  
La prima, denominata [http://en.wikipedia.org/wiki/BIOS_Boot_partition 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.
+
=== Partizionamento ===
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.
+
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.
  
==== 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.
 
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:"grub" \
+
  --new=1:2048:133120 --typecode=1:EF02 --change-name=1:"GRUB" \
  --largest-new=2 --typecode=2:BF01 --change-name=2:"zfs" /dev/sda
+
  --largest-new=2 --typecode=2:8300 --change-name=2:"ROOT" /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.
+
== 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:BF01 --change-name=2:"zfs" /dev/sda
+
  --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
  
 
 
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 ===
 
=== 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 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.

  1. 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.
  2. 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.

  1. EFI: è una partizione in formato FAT32 necessaria per l'avvio dei sistemi operativi nei PC con schede madri UEFI.
  2. 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