KernelNewbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Hacking

  • Frontpage

  • Kernel Hacking

  • Kernel Documentation

  • Kernel Glossary

  • FAQ

  • Found a bug?

  • Kernel Changelog

  • Upstream Merge Guide

Projects

  • KernelJanitors

  • KernelMentors

  • KernelProjects

Community

  • Why a community?

  • Regional Kernelnewbies

  • Personal Pages

  • Upcoming Events

References

  • Mailing Lists

  • Related Sites

  • Programming Links

Wiki

  • Recent Changes

  • Site Editors

  • Side Bar

  • Tips for Editors

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 3 as of 2020-04-07 08:52:23
KernelNewbies:
  • OutreachyfirstpatchAlt_qemu_draft

Running Linux in a VM

Hardware Requirements

You need a system with virtualization (VT-d), at least 4GB of RAM, and 40GB of free hard drive space in order to run Linux in a VM. If you want to download and compile the kernel, you may need additional space of up to 20GB.

Download Debian

Download link to Get a recent version of Debian.

Install Qemu Virtualizer

Instructions for Debian OS

apt-get install qemu-kvm qemu-system-x86

Setup Qemu

You need a space for VM either a file image or disk block.

Example with using a file for VM.

Create a 50GB qcow2 format image file for VM Note qcow2 grows in space as needed. In the start it is not 50GB in size.

qemu-img create -f qcow2 debian-vm.img 50G

Simple way to start Qemu

Get a suitable iso image file for distro installation.

qemu-system-x86_64 -enable-kvm -smp 2 -boot menu=on -m 2048m -cdrom debian-install-iso.img -hda debian-vm.img -vga std

Advanced Qemu

Create a script file qemu.sh with executable permissions:

touch qemu.sh;
chmod +x qemu.sh

Edit the qemu.sh and add lines like this:

MEM="2048m"
BOOT="menu=on"

[ ! -z "$1" ] && MEM="$1"
[ ! -z "$2" ] && BOOT="$2"

MACH="-machine q35"
CPU="-cpu host"

CDROM_IMG="/path/to/debian-install-iso.img"
HDA_IMG="/path/to/debian-vm.img"

CDROM="-cdrom ${CDROM_IMG}"
HDA="-hda ${HDA_IMG}"

VGA="-vga std"

SSH_ENABLE="hostfwd=tcp:127.0.0.1:10101-:22"

NET="-netdev user,id=n1,${SSH_ENABLE} -net nic,netdev=n1,model=virtio-net-pci"

PATH_9P="~/9p/shared"

P9="-fsdev local,id=p9d1,path=${PATH_9P},security_model=none"
P9="${P9} -device virtio-9p-pci,fsdev=p9d1,mount_tag=p9_mnt"

USB="-usb"
USB_MICE="-usbdevice tablet"

SOUNDHW="-device intel-hda,msi=auto -device hda-duplex"

qemu-system-x86_64 -enable-kvm ${MACH} ${CPU} -smp 2 -boot "${BOOT}" \
-m "${MEM}" ${CDROM} ${HDA} ${NET} ${P9} ${USB} ${USB_MICE} ${SOUNDHW} \
${VGA} -rtc base=utc

Put qemu.sh in PATH directory if needed. E.g. ~/bin.

Above script sets up network, usb, sound, video, 9p, and ssh access to Qemu VM Guest OS.

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01