#!/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"