LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

Это не отдельная команда ни системы, ни GRUB, это параметр ядра, передаваемый ему в командной строке:

kernel ... root=UUID=xxx ...

Параметр обрабатывается в initrd путем поиска раздела с заданным UUID на момент загрузки перед сменой на него реального корня.

Аналогично ведет себя root=LABEL=xxx.

Ядро само, без помощи initrd, умеет обрабатывать помимо стандартных root=/dev/sdaN и root=nnnn еще root=PARTUUID=xxx. PARTUUID смотреть также в выводе blkid, он отличается от UUID. Подробнее см. в https://www.kernel.org/doc/Documentation/kernel-parameters.txt. Правда там написано смотреть комментарий к name_to_dev_t в init/do_mount.c, где в свою очередь:
/*
183  *      Convert a name into device number.  We accept the following variants:
184  *
185  *      1) <hex_major><hex_minor> device number in hexadecimal represents itself
186  *         no leading 0x, for example b302.
187  *      2) /dev/nfs represents Root_NFS (0xff)
188  *      3) /dev/<disk_name> represents the device number of disk
189  *      4) /dev/<disk_name><decimal> represents the device number
190  *         of partition - device number of disk plus the partition number
191  *      5) /dev/<disk_name>p<decimal> - same as the above, that form is
192  *         used when disk name of partitioned disk ends on a digit.
193  *      6) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
194  *         unique id of a partition if the partition table provides it.
195  *         The UUID may be either an EFI/GPT UUID, or refer to an MSDOS
196  *         partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-
197  *         filled hex representation of the 32-bit "NT disk signature", and PP
198  *         is a zero-filled hex representation of the 1-based partition number.
199  *      7) PARTUUID=<UUID>/PARTNROFF=<int> to select a partition in relation to
200  *         a partition with a known unique id.
201  *      8) <major>:<minor> major and minor number of the device separated by
202  *         a colon.
203  *
204  *      If name doesn't have fall into the categories above, we return (0,0).
205  *      block_class is used to check if something is a disk name. If the disk
206  *      name contains slashes, the device name has them replaced with
bangs.
208  */

Исходная версия bormant, :

Это не отдельная команда ни системы, ни GRUB, это параметр ядра, передаваемый ему в командной строке:

kernel ... root=UUID=xxx ...

Параметр обрабатывается в initrd путем поиска раздела с заданным UUID на момент загрузки перед сменой на него реального корня.

Аналогично ведет себя root=LABEL=xxx.

Ядро само, без помощи initrd умеет обрабатывать помимо стандартных root=/dev/sdaN и root=nnnn еще root=PARTUUID=xxx. PARTUUID смотреть также в выводе blkid, он отличается от UUID.