連載
» 2015年03月06日 05時00分 UPDATE

Tech TIPS:Windowsのdiskpartコマンドでディスクのパーティションを操作する (1/2)

Windowsで「diskpart」というコマンドを使うと、コマンドラインでディスクのパーティションやボリュームを操作できる。Windows PEやServer Core環境、あるいは自動化で大いに役立つコマンドだ。その基本的な使い方を解説。

[打越浩幸, 島田広道,デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows Vista / Windows 7 / Windows 8 / Windows 8.1 / Windows Server 2003 / Windows Server 2008 / Windows Server 2008 R2 / Windows Server 2012 / Windows Server 2012 R2



解説

 Windows OSでディスクのパーティションを操作する場合、[コンピューターの管理]ツールにある[記憶域]−[ディスクの管理]を使うのが一般的だろう([ファイル名を指定して実行]で「diskmgmt.msc」を起動してもよい)。

 しかし、こうしたGUIのツールが使えないこともある。Windows PEやWindows ServerのServer Coreインストールはその代表例だ(リモートからdiskmgmt.mscで接続できなくはないが、事前にリモート管理を許可するなどの準備が必要である)。

 またGUIだと、パーティション作成とフォーマットといった一連の処理を自動化しにくいという難点もある。

 そこで「diskpart.exe」というコマンドラインツールを利用すると、コマンドラインからパーティションやボリュームの操作を実行できる。しかもWindows OS標準装備で、インストールなどの手間は不要だ。本TIPSでは、このdiskpartコマンドの基本的な使い方について解説する。なお、ディスクのパーティションやボリュームの基本的な概念については、関連記事「ディスク管理ツール徹底活用」を参照していただきたい。

操作方法

 本稿ではWindows 7を例に取り上げて、その画面やコマンドプロンプトの出力結果を掲載している。他のWindows OSとは多少表記が異なるものの、特記しない限り、操作方法は共通だ。

●diskpartコマンドを起動する

 diskpartコマンドはコマンドプロンプト上で利用するツールである。管理者権限のあるユーザーでコマンドプロンプトを開き、「diskpart」と入力すれば起動できる([ファイル名を指定して実行]で直接diskpart.exeを実行してもよい)。いったん起動すると、あとはディスクやパーティション、ボリュームなどを操作するコマンドを対話的に入力して利用する。

diskpartコマンドの起動例 diskpartコマンドの起動例
コマンドプロンプト上でディスクパーティションを操作するにはdiskpartコマンドを利用する。
  (1)管理者権限のあるユーザーでコマンドプロンプトを開き、diskpartを実行する。
  (2)ローカルのコンピュータ名。
  (3)「DISKPART> 」はプロンプト文字列。ここにコマンドを入力する。「?」や「help」と入力するとコマンドの一覧が表示される。
  (4)diskpartコマンドのバージョン。これはWindows 7での実行例。
  (5)コマンドの一覧。Windows Vista以降であれば、「? select」や「? select disk」「help assign」のようにすれば、さらに詳しいコマンドの使い方が表示される。

 実行するコマンドがあらかじめ決まっているなら、一連のコマンドをテキストファイルにスクリプトとして書き込んでおき、「diskpart /s <スクリプトファイル名>」として実行できる。

●diskpartコマンドのヘルプを表示させる

 Windows Vista/Server 2008以降に付属するdiskpartコマンドなら、プロンプト上で「? select」や「? select disk」「help assign」のようにすれば、各コマンドの使い方が表示される。

 一方、Windows Server 2003付属のdiskpartコマンドの場合、ヘルプにはコマンド名の一覧ぐらいしか表示されない。詳細なコマンドの解説は以下のページを参照していただきたい。

●ディスク/パーティション/ボリュームの選択と確認

 diskpartコマンドを起動したら、通常は、まずシステムに接続されているディスクやパーティション、ボリュームの一覧を表示させることになるだろう。このためには「list disk」「list partition」「list volume」コマンド*1を使用する。

*1 コマンド名やパラメーターなどは、3文字程度まで省略して指定できる。上の例なら、「list dis」「list par」「list vol」、さらに縮めて「lis dis」「lis par」「lis vol」などとしてもよい。


 ただしdiskpartのコマンドでは、操作対象となるディスクやパーティション、ボリュームなどをあらかじめ選択しておく必要があるものがほとんどである。これらを選択するためには、「select disk」「select partition」「select volume」コマンドを(順に)使用する。選択された現在の項目は、先頭に「*」マーク付きで表示される。

DISKPART> list disk ……システムのディスク一覧の表示

  ディスク      状態           サイズ   空き   ダイナ GPT ……3台のディスクがある
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン           127 GB      0 B ……システムディスク
  ディスク 1    オンライン           120 GB   120 GB ……未使用ディスク
  ディスク 2    オンライン           250 GB   250 GB ……未使用ディスク

DISKPART> list partition ……パーティションを表示させる

パーティションの一覧を表示するディスクが選択されていません。
ディスクを選択してから再実行してください。 ……ディスクが未選択なのでエラー

DISKPART> select disk 0 ……ディスク0を選択する(ディスクの番号はlist diskで確認する)

ディスク 0 が選択されました。 ……ディスク0が選択された

DISKPART> list partition ……もう一度実行してみる

  Partition ###  Type                Size     Offset ……パーティションが1つだけ含まれている
  -------------  ------------------  -------  -------
  Partition 1    プライマリ              127 GB  1024 KB ……パーティション1。プライマリディスクである

DISKPART> list volume ……ボリュームを表示させてみる。現在どのディスクやパーティションが選択されているかにかかわらず、全ディスク上の全ての作成済みボリュームが一覧表示される
(このコマンドは事前にディスクやパーティションを選択しておかなくてもよい)
  Volume ###  Ltr Label        Fs    Type        Size     Status     Info ……2つのボリュームがある
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  メディアなし ……DVDドライブ
  Volume 1    C                NTFS  Partition    127 GB  正常       システム ……システムボリューム

DISKPART>



 「list disk」と「list volume」*2は「select 〜」していなくても利用できる。「list partition」は、事前に対象となるディスクを明示的に選択しておく必要がある(未選択だとパーティション一覧が表示されない)。

*2 ボリュームの選択時には、「select vol c:」というようにドライブ名でも指定できる。ボリュームを削除する場合は、間違えないようにボリューム番号ではなくドライブ名で指定するのがよいだろう。Windows OSのディスク管理では、ディスク番号とボリューム番号は0から始まるのに対し、パーティション番号は1から始まるので間違いやすいからだ。


●ボリュームの作成

 システムに新しいディスクを追加すると、list diskコマンドでそのディスクの情報が得られるはずである。上の例では「ディスク 1(120GB)」と「ディスク 2(250GB)」という、2台の空のディスクが確認できる*3。このうち、ディスク1上に60GBのパーティションを作成し、G:ドライブに割り当ててみよう。

*3 同容量のディスクが2台以上あって紛らわしい場合は、ディスクを選択してから「detail disk」コマンドを実行してみよう。すると「Samsung SSD 840 EVO 250GB」というようなディスクの型番まで表示されるので、どのディスクかを判別する手掛かりになる。


 まずディスク1を選択後、「create partition 〜」で新しいパーティションを作成する。幾つかあるパーティションの種類のうち、ここでは一番シンプルでよく使われるプライマリパーティションを作成する(MBR形式の場合、プライマリパーティションは1つのディスク上に最大で4つまで作成できる)。

DISKPART> list disk ……ディスクの確認

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
* ディスク 0    オンライン           127 GB      0 B
  ディスク 1    オンライン           120 GB   120 GB ……ここに60GBのG:ドライブを作成する
  ディスク 2    オンライン           250 GB   250 GB

DISKPART> select disk 1 ……ディスク1を選択する

ディスク 1 が選択されました。

DISKPART> list partition ……パーティションを表示させてみる

このディスクには表示するパーティションがありません。 ……パーティションは未定義

DISKPART> create partition primary size=60000 ……60GBのプライマリパーティションを作成する

DiskPart は指定したパーティションの作成に成功しました。 ……成功
※「size=〜」を省略すると、全空き領域がパーティションに割り当てられる
DISKPART> list partition ……パーティションを表示させてみる

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
* Partition 1    プライマリ               59 GB  1024 KB ……作成したプライマリパーティション

DISKPART> list volume ……ボリュームの確認

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  メディアなし
  Volume 1    C                NTFS  Partition    127 GB  正常       システム
* Volume 2                     RAW   Partition     59 GB  正常 ……作成したパーティション。未フォーマット状態(ファイルシステムがRAWとなっている)

DISKPART>



 上の例では「60GB」とサイズを指定してパーティションを作成してみた。もし「size=〜」パラメーターを省略すると、そのディスク上にある空き領域全体が1つのパーティションとして作成される。

 パーティションの作成が完了したら、次はフォーマットを行わなければならない。前述したGUIのディスク管理ツールならば、パーティションの作成と同時にNTFSやFATなどでのフォーマット、ドライブ文字の割り当てなども行える。だが、diskpartコマンドではそうなっていない。

 パーティションのフォーマットを行うには「format 〜」コマンドを利用する。ただしWindows Server 2003の場合、このコマンドが利用できない。そのため、ここでいったんGUIのディスク管理ツールに戻って作業することになる。

 formatコマンドでは、作成するファイルシステムのタイプを「fs=ntfs」といったパラメーターで指定する。これを省略すると、filesystemsコマンドで表示されるデフォルトのタイプが使用される。

DISKPART> filesystems ……デフォルトで作成されるファイルシステムの確認

現在のファイル システム

  種類                 : RAW ……現在は未フォーマット
  アロケーション ユニット サイズ : 512
  フラグ: 00000000

フォーマットでサポートされているファイル システム

  種類                 : NTFS (既定) ……デフォルトはNTFS
  アロケーション ユニット サイズ: 512, 1024, 2048, 4096 (既定), 8192, 16K, 32K, 64K

DISKPART> format fs=ntfs label="Data Vol 1" quick ……クイックフォーマットする
※label=はボリュームラベル名の指定、quickは読み出しチェックのスキップ
  100% 完了しました

DiskPart は、ボリュームのフォーマットを完了しました。 ……完了

DISKPART> list vol ……ボリュームの確認

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  メディアなし
  Volume 1    C                NTFS  Partition    127 GB  正常       システム
* Volume 2        Data Vol 1   NTFS  Partition     59 GB  正常 ……新ボリューム

DISKPART>



 次は、作成した新しいボリュームにドライブ文字G:を割り当てる。このためには「assign 〜」コマンドを使用する(他のボリューム上のフォルダの下にマウントすることも可能)。

DISKPART> assign letter=g ……G:\ドライブを割り当てる

DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。

DISKPART> list volume ……ボリュームの確認

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  メディアなし
  Volume 1    C                NTFS  Partition    127 GB  正常       システム
* Volume 2    G   Data Vol 1   NTFS  Partition     59 GB  正常 ……G:になっている

DISKPART>



 assignコマンドを使えば、既存のドライブ文字を別の文字に変更することもできる。

       1|2 次のページへ

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。