EFIシステムパーティションを作成する方法


34

TL; DR EFIシステムパーティションをゼロから作成するにはどうすればよいですか?EFIファームウェアが作成されたら、それをどのように配置しますか?

ロングバージョン

Toshiba T430ラップトップを持っています。Windows 7をインストールした状態で受け取りました(ただし、元々はWindows 8に同梱されていたと思います)。Ubuntuをインストールしましたが、ディスク上のパーティションをいくつか削除したため、Windowsを完全に消去し、Ubuntuのみを削除しました。削除されたパーティションには、EFIシステムパーティションが含まれていました。Ubuntuがレガシーモードで起動することを発見しました(UEFIではありません)。UbuntuインストールをレガシーからUEFIに変換する際に、このガイドに従うことを試みています。。問題-UEFIを使用して起動するBIOSから選択するたびにEFIパーティションがないため、起動できません。これは、ハードドライブだけでなく、USBとDVDにも当てはまります。これは論理的だと思います-EFIパーティションが必要であり、それを見つけることができないため、HDDでもDVDでもブートを続行できません。それでは、EFIパーティションをどのように再作成しますか?

上記のガイドには次のように書かれています:

EFIパーティションを作成する

Ubuntuインストーラーでディスクを手動でパーティション分割する場合は、EFIパーティションが設定されていることを確認する必要があります。

  1. ディスクにすでにEFIパーティションが含まれている場合(コンピューターにWindows8がプリインストールされている場合など)、Ubuntuでも使用できます。フォーマットしないでください。ディスクごとにEFIパーティションを1つだけにすることを強くお勧めします。

  2. EFIパーティションは、最新バージョンのGParted(12.04ディスクに含まれているGpartedバージョンでも構いません)を介して作成でき、次の属性が必要です。

    1. マウントポイント:/ boot / efi(注:手動パーティション設定を使用する場合、このマウントポイントを設定する必要はありません。Ubuntuインストーラーが自動的に検出します)

    2. サイズ:最小100Mib。200MiBを推奨。

    3. タイプ:FAT32

    4. その他:「ブート」フラグが必要です。

このパーティションの作成に問題がありました:

  • ライブのUbuntu DVDから起動し、GPartedを開き、200MBのパーティションを作成してFAT32にフォーマットします。
  • GPartedでは、マウントポイントを設定できないため、ブートフラグを設定できません。
  • マウントポイントは/etc/fstabライブCDであり、fstabは通常のブートと比較して予想とはまったく異なるため、マウントポイントを設定しませんでした。とにかく、設定する値を知りませんでした。

ライブDVDから再度起動し、Ubuntuのインストールを選択しました。次に、前述の基準(マウントポイント、200MB、FAT32、ブートフラグ)でパーティションを作成しました。

ただし、この問題が引き続き発生するのは、そのパーティションにEFIファームウェアがなく、EFIファームウェアを使用するのに適した空のパーティションだからだと考えられます。

繰り返しになりますが、EFIソフトウェアを備えたEFIパーティションを作成して、ラップトップがUEFIモードで再度ブートできるようにするにはどうすればよいですか?

解決策答えてくれてありがとう。私がしたことは、ディスク全体をフォーマットしてからWindows 8.1をゼロからインストールし、次に(今回は)適切にUbuntuをその隣にインストールすることでした。これらは今私のパーティションです:

ディスクパーティション

Win 8のセットアップ中に、既存のパーティションをすべて削除し、Windowsがディスクを再フォーマットするとすぐに、メインインストールパーティションに加えて、3つの追加パーティション、つまり1、2、3が自動的に作成されました。 、UEFIモードでHDDまたはDVDの両方から起動できました。

ESPはデフォルトでは情報を保存しないと言いますが、OSがインストールされると、そこに情報が置かれると思います。だから、私は次のようなケースだったと思います:ESPの作成はOSがインストールされた後に行われたので、私はそれを一掃しましたが、再作成しても情報は何もありませんでした。Ubuntuのインストールを失いました(大したことはありませんが、とにかく新規インストールでした)が、保存するためにはgrawityのアドバイスに従うべきだったと思います。時間がありませんでしたが、幸いなことにすべてがうまくいきました。


1
ESPはブートローダーを保存します。したがって、既存のインストールを取得してESPを削除すると、コンピューターを起動できなくなります。-この種の問題は修正に実際にはかなり簡単であるのIFあなたはどのように知っています!
ロッド・スミス14年

さて、私の質問がすべてでした:)
アレックスポポフ14年

