EVE-NG 自定义qemu镜像
EVE-NG 自定义qemu镜像
这里采用windows镜像作为演示,其他windows镜像或linux镜像的安装方法差不多。
提前准备好widnows的iso文件。
这次演示,为创建windows server2012r2.
如果是自定义镜像那么最好创建对应模板
- 英特尔 处理器:/opt/unetlab/html/templates/intel
- AMD 处理器:/opt/unetlab/html/templates/amd
镜像文件夹名称前面部分必须为模板文件名;
一、 创建镜像目录
根据命名规制,为镜像创建一个新的目录:
mkdir /opt/unetlab/addons/qemu/winserver-2012R2/
二、上传iso文件
通过WinSCP或CRT等工具将iso镜像上传到新创建的目录路中:“/opt/unetlab/addons/qemu/winserver-2012R2/”。
通过命令移动到该目录下。
cd /opt/unetlab/addons/qemu/winserver-2012R2/
三、重命名iso
将iso文件,重命名为“cdrom.iso"。
四、创建新的虚拟硬盘
创建一个名为“virtioa.qcow2”的新虚拟硬盘。大小可以根据需求更改。这里采用 60Gb 硬盘。
/opt/qemu/bin/qemu-img create -f qcow2 virtioa.qcow2 60G
Tips:如果初始创建过小可以通过以下方式查看及扩容
# 查看当前镜像信息
qemu-img info xxx.qcow2
# 增加磁盘存储大小(qcow2格式只能增加)
qemu-img resize xxx.qcow2 +增加的容量G
五、启动新建节点
创建或打开一个Lab,并且添加该节点(该节点显示的名称与模板有关)。
- 根据需求决定是否连接到互联网中。
- 将节点启动,进入正常的windows安装流程。
- 系统安装完毕后,根据自己需求设置。
- 确认没问题后在节点的系统中关机。
5.1 Windows virtio存储驱动安装
如果创建的是virtio格式的磁盘,那么需要安装磁盘驱动后才能识别到磁盘。
注意:如果显示没有磁盘,则点击“加载驱动器”,然后依次选择“软盘驱动器(B:) --- storage --- 2003R2 --- adm64”,点击确定。
选择浏览
选择软盘驱动器B中的storage(存储驱动)---amd64(64位系统驱动),选择后点击确定即可。
安装驱动后,系统就能识别到virtio格式的磁盘了。
这时开始正常安装即可。
六、查看lab的UUID以及节点ID
在EVE-NG网页中Lab的左侧栏中,选择“Lab details”,查看Lab的 UUID 详细信息:在此示例中"UUID:dca56bbc-6858-4148-a31c-5ec9c4fa53f8"
找出您使用的 POD ID 和新安装的节点的节点 ID。
七、进入lab缓存目录
根据lab的uuid和节点的id,进入lab缓存目录中
cd /opt/unetlab/tmp/0/dca56bbc-6858-4148-a31c-5ec9c4fa53f8/1
八、提交镜像
输入以下命令,提交镜像。
/opt/qemu/bin/qemu-img commit virtioa.qcow2
注意:提交镜像后该镜像将设置为默认镜像。
提示“Image committed.”则是提交镜像成功。
如果提示“Co-routine re-entered recursively Aborted (core dumped)”,则需要重新提交镜像。
如果一直提交失败,那么用备用命令提交。
备用命令
/opt/qemu/bin/qemu-img convert -c -O qcow2 virtioa.qcow2 /tmp/virtioa.qcow2
执行命令后,在xftp中进入到/tmp目录下会看到一个virtioa/hda.qcow2文件,将该文件复制到所创文件夹中即可;
注:复制后可以将/tmp中的virtioa/hda.qcow2文件删除。
九、压缩镜像(可选/建议使用)
进入到镜像所在目录("/opt/unetlab/addons/qemu/节点"),输入以下命令。
注意:压缩时间较长,请等待压缩完成。
把virtioa.qcow2改为镜像名。
eve-sparsify --compress virtioa.qcow2 compressedvirtioa.qcow2
mv virtioa.qcow2 orig.qcow2
mv compressedvirtioa.qcow2 virtioa.qcow2

老版本压缩命令:
virt-sparsify --compress virtioa.qcow2 newvirtioa.qcow2
mv virtioa.qcow2 oldvirtioa.qcow2
mv newvirtioa.qcow2 virtioa.qcow2
# qemu-img命令压缩
qemu-img convert -c -O qcow2 旧的.qcow2 新的.qcow2
qemu-img convert -p -c -O qcow2 virtioa.qcow2 new
十、Linux镜像开启telnet控制台(可选/建议使用)
开启telnet需要编辑grub.cfg,在Linux内核的启动参数里添加一个参数。
但是linux发行版系统不推荐直接编辑,我们可以通过编辑/etc/default/grub文件,在里面添加上需要的参数,然后使用命令生成grub.cfg文件就行了。
10.1 CentOS系统
-
编辑grub文件
编辑”/etc/default/grub“文件
在”GRUB_CMDLINE_LINUX“一行中添加“console=ttyS0,115200n8“
注意:添加内容需要在双引号内
vim /etc/default/grub
-
生成grub.cg文件
grub2-mkconfig -o /boot/grub2/grub.cfg
10.2 Ubuntu系统
-
编辑grub文件
编辑”/etc/default/grub“文件
在”GRUB_CMDLINE_LINUX_DEFAULT“一行中添加”console=ttyS0,115200n8“
注意:添加内容需要在双引号内
vim /etc/default/grub
-
生成grub.cg文件
update-grub
-
在网页或模板中修改控制台
如果只有该镜像用telnet控制台的话,只需要在web中编辑节点,然后将控制台修改为telnet即可。
如果是该模板的镜像都是telnet控制台,就将该模板内的控制台修改为telnet,这样每次添加节点后默认控制台都是telnet了。

浙公网安备 33010602011771号