web-dev-qa-db-ja.com

UEFIモードでhddをインストールしたUbuntu 13.04 x64を起動するために、grub2をusbドライブにインストールします

UEFIファームウェアの設定を変更したり、プレインストールされたWindows 7を置き換えたりすることなく、PCをUEFIモードでUbuntuで起動できるように、grub2をusbドライブにインストールする方法を探していました。 grubを使用したx64ブートローダー。 Ubuntu 13.04 x64 live-dvdセッションから実行した場合の、gpartedで指定された内部SSDドライブの現在のgptパーティションレイアウトは次のとおりです。

/dev/sda1 100mb fat32 /boot (efi system partition)

/dev/sda2 128mb --- /msfres (Windows 7 reserved partition)

/dev/sda3 100gb ntfs (Windows 7 system partition)

/dev/sda4 10gb ext4 (Ubuntu root '/' partition)

これまでのところ、ライブDVDをUEFIモードで起動し、Ubuntuのルートパーティションを作成して(上記を参照)、インストーラーに512 MBのUSBペンドライブ(/ dev/sdi)にgrubを配置するように指示しました以前に次のようにgpartedでフォーマットされていました。1)gptパーティションレイアウトを作成します。 2)単一のプライマリパーティションを作成します。 3)パーティションをfat32としてフォーマットします。 4)パーティションフラグを「/ boot」として設定します。

Ubuntuインストーラーにgrubを/ dev/sdi1にインストールするように指示しました(前に作成したパーティション-前の1 mbは未使用スペースだったため)。ただし、USBペンを差し込んだ状態でUbuntuインストーラーの完了後、PCを再起動すると、ファームウェアブートメニューがペンをUEFIデバイスとして検出しましたが、Windows 7の起動に進みました-UbuntuまたはGRUBメニューはありません。

Googleのソリューションを試してみましたが、UEFIシステムでWindowsとLinuxをデュアルブートする方法の詳細を提供するサイトがたくさんありますが、それらはすべて、UEFIファームウェア設定を変更したり、Windows 7を交換できると想定していますブートローダー(PCを所有していないため、どちらのオプションも使用できません)。

したがって、システムファームウェアの設定を変更したり、既存のWindowsを変更/置き換えたりすることなく、UEFIモードでUbuntuパーティションを起動できるように、grub2をusbペンにインストールする詳細な手順を教えてください7ブートローダー?

システムボードはASUS Z87-K(bios rev 0412)、SSDは120gb OCZ-Vertex3(ファームウェアrev 2.15)です。

更新:UEFIファームウェアでセキュアブートが有効になっていることがわかりました(Windows 7(および「ライブモード」のその他のOS)が正常にブートされたため、オフになったと仮定しました)。私はこのPCを所有していないので、セキュアブートをオフにできないので、今のところUbuntuのインストールの試みを放棄する必要があります。 12.04.2以降shouldセキュアブートが有効になっているPCでブートできますか?セキュアブートを無効にしてUbuntuの正常な起動を妨げる問題を絞り込むことはできないため、この質問は公開しておきますが、今後インストールしようとするものはすべて自分のハードウェアで行われるため、より深く実験する自由があります。

回答したすべての人に感謝します!

3
Paul H

あなたはほとんどそこにいます。 usbなどのリムーバブルメディアは、bootloacer /EFI/Boot/bootx64.efi(x64アーキテクチャの場合)を使用して、ブート可能なEFIパーティション(および合計ではなく、デバイスごとに1つのブート可能なEFIパーティション)からブートします。 /EFI/ubuntu/grubx64.efiを/EFI/Boot/bootx64.efiにコピーし、grub.cfgのコピーを/EFI/ubuntu/grub.cfgにコピーするだけで起動します。もちろん、必要に応じてハードディスクを起動するようにgrub.cfgを設定する必要があります。単にハードディスクのインストールからgrub.cfgをコピーするだけで機能しますが、カーネルを更新するたびに再コピーする必要があるため、/ EFI/ubuntu/grub.cfgを保守された/ boot /をインポートする数行にすることができますgrub/grub.cfg(13.04のように思います)。 *セキュアブートの場合、/ EFI/Boot/bootx64.efiにshim.efiを使用し、/ EFI/BootにもSIGNED grubx64.efiのコピーを用意します。 grub.cfgは同じ場所/ EFI/ubuntuにあります。ライブメディアはこのメカニズムを使用して起動するため、動作する場合、この方法は動作します。

1
ubfan1

Boot-flagで2つの/ bootパーティションを設定することはできません!/bootパーティションのgrub2に必要なboot-flagは1つだけです。したがって、パーティション/ dev/sda1のboot-flagを単純に無効にしてください。

この後、/ dev/sdi -sureの/ bootパーティションのboot-flagを有効にしますか?これは正しいです ?/dev/sdiに/ bootパーティションがありますか?そのため、ブートフラグを有効にする必要があります(単にgpartedを使用)。