回答:


37

まず、GPartedでマウントポイントを設定しません。これは、mountコマンドを使用して手動で(および一時的に)、または編集して永続的に行われます/etc/fstab。したがって、この問題に対するあなたの懸念は見当違いです。

次に、EFIシステムパーティション(ESP)は、特定のタイプコード(GPTディスク上のC12A7328-F81F-11D2-BA4B-00A0C93EC93B)が設定された単なるFATパーティションです。マウントポイント/etc/fstabはESPの定義の一部ではないことに注意してください。LinuxでESPにアクセスすることは/boot/efi、通常は/etc/fstabエントリを介してにマウントすることでLinuxで行われます(ただし必須ではありません)。タイプコードの設定方法は、プログラムによって異なります。

  • gdisk、タイプコードをEF00に設定します。(gdiskディスク上の実際のタイプコードに展開される2バイトタイプコードを使用します。「EF00」は、「C12A7328-F81F-11D2-BA4B-00A0C93EC93B」のニーモニックです。)
  • GPartedまたはpartedで、「ブートフラグ」を設定します。ただし、これはGPTディスクでのみ機能することに注意してください。これらのプログラムを使用してMBRディスクにESPタイプコードを設定することはできません。(EFIベースのコンピューターは通常GPTディスクから起動するため、これは通常大した問題ではありません。)
  • Ubuntuインストーラーでは、パーティションを「EFIブートパーティション」として識別します。その後、型コードを設定し、設定します/etc/fstab適切に。
  • Linuxの最近のバージョンではfdisk、パーティションタイプを番号(GPTディスクの「EFIシステム」の場合は1、MBRディスクの0xEFの場合)またはGPTディスクの完全なタイプコードを入力して設定します。

第三に、ESPはファームウェアを保持しません-ファームウェアは、定義上、マザーボード上のチップに保存されます。したがって、ESPにEFIファームウェアをインストールする作業は、ガチョウの追跡です。(この規則には2つの例外があります。まず、お使いのコンピュータのファームウェアをアップデートするために、ESP上のファームウェアファイルを保存することがあります。これは、けれども、単に一時的な保持領域である。第二に、DUETまたはクローバーのブートローダーは、 EFIは、ESPから、通常、定期的なプログラムとしてロードされているこれらのツールは、彼らがEFIマシンであるかのように起動するBIOS-コンピュータのみを可能にする、しかし、BIOSのブートローダーであり、彼らはありません通常、EFIファームウェアを搭載したコンピューターで使用されます。技術的には、DUETもCloverもファームウェアではありません。EFIと同じジョブを実行するBIOSブートローダーです。)

最後に、私はあなたの問題の多くの考えられる原因を考えることができますが、それ以上の情報がなければ、すべてをカバーするために本を半分書く必要があります。コンピューターでブート情報スクリプトを実行することをお勧めします。これにより、というファイルが作成されRESULTS.txtます。投稿ペーストビンサイトおよびドキュメントへのURLとポストバック。これにより、構成に関するハードデータが得られ、問題の考えられる原因の範囲が大幅に削減されます。


gdisk「タイプコードをEF00に設定」する方法
B七つの

@BSeven t1ef00
ホッブズ

11

EFIパーティションはファームウェア(マザーボード上のチップに保存されています)を保持しません。インストールされたオペレーティングシステムのブートローダーを保持します。これは基本的に、BIOS PCの場合のように、ディスクの0番目のセクターにブートローダーを配置するEFIの代替手段です。

つまり、このようなパーティションを作成したら、オペレーティングシステムをインストールすると、自動的にパーティションがいっぱいになります。(インストールディスク自体もEFIモードで起動する必要がありますが、そうでない場合はUEFIブートを設定する必要はありません...実際、セットアップの特定の部分はBIOSモードからも実行できません。)

すでにUbuntuがインストールされている場合、次のことを行う必要があります。

  1. GRUBのUEFIバージョンをインストールします。私が思うに、それはであるgrub-efi-amd64-signedパッケージ。

    grub-install --target=x86_64-efi-signed
    

    (署名なしgrub-efi-amd64バージョンの場合は、x86_64-efiです。)

  2. GRUBが\EFI\Boot\bootx64.efiEFIシステムパーティションのように自身をインストールしたことを確認してください。(ここではEFIパス構文を使用しています/boot。Linuxでパーティションをマウントする場合、になります/boot/EFI/Boot/bootx64.efi。)

    そうでない場合は、grubx64.efi手動でその場所にコピーします。

    grub-installシステムがすでに EFIモードで起動してない限り、EFI起動メニューに自分自身を追加できないため、これが必要です。(「EFI変数」はBIOS moedではアクセスできません。)したがって、GRUBをブートする唯一の方法は、「フォールバックブートローダー」の場所に置くことです。

  3. リブート。ファームウェアのブートメニューで何らかのEFIモードを選択してみてください(EFIファームウェアには、GRUBの前でも独自のブートメニューがあります)。

  4. dmesg | grep "efi:"EFIモードになっていることを確認するために、何かが表示されているかどうかを確認します。


