Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows 10のリカバリパーティションに阻まれて拡張できないボリュームを拡張する方法

テスト用の仮想マシンの1台で、システムドライブ(C:)の空き容量が不足していることに気づきました。そこで仮想マシン設定でディスクサイズを拡張し、ゲストOS(Windows 10)に切り替えて、未割り当て領域を使ってシステムパーティションを拡張しようとしました。しかし、ディスクの管理コンソール(diskmgmt.msc)を開いてみると、ドライブには2つのリカバリパーティションが存在し、未割り当て領域は2つ目のリカバリパーティション(「Windows RE」と表示)の後ろに配置されていました。リカバリパーティションがメインパーティション(C:)の後ろに位置しているため、未割り当て領域を使ってプライマリボリュームを拡張することができません。

UEFI搭載PCでリカバリパーティションを移動し、システムパーティションを拡張する方法

この仮想マシンでは、Windows 10がUEFIモード(パーティションスタイル:GPT)でインストールされています。

Windows 10のリカバリパーティションに阻まれて拡張できないボリュームを拡張する方法

下のスクリーンショットのとおり、「ボリュームの拡張」ボタンが無効(グレー表示)になっています。Windowsの標準機能でパーティションを拡張できるのは、その右側に未割り当て領域が隣接している場合のみです。今回のケースでは、C:ドライブがリカバリパーティション(Windows RE)に塞がれているため拡張できません。したがって、システムパーティションを拡張する前に、リカバリパーティションを削除する必要があります。

Windows 10のリカバリパーティションに阻まれて拡張できないボリュームを拡張する方法

スクリーンショットを見ると、2つのリカバリパーティション(RecoveryWindows RE)が存在します。どちらがWindowsによってアクティブなリカバリパーティションとして使用されているかを確認するには、パーティションにドライブ文字を割り当てます。たとえば、ディスクの管理またはdiskpart.exeを使ってE:R:のドライブ文字を割り当てられます:select disk 0 → select part 1 → assign letter r:。アクティブなリカバリパーティションを確認するには、次のコマンドを実行します。

bcdedit /enum all

出力結果のうち、以下のセクションに注目してください。

  1. Windows Boot Manager:BCDブートローダーが配置されているパーティションを示します。この例では、ブートローダーはEFIパーティション上にあります。
    Windows Boot Manager
    --------------------
    identifier {bootmgr}
    device partition=\Device\HarddiskVolume2
    path \EFI\Microsoft\Boot\bootmgfw.efi
    description Windows Boot Manager
    locale en-US
    inherit {globalsettings}
    default {current}
    resumeobject {dbaf5561-4424-11e9-b766-b7001b047795}
    displayorder {current}
    toolsdisplayorder {memdiag}
    timeout 30

    Windows 10のリカバリパーティションに阻まれて拡張できないボリュームを拡張する方法

  2. 次にWindows Boot Loaderセクションの値を確認します。回復環境のイメージファイル(Winre.wim)は、「Windows RE」というボリュームラベルが付いた2番目のパーティションに配置されていることがわかります。
    Windows Boot Loader
    -------------------
    identifier {dbaf5563-4424-11e9-b766-b7001b047795}
    device ramdisk=[E:]\Recovery\WindowsRE\Winre.wim,{dbaf5564-4424-11e9-b766-b7001b047795}
    path \windows\system32\winload.efi
    description Windows RE
    locale en-us
    inherit {bootloadersettings}
    displaymessage Windows RE
    osdevice ramdisk=[E:]\Recovery\WindowsRE\Winre.wim,{dbaf5564-4424-11e9-b766-b7001b047795}
    systemroot \windows
    nx OptIn
    bootmenupolicy Standard
    winpe Yes

Windowsのメインボリュームを拡張するには、その右側にあるリカバリパーティションを削除し、ボリュームを拡張した後、リカバリパーティションを作り直す必要があります。

ただし、リカバリパーティションを作り直す代わりに、多くの場合は回復環境のファイルをC:ドライブへ移動するだけで十分です。そうすれば、500MBのWinRE専用パーティションを完全になくすことも可能です。回復環境のファイルは、Windowsがインストールされているパーティション内に保存されることになります。

Winre.wimファイルをシステムボリュームにコピーし、新しいWinRE.wimの場所を登録するには、次のコマンドを実行します。

reagentc /disable
md c:\Recovery\WinRE
xcopy e:\Recovery\WindowsRE\Winre.wim c:\Recovery\WinRE /h
reagentc /setreimage /path c:\Recovery\WinRE /target C:\Windows
reagentc /enable

ディスクの管理のGUIからボリュームの削除をクリックしてリカバリパーティションを削除しようとしても(そもそも操作自体が行えない場合もあります)、次のエラーが表示されます。

Windows 10のリカバリパーティションに阻まれて拡張できないボリュームを拡張する方法

Virtual Disk Manager

Cannot delete a protected partition without the force protected parameter set.

Windows 10のリカバリパーティションに阻まれて拡張できないボリュームを拡張する方法

このように保護されたパーティションを削除できるのは、diskpartツールだけです。管理者権限のコマンドプロンプトを開き、diskpartコマンドを実行して、削除対象のパーティションを選択します(ディスク番号やパーティション番号は環境によって異なるため、各コマンドの実行結果を必ず確認してください)。

DISKPART> rescan
DISKPART> list disk
DISKPART> select disk 0
DISKPART> list part
DISKPART> select part 5
DISKPART> delete partition override

DiskPart successfully deleted the selected partition.

DISKPART> Rescan

