Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmministrazioneSistema/Grub/Errori/ErroreSparseFileNotAllowed"
Differenze tra le versioni 6 e 7
Versione 6 del 05/06/2021 17.52.33
Dimensione: 1524
Commento:
Versione 7 del 07/06/2021 12.04.45
Dimensione: 2869
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 7: Linea 7:
Queste opzioni specificano che '''Grub''' deve ricordare la voce scelta dall'utente nel menù di avvio per poi riproporla al successivo avvio come valore di default. '''Grub''' scrive questo dato nel file `grubenv`, un file speciale della dimensione fissa di 1024 byte la cui posizione predefinita è nel percorso `/boot/grub/`. Tuttavia '''Grub''' non può modificare questo file se si trova in una partizione con file system '''Btrfs''' o '''ZFS''', pertanto visualizza il messaggio ''error: sparse file not allowed''. Queste opzioni specificano che '''Grub''' deve memorizzare la voce scelta dall'utente nel menù di avvio per poi riproporla al successivo avvio come valore di default. '''Grub''' scrive questo dato nel file `grubenv`, un file speciale della dimensione fissa di 1024 byte la cui posizione predefinita è nel percorso `/boot/grub/`. Tuttavia se il file `grubenv` si trova in una partizione con file system '''Btrfs''' o '''ZFS''', '''Grub''' non può modificarlo e visualizza il messaggio ''error: sparse file not allowed''.
Linea 10: Linea 10:
 *Deve trovarsi in un disco '''GPT''' o '''MBR''', non '''RAID''', '''LVM''' o altro.
 *Deve avere un file system come '''ext4''', '''FAT32''', '''NTFS''' o un altro file system che non implementi il checksum a livello di blocco (per-block checksum).
 * Deve risiedere in un disco '''GPT''' o '''MBR''', non '''RAID''', '''LVM''' o altro.
 * Deve avere un file system come '''ext4''', '''FAT32''', '''NTFS''' o un altro file system che non implementi il checksum a livello di blocco.
Linea 13: Linea 13:
Se nel sistema non è presente una partizione che soddisfi questi requisiti, sarà necessario crearne una. È sufficiente una partizione anche di minime dimensioni, considerando che il file `grubenv` ha una dimensione fissa di appena 1024 byte. Se nel sistema non è presente una partizione che soddisfi questi requisiti sarà necessario crearne una, anche molto piccola, considerando le limitate dimensioni del file `grubenv`.

Procedere come segue:

 0. Spostare il file `grubenv`.

  * Per spostarlo nella partizione EFI digitare il seguente comando nel terminale:{{{
sudo mv /boot/grub/grubenv /boot/efi/}}}

  * Per spostarlo in un'altra partizione, aprire il [[AmbienteGrafico/FileManager|file manager]], spostarsi nel percorso `/boot/grub/` e tagliare il file `grubenv`. Spostarsi quindi nel percorso in cui è montata l'altra partizione e incollare.

 0. Aprire con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] e con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/grub.d/00_header`.

 0. All'inizio del file, subito dopo le note di copyright e di licenza, inserire una riga di questo tipo:{{{
GRUBENV="(hd0,gpt1)/grubenv"}}}
  * `hd0` si riferisce al primo disco fisso. Se la partizione non si trova nel primo disco fisso
  * `gpt1` si riferisce alla prima partizione del disco, se questo è partizionato in GPT. Se invece è partizionato in MBR, usare la forma `msdos1`.
 Adeguare quindi la riga da inserire nel file in base al disco e alla partizione del proprio sistema.
 <<BR>>
 {{{#!wiki note
L'indice usato da `Grub` per identificare le partizioni (`gpt1`, `gpt2`, ecc... oppure `msdos1`, `msdos2`, ecc...) si riferisce all'ordine in cui queste si trova fisicamente nel disco e potrebbe non corrispondere all'indice usato dal sistema (`sda1`, `sda2`, ecc...).
}}}

Messaggio: «error: sparse file not allowed»

Questo errore può verificarsi su file system Btrfs o ZFS quando nel file /etc/default/grub sono state specificate le seguenti opzioni:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Queste opzioni specificano che Grub deve memorizzare la voce scelta dall'utente nel menù di avvio per poi riproporla al successivo avvio come valore di default. Grub scrive questo dato nel file grubenv, un file speciale della dimensione fissa di 1024 byte la cui posizione predefinita è nel percorso /boot/grub/. Tuttavia se il file grubenv si trova in una partizione con file system Btrfs o ZFS, Grub non può modificarlo e visualizza il messaggio error: sparse file not allowed.

Per risolvere questo errore è necessario spostare il file grubenv in una partizione che rispetti i seguenti requisiti:

  • Deve risiedere in un disco GPT o MBR, non RAID, LVM o altro.

  • Deve avere un file system come ext4, FAT32, NTFS o un altro file system che non implementi il checksum a livello di blocco.

A tal scopo nei sistemi UEFI può essere sfrutta la partizione EFI, che utilizza il file system FAT32. Se nel sistema non è presente una partizione che soddisfi questi requisiti sarà necessario crearne una, anche molto piccola, considerando le limitate dimensioni del file grubenv.

Procedere come segue:

  1. Spostare il file grubenv.

    • Per spostarlo nella partizione EFI digitare il seguente comando nel terminale:

      sudo mv /boot/grub/grubenv /boot/efi/
    • Per spostarlo in un'altra partizione, aprire il file manager, spostarsi nel percorso /boot/grub/ e tagliare il file grubenv. Spostarsi quindi nel percorso in cui è montata l'altra partizione e incollare.

  2. Aprire con i privilegi di amministrazione e con un editor di testo il file /etc/grub.d/00_header.

  3. All'inizio del file, subito dopo le note di copyright e di licenza, inserire una riga di questo tipo:

    GRUBENV="(hd0,gpt1)/grubenv"
    • hd0 si riferisce al primo disco fisso. Se la partizione non si trova nel primo disco fisso

    • gpt1 si riferisce alla prima partizione del disco, se questo è partizionato in GPT. Se invece è partizionato in MBR, usare la forma msdos1.

    Adeguare quindi la riga da inserire nel file in base al disco e alla partizione del proprio sistema.


    L'indice usato da Grub per identificare le partizioni (gpt1, gpt2, ecc... oppure msdos1, msdos2, ecc...) si riferisce all'ordine in cui queste si trova fisicamente nel disco e potrebbe non corrispondere all'indice usato dal sistema (sda1, sda2, ecc...).