#!/bin/sh . samizdat-paths.sh iso=${samizdat_iso_dir}/samizdat.iso disk=${samizdat_iso_dir}/samizdat.disk.img layered=${samizdat_iso_dir}/${iso%.iso}.layered.iso [ -f "$layered" ] && iso=$layered [ "$1" ] && iso=$1 initrd.sh || { echo "initrd.sh failed" >&2; exit 1; }; [ "$NO_NET" ] || USE_NET=y NET='tap,vlan=0,ifname=tap0,script=no,downscript=no' [ "$SLOW_BOOT" ] || QEMU_LOADS_LINUX=y # To use qemu built-in pxe boot server: # NET='user,tftp=isolinux,bootfile=/pxelinux.0' nbd_filename=samizdat.btrfs [ "$NBD_FILENAME" ] && nbd_filename=$NBD_FILENAME initrd=${samizdat_isolinux_dir}/linux/initrd.img kernel=${samizdat_isolinux_dir}/linux/vmlinuz kcmdline_CDROM='boot=samizdat components quiet splash' kcmdline_CDROM_NET="${kcmdline_CDROM} nbdroot=,${nbd_filename}, nbddev=/dev/nbd0 ip=dhcp" kcmdline_NET="${kcmdline_CDROM_NET} netkeys" MAC='52-54-00-12-34-56' kcmdline_BOOTIF="BOOTIF=01-$MAC" set -- if [ "$USE_ISO" ]; then set -- "$@" -cdrom "$iso" if [ "$QEMU_LOADS_LINUX" ]; then set -- "$@" -initrd "$initrd" -kernel "$kernel" if [ "$NO_NET" ]; then set -- "$@" -append "$kcmdline_CDROM" else set -- "$@" -append "$kcmdline_CDROM_NET" fi else set -- "$@" -boot d fi else if [ "$QEMU_LOADS_LINUX" ]; then set -- "$@" -initrd "$initrd" -kernel "$kernel" -append "$kcmdline_NET $kcmdline_BOOTIF" else set -- "$@" -boot n fi fi set -x sudo qemu-system-x86_64 -enable-kvm -smp 2 -m 640 -k en-us \ -vga qxl \ -net nic,vlan=0,model=virtio,macaddr=$MAC \ ${USE_NET:+ -net "$NET"} \ -rtc base=localtime \ -drive index=0,media=disk,format=raw,file="$disk" \ "$@"