VMware ESXi 上の Windows のディスク容量を拡張する

## 困った！
家で実験に使っている Windows Server 2008 R2 のディスク容量が枯渇してしまってWindows Updateできなくなってしまいました。
この Windows Server は VMware ESXi 5.5 上に構築している仮想マシンなので、VMware と Windows の機能を使ってCドライブのディスク容量を拡張してみました。


## 環境

今回ディスク容量の拡張を試した僕の環境は、VMware ESXi 5.5 をインストールしたマシン上にデプロイした Windows Server 2008 R2 の仮想マシンです。ディスク容量は 20GB、ActiveDirectoryとIISを動かしており、冗長化はしていないシングルのサーバです。
今回は同じ環境上に作業用の Windows VM を 1台、この VM群を操作するための端末（Windows 7 professional 64bit）、およびこれにインストールした VMware vSphere Client 5.5 を使います。


## 準備するもの

 - vSphere Client
 - 拡張するのとは別の作業用 Windows VM (今回は Windows 7 professional 64bit を使用)


## 概要

つぎのような手順です。

 1. vSphere Client から Windows Server 2008 R2 の仮想ディスクの容量を拡張
 2. 作業用 Windows VM に 1 を追加
 3. 作業用 Windows VM から 1 を拡張
 4. 作業用 Windows VM から 1 を取り外し

ターゲットである Windows Server 2008 R2 のディスクに対して拡張したいサイズを vSphere Client で設定したら（物理的なサイズの拡張に相当）、別の Windows マシンからそれをディスク上に設定する（論理的なサイズの拡張に相当）する、という流れです。

## 手順

### 1. 対象の Windows Server 2008 R2 をシャットダウン
 Windows へログオンし、通常の手順でシャットダウンします。

### 2. vSphere Client から Windows Server 2008 R2 の仮想ディスクの容量を拡張

vSphere Client から「設定の編集」コマンドを選びます。

![01.png](https://qiita-image-store.s3.amazonaws.com/0/40149/9db63c2e-d393-5569-b0c0-79e98c71cf00.png)

「仮想マシンのプロパティ」から、拡張したいハードディスク（以降「ターゲット」）のサイズを増やします。
今回は 20GB から 50GB に拡張してみました。

![02.png](https://qiita-image-store.s3.amazonaws.com/0/40149/d36f1e41-a805-25f8-aca1-5cbddef331dc.png)

このあと必要になるので、このタイミングで「ディスクファイル」欄の内容を確認しておきます。
今回は「[SATA_7.2K_160GB_01] WindowsServer2008R2/WindowsServer2008R2.vmdk」でした。
最初の[]内がストレージの名前、続きがパスとファイル名です。

![03.png](https://qiita-image-store.s3.amazonaws.com/0/40149/3592a8bb-8de3-758d-a0ff-6dc3d1ebe340.png)


### 3. 作業用 Windows VM にターゲットのディスクを追加

シャットダウン済みの作業用 Windows VM (今回は Windows 7 professional 64bit を使用)にターゲットのディスクを追加します。
vSphere Client から「設定の編集」コマンドを選び、「追加..」を押下します。

![04.png](https://qiita-image-store.s3.amazonaws.com/0/40149/a223ae3e-dea8-488d-2fda-0bd2fad02537.png)

追加したいのはハードディスクなので、「ハードディスク」を選びます。

![05.png](https://qiita-image-store.s3.amazonaws.com/0/40149/99f3180b-0b9b-9c74-3f56-b94a17f1d0e9.png)

「既存の仮想ディスクを使用」を選択します。

![06.png](https://qiita-image-store.s3.amazonaws.com/0/40149/a5741b31-f002-1127-03f1-9e78e7224d00.png)

さきほど確認した「ディスクファイル」欄の内容どおりにディスクファイルを参照します。

![07.png](https://qiita-image-store.s3.amazonaws.com/0/40149/5120da8c-b96e-57d5-8e4d-b07d197da81f.png)

![08.png](https://qiita-image-store.s3.amazonaws.com/0/40149/a4c206f7-9f09-42e7-94d0-37c328f79261.png)

とくに問題なければ「終了」を押下します。

![09.png](https://qiita-image-store.s3.amazonaws.com/0/40149/d560f154-154a-da04-b7d7-826f16f70858.png)

追加したディスクが表示されていればOKです。

![10.png](https://qiita-image-store.s3.amazonaws.com/0/40149/1787f422-cf46-d2b2-c4f4-f12761526311.png)


### 4. 作業用 Windows VM からターゲットのディスクを拡張

作業用 Windows VM を起動し、Administrator権限を持つユーザでログオンします。
コマンドプロンプトなどから diskpart コマンドを起動し、管理者権限での動作を許可します。

![11.png](https://qiita-image-store.s3.amazonaws.com/0/40149/e1d5079b-ca2a-0160-faf7-769584421454.png)

list volume コマンドで認識している Volume の一覧を確認します。
今回、ターゲットは Volume 3, 4 で認識されていました。
このタイミングでは、ディスク容量は拡張前のサイズで表示されます。

``` bat
Microsoft DiskPart バージョン 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
コンピューター: WIN7PROX64

DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D   GSP1RMCPRXF  UDF   DVD-ROM     3168 MB  正常
  Volume 1        システムで予約済み    NTFS  Partition    100 MB  正常       システム
  Volume 2    C                NTFS  Partition     31 GB  正常       ブート
  Volume 3    E   システムで予約済み    NTFS  Partition    100 MB  正常
  Volume 4    F                NTFS  Partition     19 GB  正常       ページ ファイル

```

拡張の対象は Volume 4 なので、これを選択し、拡張します。


``` bat
DISKPART> select volume 4

ボリューム 4 が選択されました。

DISKPART> extend

DiskPart はボリュームを正常に拡張しました。
```

再度 list volume で確認すると、Volume 4 のサイズが増えています。

``` bat
DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D   GSP1RMCPRXF  UDF   DVD-ROM     3168 MB  正常
  Volume 1        システムで予約済み    NTFS  Partition    100 MB  正常       システム
  Volume 2    C                NTFS  Partition     31 GB  正常       ブート
  Volume 3    E   システムで予約済み    NTFS  Partition    100 MB  正常
* Volume 4    F                NTFS  Partition     49 GB  正常       ページ ファイル

DISKPART>
```

exit コマンドでプロンプトを抜けます。


### 5. 作業用 Windows VM から 1 を取り外し

作業用 Windows VM はもう使わないので、シャットダウンします。
正常なシャットダウンを確認したら、vSphere Client を用いて作業用 Windows VM からターゲットのディスクを取り外します。
対象のハードディスクを選んで「削除」ボタンを押下します。

![12.png](https://qiita-image-store.s3.amazonaws.com/0/40149/2b5b16c3-c74d-5a99-f17d-75812a388ab5.png)

表現が「削除」なのでぞっとしますが、削除オプションが「仮想マシンから削除」であればディスクファイルが削除される訳ではないので、「OK」ボタンを押下します。

### 6. 結果確認

Windows Server 2008 R2 を起動し、ディスク容量を確認します。
狙ったとおり、拡張することができました。

![13.png](https://qiita-image-store.s3.amazonaws.com/0/40149/95f8da70-0d05-23b0-7075-9fb09fcceb14.png)