🔒 Repository is read-only – file editing is disabled.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
#!/bin/bash
# qemu-install-test.sh – test INSTALATORA PaganLinux w QEMU.
# Boot z ISO (BIOS/SeaBIOS) + WIRTUALNY DYSK, na który instalujesz system.
#
# Użycie:
# ./qemu-install-test.sh [plik-dysku] # domyślnie /tmp/pagan-install-test.img (20G)
# SIZE=30G ./qemu-install-test.sh /tmp/test.img
#
# W VM dysk widnieje jako /dev/sda – instalator instaluje NA NIEGO.
# Dysk to zwykły plik na hoście; fizyczne dyski hosta nie są ruszane.
# Po instalacji: uruchom ponownie bez ISO: qemu-system-x86_64 -enable-kvm -m 4096 \
# -drive file=/tmp/pagan-install-test.img,format=raw,if=ide \
# -netdev user,id=n1 -device virtio-net-pci,netdev=n1 \
# -device qemu-xhci,id=xhci -device usb-tablet,bus=xhci.0 -device virtio-vga -display gtk
# (usb-tablet = mysz absolutna: kursor chodzi za kursorem hosta, bez grabowania.
# UWAGA: QEMU 11 nie tworzy domyślnego kontrolera USB – bez `qemu-xhci` pada
# „No 'usb-bus' bus found for device 'usb-tablet'”. W działającej VM można
# dodać w locie z monitora QEMU: Ctrl+Alt+2 → device_add qemu-xhci,id=xhci →
# device_add usb-tablet,bus=xhci.0 → Ctrl+Alt+1)
set -u
cd "$(dirname "$0")" || exit 1
ISO="$(ls -t ISO/Pagan-Linux-*.iso 2>/dev/null | head -n1)"
if [ -z "${ISO:-}" ]; then
echo "Brak ISO (ISO/Pagan-Linux-*.iso) w: $(pwd)"
exit 1
fi
DISK="${1:-/tmp/pagan-install-test.img}"
SIZE="${SIZE:-20G}"
if [ ! -f "$DISK" ]; then
echo "Tworzę wirtualny dysk: $DISK (${SIZE}, sparse)..."
truncate -s "$SIZE" "$DISK" || { echo "Nie udało się utworzyć dysku $DISK"; exit 1; }
fi
echo "ISO : $ISO"
echo "Dysk: $DISK → w VM jako /dev/sda (instalacja trafi tutaj; dyski hosta nietknięte)"
echo "Sieć: user-mode (gość dostaje DHCP 10.0.2.15, brama/DNS 10.0.2.2/10.0.2.3)"
echo " w live sprawdź: nmcli device status; ip a; ping -c1 10.0.2.2"
echo " UWAGA: sieć działa tylko wtedy, gdy w obrazie JEST NetworkManager.service"
echo " (bez niej live nie podnosi interfejsu – to NIE wina QEMU)."
echo "(log serial: qemu_install.log)"
: > qemu_install.log
exec qemu-system-x86_64 -enable-kvm -m "${MEM:-4096}" -smp 4 -cpu host \
-boot d \
-cdrom "$ISO" \
-drive file="$DISK",format=raw,if=ide \
-netdev user,id=n1 -device virtio-net-pci,netdev=n1 \
-device qemu-xhci,id=xhci -device usb-tablet,bus=xhci.0 \
-device virtio-vga -display gtk \
-serial file:"$PWD/qemu_install.log"