web-dev-qa-db-ja.com

UEFIを使用して2つの独立したUbuntuインストールを単一のハードドライブにインストールする方法を教えてください。

セキュリティ上の理由から、UEFIを使用して単一のハードドライブコンピューターに完全に独立したセカンダリオペレーティングシステムをインストールしたいと思います。両方のインストールで、異なるLUKS暗号化パーティションをルートデバイス(暗号化の上のLVM)として使用でき、独自のカーネルを使用できる必要があります。

2つの異なるオペレーティングシステムでデュアルブートを行うことは大したことではありません。 UbuntuとFedoraは干渉せず、EFIシステムパーティションを共有できますが、2つのUbuntuインストールは、同じEFIロケーションに両方のGrubインスタンスをインストールするため、互いに競合します。

  • インストール中に/boot/efi/EFI/ubuntuとは異なる場所にGrubをインストールするようにUbuntuを変更する方法はありますか?パッケージの更新とカーネル/ grubの更新がそのパスにインストールされるように、永続的な方法が必要です。 FedoraのGrubが/boot/efi/EFI/Fedoraにインストールする方法と同じです。 Grubにその構成オプションが見つかりません。できれば、Dell UEFIブートメニューを使用して、ロードするOSを選択できます。おそらく、ここでefibootmgrとgrub-efiの間に接着剤が足りません。

  • あるいは、2つのUbuntuインストールの1つから単一のGrubインストールを使用して、適切なブート設定を自動的に検出することは可能ですか?つまり、os-proberは他のカーネルの/bootパーティションを見つけることを知っていますが、そのOSの正しいブートパラメーター(たとえば、ルートファイルシステムとしてロックされた暗号ボリューム内のLVMボリューム)を知るにはどうすればよいですか?暗号化されていない単一パーティションのインストールでは理解できますが、/bootを対応するルートファイルシステムと一致させることはできません。暗号化されている場合、それは完全に不可能です。そのため、grub構成ファイルの多くの手動調整が必要になります。また、単一の共有ブートローダー構成のこのオプションが嫌いなので、2つのオペレーティングシステムの分離度がある程度低下します。

ちなみに、サーバーテキストベースのエキスパートインストールは問題ありません。また、カーネル/ Grubの更新ごとに手順を繰り返す必要がない限り、カスタム構成もいくつかあります。

8
gertvdijk

私は2つの提案があります...

オプション#1:別のESP

EFIでは、ブートローダーは "the"にあります EFI System Partition(ESP)。 単語 "the"を引用符で囲みます。これは、1つのESPに限定されるというルールがないためです。ハードディスクに2つのESPを作成する場合、1つを最初のインストールに使用し、2つ目のESPを2つ目のインストールに使用できます。これはかなりシームレスに機能するはずですが、少なくとも2回目のUbuntuインストールでは、手動でパーティションを作成する必要があります(インストール中に「その他」オプションを使用)。

このアプローチの問題の1つは、EFI仕様では、必要な数のESPを作成できることを明示的に示しているものの、一部のソフトウェアが混乱する可能性があることです。この顕著な例の1つは、少なくともWindows 7を介したWindowsインストーラーです(Windows 8以降については知りません)。 Windows 7インストーラーが2つのESPを備えたディスクを検出すると、フレークアウトして奇妙な動作をします。 IIRC、独自のインストールを適切に完了しません。 Windowsの修復ツールが同じ問題に苦しむことも考えられます。このシステムでWindowsを起動していない場合、これは大した問題ではありません。 Windowsで起動する場合、単に問題を認識する必要があります。これは、非-問題が発生した場合は、Windows ESP。 Windowsは、複数のESPを搭載したディスクで正常に起動することに注意してください。そのようなディスクを詰まらせるのはインストーラーだけです。

もう1つの問題は、2つのディストリビューションを切り替える方法です。 GRUB Customizer。 などのツールを使用して、インストールのGRUBセットアップの一方または両方をカスタマイズする必要がある場合があります。別の(ただし、互換性のない)オプションは、ファームウェアのブートマネージャーを使用することです2つのGRUBインストールを切り替えて、それぞれを使用してUbuntuの独自のバージョンのみを起動します。

オプション#2:GRUB(または少なくともUbuntuのGRUB_ツールを放棄)

GRUBの問題は、2つのインストールがあり、GRUBメンテナンスツールがその構成によって混乱する可能性があることです。この観察により、これらのツールを使用しないでくださいという明らかな解決策が導き出されます。 Linux用の他のいくつかのEFIブートローダー があり、そのほとんどはGRUBよりも手動で保守する方が簡単です。 ELILO、SYSLINUX、Fedoraのパッチを適用したGRUB Legacy、gummiboot、またはrEFIndをセットアップし、両方のインストールを手動で管理できます。実際、rEFIndは起動するたびにカーネルを検出するため、rEFIndはセットアップ後にメンテナンス不要に近いはずです。または、同様の方法で、GRUBセットアップスクリプトに依存するのではなく、grub.cfgファイルを手動で編集して、必要な処理を実行できます。

REFIndとは別に、これらのツールはすべて、カーネルを更新するたびに構成の変更を行う必要があります。これはドラッグになります。また、追加のブートプログラムをいつどのようにインストールするかという問題もあります。それぞれのインストールがGRUBの独自のコピーをデフォルトのブートローダーとして登録し、そのデフォルトを上書きしたいので、私はおそらく2回目のUbuntuインストールまで延期するでしょう。

また、これらのツールはいずれも暗号化されたファイルシステムまたはLVMからカーネルを読み取ることができないため、Ubuntuのインストールごとに暗号化されていない/bootパーティションが必要です。これは、暗号化されたUbuntuインストールをセットアップするために私が見たほとんどの指示であるため、ディスク暗号化の「ブリーディングエッジ」でプレイしたい場合を除き、おそらく大したことではありません。

一部のEFIブートローダーには、追加の特定のパーティション分割またはファイルシステム要件があります。最も注目すべきは、ELILO、SYSLINUX、およびgummibootはすべて、FATパーティションに常駐するカーネルを必要とし、ESPがこれに最適です。 ESPを/bootにマウントすることでこれを行うことができますが、一部のパッケージの更新にはシンボリックリンクが必要なため、これはUbuntuの不確かなソリューションです。また、2つの別々のUbuntuインストールでこれを行うのは困難です。どちらも同じファイルを要求しようとするためです。 (この場合、「ESP」は実際には「ブートローダーが実行されたパーティション」を意味するため、この場合はESPを1つだけ持つことができます。)GRUB LegacyおよびrEFIndこれについてより柔軟です。

私の推薦

個人的には、このためにrEFIndを使用しますが、rEFIndを維持しているため、私はまったく公平ではありません。実際、3台のUbuntuインストール間でマルチブートするコンピューターがあり、rEFIndはそれらの間でうまく切り替えます。この特定のシステムは暗号化を使用しませんが、それがrEFIndの観点から新しい問題を引き起こすかどうかは疑っています。

そうは言っても、GRUBカスタマイザーを使用してこれらの少なくとも1つのGRUBコピーの設定を調整する必要があるかもしれないという注意事項で、個別のESPも正常に機能するはずです。

6
Rod Smith

