2016-12-29 66 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的情况下使用它好。 –

相关问题