UEFIベースのシステムで、GPTフォーマットのシステムドライブ上の* buntuオペレーティングシステム用にLVMを使用してマルチブート環境を作成するにはどうすればよいですか?


9

私がLVMを使用する理由は、OSのインストールを再インストール、アップグレード、一般的にいじくり回しているため、LVMを使用すると、関連するリスクなしに、自由にOSパーティションを移動、拡張、複製、バックアップできるというすばらしい柔軟性が得られることがわかりました。他のパーティショニング方法と。ただし、特に新しいハードウェアでは、OSのマルチブートが少し複雑で予測不能になる場合があり、プロセスがさらに複雑になります。

私が話しているのは、新しいUEFI(BIOSではなく)マザーボードです。これにより、3TB以上のハードドライブ(MBRではなくGPTでフォーマットされている場合)の能力を最大限に活用して起動できます。マシンに新しいOSをインストールするたびに、以前のインストールのEFIブートローダー(.efi)ファイルが上書きされ、EFIに一連の壊れたエントリが残るため、物事は信じられないほど複雑でめちゃくちゃになる可能性があります「BIOS」ブートリストと、パーティションに散らばっているかなり冗長なGRUBブートローダーのロード。これは非常に多くのレベルで私を不快にさせます、特にその美的レベルで。

回答:


6

注:これはOPの答えでした。ここをCWとして下に移動したので、閉じられませんでした。MODがこれを認識した場合は、OPの所有権を自己回答として親に変更してください。

以下では、これをすべてうまく調和させ、混乱をある程度整理する方法を詳しく説明します。

パート1:インストール。

お使いのマシンにWindows 7(または8?)をインストールする場合は、おそらく最初に、できればそれ自体のハードドライブにインストールする必要があることに注意してください。論理ボリュームグループ。これは、Windows 7 GPT / EFIインストーラーが非常に基本的であり、ここで実行するようなことを実行できないためです。Windowsのインストール後、サイズを変更してパーティションを分割し、マルチブートインストールに必要なパーティションを追加できます。Windowsが作成するEFIシステムパーティションは、以下で説明する方法のバリエーションを使用して、Linuxのインストールに常に再利用できます。

まず、gparted(など)を使用して目的のシステムドライブをワイプし、それをGPTディスクとして初期化してから、他の作業を行うことができます。非グラフィカルパーティショナーを使用してディスクを最初からセットアップすることに少し不安がある場合は、これは間違いなく価値があり、標準のライブデスクトップUSBまたはCDインストーラーから簡単に実行できます。Windowsでは行わないでください。これが絶対に必要かどうかはわかりませんが、私がやったことです。この段階でも、LVM以外のパーティションの基本的なパーティション分割を実行できます。問題がなく、適切なインストールのためのフレームワークが提供されます。

次に、インストールCD / USBを書き込みます。Ubuntu代替デスクトップISO(推奨)を使用している場合は、USBスティックでは機能しないため、これをCDに書き込む必要があります。LVMのインストールに使用すると、aptitude / taskselを使用してソフトウェアのロードとインストールを開始しようとすると、重大なエラーで停止します。何が良いかわかっている場合は、CDを使用してください。

  • Ubuntu ServerはすべてのケースでUSBから完全に正常にインストールされます(AFAIK)が、サーバーの上にUbuntu / Mythbuntuデスクトップシステムを構築する場合、さまざまな種類の意図しない癖が生じ、整理に時間がかかります。それがあなたが求めているものなら、それでデスクトップに固執してください。

  • Quantal(12.10)には、グラフィカルインストーラーのオプションとしてLVMがあり(これはすばらしいことです)、Alternate ISOは廃止されました。ただし、手動のパーティション分割インターフェースは柔軟性がなく、LVMオプションがないため、マルチブートでは機能しませんでした。これは、前述のUSBの問題が原因である可能性がありますが、正直なところ、私が試したQuantalシステムで多くの問題が発生したため、すぐに諦めてPrecise(12.04.1)に戻りました。

  • 他の主なオプションは、ネットブートインストーラーを使用することです。これは、実際の経験はありません(私のRaspberry Piを除く)が、テキストベースのインストーラーとGUI(GTK)インストーラーを備えたミニISOがあると思います。焼いて起動することができます。これらは、ほとんどのインストールファイルをリポジトリから直接取得し、高度にカスタマイズ可能です。

