Home
1674 words
8 minutes
Windows DiskPartユーティリティによるストレージ管理の技術的詳細と回復環境における運用

生成AIによる自動生成記事に関する免責事項
本記事は Microsoft Learn などの公式ドキュメントおよび一般的な Windows 管理技術に基づき、生成AIによって構成された解説記事である。
DiskPart は破壊的操作を含むため、実行時は必ず公式ドキュメントを参照し、十分なバックアップを確保した上で行うこと。

1. 序論:GUIによるディスク管理の限界とCLIの必要性#

Windows におけるストレージ管理は、通常「ディスクの管理」(diskmgmt.msc)を通じて行われる。しかし GUI ツールは誤操作防止の観点から保護機構が多く、システムパーティションや破損したファイルシステムに対する操作には制限がある。

特に OS が起動しない障害時や Windows Preinstallation Environment(WinPE)では GUI が利用できないため、CLI ベースの管理ツールが不可欠となる。

DiskPart(diskpart.exe) は Windows 2000 以来利用されているコマンドラインのディスク管理ユーティリティであり、管理者権限下でディスク・パーティション・ボリュームを直接操作できる。
歴史的には Virtual Disk Service(VDS)と連携して動作してきたが、Windows 8 / Windows Server 2012 以降では Storage Management API への移行が進んでおり、内部実装は OS 世代に依存する。


2. アーキテクチャと操作パラダイム#

DiskPart は単発コマンドではなく、対話型インタプリタとして動作し、内部に「現在の選択状態(フォーカス)」を保持する。

2.1 オブジェクト階層モデル#

DiskPart が扱うストレージ資源は、概ね以下の階層で抽象化される。

  1. Disk:物理ディスク(HDD / SSD / USB 等)
  2. Partition:ディスク上の論理区画(MBR / GPT エントリ)
  3. Volume:ファイルシステムを持つ論理ボリューム(ドライブ文字割当対象)

2.2 フォーカスベースの操作モデル#

DiskPart の最大の特徴は 「選択してから操作する」 ステートフルな設計にある。

Select Context → Operation
DISKPART> select disk 0
DISKPART> select partition 1
DISKPART> delete partition

この設計はスクリプト記述の可読性を高める一方、 現在のフォーカスを誤認すると 即座に破壊的操作が実行される というリスクを伴う。


3. 主要コマンドの挙動と注意点#

3.1 clean / clean all による初期化#

  • clean パーティションテーブル(MBR または GPT)やボリューム情報など、 ディスク構成に関わるメタデータを削除する。 データ領域自体は上書きされないため、理論上は復旧可能性が残る。

  • clean all ディスク全セクタに対してゼロ書き込みを行う完全消去操作。 HDD では不良セクタ再割当を誘発する場合があり、SSD では書き込み寿命に影響を与える可能性がある。

GUI では削除できない回復パーティションや、異種 OS 由来の構成を一掃する際に用いられるが、不可逆性が極めて高い


3.2 assign によるマウントポイント操作#

EFI システムパーティション(ESP)や回復パーティションは、通常ドライブ文字が割り当てられていない。

DiskPart の assign コマンドを用いることで、これらのボリュームにも一時的にドライブ文字を割り当てられる。

assign letter=S

これにより BCD ストアやブートファイルに対するファイルレベル操作が可能となる。


3.3 attributes による属性操作#

attributes disk clear readonly

このコマンドは DiskPart が管理するディスク属性(ソフトウェア的な Read-only フラグ)を解除する。

注意 物理スイッチやファームウェア、コントローラ由来の書き込み禁止状態には効果がない場合がある。


4. WinPE 環境における運用#

WinPE 環境ではドライブ文字割当が通常と異なるため、DiskPart による確認が必須となる。

Shift + F10
diskpart

5. ケーススタディ:EFI パーティション削除後の復旧#

5.1 状況#

  • GPT / UEFI 環境
  • EFI システムパーティション(ESP)を誤って削除
  • Windows データパーティションは無事

5.2 領域の確保(Shrink)#

重要 shrink コマンドは Partition ではなく Volume を選択して実行する

DISKPART> list volume
DISKPART> select volume 0
DISKPART> shrink desired=200

移動不可能なシステムファイルが存在する場合、指定サイズまで縮小できないことがある。


5.3 EFI システムパーティションの再作成#

前提 create partition efiGPT ディスクかつ UEFI 環境 が前提である。

