自定义实例存储 Centos7 AMI

自定义实例存储 Centos7 AMI

我正在尝试自定义基本实例存储 Centos7 AMI。我使用的图像是:RightImage_CentOS_7.0_x64_v14.1.4_HVM - ami-d34b02e3(实例存储 hvm)

我启动了实例,对其进行了自定义,安装了所需的工具,执行了 aws doc 中描述的所有操作,上传并注册了图像,但图像无法启动。

centos7 映像附带 grub2,这似乎是一个交易破坏者,因为该工具需要 grub。

以下是完整步骤:

if [ ! -e /tmp/build/rpms/flag ]; then
    yum install -y /tmp/build/rpms/ec2-ami-tools.noarch.rpm
    mkdir /usr/local/ec2
    unzip -o /tmp/build/rpms/ec2-api-tools.zip -d /usr/local/ec2
    mkdir -p grub
    rm -rf grub/*
    pushd grub && rpm2cpio /tmp/build/rpms/grub-0.97-93.el6.x86_64.rpm | cpio -idmv && popd
    cp -a grub/sbin/* /sbin/
    cp -a grub/usr/* /usr/
    touch /tmp/build/rpms/flag
fi

export JAVA_HOME="/usr/java/default"
export EC2_HOME=/usr/local/ec2/ec2-api-tools-1.7.3.0
export PATH=$PATH:$EC2_HOME/bin

cp /tmp/build/menu.lst /boot/grub/

ec2-bundle-vol -k /tmp/build/cert/privkey.pem -c /tmp/build/cert/privkey.pem -u {{aws_account_id}} -r x86_64 -e /tmp/build
ec2-upload-bundle -b {{s3_ami_upload_bucket}}/{{current_date_timestamp}} -a {{ec2_access_key_id}} -s {{ec2_secret_access_key}} -m /tmp/image.manifest.xml --region us-west-2
ec2-register {{s3_ami_upload_bucket}}/{{current_date_timestamp}}/image.manifest.xml -n supercow_{{current_date_timestamp}} -O {{ec2_access_key_id}} -W {{ec2_secret_access_key}} --region us-west-2 --virtualization-type hvm

{{}} 之间的所有内容都被诱人的引擎用实际值替换。

这是我创建的 /boot/grub/menu.lst,试图欺骗工具做正确的事情,但它仍然不起作用。

default=0
timeout=0
hiddenmenu

title CentOS Linux (vmlinuz-3.10.0-123.20.1.el7.centos.plus.x86_64) 7 (Core)
    root (hd0,0)
    kernel /boot/vmlinuz-3.10.0-123.20.1.el7.centos.plus.x86_64 ro root=/ consoleblank=0 console=ttyS0 LANG=en_US.UTF-8 loglvl=all sync_console console_to_ring earlyprintk=xen xen_emul_unplug=unnecessary xen_pv_hvm=enable
    initrd /boot/initramfs-3.10.0-123.20.1.el7.centos.plus.x86_64.img

所以基本上我需要弄清楚如何让 grub 开心,而我基本上对此毫无头绪。任何使它工作的指示都将不胜感激。

相关内容