A rigor di termini, UUID non si rivolge affatto.
L'indirizzamento è molto, molto semplice: leggi il settore X del settore Y - oppure. Leggi l'indirizzo di memoria Z - oppure. L'indirizzamento è semplice, veloce, non lascia molto spazio all'interpretazione ed è ovunque.
UUID non si sta indirizzando. Invece cerca, trova, a volte aspetta che appaiano i dispositivi e capisce anche i filesystem (★). E a seconda del numero di dispositivi disponibili, potrebbe richiedere molto tempo. E una volta trovato, torniamo a indirizzarlo regolarmente.
In GRUB, questo si chiama search
(★★) ed è disponibile solo quando GRUB ha già sviluppato le ali (la ricerca è un modulo, come ogni file system che supporta, quindi disponibile solo dopo aver caricato core). In Linux, si chiama (ad esempio) findfs
, findfs cercherà i dispositivi a blocchi nel sistema alla ricerca di un filesystem o di una partizione .
Passa attraverso tutti i dispositivi a blocchi, li riattiva dallo standby, legge i dati e il risultato potrebbe anche essere casuale se l'UUID non è univoco come dovrebbe essere (dopo un dd
incidente o simili) o non si ottiene alcun risultato se l'UUID è cambiato - Anche gli UUID sono soggetti a errori di configurazione.
In generale, gli UUID sono fantastici, e ovviamente dovresti usarli ovunque se disponibili, specialmente quando l'indirizzamento tradizionale è destinato a fallire perché l'ordine delle unità è casuale in Linux; ma capisci che la complessità è al di sopra e al di là di ciò che il semplice indirizzamento dovrebbe fare. E soprattutto nelle primissime fasi dei bootloader, potrebbe non essere ancora un'opzione. L'indirizzamento viene prima, le ali crescenti arrivano dopo.
Per il bootloader, potrebbe semplicemente non essere necessario compiere lo sforzo (non tutti i bootloader supportano una vasta gamma di filesystem come GRUB). Se hd0
è garantito che sia "il disco da cui abbiamo avviato" a causa di circostanze (fornite dal BIOS), e quindi se si possono escludere problemi di ordine casuale dell'unità, potrebbe non essere necessario passare attraverso un elenco potenzialmente enorme di altre partizioni in cerca UUID.
Se sei abbastanza sicuro nella tua configurazione da dire che hd0,gpt2
è quello che vuoi, e deve essere, e non può essere altrimenti, allora non c'è niente di sbagliato nell'usarlo in quel modo. A volte, l'indirizzamento semplice e chiaro funziona bene.
(★) In precedenza l'ho spiegato per ETICHETTE qui ...
Non esiste uno standard generico per le etichette, è tutto lavorato a mano, vedere ad esempio questa implementazione di formati di superblocchi in util-linux . Se inventi un nuovo file system domani, anche se ha un'etichetta, non verrà visualizzato fino a quando non verrà aggiunto il supporto.
... ed è più o meno lo stesso per gli UUID.
(★★) In realtà, GRUB search
ha --hint
un'opzione e ... ora non ho controllato il codice sorgente e non è nemmeno documentato nel loro manuale, ma un'opzione del genere avrebbe senso darti il meglio di entrambi i mondi: il suggerimento dovrebbe dire search
di controllare prima quella partizione , e se l'UUID corrisponde come previsto, ha identificato il dispositivo con il minimo sforzo e, se non corrisponde, tornerà comunque alla ricerca completa per far funzionare le cose in qualche modo .
Inoltre, gli UUID precedentemente trovati tendono ad essere memorizzati nella cache, quindi non deve passare attraverso tutti i dispositivi ancora e ancora e ancora e ancora - e anche questo funziona alla grande, a condizione che l'UUID che stai cercando effettivamente esiste da qualche parte per farlo nella cache in primo luogo.