实验目的:
1、做实验用,所以要源码安装(而且个人感觉源码安装甚至比apt安装更方便,因为apt里面的qemu-xxxx可真多;另外好像有docker版本的qemu,但是我觉得)
2、新版本的qemu和以前不太一样,比如VNC连接这个,我就没在旧版本的教程里看到。更新:不过在qemu-system-x86_64 -h
看到了关闭vnc server的选项。Display options: -display vnc=<display>[,<optargs>] -display none select display backend type The default display is equivalent to "-vnc localhost:0,to=99,id=default"
实验环境:
ubuntu 16.04
qemu-6.0.0-rc4
相关软件: vncviewer
安装
依赖:python 3.6以上
python 3.6安装
我一开始使用python源码进行安装,但是遇到了一些问题,不过感觉像是我没调好,反正最后还是apt安装python容易些
$ sudo add-apt-repository ppa:deadsnakes/ppa # 网上说如果提示add-apt-repository命令不存在的话,可以安装 software-properties-common 这个软件包
或者在source.list里面加下面这两行(第二行可以注释)
`
deb http://ppa.launchpad.net/deadsnakes/ppa/ubuntu xenial main
# deb-src http://ppa.launchpad.net/deadsnakes/ppa/ubuntu xenial main
`
$ sudo apt update
# $ sudo apt install python3.6 #只安装这个不行,少了很多文件,安装python3.6-dev就可以了
$ sudo apt install python3.6-dev
# 依赖 (https://wiki.qemu.org/Hosts/Linux)
$ sudo apt install python3-pip
$ sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev
# python3.6-gdbm,运行时用到的好像
sudo apt-get install python3.6-gdbm
Get:1 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu xenial/main amd64 python3.6-gdbm amd64 3.6.13-1+xenial2 [61.3 kB]
下载并编译qemu源码
两个办法,一个是下载包,一个是git clone(git clone的缺点是很多组件需要进行更新,比较慢,不过我一开始没想那么多,我是选择的git clone)
- (二选一)To download and build QEMU 6.0.0-rc4:
tar xvJf qemu-6.0.0-rc4.tar.xz
cd qemu-6.0.0-rc4
./configure
make -j 16
- (二选一)To download and build QEMU from git:
git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
git checkout v6.0.0-rc4 # 这一步是我加的,切换到稳定版本
git submodule init
git submodule update --recursive # 需要从gitlab clone项目,受网速影响,属实有点慢
./configure
# configure --enable-debug
make -j 16
# The latest development happens on the master branch. The stable trees are located in branches named stable-X.YY branch, where X.YY is the release version.
# 如果要在全局使用
sudo make install
使用
测试(使用-nographic
)
- 运行qemu
# 下载镜像
$ wget http://lassauge.free.fr/qemu/release/linux-0.2.img.bz2
# 解压
$ bunzip2 linux-0.2.img.bz2
# 运行
$ cd qemu的路径
$ build/qemu-system-i386 linux-0.2.img -nographic
### 测试(使用vncviewer)
1. 运行qemu
```shell
# 下载镜像
$ wget http://lassauge.free.fr/qemu/release/linux-0.2.img.bz2
# 解压
$ bunzip2 linux-0.2.img.bz2
# 运行
$ cd qemu的路径
$ build/qemu-system-i386 linux-0.2.img
WARNING: Image format was not specified for 'my/linux-0.2.img' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
VNC server running on ::1:5900
运行截图
2. 安装一个vnc client并运行它
以vncviewer为例
# 也可以手动进网站下载
$ wget https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.20.529-Linux-x64.deb
# 安装
$ sudo dpkg -i VNC-Viewer-6.20.529-Linux-x64.deb
# 运行
$ vncviewer
# 然后连接服务器就行了
运行截图
# debian提供的
wget https://people.debian.org/~aurel32/qemu/amd64/debian_squeeze_amd64_standard.qcow2
Qemu文件共享
也可参考另一篇笔记地址
我使用ssh来实现文件共享(利用端口映射-nic user,hostfwd=tcp::5555-:22
)
如:
qemu-system-x86_64 boot-exit/boot-exit-image/boot-exit -m size=8192 -nic user,hostfwd=tcp::5555-:22
然后host使用ssh user@127.0.0.1
即可以连接,然后使用scp
工具进行文件传输
参考资料
https://wiki.qemu.org/Hosts/Linux
https://en.wikibooks.org/wiki/QEMU/QEMU_Hello_World:_Installing_QEMU_and_getting_it_up_and_running