定制Windows镜像

定制Windows镜像

Scroll Down
请注意,本文发布日期:  233  天前,最后编辑日期:  179  天前,内容可能已经不具有时效性,请酌情参考。

一、QEMU命令

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

QEMU用户操作EVE-NG虚拟机的主要工具,其中包含很多命令,比如:

  1. qemu-system
  2. qemu-img
  3. qemu-io
  4. qemu-nbd
  5. 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系统

  1. 创建虚拟磁盘文件
/opt/qemu/bin/qemu-img create -f qcow2 hda.qcow2 10G
  1. 登录EVE-NG的web界面
    新建windows节点,以默认参数创建,并将网络接入到management(cloud0)或其他桥接网络中,方便定制windows系统。

E22.png

E25.png

  1. 安装windows系统

E23.png

E24.png

步骤三:优化和定制系统

这个安装完成的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。

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

lab_id查看:位于左侧工具栏的lab details

E26.png

虚拟设备id查看:你创建节点时候的顺序,比如我的只创建了四个,这个是第四个,那么id=4

  1. 进入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
  1. 镜像压缩、重建并保存到/tmp/hda.qcow2
/opt/qemu/bin/qemu-img convert -c -O qcow2 hda.qcow2 /tmp/hda.qcow2

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

  1. 将重建后的hda.qcow2移动到win-7-epiol镜像目录中,会自动覆盖之前的hda.qcow2虚拟磁盘文件
mv /tmp/hda.qcow2 /opt/unetlab/addons/qemu/win-7-epiol/hda.qcow2
  1. 删除cdrom.iso文件
rm -f /opt/unetlab/addons/qemu/win-7-epiol/cdrom.iso

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

步骤五:镜像压缩

如果你觉得windows镜像太大了,想要压缩,以节省空间,也是可以的。使用virt-sparsify工具来压缩

tips:建议你压缩前查看下镜像大小

  1. 进入镜像目录、压缩并重命名
cd /opt/unetlab/addons/qemu/win-7-epiol/

virt-sparsify –compress hda.qcow2 compressedhda.qcow2
  1. 查看压缩前后的镜像大小
ll
  1. 删除未压缩的镜像文件
rm hda.qcow2
  1. 重命名压缩后的文件
mv compressedhda.qcow2 hda.qcow2

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

文章若有错误之处,请评论指出,谢谢!