一、QEMU命令
在EVE-NG中,想要定制QEMU镜像,不管是定制Windows镜像或者Linux镜像,都必须掌握QEMU命令的使用。
QEMU用户操作EVE-NG虚拟机的主要工具,其中包含很多命令,比如:
- qemu-system
- qemu-img
- qemu-io
- qemu-nbd
- qemu-ga
...
其中最常用的就是一个命令qemu-img,因为在使用EVE-NG时,大部分操作都是在web界面完成的,只有在制作镜像时才会用到qemu-img命令,所以我们着重学习qemu-img命令
tips:可以执行/opt/qemu/bin/qemu-img -help来查询qmeu-img命令的使用
创建镜像
qemu-img create -f 镜像格式 镜像名 镜像大小
其中-f是指定镜像格式,不指定默认为raw格式。
例:/opt/qemu/bin/qemu-img create -f qcow2 test.qcow2 50G 表示创建一个大小为50G,名为test的qcow2格式的镜像
镜像信息查看
qemu-img info 镜像名
镜像格式转换
qemu-img convert [参数] 原镜像名 新镜像名
可以填入以下参数:
- -p:显示转换进度
- -f:指定原有镜像格式,后跟原格式
- -O:指定输出的镜像格式,后跟输出格式
- -c:镜像转换时压缩镜像
例:/opt/qemu/bin/qemu-img convert -p -f qcow2 -O vmdk test.qcow2 test.vmdk 表示将test文件的qcow2格式转换成vmdk格式
镜像大小修改
qemu-img resize 镜像名 增加容量
其中,容量可以为:
- +10G:表示增加10G
- 10G:表示增加到10G
例:/opt/qemu/bin/qemu-img resize test.qcow2 +10G 表示将test.qcow2镜像增加10G容量
既然可以增加,那是否可以减小呢?是可以的,但是qcow2格式的直接缩小是不允许的,需要将qcow2格式转成raw格式,然后在raw格式下缩小,然后再转换成qcow2.尽管很麻烦,但是这是减小qcow2格式的唯一方法.值得注意的是如果qcow2的容量为50G,已经使用了40G,想要缩小到30G,会导致数据丢失,所以谨慎思量之后再进行处理!
二、定制windows镜像
前提:需要在/opt/unetlab/addons/qemu/目录下创建windows的镜像目录,严格根据镜像目录和镜像名表来创建
mkdir win-7-epiol
步骤一:上传ISO光盘镜像
将windows7.iso镜像文件上传至/opt/unetlab/addons/qemu/win-7-epiol/ 并更名为cdrom.iso
步骤二:安装windows系统
- 创建虚拟磁盘文件
/opt/qemu/bin/qemu-img create -f qcow2 hda.qcow2 10G
- 登录EVE-NG的web界面
新建windows节点,以默认参数创建,并将网络接入到management(cloud0)或其他桥接网络中,方便定制windows系统。
- 安装windows系统
步骤三:优化和定制系统
这个安装完成的windows系统,已经可以直接放到EVE-NG中运行了,系统镜像只是一个模板,在EVE-NG平台上所有运行该镜像的虚拟设备,初始时与模板完全一样。所以在制作镜像时,提前将windows7优化,比如更换主题、升级windows、关闭防火墙等等,可以根据自己的喜好来优化系统!
可以进行的操作:
- 关闭防火墙
- 汉化操作系统
- 激活windows
- 设置屏幕分辨率
- 安装输入法
- 安装浏览器
- 安装你想要测试的软件
步骤四:镜像重建
在结束windows优化后,你对该系统最新的操作都保存在EVE-NG的临时目录中。EVE-NG的临时目录是/opt/unetlab/tmp/,该目录是虚拟设备节点运行时的临时目录。我们所要做的操作就是,将临时目录下的windows7的镜像重建,然后取代/opt/unetlab/addons/qemu/win-7-epiol/hda.qcow2。
- 查看lab_id和windows虚拟设备的id
lab_id查看:位于左侧工具栏的lab details
虚拟设备id查看:你创建节点时候的顺序,比如我的只创建了四个,这个是第四个,那么id=4
- 进入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
- 镜像压缩、重建并保存到/tmp/hda.qcow2
/opt/qemu/bin/qemu-img convert -c -O qcow2 hda.qcow2 /tmp/hda.qcow2
tips:这可能需要一段时间,请耐心等待
- 将重建后的hda.qcow2移动到win-7-epiol镜像目录中,会自动覆盖之前的hda.qcow2虚拟磁盘文件
mv /tmp/hda.qcow2 /opt/unetlab/addons/qemu/win-7-epiol/hda.qcow2
- 删除cdrom.iso文件
rm -f /opt/unetlab/addons/qemu/win-7-epiol/cdrom.iso
该文件丧失了存在的价值!
步骤五:镜像压缩
如果你觉得windows镜像太大了,想要压缩,以节省空间,也是可以的。使用virt-sparsify工具来压缩
tips:建议你压缩前查看下镜像大小
- 进入镜像目录、压缩并重命名
cd /opt/unetlab/addons/qemu/win-7-epiol/
virt-sparsify –compress hda.qcow2 compressedhda.qcow2
- 查看压缩前后的镜像大小
ll
- 删除未压缩的镜像文件
rm hda.qcow2
- 重命名压缩后的文件
mv compressedhda.qcow2 hda.qcow2
这样,你的windows7镜像就完成了!你可以将其从EVE-NG下载到本地,以分享给其他人!
文章若有错误之处,请评论指出,谢谢!