Tools Index

Qemu

1. Host System

Load modules, in this case kvm of intel cpu;

        # modprobe -a kvm-intel tun virtio
        

Add users to kvm group;

        # usermod -a -G kvm c9admin
        # usermod -a -G kvm username
        

2. Disk images

img
Raw disk image, allows dd to a physical device.
raw
Raw disk image, allows dd to a physical device.
qcow2
Qcow disk image file used by qemu.

Create hard disk image, there is different types, this describes how to create a qcow2 type;

        $ qemu-img create -f qcow2 crux-img.qcow2 15G
        

You can mount disk image;

        $ sudo modprobe nbd
        $ sudo qemu-nbd -c /dev/nbd0 /crux-img.qcow2
        

To disconnect image disk (ndb);

        $ sudo qemu-nbd -d /dev/nbd0
        

Information about preparing partitions and storage administration. You can use image as a normal disk, example how to use parted to create a gpt system table;

        # parted /dev/nbd0
        (parted) mklabel gpt
        (parted) mkpart ext4 0% 100%
        (parted) set 1 boot on
        
        # kpartx -a -s -l -u /dev/nbd0
        
        # mkfs.ext4 /dev/mapper/nbd0p1
        

Mount partition;

        # mount /dev/mapper/nbd0p1
        

2. Network

Network configuration;

slirp
Default virtual NAT'd network.
tun/tap
Good performance to create virtually any type of network topology.
vde
The VDE networking backend.

2.1. Tap interfaces

        KERNEL=="tun", GROUP="kvm", MODE="0660", OPTIONS+="static_node=net/tun"
        

Automatic creation of tap interface with correct permissions set for user and group, you can set only user or group;

        # tunctl -u username -g kvm -t tap0
        

Set permissions to existing tap interface;

        # tunctl -u username -t tap0
        

Manual creation of tap interface;

        # ip tuntap add name tap0 mode tap
        # chmod 0666 /dev/tap0
        # chown root:username /dev/tap0
        
        # ip addr add 10.0.2.1/24 dev tap0
        # ip link set dev tap0 up
        # ip link show
        
        # sysctl -w net.ipv4.ip_forward=1
        # iptables -t nat -A POSTROUTING -s 10.0.2.0/24 -o eth0 -j MASQUERADE
        

Guest System

Start qemu with 512 of ram, mydisk.img as disk and boot from iso

        $ qemu-system-x86_64 \
        -enable-kvm \
        -m 512 \
        -boot d -cdrom image.iso \
        -hda mydisk.img
        

Start qemu with 1024 of ram, network configured using tap0 interface device no host and boot from crux.qcow2;

        $ qemu-system-x86_64 \
        -enable-kvm \
        -m 1024 \
        -hda c9/local/crux.qcow2 \
        -net nic,model=virtio -net tap,ifname=tap0,script=no,downscript=no
        
Tools Index

This is part of the c9 Manual. Copyright (C) 2016 c9 team. See the file Gnu Free Documentation License for copying conditions.