一、QEMU命令

在EVE-NG中,想要定制QEMU镜像,不管是定制Windows镜像或者Linux镜像,都必须掌握QEMU命令的使用。

QEMU是用户制作镜像的主要工具,其中包含很多命令,比如:qemu-system、qemu-img、qemu-io、qemu-nbd、qemu-ga等。其中最常用的就是qemu-img,使用完qemu-img制作好镜像后,在web界面就能安装了。

可以执行/opt/qemu/bin/qemu-img -help来查询qmeu-img命令的使用

1st. 创建镜像

qemu-img create -f 镜像格式 镜像名 镜像大小

其中-f是指定镜像格式,不指定默认为raw格式

创建大小为50G,名为test的qcow2格式的镜像:
/opt/qemu/bin/qemu-img create -f qcow2 test.qcow2 50G

2nd. 镜像信息查看

qemu-img info 镜像名

3rd. 镜像格式转换

qemu-img convert [参数] 原镜像名 新镜像名

参数:

  • -p:显示转换进度
  • -f:指定原有镜像格式,后跟原格式
  • -O:指定输出的镜像格式,后跟输出格式
  • -c:镜像转换时压缩镜像

将test文件的qcow2格式转换成vmdk格式:
/opt/qemu/bin/qemu-img convert -p -f qcow2 -O vmdk test.qcow2 test.vmdk

4th. 镜像大小修改

qemu-img resize 镜像名 增加容量

其中,容量可以为:

  • +10G:表示增加10G
  • 10G:表示增加到10G

将test.qcow2镜像增加10G容量:
/opt/qemu/bin/qemu-img resize test.qcow2 +10G

既然可以增加,那是否可以减小呢?是可以的,但是qcow2格式的直接缩小是不允许的,需要将qcow2格式转成raw格式,然后在raw格式下缩小,然后再转换成qcow2.尽管很麻烦,但是这是减小qcow2格式的唯一方法.值得注意的是如果qcow2的容量为50G,已经使用了40G,想要缩小到30G,会导致数据丢失,所以谨慎思量之后再进行处理!

二、定制windows镜像

需要在/opt/unetlab/addons/qemu/目录下创建windows的镜像目录,严格根据镜像目录和镜像名表来创建

mkdir win-7-epiol

1、制作镜像

1st. 上传ISO光盘镜像
将windows7.iso镜像文件上传至/opt/unetlab/addons/qemu/win-7-epiol/ 并更名为cdrom.iso

2nd. 创建虚拟磁盘文件

/opt/qemu/bin/qemu-img create -f qcow2 hda.qcow2 10G

3rd. 登录EVE-NG的web界面
新建windows节点,以默认参数创建,并将网络接入到management(cloud0)或其他桥接网络中,方便定制windows系统。

E22.png

E25.png

4th. 安装windows系统

E23.png

E24.png

5th. 优化和定制系统

这个安装完成的windows系统,已经可以直接放到EVE-NG中运行了,系统镜像只是一个模板,在EVE-NG平台上所有运行该镜像的虚拟设备,初始时与模板完全一样。所以在制作镜像时,提前将windows7优化,比如更换主题、升级windows、关闭防火墙等等,可以根据自己的喜好来优化系统!

优化:

  • 关闭防火墙
  • 汉化操作系统
  • 激活windows
  • 设置屏幕分辨率
  • 安装输入法
  • 安装浏览器
  • 安装你想要测试的软件

2、镜像重建

windows优化后,你对该系统最新的操作都保存在EVE-NG的临时目录中。EVE-NG的临时目录是/opt/unetlab/tmp/,该目录是虚拟设备节点运行时的临时目录。我们所要做的操作就是,将临时目录下的windows7的镜像重建,然后取代/opt/unetlab/addons/qemu/win-7-epiol/hda.qcow2。

1st. 查看lab_id和windows虚拟设备的id

lab_id:位于左侧工具栏的lab details
虚拟设备id:你创建节点时候的顺序,比如我的只创建了四个,这个是第四个,那么id=4

E26.png

2nd. 进入EVE-NG的临时目录

cd /opt/unetlab/tmp/0/2bafd2c8-4dd5-48de-ac33-1b7ae0529d2e/4/
  • 0:web的admin用户ID
  • 2bafd2c8-4dd5-48de-ac33-1b7ae0529d2e:为lab文件ID
  • 4:lab中设备节点的ID

3rd. 镜像压缩、重建并保存到/tmp/hda.qcow2

/opt/qemu/bin/qemu-img convert -c -O qcow2 hda.qcow2 /tmp/hda.qcow2

这可能需要一段时间,请耐心等待

4th. 将重建后的hda.qcow2移动到win-7-epiol镜像目录中,会自动覆盖之前的hda.qcow2虚拟磁盘文件

mv /tmp/hda.qcow2 /opt/unetlab/addons/qemu/win-7-epiol/hda.qcow2

5th. 删除cdrom.iso文件

rm -f /opt/unetlab/addons/qemu/win-7-epiol/cdrom.iso

该文件丧失了存在的价值!

这样,你的windows7镜像就完成了!你可以将其从EVE-NG下载到本地,以分享给其他人!