Differences between revisions 4 and 5
Revision 4 as of 2010-11-28 15:09:10
Size: 13582
Comment: sync with English version - major rewrite of the english page
Revision 5 as of 2010-11-28 15:34:36
Size: 14227
Comment: sync with English version
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
La denominazione persistente dei device a blocchi è stata resa possibile dall'introduzione di [[udev]] con alcuni vantaggi rispetto all'uso dei nomi tradizionali basati sul bus, come /dev/hda1 o /dev/sda2.

Nonostante le distribuzioni Linux e udev siano in evoluzione e il rilevamento dell'hardware sia sempre più affidabile, ci sono anche una serie di nuovi problemi e modifiche:

 1. Avendo più di un controller dischi SATA/SCSI o IDE che vengono aggiunti in ordine casuale, questo può portare a nomi di dispositivo come hdX e hdY che cambiano in modo casuale ad ogni avvio; lo stesso vale per sdX e sdY. La denominazione persistente permette di non preoccuparsene più.
 1. C
on l'introduzione della nuova gestione dei PATA da parte di libata (standard nei kernel Squeeze), tutti i device IDE hdX diventeranno sdX. Anche qui, con la denominazione persistente non si noterà nemmeno.
 1
. Le macchine con controller sia SATA che IDE sono oggigiorno comuni, con le modifiche di libata menzionate prima il primo problema diverrà sempre più frequente perché le unità SATA e IDE saranno entrambe identificate come sdX.
 1. Le grosse macchine con molte CPU veloci e molti adattatori Bus Fibre Channel, switch FC e Data Storage con carico e latenza variabili, controller SCSI, schede di rete ad alte prestazioni, possono avere problemi di asincronia quando gestiscono udev e multipath, con un ordine di rilevamento e assegnazione dei nomi dei device in fase di avvio quasi imprevedibili.
La denominazione persistente dei device a blocchi è stata resa possibile dall'introduzione di [[udev]] con alcuni vantaggi rispetto all'uso dei nomi tradizionali basati sul bus, come `/dev/hda1` o `/dev/sda2`.

Nonostante le distribuzioni Linux e `udev` siano in evoluzione e il rilevamento dell'hardware sia sempre più affidabile, ci sono anche una serie di nuovi problemi e modifiche:

 1. Se si ha di un controller dischi (IDE o specialmente SATA/SCSI), o anche se si ha semplicemente un numero variabile di dispositivi di memorizzazione USB/firewire inseriti di quando in quando, l'ordine in cui vengono rilevati può non essere predeterminato. Il risultato è che nomi di device come `/dev/sda1` e `/dev/sdb1` possono cambiare in modo casuale ad ogni avvio. La denominazione persistente permette di non preoccuparsi più di tutto ciò.
 1. Per le macchine con controller
IDE (incluse per esempio le macchine con tutti i dischi fissi SATA e una sola unità IDE cdrom), il passaggio ad un kernel Squeeze standard può causare problemi: con l'introduzione della nuova gestione dei PATA da parte di libata, tutti i device IDE `hdX` diventeranno `sdX`. Anche qui, con la denominazione persistente la cosa non si noterà nemmeno. (Lo script postinst del pacchetto `linux-base` include il codice per assistere nel cambiamento, ma è ragionevole risolvere la cosa in anticipo e verificare che funzioni.)
 1. Le grosse macchine con molte CPU veloci e molti adattatori Bus Fibre Channel, switch FC e Data Storage con carico e latenza variabili, controller SCSI, schede di rete ad alte prestazioni, possono avere problemi di asincronia quando gestiscono `udev` e I/O multipath, con un ordine di rilevamento e assegnazione dei nomi dei device in fase di avvio quasi imprevedibili.
Line 37: Line 36:
Come si può vedere, i filesystem FAT e NTFS hanno nomi più corti (sda6 e sdb1), ma sono comunque elencati con con un UUID. Il punto di avere stringhe a 32 cifre in base 36 è quello di rendere le collisioni astronomicamente improbabili; se accadesse che sda1 e sda2 avessero lo stesso UUID l'avvio del sistema fallirebbe. Come si può vedere, i filesystem FAT e NTFS hanno nomi più corti (`sda6` e `sdb1`), ma sono comunque elencati con con un UUID. Il punto di avere stringhe a 32 cifre in base 62 è quello di rendere le collisioni astronomicamente improbabili; se accadesse che `sda1` e `sda2` avessero lo stesso UUID l'avvio del sistema fallirebbe.
Line 56: Line 55:
{{{
* ext
2/ext3: e2label /dev/XXX <etichetta>
* fat/vfat: dosfslabel /dev/XXX <etichetta> (
bug #506786 in Lenny; o mlabel in mtools)
* jfs:
jfs_tune -L <etichetta> /dev/XXX
* ntfs:
ntfslabel /dev/XXX <etichetta> (o modificarla da Windows)
* reiserfs:
reiserfstune -l <etichetta> /dev/XXX
*
swap: mkswap -L <etichetta> /dev/XXX (ma vedere in seguito la procedura di swapoff/swapon)
* xfs:
xfs_admin -L <etichetta> /dev/XXX
}}}

|| '''Type''' || '''Command''' || '''Notes''' ||
|| EXT3: || `e
2label /dev/XXX <etichetta>` || vale anche per EXT2/EXT4 ||
|| FAT/VFAT: || `dosfs
label /dev/XXX <etichetta>` || bug #506786 in Lenny; o `mlabel` in `mtools` ||
|| JFS: || `
jfs_tune -L <etichetta> /dev/XXX` || ||
|| NTFS: ||
ntfslabel /dev/XXX <etichetta> || o modificarla da Windows ||
|| ReiserFS: || `
reiserfstune -l <etichetta> /dev/XXX` || ||
||
swap: || `mkswap -L <etichetta> /dev/XXX` || ma vedere in seguito la procedura di `swapoff`/`swapon` ||
|| XFS: || `
xfs_admin -L <etichetta> /dev/XXX` || ||
Line 70: Line 66:
by-id crea un nome univoco in base al numero seriale dell'hardware; questi nomi sono destinati a rimanere immutati per una certa configurazione hardware. `by-id` crea un nome univoco in base al numero seriale dell'hardware; questi nomi sono destinati a rimanere immutati per una certa configurazione hardware.
Line 117: Line 113:
by-path crea un nome univoco in base al percorso fisico più corto (secondo sysfs), questi nomi contengono stringhe che indicano a quale sottosistema appartengono, perciò non sono adatti a risolvere i problemi discussi all'inizio di questo articolo e non verranno approfonditi.

== Gestione dei nomi persistenti ==
`by-path` crea un nome univoco in base al percorso fisico più corto (secondo sysfs), questi nomi contengono stringhe che indicano a quale sottosistema appartengono, perciò non sono adatti a risolvere i problemi discussi all'inizio di questo articolo e non verranno approfonditi.


== Prepararsi all'uso dei nomi persistenti ==
----
Line 125: Line 122:
ma esiste anche un nuovo comodo comando blkid (che è in /sbin, ma non richiede privilegi di root). Fornisce diversi tipi di output utile; il più semplice è: ma esiste anche un nuovo comodo comando `blkid` (che è in `/sbin`, ma non richiede privilegi di root). Fornisce diversi tipi di output utile; il più semplice è:
Line 133: Line 130:
Come si può notare, la partizione di swap non ha un UUID, l'installatore di Debian Lenny usa una versione di partman che non ne attribuisce uno alle partizioni di swap.

Tutta via si possono dare nomi persistenti alle partizioni di swap usando mkswap nel modo descritto di seguito.
Come si può notare, la partizione di swap non ha un UUID, l'installatore di Debian Lenny usa una versione di `partman` che non ne attribuisce uno alle partizioni di swap. Tutta via si possono dare nomi persistenti alle partizioni di swap usando `mkswap`.
Line 139: Line 134:
Come prima cosa, assicurarsi di avere identificato correttamente la partizione di swap (vedere /proc/swaps)!

(Come root) deattivare in modo sicuro l'attuale swap, reinizializzarlo (aggiungendo opzionalmente un'etichetta) e riattivarlo:
Come prima cosa, assicurarsi di avere identificato correttamente la partizione di swap (vedere `/proc/swaps`)! Poi, (come root) deattivare in modo sicuro l'attuale swap, reinizializzarlo (aggiungendo opzionalmente un'etichetta) e riattivarlo:
Line 149: Line 142:
(Come utente normale) verificare il risultato: Si può verificare il risultato come utente normale:
Line 168: Line 161:
Abilitare la denominazione persistente in /etc/fstab è semplice; basta sostituire il nome del device nella prima colonna (dove vi è qualcosa del tipo "/dev/sda7") con il nuovo nome persistente. Questo può essere fatto o sostituendo il percorso appropriato in /dev/disk, come: Abilitare la denominazione persistente in `/etc/fstab` è semplice; basta sostituire il nome del device nella prima colonna (dove vi è qualcosa del tipo `/dev/sda7`) con il nuovo nome persistente. Questo può essere fatto sostituendo il valore con il percorso appropriato in `/dev/disk`, come:
Line 178: Line 171:
Tuttavia, invece di fornire esplicitamente il percorso /dev/disk, il metodo solitamente raccomandato è quello di indicare come debba essere montato il filesystem scrivendo LABEL=<etichetta> o UUID=<uuid>; per esempio: Tuttavia, invece di fornire esplicitamente il percorso /dev/disk, il metodo solitamente raccomandato è quello di indicare come debba essere montato il filesystem scrivendo `LABEL=<etichetta>` o `UUID=<uuid>`; per esempio:
Line 188: Line 181:

(Le informazioni che seguono sono per lo più datate, e presumono l'uso di grub-legacy: la versione in Squeeze di grub; grub2, cioè, usa gli UUID in modo predefinito.)
(Le informazioni che seguono sembrano parlare di ArchLinux, non Debian, e presumono l'uso di `grub-legacy` che non è supportato all'origine. In Squeeze la versione predefinita di `grub` è `grub2`, che usa gli UUID in modo predefinito. C'è inoltre del codice nello script postinst di `linux-base` che automatizza gli aggiornamenti per altri boot manager.)

Translation(s): English - Italiano - Русский

(!) ?Discussion

Panoramica: UUID, etichette e fstab


La denominazione persistente dei device a blocchi è stata resa possibile dall'introduzione di udev con alcuni vantaggi rispetto all'uso dei nomi tradizionali basati sul bus, come /dev/hda1 o /dev/sda2.

Nonostante le distribuzioni Linux e udev siano in evoluzione e il rilevamento dell'hardware sia sempre più affidabile, ci sono anche una serie di nuovi problemi e modifiche:

  1. Se si ha di un controller dischi (IDE o specialmente SATA/SCSI), o anche se si ha semplicemente un numero variabile di dispositivi di memorizzazione USB/firewire inseriti di quando in quando, l'ordine in cui vengono rilevati può non essere predeterminato. Il risultato è che nomi di device come /dev/sda1 e /dev/sdb1 possono cambiare in modo casuale ad ogni avvio. La denominazione persistente permette di non preoccuparsi più di tutto ciò.

  2. Per le macchine con controller IDE (incluse per esempio le macchine con tutti i dischi fissi SATA e una sola unità IDE cdrom), il passaggio ad un kernel Squeeze standard può causare problemi: con l'introduzione della nuova gestione dei PATA da parte di libata, tutti i device IDE hdX diventeranno sdX. Anche qui, con la denominazione persistente la cosa non si noterà nemmeno. (Lo script postinst del pacchetto linux-base include il codice per assistere nel cambiamento, ma è ragionevole risolvere la cosa in anticipo e verificare che funzioni.)

  3. Le grosse macchine con molte CPU veloci e molti adattatori Bus Fibre Channel, switch FC e Data Storage con carico e latenza variabili, controller SCSI, schede di rete ad alte prestazioni, possono avere problemi di asincronia quando gestiscono udev e I/O multipath, con un ordine di rilevamento e assegnazione dei nomi dei device in fase di avvio quasi imprevedibili.

Ci sono altre ragioni ma queste sono al momento, e nel prossimo futuro, le più critiche; ecco perché Debian incoraggia a modificare la configurazione usando il sistema della denominazione persistente.

I quattro sistemi differenti per la denominazione persistente


Con UUID

UUID sta per Universally Unique Identifier ed è un meccanismo per fornire ad ogni filesystem un identificativo univoco. Tutti i filesystem Linux supportano UUID; FAT e NTFS no, ma vengono comunque elencati in /dev/disk/by-uuid con un identificatore univoco:

$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Oct 16 10:27 2d781b26-0285-421a-b9d0-d4a0d3b55680 -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 16 10:27 31f8eb0d-612b-4805-835e-0e6d8b8c5591 -> ../../sda7
lrwxrwxrwx 1 root root 10 Oct 16 10:27 3FC2-3DDB -> ../../sda6
lrwxrwxrwx 1 root root 10 Oct 16 10:27 5090093f-e023-4a93-b2b6-8a9568dd23dc -> ../../sda2
lrwxrwxrwx 1 root root 10 Oct 16 10:27 912c7844-5430-4eea-b55c-e23f8959a8ee -> ../../sda5
lrwxrwxrwx 1 root root 10 Oct 16 10:27 B0DC1977DC193954 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Oct 16 10:27 bae98338-ec29-4beb-aacf-107e44599b2e -> ../../sdb2

Come si può vedere, i filesystem FAT e NTFS hanno nomi più corti (sda6 e sdb1), ma sono comunque elencati con con un UUID. Il punto di avere stringhe a 32 cifre in base 62 è quello di rendere le collisioni astronomicamente improbabili; se accadesse che sda1 e sda2 avessero lo stesso UUID l'avvio del sistema fallirebbe.

Con etichetta

Quasi ogni tipo di filesystem può avere anche un'etichetta; tutti quelli che ne hanno una sono elencati nella directory /dev/disk/by-label:

$ ls -l /dev/disk/by-label
lrwxrwxrwx 1 root root 10 Oct 16 10:27 data -> ../../sdb2
lrwxrwxrwx 1 root root 10 Oct 16 10:27 data2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Oct 16 10:27 fat -> ../../sda6
lrwxrwxrwx 1 root root 10 Oct 16 10:27 home -> ../../sda7
lrwxrwxrwx 1 root root 10 Oct 16 10:27 root -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 16 10:27 swap -> ../../sda5
lrwxrwxrwx 1 root root 10 Oct 16 10:27 windows -> ../../sdb1

Anche se possono essere usate parole riconoscibili come etichette, è necessario prestare la massima attenzione per evitare conflitti di nomi; considerare la possbilità di avere unità USB/firewire inserite in modo casuale al riavvio.

Si possono modificare le etichette dei filesystem con questi comandi:

Type

Command

Notes

EXT3:

e2label /dev/XXX <etichetta>

vale anche per EXT2/EXT4

FAT/VFAT:

dosfslabel /dev/XXX <etichetta>

bug #506786 in Lenny; o mlabel in mtools

JFS:

jfs_tune -L <etichetta> /dev/XXX

NTFS:

ntfslabel /dev/XXX <etichetta>

o modificarla da Windows

ReiserFS:

reiserfstune -l <etichetta> /dev/XXX

swap:

mkswap -L <etichetta> /dev/XXX

ma vedere in seguito la procedura di swapoff/swapon

XFS:

xfs_admin -L <etichetta> /dev/XXX

Con ID hardware

by-id crea un nome univoco in base al numero seriale dell'hardware; questi nomi sono destinati a rimanere immutati per una certa configurazione hardware.

# ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root 10 2010-10-20 13:52 dm-name-grupo1-lvstripe1 -> ../../dm-8
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-name-mpath0 -> ../../dm-0
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-name-mpath1 -> ../../dm-1
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-name-mpath2 -> ../../dm-2
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-name-mpath3 -> ../../dm-3
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-name-mpath4 -> ../../dm-4
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-name-mpath5 -> ../../dm-5
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-name-mpath6 -> ../../dm-6
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-name-mpath7 -> ../../dm-7
lrwxrwxrwx 1 root root 10 2010-10-20 13:52 dm-uuid-LVM-OaDwNcuwdzuuZYAcrbeKNdYsE237BKX2YIEdUN5CsSgeU7WNn5dhtiQPBP9uHU25 -> ../../dm-8
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-uuid-mpath-36005076308ffc36c000000000000000c -> ../../dm-0
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-uuid-mpath-36005076308ffc36c000000000000000d -> ../../dm-1
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-uuid-mpath-36005076308ffc36c000000000000000e -> ../../dm-2
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-uuid-mpath-36005076308ffc36c000000000000000f -> ../../dm-3
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-uuid-mpath-36005076308ffc36c0000000000000112 -> ../../dm-4
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-uuid-mpath-36005076308ffc36c0000000000000113 -> ../../dm-5
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-uuid-mpath-36005076308ffc36c0000000000000114 -> ../../dm-6
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 dm-uuid-mpath-36005076308ffc36c0000000000000115 -> ../../dm-7
lrwxrwxrwx 1 root root  9 2010-10-20 13:51 scsi-360026b9038e49f001270c8b707980d5c -> ../../sda
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-360026b9038e49f001270c8b707980d5c-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-360026b9038e49f001270c8b707980d5c-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-360026b9038e49f001270c8b707980d5c-part3 -> ../../sda3
lrwxrwxrwx 1 root root  9 2010-10-20 13:51 scsi-36005076308ffc36c000000000000000c -> ../../sdr
lrwxrwxrwx 1 root root  9 2010-10-20 13:51 scsi-36005076308ffc36c000000000000000d -> ../../sdc
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-36005076308ffc36c000000000000000e -> ../../sdab
lrwxrwxrwx 1 root root  9 2010-10-20 13:51 scsi-36005076308ffc36c000000000000000f -> ../../sdu
lrwxrwxrwx 1 root root  9 2010-10-20 13:51 scsi-36005076308ffc36c0000000000000112 -> ../../sdn
lrwxrwxrwx 1 root root  9 2010-10-20 13:51 scsi-36005076308ffc36c0000000000000113 -> ../../sdo
lrwxrwxrwx 1 root root  9 2010-10-20 13:51 scsi-36005076308ffc36c0000000000000114 -> ../../sdp
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-36005076308ffc36c0000000000000115 -> ../../sdag
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-mpath0 -> ../../dm-0
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-mpath1 -> ../../dm-1
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-mpath2 -> ../../dm-2
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-mpath3 -> ../../dm-3
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-mpath4 -> ../../dm-4
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-mpath5 -> ../../dm-5
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-mpath6 -> ../../dm-6
lrwxrwxrwx 1 root root 10 2010-10-20 13:51 scsi-mpath7 -> ../../dm-7

Con percorsi sysfs

by-path crea un nome univoco in base al percorso fisico più corto (secondo sysfs), questi nomi contengono stringhe che indicano a quale sottosistema appartengono, perciò non sono adatti a risolvere i problemi discussi all'inizio di questo articolo e non verranno approfonditi.

Prepararsi all'uso dei nomi persistenti


Si può ottenere una panoramica base di quali device siano associati a quali nomi persistenti semplicemente con il comando

$ ls -lR /dev/disk

ma esiste anche un nuovo comodo comando blkid (che è in /sbin, ma non richiede privilegi di root). Fornisce diversi tipi di output utile; il più semplice è:

$ /sbin/blkid
/dev/sda1: LABEL=Root UUID="87f2b245-6ab3-4021-bf07-d069b4d387a1" TYPE="ext3"
/dev/sda2: TYPE="swap"
/dev/sda3: LABEL=Home UUID="a6f7a63f-71ac-4361-b49a-39d62b06f18a" TYPE="ext3"

Come si può notare, la partizione di swap non ha un UUID, l'installatore di Debian Lenny usa una versione di partman che non ne attribuisce uno alle partizioni di swap. Tutta via si possono dare nomi persistenti alle partizioni di swap usando mkswap.

Assegnare nomi persistenti a partizioni di swap

Come prima cosa, assicurarsi di avere identificato correttamente la partizione di swap (vedere /proc/swaps)! Poi, (come root) deattivare in modo sicuro l'attuale swap, reinizializzarlo (aggiungendo opzionalmente un'etichetta) e riattivarlo:

# swapoff /dev/sda2
# mkswap -L Swap /dev/sda2
Setting up swapspace version 1, size = 1998737 kB
LABEL=Swap, UUID=7cdfeb21-613b-4588-abb5-9d4049854e9a
# swapon /dev/sda2

Si può verificare il risultato come utente normale:

$ /sbin/blkid
/dev/sda1: LABEL=Root UUID="87f2b245-6ab3-4021-bf07-d069b4d387a1" TYPE="ext3"
/dev/sda2: LABEL=Swap UUID="7cdfeb21-613b-4588-abb5-9d4049854e9a" TYPE="swap"
/dev/sda3: LABEL=Home UUID="a6f7a63f-71ac-4361-b49a-39d62b06f18a" TYPE="ext3"
$ free
             total used free shared buffers cached
Mem: 33017956 298700 32719256 0 17060 148668
-/+ buffers/cache: 132972 32884984
Swap: 1951888 0 1951888

Usare i nomi persistenti


Dopo aver scelto quale metodo di denominazione si desidera utilizzare, lo si abiliterà per il sistema:

In fstab

Abilitare la denominazione persistente in /etc/fstab è semplice; basta sostituire il nome del device nella prima colonna (dove vi è qualcosa del tipo /dev/sda7) con il nuovo nome persistente. Questo può essere fatto sostituendo il valore con il percorso appropriato in /dev/disk, come:

/dev/disk/by-label/home

o

/dev/disk/by-uuid/31f8eb0d-612b-4805-835e-0e6d8b8c5591

Tuttavia, invece di fornire esplicitamente il percorso /dev/disk, il metodo solitamente raccomandato è quello di indicare come debba essere montato il filesystem scrivendo LABEL=<etichetta> o UUID=<uuid>; per esempio:

LABEL=home

o

UUID=31f8eb0d-612b-4805-835e-0e6d8b8c5591

Nel Boot Manager

(Le informazioni che seguono sembrano parlare di ?ArchLinux, non Debian, e presumono l'uso di grub-legacy che non è supportato all'origine. In Squeeze la versione predefinita di grub è grub2, che usa gli UUID in modo predefinito. C'è inoltre del codice nello script postinst di linux-base che automatizza gli aggiornamenti per altri boot manager.)

Per usare i nomi persistenti nel boot manager, devono essere soddisfatti tutti i seguenti requisiti:

  1. si deve utilizzare un'immagine mkinitcpio initramfs
  2. si deve avere udev abilitato in /etc/mkinitcpio.conf
  3. quando l'immagine initramfs è stata generata doveva essere installata la versione 101-3, o superiore, di klibc-udev (in qualsiasi versione precedente la denominazione persistente è corrotta); se si sta aggiornando klibc-udev da una versione precedente, rigenerare l'immagine initramfs prima di riavviare.

Nell'esempio precedente /dev/sda1 è la partizione di root, nel file menu.lst di grub la linea del kernel appare così:

kernel /boot/vmlinuz26 root=/dev/sda1 vga=0x318 ro

Modificarla in questo modo, a seconda del sistema di denominazione che si preferisce:

kernel /boot/vmlinuz26 root=/dev/disk/by-label/root vga=0x318 ro

oppure

kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/2d781b26-0285-421a-b9d0-d4a0d3b55680 vga=0x318 ro

C'è un modo alternativo per usare l'etichetta inserita nel filesystem, ad esempio se (come sopra) il filesystem in /dev/sda1 è etichettato come "root", si può fornire questa riga a grub:

kernel /boot/vmlinuz26 root=LABEL=root vga=0x318 ro

Farne una copia di backup per sicurezza:

~# cp /boot/grub/menu.lst /boot/grub/menu.lst.old1

Usare il percorso /dev/disk/by-id e modificare /boot/grub/menu.lst

## AFM 22oct2010
## kopt=root=/dev/sda3 ro
# kopt=root=/dev/disk/by-id/scsi-360026b9038e754001270c9de079bca7c-part3 ro rootdelay=15 nodmraid

Aggiornare menu.lst usando lo stesso script usato dai pacchetti kernel:

:~# update-grub
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /vmlinuz-2.6.26-1-amd64
Updating /boot/grub/menu.lst ... done