以 Windows Server 2019 Datacenter 为例制作自己的 EVE-NG 镜像,Linux镜像的制作方式基本相同。
本地EVE版本是5.0.1-13
。
- 首先通过SSH进入EVE的shell,然后将目录切换到如下目录:EVE当前的所有镜像都存放于此。
1
/opt/unetlab/addons/qemu/
- 创建镜像文件夹,命名规则参考qemu-image-namings
我这里创建的是Windows Server 2019 Datacenter,所以文件夹名就是:EVE会根据文件夹名(镜像名)判断启动命令和模板,务必按照正确的系统名称命名文件夹。1
mkdir winserver-S2019-R2-x64-cn
- 回到EVE,选择“Add an object”-“Node”,Template选择“Windows Server”,然后在Image中查看是否有刚才创建的文件夹名如果有就可以点取消下一步了。
- 进入到刚才创建的文件夹,然后创建磁盘。磁盘命名详见qemu-image-namings第二条命令的文件名可以写
1
2cd winserver-S2019-R2-x64-cn
/opt/qemu/bin/qemu-img create -f qcow2 virtioa.qcow2 128Gsataa.qcow2
,这样不用在安装系统时加载驱动;最后一个参数是磁盘大小,可自由调整。
EVE会根据磁盘名判断挂载点和挂载设备,选错了可能导致无法启动。 - 将系统的iso上传到和刚创建的硬盘镜像同目录下,并命名为
cdrom.iso
(不可改名)。 - 回到EVE,选择“Add an object”-“Node”,Template选择“Windows Server”,镜像选择刚创建好的文件夹名。如果需要连接外网再添加一个Cloud(Network)并连接到刚创建的Node上。启动Node。
- 使用VNC(推荐使用Native Console,它自带那H5 Console没找到怎么按Ctrl+Alt+Del)登录到Node,正常安装系统和软件。
- 关闭已经安装好操作系统和软件的Node,回到EVE,左侧栏选择“Lab Detail”,记下里面的ID。
- 回到Shell,切换到如下文件夹:把里面的
1
cd /opt/unetlab/tmp/0/<Lab ID>
Lab ID
换成你自己的,然后回到EVE,左侧栏选择“Nodes”,在弹出来的对话框中找到你刚创建的镜像名的那行,然后记下那行最左侧的ID,直接cd进去可以看一下里面应该会有你刚才创建的镜像名,这个就是你现在的系统盘。1
cd 10
1
2
3
4
5
6
7
8
9
10
11
12
13root@eve-ng:/opt/unetlab/tmp/0/db340c20-987c-49b2-9d58-4234c92db1cf/10# ls -la
total 14197436
drwxrwsr-x 5 root unl 4096 May 20 09:30 .
drwxrwsr-x 12 root unl 4096 May 20 09:30 ..
drwxr-sr-x 3 root root 4096 Jul 16 2022 dev
drwxr-xr-x 5 root root 4096 May 23 2022 jail
lrwxrwxrwx 1 root root 8 May 3 2022 lib -> jail/lib
lrwxrwxrwx 1 root root 10 May 3 2022 lib64 -> jail/lib64
drwxr-sr-x 14 root root 4096 May 23 2022 opt
-rw-rw-r-- 1 root unl 0 May 20 09:32 .prepared
-rw-r--r-- 1 root unl 14536605696 May 20 16:05 sataa.qcow2
lrwxrwxrwx 1 root root 8 May 3 2022 usr -> jail/usr
-rw-rw-r-- 1 root unl 0 May 20 09:32 wrapper.txt - 压缩镜像并提交更改至源镜像:稍等片刻等待镜像转换完成,没有出现报错就算结束了。
1
/opt/qemu/bin/qemu-img convert -c -O qcow2 sataa.qcow2 /opt/unetlab/addons/qemu/winserver-S2019-R2-x64-cn/sataa.qcow2
- 最后删除初始文件夹里面的
cdrom.iso
,否则下次启动还会从iso启动。
参考教程: