
initramfs/initrd サポートがないと、次のカーネルコマンドラインは機能しません。
linux /bzImage root=UUID=666c2eee-193d-42db-a490-4c444342bd4e ro
initramfs / initrdなしでルートパーティションをUUIDとして識別するにはどうすればよいですか?
/dev/sda1
パーティションがUSBスティックにあり、別のコンピュータで動作する必要があるため、同様のデバイス名を使用できません。
答え1
埋もれている答えを見つけました。他のスレッド:
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
。
答え2
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がパーティションUUIDd634adc8-69de-edd8-d491-a79e69aeff78
に対応することがわかります。/dev/sda3
0008500a-01
設定に応じて、次のことができます。
root=/dev/sda1
または
root=PARTUUID=0008600a-01
(私の場合はroot
LVMの一部なので、この方法ではインストールできませんが、概念は適用されます)
答え3
UUID=
それは無効です。そのまま受け入れてくださいLABEL=
。両方とも、ファイルシステムがあるパーティションではなくファイルシステムを識別します。
源泉:カーネルname_to_dev_t()
do_mount.c
UUIDの唯一の有効なカーネルコマンドラインエントリはですPARTUUID=
。このUUIDは、パーティションに含まれるファイルシステムではなく、パーティション自体に適用されます。 (blkid
出力参照)
GPTパーティションを使用している場合は、PARTLABEL=
よりユーザーフレンドリーなバージョンをお試しください:)