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
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
Network configuration;
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
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=noTools Index
This is part of the c9 Manual. Copyright (C) 2016 c9 team. See the file Gnu Free Documentation License for copying conditions.