Ubuntu と Parrot をインストールした後に EFI(ESP) パーティションをインストールすることは可能ですか?

Ubuntu と Parrot をインストールした後に EFI(ESP) パーティションをインストールすることは可能ですか?

Ubuntu と Parrot Security OS がインストールされたコンピュータがあります。すべて正常で、Grub でスムーズに動作しています。正常に起動できます。

Ubuntu をインストールしたときに、すべての HDD をフォーマットしてしまい、EFI をインストールするのを忘れてしまいました。rEFInd をインストールしようとしたところ、コンピューターから EFI が完全に欠落していることが示されました。

質問は、すべてのオペレーティング システムをインストールした後、EFI をインストールするにはどうすればよいかということです。EFI をインストールするには、Ubuntu を再インストールする必要がありますか?

答え1

それは確かに可能ですが、本当の問題はそれが面倒が少ないかどうかです。

超能力は、Fat ファイルシステムと特殊なタイプを持つ小さなパーティション (512 MB が適切なサイズ) です。

  • 作成する必要があるので、空き領域が必要であり、そのためにパーティションの1つをサイズ変更する必要があるかもしれません。そしてそのファイルシステムのようなツールを使用しますgparted

  • 必要なスペースがすでにある場合は、適切なタイプで新しいパーティションを作成する必要があります。gparted「esp フラグ」を探して、「EFI システム」と入力しますfdisk(MBR で実行している場合は、同様のもの)。これが EFI パーティションを EFI パーティションにするものです。

  • ファイルシステムを構築するmkfs.fat -F32 /dev/sdx

  • パーティションのUUIDを取得しblkid、ラベルなどを設定します。

  • 次のように、新しいパーティション用に /etc/fstab に新しいエントリを作成します (マウントポイントが存在することを確認してください)。

UUID=xxxx-xxxx   /boot/efi    vfat    defaults    0 2

あるいは、/efiを使用するか、/efi/EFIパスを避けるために/bootにバインドマウントすることもできます。

  • そのパーティションに rEFInd または GRUB for EFI をインストールします。そのパーティションに /EFI ディレクトリを作成する必要があるかもしれません。

これすべき実用的な ESP を提供します。
より詳しい内容については、次のサイトをご覧ください。https://wiki.archlinux.org/index.php/EFI_system_partition#パーティションの作成

答え2

以前、これに似たようなことをしたことがあります。正確な手順は書き留めていませんが、修正するのはそれほど難しくありませんでした。(たまたま rEFInd も必要でしたが、これがなくても動作するはずです。) 次のような感じでした。

  1. 同じバージョンの Ubuntu を、GPT 仮想ディスクを備えた UEFI システムとしてセットアップされた一時的な GPT 形式のディスクまたは VM に、「ドナー」ダミー OS として「適切に」インストールします。
  2. インストール後にメイン OS が更新された場合は、ダミー インストールも更新してください。
  3. ダミー OS をシャットダウンします。
  4. 起動可能なリカバリ メディアまたはその他の起動可能な OS を使用して、ダミーから実際のマシンに EFI パーティションをコピーします。
    1. GParted に付属している Ubuntu ブート DVD をこのために使用できます。
    2. VM 経由でこれを行う場合は、VM をリカバリ ISO にブートするか、仮想ディスクとしてマウントされた Ubuntu インストール ISO ファイルを起動します。実際の OS ディスクを VM 内に raw VMDK としてマウントすることもできます (VirtualBox を使用する場合は、vboxmanageCLI を使用して作成する必要があります。マッピングはホスト OS の再起動後には無効になります)。これにより、「ダミー」EFI パーティションを実際のディスクに直接コピーできるため、VM でこれを行う場合は時間の節約になります (この方法で VM 内で実際の OS を起動することもできます。Linux は、一時的に存在しないハードウェアのドライバー (独自のディスプレイ ドライバーも含む) をロードしないほど賢いです。カーネルには、VirtualBox と VMware の統合用の基本的なオープン ソース ドライバーが既に含まれており、自動的にロードされます。実際、私は通常、この方法で実際のディスクに Ubuntu をインストールし、後で VM 経由で他のマシンに移植します。)
  5. EFI パーティションをコピーする前に、まず既存のパーティションを縮小したり移動したりして、最初のパーティションとしてスペースを確保します。(これは GParted を使用すると簡単です。) 新しい EFI パーティションは sda1 にはなりません (最初に正しくインストールした場合のように)。ただし、私の記憶が正しければ、EFI、Grub、rEFInd などはそれで問題ありません。
  6. インストールの /etc/fstab ファイルで、パーティションを /boot/efi にマップします。
  7. これで、起動可能なシステムを取得するには 2 つの選択肢があります (これもベアメタル上で実行することも、生の VMDK にマップされた実際のディスクを持つ VM 経由で実行することもできます)。
    1. ブーツ修理ツールを使用するブーツ修理通常はボタンを 1 つ押すだけで、すべてを起動可能な状態にすることができます。
      • ベアメタルでも VM でも、UEFI モードの OS からブート修復を実行する必要があることに注意してください。
    2. rEFInd もこの構成で動作できるはずです。ただし、rEFInd が本当に必要な場合、まず前の手順を実行する必要があるかもしれません。
  8. Grub をスキップして「純粋な EFI」に移行したい場合も、回避策はありますが、この回答の範囲 (および私の記憶) を超えています。

rEFInd を使いたい理由が知りたいです。これは素晴らしいコードで、MacOS とのデュアル ブートやトリプル ブートをナビゲートするには実質的に必要ですが、Linux/Windows とのデュアル ブートだけであれば、Grub の方が見苦しいものの、より簡単であることがよくあります。いじる部分が少ないからです。また、rEFInd は「設定して忘れる」ものではなく、時々上書きされて再インストールが必要になることがあります。これは、一般的な *nix/Windows システム管理者のスキルが rEFInd にマッピングされないため、ちょっとした面倒です。また、あまり頻繁に起こらないため、毎回やり方を Google で調べ直すことになります (または、メモしておいて、そのメモがどこにあるか思い出してください)。また、rEFInd は特定のカーネル バージョンのアイコンを「役に立つ」形で作成することがあり、すぐに無関係になる傾向があります。この動作を防ぐか、少なくとも事後に削除する方法が文書化されていると思いますが、使用をやめたので覚えていません。これは私の経験に過ぎませんが。

幸運を!

関連情報