Qemu-simple: Difference between revisions
(add about other iso images types) |
m (add link) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 24: | Line 24: | ||
{{Pill||v3.21.x-v3.22.x|cadetblue|lightblue}} | {{Pill||v3.21.x-v3.22.x|cadetblue|lightblue}} | ||
==== Install Qemu and its dependencies ==== | ==== Install Qemu and its dependencies (as root) ==== | ||
{{Cmd2|# apk add qemu qemu-img qemu-system-x86_64 qemu-ui-gtk }} | {{Cmd2|# apk add qemu qemu-img qemu-system-x86_64 qemu-ui-gtk }} | ||
<pre> | |||
# cat /proc/cpuinfo | grep -E 'model name|Processor' | |||
model name : Intel(R) Core(TM) i5-3340M CPU @ 2.70GHz | |||
... | |||
Cpu is INTEL. | |||
</pre> | |||
{{Cmd2|# modprobe kvm_intel # for INTEL cpu }} | |||
{{Cmd2|# modprobe kvm_amd # for AMD cpu }} | |||
{{Cmd2|# modprobe tun }} | {{Cmd2|# modprobe tun }} | ||
| Line 108: | Line 118: | ||
# https://docs.alpinelinux.org/user-handbook/0.1a/Installing/medium.html#_image_type | # https://docs.alpinelinux.org/user-handbook/0.1a/Installing/medium.html#_image_type | ||
# https://wiki.alpinelinux.org/wiki/QEMU | # https://wiki.alpinelinux.org/wiki/QEMU | ||
# https://wiki.alpinelinux.org/wiki/KVM | |||
# https://wiki.qemu.org/Documentation/Networking#How_to_get_SSH_access_to_a_guest | # https://wiki.qemu.org/Documentation/Networking#How_to_get_SSH_access_to_a_guest | ||
# https://www.qemu.org/docs/master/system/invocation.html#hxtool-5 | # https://www.qemu.org/docs/master/system/invocation.html#hxtool-5 | ||
# https://manned.org/pkg/alpine-3.22/qemu-doc | # https://manned.org/pkg/alpine-3.22/qemu-doc | ||
Latest revision as of 20:23, 23 September 2025
Setup walkthrough
Basic setup that gets you going, you would still need to read main Qemu documentations for advanced features.
Objective
- Install Alpine Linux.
- Install Qemu and its dependencies.
- Download Alpine Linux ISO and required files.
- Start a Qemu instance of Alpine Linux ISO.
- Test basic networking.
Test bed
WIP
- Describe here the test bed/setup used to run the scripts below.
- MODEL: Dell Laptop.
- CPU: Intel i5 3rd/4th generation with virtualization enabled.
- RAM: 8GB
Install Alpine Linux
- Diskless installs (Ram based)
- SYS installs
Tip: - For further setup to work correctly, its assumed that Alpine Linux installed in done for version between v3.21.x and v3.22.x
v3.21.x-v3.22.x
Install Qemu and its dependencies (as root)
# apk add qemu qemu-img qemu-system-x86_64 qemu-ui-gtk
# cat /proc/cpuinfo | grep -E 'model name|Processor' model name : Intel(R) Core(TM) i5-3340M CPU @ 2.70GHz ... Cpu is INTEL.
# modprobe kvm_intel # for INTEL cpu
# modprobe kvm_amd # for AMD cpu
# modprobe tun
v3.21.x-v3.22.x
Download Alpine Linux ISO and required files
# cd ~ # wget https://cdn.alpinelinux.org/v3.22/releases/x86_64/alpine-extended-3.22.0-x86_64.iso
Tip: - alpine-extended ISO should be used by new users, other images types i.e
alpine-virt and alpine-standard can also be used. Learn and use them as you go. See resource links below.
Start a Qemu instance of Alpine Linux ISO
- Basic setup (with ssh forwarding)
- Basic tap setup
v3.21.x-v3.22.x
Basic setup (with ssh forwarding)
#!/bin/sh
## -------------------------------------------------
## Simple setup (manually)
## no root privileges needed
## QEMU emulator version 10.0.0 (Alpine Linux) ####
## -------------------------------------------------
ISO=alpine-extended-3.22.0-x86_64.iso
qemu-system-x86_64 -enable-kvm -m 2048M -cdrom ${ISO} \
-device virtio-net,netdev=net0 \
-netdev user,id=net0,hostfwd=tcp::5555-:22 \
-nographic -display curses \
-boot d
## ----
## on GUEST
# ifconfig eth0 10.0.2.15
# route add default gw 10.0.2.2
# busybox ping 10.0.2.2
## assuming your HOST gateway is 192.168.1.1
# echo 'nameserver 192.168.1.1' > /etc/resolv.conf
# busybox ping alpinelinux.org
## -------------------------------------------------
v3.21.x-v3.22.x
Basic tap setup
#!/bin/sh
## -------------------------------------------------
## Manual setup with defaults and no preset scripts
## Works in root
## QEMU emulator version 10.0.0+ (Alpine Linux) ####
## modprobe tun # needed if not loaded already
## -------------------------------------------------
ISO=alpine-extended-3.22.0-x86_64.iso
qemu-system-x86_64 -enable-kvm -m 2048M -cdrom ${ISO} \
-device virtio-net,netdev=nd0 \
-netdev tap,id=nd0,ifname=tap0,script=no,downscript=no \
-nographic -display curses \
-boot d
## ----
## on HOST (after QEMU has booted)
# ifconfig tap0 10.0.2.2
## on GUEST
# ifconfig eth0 10.0.2.15
# route add default gw 10.0.2.2
## ----
## TEST (HOST) - IMPORTANT: remove firewall if any
# nc -l 1234 > filename.out
## TEST (GUEST)
# echo -e "aaa\nbbb" > test.txt
# nc 10.0.2.2 1234 < test.txt
## TEST (HOST)
# cat filename.out
## -------------------------------------------------
See also
Resources
- https://docs.alpinelinux.org/user-handbook/0.1a/Installing/medium.html#_image_type
- https://wiki.alpinelinux.org/wiki/QEMU
- https://wiki.alpinelinux.org/wiki/KVM
- https://wiki.qemu.org/Documentation/Networking#How_to_get_SSH_access_to_a_guest
- https://www.qemu.org/docs/master/system/invocation.html#hxtool-5
- https://manned.org/pkg/alpine-3.22/qemu-doc
