web-dev-qa-db-ja.com

EFIシステムパーティションのサイズを変更する方法

EFIシステムパーティションのサイズを750MiBに増やしたいので、Windows 10と一緒にArch Linuxをインストールすることができます。 Arch Linuxは/bootではなくESP /boot/efiにマウントすることをお勧めします。100MiBは/bootには小さすぎます。リカバリには触れたくありません。パーティション。

7
user18297

この質問は、Googleで「EFIシステムパーティションのサイズを変更する方法」の上位の結果の1つです(質問のタイトルを考えると、当然のことです)、現在の回答はここにありますが、OPの状況に関する適切なアドバイスと一般的に役立つ情報は含まれていません。実際に述べられているようにその質問に答えようとします。私の以前のかなり簡潔な(現在は削除されています)その質問に答えようとする試みは反対票が投じられたので、ここでより完全なものを示します。

明らかなこと(gpartedを使用)を試し、「GNU Partedはこのパーティションのサイズをこのサイズに変更できません。現在作業中です!」というエラーが発生したため、これを読んでいる可能性があります。 Windowsから(ディスクの管理を使用して)試してみたことがあるかもしれませんが、WindowsがESPでの操作をまったく拒否していることを発見しただけです。

さて、実際にパーティションのサイズを変更する次善の策は、パーティションを再作成することです。これを行うための詳細な手順は次のとおりです。

  1. 起動するディスクのESPのサイズを変更する場合は、何か問題が発生した場合にシステムを修復するために使用できる起動可能なレスキューメディアがあることを確認してください。バックアップが一般に、ディスクのパーティション化操作を行う前にデータを削除することをお勧めします。

  2. ESPを拡大する場合は、お気に入りのパーティション分割ツール(gpartedなど)を使用して、直接続くパーティションを移動またはサイズ変更して、スペースを確保します。

  3. ESPがまだマウントされていない場合は、マウントします。

    # mount /dev/sdx1 /mnt # replace sdx1 with ESP
    
  4. その内容のバックアップを作成します。

    # mkdir ~/esp
    # rsync -av /mnt/ ~/esp/
    
  5. ESPをアンマウントします。

    # umount /mnt
    
  6. ESPを削除して再作成します。

    # gdisk /dev/sdx # replace sdx with disk containing ESP
    p (list partitions)
    (ensure the ESP is the first partition)
    d (delete partition)
    1 (select first partition)
    n (create partition)
    Enter (use default partition number, should be 1)
    Enter (use default first sector, should be 2048)
    Enter (use default last sector, should be all available space)
    EF00 (hex code for EFI system partition)
    w (write changes to disk and exit)
    
  7. ESPをフォーマットします。

    # partprobe /dev/sdx
    # mkfs.fat -F32 /dev/sdx1
    
  8. ESPのコンテンツを復元します。

    # mount /dev/sdx1 /mnt
    # rsync -av ~/esp/ /mnt
    

それがすべてです。上記の手順を使用してESP ESPが小さすぎ(50 MB)で、Windowsが秋にアップグレードできないようにするWindowsインストールの場合) Creators 'Update(ESPのサイズを変更する前に、Windows Updateはエラー0x8E5E03FBで失敗し、Update Assistantはエラー0xc1900200で失敗しました)。

8

Archコミュニティは Freedesktop.orgブートローダー仕様 を心に留めています。 AFAIK、Archおよびその派生物はこれを行う唯一のディストリビューションであり、Archでさえ、それは必要ありません。ブートローダー仕様では、ESPなどの共有FATパーティションをLinuxカーネルを格納する場所として使用することをお勧めします。また、このパーティションで1つのディストリビューションのカーネルを別のディストリビューションから分離し、カーネルのブートローダー構成を管理するシステムも推奨しています。

