Skip to content

sjp38/qemu_tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
qemu_tools
==========

Set of simple tools for qemu usage.  Because these tools are made for kernel
hacking purpose, would not fit for general usecases.


NOTE
====

These tools are developed and tested on a 'Ubuntu 18.04 Server' host only.  May
not work well on other distributions.


Getting Started
===============

Below simple commands will give you a virtual machine with Ubuntu install
prompt.

    $ ./install.sh
    $ ./mkimg.sh 32G my.disk
    $ wget http://releases.ubuntu.com/18.04/ubuntu-18.04.3-live-server-amd64.iso
    $ sudo ./startvm.sh --graphic --cdrom ubuntu-18.04.3-live-server-amd64.iso my.disk

Above command install QEMU (line 1), create a 32GB-sized disk image (line 2),
get Ubuntu 18.04 installation image file (line 3), and finally start a VM with
the installation image and the disk image (line 4).  The Ubuntu 18.04
installation image file could be changed.  You could find and use the link by
yourself.

Once you finished the installation, you will have an OS installed disk image.
Or, you could simply get one from other people.  Then, you can boot it:

    $ sudo ./startvm.sh <disk image file>


install.sh
==========

`install.sh` fetches source code of qemu v5.2.0 and builds it.  It also
installs necessary packages.  Just type `./install.sh` on your command line.
Other tools in this repository would not work without that.


mkimg.sh
========

`mkimg.sh` makes a `qcow2` format disk image.  Usage is simple:

```
Usage: ./mkimg.sh <size> <image file path>
```

- `<size>`:	Size of the disk.  You may use 'G' for gibibytes.
		(e.g., 32G for 32 GiB)
- `<image file path>`:	Path to the disk file that will be generated.


startvm.sh
==========

`startvm.sh` creates new virtual machine using qemu-kvm.  It's usage is as
below:

```
Usage: ./startvm.sh [OPTIONS] <path to disk file> [<nr_cores> [<ram size>]]
  --graphic       start vm in graphic mode
  --curses        start vm in curses mode
  --sshport       port for ssh server
  --cdrom         cdrom image
```

`<nr_cores>`: Number of virtual CPUs for the virtual machine.
	      Defaults to 1/2 of host CPUs.
`<ram size>`: Size of ram for the virtual machine.  You can use 'G' or 'M'
	      suffix for Gibi-bytes and Mibi-bytes.
	      Defaults to 1/4 of host RAM.
`--graphic`:  Start the virtual machine in graphic mode.
`--curses`:   Start the virtual machine in curses mode.
`--sshport`:  The tool forward 22 port of the virtual machine to this port of
	      host machine.  If you want ssh connection to the virtual machine,
	      you may use this port.
	      Defaults to 2242.
`--cdrom`:    Start the virtual machine as specified cdrom image is inserted.
              For installation CD images, please refer to
              https://www.debian.org/releases/,
              http://releases.ubuntu.com or
              https://dl.fedoraproject.org/pub/fedora/linux/releases/
`--mon`:      Export qemu monitor to specified unix domain socket.
`--qmp`:      Export qmp to specified unix domain socket.
`--incoming`: Start VM as migration incoming mode waiting for specified socket.


Author
======

SeongJae Park <sj38.park@gmail.com>

About

Personal tools for qemu based kernel hacking

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages