Grubデュアルブートはどのように設定する必要がありますか?

Grubデュアルブートはどのように設定する必要がありますか?

いくつかのガイドラインを見ましたが、ブートプロセス全体を本当に理解したいと思います。私はOS用のパーティションとユーザー用のパーティションがあるドライブにDebianをインストールしました。また、ブートパーティションとスワップパーティションを自動的に作成します。その後、gpartedを使用して、元のDebianパーティションのレプリカである新しいパーティションを作成しました。私はそれに新しいUUIDを与えた。グループオプションを更新しました。

起動時に grub オプションに移動し、2 つのバージョンの OS を確認します。新しいパーティションからオペレーティングシステムを具体的に選択しました。しかし、起動してターミナルを確認してみると/がマウントされて/dev/nvme0n1p2いないことがわかりました。/dev/nvme0n1p5

これが私が混乱している部分です。次の場所に構成ファイルがインストールされてい/dev/nvme0n1p1ます。/boot/efi/boot/efi/EFI/debian/grub.cfg

search.fs_uuid FIRST-DRIVE-UUID root 
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

これが基本的に私にとって何を意味するのかは、最初のインストールをインストールしてから、最初のインストールでgrub.cfgをロードすることです。最初のインストールはルートとしてインストールされましたが、2番目のインストールを実行するには、明らかに2番目のドライブをルートとしてインストールする必要があります。それでは、最初のインストールの前に grub をロードするのではなく、最初のインストールで grub をロードするように見えますか?

両方のインストールを参照する grub 構成ファイルがありますが、/boot/grub/grub.cfgこれは最初のインストール・パーティションの一部です。ファイルを読み取ると、最初のインストールがすでにロードされ、ブートするパーティションを選択するには遅すぎるようです。ファイルは次から始まります。

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub

どういうわけかこの設定をブートパーティションに移動する必要がありますか?

update-grub または grub-mkconfig(v2.04-20) を実行すると、次の出力が表示されます。

$ sudo grub-mkconfig -o grub.cfg 
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-5.10.0-9-amd64
Found initrd image: /boot/initrd.img-5.10.0-9-amd64
Found linux image: /boot/vmlinuz-5.10.0-8-amd64
Found initrd image: /boot/initrd.img-5.10.0-8-amd64
Found Debian GNU/Linux 11 (bullseye) on /dev/nvme0n1p5
Adding boot menu entry for EFI firmware configuration
done

これは、最初のインストール時にinitrdとvmlinuzを参照するようです。 2番目にインストールしたときに受け取りましたfound

ベストアンサー1

「マウントされたファイルシステム」はLinux / Unixの概念です。 GRUBには実際には存在しません。

GRUBに$prefixorを指定する$rootことは、Linux / Unixでファイルシステムをマウントするのとは異なります。実際には、それぞれ相対パスまたは絶対パス名の接頭辞です。

$prefix/boot/grubGRUBはGRUBモジュールをロードするために使用され、絶対GRUBパス名でディレクトリ内のすべてのファイル(オペレーティングシステムの起動後に最終的に表示されるファイル)を参照する便利な変数としても使用できます。 GRUBコマンドを使用するときは、アーキテクチャ固有のディレクトリ名とロードするモジュール名のinsmod値を取得して追加します(サフィックスの追加)。$prefix.mod

(GRUBには、「partition )/directory ... filename」形式の/絶対パス名を許可する独自の(読み取り専用)ファイルシステムドライバがあります。ここでパーティションコンポーネントはhd0,gpt1

$root単一の GRUB 構成ファイル内で複数回の割り当てと再割り当てが可能です。最新の構成では、searchUUIDでファイルシステムを指定できるように、明示的な割り当ての代わりにこのコマンドが頻繁に使用されます。

Debian 9システム(BIOSスタイルの起動を使用)では、最初にいくつかのGRUBモジュールを設定してロードし、別のパーティションを指定してGRUB$rootテーマディレクトリのどこかで背景画像とフォントファイルをロードするGRUB設定を見ました。物理ブートオプションの場合は、物理カーネルをロードするためのファイルシステムまたはパーティションブートレコードをチェーンロードするためのWindowsパーティションを指します。$prefix$root/usr/usr/share/...$root/boot

GRUBは$rootLinuxのルートファイルシステムとは何の関係もありません。 GRUBがLinuxカーネルとinitramfsファイルをRAMにロードすると、コントロールはカーネルに渡されます。現在、GRUBには3つの項目しか残っていません。

  • RAMのカーネル
  • カーネル後のRAMのinitramfs
  • カーネルコマンドラインで指定された起動オプション。

すべてのGRUB変数($rootおよび含む$prefix)は現在完全に忘れられており、もはや意味がありません。カーネルが起動すると、セルフストレージドライバがアクティブになり、Linuxルートファイルシステムとしてマウントされるファイルシステムは次のように決定されます。

  • カーネルroot=ブートオプション(指定されている場合)または
  • initramfsファイルの内容(/etc/fstab指定されたルートファイルシステムのコピー、または他に使用されるファイルシステムを決定するスクリプトを含めることができます)または
  • デフォルトのルートファイルシステムは、カーネルイメージに埋め込まれたパラメータで指定できます(特にinitramfsなしでカスタムカーネルを使用する場合)。

GRUBのUEFIバージョンは通常、次のものを探します。grub.cfg grubx64.efi同じディレクトリに。最初のインストールではなく、このDebianインスタンスのgrub.cfg´ you found in /boot/efi/EFI/debian/grub.cfg effectively tells GRUB where the actual GRUB configuration file (and the/boot/grub directory) is, by filesystem UUID. If you wanted, you could replace the UUID with the UUID of the/dev/nvme0n1p5 /boot`の3行。filesystem, to make GRUB use the


このパッケージをDebianにインストールすると、os-prober実行するたびに自動的に実行され、update-grubDebianの並列インストールを含む他のオペレーティングシステムを自動的に検出し、デフォルトの起動オプションをGRUB設定ファイルに追加します。

/etc/grub.d/40_custom次のメニュー項目をに追加することもできますnvme0n1p2

menuentry 'Switch to GRUB configuration of /dev/nvme0n1p5' {
        search --no-floppy --fs-uuid --set=root UUID-OF-nvme0n1p5-FS-HERE
        configfile /boot/grub/grub.cfg
}

同様に、GRUB設定に/etc/grub.d/40_custom戻ります。変更を適用するには、実行することを忘れないでください。nvme0n1p5nvme0n1p2update-grub

その後、GRUBでデフォルトで使用したい構成に従って(たとえば)search.fs_uuidの行を設定できます。 Debian の 2 つのインスタンスが同じ設定ファイルを受け入れるのと同じバージョンの GRUB を使用し続ける限り、2 つのオペレーティングシステムインスタンスを簡単に切り替えることができ、それぞれ独自の GRUB 設定ファイルを独立して保持できます。お互い。/boot/efi/EFI/debian/grub.cfgnvme0n1p1

おすすめ記事