Linuxで減らす方法はいくつかありましたが、Windows Serverではあまり見かけなかったので。
ただし、自己責任でお願いします。
また、事前にAWSマネジメントコンソールでスナップショットを取得しておくことをオススメします。
環境:
- Windows Server2012 R2 Standard
参考:
小さくなって欲しいときもあります
今回、1000GBだったEBSを240GBに縮小しています。
手順としては
Windows Serverでパーティションを縮小
↓
作業用Linuxで縮小後のEBSにクローン
↓
縮小後のEBSをWindows Serverにアタッチ
といった流れとなります。
—
コントロールパネル > コンピューターの管理 > ディスクの管理 へ移動
縮小したいパーティションを右クリック>ディスクの縮小 を選択
「〇: の縮小」ウィンドウでサイズを決定
今回はCドライブなので「C: の縮小」となっています。
また、全て縮小してしまうとディスクに余裕がなくなるので、ある程度は余裕を持たせた方が良いです。
ひとまず下記のように50,000MBの余裕を持たせて設定することとしました。
するとディスクが下記のように縮小され、未割当の領域が出来ます。
マイコンピュータを確認しても同様。
当然ですが、縮小後のEBSの容量は上記ディスク容量よりも大きい必要があるので注意。
その後AWSマネジメントコンソールへ行き、縮小後のEBS(240GB)を作成します。
EBSのアベイラビリティゾーンは、Windows ServerのEC2のアベイラリティゾーンと合わせる必要があります。
EBS作成後、作業用のLinuxのEC2を作成します。
AMIは「Amazon Linux 2 AMI (HVM), SSD Volume Type」としました。
インスタンスタイプはt2.micro、EBSはデフォルトの8GBとしています。
作業用EC2作成後、作業用EC2に縮小前(1000GB)・縮小後(240GB)のEBSをアタッチします。
/dev/sdfが縮小前のEBS、/dev/sdgが縮小後のEBSとなります。
アタッチ後、SSHにて作業用EC2に接続し、ddコマンドにてクローンを行います。
確認用のコマンドも含め下記のように操作をしました。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk mqxvda1 202:1 0 8G 0 part / xvdf 202:80 0 1000G 0 disk tqxvdf1 202:81 0 350M 0 part mqxvdf2 202:82 0 186.7G 0 part xvdg 202:96 0 240G 0 disk $ sudo fdisk -l -u /dev/sdf Disk /dev/sdf: 1000 GiB, 1073741824000 bytes, 2097152000 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xaa53c8bf Device Boot Start End Sectors Size Id Type /dev/sdf1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT /dev/sdf2 718848 392294399 391575552 186.7G 7 HPFS/NTFS/exFAT $ sudo fdisk -l -u /dev/sdg Disk /dev/sdg: 240 GiB, 257698037760 bytes, 503316480 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes $ sudo dd if=/dev/sdf of=/dev/sdg bs=512 count=1 $ sudo dd if=/dev/sdf1 of=/dev/sdg1 bs=1M 350+0 records in 350+0 records out 367001600 bytes (367 MB) copied, 5.28796 s, 69.4 MB/s $ sudo dd if=/dev/sdf2 of=/dev/sdg2 bs=1M 191199+0 records in 191199+0 records out 200486682624 bytes (200 GB) copied, 3134.87 s, 64.0 MB/s $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk mqxvda1 202:1 0 8G 0 part / xvdf 202:80 0 1000G 0 disk tqxvdf1 202:81 0 350M 0 part mqxvdf2 202:82 0 186.7G 0 part xvdg 202:96 0 240G 0 disk tqxvdg1 202:97 0 350M 0 part mqxvdg2 202:98 0 186.7G 0 part $ sudo fdisk -l -u /dev/sdg Disk /dev/sdg: 240 GiB, 257698037760 bytes, 503316480 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xaa53c8bf Device Boot Start End Sectors Size Id Type /dev/sdg1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT /dev/sdg2 718848 392294399 391575552 186.7G 7 HPFS/NTFS/exFAT※28行目の sudo dd if=/dev/sdf of=/dev/sdg bs=512 count=1 の結果が取得出来ていませんでした……
上記作業完了後、AWSマネジメントコンソールから作業用EC2を停止させ、縮小後のEBSをデタッチし、そのまま縮小後のEBSをWindows Serverにアタッチを行います。
アタッチ先は下記。
/dev/sda1
縮小前のEBSはアタッチする必要はありません。
アタッチ後、Windows Serverを起動し、リモートデスクトップ接続が行えることを確認。
接続後、再度ディスクの管理を確認すると未割当の領域が少なくなっていることが分かります。
未割当の領域をCドライブに追加する為、(C:)のパーティションを右クリック>ボリュームの拡張を選択します。
そのまま全て「次へ」を選択し、ディスクの拡張を行います。
拡張後にマイコンピュータを確認すると、240GB(一部システム領域があるので若干不足しているが)となっていることを確認します。
多分この手順で問題ないと思いますが……しばらくはスナップショットを保持して様子見してみます。