我在尝试创建实例存储服务器捆绑包时遇到问题
Ubuntu 12.10
ec2-bundle-vol \
--user $EC2_USER \
--privatekey $EC2_PRIVATE_KEY \
--cert $EC2_CERT \
--arch x86_64 \
--exclude /mnt,/tmp,/var/tmp \
--destination /mnt/bundles/$BUNDLE_NAME/ \
--prefix $BUNDLE_NAME
Excluding:
/
/proc
/sys
/sys/fs/fuse/connections
/sys/kernel/debug
/sys/kernel/security
/dev
/dev/pts
/dev
/media
/mnt
/proc
/sys
/etc/udev/rules.d/70-persistent-net.rules
/etc/udev/rules.d/z25_persistent-net.rules
/mnt
/tmp
/var/tmp
/mnt/bundles/130309
/mnt/img-mnt
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0024517 s, 428 MB/s
mke2fs 1.42.5 (29-Jul-2012)
loop: can't delete device /dev/loop0: No such device or address
Bundling image file...
ERROR: can't convert Fixnum into String
任何想法可能出错?
谢谢!
答案 0 :(得分:0)
dev目录是devices目录,因此你不能复制,loop0是环回连接器,通常是对另一个已安装文件系统的引用。
我注意到你的排除行:
--exclude /mnt,/tmp,/var/tmp \
您不直接排除/dev
,但确实排除了/mnt
,因此我猜您不希望将外部文件系统添加到您的图像中。但是输出中提到了/dev
目录两次,您是否尝试在命令行参数中明确排除/dev
,/dev/loop0
或/dev/loop*
?
答案 1 :(得分:0)
从1.9降级到ruby 1.8或者开始安装ruby 1.8。似乎AMI工具不兼容1.9。
apt-get install ruby1.8
答案 2 :(得分:0)
您可以应用此修补程序并继续使用ruby1.9。 请参阅原始文章:ec2_upload_bundle and ruby 1.9: can't convert Fixnum into String (非常感谢 decodeideas !)
从原始文章中复制粘贴:
以下适用于以下情景
当您使用ec2_upload_bundle重新捆绑您修改的AMI时,您将收到错误
ERROR: can't convert Fixnum into String
调试这个的技巧是将--debug传递给ec2命令。修复程序已打开 /usr/lib/ec2-ami-tools/lib/ec2/amitools/util.rb第19行 你需要改变?A到?A.ord得到这一行:
(0..19).inject("") {|ident, n| ident+(?A.ord + Kernel.rand(26)).chr}
在进行更改之前,您可以使用
重现问题ruby1.9 -r /usr/lib/ec2-ami-tools/lib/ec2/amitools/util -e 'puts gen_ident'
应用补丁后,你应该得到一个短暂的随机序列 字母。