グラブはどこに設置されていますか? Linuxを別々にインストールするには新しいグラブが必要ですか?

グラブはどこに設置されていますか? Linuxを別々にインストールするには新しいグラブが必要ですか?

現在、私はArchとWindowsをインストールして設定し、grubをインストールしました。別のパーティションに別のArchインストールを実行する予定です。

新しくインストールされたディストリビューションにgrubを再インストールして設定する必要がありますか?それとも古いディストリビューションを使用できますか?

古い(この観点から現在) grub を引き続き使用する場合は、新しい Arch インストールを表示できるように再構成する必要があるようです。

(以前のArchインストールを使用して)現在のパーティションをフォーマットするとどうなりますか?
Grubは引き続き機能しますか(つまり、問題を解決するにはライブCDを起動する必要があります)。

要約すると、grubはオペレーティングシステムに関係なく共通の場所にインストールされていますか、それとも一部のオペレーティングシステム(現在のArchインストール)と一緒にバンドルされていますか?
チュートリアルでは、次のコマンドを提供します。grub-mkconfig -o /boot/grub/grub.cfgこれは grub が特定の Linux インストールに関連していると考えられますが、grub-installディレクトリを指定せずにコマンドも表示されます。

grubが現在のインストールに接続されている場合、私のコンピュータはgrubをチェックするパーティションをどのように知ることができますか?そうではなく、「一般」なら、なぜパッケージに「インストール」する必要がありますか?特定アーチのインストール?

答え1

命名規則:

  • GRUB(一部)はMBRに残ります。

  • GRUB(残り)はロードされるいくつかのファイルです/boot/grub(たとえば、GRUBで背景として表示される素晴らしい画像はMBRには保存されません)。

メモ:

  • 答えはMBR設定を考慮することです。 GRUBは他の設定で使用できます。

  • EFI設定では、状況が複雑になり、GRUBを使用できますが、カーネル自体も独自のEFIスタブとして機能する可能性があります。


GRUB(一部)はMBRにインストールされます。 MBRはディスクの最初の512バイトです。 MBRはディスクのパーティションテーブルでも使用されるため、GRUB自体のスペースは512バイト未満です。

MBR内のGRUB(一部)は、GRUBのMBRへのインストール中に定義されたディスクの他の部分からより完全なGRUB(残り)をロードします(grub-install)。 MBR GRUBはディスク(通常は)内の対応するエントリを見つける必要があるため、デフォルトの/bootGRUBを持つパーティションはパーティションテーブルから離れすぎてはいけません(通常512MBは異なる場合があります)。

独自のパーティションを持つことが便利なので、/bootそこからディスク全体のGRUBを管理できます。

どういう意味ですか:

  • MBRのGRUBは、ディスクから1つのGRUB(残り)しかロードできません。

  • コンピュータのすべてのオペレーティングシステムを見つけるには、ディスク上の特定のGRUB(残り)を設定する必要があります。


このコマンドがgrub-mkconfig -o /boot/grub/grub.cfg実行されるとos-prober(見つかった場合)、すべてのパーティションを検索し、grub.cfgすべてのオペレーティングシステムへのポインタを生成します。

/bootしたがって、複数のパーティション(またはMS Windowsと同等のパーティション、わかりませんがわかっています)がある場合、os-proberシステムはos-proberそのパーティションを見つけてgrub.cfgそれに応じて作成します。grub-install現在実行中のオペレーティングシステムのGRUBを指すMBRからGRUB(その一部)インストールを実行しますgrub.cfg

どういう意味ですか:

  • システム全体には GRUB が 1 つだけ必要です。

  • MBRが異なるため、ディスクごとにGRUBが異なる可能性がありますが、これはディスクを削除したい場合にのみ意味があります。

  • 単一のGRUBインストールですべてのオペレーティングシステムの起動を管理できます。

  • 単一ディスクでは、常にgrub-install単一のオペレーティングシステムでのみ実行する必要があります!これは重要です。それ以外の場合、設定は上書きされます。

答え2

明確にするために:あなたは使用していますgrub2、正しいですか?

Grub2が独自のブートパーティションにインストールされている場合は、何も変更する必要はありません。そうでない場合(本当に奇妙です)、技術的に維持するか、grub.cfgディストリビューションにいる場合はそれを維持できます/etc/grub.d

/bootしかし、それ自身のパーティションでなければなりません。実行してmount次の内容が表示されます。

/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,stripe=4,data=ordered)

必要に応じてGrub2を独自のパーティションにインストールしました。通常、新しいディストリビューションをインストールすると、ウィザードは通常インストールプロセスを案内し、どのパーティションにどのオペレーティングシステムが含まれているか(該当する場合)を見つけます。 Archのプロセスはやや退屈ですが、非常によく記録された

ひどいことが起きたらどうしますか?

ダウンロードゴポット、USBスティックに挿入して起動し、/bootパーティションをマウントします。

その後、rootとして実行するかsudo、を使用します。

grub-mkconfig -o /boot/grub/grub.cfg

Grub2は自動的にパーティションを検出し、それに応じてアクションを取ることができるはずです。

(しかし、Grub2でオペレーティングシステムを検出するために完全なインストールパーティションが必要かどうかは現時点では不明です。)

Windowsを同時にインストールする場合は、Windowsがブートローダを上書きしている可能性があります。この問題を解決するには、rootとして実行するか、を使用してくださいsudo

grub-install /dev/sdX

/dev/sdXブートパーティションがあるドライブはどこにありますか?


いくつかの説明:

Grub2はステージ2です。ブートローダー。これはオペレーティングシステムではありませんが、プライマリパーティションの最初の446バイトに収まる単純なチェーンローダよりもはるかに複雑です(最初のセクタの残りの部分はパーティションテーブルであり、フラグは待ちます)。

MBRには、/bootパーティション内のGrub2コードを実行するコードのみが含まれています。 Grub2それからまたはチェーンロード別のパーティション(たとえば、独自のブートローダをインストールしているため、Windowsブート用)に移動しますが、コードを実行したりmemtest(たとえば)カーネルとモジュールイメージにアクセスして実行することもできます(vmlinuz)。

どちらの場合も、カーネルが実行を開始するか、別のパーティションがチェーンロードされると、Grub2がメモリからアンロードされることに注意することが重要です。

答え3

Grubは特定のオペレーティングシステムに縛られていません。専用のパーティションに常駐することもできますが、通常はデフォルトのファイルシステムに沿ってマウントされます。ただし、システムを起動するにはこれを知る必要があります。したがって、新しいオペレーティングシステムのインストールやカーネルのアップグレードなど、コンピュータシステムに重大な変更が加えられた後は、Grubを更新する必要があります。唯一のGrubを削除すると、システムを起動できなくなります。マシンには複数のGrubがありますが、1つだけデフォルトまたはアクティブです。 Grubに加えて(Grubの代わりに)利用可能な他のブートローダがあります。 Windowsには、システム全体のデフォルトローダーとして設定できる独自のブートローダーがあります。

関連情報