次に、「BIOS」またはブートメニュー(通常はキーボードの[F8]〜[F12]の1つ)からUEFIブートエントリを使用して、CDまたはUSBからシステムを起動する必要があります。

インストールプロセスの準備をするのはあなた次第ですが、パーティション分割の部分に到達したら、手動パーティション分割を選択してから、これらのパーティションを作成(または、すでにいくつか作成している場合は変更)します。

  1. サイズが200MBの単一パーティション、FAT32、EFIシステムパーティション、「EFI」という名前/ラベルが付けられ、起動可能、フォーマット。

  2. いくつかのパーティション:サイズ256MB、EXT2、起動可能、フォーマット。

    • それらが表すOSごとに、名前を付けるかラベルを付ける必要があります。つまり、「OS_01_Boot」...「OS_03_Boot」...などです。

    • これらの最初のものを「/ boot」としてマウントし、他のすべてを「使用しない」としてマウントすることから始めます。

    • インストールするOSごとに1つのパーティションを作成します。

  3. LVMのボリュームとして、ドライブの残りのスペースを占める1つのパーティション。

    • パーティションを作成したボリュームにLVMを構成し、すべてのOSのボリュームグループを作成して、適切な名前とすべてのOSに十分なスペースを割り当てます。それぞれに計画しているインストールのタイプに応じて、それぞれに少なくとも40GBを考慮することをお勧めします。
  4. システムの物理RAMと同じサイズ、つまり8GBの論理ボリュームを1つ作成し、「Swap」という名前を付け、swap形式として使用します。

  5. ボリュームグループ内のOSごとに1つの論理ボリュームを作成し、上記のようにサイジングして、それぞれに名前を付けます(例:「Ubuntu_12.04」)。

    • それぞれをEXT4にフォーマットし、必要に応じてパーティションに名前/ラベルを付けます。

    • これらの最初のものを「/」(ルート)としてマウントし、その他すべてを「使用しない」としてマウントすることから始めます。

それでおしまい!これで、システム用のスワップ、「/ boot」、「/」(ルート)パーティション、および後続のインストール用のスペアが用意できました。これで、変更をパーティションテーブルにコミットし、残りのインストールを続行できます。

次のOSのインストールに関しては、次の "/ boot"および "/"(ルート)パーティションをそれぞれマウントすることを確認してください。前回使用したものを含め、他のすべてのものを「使用しない」としてマークしてください。

パート2:UEFIブートファイルのバックアップ。

新しいOSで起動したらすぐに、後で使用するためにUEFIブートローダーをバックアップし、次回のインストールで上書きされないようにする必要があります。これは、通常「ubuntu」という名前の独自のフォルダー内の「/ boot / efi / EFI」にあります。問題のファイルは、PCのアーキテクチャに応じて、「grubx64.efi」のような名前になります。私のマシンでは、「/ boot / efi / EFI / ubuntu / grubx64.efi」です。

私の場合、バックアップするために、次のようにコンソールからコピーしました。

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Ubuntu_12.04.1

念のため、ホームフォルダまたは他の安全な場所にさらにコピーを作成することは間違いなく価値があります。

cp -r /boot/efi/EFI/ubuntu /home/user/Ubuntu_12.04.1

これが完了すると、次のオペレーティングシステムを安全にインストールできます(上記のアドバイスに従います)。これにより、元のファイルとフォルダーが上書きされ、それ自体が「BIOS」のデフォルトのUEFIブートエントリになります。このプロセスを必要なだけ繰り返し、各フォルダーに異なるが代表的な名前を付けます。

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Server_12.04.1
cp -r /boot/efi/EFI/ubuntu /home/user/Server_12.04.1

パート3:UEFI "BIOS"のUEFIエントリの変更。

端末から次のように入力します。

sudo efibootmgr

次のような出力が表示されます。

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0000* ubuntu
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

本当にそれは自明です。BIOSブートリストに表示される内容を反映しているはずです。

