Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati


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

  1. 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)
  2. Montare la radice del filesystem:

    La radice di un filesystem btrfs è rappresentata sempre da due coordinate:

    subvolid=5
    subvol=/

    Il generico comando:

    sudo mount /<device> /<mount point> 

    Monterà il subvolume default, che potrebbe non essere la radice.
    Utilizzare sempre una delle due coordinate come opzione per l'operazione di mount.

    sudo mount -t btrfs -o subvolid=5 /dev/sda2 /mnt
  3. Creare un subvolume per la swap digitando:

    sudo btrfs subvolume create /mnt/@swap
  4. Nel subvolume appena creato settare l'attributo NOCOW (importante per far funzionare lo swapfile su Btrfs):

    sudo chattr +C /mnt/@swap

Creazione dello swapfile

  1. Digitare nel terminale i seguenti comandi per creare lo swapfile (nell'esempio seguente saranno assegnati 2000 MB al file di swap):

    sudo btrfs filesystem mkswap --size 2g /mnt/@swap/swapfile

    sudo chmod 600 /mnt/@swap/swapfile
  2. 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.

  1. Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/fstab.

  2. Aggiungere il mount del subvolume @swap:

    UUID=yourUUID /swap btrfs noatime,subvol=@swap
  3. 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.

  4. Salvare e chiudere il file.
  5. Riavviare il sistema affinché le modifiche abbiano effetto.

Verifica

  1. Digitare nel terminale il comando:

    free
  2. 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:

  1. Digitare il comando

    ls /

    e accertarsi che nell'output venga elencata la voce swapfile.

  2. Infine eliminare il file digitando:

    sudo rm /swapfile

Ulteriori risorse


CategoryAmministrazione CategoryHardware