EFIシステムパーティションを別のドライブに移動する


14

UEFIをブートとして使用して、HDDにWindows 8をインストールしました。HDDには次のGPTテーブルがあります。

DISKPART> list partition

Partizione ###   Tipo              Dim.     Offset
---------------  ----------------  -------  -------
Partizione 1     Ripristino         300 Mb  1024 Kb
Partizione 2     Sistema            100 Mb   301 Mb
Partizione 3     Riservato          128 Mb   401 Mb
Partizione 4     Primario           390 Gb   529 Mb
Partizione 5     Primario           540 Gb   390 Gb

(私はそれがイタリア語であることをおizeびしますが、翻訳は非常に簡単です)。

最近、SSDドライブを購入して接続し、新しいWindows 8をインストールしました。現在、デュアルブートが機能していますが、UEFIパーティションはSSDではなくHDD上にあります。SSDパーティションリストは次のとおりです。

Partizione ###   Tipo              Dim.     Offset
---------------  ----------------  -------  -------
Partizione 1     Riservato          128 Mb  1024 Kb
Partizione 2     Primario           221 Gb   129 Mb

最善の解決策は、次の2つの理由でSSDに搭載することだと思います。

1つ目はパフォーマンスです(HDDのスピンアップ時間が原因で、SSDでは少し速くなると思いますが、それについて間違っている可能性があります)。

2番目の理由は一貫性です。SSDにあるWindows 8インストールのみを使用する予定であり、おそらくデータストレージデバイスとして使用するためにHDDのシステムパーティションを消去するので、ブートパーティションは同じ場所にあるべきだと思いますOSとしてドライブします。

質問は、EFIシステムパーティションをSSDにどのように移動するかです。

回答:


4

気にしないことをお勧めします。ESPから読み取られるファイルは小さく、コンピューターの起動時にのみ読み取られるため、パフォーマンスの向上はごくわずかです。さらに、パーティション自体は現代の標準では小さいため、努力するだけの価値がある十分なスペースを回復することはできません。さらに、ESPを移動しようとすると、起動の問題が発生するリスクがあります。これは、移動からの起動時間を短縮できる可能性がある場合よりも修正に時間がかかります。

先に進み、私の推奨にもかかわらず学習体験としてこれを行いたい場合は、以下を調べる必要があります:

  • 任意のパーティショニングソフトウェアでESPを作成します。標準のWindowsツールを使用してこれをどのように行うかはわかりません。ではgdiskタイプEF00のパーティションを作成しますgdiskが、パーティション専用ツールであるため、FATファイルシステムを作成する必要があります(ファイルシステムは処理しません)。
  • 両方のESPを同時にマウントしてファイルをコピーします(または一時ストレージを使用して順番に)。LinuxやEFIシェルからは簡単ですが、Windowsでこれを行う方法はわかりません。(実際、EFIシェルでは自動的に行われます。)
  • ブートローダーを新しいホームに登録します。(フォールバックファイル名を使用するEFI\BOOT\bootx64.efiと、おそらくより簡単な代替手段になりますが、ブートローダーをロードする方法としてはあまり好ましくありません。)Windows bcdeditコマンドとEFIシェルのbcfgツールは両方ともブートローダーを登録できます。ただし、bcdeditWindowsはESPを1つだけサポートし、ESPのコピー時に問題が発生するため、柔軟性がありません。

ご回答ありがとうございます。HDDを取り外すことを決定するかもしれないので、私は実際にSSDにESPを持つことを好みます。だから、ESPはOSドライブにあるべきだと思う。とにかく、最新のポイントはどのように行われますか?
ピンコパリーノ

気にしないで、パーティションをSSDに移動し、Windowsを定期的に起動しました。どうもありがとうございました!
ピンコパリーノ

一般的なHOWTOで何が起こっているかを説明するのに非常に役立つと思われる興味深い情報がいくつかありますが、実際には「EFIシステムパーティションをSSDに移動する方法は?」私は数年前に悪い決断から立ち直ろうとして人生の何日かを過ごしましたが、それでも私を悩ませています。要するに、EFIパーティションを再配置することになるので、良い答えが見たいです。
rainabba

注目すべきは、2つのEFIパーティションがあると、Windows Updateが非常にわかりにくい方法で失敗することがあるため、移動後に古いパーティションを削除することです。
ジャックワシー

14

私のようなGoogleから来ている人の場合:はい、サードパーティ製のツールなしでWindowsでこれを行うことができます。Windows 10 Pro x64でテスト済み。この手順を使用して、EFIシステムパーティションとシステム予約済みパーティションの両方を移動しました。Windows 8でも動作するはずです。

プライマリドライブにスペースが不足している場合は、最初にC:パーティション(または同等のもの)を縮小する必要があります。この例では260 MBを使用していますが、これは新しいドライブが必要とするものですが、小さいセクターの古いドライブでは100 MBしか必要ありません。スペースを空ける必要がない場合は、スキップするステップを示すコメントに注意してください。

