September 11, 20232 yr KVM, QEMU start or stop virtual machine from command line (CLI) 查看虚拟机列表: # virsh list --all Id Name State --------------------------------------- - CentOS7 shut off - debian shut off 启动名为 CentOS7 的虚拟机: virsh start CentOS7
September 11, 20232 yr 20 minutes ago, llm said: 额,我想问的是,以 一个docker或者虚拟机启动或者结束 作为触发条件,执行脚本 如果是虚拟机,可以借助 libvirt hook: docker 的我不太清除,有知道的朋友可以分享一下。 Edited September 11, 20232 yr by JackieWu
September 12, 20232 yr Solution #!/bin/bash # 设置你要检查容器的名称 container_name="AList" # 获取容器的状态 container_status=$(docker inspect -f '{{.State.Status}}' "$container_name" 2>/dev/null) # 检查容器状态并输出结果 if [ -z "$container_status" ]; then echo "容器 '$container_name' 不存在或无法访问。" exit 1 fi if [ "$container_status" == "running" ]; then echo "容器 '$container_name' 已经运行。" # 容器运行中,需要执行的代码 else echo "容器 '$container_name' 已关闭。" # 容器停运,需要执行的代码 fi 这是判断的脚本,判断后执行什么,就需要自己加了 Edited September 12, 20232 yr by suosuosi
September 12, 20232 yr Author 游戏虚拟机关闭后自动降低显卡功耗 效果: 虚拟机启动后独立显卡自动进入工作模式,unraid无法查看显卡功耗 虚拟机关机后unraid接管独立显卡,显卡进入低功耗模式 功耗对比:索泰RTX4080天启OC,unraid接管状态下功耗由45W降至16W,风扇由低速转动变为停转 其他参考文章: [Unraid] 不直通独显将N卡直接传递给虚拟机使用并设置虚拟机关机时降低显卡功耗_NAS存储_什么值得买 (smzdm.com) UnRaid硬件直通的n种正确姿势_unraid 显卡直通-CSDN博客 Spoiler 打开unraid终端,进入/dev/disk/by-id/,查看硬盘名称用于直通硬盘 总结: unraid不屏蔽显卡 安装插件 Nvidia Driver 和 Gpu Statistics 主界面→flash→在unraid os中 append 和 initrd=/bzroot 之间添加 video=efifb:off(记得加空格) 在Windows物理机上使用GPU-Z提取显卡BIOS的rom文件。如果没有其他机器,可以在unraid里的硬盘里选一块固态(后称为硬盘A),先数据迁移到其他盘,然后取消分配,开启Unassigned Devices插件的破坏性模式,将硬盘A格式化,然后创建一个虚拟机,将硬盘A直通给虚拟机,在上面安装windows,然后重启机器,启动项选择硬盘A,就进入windows物理机了。 安装HxD或者使用VSCode安装Hex Editor扩展修改rom文件,搜索“VGA”,定位第一个,然后删除55 AA之前的全部内容,如图删除00009400那一行之前的全部内容(00009400那一行不删除) 按照一般直通显卡的方式操作 User Scripts创建脚本,内容如下 #!/bin/bash nvidia-smi --persistence-mode=1 打开unraid终端,在/etc/libvirt/hooks/目录下创建文件夹qemu.d,在qemu.d内创建脚本文件(随便命名,不需要后缀名),脚本内容如下 #!/bin/bash if [[ $2 == "release" ]] then bash /boot/config/plugins/user.scripts/scripts/gpu.lowpower/script fi 其中gpu.lowpower是上一步创建的脚本名,改成你自己的 额,写出来才发现,好像可以直接在qemu.d里那个脚本里把bash /boot/config/plugins/user.scripts/scripts/gpu.lowpower/script改成nvidia-smi --persistence-mode=1 Edited September 12, 20232 yr by llm 有错字
September 12, 20232 yr 17 minutes ago, llm said: 游戏虚拟机关闭后自动降低显卡功耗 效果: 虚拟机启动后独立显卡自动进入工作模式,unraid无法查看显卡功耗 虚拟机关机后unraid接管独立显卡,显卡进入低功耗模式 功耗对比:索泰RTX4080天启OC,unraid接管状态下功耗由45W降至16W,风扇由低俗转动变为停转 其他参考文章: [Unraid] 不直通独显将N卡直接传递给虚拟机使用并设置虚拟机关机时降低显卡功耗_NAS存储_什么值得买 (smzdm.com) UnRaid硬件直通的n种正确姿势_unraid 显卡直通-CSDN博客 Reveal hidden contents 打开unraid终端,进入/dev/disk/by-id/,查看硬盘名称用于直通硬盘 总结: unraid不屏蔽显卡 安装插件 Nvidia Driver 和 Gpu Statistics 主界面→flash→在unraid os中 append 和 initrd=/bzroot 之间添加 video=efifb:off(记得加空格) 在Windows物理机上使用GPU-Z提取显卡BIOS的rom文件。如果没有其他机器,可以在unraid里的硬盘里选一块固态(后称为硬盘A),先数据迁移到其他盘,然后取消分配,开启Unassigned Devices插件的破坏性模式,将硬盘A格式化,然后创建一个虚拟机,将硬盘A直通给虚拟机,在上面安装windows,然后重启机器,启动项选择硬盘A,就进入windows物理机了。 安装HxD或者使用VSCode安装Hex Editor扩展修改rom文件,搜索“VGA”,定位第一个,然后删除55 AA之前的全部内容,如图删除00009400那一行之前的全部内容(00009400那一行不删除) 按照一般直通显卡的方式操作 User Scripts创建脚本,内容如下 #!/bin/bash nvidia-smi --persistence-mode=1 打开unraid终端,在/etc/libvirt/hooks/目录下创建文件夹qemu.d,在qemu.d内创建脚本文件(随便命名,不需要后缀名),脚本内容如下 #!/bin/bash if [[ $2 == "release" ]] then bash /boot/config/plugins/user.scripts/scripts/gpu.lowpower/script fi 其中gpu.lowpower是上一步创建的脚本名,改成你自己的 谢谢分享
September 12, 20232 yr Author v2rayA代理应用市场自动化 由于搞clash和SSR总是不成功,我还是用的自己习惯的v2ray,但是有时候应用市场是能直连的,我不想一直开着代理。 但是v2rayA代理应用市场要改配置文件,在 /boot/config/plugins/community.applications/ 目录下创建文件proxy.cfg,所需命令如下 echo -n "" > /boot/config/plugins/community.applications/proxy.cfg echo "port=20171" >> /boot/config/plugins/community.applications/proxy.cfg echo "tunnel=1" >> /boot/config/plugins/community.applications/proxy.cfg echo "proxy=http://127.0.0.1" >> /boot/config/plugins/community.applications/proxy.cfg 但是改了配置文件就不能直连了,之前我是用两个脚本分别手动创建/删除这个文件 自动化效果: 每10秒检查一次v2rayA这个docker的状态以及代理配置文件是否存在且不为空,据此进行相应操作 方法如下: 新建脚本ca.proxy.v2raya #!/bin/bash # 删除日志文件 rm /tmp/user.scripts/tmpScripts/ca.proxy.v2raya/log.txt # 设置你要检查容器的名称,改成自己的 container_name="v2rayA" # 获取容器的状态 container_status=$(docker inspect -f '{{.State.Status}}' "$container_name" 2>/dev/null) # 获取代理状态(文件存在且不为空) proxy_status=0 if [ -e /boot/config/plugins/community.applications/proxy.cfg ]; then if [ -s /boot/config/plugins/community.applications/proxy.cfg ]; then proxy_status=1 fi fi # 检查容器状态 if [ -z "$container_status" ]; then # 容器 '$container_name' 不存在或无法访问。 exit 1 fi if [ "$container_status" == "running" ]; then # 容器 '$container_name' 已经运行。 if [ $proxy_status == 1 ]; then exit 0 fi echo -n "" > /boot/config/plugins/community.applications/proxy.cfg echo "port=20171" >> /boot/config/plugins/community.applications/proxy.cfg echo "tunnel=1" >> /boot/config/plugins/community.applications/proxy.cfg echo "proxy=http://127.0.0.1" >> /boot/config/plugins/community.applications/proxy.cfg else # 容器 '$container_name' 已关闭。 if [ $proxy_status == 0 ]; then exit 0 fi rm /boot/config/plugins/community.applications/proxy.cfg 2>/dev/nul fi 新建用于定时执行ca.proxy.v2raya的脚本auto.v2raya_proxy.ca #!/bin/bash # 删除日志文件 rm /tmp/user.scripts/tmpScripts/auto.v2raya_proxy.ca/log.txt bash /boot/config/plugins/user.scripts/scripts/ca.proxy.v2raya/script sleep 10s bash /boot/config/plugins/user.scripts/scripts/ca.proxy.v2raya/script sleep 10s bash /boot/config/plugins/user.scripts/scripts/ca.proxy.v2raya/script sleep 10s bash /boot/config/plugins/user.scripts/scripts/ca.proxy.v2raya/script sleep 10s bash /boot/config/plugins/user.scripts/scripts/ca.proxy.v2raya/script sleep 10s bash /boot/config/plugins/user.scripts/scripts/ca.proxy.v2raya/script 将auto.v2raya_proxy.ca的定时执行设为Custom,然后设为* * * * *,意思是每分钟执行一次auto.v2raya_proxy.ca。而auto.v2raya_proxy.ca的内容为每10秒执行一次ca.proxy.v2raya,共6次。
November 15, 20232 yr On 9/12/2023 at 5:01 PM, llm said: 游戏虚拟机关闭后自动降低显卡功耗 效果: 虚拟机启动后独立显卡自动进入工作模式,unraid无法查看显卡功耗 虚拟机关机后unraid接管独立显卡,显卡进入低功耗模式 功耗对比:索泰RTX4080天启OC,unraid接管状态下功耗由45W降至16W,风扇由低速转动变为停转 其他参考文章: [Unraid] 不直通独显将N卡直接传递给虚拟机使用并设置虚拟机关机时降低显卡功耗_NAS存储_什么值得买 (smzdm.com) UnRaid硬件直通的n种正确姿势_unraid 显卡直通-CSDN博客 Hide contents 打开unraid终端,进入/dev/disk/by-id/,查看硬盘名称用于直通硬盘 总结: unraid不屏蔽显卡 安装插件 Nvidia Driver 和 Gpu Statistics 主界面→flash→在unraid os中 append 和 initrd=/bzroot 之间添加 video=efifb:off(记得加空格) 在Windows物理机上使用GPU-Z提取显卡BIOS的rom文件。如果没有其他机器,可以在unraid里的硬盘里选一块固态(后称为硬盘A),先数据迁移到其他盘,然后取消分配,开启Unassigned Devices插件的破坏性模式,将硬盘A格式化,然后创建一个虚拟机,将硬盘A直通给虚拟机,在上面安装windows,然后重启机器,启动项选择硬盘A,就进入windows物理机了。 安装HxD或者使用VSCode安装Hex Editor扩展修改rom文件,搜索“VGA”,定位第一个,然后删除55 AA之前的全部内容,如图删除00009400那一行之前的全部内容(00009400那一行不删除) 按照一般直通显卡的方式操作 User Scripts创建脚本,内容如下 #!/bin/bash nvidia-smi --persistence-mode=1 打开unraid终端,在/etc/libvirt/hooks/目录下创建文件夹qemu.d,在qemu.d内创建脚本文件(随便命名,不需要后缀名),脚本内容如下 On 9/12/2023 at 5:01 PM, llm said: 游戏虚拟机关闭后自动降低显卡功耗 效果: 虚拟机启动后独立显卡自动进入工作模式,unraid无法查看显卡功耗 虚拟机关机后unraid接管独立显卡,显卡进入低功耗模式 功耗对比:索泰RTX4080天启OC,unraid接管状态下功耗由45W降至16W,风扇由低速转动变为停转 其他参考文章: [Unraid] 不直通独显将N卡直接传递给虚拟机使用并设置虚拟机关机时降低显卡功耗_NAS存储_什么值得买 (smzdm.com) UnRaid硬件直通的n种正确姿势_unraid 显卡直通-CSDN博客 Hide contents 打开unraid终端,进入/dev/disk/by-id/,查看硬盘名称用于直通硬盘 总结: unraid不屏蔽显卡 安装插件 Nvidia Driver 和 Gpu Statistics 主界面→flash→在unraid os中 append 和 initrd=/bzroot 之间添加 video=efifb:off(记得加空格) 在Windows物理机上使用GPU-Z提取显卡BIOS的rom文件。如果没有其他机器,可以在unraid里的硬盘里选一块固态(后称为硬盘A),先数据迁移到其他盘,然后取消分配,开启Unassigned Devices插件的破坏性模式,将硬盘A格式化,然后创建一个虚拟机,将硬盘A直通给虚拟机,在上面安装windows,然后重启机器,启动项选择硬盘A,就进入windows物理机了。 安装HxD或者使用VSCode安装Hex Editor扩展修改rom文件,搜索“VGA”,定位第一个,然后删除55 AA之前的全部内容,如图删除00009400那一行之前的全部内容(00009400那一行不删除) 按照一般直通显卡的方式操作 User Scripts创建脚本,内容如下 #!/bin/bash nvidia-smi --persistence-mode=1 打开unraid终端,在/etc/libvirt/hooks/目录下创建文件夹qemu.d,在qemu.d内创建脚本文件(随便命名,不需要后缀名),脚本内容如下 #!/bin/bash if [[ $2 == "release" ]] then bash /boot/config/plugins/user.scripts/scripts/gpu.lowpower/script fi 其中gpu.lowpower是上一步创建的脚本名,改成你自己的 额,写出来才发现,好像可以直接在qemu.d里那个脚本里把bash /boot/config/plugins/user.scripts/scripts/gpu.lowpower/script改成nvidia-smi --persistence-mode=1 其中gpu.lowpower是上一步创建的脚本名,改成你自己的 额,写出来才发现,好像可以直接在qemu.d里那个脚本里把bash /boot/config/plugins/user.scripts/scripts/gpu.lowpower/script改成nvidia-smi --persistence-mode=1 先谢谢兄弟分享,麻烦问下,只要设置第八个步骤的那个脚本就行了吗?那脚本里面的if [[ $2 == "release" ]]是什么意思,判断什么?
November 15, 20232 yr On 9/12/2023 at 5:01 PM, llm said: 游戏虚拟机关闭后自动降低显卡功耗 效果: 虚拟机启动后独立显卡自动进入工作模式,unraid无法查看显卡功耗 虚拟机关机后unraid接管独立显卡,显卡进入低功耗模式 功耗对比:索泰RTX4080天启OC,unraid接管状态下功耗由45W降至16W,风扇由低速转动变为停转 其他参考文章: [Unraid] 不直通独显将N卡直接传递给虚拟机使用并设置虚拟机关机时降低显卡功耗_NAS存储_什么值得买 (smzdm.com) UnRaid硬件直通的n种正确姿势_unraid 显卡直通-CSDN博客 Reveal hidden contents 打开unraid终端,进入/dev/disk/by-id/,查看硬盘名称用于直通硬盘 总结: unraid不屏蔽显卡 安装插件 Nvidia Driver 和 Gpu Statistics 主界面→flash→在unraid os中 append 和 initrd=/bzroot 之间添加 video=efifb:off(记得加空格) 在Windows物理机上使用GPU-Z提取显卡BIOS的rom文件。如果没有其他机器,可以在unraid里的硬盘里选一块固态(后称为硬盘A),先数据迁移到其他盘,然后取消分配,开启Unassigned Devices插件的破坏性模式,将硬盘A格式化,然后创建一个虚拟机,将硬盘A直通给虚拟机,在上面安装windows,然后重启机器,启动项选择硬盘A,就进入windows物理机了。 安装HxD或者使用VSCode安装Hex Editor扩展修改rom文件,搜索“VGA”,定位第一个,然后删除55 AA之前的全部内容,如图删除00009400那一行之前的全部内容(00009400那一行不删除) 按照一般直通显卡的方式操作 User Scripts创建脚本,内容如下 #!/bin/bash nvidia-smi --persistence-mode=1 打开unraid终端,在/etc/libvirt/hooks/目录下创建文件夹qemu.d,在qemu.d内创建脚本文件(随便命名,不需要后缀名),脚本内容如下 #!/bin/bash if [[ $2 == "release" ]] then bash /boot/config/plugins/user.scripts/scripts/gpu.lowpower/script fi 其中gpu.lowpower是上一步创建的脚本名,改成你自己的 额,写出来才发现,好像可以直接在qemu.d里那个脚本里把bash /boot/config/plugins/user.scripts/scripts/gpu.lowpower/script改成nvidia-smi --persistence-mode=1 谢谢兄弟分享,步骤7之前的我都会,就想问一句,下面两个脚本只需要用8步骤就行了吗(把bash换成nvidia那个),请问下if [[ $2 == "release" ]]这个是判断什么?谢谢
November 15, 20232 yr Author 13 minutes ago, shadowtyw said: 谢谢兄弟分享,步骤7之前的我都会,就想问一句,下面两个脚本只需要用8步骤就行了吗(把bash换成nvidia那个),请问下if [[ $2 == "release" ]]这个是判断什么?谢谢 后来发现还是需要步骤7的,因为开机时也需要运行一次这个脚本 if [[ $2 == "release" ]] 的意思是 “当虚拟机成功关机、显卡控制权交回unraid主系统”
November 15, 20232 yr 40 minutes ago, llm said: 感谢兄弟的指导,已经成功了!!! 我在这里提示几点给其他兄弟: 1.步骤8中的脚本切记新建后记得给权限(chmod +x /etc/libvirt/hooks/qemu.d/****); 2.如果nvidia-smi --persistence-mode=1 这个命令不起作用或者提示错误之类的,请尝试nvidia-smi -pm 1 这个命令。(我就是这样) 再次感谢
June 16, 20242 yr Author On 6/8/2024 at 9:40 PM, final said: 6.12.8下是不是不能这么用 虚拟机关机后没有调那个脚本呢 日志里看不到信息 我现在是6.12.10,还是正常的
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.