Назад | Перейти на главную страницу

Невозможно получить доступ к консоли или SSH в образе KVM Amazon Linux 2

Я пытаюсь создать гостевой экземпляр KVM под управлением Amazon Linux 2 в локальной среде на хосте CentOS 7. Я делаю это через SSH (например, моя локальная машина -> SSH для хоста CentOS).

Я знаю, что мой гипервизор работает, так как с помощью следующих команд я могу без проблем создать гостя CentOS 7 с доступом по SSH:

OS_IMG=CentOS-7-x86_64-GenericCloud.qcow2
DIR=/home/libvirt
SCRIPTS=$DIR/scripts
BOOT=$DIR/boot
IMG=$DIR/images
VM=centos-vm-test

# +++ Downloading image OS image
cd $BOOT
wget http://cloud.centos.org/centos/7/images/$OS_IMG

# +++ Creating meta/user data
cd $IMG/$VM
echo -e "instance-id: $VM\nlocal-hostname: $VM" > meta-data
cp $SCRIPTS/user-data user-data
cp $BOOT/$OS_IMG $VM.qcow2

# +++ Creating disk
export LIBGUESTFS_BACKEND=direct
qemu-img create -f qcow2 -o preallocation=metadata $VM.new.image 40G
virt-resize --quiet --expand /dev/sda1 $VM.qcow2 $VM.new.image
mv $VM.new.image $VM.qcow2

# +++ Creating CD-ROM containing cloud init data
mkisofs -o $VM-cidata.iso -V cidata -J -r user-data meta-data

# +++ Creating VM"
virt-install --import --name $VM \
    --memory 4096 --vcpus 2 --cpu host \
    --disk $VM.qcow2,format=qcow2,bus=virtio \
    --disk $VM-cidata.iso,device=cdrom \
    --network bridge=virbr0,model=virtio \
    --os-type=linux \
    --os-variant=centos7.0 \
    --noautoconsole

Через несколько секунд я могу бежать virsh net-dhcp-leases и вижу IP-адрес, к которому я могу подключиться по SSH.

Я попытался воспроизвести этот процесс с Amazon Linux 2, используя изображение, найденное здесь: https://cdn.amazonlinux.com/os-images/2.0.20200304.0/kvm/

Для user-data, Я пробовал свой файл CentOS (довольно длинный, в том числе много runcmd строк) и рекомендуемое базовое содержимое, которое можно найти здесь: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-2-virtual-machine.html. Я не вижу разницы при использовании двух разных файлов.

Однако это, похоже, не работает, и я застрял в том, как мне продолжить.

Я также пытался скопировать процесс именно как рекомендовано по предыдущей ссылке Amazon, включая использование genisoimage с seed.iso файл и т. д., но это не имеет значения.

Как я могу получить доступ к этой виртуальной машине или хотя бы попытаться выяснить, что не так? Журналы загрузки были бы идеальными.

Я наткнулся на исправление здесь: https://github.com/giovtorres/kvm-install-vm/blob/master/kvm-install-vm#L630

В принципе, мне нужно было использовать qemu-img resize скорее, чем qemu-img create:

if [[ $al2 == "Y" ]]; then
    qemu-img resize $VM.qcow2 40G &>> ${VM}.log

    echo "+++ Creating CD-ROM containing cloud init data"
    genisoimage -output $VM-cidata.iso \
                -volid cidata \
                -joliet -r user-data meta-data &>> ${VM}.log
else
    export LIBGUESTFS_BACKEND=direct
    qemu-img create -f qcow2 -o preallocation=metadata $VM.new.image 40G
    virt-resize --quiet --expand /dev/sda1 $VM.qcow2 $VM.new.image
    mv $VM.new.image $VM.qcow2

    echo "+++ Creating CD-ROM containing cloud init data"
    mkisofs -o $VM-cidata.iso -V cidata -J -r user-data meta-data
fi