overrideパラメーターを指定すると、diskpartはアクティブ、システム、ブートといったパーティションの種類に関係なく、あらゆるパーティションを強制的に削除できます。

Windows 10のリカバリパーティションに阻まれて拡張できないボリュームを拡張する方法

これでディスクの管理を開き、システムパーティションを拡張できるようになります(ボリュームの拡張オプションが有効になっています)。リカバリパーティションを作り直したい場合は(前述のとおりシステムパーティションへ移動するか、保持しておくことを推奨します)、ドライブの末尾に500MBの未割り当て領域を残してください。下のスクリーンショットでは、Windowsパーティションを1.5GB拡張し、ドライブ末尾に500MBを残しています。

なお、ディスク上にベンダー製のリカバリパーティション(OEMパーティション)が他にもあり、メインボリュームの拡張を妨げている場合は、「OEMパーティションを削除する方法」の記事を参照してください。

Windows 10のリカバリパーティションに阻まれて拡張できないボリュームを拡張する方法

メインパーティションを拡張した後、WinREリカバリパーティション用に500MBの空き容量が残っています。

Windows 10のリカバリパーティションに阻まれて拡張できないボリュームを拡張する方法

Windowsは、特殊な識別子(GUID — de94bba4-06d1-4d40-a16a-bfd50179d6ac)とGPT属性0x8000000000000001によってリカバリパーティションを認識します。

それでは、新しいパーティションを作成し、これらの属性を設定しましょう。

DISKPART> create part primary
DISKPART> format quick fs=ntfs label="WinRE"
DISKPART> assign letter="R"
DISKPART> set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"

DiskPart successfully set the partition ID

DISKPART> gpt attributes=0x8000000000000001

DiskPart successfully assigned the attributes to the selected GPT partition.

Exit

Windows 10のリカバリパーティションに阻まれて拡張できないボリュームを拡張する方法

次に、Windows 10のインストールディスク(イメージ)からWinREファイルを取り出し、新しいリカバリパーティションにコピーします。

Windows 10のインストールISOイメージからinstall.wimファイルをマウントし、WinREファイル(Winre.wim)を抽出します。

md C:\WinISO
md C:\WinISO\mount
dism /mount-wim /wimfile:F:\sources\install.wim /index:1 /mountdir:C:\WinISO\mount /readonly
md R:\Recovery\WinRE
copy C:\WinISO\mount\Windows\System32\Recovery\Winre.wim R:\Recovery\WinRE\
dism /unmount-wim /mountdir:C:\WinISO\mount /discard

あとは、WinREファイルをリカバリパーティションに配置し、ブート構成を更新するだけです。

reagentc /disable
reagentc /setreimage /path R:\Recovery\WinRE /target C:\Windows
reagentc /enable

これでリカバリパーティションが再作成され、WinREイメージへの新しいパスが登録されました。今後、Windowsの起動に問題が発生した場合でも、回復環境が自動的に起動するようになります。

BIOS搭載PCでリカバリパーティションを削除し、BCDを移動する方法

コンピューターがUEFIではなくBIOSベースの場合は、リカバリパーティションを削除する前に、Windowsブートマネージャー(BCD)と回復環境のファイルをC:ボリュームへ移動しておきます。

まず、BCDファイルをE:ドライブ(リカバリパーティションに割り当てたドライブ文字)からC:ドライブへ移動します。

Reg unload HKLM\BCD00000000
robocopy e:\ c:\ bootmgr
robocopy e:\boot c:\boot /s
bcdedit /store c:\boot\bcd /set {bootmgr} device partition=C:
bcdedit /store c:\boot\bcd /set {memdiag} device partition=C:

BCDに何らかの問題が生じた場合は、BCDファイルとマスターブートレコード(MBR)を再構築することで復旧できます。

続いて、回復環境のwimイメージを移動します。

reagentc /disable
md c:\Recovery\WinRE
xcopy e:\Recovery\WindowsRE\Winre.wim c:\Recovery\WinRE /h
reagentc /setreimage /path c:\Recovery\WinRE /target C:\Windows
reagentc /enable

以上で準備完了です。あとは、前述の手順に従ってdiskpartでリカバリパーティションを削除し、システムパーティションを正常に拡張できます。

  1. Windows 10でリカバリーパーティションを作成する方法|O&O DiskImageの使い方

    マルウェア攻撃をはじめとするさまざまなトラブルでオペレーティングシステムが起動しなくなったとき、頼りになるのが「リカバリーパーティション」です。事前にリカバリーパーティションを作成しておけば、システムクラッシュ後もファイルやOSを復元し、中断した作業の続きから日常業務を再開できます。本記事では、バックアップソフト「O&O DiskImage」を使って、Windows 10にリカバリーパーティションを簡単に作成する手順をわかりやすく解説します。 O&O DiskImageのリカバリーパーティション機能とは? O&O DiskImageは、パソコンのハードディスク内にリカバリーパーティションを作

  2. Windows 10/8/7でエラー0x80071AC3「ボリュームがダーティです」を修正する5つの方法

    記事の要点:Windowsのハードディスクから外部ストレージへデータをコピーしようとした際に「ボリュームがダーティです(Volume is Dirty)」というエラーメッセージが表示されると、戸惑ってしまいますよね。本記事では、ドライブをクリーンアップするための簡単な手順を使って、この問題を解決する最も手軽な方法をご紹介します。 重要な作業中に中断させられるのはストレスfullなものですが、特に同じシステムエラーが繰り返し表示される場合はイライラも募ります。「エラー0x80071AC3:ボリュームがダーティです」はその代表例で、データのコピー中によく発生します。ハードディスクから外部ストレー