ブートローダー仕様は、マルチブートコンピューターでのLinuxディストリビューションの共存に関するいくつかの実際の問題を解決する試みです。ただし、1つの主要なディストリビューションでのみ採用されているため、数年の存続後でも、実用的なメリットはありません。さらに、ブートローダー仕様はsystemd-bootブートマネージャーと密接に関連しており、Archコミュニティ以外ではあまり人気がありません。 systemd-bootにはいくつかの利点がありますが、それらの利点を理解するのに十分に精通しており、それらが必要であることを理解していない限り、(ESP /boot)systemd-bootの使用を有効にするだけです。さらに、systemd-bootには1つの巨大な欠点があります:後続のブートプログラム(Linuxカーネルを含む)は、元のパーティションからのみ起動できます自身を立ち上げました。つまり、systemd-bootを使用する場合、systemd-boot、Linuxカーネル、および他のOS(Windowsなど)のブートローダーを1つのパーティション(ESP)に格納することにかなりの努力が注がれるということです。これはブートローダー仕様のビジョンに準拠していますが、独自の問題を引き起こします。

つまり、ESPを拡大したい場合は、さまざまなツールを使用して拡大できます。ただし、これは、次のパーティションを開始点から縮小する必要があることを意味します。これは、パーティションを最後から圧縮するよりもリスクが高く、時間がかかるため、次のパーティションをバックアップすることをお勧めします強く。また、Windowsコンピューターでは、ESPに続くパーティションは、Microsoftの予約済みパーティションである可能性があります。これは、基本的にWindowsがスクラッチ領域に使用する空のパーティションです。通常、ファイルシステムはありません。そのため、ほとんどのパーティションツールでは圧縮できません。Windowsでは、特定のサイズ(100 MiBまたは128 MiB、IIRC)にすることが望まれます。代わりに、Microsoft Reservedパーティションに続くパーティションを圧縮し、Microsoft Reservedを削除する必要があります。パーティションを作成して、新しいOSを作成するこれはすべて1つの大きな手間であり、新しいOSのインストールに伴うリスクを大幅に増大させます。

代わりに、newESPディスク上の別の場所に作成します。ArchLinux用のスペースを作成したら、 Arch Linux用の新しいESPおよびその他のパーティション)を作成できます。使用するブートマネージャーに応じて、ArchとWindowsのESPを分離するか、Windowsブートを移動できます。ローダーファイルを新しいESPに削除し、元のESPを削除または再利用します。systemd-bootは、それ以外のパーティションにあるブートローダーを起動できないため、理由がESP as /bootは、systemd-bootを使用したいということです。systemd-bootから起動する場合は、Windowsブートローダーを新しいESPに移動する必要があります。また、最後のチェックしたとき(これはWindows 7であったため、これは当てはまらない可能性があります)、Windowsインストーラーが非常に混乱し、ディスクに2つのESPが表示されると誤動作し、そのようなディスクへのWindowsのインストールを不可能にしました。このような問題は、Windows以外のESPのパーティションタイプコードを一時的に変更することで簡単に解決できますが、この回避策に注意する必要があります。

要するに、ArchコミュニティはESP at /bootを使用して、systemd-boot経由で(多くの場合)起動されるLinuxカーネルを格納します。このアプローチでは、複雑さが増し、大きなメリットはほとんどまたはまったくありません。全体として、おそらくGRUB 2または私自身の rEFInd、 を使用する方が良いでしょう。どちらも小さなESP My Linux用EFIブートローダー ページでは、Linuxブートローダーとブートマネージャーのオプションについて詳しく説明しています。

7
Rod Smith

デュアルブートOSには少し問題があります。

最初に提案できることは、既存のEFIシステムパーティションを使用しないことです。これでWindowsが起動します。それを台無しにしないでください。

代わりに、ディスク管理を開き、Windowsパーティション(メインのパーティション)を(Arch Linuxで使用したい量だけ)圧縮します。通常、ディスクに十分なスペースがあるように見えても、縮小できる量には制限があります。この「問題」は他の場所で解決されているので、ここでは説明しません。どちらがどれかを覚えておいてください。例えば。大きな窓、小さなスペースは空です。

Windowsで高速起動を無効にすることを忘れないでください-これは、「高速起動」を実現するために、シャットダウンする代わりにPCを本質的に休止状態にすることです。代わりにLinuxを起動すると、Windowsシステムのデータが失われる危険があります。

Linuxインストール環境を(USBなどから)起動し、Windowsで作成した空きスペースをセットアップして、Linuxシステムパーティションにします。どのパーティションがどれかを覚えているだけです。例えば。誤ってWindowsパーティションを再フォーマットしないでください。上で記録したパーティションサイズを使用して再確認してください。

0
technotron101