EVE-NG 自定义qemu镜像

EVE-NG 自定义qemu镜像

这里采用windows镜像作为演示,其他windows镜像或linux镜像的安装方法差不多。

提前准备好widnows的iso文件。

这次演示,为创建windows server2012r2.

如果是自定义镜像那么最好创建对应模板

  1. 英特尔 处理器:/opt/unetlab/html/templates/intel
  2. AMD 处理器:/opt/unetlab/html/templates/amd

镜像文件夹名称前面部分必须为模板文件名

一、 创建镜像目录

根据命名规制,为镜像创建一个新的目录:

mkdir /opt/unetlab/addons/qemu/winserver-2012R2/
image-20220725220936487

二、上传iso文件

通过WinSCP或CRT等工具将iso镜像上传到新创建的目录路中:“/opt/unetlab/addons/qemu/winserver-2012R2/”。

image-20220725221802791

通过命令移动到该目录下。

cd /opt/unetlab/addons/qemu/winserver-2012R2/
image-20220725221836386

三、重命名iso

将iso文件,重命名为“cdrom.iso"。

image-20220725221907385

四、创建新的虚拟硬盘

创建一个名为“virtioa.qcow2”的新虚拟硬盘。大小可以根据需求更改。这里采用 60Gb 硬盘。

/opt/qemu/bin/qemu-img create -f qcow2 virtioa.qcow2 60G
image-20220725221935858

Tips:如果初始创建过小可以通过以下方式查看及扩容

# 查看当前镜像信息
qemu-img info xxx.qcow2
# 增加磁盘存储大小(qcow2格式只能增加)
qemu-img resize xxx.qcow2 +增加的容量G

五、启动新建节点

创建或打开一个Lab,并且添加该节点(该节点显示的名称与模板有关)。

  • 根据需求决定是否连接到互联网中。
  • 将节点启动,进入正常的windows安装流程。
  • 系统安装完毕后,根据自己需求设置。
  • 确认没问题后在节点的系统中关机。

5.1 Windows virtio存储驱动安装

如果创建的是virtio格式的磁盘,那么需要安装磁盘驱动后才能识别到磁盘。

注意:如果显示没有磁盘,则点击“加载驱动器”,然后依次选择“软盘驱动器(B:) --- storage --- 2003R2 --- adm64”,点击确定。

image-20220725222410489

选择浏览

image-20220725222442816

选择软盘驱动器B中的storage(存储驱动)---amd64(64位系统驱动),选择后点击确定即可。

image-20220725222555679

安装驱动后,系统就能识别到virtio格式的磁盘了。

image-20220725222619474

这时开始正常安装即可。

image-20220725222659492

六、查看lab的UUID以及节点ID

在EVE-NG网页中Lab的左侧栏中,选择“Lab details”,查看Lab的 UUID 详细信息:在此示例中"UUID:dca56bbc-6858-4148-a31c-5ec9c4fa53f8"

image-20220725225811454 image-20220725225827636

找出您使用的 POD ID 和新安装的节点的节点 ID

image-20220725225924973

七、进入lab缓存目录

根据lab的uuid和节点的id,进入lab缓存目录中

cd /opt/unetlab/tmp/0/dca56bbc-6858-4148-a31c-5ec9c4fa53f8/1
image-20220725230126835

八、提交镜像

输入以下命令,提交镜像。

/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

image-20220814221452610

老版本压缩命令:

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系统

  1. 编辑grub文件

    编辑”/etc/default/grub“文件

    在”GRUB_CMDLINE_LINUX“一行中添加“console=ttyS0,115200n8“

    注意:添加内容需要在双引号内

    vim /etc/default/grub
    
    image-20220818000336456
  2. 生成grub.cg文件

    grub2-mkconfig -o /boot/grub2/grub.cfg
    
    image-20220818000440857

10.2 Ubuntu系统

  1. 编辑grub文件

    编辑”/etc/default/grub“文件

    在”GRUB_CMDLINE_LINUX_DEFAULT“一行中添加”console=ttyS0,115200n8“

    注意:添加内容需要在双引号内

    vim /etc/default/grub
    
    image-20220817150057901
  2. 生成grub.cg文件

    update-grub
    
    image-20220817150418796
  3. 在网页或模板中修改控制台

    如果只有该镜像用telnet控制台的话,只需要在web中编辑节点,然后将控制台修改为telnet即可。

    如果是该模板的镜像都是telnet控制台,就将该模板内的控制台修改为telnet,这样每次添加节点后默认控制台都是telnet了。

posted @ 2023-03-31 17:29  滴滴打怪  阅读(1860)  评论(0)    收藏  举报