以下をお読みください。

man efibootmgr

コマンドの機能を確認するには、以下のコマンド例を変更して、ブートエントリを追加および削除します。

まず、「Boot0000 * ubuntu」行を次のように削除します。

sudo efibootmgr -b 0000 -B

出力:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

次に、3つのオペレーティングシステムのエントリをいくつか追加します。

OS#1:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu 12.04.1" -l \\EFI\\Ubuntu_12.04.1\\grubx64.efi

出力:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0000* Ubuntu 12.04.1

OS#2:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu Server 12.04.1" -l \\EFI\\Server_12.04.1\\grubx64.efi

出力:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0001* Ubuntu Server 12.04.1

OS#3:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Mythbuntu 12.04.1" -l \\EFI\\Mythbuntu_12.04.1\\grubx64.efi

出力:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0002,0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0002* Mythbuntu 12.04.1

起動順序変更するには:

sudo efibootmgr -o 0000,0001,0002,0006,0007,0005

出力:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0001,0002,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0002* Mythbuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

できた!

特にファイルパスの周りにはかなり奇妙な構文が含まれていますが、適切なガイド(これがそうだといいのですが)があれば、かなり簡単です。

読んでくれてありがとう。:)

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#efibootmgr


ありがとう、AbrahamVanHelpsing。私は自己回答を試みていましたが、私はここではあまりにも初心者だと思います。これについては後で整理します。フォーマットはひどい!ここは午前1時30分なので、とりあえず諦めます!
Rich.T.

2

以前または他のOSのEFIブートローダーファイルを消去するOSインストーラーは、完全に破損しています。Ubuntuには以前この問題がありましたが、バージョン12.04で修正されたと思われます。(私が「想定している」と言うのは、これらの行に沿って少数のシステムでバグがまだ存在している可能性があると思わせる問題のレポートをいくつか見たからです。)とはいえ、EFIシステムパーティション(ESP)をバックアップする前に新しいOSのインストールは便利な保険です。EFIはブートセクターに配置されたコードに依存しないため、ファイルレベルのバックアップで十分です。(それはない何かがESPを削除し、新しいもの、動作を停止する可能性があるEFIのブートローダーエントリを作成している場合は、しかし、パーティションのGUIDに依存しています。)

大まかに言って、あなたのタイプの構成については、ESP、/boot必要な数のパーティション、そして大きなLVMパーティションを作成することをお勧めします。Linuxディストリビューションを他のOSと一緒にインストールする場合は、サイズが異なる3つまたは4つのLVMパーティションを作成して、1つのボリュームグループにマージします。このようにして、ボリュームグループから1つのパーティション(論理ボリューム)を引き出し、Linux以外のOS専用にすることができます。非LVM /bootパーティションには、LVMを理解しないブートローダー(つまり、非GRUB2ブートローダー)を使用するオプションがあります。

新しいOSをインストールすると、おそらくデフォルトで独自のブートローダーがインストールされます。あなたのような複雑な設定では、これはおそらくほとんどの場合間違っていることです。修正するには、お好みのブートローダーがインストールされたUSBフラッシュドライブまたはCD-Rを用意しておくと役立ちます。rEFItやその派生rEFIndなどの他のブートローダーを自動検出できるものは、このコンテキストでうまく機能する可能性があります。(rEFIt WebサイトのバイナリはMacでのみ機能することに注意してください。rEFIndは、UEFIベースのPCにとってより安全な選択です。)または、さらに、ファイルを移動できるため、EFIシェルを起動する方法が役立つ場合があります。ブートオプションを調整し、EFIシェルからいくつかの問題を修正します。多くのEFIブートローダーとブートマネージャーは、EFIシェルを起動できます。(見る一部のEFIシェルへのダウンロードリンクについては、このArch Linux wikiを参照してください。)rEFItおよびrEFInd CDイメージの両方にEFIシェルが含まれています。


2

2 + TBディスクを起動するためにEFIを使用する必要はありません。GPTを使用して、2Tbマークの下に1 MBのbios_grubパーティションを作成するだけです。EFIに問題があるとわかった場合は、これが効果的です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.