Ho trovato la risposta sepolta in un altro thread:
Un UUID identifica un filesystem, mentre un PARTUUID identifica una partizione (cioè rimane intatto dopo la riformattazione). Senza initramfs/initrd il kernel supporta solo PARTUUID.
Per trovare il PARTUUID dei dispositivi a blocchi nella tua macchina usa
sudo blkid
Verrà stampato, ad esempio
/dev/sda1: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext2" PARTUUID="f3f4g3f4-02"
Ora puoi modificare la riga di comando di Linux come segue:
linux /bzImage root=PARTUUID=f3f4g3f4-02 ro
Questo si avvierà dalla partizione con PARTUUID f3f4g3f4-02, che in questo caso è /dev/sda1
.
lsblk
con varie opzioni può mostrarti quale disco/partizione/uuid sono in uso
es
% sudo lsblk -o UUID,PARTUUID,NAME,MOUNTPOINT
UUID PARTUUID NAME MOUNTPOINT
sda
d634adc8-69de-edd8-d491-a79e69aeff78 0008500a-01 |-sda1
195237da-8825-45fb-abf7-a62895bd0967 | `-md0 /boot
d2cf1bcc-d51d-bf37-9723-3b505172fe5f 0008500a-02 `-sda2
24bvXN-PVU1-kubI-Zgj5-W82i-3Z07-v80lME `-md1
67fe5039-de46-4629-bd03-ee65a5dd0132 |-godzilla-root /
ba70f1d1-89f0-4dd9-83a4-8bc9a74a6548 `-godzilla-swap [SWAP]
Quindi posso vedere quell'UUID d634adc8-69de-edd8-d491-a79e69aeff78
corrisponde a /dev/sda3
e l'UUID della partizione 0008500a-01
A seconda della tua configurazione puoi quindi fare
root=/dev/sda1
o
root=PARTUUID=0008600a-01
(Nel mio caso root
fa parte di un LVM e quindi non può essere montato in questo modo, ma il concetto si applica)