質問:
システムセットアップ全体を再作成せずに、既存のAMIで新しいAWS EC2クラス(r3、i2)をどのように使用する必要がありますか?
新しいEC2クラスはHVMベースの仮想化のみをサポートしますが、私はPVMAMIイメージしか持っていません。
システムセットアップ全体を再作成せずに、既存のAMIで新しいAWS EC2クラス(r3、i2)をどのように使用する必要がありますか?
新しいEC2クラスはHVMベースの仮想化のみをサポートしますが、私はPVMAMIイメージしか持っていません。
回答:
Ubuntu HVM linux、任意のバージョン、新規を起動します
Ubuntu /を既存のAMI / PVM linuxで起動し、それらにgrubパッケージをインストールします。 apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
PVMLinuxを停止します
PVM linuxでルート(/ dev / sda1)パーティションをデタッチします
PVMlinuxルートパーティションを実行中のHVMlinuxのどこかに接続します(例:/ 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
HVMLinuxを停止します
/ dev / sda1の元のルートをデタッチし、/ dev / sdfPVMルートをデタッチします
PVMルートを/ dev / sda1としてHVMLinuxに接続します
HVM linuxを起動してください。
実行中のHVMLinuxから新しいAMIイメージを作成すると、HVMが仮想化されます。
warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged.. /usr/sbin/grub-bios-setup: error: will not proceed with blocklists.
その後、すべてが正常に見えますが、起動しないか、起動しない理由がわかりません。
xvd*
これらのインスタンスにはありませんnvme*
。命名規則のみがあります。xvd
正しいnvme
ものと交換しても機能しません。:(
@divyenduzからの回答は機能しますが、最新(2019年頃)のAWSEC2のクリーンアップと説明が必要です。重要なのは、最新のインスタンスクラスはデバイス名を異なる方法で変換することです。
これが私の変更した手順です。
わかりやすくするために、ノードは次のとおりです。
続行する前に:元のノードPVM01をバックアップします
ノード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を終了します
DEVNAME
後に変数を再作成することを忘れないでくださいchroot
。