1
古いスレッドを表示するつもりはありませんが、問題の解決策を見つけようとしていて、このスレッドに出くわしました。デルのコンピューターのBIOSファームウェアを更新しようとしていますが、デルはそれをWindows形式のEXEまたはEFI形式のパーティションに配置する必要のあるファイルとして提供しています。つまり、「リムーバブルメディアデバイスのEFIパーティションにファイルをダウンロードする」ように求められます。OPがこれを意味しているかどうかはわかりませんが、最初の段落であなたが言ったことを指摘したかっただけです。
レイ

@Ray:将来のファームウェアをこのパーティションにダウンロードしてます。コンピューターの電源を入れても、実際のファームウェアとしてはまだ使用されていません。マザーボードに書き込み/フラッシュする「ファームウェアアップデータ」プログラムのデータファイルとして使用されるだけです。(このような指示が「ファイルをMS-DOSブート可能フロッピーディスクにダウンロードする」または何かを言ったことを覚えていますか?まあ、そのディスクもメインBIOSを保持していませんでした。ここでも同じです。)
荒廃

1
はい、知っています。私は、OPが必ずしも間違っていたわけではなく、単に不正確だったと言っているだけだと思います。同様に、ファームウェアはチップに保存されているので、EFIパーティションに将来のファームウェアを保存するよう求められています。しかし、説明に不注意な人は、ファームウェアがEFIに保存されていると言うことができます。(つまり、完全に間違っているのではなく、半分間違っている)
Ray

2

メモ帳で2つのファイルを作成し、USB Windowsインストールドライブに保存します。
SaveAs:CreatePartitions-UEFI.txt

select disk 0  
clean  
convert gpt  
rem == 1. System Partition  =====================  
create partition efi size=210  
format fs=fat32 quick label=”SYSTEM”  
active  
rem == 2. Microsoft Reserved (MSR) partition  ======  
create partition msr size=16  
rem == 3.  Windows partition  ===================  
create partition primary size=xxxxxx   
format fs=ntfs quick label=”Windows”   
assign letter=”W”  
rem == 4. Recovery tools partition  ================  
create partition primary size=460  
format fs=ntfs quick label=”Recovery”  
assign letter=:R”  
list volume

メモ帳で別のテキストファイルを作成します
。SaveAs:diskpart-UEFI.txt

diskpart /s D:\CreatePartitions-UEFI.txt   

REM where D:/ is the usb drive. This command runs the text file to install the partitions.

MBRを使用している場合、コマンドはmbrに変換されます。

Windowsパーティションのサイズを取得するには、HDサイズに1024を掛け、100ギガバイトのハードドライブに1024を掛けると、102400-210(efiサイズ)-16(msrサイズ)-460(予約サイズ)を入れたサイズに等しくなりますWindowsパーティションサイズ。(xxxxxx)

ターミナル(コマンドプロンプト)からパーティションサイズを変更できますcd / d D:> notepad CreatePartitions-UEFI.txt

USBドライブでメモ帳diskpart-UEFI.txtを開いて開いている間、開いたままにするか、コマンドを書き留めて、間違いをしないようにします。パーティションのサイズを希望どおりに変更したら、それを閉じてから、cd / dx:/ Sourcesを実行し、diskpart / s D:\ CreatePartitions-URFI.txtを実行します。
最後のコマンドでパーティションが表示されるので、ボリュームをリストします。幸せな場合は、終了>コンピュータの電源をオフ>再起動>インストールします


-2

gnome-disksパッケージ "gnome-disk-utility"を使用すると、非常に便利です。


2
スーパーユーザーへようこそ!私はDV-erではありませんが、1行の回答がうまくいく場合がありますが、回答を編集して説明を含めるとうまくいきます:)彼らはgnome-disk-utilityでEFIシステムパーティションをどのように作成しますか?
ベルティエブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.