grub-mkconfigはルートのUUIDをどこで取得しますか?

grub-mkconfigはルートのUUIDをどこで取得しますか?

Debian 10 で実行すると、grub-mkconfig次のような結果が生成されます。

...
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  fc6c3fbf-8cfc-411c-ac5d-072c6e8c8092
        else
          search --no-floppy --fs-uuid --set=root fc6c3fbf-8cfc-411c-ac5d-072c6e8c8092
        fi
        linux /boot/vmlinuz-4.19.0-9-amd64 root=UUID=e0674dbf-3546-4898-9933-c9eb55703cb5 ro single
        initrd /boot/initrd.img-4.19.0-9-amd64
...

このプログラムは何をしており、なぜ別のUUIDを使用しているのですか?このUUIDはどこから来たのですか?

答え1

これは2つのファイルシステム//boot

/boot最初の部分では、grubにLinuxカーネル(およびinitramfs)を含むパーティションを見つける方法を教えてください。

    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  fc6c3fbf-8cfc-411c-ac5d-072c6e8c8092
    else
      search --no-floppy --fs-uuid --set=root fc6c3fbf-8cfc-411c-ac5d-072c6e8c8092
    fi

次のセクションでは、grubが使用するファイルシステムを制御するルートカーネルパラメータを次のように渡してLinuxを起動するように指示します/

linux /boot/vmlinuz-4.19.0-9-amd64 root=UUID=e0674dbf-3546-4898-9933-c9eb55703cb5 ro single

私はそれがどのように見えるかを見たことがありませんが、最終的に制御されます/etc/fstab。 fstabを変更して他のファイルを指すようにするか、常にこのコマンドをrootとして実行する必要があることは注目に値し/ます/boot

update-grub

関連情報