在亚马逊上创建 ec2 映像在 mkfs.ext3 处失败

在亚马逊上创建 ec2 映像在 mkfs.ext3 处失败

我正在尝试在 Amazon 云中创建我的 ec2 实例的映像。到目前为止,这有点冒险。我确实设法安装了 Amazon 的 ec2-api-tools,这比看起来要难。然后我运行:

 ec2-bundle-vol -d /mnt -k pk-{key}.pem -c cert-{cert}.pem -u {uid} -s 1536

返回:

正在将 / 复制到映像文件 /mnt/image... 不包括:

    /sys/kernel/debug
    /sys/kernel/security
    /sys
    /proc
    /dev/pts
    /dev
    /dev
    /media
    /mnt
    /proc
     /sys
     /etc/udev/rules.d/70-persistent-net.rules
     /etc/udev/rules.d/z25_persistent-net.rules
     /mnt/image
    /mnt/img-mnt
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00677357 s, 155 MB/s
mkfs.ext3: option requires an argument -- 'L'
Usage: mkfs.ext3 [-c|-l filename] [-b block-size] [-f fragment-size]
        [-i bytes-per-inode] [-I inode-size] [-J journal-options]
        [-G meta group size] [-N number-of-inodes]
        [-m reserved-blocks-percentage] [-o creator-os]
        [-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
        [-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]
        [-T fs-type] [-U UUID] [-jnqvFKSV] device [blocks-count]
ERROR: execution failed: "mkfs.ext3 -F /mnt/image -U 1c001580-9118-4a50-9a25-dcf02be6d25f -L "

因此 mkfs.ext3 需要 -L,即卷名。但 ec2-bundle-vol 似乎不接受卷名作为参数,文档 (http://docs.amazonwebservices.com/AmazonEC2/gsg/2006-06-26/creating-an-image.html) 似乎不认为应该需要它。当然他们的示例命令:

# ec2-bundle-vol -d /mnt -k ~root/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem -u 495219933132 -s 1536

没有指定任何内容。

那么...有什么帮助吗?我遗漏了什么?

答案1

好吧,我没能弄清楚导致错误的原因,但我确实找到了更好的方法。

事实证明,您可以从 AWS 控制台执行此操作,而不必从命令行使用 ec2-bundle-vol 来创建映像。

右键单击 EC2 选项卡中实例下列出的实例,然后会出现创建映像选项(如果 Amazon 在其文档中提到这一点就好了……)。此操作没有任何错误,但最终停止并重新启动了实例,这是我没有想到的。

答案2

经过一番研究,我发现缺少标签参数,因为它是一个空字符串(而不是预期的空值)。我不知道该怪谁,但我找到了一个解决方法。

笔记:我从来没有用 ruby​​ 写过一行代码。

大约在文件第 141 行/usr/lib/ec2-ami-tools/lib/ec2/platform/linux/image.rb代替:

mkfs += [ '-L', label ] if label

经过

mkfs += [ '-L', label ] if !label.to_s.empty?

然后它就可以工作了!

答案3

尝试标记你的根分区:

$ sudo e2label /dev/sda1 root

它对我有用。

答案4

使用较新版本的 ec2-ami-tools (1.3.49953)。可以从此处获取:

https://launchpad.net/ubuntu/lucid/amd64/ec2-ami-tools/1.3.49953-0ubuntu1~lucid1 (适用于 64 位)

https://launchpad.net/ubuntu/lucid/i386/ec2-ami-tools/1.3.49953-0ubuntu1~lucid1 (适用于 32 位)

相关内容