Я удивлен, что никто не упомянул инструмент dtrx , который был предложен в этот ответ .
Кажется, подходит под запрос.
Я нашел ответ в другом потоке :
UUID идентифицирует файловые системы, тогда как PARTUUID идентифицирует раздел (т.е. остается нетронутым после переформатирования). Без initramfs / initrd ядро поддерживает только PARTUUID.
Чтобы найти PARTUUID блочных устройств на вашем компьютере, используйте
sudo blkid
Это напечатает, например,
/dev/sda1: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext2" PARTUUID="f3f4g3f4-02"
Теперь вы можете изменить свою командную строку linux следующим образом:
linux /bzImage root=PARTUUID=f3f4g3f4-02 ro
Это загрузится с раздела с PARTUUID f3f4g3f4 -02, в данном случае это / dev / sda1
.
lsblk
с различными параметрами может показать вам, какой диск / раздел / uuid используется
например
% 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]
Итак, я вижу, что UUID d634adc8-69de-edd8-d491-a79e69aeff78
соответствует / dev / sda3
и UUID раздела 0008500a-01
В зависимости от настроек вы можете выполнить
root=/dev/sda1
или
root=PARTUUID=0008600a-01
(В моем случае корень
является частью LVM и поэтому не может быть смонтирован таким образом, но концепция применима)