mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-09-29 10:37:25 +00:00
Trying to find the relevant yaml file was an issue as we now support `--name` and it might be in a different directory, so although it is a bit verbose outputing a whole file at least it is more consistent. Signed-off-by: Justin Cormack <justin.cormack@docker.com>
54 lines
1.2 KiB
Bash
Executable File
54 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
cd /tmp
|
|
|
|
# extract. BSD tar auto recognises compression, unlike GNU tar
|
|
# only if stdin is a tty, if so need files volume mounted...
|
|
[ -t 0 ] || bsdtar xzf -
|
|
|
|
TGZ="$(find . -name '*.tgz' -or -name '*.tar.gz')"
|
|
[ -n "$TGZ" ] && bsdtar xzf "$TGZ"
|
|
|
|
ISO="$(find . -name '*.iso')"
|
|
RAW="$(find . -name '*.raw')"
|
|
INITRD="$(find . -name '*.img')"
|
|
KERNEL="$(find . -name vmlinuz64 -or -name '*bzImage')"
|
|
CMDLINE="$(find . -name '*-cmdline')"
|
|
|
|
if [ -n "$ISO" ]
|
|
then
|
|
ARGS="-cdrom $ISO -drive file=systemdisk.img,format=raw"
|
|
elif [ -n "$RAW" ]
|
|
then
|
|
# should test with more drives
|
|
ARGS="-drive file=$RAW,format=raw"
|
|
elif [ -n "KERNEL" ]
|
|
then
|
|
ARGS="-kernel $KERNEL"
|
|
if [ -n "$INITRD" ]
|
|
then
|
|
ARGS="$ARGS -initrd $INITRD"
|
|
fi
|
|
ARGS="$ARGS -drive file=systemdisk.img,format=raw"
|
|
else
|
|
echo "no recognised boot media" >2
|
|
exit 1
|
|
fi
|
|
|
|
echo "$ARGS" | grep -q systemdisk && qemu-img create -f raw systemdisk.img 256M
|
|
|
|
if [ -n "${CMDLINE}" ]
|
|
then
|
|
CMDLINE="$(cat $CMDLINE)"
|
|
else
|
|
CMDLINE="$*"
|
|
fi
|
|
if [ -z "${CMDLINE}" ]
|
|
then
|
|
CMDLINE="console=ttyS0"
|
|
fi
|
|
|
|
qemu-system-x86_64 -machine q35,accel=kvm:tcg -device virtio-rng-pci -serial stdio -vnc none -m 1024 -append "${CMDLINE}" $ARGS
|