DIY マルチブート USB に rEFInd をインストールする方法

DIY マルチブート USB に rEFInd をインストールする方法

デュアルブートの永続的な USB を作成するつもりです。macOS High Sierra と Windows 10 を起動できる USB を作成してみたいと思います。LVM について理解している限りでは、VG を 2 つ、APFS を 1 つ、NTFS を 1 つ作成できます。これにより、PC で Windows10 を起動し、Mac で Windows10/macOS を起動できます。回避策として USB を 2 つ使用するか、bootcamp を使用することはわかっていますが、試してみたいと思います。rEFInd は、独自の VG に個別の /boot ファイルを配置して、必要なオプションを提供できます。

GUI を使用するのではなく、この機会を利用して基本について学習します。以下は私が実行した手順です。

ステップ1:USBを消去しました

sudo dd if=/dev/zero of=/dev/sdb bs=4k && sync

ステップ 2: GPT を追加します。

sudo gdisk /dev/sdb

o         # Create new empty GPT

ステップ3: EFIパーティションを作成する

n         # new partition
1         # 1st partition
<enter>   # suggested/default start sector 
+512M     # Internet wisdom on EFI size
ef00      # EFI system

ステップ4: LVMパーティションを作成する

n         # new partition
4         # 2nd partition
+128M     # Internet wisdom on good practice
-128M     # Internet wisdom to create buffer space
8e00      # LVM file system

最終結果を印刷します:

Disk /dev/sdd: 242614272 sectors, 115.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): FE8B1928-7122-4004-9CF6-D5D47C08999E
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 242614238
Partitions will be aligned on 2048-sector boundaries
Total free space is 526302 sectors (257.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB   EF00  EFI System
   2         1312768       242352094   114.9 GiB   8E00  Linux LVM

ここで困惑しています。EFIパーティションにブートローダーをインストールする方法がわかりません。Rod SmithのLinux 用 EFI ブートローダーの管理: EFI ブートローダーのインストールそしてrEFInd ブート マネージャー: rEFInd のインストールしかし、その部分で迷ってしまいました/boot/efi。私の Ubuntu マシンには /boot/efi はなく、/boot/grub があります。

外付け USB で rEFInd を実現するための実際の手順についてアドバイスをいただける方はいらっしゃいますか?

答え1

EFI システム パーティションは、単に FAT32 形式のパーティションです (GPT パーティション テーブルに ESP ブート フラグが設定されています)。一部の UEFI システムでは、標準の MBR パーティション上の FAT32 パーティションからブートローダーを問題なくロードできます。適切に作成されているように見えますが、フォーマットされていません。フォーマットが完了したら、rEFInd ファイルをコピーして、そこに rEFInd を「インストール」します。

  1. フォーマット:mkfs.vfat -F 32 /dev/sdd1
  2. マウント:mkdir /tmp/usbboot && mount /dev/sdd1 /tmp/usbboot
  3. 保存先フォルダを準備します:mkdir /tmp/usbboot/EFI
  4. rEFIndのファイルをコピーします: cp -a /path/to/refind /tmp/usbboot/EFI/(またはrefind-installスクリプトを使用します: refind-install --root /tmp/usbboot)
  5. rEFIndの設定を好みに合わせて編集します( /tmp/usbboot/EFI/refind/refind.conf

UEFI システムにブートローダを完全にインストールするための最後の手順は、efibootmgrまたは同様のものを使用して、それを UEFI ファームウェアに登録することです。これは、起動可能な USB ドライブでは省略されることが多く、現在のシステムにのみ影響します。他のシステムで起動するには、ファームウェアのブート メニューを使用します。(他のドライブが接続されておらず、USB の ESP に他のブートローダがない場合、ファームウェアはrEFIndそれを自動検出して自動的にロードします。)

答え2

refind.efiリムーバブル ディスクでは、ブートローダ ( ) を (quixotic の指示に従ってパス名を使用して) としてコピー/名前変更するのが最適です/tmp/usbboot/EFI/boot/bootx64.efi。これは、UEFI ファームウェアが探す特別なファイル名です。存在する場合、ディスクは UEFI ブート可能として検出されます。

ブートローダに他のパスまたはファイル名を使用する場合は、efibootmgrquixotic が言ったように、または同様のものを使用してブート パスを指定する必要があります。これは永続的なインストールには適していますが、任意のシステムに接続して独自の OS を起動できる USB デバイスを持つことが目的の場合は、あまり便利ではありません。

ただし、USB デバイスで Linux LVM を使用する予定のようですが、これはおそらくうまくいきません。Windows も macOS も、追加のソフトウェアなしでは Linux LVM を認識できず (またはまったく認識できず)、システム パーティションの場所としてそれを受け入れることは絶対にありません。

ここでは Linux LVM は必要ありません。計画を大幅に複雑にするだけです。GPT パーティション テーブルを使用して NTFS パーティションと APFS パーティションを作成するだけです。

関連情報