Windows のディスクを管理したいとき、古の時代から diskpart
コマンドがあります。
しかし現在これらのdiskpart 操作をを使うことはありません。PowerShell でより高度、安全に操作できるからです。
こういったディスクの初期化処理は、AWS や Azure においてディスク追加するときにも必要になることがあります。
そこで今回はその例を少し見てみましょう。
目次
GUI のディスク管理
Windows 10 を例にします。 Win +x > k
によって ディスクの管理 を起動できます。
例えば以下のディスク構成があります。
この中のディスク3 は、現在は プライマリパーティション1つの 単一パーティション構成です。こういった場合は GUI でボリュームの削除を行って綺麗に構成可能です。
しかし、以前OSをインストールしていたディスクの場合は GUI で行えることに制限があります。*1
ディスクの管理では、OSインストール時に自動構成された回復パーティションを削除できません。
そこで古代においては、diskpart を使って操作を行うことがありました。
今回は、OSが入ったりした ディスク3 を「完全に消去 > 単一パーティション > NTFSフォーマット」まで構成してみましょう。
diskpart
コマンドプロンプトから diskpart
を入力すると、管理者へのUAC昇格と共に diskpart の対話モードが開始します。
まずは list disk
でディスク一覧を呼び出して対象を把握します。
次に操作対象ディスクを select disk 3
で選択します。
操作内容として、回復パーティションも含めて綺麗にするので、clean
コマンドでディスクを消去します。
という感じです。
PowerShell で初期化する
PowerShell には、Disk や Partition、Volume 操作用の Cmdlet があります。これらをパイプラインで繋げれば、初期化からフォーマットまでワンライナーで綺麗に完了します。*2
どうでしょうか?先のディスク3の初期化も一発です。かつ、ディスクの製品名から指定もできたり、BootDisk を除外してまとめて行ったりも可能です。
操作も Cmdlet が明確に意図を示しています。
Cmdlet | やっていること |
---|---|
Get-Disk |
ディスク一覧の取得 |
where FriendlyName -Match ST3500 |
ST3500という製品名に該当するディスクにフィルタ |
Clear-Disk -RemoveData -RemoveOEM -PassThru |
ディスクを消去 |
Initialize-Disk -PartitionStyle MBR -PassThru |
ディスクを MBRで初期化 |
New-Partition -UseMaximumSize -AssignDriveLetter |
新規パーティションをディスク全体を単一として、ドライブレターを自動付与で作成 |
Format-Volume -FileSystem NTFS -Force |
作成したボリュームを NTFS でフォーマット |
簡単ですね。
まとめ
diskpart しかできないという操作はそうそうありません。回復コンソールなど、極めて限定的なシーンでの利用となるでしょう。
こういったWindowsシステム系の操作は PowerShell だと本当に楽に書けるのでぜひ試してみるといいと思います。