Windowsの機能のみを利用しEFIシステムパーティションを任意のディスクに移動する事ができましたので、覚書を共有させていただきます。
【注意】
ある程度コンソール操作などの知識がある方向けです。
間違うとWindowsが起動しなくなりますのでこの覚書を鵜吞みにせずご自身でステップを検証し実行してください。
仮想環境や壊れてもいいサブPCなどで何度か実行しうまくいくかテストする事を強くおすすめします。
また、私はこの覚書を実行した事により生じたいかなる不利益、トラブル、その他いかなる損失について一切の責を負いません。
自己責任で実行してください。
EFIシステムパーティションの移動手順
1.移動先にEFI用のパーティションを作成する
「ディスクの管理」から移動先の空きがあるパーティションを右クリックし「ボリュームの縮小」をクリックし「縮小する領域のサイズ」を100と設定し「縮小」ボタンを押します。
この時のディスクの番号を覚えておきます。
2.新しいEFIパーティションの作成
PowerShellまたはコマンドプロンプトを管理権限で開き「diskpart」を実行します。
次に「select disk ?」を実行します。(?は1で覚えておいたディスク番号です。)
次に「create partition efi」を実行します。
次に「list partition」を実行し、100~102MBのシステムパーティションの番号を覚えます。
次に「select partition ?」を実行します。(?は前ステップで覚えたパーティション番号です。)
次に「format fs=fat32 quick」を実行します。
次に「assign letter=z」を実行します。(=zはドライブレターの割り当てです、好きに変更してください。)
次にもうひとつPowerShellまたはコマンドプロンプトを管理者で開き「bcdboot C:\Windows /s Z:」を実行します。
「C:\Windows」はWindowsがインストールされているディスクをフルパスで指定します。
例えばWindowsがインストールされているディスクのドライブレターが「W」の場合は「W:\Windows」となります。
「/s Z:」は「assign letter」で指定したEFIパーティションのドライブレターです。
bcdbootを実行後「ブート ファイルは正常に作成されました。」と表示されたら成功です。
bcdbootを実行したコンソールは閉じて大丈夫です。
次に「remove letter=z」を実行します。(=zは「assign letter」で設定したドライブレターを指定してください。)
3.古いEFIパーティションの削除
USB回復ドライブを起動し「トラブルシューティング」から「コマンドプロンプト」を選択しコンソールを起動します。
USB回復ドライブはこちらの記事を参考に作成してください。
(資料ドスパラさま: https://repair.dospara.co.jp/blog/notes_recoverymedia3)
コンソールで「diskpart」を実行します。
次に「list disk」を実行し旧EFIパーティションが入っているディスク番号を覚えます。
次に「select disk ?」を実行します。(?は前ステップで覚えたディスク番号です。)
次に「list partition」を実行し100MBのシステムパーティションの番号を覚えます。
次に「select partition ?」を実行します。(?は前ステップで覚えたパーティションの番号です。)
次に「delete partition override」を実行します。
「DiskPart は選択されたパーティションを正常に削除しました。」と表示されれば古いEFIパーティションの削除に成功しました。
USB回復ドライブのメニューに戻り「続行」を押してUSB回復ドライブを終了します。
これでEFIシステムパーティションの移動が完了しました。