あなたが言うように... grub2はすでに/ dev/sdiにインストールされていますか?今は続かない場合(ブートフラグを変更したために必要):

Sudo grub-install/dev/sdi

Sudo update-grub2

この前に、すべてのマシンは/ dev/sda1を介して/ dev/sda3のWindows 7で起動していましたが、今ではboot-flagが非アクティブになり、/ dev/sdiの/ bootパーティションに設定されています。 USBドライブ。

UEFIモードでマシンがUSBドライブを起動できない場合のみ-BIOS設定でUEFIモードを無効にし、代わりにEFIモードを有効にする必要があります。

1
dschinn1001

「/ bootフラグ」などはありません。 GPartedおよびpartedには「ブートフラグ」(先頭にスラッシュはありません)がありますが、この用語はせいぜい混乱させます。 GParted/parted「ブートフラグ」は、実際にパーティションにタイプコードを設定して、それが EFIシステムパーティション(ESP)、 であることを識別する方法です。 。 dschinn1001が言っていることに反して、notLinuxのタイプコードを設定する必要があります/bootパーティションをESPコードに分割します。 1つのディスクに複数のESPを置くことは合法ですが、Windowsはそのようなセットアップにアレルギーがあるので、これにはお勧めしません。 ESPにはFATファイルシステムが必要です(技術的にはFAT32ですが、実際にはFAT16が実際に動作します)。したがって、Linux /bootパーティションがFATを使用しない限り、not/bootパーティションにGParted/parted "boot flag"を設定します。

GRUBをUSBフラッシュドライブにインストールすることは技術的には可能ですが、少し制限があります。問題は、GRUBのハードコーディングされた構成であり、これには2つのオプションがあります。

  • GRUBは、grub.cfgバイナリと同じディレクトリ(つまり、USBフラッシュドライブ)でgrubx64.efiを検索するように構築できます。ただし、grub.cfgにはあらゆる種類のシステム固有の詳細が含まれているため、これは通常1台のコンピューターでのみ動作します。
  • GRUBは、ハードディスク上でgrub.cfgを探すように構築できます。これは、より多くのコンピューターで動作する可能性がありますが、各コンピューターに動作するgrub.cfgファイルがあり、すべてのシステムの同じ場所にある必要があります。したがって、すべてのコンピューターでは機能せず、同様の方法で構成されたコンピューターでのみ機能します。

Ubuntuはgrubx64.efiバイナリをビルドして、2番目の方法で動作します。 ubfan1の手順はGRUBを構築する最初の方法を想定しているため、カスタムビルドのGRUBバイナリ(またはFedoraまたは動作する他のディストリビューションから取得したGRUBバイナリでのみ動作します。この方法では)。 OTOH、システムが適切に構成されている場合、ubfan1の手順は2番目の方法で機能する可能性がありますが、grub.cfgをUSBフラッシュドライブにコピーしても意味がありません。

汎用の緊急ブートディスクを探している場合、GRUBは本当に最適なソリューションではありません-少なくとも、 Super GRUB 2 Disk EFIサポートが提供されるか、他の誰かが同様の何かを作成します。現時点では、緊急EFIブートディスクの最適なオプションはmy rEFIndブートマネージャーです。 このプログラムは、コンピューター上の他のEFIブートプログラムのリストを作成し、それらを起動できるようにします。その結果、EFI NVRAMエントリを失った場合でも、ハードディスクにインストールされている任意のブートローダー(GRUB、ELILO、Windowsブートローダーなど)からブートできるようになります。ただし、ブートローダーは適切に設定する必要があります。

バージョン3.3.0以降のLinuxカーネルには組み込みのEFIブートローダーが含まれているため、rEFIndはそれらを直接起動することもできます。問題は、rEFIndがカーネルに渡すオプション、最も重要なことはLinuxルートファイルシステムを把握する必要があるということです。カーネルがルートファイルシステムにある場合(つまり、個別の/bootパーティションがない場合)、またはrEFInd固有の構成ファイル(refind_linux.conf)が同じディレクトリに存在する場合、rEFIndはこれを把握できます。カーネル。 Ubuntuは通常、個別の/bootパーティションを使用しないため、USBフラッシュドライブまたはCD-RのrEFIndは通常Ubuntuを直接起動でき、GRUBよりも柔軟で簡単にセットアップできます。緊急用。 (rEFIndページには、CD-RおよびUSBフラッシュドライブイメージの ダウンロードリンク が含まれています。)より複雑なセットアップを行っており、ルートファイルシステム(または他のカーネル)の名前を覚えている場合起動する必要があるオプション)、F2またはInsertを2回押すことで編集または追加できます。これにより、ラインエディターが開き、カーネルのオプションを変更できます。

0
Rod Smith