作業中に、システム予約パーティションを移動することをお勧めします。これらは通常1000 MBであり、便利なWindowsメタデータを保存します。一部のWindows機能は、システム予約パーティションがないと機能しない場合があります。プライマリドライブにそのようなパーティションを作成する手順を含め、それらの手順にコメントを付けました。スキップしたい場合は、これらの手順を簡単に除外する必要がありますが、縮小するときに数値を変更する必要があります(たとえば、1260 MBではなく260 MB)。

コメントにはREMcmd.exeとdiskpart.exeの両方でサポートされているため、コメントの先頭に「注釈」が付いています。

管理者として実行されているcmd.exeから:

diskpart
list disk
REM Choose the appropriate disk number from the list.  If you're unsure, you can open diskmgmt.msc; the numbers will be the same.
sel disk 0
list part

REM Perform the following only if you need to shrink a partition to make space for the EFI partition.
REM Choose the appropriate partition from the list.  I used my C: partition.
sel part 2
shrink desired=260
REM End of shrinking operation.

REM Create a new EFI partition:
create part efi size=260
format quick fs=fat32
list vol
REM Find your newly created volume in the list.  If it's not already selected (marked with an asterisk), select it now with "sel vol #".
REM You'll need to give the volume a drive letter for later:
assign
list vol
REM Note the drive letter that the volume has been given.  Mine was F:, so I'll use that in the example.
REM Done creating new EFI partition.

REM Optionally create a new System Reserved partition:
create part msr size=1000
REM Done creating new System Reserved partition.

REM We're done with diskpart.exe:
exit
REM You should no longer see the DISKPART> prompt.

REM Note that you may need to change these drive letters, particularly F:.  F: should match the volume you created previously.
bcdboot C:\Windows /s F: /f UEFI

REM We no longer need a drive letter for the EFI partition, so we should remove it:
diskpart
list disk
REM Change disk number appropriately.
sel disk 0
list vol
REM Change volume number appropriately.
sel vol 2
REM Remove drive letter assignment:
remove
REM Exit diskpart.exe:
exit

REM Exit cmd.exe:
exit

すべてが機能することを確認するために、再起動します。変更に合わせて、BIOSのブート順序設定を更新する必要がある場合があります。私の場合、BIOS設定はすでに正しいので、再起動ループで立ち往生しました。コンピューターを起動するたびに、置き忘れたEFIパーティションがある古いドライブを手動で選択する必要がありました。

すべてが期待どおりに機能した場合、古いEFIパーティションを削除できます。動作しなかった場合、またはBIOSが古いパーティションから起動するように構成されている場合、diskpart.exeでオーバーライドフラグを使用しても、Windowsはそれを削除させません。おそらくとにかくその古いパーティションを削除したいので、削除することは新しいパーティションから起動していることを確認するのに最適な方法です。

diskpart
list disk
REM Change disk number appropriately.
sel disk 2
list part

REM You can repeat this next group of steps to delete as many "special" partitions as you like.  I had 4 reserved partitions from an old OEM installation.  Just make sure you don't delete your data!  The "override" flag is only necessary for partitions that can't normally be deleted.
REM Change partition number appropriately.
sel part 1
del part override

REM When you're done, exit diskpart.exe:
exit

REM Exit cmd.exe:
exit

2
非常に詳細かつ十分に説明された答えで、うまくいきます!ありがとう!
kumarharsh

2

これは古い投稿であることは知っていますが、多くの人がまだ良い答えを求めていると思います。

これはWindows 7、8、10に適用されます。また、EFIパーティションがアクティブなOSでバックアップされるディスク以外のディスクにある場合、イベントID 12290にも有効です。

最初にEFIパーティションを含む他のドライブを切断してください。そうすれば、誤ってそのドライブを変更することはありません。

次に、EFIパーティションを常駐させたいディスク上に100-300MBの新しいパーティションを作成する必要があります。ドライブがいっぱいの場合、最初に既存のパーティションの1つを縮小する必要があります。

私の場合、USBスティックからライブでxubuntu 13(12.1より上のubuntu)を起動します。インストールしないでください。

Gpartedを開き、パーティションを作成してFAT32にフォーマットします。ドライブを「ブート」としてフラグを立て、「ブート」としてフラグを立てられた他のパーティションのフラグをすべて解除します。また、可能であれば、新しいパーティションにドライブ文字を割り当てます。そうでない場合は、後でdiskpartで実行できます。

再起動して、WindowsインストールDVDからWindows(RE)リカバリで起動します。コマンドプロンプトに移動します。Gpartedでできなかった場合は、diskpartを起動し、新しいパーティションにドライブ文字を割り当てます。diskpartを終了しますが、コマンドプロンプトのままにします。

