web-dev-qa-db-ja.com

Debian 9.9をインストールするときのEFIの正しい場所

私はDebian 9.9をインストールしています。1GBのハードディスクにこのレイアウトが必要ですTBハードディスク。

Size              Name / Mounted at
512 MB            EFI System Partition
40 GB             /
8GB               /swap
Remaining space   /home

インターネットでは、人々は/ bootまたは/ boot/efiにマウントされたEFIパーティションを使用しています。

Debian 9では/ bootをFAT32にできないため、/ bootを使用できません。/boot/efiも同じ理由でオプションではないと思いますか?

/ GRUBフォルダーにGRUB2を含める理由はありますか?それ自体ではEFIシステムパーティションにGRUB2をインストールしませんか?

代替パーティションスキームの利点は何ですか(つまり、/ bootのEFI、/ boot/efiまたは/ grubにインストールされたGRUB2ですか?)

3
user2338823

EFIパーティションの標準的な場所(少なくともDebianの場合)は/boot/efiです。これは、FAT32パーティションであり、である必要があります

標準のDebian Grub EFIレイアウトでは、grubには3つの部分があります。

  1. /boot/efi
    マウントされたEFIパーティション
    スタブgrubブートローダーと設定が含まれています
  2. /boot/grub
    同じパーティション/ bootまたは/
    GRUBモジュールと実際のGRUB構成が含まれています
  3. /etc/grub.d
    /と同じパーティション
    自動構成スクリプトが含まれています

GrubはEFIに完全にはインストールされず、その大部分が他の場所に存在します。したがって、起動するには、/boot/grubが必要です。自分自身を指すようにスタブとスタブ構成をインストールするだけです。典型的なEFIスタブ構成は次のようになります(/boot/efi/EFI/debian/grub.cfg):

search.fs_uuid 2c675303-d207-4573-98f5-59a33c9890ab root hd0,gpt3
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

この構成が実際の構成(ハードディスク0パーティション3にある/boot/grub/grub.cfg)の場所をgrubに通知するだけであることに注意してください。

また、設定は主に/ boot/grubに保存されていますが、手動で編集することは決してなく、grubスクリプトに編集を依頼することにも注意してください。そのため、grubを再構成するには(新しいカーネルを追加する場合でも)、/etc/grub.dも必要です。このディレクトリ内のスクリプトは、Debianによってインストールされた他のライブラリに依存している可能性があることに注意してください。


そのため、次の2つの理由で/ boot/grubを保持する必要があります:

  1. 実際のconfigおよびgrubモジュールが含まれています。
  2. 自動構成スクリプトが新しい構成を書き込む場所を認識できるようにします。

本当に/boot/grubをEFIに移動したい場合...(非標準)

実際にあなたを止めるものはありません。 /etc/grub.dのスクリプトがどこにあるかを確認してください(例:シンボリックリンクを残す)

難解な理由でこれを以前にやったことがあります。 2つのディレクトリEFIgrubを含むEFIパーティションでシステムを実行します。私はこれを設定しました:

# Move /boot/grub onto my EFI partition
mv /boot/grub /boot/efi

# Leave a symbolic link from the old location to the new location
ln -s /boot/efi/grub /boot/grub

# Update the stub config /boot/efi/EFI/debian/grub.cfg to point to the new location
grub-install

# For safety update the contents of /boot/efi/grub aka /boot/grub
update-grub

私が実際にこの設定を気に入っているのは、ここで何度か見た、OSを削除してGRUBを破壊し、他のOSが起動しないという間違いを防ぐためです。


パーティショニングの理由

パーティショニングにはいくつかの目的があります。ブートローダーの一部のパーティションに関して、これはシステムのさまざまな部分のさまざまな機能を処理するのに役立ちます。

  • BIOSはFATベースのファイルシステムのみを読み取ることができます
  • Grubはファイルシステムをかなりサポートしていますが、LVMと暗号化されたボリュームが問題になる可能性があります
  • Linuxはすべてを読み取ることができます
  • 古いGrubのレガシーは非常に大きなディスクまたはパーティションを読み取ることができませんでした

BIOSはgrubをロードして実行できる必要があるため、EFIはFATベースのファイルシステム上にある必要があります。

マスターパーティションはgrubが読み取れないものにある可能性がありますが、grubはカーネル、Initramfs、および独自の設定にアクセスする必要があるため、/ bootおよび/ boot/grubはgrubが読み取り可能なパーティション上にある必要があります。 grubのレガシーの昔は、このパーティションが十分に小さく、非常に小さなディスクのドライブの先頭近くにあることを確認する必要もありました。

Linuxはすべてを読み取ることができますが、LinuxをLVMまたは暗号化されたボリューム上で実行したい場合があります。

4
Philip Couling