# 12.1 使用 BVCP 通过 Web 界面管理 bhyve 虚拟机

bhyve 是 FreeBSD 原生的系统级虚拟化技术，作为二级虚拟机监控程序（Type-2 hypervisor）运行在 FreeBSD 内核之上，通过 vmm 内核模块提供硬件辅助虚拟化支持，可在 FreeBSD 宿主机上运行多种客户机操作系统。BVCP（Bhyve Virtual-Machine Control Panel）是 bhyve 的 Web 图形化管理工具，通过封装 bhyve 命令行操作，降低了虚拟机管理的复杂度，实现虚拟机的可视化配置与生命周期管理。

本文支持 FreeBSD 12 及更高版本，实验环境基于 FreeBSD 14.2 RELEASE。本文所使用的 BVCP 2.1.4 版本尚不支持中文本地化。

本软件项目仓库地址为：<https://github.com/DaVieS007/bhyve-webadmin>

> **技巧**
>
> 无需提前配置任何服务、加载任何模块或安装其他软件。按照本文步骤即可完成操作。

## 安装 BVCP

安装 BVCP 分为以下几个步骤，依次执行即可完成。

1. **下载 BVCP 分发文件**：使用 fetch 命令从官方服务器获取 BVCP 压缩包

   ```sh
   # fetch https://bhyve.npulse.net/release.tgz
   ```
2. **解压缩 BVCP 分发文件**：将下载的压缩包解压到当前目录

   ```sh
   # tar -xzvf release.tgz
   ```
3. **安装 BVCP**：进入解压后的目录并执行安装脚本，该脚本会自动完成软件部署、数据库初始化和服务配置

   ```sh
   # cd bhyve-webadmin 
   root@ykla:/home/ykla/bhyve-webadmin-2.1.4 # ./install.sh 
   Installing BVCP into your FreeBSD Installation within seconds ...

   Press [CTRL] + [C] to Abort !
   bvcp_enable:  -> YES
    N  2024-12-21 11:32:35 | Kinga-Framework | 2024/02-17@build-336/FreeBSD64-L
    N  2024-12-21 11:32:35 | Product Name    | BVCP-Backend
    N  2024-12-21 11:32:35 | Description     | BVCP Bhyve Backend/Helper Module
    N  2024-12-21 11:32:35 | License         | Community Edition
    N  2024-12-21 11:32:35 | Copyright       | All rights reserved for the author: nPulse.net / Viktor Hlavaji
    N  2024-12-21 11:32:35 | Guardian | Create Process, PID: 1132
    N  2024-12-21 11:32:35 | SW | VFS:BuiltIn Loaded
    N  2024-12-21 11:32:35 | ThreadPool | 10/10 Threads initialised
    N  2024-12-21 11:32:35 | LVM::MAIN | Initialising ..



                       ██████╗ ██╗   ██╗ ██████╗██████╗ 
                       ██╔══██╗██║   ██║██╔════╝██╔══██╗
                       ██████╔╝██║   ██║██║     ██████╔╝
                       ██╔══██╗╚██╗ ██╔╝██║     ██╔═══╝ 
                       ██████╔╝ ╚████╔╝ ╚██████╗██║     
                       ╚═════╝   ╚═══╝   ╚═════╝╚═╝     

               Bhyve Virtual-Machine Control Panel under FreeBSD
           
    N  2024-12-21 11:32:35 | BVCP | Initialising BVCP-Backend 2.1.4 Application

     [>] Generating Entropy ... [217157D53CDD4122589AEE05D866C84C]

    Welcome to initial setup menu!
    The Software is located at: /var/lib/nPulse/BVCP

    The Software is producing pseudo filesystem scheme for virtual machines using symlinks
    Where to create metadata, iso_images, database, config, logs: (Does not need much space), default: [/vms]_>   # 按回车确认，安装所需的 iso_images 镜像将存放在此目录下

   ……省略一部分……


               Bhyve Virtual-Machine Control Panel under FreeBSD
           
    N  2024-12-21 11:33:46 | BVCP | Initialising BVCP-Backend 2.1.4 Application
    N  2024-12-21 11:33:48 | BVCP | Starting Database ...
    (!) Admin Credentials recreated,
      - User: admin 		# 用户名 admin
      - Password: AdJFjNjG # 密码 AdJFjNjG

    N  2024-12-21 11:33:48 | SW | Program exited gracefully...
   Installation Finished!
   Navigate: https://[your-ip]:8086  # 访问地址为 https://[your-ip]:8086，若在安装 BVCP 的机器上访问，可使用 https://localhost:8086
   ```

