diskpart - ディスク・パーティションの管理
目次
diskpartコマンドは、ディスクやパーティション、ボリュームを操作するためのコマンドです。パーティションの作成・削除、フォーマット、ドライブ文字の割り当てなど、ディスクの管理画面で行える操作の多くをコマンドで実行できます。
「USB メモリが読み取り専用になって書き込めない」「ディスクの管理画面では削除できないパーティションが残っている」といったトラブルの解消にもよく使われます。
diskpartは、選択したディスクの内容を一瞬で消去できる強力なコマンドです。操作対象のディスク番号を必ず確認してから実行してください。重要なデータがあるディスクは、事前にバックアップを取っておくことをおすすめします。
diskpartの基本的な使い方
diskpartは、管理者として実行したコマンドプロンプトで使います。通常の権限で起動すると、昇格を求められたり、エラーになったりします。起動方法は関連記事を参照してください。
diskpart
起動すると、プロンプトがDISKPART>に変わります。ここからは通常のコマンドではなく、diskpart専用のコマンドを入力します。
終了するときはexitと入力します。
DISKPART> exit
操作の基本は「選択してから実行」
diskpartの操作は、次の流れで行います。
list系のコマンドで一覧を表示するselectで操作対象を選ぶ- 選択した対象に対して、フォーマットや削除などを実行する
selectで選んだ対象に対してコマンドが実行されるため、どれを選んでいるかを意識することが大切です。選択中の対象には、一覧の左端に*が付きます。
ディスクの一覧を確認する
DISKPART> list disk
表示の意味は次の通りです。
| 列 | 意味 |
|---|---|
| ディスク ### | ディスク番号。select diskで指定する番号です |
| 状態 | オンライン/オフラインなど |
| サイズ | ディスクの容量 |
| 空き領域 | パーティションに割り当てられていない容量 |
| 動的 | 動的ディスクの場合に*が付く |
| GPT | GPT 形式の場合に*が付く(付かなければ MBR 形式) |
ディスク 0 は多くの場合 Windows が入っている内蔵ディスクですが、そうとは限りません。list volumeでC:がどのディスクにあるかを確認し、USB メモリや外付けドライブは、サイズ(容量)で判断します。不安なときは、一度 USB メモリを抜き差ししてlist diskを比べると、増減した番号が対象のディスクだとわかります。
ディスクの詳細を確認する
ディスクを選択すると、詳細情報を表示できます。
DISKPART> select disk 1
DISKPART> detail disk
detail diskでは、モデル名、種類(USB・SATA・NVMe など)、読み取り専用かどうか、ディスク上のボリュームなどを確認できます。消去する前の最終確認に便利です。
パーティション・ボリュームを確認する
ディスクを選択した状態でlist partitionを実行すると、そのディスク内のパーティションが表示されます。
DISKPART> select disk 1
DISKPART> list partition
ドライブ文字やファイルシステムを確認したいときは、list volumeが便利です。
DISKPART> list volume
ボリュームを操作するときは、select volume 1のようにボリューム番号で指定するか、select volume Eのようにドライブ文字で指定します。
USB メモリを初期化してフォーマットする
USB メモリを丸ごと初期化し、新しくパーティションを作ってフォーマットする手順です。ディスクの内容はすべて消えます。
DISKPART> list disk
DISKPART> select disk 1
DISKPART> detail disk
DISKPART> clean
DISKPART> create partition primary
DISKPART> format fs=ntfs quick label=USB_DRIVE
DISKPART> assign
DISKPART> exit
各コマンドの役割は次の通りです。
| コマンド | 役割 |
|---|---|
select disk 1 | 操作対象をディスク 1 に決める。番号は必ず確認する |
clean | ディスク上のパーティション情報とボリューム情報をすべて削除する |
create partition primary | 空き領域をすべて使うプライマリ パーティションを作成する |
format fs=ntfs quick label=USB_DRIVE | NTFS でクイック フォーマットし、ラベルを付ける |
assign | 空いているドライブ文字を自動で割り当てる |
cleanは、選択中のディスクのパーティション構成を即座に削除します。select disk 0のように内蔵ディスクを選んだまま実行すると、Windows が起動しなくなる恐れがあります。select diskの直後にdetail diskを実行し、サイズ・モデル名・種類が目的のディスクと一致するかを必ず確認してください。diskpartには確認画面も取り消し機能もありません。
ファイルシステムの選び方
formatのfs=には、用途に合わせてファイルシステムを指定します。
| 指定 | 特徴 |
|---|---|
fs=ntfs | Windows 向け。4 GB を超えるファイルも扱える |
fs=exfat | Windows・Mac の両方で使いやすく、大きなファイルも扱える。USB メモリや SD カード向け |
fs=fat32 | 互換性が高い。1 ファイルの上限は 4 GB 未満。diskpartでは 32 GB を超えるボリュームを FAT32 でフォーマットできない |
quickを付けるとクイック フォーマットになり、短時間で終わります。quickを省略するとフル フォーマットになり、容量が大きいと時間がかかります。通常はクイック フォーマットで十分です。
パーティションの種類を変える(MBR / GPT)
cleanした直後の何もないディスクであれば、パーティション スタイルを変換できます。
DISKPART> convert gpt
DISKPART> convert mbr
convertは、ディスク上にパーティションやボリュームが残っているとエラーになります。先にcleanなどで空にしてから実行してください。なお、MBR 形式では 2 TB を超える領域を使えません。
USB メモリが読み取り専用になっているとき
書き込めない USB メモリは、ディスクに「読み取り専用」の属性が付いていることがあります。次の手順で確認と解除ができます。
DISKPART> list disk
DISKPART> select disk 1
DISKPART> attributes disk
DISKPART> attributes disk clear readonly
attributes diskを実行すると、現在の読み取り専用状態: はいのように、現在の状態が表示されます。clear readonlyで属性を解除すると、データを消さずに書き込めるようになります。
SD カードや一部の USB メモリには、本体に物理的な書き込み禁止スイッチがあります。スイッチがロック側になっていると、diskpartで属性を解除しても書き込めません。先にスイッチの位置を確認してください。
パーティションを削除する
ディスク全体ではなく、特定のパーティションだけを削除したい場合は、delete partitionを使います。
DISKPART> select disk 1
DISKPART> list partition
DISKPART> select partition 2
DISKPART> delete partition
システム領域など保護されたパーティションは、通常のdelete partitionでは削除できません。delete partition overrideを付ければ削除できますが、EFI システム パーティションや回復パーティションなども確認なしで消えてしまいます。どの領域を消すのか理解できない場合は使わないでください。
ドライブ文字を変更する
ボリュームを選択して、ドライブ文字を割り当てたり外したりできます。
DISKPART> select volume 1
DISKPART> assign letter=F
すでにドライブ文字が割り当てられているボリュームは、いったん外してから割り当て直します。
DISKPART> select volume 1
DISKPART> remove letter=E
DISKPART> assign letter=F
C:などシステムが使用しているドライブ文字は、変更するとプログラムの動作に影響する恐れがあります。外付けドライブや追加したディスクに対してのみ実行しましょう。
ボリュームを拡張・縮小する
ボリュームを選択して、サイズを変更できます。単位は MB です。
DISKPART> select volume 1
DISKPART> extend size=10240
DISKPART> select volume 1
DISKPART> shrink querymax
DISKPART> shrink desired=10240
extend size=10240は、ボリュームを 10240 MB(10 GB)広げます。同じディスク上で、ボリュームのすぐ後ろに未割り当ての空き領域が必要です。sizeを省略すると、使える空き領域をすべて使って拡張しますshrink querymaxは、縮小できる最大サイズを表示します。先に実行して確認しましょうshrink desired=10240は、ボリュームを 10240 MB(10 GB)縮小します。ボリューム内に移動できないファイルがあると、希望するサイズまで縮小できないことがあります
extendは NTFS(新しい Windows では ReFS も)、shrinkは NTFS のボリュームが対象です。FAT32 や exFAT のボリュームは拡張も縮小もできません。
スクリプトで自動実行する
diskpartのコマンドをテキストファイルに書いておき、/sオプションで読み込ませることで、まとめて実行できます。
select disk 1
clean
create partition primary
format fs=ntfs quick label=USB_DRIVE
assign
exit
diskpart /s format-usb.txt
diskpartは対話モードでも確認メッセージを出しませんが、スクリプトでは内容を確認する機会もなく最後まで実行されます。select diskの番号が実行時にずれていると、意図しないディスクを消去してしまいます。USB メモリの抜き差しなどでディスク番号が変わる場合は、スクリプトの自動実行は避け、手作業で確認しながら進めてください。
よく使うコマンド早見表
| やりたいこと | コマンド |
|---|---|
| ディスクの一覧を表示 | list disk |
| ディスクを選択 | select disk <番号> |
| ディスクの詳細を表示 | detail disk |
| パーティションの一覧を表示 | list partition |
| ボリュームの一覧を表示 | list volume |
| ディスクを空にする | clean |
| パーティションを作成 | create partition primary |
| フォーマット | format fs=ntfs quick label=<ラベル> |
| ドライブ文字を割り当て | assign letter=<文字> |
| ドライブ文字を外す | remove letter=<文字> |
| 読み取り専用を解除 | attributes disk clear readonly |
| スクリプトを実行 | diskpart /s <ファイル名> |
| 終了 | exit |
clean allは、ディスク全体のすべてのセクターにゼロを書き込む操作です。データの復元を難しくできますが、ディスクの容量によっては非常に長い時間がかかり、SSD では通常不要です。通常のフォーマットのやり直しには、cleanで十分です。