summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2021-01-23 21:00:41 -0300
committerDavid P <megver83@parabola.nu>2021-01-23 21:05:16 -0300
commitf63664db672844dcfded8121535987d952a25267 (patch)
treee06dfbef2e4707704618cc2d3afc33810b0dc1db /scripts
parentc1247cad56aef820a18f51ea013c146027030b07 (diff)
sync with archiso
imported changes: d153b48 (HEAD -> master, origin/master, origin/HEAD) mkarchiso: fix typos 0ae5cd9 lint ALL (future) scripts/*.sh, not just run_archiso.sh 608d110 add -c => -cdrom cloud-init.iso support to run_archiso.sh 8830471 add cloud-init files to .gitignore (and loosen out/ and work/) 9553439 make run_archiso forward VM's port 22 to host 60022, for easy SSH testing 833cbd5 enable SSH server in releng profile 9b03e0b add cloud-init to releng e556491 add VNC support to run_archiso.sh 64091a1 Combine sed commands to reduce file writes Signed-off-by: David P <megver83@parabola.nu>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/run_parabolaiso.sh26
1 files changed, 22 insertions, 4 deletions
diff --git a/scripts/run_parabolaiso.sh b/scripts/run_parabolaiso.sh
index b3063a5..cea5d2c 100755
--- a/scripts/run_parabolaiso.sh
+++ b/scripts/run_parabolaiso.sh
@@ -28,6 +28,8 @@ Options:
-i [image] image to boot into
-s use Secure Boot (only relevant when using UEFI)
-u set boot type to 'UEFI'
+ -v use VNC display (instead of default SDL)
+ -c [image] attach an additional optical disc image (e.g. for cloud-init)
Example:
Run an image using UEFI:
@@ -84,20 +86,27 @@ run_image() {
)
fi
+ if [[ -n "${oddimage}" ]]; then
+ qemu_options+=(
+ '-device' 'scsi-cd,bus=scsi0.0,drive=cdrom1'
+ '-drive' "id=cdrom1,if=none,format=raw,media=cdrom,readonly=on,file=${oddimage}"
+ )
+ fi
+
qemu-system-x86_64 \
-boot order=d,menu=on,reboot-timeout=5000 \
-m "size=3072,slots=0,maxmem=$((3072*1024*1024))" \
- -k en \
+ -k en-us \
-name parabolaiso,process=parabolaiso_0 \
-device virtio-scsi-pci,id=scsi0 \
-device "scsi-${mediatype%rom},bus=scsi0.0,drive=${mediatype}0" \
-drive "id=${mediatype}0,if=none,format=raw,media=${mediatype/hd/disk},readonly=on,file=${image}" \
- -display sdl \
+ -display "${display}" \
-vga virtio \
-audiodev pa,id=snd0 \
-device ich9-intel-hda \
-device hda-output,audiodev=snd0 \
- -device virtio-net-pci,romfile=,netdev=net0 -netdev user,id=net0 \
+ -device virtio-net-pci,romfile=,netdev=net0 -netdev user,id=net0,hostfwd=tcp::60022-:22 \
-machine type=q35,smm=on,accel=kvm,usb=on,pcspk-audiodev=snd0 \
-global ICH9-LPC.disable_s3=1 \
-enable-kvm \
@@ -119,16 +128,18 @@ set_image() {
}
image=''
+oddimage=''
accessibility=''
boot_type='bios'
mediatype='cdrom'
secure_boot='off'
+display='sdl'
qemu_options=()
working_dir="$(mktemp -dt run_parabolaiso.XXXXXXXXXX)"
trap cleanup_working_dir EXIT
if (( ${#@} > 0 )); then
- while getopts 'abdhi:su' flag; do
+ while getopts 'abc:dhi:suv' flag; do
case "$flag" in
a)
accessibility='on'
@@ -136,6 +147,9 @@ if (( ${#@} > 0 )); then
b)
boot_type='bios'
;;
+ c)
+ oddimage="$OPTARG"
+ ;;
d)
mediatype='hd'
;;
@@ -152,6 +166,10 @@ if (( ${#@} > 0 )); then
s)
secure_boot='on'
;;
+ v)
+ display='none'
+ qemu_options+=(-vnc 'vnc=0.0.0.0:0,vnc=[::]:0')
+ ;;
*)
printf '%s\n' "Error: Wrong option. Try 'run_parabolaiso -h'."
exit 1