我正在尝试自定义基本实例存储 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 开心,而我基本上对此毫无头绪。任何使它工作的指示都将不胜感激。