Guida verificata con Ubuntu: 20.04 22.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Questa guida contiene le istruzioni per creare e abilitare uno swapfile qualora Ubuntu sia installato su filesystem Btrfs.
Queste indicazioni si rivelano utili per risolvere il bug #1818811 , a causa del quale in un'installazione di Ubuntu su filesystem Btrfs, pur venendo creato regolarmente uno swapfile, quest'ultimo non risulta attivo poiché non opportunamente configurato.
Prerequisiti
Il supporto per swapfile su filesystem Btrfs è disponibile con la versione del kernel 5.0 o superiore.
Si necessita pertanto di Ubuntu 18.04.3 (escluse le point release precedenti) oppure Ubuntu 19.10 o superiori.
Per conoscere quale versione del kernel è in uso consultare questa pagina.
Verificare che il file di swap non sia attivo digitando nel terminale il seguente comando:
free
Se l'output è simile al seguente
total used free shared buff/cache available Mem: 8068144 2366460 3443144 421680 2258540 5009428 Swap: 0 0 0
dove tutti i valori della seconda riga sono uguali a 0, ciò conferma che lo swapfile non è attivo.
In tal caso seguire le indicazioni dei paragrafi successivi.
Preparativi
Per individuare la lettera e il numero di partizione del filesystem radice, digitare nel terminale:
mount -t btrfs
L'output sarà simile al seguente:
/dev/sda2 on / type btrfs (rw,noatime,compress=zstd:1,ssd,autodefrag,subvolid=983,subvol=/@) /dev/sda2 on /home type btrfs (rw,noatime,compress=zstd:1,ssd,autodefrag,subvolid=257,subvol=/@home)
Montare la radice del filesystem:
sudo mount -t btrfs /dev/sda2 /mnt
Creare un subvolume per la swap digitando:
sudo btrfs subvolume create /mnt/@swap
Nel subvolume appena creato settare l'attributo NOCOW (importante per far funzionare lo swapfile su Btrfs):
sudo chattr +C /mnt/@swap
Creazione dello swapfile
Digitare nel terminale i seguenti comandi per creare lo swapfile (nell'esempio seguente saranno assegnati 2000 MB al file di swap; è possibile modificare il valore «2000M» , nel secondo comando, a seconda delle proprie esigenze):
sudo truncate -s 0 /mnt/@swap/swapfile
sudo fallocate -l 2000M /mnt/@swap/swapfile
sudo chmod 600 /mnt/@swap/swapfile
sudo mkswap /mnt/@swap/swapfile
Adesso possiamo smontare il filesystem:
sudo umount /mnt
Modifica del file fstab
Per attivare lo swapfile appena creato bisogna infine impostarlo come swap all'avvio del sistema.
Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab.
Aggiungere il mount del subvolume @swap:
UUID=yourUUID /swap btrfs noatime,subvol=@swap
Individuare la riga relativa allo swapfile creato automaticamente durante l'installazione e modificarla con il nuovo percorso come nel seguente esempio:
/swap/swapfile none swap defaults 0 0
Solitamente è sufficiente modificare la voce /swapfile in /swap/swapfile nella riga già esistente.
- Salvare e chiudere il file.
- Riavviare il sistema affinché le modifiche abbiano effetto.
Verifica
Digitare nel terminale il comando:
free
Se la swap è attiva si avrà un output simile al seguente, dove nella prima colonna della seconda riga è indicato un valore diverso da 0:
total used free shared buff/cache available Mem: 8068144 2366460 3443144 421680 2258540 5009428 Swap: 7520252 0 7520252
Eliminazione del vecchio swapfile (facoltativo)
Una volta accertati che lo swapfile appena creato funzioni regolarmente, è possibile rimuovere quello precedente. A tal fine:
Digitare il comando
ls /
e accertarsi che nell'output venga elencata la voce swapfile.
Infine eliminare il file digitando:
sudo rm /swapfile
Ulteriori risorse
Btrfs su Ubuntu (pagina internazionale)