Попытка установить RHEL 7 под эмуляцией QEMU s390x

Попытка установить RHEL 7 под эмуляцией QEMU s390x

Я оцениваю использование QEMU для создания виртуальных машин Linux s390x для использования в сборках программного обеспечения. У меня были некоторые успехи в создании машин с использованием новых дистрибутивов Linux, таких как RHEL 8 и Ubuntu 20, но мне действительно нужна машина RHEL 7.

Я использую Fedora 36 x86 и пробовал следующее как с пакетами Fedora QEMU 6.2, так и с текущей версией QEMU 7.x, собранной из исходного кода:

qemu-img create -f qcow2 rootfs.qcow2 20G

qemu-system-s390x \
  -M s390-ccw-virtio -m 4G -smp 2 -cpu max \
  -drive file=rhel-server-7.9-s390x-dvd.iso,media=cdrom,if=none,id=drive-virtio-disk1 \
  -device virtio-scsi -device scsi-cd,drive=drive-virtio-disk1,bootindex=1 \
  -drive file=rootfs.qcow2,if=none,id=drive-virtio-disk0 \
  -device virtio-blk-ccw,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2,scsi=off \
  -net nic,model=virtio,netdev=net1 -netdev user,id=net1 \
  -nographic -display none -serial mon:stdio \
  -d guest_errors \
  -kernel kernel.img -initrd initrd.img

Я пробовал образы kernel+initrd из области образов DVD, а также те, что были извлечены из пакета RPM ядра 3.10 на DVD. Я пробовал различные релизы RHEL 7.x, все с тем же результатом - эмулятор сразу же завершает работу, оставляя только отладочный вывод, например:

Guest crashed on cpu 0: disabled-wait
PSW: 0x000a000000000000 0x000000008badcccc

Есть ли у кого-нибудь советы, как заставить работать RHEL 7 s390x?

решение1

Похоже, ответ в том, что это невозможно из-за функций ядра, которых нет ни в одной версии RHEL7, согласно комментариямQEMU выпуск 906

Я решил свою проблему, собрав проект под эмуляцией s390x с Fedora 36, ​​используя цепочку инструментов crosstool-ng для управления версиями gcc/libc/libstdc++ и т. д., чтобы создавать артефакты, которые связываются/работают на старых операционных системах.

Связанный контент