收起左侧

libivrt虚拟机管理工具升级发布

16
回复
2772
查看
[ 复制链接 ]

5

主题

22

回帖

5

牛值

初出茅庐

2026-4-20 23:42:37 显示全部楼层 阅读模式

起因是不满足于官方虚拟机的限制与操作,故自己开发了一版虚拟机管理系统

当前还有诸多不足之处,如有遇见。请跟帖提供您宝贵意见。

功能特性(端口9011):

1.自适应移动端&pc端(可在飞牛app中直接使用移动端)

2.支持虚拟机xml编辑

3.支持虚拟机更加开放的新增&编辑(所有选项均均可通过数据字典自定义)

4.支持程序启动停止脚本执行(方便sr-iov设备/显卡拆分。无需修改系统启动项)

5.执行虚拟机hooks脚本调用,支持全局调用/单个虚拟机调用(需要重启libvirt守护进程)

6.支持启动引导设置

7.支持ssh终端(账号密码存储于前端浏览器,后端数据库无存储)

8.支持虚拟机磁盘自定义文件夹(方便迁移)

9.支持快照创建与使用(当前删除快照未彻底完善)

10.需要独立的账号密码登录(由于拥有脚本执行能力,为安全添加)

11.支持虚拟机列表页面查看mac地址&ip地址(需安装qemu-guest-agent)

12.执行关键日志记录,便于回溯问题

本轮更新V1.1.4:

适配移动端页面,缩小打包体积,添加hooks脚本支持

下载地址(请复制到浏览器打开):

http://download.yooyaa.cn/static/%e9%a3%9e%e7%89%9bos

未完善功能备注:

1.快照删除合并磁盘功能(使用外部快照)

2.首页统计功能

注:使用本软件,请先安装官方虚拟机

页面分享:

image.png

ceadf01653d285989e56a900309a0922.jpg

5068291582b04347613422c75d6f3c9f.jpg

5ab903a4903991ee428a6e1726ee90ca.jpg

bd41ed39ce5143f485872d57946f4a57.jpg

收藏
送赞 3
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

5

主题

22

回帖

5

牛值

初出茅庐

3 天前 楼主 显示全部楼层
xtiw 发表于 2026-5-6 19:05
比官方的好用,要是能像Windows自带的HY虚拟机一样,增加就地注册或者还原虚拟机功能就更好了,一个小小的B ...

收到,下个版本会修复iso问题,还原虚拟机功能也会添加,目前已在开发全功能界面版本,由于是闲暇时间开发,预计周期可能较长

0

主题

30

回帖

0

牛值

江湖小虾

2026-4-21 03:20:11 显示全部楼层

非常感谢分享。
两个小问题。一是 hook字段,除了编辑,能不能开放增加?要改哪里。
比如硬盘,想增加block型,路径是zvol。

另外重置密码的功能手**试点了下,密码就不知道去哪里改回来了。只能配置文件复制出来重装了

zvol的路径,有shell相关截图吗,时zvol1,zvol2类似排列还是但zvol  详情 回复
2026-4-21 13:49
1.当前由于没有找到飞牛发送日志的api,所需要登录shell终端去查看密码 地址为程序安装路径下的account文件,/vol*/@appcenter/Virtual/server/account 2.添加硬盘类型,待我先查看下livirt文档。如果单纯的只是bloc  详情 回复
2026-4-21 07:33

5

主题

22

回帖

5

牛值

初出茅庐

2026-4-21 07:33:15 楼主 显示全部楼层
noahyann 发表于 2026-4-21 03:20
非常感谢分享。
两个小问题。一是 hook字段,除了编辑,能不能开放增加?要改哪里。
比如硬盘,想增加block ...

1.当前由于没有找到飞牛发送日志的api,所需要登录shell终端去查看密码
地址为程序安装路径下的account文件,/vol*/@appcenter/Virtual/server/account
2.关于hooks功能,不需要新增,只需要编辑即可,一个虚拟机一个脚本。开启流程:
全局配置->开启hooks->打开重启守护进程->提交
然后即可为全局或单个虚拟机配置hooks功能,详情可以参考https://www.libvirt.org/hooks.html#etc-libvirt-hooks-qemu

以下是我的hooks脚本参考
#!/bin/bash

echo vm hooks ....
guest=#guest#
operation=#operation#
subOperation=#subOperation#

echo "$guest;$operation;$subOperation"

# 串口设备路径(根据实际情况修改)
SERIAL_DEV="/dev/ttyACM0"  

# 写入串口的函数
write_to_serial() {
    local msg="$1"
    if [ -w "$SERIAL_DEV" ]; then
        echo -n "$msg" > $SERIAL_DEV
        echo "Written to $SERIAL_DEV: $msg"
        sleep 1
        # 尝试带回车换行符
                sudo bash -c 'stty -F /dev/ttyACM0 115200 raw -echo; exec 3<> /dev/ttyACM0; echo -e "status\r\n" >&3; timeout 2 cat <&3'
      
    else
        echo "Warning: $SERIAL_DEV not writable" >&2
    fi
}