```sh
/
├── var/
│   └── lib/
│       └── nPulse/
│           └── BVCP/ # BVCP 软件安装位置
└── vms/ # 虚拟机元数据、ISO 镜像、数据库、配置、日志存放目录
    └── iso_images/ # ISO 镜像存放目录
```

## 安装 Ubuntu 24.04

本节介绍如何在 BVCP 中安装 Ubuntu 24.04 系统。安装过程分为两个主要步骤：获取安装镜像和通过 Web 界面配置虚拟机。

1. **下载 Ubuntu 24.04 安装镜像**：从中国科学技术大学镜像站获取 Ubuntu 24.04 桌面版安装镜像

   ```sh
   # fetch https://mirrors.ustc.edu.cn/ubuntu-releases/noble/ubuntu-24.04.1-desktop-amd64.iso
   ```
2. **将镜像移动到 BVCP 镜像目录**：将下载的 ISO 文件移动到 BVCP 配置的镜像存放目录，以便 Web 界面可以识别和使用

   ```sh
   # mv ubuntu-24.04.1-desktop-amd64.iso /vms/iso_images
   ```

完成上述准备工作后，即可通过 Web 界面开始创建虚拟机。以下截图展示了完整的配置过程：

![配置过程](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-ca32d020f5908f72c5470c3b6f68f776dd9e5891%2FBVCP1.png?alt=media)

![配置过程](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-b169c9e094d9685dd137997898ad6af146fc1b4a%2FBVCP2.png?alt=media)

![配置过程](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9b1972769e5af64438395d37b9159eb685ccf1c5%2FBVCP3.png?alt=media)

登录时忽略上方显示的电子邮件（email）字段，直接输入安装过程中生成的用户名 `admin` 和对应密码即可。

![登录界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-6f4e2c8bc75287a5a25e712b90670f01173d98d1%2FBVCP4.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-cc1714f5df9f8396c09c3326045ead18aecb3ba7%2FBVCP5.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-35e932726484bbcf33163ef570916e93ba3990d0%2FBVCP6.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9f359dd28061d8e352aadf0cdfae4c82d7c80cd9%2FBVCP7.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9e2f3d9dafa2a6d87cf2d4e37d124fefd322fe8c%2FBVCP8.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9c4206b896b4a1f423e3a47b013123c3af42016e%2FBVCP9.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-f157e3840c62b971830ceb3be8bc6f1fbc579019%2FBVCP10.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-d045c18fce1522a9b027ca84529622dc3ee13286%2FBVCP11.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-9239e560b7555acb78c957fb6ab295d91d68d4b5%2FBVCP12.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-ed225f985ffea07c91fb75381091f93330f32ddf%2FBVCP13.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-c6fbb976dce5db7c119c3193eed0077fa949aacc%2FBVCP14.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-7c611f4dbe5687bcccd4c4bdf1c1f6f4cc5d9bbb%2FBVCP15.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-6fe4f7d25228ed02bb5036241077dc89b3586633%2FBVCP16.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-f0d37606c401a79f875b6dccdd650a6fcdf66f72%2FBVCP17.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-0258dfa84398df59bda5bc10291efd71a9e7aadb%2FBVCP18.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-85d8f376716025efe936bd2427b95a7dfc05a0e2%2FBVCP19.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-5c17efacc79f199ff1ca26bbe490e017125d3022%2FBVCP20.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-a0d3956cd7c5aff79b1071eaa665894361f95974%2FBVCP21.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-5b825bbcaf92639b2040ad83a8a7110ac642949b%2FBVCP22.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-22fbc74298d26063640dcf4c496ef10feb9a2566%2FBVCP23.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-a9cfa18abce57ca1a83a71eea4d95226ed387502%2FBVCP24.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-28138f1ce07f07c0622390cc8a87598e7aa4d451%2FBVCP25.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-e836a4e1792a4bd2cf45a86936c27111ba3b90b1%2FBVCP26.png?alt=media)

