
いくつかのガイドラインを見ましたが、ブートプロセス全体を本当に理解したいと思います。私は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に$prefix
orを指定する$root
ことは、Linux / Unixでファイルシステムをマウントするのとは異なります。実際には、それぞれ相対パスまたは絶対パス名の接頭辞です。
$prefix
/boot/grub
GRUBはGRUBモジュールをロードするために使用され、絶対GRUBパス名でディレクトリ内のすべてのファイル(オペレーティングシステムの起動後に最終的に表示されるファイル)を参照する便利な変数としても使用できます。 GRUBコマンドを使用するときは、アーキテクチャ固有のディレクトリ名とロードするモジュール名のinsmod
値を取得して追加します(サフィックスの追加)。$prefix
.mod
(
GRUBには、「partition )
/directory ... filename」形式の/
絶対パス名を許可する独自の(読み取り専用)ファイルシステムドライバがあります。ここでパーティションコンポーネントはhd0,gpt1
。
$root
単一の GRUB 構成ファイル内で複数回の割り当てと再割り当てが可能です。最新の構成では、search
UUIDでファイルシステムを指定できるように、明示的な割り当ての代わりにこのコマンドが頻繁に使用されます。
Debian 9システム(BIOSスタイルの起動を使用)では、最初にいくつかのGRUBモジュールを設定してロードし、別のパーティションを指定してGRUB$root
テーマディレクトリのどこかで背景画像とフォントファイルをロードするGRUB設定を見ました。物理ブートオプションの場合は、物理カーネルをロードするためのファイルシステムまたはパーティションブートレコードをチェーンロードするためのWindowsパーティションを指します。$prefix
$root
/usr
/usr/share/...
$root
/boot
GRUBは$root
Linuxのルートファイルシステムとは何の関係もありません。 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-grub
Debianの並列インストールを含む他のオペレーティングシステムを自動的に検出し、デフォルトの起動オプションを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
戻ります。変更を適用するには、実行することを忘れないでください。nvme0n1p5
nvme0n1p2
update-grub
その後、GRUBでデフォルトで使用したい構成に従って(たとえば)search.fs_uuid
の行を設定できます。 Debian の 2 つのインスタンスが同じ設定ファイルを受け入れるのと同じバージョンの GRUB を使用し続ける限り、2 つのオペレーティングシステムインスタンスを簡単に切り替えることができ、それぞれ独自の GRUB 設定ファイルを独立して保持できます。お互い。/boot/efi/EFI/debian/grub.cfg
nvme0n1p1