web-dev-qa-db-ja.com

パーティション上のGPTディスクにGRUB2をインストールする

MacBook Air 2013を使用していて、Gentooをインストールしようとしています。私はすでに数回それを行いましたが、EFIスタブカーネルイメージを直接使用するなど、この問題に対して常に他の「回避策」を使用しました。

私が達成しようとしているのは、パーティションにGRUBをインストールすることです。これにより、Macbookの元のディスクレイアウトをスクランブルしません。

これは私のパーティションテーブルです:

    GPT fdisk (gdisk) version 0.8.8

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 236978176 sectors, 113.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 9DF6BE23-87E0-4602-B71F-7DAD445D5614
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 236978142
Partitions will be aligned on 8-sector boundaries
Total free space is 6 sectors (3.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40          409639   200.0 MiB   EF00  EFI System Partition
   2          409640       176582599   84.0 GiB    AF00  Customer
   3       176582600       177852135   619.9 MiB   AB00  Recovery HD
   4       177852136       178114279   128.0 MiB   EF00  EFI System
   5       178114280       236978142   28.1 GiB    8300  Linux filesystem

1stパーティションは私のMac(Refindをインストールした場所)の元のESP)であり、そのままにしておきたいのですが、配置しようとしましたGRUB 4thパーティション(つまりvfat)ですが、そこにインストールしようとすると、次のようになります。

# > grub2-install /dev/sda4    
/usr/sbin/grub2-bios-setup: warning: File system 'fat' doesnt' support embedding.
/usr/sbin/grub2-bios-setup: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
/usr/sbin/grub2-bios-setup: error: will not proceed with blocklists.

私も使ってみました

grub2-install --force /dev/sda4

しかし、それは何もしませんでした。どうすればこの問題を解決できますか?ありがとう!

2
peperunas

EFIスタブカーネルを作成して解決し、それを使用して起動しながら、grub2-install --target=$Arch-efi --efi-directory=$espを使用してgrubをインストールしました。ここで、$esp/bootをマウントしたディレクトリで、$ArchはCPUのアーキテクチャです(私の場合はx86_64。この手順では、grubが$espにインストールされ、grubx64.efiが作成されます。

実行する最後のステップは、構成の作成です。

grub2-mkconfig -o $esp

そして、すべてが設定されました!

要約すると、次のようになります。

  1. EFI-STUBカーネルを作成して起動します
  2. grub2-install --target=$Arch-efi --efi-directory=$espを使用して通常どおりgrubをインストールします
  3. Grubの構成ファイルを作成します:grub2-mkconfig -o $esp
  4. 完了!
0
peperunas