システム設定全体を再作成せずに、既存のAMIで新しいAWS EC2クラス(r3、i2)を使用するにはどうすればよいですか?
新しいEC2クラスはHVMベースの仮想化のみをサポートしますが、PVM AMIイメージしかありません。
Ubuntu HVM Linux、任意のバージョン、新規を起動します
既存のAMI/PVM linuxでUbuntuを起動し、grubパッケージをインストールします:apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
PVM Linuxを停止します
PVM Linuxでルート(/ dev/sda1)パーティションを切り離します
PVM linuxルートパーティションを実行中のHVM linuxに接続します(例:/ dev/sdf)
HVM Linuxの場合:mkdir -p /mnt/xvdf && mount /dev/xvdf /mnt/xvdf
rsync -avzXA /boot/ /mnt/xvdf/boot/
mount -o bind /dev /mnt/xvdf/dev && mount -o bind /dev/pts /mnt/xvdf/dev/pts && mount -o bind /proc /mnt/xvdf/proc && mount -o bind /sys /mnt/xvdf/sys
chroot /mnt/xvdf
grub-install --no-floppy --recheck --force /dev/xvdf
update-grub2
chrootを終了:CTRL + D
hVM Linuxを停止します
/ dev/sda1の元のルートをデタッチし、/ dev/sdf PVMルートをデタッチします
pVMルートをHVM linuxに/ dev/sda1として接続します
HVM linuxを起動します。
実行中のHVM Linuxから新しいAMIイメージを作成すると、HVMが仮想化されます。
@divyenduzからの回答は機能しますが、最新(2019年頃)のAWS EC2のクリーンアップと説明が必要です。重要なことに、最新のインスタンスクラスはデバイス名を異なる方法で変換します。
変更した手順は次のとおりです。
明確にするために、ノードは次のとおりです。
手順を実行する前:オリジナルをバックアップNode PVM01
前提条件のインストールNode PVM01
pVM01にgrubパッケージをインストールします
apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
ノードPVM01を停止します
PVM01ルートパーティション(前の手順の新しいボリューム)を新しいHVM01/dev/sdfに接続します
ssh PVM01 sudo fdisk -l
HVM01の場合:
# For xvdf, e.g. on C3.XLARGE
DEVNAME=xvdf1
# For nvme, e.g. on C5.XLARGE
DEVNAME=nvme1n1
mkdir -p /mnt/${DEVNAME} && mount /dev/${DEVNAME} /mnt/${DEVNAME}
rsync -avzXA /boot/ /mnt/${DEVNAME}/boot/
mount -o bind /dev /mnt/${DEVNAME}/dev && mount -o bind /dev/pts /mnt/${DEVNAME}/dev/pts && mount -o bind /proc /mnt/${DEVNAME}/proc && mount -o bind /sys /mnt/${DEVNAME}/sys
chroot /mnt/${DEVNAME}
grub-install --no-floppy --recheck --force /dev/${DEVNAME}
update-grub2
CTRL + Dでchrootを終了します