首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EC2卷附件错误(Unix)

EC2卷附件错误(Unix)
EN

Stack Overflow用户
提问于 2015-08-07 19:52:44
回答 1查看 248关注 0票数 0

我正试着跟随用于在MongoDB实例上站立EC2的10 EC2文档。当试图将新创建的卷附加到我的实例时,我遇到了一个错误。

我正在试着运行命令

代码语言:javascript
运行
复制
$ ec2-attach-volume vol-dac9c92f  -i i-19f359db -d /dev/sdh2

收到的错误如下

Client.InvalidParameterValue:参数设备的值(/dev/sdh2 2)无效。/dev/sdh2 2不是有效的EBS设备名称。

文档的相关部分是

代码语言:javascript
运行
复制
$ (i=0; \
> for vol in $(awk '{print $2}' vols.txt); do \
>   i=$((i+1)); \
>   ec2-attach-volume $vol -i i-11eee072 -d /dev/sdh${i}; \
> done)

此命令成功执行(注意没有id号)

代码语言:javascript
运行
复制
$ ec2-attach-volume vol-dac9c92f  -i i-19f359db -d /dev/sdh

如果有人能指出我可能做错了什么,我会非常感激的。

-James

EN

回答 1

Stack Overflow用户

发布于 2016-06-13 09:10:03

附加到实例的设备根据虚拟化类型映射到不同的设备名称。

如果实例是PV (准虚拟的),那么卷可以映射为/dev/sdXY,其中X是设备字母,Y是数字(分区使用),因此可以使用/dev/sdh2

但是,对于HVM实例,Y数字格式是不可接受的--它需要是一个卷ID,而不需要分区编号命名语法,即/dev/sdh/dev/sdi等等。

naming.html -参见“EBS卷的推荐值”列。

*编辑*为HVM实例提供一个bash片段,相当于:

代码语言:javascript
运行
复制
$ (i=0; \
> for vol in $(awk '{print $2}' vols.txt); do \
>   i=$((i+1)); \
>   ec2-attach-volume $vol -i i-11eee072 -d /dev/sdh${i}; \
> done)

您可以使用基于字母的增量循环(将volmap设置为通过i设置为字母f的集合/数组,然后遍历数组,而不仅仅是递增计数器)。

代码语言:javascript
运行
复制
$ (volmap=({f..i}); i=0; \
> for vol in $(awk '{print $2}' vols.txt); do \
>   ec2-attach-volume $vol -i i-11eee072 -d /dev/xvd${volmap[i++]}; \
> done)

这将通过/dev/xvdf连接到/dev/xvdi。我使用的是xvdX而不是sdX,因此AWS卷附件与设备的内核地址匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31885595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档