【问题标题】:Attach EBS Volume to Windows EC2 with Powershell使用 Powershell 将 EBS 卷附加到 Windows EC2
【发布时间】:2017-01-13 04:32:12
【问题描述】:

我看到很多关于添加 EBS 卷 Linux 的问题得到解答,但 Windows 没有。假设您发现磁盘空间不足(可能通过 CloudWatch)并想要添加另一个 EBS 卷。这可以用Powershell完成吗?

我不想使用 diskpart.exe,因为它更难解析其结果(不是本机 Powershell 命令)。

【问题讨论】:

  • 不熟悉确切的 cmdlet,但我知道亚马逊提供了通过 powershell 实际添加/创建卷的能力,除此之外,您只需要格式化磁盘,您可以使用 @ 987654321@WMI类
  • 谢谢@MikeGaruccio。我已经想出办法并发布了答案,但我会查看您的链接。
  • 啊,看起来您使用了一些较新的 cmdlet,如果您的机器支持它们,绝对是可行的方法,如果您的任何系统早于 2012 年,WMI 将是一个有用的后备。
  • 是的,没有考虑过旧机器,但这似乎对我有用......谢谢@MikeGaruccio

标签: powershell amazon-ec2


【解决方案1】:

希望这可以帮助那里的人。 AWS 的东西很简单,但我花了一段时间才找到 Windows 使用它的所有东西。

为简洁起见,此答案已被删除,因此请确保:

  1. 您已处理 AWS Powershell API 异常
  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 端:

找到您刚刚附加的 ebs 卷

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

初始化磁盘

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

创建最大空间分区,分配驱动器号,使“活动”

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

格式化新驱动器

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

享受吧!

【讨论】:

  • 太棒了!我使用这个答案创建了我在 user_data 脚本中使用的以下脚本:gist.github.com/anderssonjohan/fa88e6ddf883fd161698caac68912394 它与 terraform 一起使用,但它只是一个普通的 user_data 初始化脚本,因此它也可以在没有 terraform 的情况下使用。
  • 有什么方法可以做到这一点而不格式化它?我想附加一个包含我不想丢失的数据的卷。
  • @Donuts 你有什么办法吗,我完全被困在同一点上。任何意见表示赞赏。
  • @Deepak 我确实让它工作了。这就是我所做的Get-Volume | Where-Object FileSystem -Eq "" | Format-Volume -FileSystem NTFS -NewFileSystemLabel "Data" -Confirm:$false;
  • 是否有任何 AWS API 可以实现相同的功能?或 SDK
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-05
  • 2018-12-29
  • 2019-01-23
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 2020-07-20
相关资源
最近更新 更多