以前にRod Smithが推奨したオプション#2を使用して、UEFIを備えた単一のハードドライブ上で、2つのLUKS暗号化Ubuntuシステムでデュアルブートするために使用した手順を次に示します。これは、Ubuntu 18.04.1-desktopで特にそうでした。 eCryptfsの信頼性とメンテナンスに懸念があるため、インストール中にホームディレクトリ暗号化がオプションとして提供されなくなりました。代わりにLUKSを使用することをお勧めします。そのため、複数のユーザーに暗号化されたホームパーティションを持たせるための最良の選択肢だと思います。

    1. ライブUSBで起動します。これは、ISOをダウンロードし、Startup Disk Creatorを使用してUSBドライブをフォーマットおよびセットアップすることによって行われました。
    1. GPartedを使用してディスクをパーティション分割します。これは、 https://help.ubuntu.com/community/ManualFullSystemEncryption の推奨事項に基づいており、フルディスクのディスク暗号化を選択するときにUbuntuインストーラーによって設定されたデフォルトの一部を使用しています。
      • EFI System Partition/512MiB/FAT32/boot、esp(フラグ)
      • ブートシステム#1/732MiB/EXT4
      • ブートシステム#2/732MiB/EXT4
      • 暗号化されたデータ#1/[望ましいサイズ] /クリア
      • データ暗号化#2/[望ましいサイズ] /クリア
    1. Live USBに再起動します
      • Ubuntuをインストールする
      • インストール設定を選択する
      • パーティションディスクレイアウトに「その他」を選択し、インストールのパーティション構成内で:
        • 下部のメニューでブートローダーとして「EFI System Partition」を選択します。
        • [データ暗号化#1]を選択し、[暗号化用の物理デバイス]を選択して、パーティションに使用する暗号化フレーズを入力します。
        • EXT4で新しく作成されたパーティションを選択し、マウントポイントを「/」に変更します。
        • 「Boot System#1」を選択し、そのマウントポイントを「/ boot」にします。
      • 続行してインストール
    1. 新しいインストールで再起動します
      • 「apt-get install refind」で「refind」をインストールし、ESP「EFI System Partition」に自動的にインストールします。
    1. Live USBに再起動します
      • 2番目のUbuntuインストールをインストールする#2ブートシステムとデータ暗号化#2パーティションに対して、手順3と4を繰り返します。
    1. 必要に応じて、各インストールを構成およびアップグレードします。
1
brihoriq

単一のESPで次のアプローチを使用します。

OSごとに追加のブートローダーを作成しました

Sudo grub-install --bootloader-id=ID

オペレーティングシステムごとに異なるIDを使用します。

例:

Ubuntu 16.04とUbuntu 18.04がインストールされています。 Ubuntu 16.04を起動して実行します

Sudo grub-install --bootloader-id=Ubuntu1604

次に、Ubuntu 18.04に起動してから実行します

Sudo grub-install --bootloader-id=Ubuntu1804

UEFI設定では、Ubuntu1604およびUbuntu1804という名前の新しいブートエントリが表示され、ブート順を並べ替えて、新しいエントリの1つを最初に設定します。

また、ESPでこの名前のフォルダーを見ることができます。

システムアップグレードに新しいバージョンのgrubが同梱されると、ESPのubuntu- folderにgrubの新しいインスタンスが再インストールされます。自分で作成したブートローダーには影響しませんが、再配置する必要がありますubuntu- entryがブート順の最初の場所にプッシュされるため、ブート順が再び行われます。

これは私の構成でefibootmgr -vが示すものです:

〜$ efibootmgr -v 
 BootCurrent:0001 
 Timeout:0秒
 BootOrder:0001,0002,0004,0000,0003,0005 
 Boot0000 * ubuntu HD( 1、GPT、249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000)/ File(\ EFI\ubuntu\shimx64.efi)
 Boot0001 * US1804 HD(1、GPT、249ac0f6-d3e4-4b91- 91d5-6e8d63c093c3,0x800,0x9a000)/ File(\ EFI\US1804\grubx64.efi)
 Boot0002 * US1604 HD(1、GPT、249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000) (\ EFI\US1604\grubx64.efi)
 Boot0003 * UEFI OS HD(1、GPT、249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000)/ File(\ EFI\BOOT\BOOTX64.EFI )
 Boot0004 * US1904 HD(1、GPT、249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000)/ File(\ EFI\US1904\shimx64.efi)
 Boot0005 * ubuntu HD (1、GPT、249ac0f6-d3e4-4b91-91d5-6e8d63c093c3,0x800,0x9a000)/ File(EFI\Ubuntu\grubx64.efi)
0
mook765