# 根据操作类型写入串口
case "$operation" in
    "release")
        # 关机时写入 high
        write_to_serial "high"
        ;;
    "prepare")
        # 开机时写入 low
        write_to_serial "low"
        sleep 5
        ;;
    *)
        # 其他操作忽略
        echo "Unknown operation: $operation, skipping serial write"
        ;;
esac

exit

5

主题

22

回帖

5

牛值

初出茅庐

2026-4-21 13:49:45 楼主 显示全部楼层
noahyann 发表于 2026-4-21 03:20
非常感谢分享。
两个小问题。一是 hook字段,除了编辑,能不能开放增加?要改哪里。
比如硬盘,想增加block ...

zvol的路径,有shell相关截图吗,时zvol1,zvol2类似排列还是但zvol
大概是这么个结构。主要就是前两节的区别。 disk type driver name /usr/bin/qemu-system-x86_64 ############################### #这个是truenas/pve里创建的扒过来,zvol+virtio 在飞牛里改xml有效  详情 回复
2026-4-21 14:10

0

主题

30

回帖

0

牛值

江湖小虾

2026-4-21 14:10:30 显示全部楼层
zp515630 发表于 2026-4-21 13:49
zvol的路径,有shell相关截图吗,时zvol1,zvol2类似排列还是但zvol

大概是这么个结构。主要就是前两节的区别。
disk type
driver name


  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
###############################
#这个是truenas/pve里创建的扒过来,zvol+virtio  在飞牛里改xml有效
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='threads' discard='unmap'/>
      <source dev='/dev/zvol/rpool/vm/immortalwrt-disk0'/>
      <target dev='vda' bus='virtio'/>  #这里可以 scsi,下面就不需要指定slot
      <serial>dWUmATBd</serial>  #非必须
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> #slot如果是因为virtio如果virt scsi就没有,function可以忽略
    </disk>
##########################################
#这个是飞牛创建的 qcow2型,file  scsi
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/vol1/vm/pool/4c6f3616-f3d9-41a6-906e-164188a6f1a1-uzxq.qcow2'/>
      <target dev='sdb' bus='scsi'/>
      <boot order='2'/>
      <alias name='ua-order--2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>



了解,下个版本更新  详情 回复
2026-4-21 15:41

5

主题

22

回帖

5

牛值

初出茅庐

2026-4-21 15:41:36 楼主 显示全部楼层
noahyann 发表于 2026-4-21 14:10
大概是这么个结构。主要就是前两节的区别。
disk type
driver name

了解,下个版本更新
刚看了下,直通硬盘,也是用这个。把来源位置 填 /dev里面 硬盘的位置。  详情 回复
2026-4-21 23:28

8

主题

65

回帖

0

牛值

系统先锋体验团🛩️

飞牛百度网盘玩家fnOS1.0上线纪念勋章AMD适配纪念勋章

2026-4-21 21:37:26 显示全部楼层

好东西,开源嘛

代码写的太烂,不适合开源  详情 回复
2026-4-23 09:35

0

主题

30

回帖

0

牛值

江湖小虾

2026-4-21 23:28:13 显示全部楼层
zp515630 发表于 2026-4-21 15:41
了解,下个版本更新

刚看了下,直通硬盘,也是用这个。把来源位置 填 /dev里面 硬盘的位置。
开发时只考虑file类型,是因为如果直通硬盘,会导致飞牛硬盘管理那边出错。下一个版本,会根据libvirt文档开放所有支持的类型  详情 回复
2026-4-22 10:29

5

主题

22

回帖

5

牛值

初出茅庐

2026-4-22 10:29:55 楼主 显示全部楼层
noahyann 发表于 2026-4-21 23:28
刚看了下,直通硬盘,也是用这个。把来源位置 填 /dev里面 硬盘的位置。

开发时只考虑file类型,是因为如果直通硬盘,会导致飞牛硬盘管理那边出错。下一个版本,会根据libvirt文档开放所有支持的类型

5

主题

22

回帖

5

牛值

初出茅庐

2026-4-23 09:35:58 楼主 显示全部楼层
soul87 发表于 2026-4-21 21:37
好东西,开源嘛

代码写的太烂,不适合开源

2

主题

41

回帖

0

牛值

江湖小虾

2026-4-24 12:35:35 显示全部楼层

好东西,先顶再试用!

0

主题

6

回帖

0

牛值

江湖小虾

2026-4-24 23:02:29 显示全部楼层

谢谢分享,试试看好不好用。

0

主题

8

回帖

0

牛值

江湖小虾

2026-4-26 11:38:24 显示全部楼层

支持一下 这个比官方的好用多了

1

主题

46

回帖

0

牛值

江湖小虾

2026-4-28 20:24:30 显示全部楼层

比官方的好用

2

主题

41

回帖

0

牛值

江湖小虾

比官方的好用,要是能像Windows自带的HY虚拟机一样,增加就地注册或者还原虚拟机功能就更好了,一个小小的BUG,虚拟机选择ISO镜像文件时,不识别大写的.ISO后缀,只识别小写的.iso.

收到,下个版本会修复iso问题,还原虚拟机功能也会添加,目前已在开发全功能界面版本,由于是闲暇时间开发,预计周期可能较长  详情 回复
3 天前

0

主题

2

回帖

0

牛值

系统先锋体验团🛩️

会上传应用中心或者做成软件源吗

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则