2016-12-29 58 views
5

我見過很多關於添加EBS卷Linux而不是Windows的問題。假設您發現您的磁盤空間不足(可能是通過CloudWatch)並希望添加另一個EBS卷。這可以用Powershell完成嗎?使用Powershell將EBS卷附加到Windows EC2

我不想使用diskpart.exe,因爲解析其結果更困難(不是本機Powershell命令)。

+0

不熟悉確切的cmdlet,但我知道amazon提供了通過powershell實際添加/創建卷的功能,除此之外,您只需格式化磁盤,您可以使用[Win32_Volume](https: //msdn.microsoft.com/en-us/library/aa390432(v=vs.85).aspx)WMI類 –

+0

謝謝@MikeGaruccio。我已經想出了一些東西,併發布了一個答案,但我會檢查你的鏈接。 –

+0

Ahh看起來像使用了一些較新的cmdlet,如果您的機器支持它們,絕對是一種可行的方式,如果您的任何系統比2012年舊,WMI將是一個有用的回退。 –

回答

7

希望這可以幫助那裏的人。 AWS的工作很簡單,但花了我一段時間才找到Windows使用它的所有東西。

這個答案是剝離下來的簡潔,所以一定要確保:

  1. 你處理的AWS API PowerShell的例外
  2. 您的卷是「可用」之前嘗試將其連接到一個EC2
  3. 音量顯示「使用中」一旦你連接它

2和3可以通過Get-EC2Volume API來完成。

創建EBS卷:

$volume = New-EC2Volume -Size $sizeInGB -AvailabilityZone $az -VolumeType $vType 

裝上捲到EC2:

Add-EC2Volume -InstanceId $toInstanceId -VolumeId $volume.Id -Device $devId -Region $region 

Windows方面:

找到剛纔附加

$diskNumber = (Get-Disk | ? { 
    ($_.OperationalStatus -eq "Offline") -and ($_."PartitionStyle" -eq "RAW") }).Number 
EBS卷

啓動ALIZE磁盤

Initialize-Disk -Number $diskNumber -PartitionStyle "MBR" 

創造最大空間的分區,分配驅動器號,讓 「活動」

$part = New-Partition -DiskNumber $diskNumber -UseMaximumSize -IsActive -AssignDriveLetter 

格式的新驅動

Format-Volume -DriveLetter $part.DriveLetter -Confirm:$FALSE 

享受!

+0

太棒了!我使用這個答案來創建我在user_data腳本中使用的以下腳本:https://gist.github.com/anderssonjohan/fa88e6ddf883fd161698caac68912394它與terraform一起使用,但它只是一個普通的user_data init腳本,因此可以在不使用terraform的情況下使用它好。 –

相關問題