UEFIを搭載した単一のハードドライブに2つの独立したUbuntuインストールをインストールするにはどうすればよいですか?


8

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

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

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

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

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

回答:


6

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

オプション#1:個別のESP

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

このアプローチの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.cfgで、GRUBセットアップスクリプトに依存するのではなく、ファイルを手動で編集して必要な操作を行うこともできます。

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

また、これらのツールはいずれも、暗号化されたファイルシステムまたはLVMからカーネルを読み取ることができない/bootため、Ubuntuインストールごとに個別の暗号化されていないパーティションを用意する必要があります。これは、暗号化されたUbuntuインストールをセットアップするために私が見たほとんどの手順で述べられている方法であるため、ディスク暗号化の「最先端」でプレイしたい場合を除いて、大したことではないでしょう。

一部のEFIブートローダーには、追加の特定のパーティション化またはファイルシステム要件があります。特に、ELILO、SYSLINUX、およびgummibootはすべて、カーネルがFATパーティションに存在する必要があり、ESPはこれに最適です。ESPを/bootにマウントすることでこれを実行できますが、パッケージの更新の中にはシンボリックリンクを必要とするものがあるため、これはUbuntuでの不明瞭なソリューションです。また、2つの個別のUbuntuインストールを使用してこれを行うと、両方とも同じファイルを要求しようとするため、問題が発生します。(この場合、「ESP」は実際には「ブートローダーが実行されたパーティション」を意味するため、この場合はESPを1つだけ持つことができます。)GRUB LegacyとrEFIndは、これについてより柔軟です。

私の推薦

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

とはいえ、個別のESPも問題なく機能するはずです。ただし、GRUBカスタマイザーを使用して、それらのGRUBコピーの少なくとも1つの設定を微調整する必要がある場合があります。


とても良い提案、ありがとう!仕様上、複数のESPを使用できることは間違いないと思いますが、私のDell Latitude UEFI実装でもサポートされているとは思いません。個々の単一ドライブごとにパスを参照することのみが可能です。私は実際にそれを試さなければなりません。
gertvdijk

デルのEFI実装が壊れて複数のESPを処理できない場合は、ストアに返品して払い戻しを受ける必要があります。真剣に; この種の悪いことは、ファームウェアがその最も基本的なタスクを実行することを信頼できないほどひどいことを示します。実際には、それほど悪くはないと思います。複数のESPを処理できないEFIについて聞いたことがありません。
Rod Smith、

1

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

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

1

1つの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とともにubuntu出荷されると、ESPの-フォルダーにgrubの新しいインスタンスが再インストールされます。自分で作成したブートローダーには影響しませんが、ブート順序を再調整する必要がありますubuntu-entryブート順序で最初の場所にプッシュされます。

これはefibootmgr -v私の構成に表示されるものです:

〜$ efibootmgr -v
ブート電流:0001
タイムアウト: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)/ File(\ 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)

それでもうまくいきませんでした。/ etc / default / grubのデフォルトをディストリビューションのように変更しGRUB_DISTRIBUTOR="Bionic_18_04"、grubの再インストールでUEFIのデフォルトIDとして使用します。しかし、毎回、デフォルトの場所として/EFI/ubuntu/grub.cfgのみを使用して、新しい/EFI/bionic_18_04/grub.cfgからではなく起動します。
oldfred

@oldfred私にとって、これはトリプルブートを実行して数年間問題なく動作します。
mook765

/ etc / default / grubの名前変更ではなく、コマンドを試してみました。違いはありませんでした。UEFIはデフォルトの新しいブートエントリに設定されています。しかし、新しい/ EFI / ubuntu1804フォルダーをグラブするのではなく、デフォルトのブートとしてディスコを使用する/ efi / ubuntuを使用してブートしました。私は違いを生むのはUEFIではないことだと思います。
-oldfred

@oldfred efibootmgr -v回答に追加した出力を見てください。できます。追加の変更により、それができない場合があります。私が説明したのは、それを機能させるために私が行う唯一のことです。
mook765

私はefibootmgr -vを確認しましたが、新しいエントリ用に設定されていましたが、/ EFI / ubuntuでGRUBを起動しました。鉱山は/EFI/ubuntu1804/shimx64.efiを起動しています。grubx64.efiまたはshimx64.efiを使用していますか、それはおそらく違いですか?セキュアブートはオフにしていますが、デフォルトでは最初のubuntu1804エントリとしてshimに設定されています。ある時点で、/ EFIに非常に多くのUEFIエントリまたはフォルダができてしまい、起動に問題が生じ、別のドライブでrEFIndを使用して起動する必要がありました。そのため、/ EFIフォルダーやUEFIのエントリに多くのものを入れたくありません。
-oldfred
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.