UUIDを使用してルートファイルシステムを指定できないのはなぜですか?

UUIDを使用してルートファイルシステムを指定できないのはなぜですか?

私のシステムはGRUB 2設定で正しく起動します。

linux   /bzImage root=/dev/sda2 init=/usr/lib/systemd/systemd ro

/dev/sda2ただし、対応するUUIDに置き換えると、次のようになります。

linux   /bzImage root=UUID=666c2eee-193d-42db-a490-4c444342bd4e init=/usr/lib/systemd/systemd ro

その後、起動中に失敗します。

kernel panic - not syncing: VFS: unable to mount root fs on unknown-block(0,0)

UUIDが正しいようです。

# blkid
/dev/sda1: UUID="97ac3744-39de-4d6d-9a81-e3a3ea08a8bb" TYPE="ext2" 
/dev/sda2: UUID="666c2eee-193d-42db-a490-4c444342bd4e" TYPE="ext4" 

なぜ動作しないのですか? initramfsを使わないからですか?

これはカーネル3.10.7を使用するx86_64 Gentoo Linuxです。マイコンピュータではMBRパーティションテーブルを使用し、マイコンピュータsdaではGUIDパーティションテーブルを使用しますsdb

ベストアンサー1

明らかに、UUIDカーネルがハードドライブを識別する信頼できる唯一の方法です。 2種類あります。ファイルシステムに保存され、起動時にカーネルで使用できないUUIDとパーティションテーブルに保存され、起動時に使用できるPARTUUID。だからあなたは使用する必要があります

root=PARTUUID=SSSSSSSS-PP

/dev/sd??デバイスが接続/切断されると変更されることがあります。

忘れないで首都SSSSSSSS-PPあなたが得る16進数blkid

使いやすい

root=LABEL=
root=UUID=

initramfsこれらの識別子を検索するためにのみ使用できます。

したがって、null以外のものを使用すると、3つinitramfsすべてを持つことができます!空虚でinitramfsあなたは残りますPARTUUID

おすすめ記事