DISKPART> create partition efi size=100
DISKPART> format quick fs=fat32 label="System"
DISKPART> assign letter=S

5.4 ブートファイルの再構築#

bcdboot D:\Windows /l ja-jp /s S: /f UEFI

6. 結論#

DiskPart は、OS 非起動状態や回復環境において依然として重要な基盤ツールである。

一方、通常運用では PowerShell の Storage モジュールや新しい管理 API への移行が進んでおり、 DiskPart は 「最後の外科器具」 として位置付けるのが現代的である。


参考文献#

  • Microsoft Learn, “DiskPart commands”
  • Microsoft Learn, “BCDBOOT Command-Line Options”
  • Microsoft Support, “How to use DiskPart to clean a disk”

付録A:Disk / Partition / Volume の関係(論理構造図)#

+---------------------------------------------------+
|                   Physical Disk                   |
|                 (Disk 0 / Disk 1)                 |
+------------------------+--------------------------+
|      Partition 1       |       Partition 2        |
|   (EFI / MSR / etc.)   |     (Primary / Data)     |
+------------------------+--------------------------+
|        Volume           |        Volume            |
|   FAT32 / NTFS          |   NTFS / ReFS            |
|   (S:)                  |   (C:, D:)               |
+------------------------+--------------------------+

用語整理(重要)#

概念説明
Disk物理デバイス単位(HDD / SSD / NVMe / USB)
Partitionディスク上の論理区画(GPT / MBR エントリ)
Volumeファイルシステムを持ち、OSからマウントされる単位

注意

  • Partition ≠ Volume

  • DiskPart では操作対象によって 使用可能コマンドが異なる

    • delete partition → Partition
    • shrinkVolume

この混同が DiskPart 誤操作の最大要因である。


付録B:MBR と UEFI(GPT)の比較#

項目MBR(Legacy BIOS)GPT(UEFI)
最大ディスク容量約2TB理論上9.4ZB
パーティション数最大4(拡張含む)通常128
ブート方式BIOSUEFI
EFIシステムパーティション不要必須(FAT32)
冗長性なしGPTヘッダが前後に存在
障害耐性
DiskPart での create partition efi不可
近代OSとの親和性

実務的結論#

  • Windows 10/11 + 新規環境 → GPT/UEFI 一択
  • MBR は レガシー互換・旧機器用途のみ

付録C:DiskPart と PowerShell の役割分担#

設計思想の違い#

観点DiskPartPowerShell Storage
実行環境WinPE / 非起動通常OS
操作モデル状態遷移・即時実行オブジェクト指向
誤操作耐性
スクリプト安全性
ログ・検証弱い強い

原則

  • 通常運用:PowerShell
  • OS 非起動・最終手段:DiskPart

付録D:DiskPart ⇔ PowerShell 等価操作一覧#

ディスク一覧#

DiskPart

list disk

PowerShell

Get-Disk

ボリューム一覧#

DiskPart

list volume

PowerShell

Get-Volume

パーティション作成(GPT)#

DiskPart

create partition primary size=102400

PowerShell

New-Partition -DiskNumber 0 -Size 100GB

EFI システムパーティション作成#

DiskPart

create partition efi size=100
format quick fs=fat32

PowerShell

New-Partition -DiskNumber 0 -Size 100MB -GptType "{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}"
Format-Volume -FileSystem FAT32

ドライブ文字割り当て#

DiskPart

assign letter=S

PowerShell

Set-Partition -DriveLetter S

ReadOnly 属性解除#

DiskPart

attributes disk clear readonly

PowerShell

Set-Disk -Number 0 -IsReadOnly $false

パーティション削除(⚠危険)#

DiskPart

delete partition override

PowerShell

Remove-Partition -DiskNumber 0 -PartitionNumber 1

補足E:PowerShellでは代替できない領域#

以下は DiskPart が今も必要な理由

  • WinPE / OS 非起動状態
  • BCD 再構築前の EFI 作成
  • RAW ディスクの初期化
  • GUI / PS がロード不能な障害時

DiskPart は 「安全ではないが、確実に切れるメス」 PowerShell は 「滅菌された手術室」


Windows DiskPartユーティリティによるストレージ管理の技術的詳細と回復環境における運用
https://ss0832.github.io/posts/20260107_win_diskpart/
Author
ss0832
Published at
2026-01-07