本帖最后由 lanlandezei 于 2024-3-2 08:05 编辑
硬件: 旧笔记本电脑 系统环境:Debian 12 安装 QEMU KVM 虚拟机 下载的镜像里面也有使用说明,包含了大部分虚拟机系统,PVE,VMware, ESXI,unRaid,VirtualBox 我比较喜欢用QEMU KVM 的虚拟机就尝试折腾下能否安装成功带授权的以后也买个多网口小主机来折腾,安装期间也遇到不少坑,启动镜像后一直是没有授权的。也尝试QEMU套娃安装了PVE在按说明安装RouterOS,用PVE是能成功启动好带授权的。后面查阅外网的资料,QEMU终于弄好启动后带授权了的。下面是过程。 1.创建虚拟机
我使用的 论坛里 [color=var(--link-color)]MikroTik-RouterOS-7.13永久L6授权 (支持各种ESXI PVE 2.5G i225 i226网卡直通) 这个镜像
下载解压出.vmdk的镜像上传到 /var/lib/libvirt/images/ 目录
在当前目录将镜像转换成.qcow2格式
- cd /var/lib/libvirt/images/
- qemu-img convert -p -f vmdk -O qcow2 ROS7-6G-disk1.vmdk ROS7-6G-disk1.qcow2
复制代码输入virt-manager打开虚拟机管理器创建虚拟机,选择刚才转换的镜像。 芯片组选择: Q 35 因为在Virtual Machine Manager这个虚拟机管理器,Q35无法使用IDE总线类型启动会报错
所以磁盘总线选择 SATA 或者 SCSI 固件选择:OVMF 2.修改配置文件在创建虚拟机界面,点击开始安装,确定能进入RouterOS系统登录界面后关机。 在 /etc/libvirt/qemu/目录会生成对应的虚拟机.xml 配置文件,拖到本地进行修改。 1.修改头部将下面的头部 修改为
- <domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
复制代码添加这个头部信息后,你可以在配置文件中使用一些特定于QEMU的选项,例如,可以通过<qemu:commandline>元素来传递一些特定的QEMU命令行参数
2.添加磁盘序列号和别名给磁盘添加 serial序列号 和 alias别名 - <serial>00000000000000000001</serial>
- <alias name='ua-mydisk'/>
复制代码下面是我添加后的示例,`disk `块内就是磁盘信息
- <disk type='file' device='disk'>
- <driver name='qemu' type='qcow2'/>
- <source file='/var/lib/libvirt/images/Router/ROS7-6G-disk1.qcow2'/>
- <target dev='sda' bus='sata'/>
- <serial>00000000000000000001</serial>
- <alias name='ua-mydisk'/>
- <address type='drive' controller='0' bus='0' target='0' unit='0'/>
- </disk>
复制代码这是一个在libvirt的XML配置文件中定义虚拟机磁盘的部分。下面是每个元素的解释: - <disk type='file' device='disk'>:定义一个磁盘设备,其数据存储在一个文件中。
- <driver name='qemu' type='qcow2'/>:指定使用QEMU作为驱动程序,磁盘镜像的格式为QCOW2。
- <source file='/var/lib/libvirt/images/Router/ROS7-6G-disk1.qcow2'/>:指定磁盘镜像文件的路径。
- <target dev='sda' bus='sata'/>:在虚拟机中,该磁盘设备将被识别为SATA总线上的sda设备。
- <serial>00000000000000000001</serial>:磁盘的序列号。
- <alias name='ua-mydisk'/>:设备的别名,这在libvirt的内部使用,可以用于更容易地识别设备。
- <address type='drive' controller='0' bus='0' target='0' unit='0'/>:定义设备在虚拟机中的地址。这里,设备被连接到控制器0,总线0,目标0,单元0
3.使用QEMU命名空间来覆盖磁盘配置在配置文件尾部devices 和 domain 之间添加下面的参数 - <qemu:override>
- <qemu:device alias="ua-mydisk">
- <qemu:frontend>
- <qemu:property name="model" type="string" value="VMware Virtual IDE Hard Drive"/>
- </qemu:frontend>
- </qemu:device>
- </qemu:override>
复制代码这是一个在libvirt的XML配置文件中使用QEMU命名空间来覆盖设备配置的部分。下面是每个元素的解释: - <qemu
verride>:这个元素用于包含所有的设备覆盖配置。 - <qemu:device alias='ua-mydisk'>:这个元素定义了一个设备覆盖,alias属性指定了要覆盖的设备的别名,这里是ua-mydisk。
- <qemu:frontend>:这个元素用于包含设备的前端配置,也就是虚拟机看到的部分。
- <qemu:property name='model' type='string' value='VMware Virtual IDE Hard Drive'/>:这个元素定义了一个设备属性的覆盖。name属性指定了要覆盖的属性的名称,这里是model;type属性指定了属性的类型,这里是string;value属性指定了属性的新值,这里是VMware Virtual IDE Hard Drive。
总的来说,这个配置将ua-mydisk设备的model属性覆盖为VMware Virtual IDE Hard Drive。这意味着在虚拟机中,这个设备将被识别为一个VMware的虚拟IDE硬盘驱动器。 4.上传修改后的配置上传后在配置文件目录使用命令重新加载配置文件 执行后没有报错,启动虚拟机,显示带授权成功
之前一直尝试启动后没授权的原因是磁盘那里没有添加 alias 别名,所以磁盘那里的别名名称要和下面的qemu verride 配置中的qemu:device alias别名对上。 使用下面命令行启动虚拟机也可以启动带授权的 - qemu-system-x86_64 \
- -m 1024 \
- -smp 2 \
- -enable-kvm \
- -drive if=none,id=disk00,format=qcow2,file=/var/lib/libvirt/images/Router/ROS7-6G-disk1.qcow2 \
- -device "ide-hd,drive=disk00,bus=ide.0,serial=00000000000000000001,model=VMware Virtual IDE Hard Drive" \
- -nic tap \
- -bios /usr/share/OVMF/OVMF_CODE.fd
复制代码
|