![配置界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-7a2d73234df8963a7bdb944bfd0119bf012e5de1%2FBVCP27.png?alt=media)

安装完成后按回车键重启系统。

![重启系统](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-819d7c03a1dfa1e581a8dafa282fc598915866da%2FBVCP28.png?alt=media)

重启后进入新系统：

![新系统界面](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-4af8c01e606d84ef7d586ab079cc96b935cffb30%2FBVCP29.png?alt=media)

至此，Ubuntu 24.04 系统安装完成。

## 安装 Windows 11 IoT Enterprise LTSC, version 24H2 (x64) - DVD (English)

本节介绍在 BVCP 中安装 Windows 11 的方法。详细步骤与前文 Ubuntu 24.04 的安装说明类似，可参见前一节“使用 bhyve 及 vm-bhyve 工具安装 Windows 11”，此处仅列出关键的不同之处。

在 `Create new network interface` 步骤中创建新网卡接口时，需要特别注意网卡类型的选择：

![网卡配置](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-c3942cc29d5e5e17b0db4ed588376812a0a883a5%2FBVCP30.png?alt=media)

请务必选择 `Intel PRO e1000` 网卡类型，因为 Windows 系统默认不包含其他网卡类型的驱动程序。

![网卡选择](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-949b6376d2e643c4d487c7305092fe4cfff2da28%2FBVCP31.png?alt=media)

完成网卡配置后即可开始安装。

![安装过程](https://338876981-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCJR3FQGH1PkdRtOljuxb%2Fuploads%2Fgit-blob-01a19b8df8360ed20e5b12cf3b05ae48ab9295d3%2FBVCP32.png?alt=media)

## 故障排除与未竟事宜

本节提供 BVCP 使用过程中可能遇到的问题及其解决方法。

### 如何卸载 BVCP

如需卸载 BVCP，可参考官方文档 FreeBSD Bhyve Project. Uninstallation of BVCP\[EB/OL]. \[2026-03-26]. <https://bhyve.npulse.net/uninstall>. 进行操作。

## 参考文献

* たかちゃん. bhyve を GUI で 操作 する BVCP の 導入。\[EB/OL]. running-dog.net, (2024-02-05)\[2026-03-25]. <https://running-dog.net/2024/02/post_2933.html>. 提供了 BVCP 安装与配置的实用指南
* FreeBSD Bhyve Project. How to install BVCP\[EB/OL]. \[2026-03-25]. <https://bhyve.npulse.net/installation>. 官方安装说明，详细指导了 BVCP 部署流程
* FreeBSD Bhyve Project. TroubleShoot / Frequently Asked Questions (FAQ)\[EB/OL]. \[2026-03-25]. <https://bhyve.npulse.net/technical>. 常见疑难解答，提供故障排除方案
* FreeBSD Bhyve Project. Deploy Virtual Machine (Windows)\[EB/OL]. \[2026-03-25]. <https://bhyve.npulse.net/deploy_windows>. 官方 Windows 安装说明，详述了 Windows 虚拟机部署

## 课后习题

1. 在 BVCP 中创建一个虚拟机快照，验证是否可以成功恢复该快照。
2. 查找 FreeBSD 系统上 bhyve 的底层配置文件，对比 BVCP 生成的配置与手动使用 vm-bhyve 生成的配置有何不同，思考这种 Web 管理工具掩盖了系统的哪些底层复杂性。
3. 将完整的卸载步骤记录下来，贡献至本文