ここで、新しいパーティションにnessesaryファイルをコピーします。

{bcdboot / S:/ f UEFI}スペースに注意してください!

例:{bcdboot c:\ Windows / s:/ f UEFI}

このコマンドは、パーティションのEFIステータスも表示します。

次のコマンドを使用してBCDを再構築します。

{bootrec / RebuildBcd}

ここで、EFIパーティションに追加するOSを尋ねられたら、含めたいものには「はい」、起動したくないものには「いいえ」と言います。私の場合、最近Windows 10にアップグレードしました。ご存知かもしれませんが、Windowsは、古いWindows 7/8を自分で削除していない場合はしばらく保存します。古いOSのこのコピーは、通常起動できるようなものではありません。通常、Windows.oldにあります。したがって、「すべて」の選択肢を選択しないでください。

わかりませんが、このコマンドはWindowsインストールのみを検索すると思います。たとえば、同じコンピューターでLinux OSを入手した場合。それから、あとでbcdeditのようなものを使用して、ブートを実行する必要があります。

私が使用しなかった最後のコマンドがあります。

{bootrec / fixboot}

私はコマンドについてもっと詳しく学ぼうとしましたが、efiパーティションにブートフラグを設定し、ブート可能にするだけだと思います。これは、Gpartedでefi-partitionをブートとしてフラグを立てたときと同じです。

不要になった別のefiパーティションがあった場合、最も簡単な方法は、linux / gpartedを再度起動して、そこから削除することです。


私にとっては、毎回bootrec /fixboot同じファイルが見つからないというエラーが発生するまで、すべてが完璧に行われます。
kumarharsh

Windowsは、別のドライブにあるときにWindowsパーティションを自動的にマウントしないため、ブートが常に失敗するようです。
-Jeroen

1

正規のW10インストールISO(DVD)を使用して、新しいSSDディスクに新規インストールを作成しました。インストールは、GPTではなくMBRタイプになりました。セキュアブートが必要だったため、この新しいインストールを(データ損失なしで)MBRからGPTに変換する必要がありました。

次に、ディスクの最後にある最後のNTFSパーティションを縮小して空き領域(260 MB)を作成しました(USBスティックからSystemRecueCDからLinuxを起動し、gpartedを使用しましたが、Windows 10のディスクマネージャーも使用できます)。

次に、この新しい小さなパーティションをFAT32にフォーマットしました(WindowsまたはLinuxでも実行できます)。元のEFIからこの新しいパーティションにファイルをコピーしました(WindowsではC:というドライブ文字の付いた2枚のディスクが好きではないので、Linuxでコピーしました)。

次に、Linuxでgdiskを使用してMBRをGPTに変更しました。gdiskを使用した後、この小さなパーティションをef00(EFI)と入力し、起動可能としてマークする必要があります(1つのみであるため、元の起動可能ドライブCから起動可能フラグを削除する必要があります)。

次に、実際にEFIで起動することを確認するために、ノートブックのセットアップの起動タイプをUEFIのみに変更しました。いくつかのファイルが欠落しているため(名前に「efi」が含まれる)、Windowsは起動しませんでした。

次に、Windows 10インストールDVDから起動し、「Rescue system」を選択してから、「Fix boot issues」のようなものを選択しました。その後、Win10は問題なく起動しました。bcdbootによる手動の介入は不要です。

EFI構成は、Linuxのefibootmgrユーティリティで確認できます。


0

さて、さらに別のソリューションを追加しましょう。私の目的は、EFIパーティションをコピーするだけでなく、他の隠されたパーティションも考慮に入れることでした。注文が重要かどうかはわかりません(私は個人的にmsdnで説明したものとは異なります)が、w / eです。

とにかく、私は偉業のためにGParted Liveを使用しました。起動したらC:、新しいディスク上で見つからないパーティションと同じ量のMiBのWindowsメインパーティション(あるべき)を減らし、最後に移動します。これには時間がかかります。

その後、私は新たに1つのリサイズちょうど下に新しい16MiBパーティションを作ることを進んddマイクロソフトパーティションを予約する(ための理由 partedの未フォーマットFSを処理できないようにそれはそう)。いつものように、ddを使用するときは、コマンドに非常に注意してください。

完了したら、GParted GUIに戻り、新しいMSRパーティションの正しいフラグと名前を手動で設定してから、元のパーティションを削除しました。最後になりましたが、最後に、リカバリとEFIパーティションを元のHDDからSSD にコピーし(名前/フラグ操作を繰り返し)、実行sgdisk -sしてパーティションの順序を修正しました。

再起動して利益を得よう!efibootmgrやbcdbootをいじる必要はありません。少なくとも私のラップトップでは、新しいESPが自動的に見つかりました。

編集:最初のディスクを拡張する場合、何らかの理由でWindowsディスクマネージャーがダイナミックディスクに変換します。この回避策を確認してください

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