小ネタおよび備忘録です。
手持ちのESXiをインストールしたUSBメモリをフォーマットし直そうとした際に、GUIからだと先頭のブートパーティションが削除できなかったのが発端です。
Diskpartで削除する
最初に参考情報としてDiskpartで削除する手順を紹介します。
Insider MVPの那須さんのブログに手順が詳しく記載されています。
こちらのケースではEFIシステムパーティションですが、保護されているパーティションを削除する場合はDiskpartコマンドを起動して該当のパーティションを選択したのち、
delete partition override
とoverride
を付けてdelete partitionしてやればOKです。
PowerShellで削除する
ここからが本題です。
PowerShellでこの様なパーティションを削除する場合はRemove-Partition
を使います。
先述のoverride
パラメーターの様な特殊なパラメーター指定は必要ありません。
実例
今回は下図のディスクを例に挙げます。
図のディスク2
がESXiをインストールしていたUSBメモリで、先頭4MBがブートパーティションでGUIからは削除することができません。
(他にもいくつかパーティションがあったのですが、この図ではすでに削除済みです)
この4MBのパーティションをPowerShellを使って削除します。
1. 削除対象パーティンションの確認
はじめに管理者としてPowerShellを起動します。
Get-Disk
コマンドを実行すると、システムから見えるディスクの一覧を取得できます。
Get-Disk
Get-Partition
コマンドでディスクにあるパーティションを取得できます。
Get-Partition -DiskNumber [該当ディスク番号]
この例だと、DiskNumber = 2
、PartitionNumber = 1
が対象のパーティションとなります。
2. パーティンションの削除
Get-Partition
コマンドの結果はWMIのMSFT_Partition
*1クラスのオブジェクトであり、このオブジェクトをRemove-Partition
コマンドに引き渡すことでパーティションの削除ができます。
以下の様にパイプラインでつなげてやればOKです。
Get-Partition -DiskNumber [該当ディスク番号] -PartitionNumber [該当パーティション番号] | Remove-Partition
パイプラインを使わず直接DiskNumber、PartitionNumberを指定しても構いません。
Remove-Partition -DiskNumber [該当ディスク番号] -PartitionNumber [該当パーティション番号]
3. 結果の確認
これで保護されているパーティションを削除できます。
GUIから見ても確かに消えていることが確認できました。
*1:PowerShell上は Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_Partition 型で表現される