web-dev-qa-db-ja.com

WindowsとLinuxのデュアルブートシステムでEFIパーティションを拡大するにはどうすればよいですか?

UEFIモードで起動するシステムにWindowsとLinuxをインストールするつもりです。

Linuxの場合、私は次のことを行うつもりです。

  • lTSカーネルとメインラインがもたらす現在のバージョンをインストールします

  • systemd-bootを使用する

そのため、最終的に、Windowsのインストール中に作成されるEFIパーティションのデフォルトサイズ(100 MB)はかなり混雑します(約94 MBが使用されます)。したがって、私は上記のパーティションを拡大したいと思います。 ディスクレイアウトの標準的な推奨事項では、そのMSRパーティションはEFIパーティションの直後に配置されます のように、MSRパーティションを削除しました。その後、Win 10は起動せず、Win 10USBドライブのブート修復プログラムでブートの問題を修復できました。

しかし、コアの問題は、diskpartまたはGParted(Xubuntu 16.04.1 USBドライブ上)のいずれかを使用してEFIパーティションを拡大できないことです。実行するとextend size=100 diskpartでは、次のように表示されます。

OEMESPまたはリカバリパーティションを縮小することはできません。選択したボリューム[その他].。

GPartedはエラーをスローします

gnu partedは、このパーティションのサイズをこのサイズに変更できません。私たちはそれに取り組んでいます

EFIパーティションを拡大するために必要な手順またはその「単純な」シーケンスを知っている人はいますか?

2
henry

うまくいく可能性のある問題を回避する2つの方法を考えることができます。しかし、どちらのアプローチも完璧でも、それほど簡単でもありません。

方法#1

この方法はかなり基本的です:

  1. ESPをバックアップします。ファイルベースのバックアップで十分です。
  2. ESPをアンマウントします。
  3. sgdisk -i 1 /dev/sdarootと入力して、GUIDのESPを見つけます(この例では、ESPは最初のディスクの最初のパーティションです-/dev/sda1。別のパーティションの場合は、-i 1を適切に変更する必要があります。/dev/sda以外のディスクの場合は、その部分も変更する必要があります。)このコマンドは、Partition unique GUIDとして識別される1行を含む、さまざまな情報を表示します。その値を保存します(GUID値の記録と再作成はコンピューターの組み込みブートマネージャーの利益のために行われます。efibootmgrを使用してブートマネージャーエントリを再作成する場合は、この手順と以下の手順6を省略できます。)
  4. ESPを削除します。
  5. 希望のサイズの新しいESPを作成します。これは、ESPとその上の新しいファイルシステムの両方を意味することに注意してください。
  6. gdiskまたはsgdiskを使用して、新しいESPのGUIDを変更します。たとえば、sgdisk -u 1:2C17D5ED-850D-4F76-BA31-47A561740082 /dev/sdarootとして)が変更されますGUID of /dev/sda1から2C17D5ED-850D-4F76-BA31-47A561740082。
  7. 新しいESPをマウントします
  8. バックアップしたファイルをESPに復元します。
  9. 必要に応じて、/etc/fstabを編集して、ESP(FATファイルシステムの場合は実際にはディスクシリアル番号)の新しい「UUID」を記録します。blkidを使用して新しいシリアル番号を見つけます。

gdisksgdiskなどの一部のパーティションツールでは、使用中のディスクへの変更をOSが認識する前に再起動が必要になる場合があることに注意してください。したがって、ターゲットディスクにパーティションがマウントされていない状態で、緊急ディスクブートを使用する必要があります。または、パーティションの削除および作成操作にGPartedなどのツールを使用します。 (パーティションのGUIDを変更しても、再起動が必要な変更は行われません。)

この手順では、特にバックアップファイルに不注意がある場合、壊滅的な障害が発生するリスクがあります。また、問題が発生した場合、コンピュータは一時的に起動できなくなります。 USBフラッシュドライブに私の rEFIndブートマネージャー のコピーがあると、このような緊急時に役立ちます。

方法#2

diskpartでこれを試したことがないので、何がその警告をトリガーしているのかわかりません。しかし、それはmightパーティション属性です(libpartedが「フラグ」と呼ぶ2つのもののうちの1つ)。 「システムパーティション」のようなものは、おそらくパーティションツールがパーティションに触れることを拒否する原因となる可能性があります。 partedまたはGPartedを使用して、これらのフラグを探すことができます。ただし、フラグが表示されるかどうかはわかりませんall。パーティションに「boot」(および新しいバージョンのlibpartedでは「esp」)以外のフラグがある場合は、余分なものを削除することを検討してください。または、gdiskを使用すると、次の属性が表示されますall

  1. gdisk /dev/sda(またはディスクのIDが何であれ)をrootと入力します。
  2. pと入力して、パーティションテーブルを表示します。
  3. iと入力して、パーティションの詳細を表示します。パーティション番号を指定するように求められます。パーティションに関する詳細を含む数行が表示されます。
  4. Attribute flags行を探します。フラグが存在しない場合、この行には0000000000000000の値が表示されます。その場合は、gdiskと入力してqを終了できます。ただし、属性が表示されていて、それらを削除したい場合は、先に進んでください。
  5. xと入力して、エキスパートメニューに入ります。
  6. aと入力して、属性を変更します。パーティション番号の入力を求められます。それを入力してください。
  7. 6つの既知の属性のリストと、設定されている属性の概要が表示されます。変更するフィールドの番号を入力します。
  8. 編集を停止するシグナルとして値を指定せずにEnterキーを押すまで、前の手順が自動的に繰り返されます。
  9. wと入力して終了し、変更を保存します。 (混乱したと思われる場合は、qと入力して、変更を保存せずに終了します。gdiskは、wを使用してディスクに書き込むように指示するまで、変更をメモリに保持します。 、したがって、ほとんどのアクションを簡単に中止できます。)
  10. 安全のため、再起動してください。
  11. ESPをバックアップします。
  12. GPartedを使用してESPのサイズを変更します。

問題がパーティション属性ではない可能性があり、私の経験では、GPartedがFATファイルシステムのサイズを変更すると破損することが多いため、このアプローチは最初のアプローチよりも機能する可能性が低くなります。その最後の点を過小評価してはなりません。 GPartedが混乱した場合、バックアップからすべてを復元する必要があり、この手順は両方の方法の最悪の側面になります。 OTOH、GPartedがESPのサイズ変更に成功した場合、この方法は前の方法よりも少し簡単でリスクが少ない可能性があります。

さらなるコメント

もちろん、Windowsをまだインストールしていない場合は、もっと簡単な方法でやりたいことができます。ESP手動でbefore Windowsをインストールする前に]を作成します。次に、ESPを好きなだけ大きくします。

別のアプローチは、systemd-boot以外のものを使用することです。そのブートマネージャーは、それが格納されているパーティション以外からカーネルまたはブートローダーを起動できないため、非常に制限されています。 (少なくとも、前回見たときはこのように制限されていました。質問の性質上、まだ制限されていると思われます。最近はレビューしていません。)どちらでもないGRUBもrEFIndもこの制限に悩まされているため、セットアップが簡単です。少なくとも、systemd-bootが必要とするようなパーティション操作は必要ありません。

1
Rod Smith