返回顶部
h

hyperv-create-vmHyperV创建虚拟机

Create Ubuntu 24.04 VMs on Windows Hyper-V from cloud images with cloud-init. Handles all the gotchas: sparse VHDX fix, hv_netvsc network config, permissions, Secure Boot, and Docker Compose v2. Returns a Docker-ready VM with SSH access.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.1
安全检测
已通过
127
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

hyperv-create-vm

Hyper-V VM 创建器

通过 cloud-init 从云镜像在 Windows Hyper-V 上创建 Ubuntu 24.04 虚拟机。返回一个支持 SSH 访问且已配置 Docker 的虚拟机。

使用场景

  • - 创建 hyper-v 虚拟机
  • 在 hyper-v 上启动虚拟机
  • 新建 hyper-v ubuntu 虚拟机
  • 任何需要在 Windows Hyper-V 主机上创建全新 Linux 虚拟机的场景

这是一个基础技能。它负责创建虚拟机。其他技能(soc-deploy-thehive、soc-deploy-misp)在此基础上部署应用程序。

用户输入

参数默认值是否必填
虚拟机名称-
Hyper-V 主机
hyperv-host (YOURHYPERVIP) | 否 | | CPU 核心数 | 2 | 否 | | 内存 | 4GB | 否 | | 磁盘 | 40GB | 否 | | 虚拟机用户密码 | (自动生成) | 否 | | 额外的 cloud-init 包 | - | 否 | | 网络交换机 | DNS-NIC-Switch | 否 |

前置条件检查

bash

SSH 连接到 Hyper-V 主机


ssh hyperv-host echo OK 2>/dev/null || echo 失败:无法通过 SSH 连接到 Hyper-V 主机

Windows 上的 qemu-img

ssh hyperv-host where C:\Program Files\qemu\qemu-img.exe 2>/dev/null || echo 失败:qemu-img 未安装 (choco install qemu -y)

Linux 上的 genisoimage(用于构建 cloud-init ISO)

which genisoimage || echo 失败:genisoimage 未安装 (apt install genisoimage)

执行流程

步骤 1:构建 cloud-init ISO(在 Linux 上)

bash

通过环境变量设置密码(推荐,避免暴露在 shell 历史/进程列表中)


VM_PASSWORD=<密码> bash scripts/build-cidata-iso.sh <虚拟机名称> [SSH公钥]

或通过标准输入

echo <密码> | bash scripts/build-cidata-iso.sh <虚拟机名称> [SSH公钥]

创建 /tmp/<虚拟机名称>-cidata.iso

ISO 包含三个文件:

  • - user-data:部署用户、Docker、Compose v2、SSH 密码认证
  • meta-data:实例 ID 和主机名
  • network-config:hv_netvsc DHCP 匹配(对 Hyper-V 网络至关重要

步骤 2:传输文件到 Hyper-V 主机

bash

云镜像(如果尚未缓存)


wget -q https://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img -O /tmp/ubuntu-24.04-cloud.img
scp /tmp/ubuntu-24.04-cloud.img hyperv-host:C:/Users/youruser/Downloads/

Cloud-init ISO

scp /tmp/<虚拟机名称>-cidata.iso hyperv-host:C:/Users/youruser/Downloads/

步骤 3:创建虚拟机(在 Hyper-V 主机上以提升权限运行 PowerShell)

bash

将脚本复制到主机


scp scripts/create-vm.ps1 hyperv-host:C:/Users/youruser/Downloads/

执行(需要提升权限)

ssh hyperv-host powershell -ExecutionPolicy Bypass -File C:\\Users\\youruser\\Downloads\\create-vm.ps1 \ -VMName <虚拟机名称> \ -CloudInitISO C:\\Users\\youruser\\Downloads\\<虚拟机名称>-cidata.iso \ -DiskSizeGB <磁盘> -MemoryGB <内存> -CPUCount <核心数>

步骤 4:等待启动并查找 IP

bash
sleep 90 # Cloud-init 需要约 90 秒

Hyper-V 虚拟机的 MAC 地址以 00-15-5d 开头

arp -a | grep 00-15-5d

获取虚拟机 MAC 地址进行匹配

ssh hyperv-host powershell (Get-VMNetworkAdapter -VMName <虚拟机名称>).MacAddress

PowerShell 显示:00155D38010A

ARP 显示: 00-15-5d-38-01-0a

步骤 5:验证 SSH 和 Docker

bash
ssh deploy@ docker --version && docker compose version && echo 虚拟机就绪

返回值

向调用者报告:

虚拟机已创建:<虚拟机名称>
IP 地址:
SSH:deploy@(密码:<密码>)
Docker:已安装
Docker Compose v2:已安装

销毁

完全销毁虚拟机:
bash
ssh hyperv-host powershell -Command \Stop-VM -Name <虚拟机名称> -Force -TurnOff; Remove-VM -Name <虚拟机名称> -Force; Remove-Item C:\\ProgramData\\Microsoft\\Windows\\Virtual Hard Disks\\<虚拟机名称>.vhdx -Force\

或使用 scripts/destroy-vm.ps1:
bash
scp scripts/destroy-vm.ps1 hyperv-host:C:/Users/youruser/Downloads/
ssh hyperv-host powershell -ExecutionPolicy Bypass -File C:\\Users\\youruser\\Downloads\\destroy-vm.ps1 -VMName <虚拟机名称>

关键注意事项

详见 references/gotchas.md。主要障碍:

  1. 1. 稀疏 VHDX:在 Resize-VHD 之前执行 fsutil sparse setflag <路径> 0,否则出现错误 0xC03A001A
  2. 网络配置:必须包含 match: driver: hv_netvsc,否则虚拟机无法获取 IP
  3. 权限:icacls /grant NT VIRTUAL MACHINE\Virtual Machines:(F),否则 Start-VM 失败
  4. 关闭安全启动:Ubuntu 云镜像未针对 Hyper-V 签名
  5. Cloud-init 只运行一次:无法重做。删除虚拟机 + VHDX 后重新开始
  6. 不要批量执行 PowerShell:一次只运行一个 Hyper-V 命令
  7. 所有命令都需要提升权限的 PowerShell
  8. Docker Compose v2:通过 curl 在 runcmd 中安装,不要使用 apt
  9. IP 发现:使用 ARP 扫描,不要用 Get-VMNetworkAdapter(需要 linux-tools-virtual)

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 hyperv-create-vm-1776118536 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 hyperv-create-vm-1776118536 技能

通过命令行安装

skillhub install hyperv-create-vm-1776118536

下载

⬇ 下载 hyperv-create-vm v1.1.1(免费)

文件大小: 8.05 KB | 发布时间: 2026-4-14 14:12

v1.1.1 最新 2026-4-14 14:12
Declared credential and tool requirements in frontmatter: SSH access, admin privileges, VM_PASSWORD env var, genisoimage, qemu-img. Fixes scanner flag for missing credential declarations.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部