複数の Linux OS をインストールするには、別の /boot パーティションを作成する必要がありますか?

複数の Linux OS をインストールするには、別の /boot パーティションを作成する必要がありますか?

複数の Linux OS をインストールするには、別の /boot パーティションを作成する必要がありますか?

答え1

最近では、主要な Linux ディストリビューションに /boot パーティションを別に用意する必要はありません (用意すると面倒なことさえあります)。単一のブート パーティションから複数の Linux インストールを実行しようとすると、起動に問題が発生する可能性が高くなります。特別な理由がない限り、最善の方法は、すべての Linux に 1 つの swap パーティションを用意し、各インストールに ext3/4/BTRFS/その他のパーティションを 1 つ用意して、各 Linux インストールのすべてのシステム ファイルとユーザー ファイルを配置することです。必要に応じて、別のデータ パーティション/ドライブを用意し、各 OS で適切にマウントできます。

答え2

Linux ごとに個別の /boot パーティションが必要ですか?

各ディストリビューションは、/bootを変更するのは自分だけだと想定します(yum、、apt...経由)。複数のディストリビューションで同じものを管理しないようにします。/boot ディレクトリ(パーティション)。システム アップグレードは、実質的にこれをめぐって互いに競合することになります。

パーティションを /boot 専用にする場合は、通常、各ディストリビューションごとに独自のパーティションが必要になります。

/bootとは何ですか?

これはあまり理解されていないトピックなので、読む内容には注意してください/boot ディレクトリは、実行中のオペレーティング システムがブートローダの設定を読み書きできるようにするブリッジとして機能します。実行時に他の目的で使用されることはありません。

/boot ディレクトリは、ブートローダーの設定とプラグイン、カーネルと initramfs を保存するスペースであると考えてください。

システムを起動すると、コンピューターのファームウェアがブートローダーを起動し、ブートローダーは /boot を読み込んで設定を読み込みます。次に、必要なカーネルと initramfs ファイルを読み込みます。

実際、通常のほとんどの状況で Linux にこれをマウントしておく唯一の理由は、システム アップグレード ツール ( yum、、apt... によって呼び出される) が、たとえば新しいカーネルをインストールできるように、このディレクトリが存在することを期待する可能性があるためです。これらのツールは非常に柔軟性に欠けます。/boot ディレクトリなしで実行することはお勧めしません。

/boot は独自のパーティションである必要がありますか?

多くの場合、いいえです。/boot を独自のパーティションに配置する唯一の理由は、システムのルート ディレクトリ / を、ブートローダーが読み取れない、または適切に読み取れない場所に保存できるようにするためです。

とても勇気を感じますか?

実際には、2 つのメカニズムで /boot を共有できます。ただし、私はこれらのいずれかが推奨されるとは言いません。

Linuxはカーネルとブートローダーをインストールするだけ

ディストリビューション間で、Linux カーネルは驚くほど互換性があります。少なくとも、メジャー バージョンが類似しているカーネルは互換性があります。したがって、ブートローダーやカーネルがインストールされていないディストリビューションが存在する可能性があります。このようなセットアップでは、/boot を変更しようとすべきではなく、変更したとしても、そこに有用なものは何もありません。

したがって、1 つの Linux で別の Linux のすべてのブート エントリを管理し、それらの間でカーネルを共有するだけで済みます。

サブディレクトリ

一般的には考えられませんが、何かを /boot にバインドマウントすることは非常に安全です。このメカニズムにより、インストールごとに異なる名前のブート ディレクトリを含む 1 つのパーティションを作成できます。

次のようになります/etc/fstab:

# Mount the boot partition
UUID=cb015492-4ca4-4fae-a416-6d89443e4680 /media/boot           ext4    defaults        0       2
# Bind mount the desired 
/media/boot/ubuntu-jammy-boot /boot none bind 0 0

前回これを確認したとき、grub-install配置が理解され、grub.cfgEFI で grub が正しく構成されているように見えました。例: /boot/efi/EFI/ubuntu/grub.cfg。そうでない場合は、このファイルの構成行を手動でバッチ処理できます。

set prefix=($root)'/ubuntu-jammy-boot/grub'

答え3

パーティションの必要性については、次の 2 つの理由があります/boot

  • BIOSは大きなディスク上のどのセクターにもアクセスできない。
  • ブートローダは、 に使用される高度なディスクマネージャやファイルシステムをロードできません/

最初の論理的根拠は、最近のシステムでは当てはまらないと思います。また、Grub2 では、LVM や Btrfs のようなものでも、最初のステージ (ファイル システム外の最初のセクターを含む) でロードできます。

しかし、2022 年に、単一の/ + /bootボリュームで Debian をインストールできませんでした。これはクラウド サーバー上にあり、何が起こったのかを分析する方法があまりありませんでした (画面が表示されていないため)。

関連情報