当前位置: 首页 > news >正文

vm-bhyve:bhyve虚拟机的管理系统@FreeBSD

先说情况,当前创建虚拟机后网络没有调通....不明白是最近自己点背,还是确实有难度...

缘起:

前段时间学习bhyve虚拟机,发现bvm这个虚拟机管理系统,但是实践下来发现网络方面好像有问题,至少我花了两天时间都没有配置成功。于是继续寻找,通过pkg search bhyve,发现了vm-bhyve这个虚拟机的管理系统。

pkg search bhyve

 bhyve+-0.1.0                   BHyVe with unofficial extensions
bhyve-firmware-1.0_1           Collection of Firmware for bhyve
bhyve-rc-4                     FreeBSD RC script for starting bhyve guests in tmux
edk2-bhyve-g202308_4           EDK2 Firmware for bhyve
grub2-bhyve-0.40_10            Grub-emu loader for bhyve
rubygem-vagrant-bhyve-0.1.0    Vagrant provider plugin to support bhyve
u-boot-bhyve-arm64-2023.10_1   Cross-build das u-boot for model bhyve-arm64
uefi-edk2-bhyve-csm-0.2_4,1    UEFI EDK2 firmware for bhyve with CSM (16-bit BIOS)
vm-bhyve-1.5.0                 Management system for bhyve virtual machines
vm-bhyve-devel-1.5.0.26   

介绍

bhyve是FreeBSD下的虚拟化解决方案,它提供了一种在FreeBSD上创建和运行虚拟机的方法。支持多种操作系统,高效精简。

使用命令行操作,帮助用户轻松创建、启动和停止虚拟机。

快速使用

1. pkg install vm-bhyve
2. zfs create pool/vm
3. sysrc vm_enable="YES"
4. sysrc vm_dir="zfs:pool/vm"
5. vm init
6. cp /usr/local/share/examples/vm-bhyve/* /mountpoint/for/pool/vm/.templates/
7. vm switch create public
8. vm switch add public em0
9. vm iso https://download.freebsd.org/ftp/releases/ISO-IMAGES/11.2/FreeBSD-11.2-RELEASE-amd64-bootonly.iso
10. vm create myguest
11. vm install [-f] myguest FreeBSD-11.2-RELEASE-amd64-bootonly.iso
12. vm console myguest

下面是详细安装使用过程。 

安装

直接使用pkg进行安装

pkg install vm-bhyve

安装之后提示:

--
To enable vm-bhyve, please add the following lines to rc.conf,
depending on whether you are using ZFS storage or not. Please note
that the directory or dataset specified should already exist.

    vm_enable="YES"
    vm_dir="zfs:pool/dataset"

OR

    vm_enable="YES"
    vm_dir="/directory/path"

Then run 'vm init'.

因此我们需要按照提示进行相应的配置。

配置

设置启动配置

按照提示进行配置,可以直接使用命令:

sysrc vm_enable="YES"
sysrc vm_dir="/root/vmbhyve"

也可以将以下两句写入/etc/rc.conf文件,然后执行 sh /etc/sh 即可。

vm_enable="YES"
vm_dir="/root/vmbhyve"

然后进行初始化:


vm init

将例子文件拷贝到主目录


cp /usr/local/share/examples/vm-bhyve/* /root/vmbhyve/.templates/

配置网络

vm switch create public
vm switch add public em0

对我的机器来说,是igb0网口

wm switch add public igb0 

启动

配置安装光盘

vm iso https://mirrors.ustc.edu.cn/freebsd/releases/ISO-IMAGES/14.1/FreeBSD-14.1-BETA3-amd64-bootonly.iso

 vm install myguest http://FreeBSD-14.1-BETA3-amd64-bootonly.iso

后来发现RC1版本发布,所以最终用的命令是:

vm iso https://mirrors.ustc.edu.cn/freebsd/releases/ISO-IMAGES/14.1/FreeBSD-14.1-RC1-amd64-bootonly.iso

开始启动

vm install myguest FreeBSD-14.1-BETA3-amd64-bootonly.iso
Starting myguest
  * found guest in /root/vmbhyve/myguest
  * booting...
root@fbhost:~/vmbhyve # 

最终用的命令是:

vm install -f myguest FreeBSD-14.1-RC1-amd64-bootonly.iso

 使用-f参数,可以自动连接虚拟机,省去下面的命令。

连接虚拟机

vm console myguest 

不出意外的出意外了。

dhcp拿不到ip地址

dhcp总算拿到ip地址了

在安装的过程中,多次重新安装,因此需要注意安装不成功之后的操作。

在安装的时候碰到过网络不通的情况,即使重新配置,网络通了,但是硬盘因为前面配置了zfs,导致看不见硬盘,无法进行下一步。

这时候就要重新“完全重新启动”安装过程,需要在虚拟机里关机。如果关机后进入下面状态

Consoles: userboot  FreeBSD/amd64 User boot lua, Revision 1.2
ERROR: cannot open /boot/lua/loader.lua: no such file or directory.Type '?' for a list of commands, 'help' for more detailed help.
OK 

需要输入

quit

退出。

安装完毕之后的正常启动

vm start myguest
vm console myguest

总结

暂时用vm-bhyve还是没有调通虚拟机的网络部分。

调试

绑定igb0网络出错

vm switch add public igb0
/usr/local/sbin/vm: ERROR: failed to add member igb0 to the virtual switch public
好像这台机器的虚拟网那边有些乱了。强制虚拟机运行起来,也是无法拿到dhcp地址,手工设地址也连不上。

启动虚拟机报错

 vm install  testvm freeBSD-14.1-BETA3-amd64-bootonly.iso
/usr/local/sbin/vm: ERROR: unable to locate iso file - 'freeBSD-14.1-BETA3-amd64-bootonly.iso'
不明白这里为什么没有这个iso 

后来怎么又不报错了呢? 反正又从中科大重新配了一下启动光盘,就好了:

vm iso https://mirrors.ustc.edu.cn/freebsd/releases/ISO-IMAGES/14.1/FreeBSD-14.1-BETA3-amd64-bootonly.iso

网络不通

把这两句配上试试

network0_type="virtio-net"
network0_switch="public"

还是不通,最近调的虚拟机网络都不通...

vm console myguest 无法连接虚拟主机


/usr/local/sbin/vm: ERROR: myguest  doesn't appear to be a valid virtual machine

但是换了一个控制台,就登上去了。


命令报错-su: switch: not found

而且用其它的没有的命令测试,也是有-su的报错:

-su: ldde: not found

为什么发的命令会报错:-su: ldde: not found ,如果没有ldde这个命令,也不应该有-su 什么事啊

原来命令前面少了vm,不是 switch add public igb0, 而整个命令是:

 vm switch add public igb0
 

安装的时候多次遇到获取base.txz失败的问题

或者说就卡在这里,一度以为网卡没有起来,后来专门测试这个地址:

https://download.freebsd.org/ftp/releases/amd64/amd64/14.1-BETA3/base.txz

发现没有这个文件,原来这几天FreeBSD的14.1-RC1发布了,所以BETA3的软件没有了。

重新下载14.1的安装盘:

https://mirrors.ustc.edu.cn/freebsd/releases/ISO-IMAGES/14.1/FreeBSD-14.1-RC1-amd64-bootonly.iso

使用14.1-RC1光盘启动后无法进入安装界面

不能进入安装界面,直接进入login登录界面,而且root账户登进去还会报错退出

Fri May 31 12:52:56 UTC 2024

FreeBSD/amd64 (Amnesiac) (ttyu0)

login: root
g_vfs_done():iso9660/14_1_RC1_AMD64_BO[READ(offset=456009728, length=2048)]error = 5
2024-05-31T12:53:09.464378+00:00 - login 560 - - login on ttyu0 as root
2024-05-31T12:53:09.466283+00:00 - login 560 - - ROOT LOGIN (root) ON ttyu0
Can't mkdir /var/run/xdg
2024-05-31T12:53:09.470018+00:00 - login 560 - - pam_open_session(): Session failure

FreeBSD/amd64 (Amnesiac) (ttyu0)

login: root
2024-05-31T12:54:43.240502+00:00 - login 561 - - login on ttyu0 as root
2024-05-31T12:54:43.242543+00:00 - login 561 - - ROOT LOGIN (root) ON ttyu0
Can't mkdir /var/run/xdg
2024-05-31T12:54:43.245788+00:00 - login 561 - - pam_open_session(): Session failure

FreeBSD/amd64 (Amnesiac) (ttyu0)

login: 
 

重新vm iso https://mirrors.ustc.edu.cn/freebsd/releases/ISO-IMAGES/14.1/FreeBSD-14.1-RC1-amd64-bootonly.iso 

再次安装,就正常了。

有时候vm console myguest无法登录

报错

vm console myguest 
/usr/local/sbin/vm: ERROR: myguest  doesn't appear to be a valid virtual machine

原来是myguest后面不小心有了空格...

相关文章:

vm-bhyve:bhyve虚拟机的管理系统@FreeBSD

先说情况,当前创建虚拟机后网络没有调通....不明白是最近自己点背,还是确实有难度... 缘起: 前段时间学习bhyve虚拟机,发现bvm这个虚拟机管理系统,但是实践下来发现网络方面好像有问题,至少我花了两天时间…...

【Java】刚刚!突然!紧急通知!垃圾回收!

【Java】刚刚!突然!紧急通知!垃圾回收! 文章目录 【Java】刚刚!突然!紧急通知!垃圾回收!从C语言的内存管理引入:手动回收Java的垃圾回收机制引用计数器循环引用问题 可达…...

[Algorithm][动态规划][子序列问题][最长递增子序列][摆动序列]详细讲解

目录 0.子序列 vs 子数组1.最长递增子序列1.题目链接2.算法原理详解3.代码实现 2.摆动序列1.题目链接2.题目链接3.代码实现 0.子序列 vs 子数组 子序列: 相对顺序是跟源字符串/数组是一致的但是元素和元素之间,在源字符串/数组中可以是不连续的一般时间…...

【稳定检索】2024年心理学与现代化教育、媒体国际会议(PMEM 2024)

2024年心理学与现代化教育、媒体国际会议 2024 International Conference on Psychology and Modern Education and Media 【1】会议简介 2024年心理学与现代化教育、媒体国际会议即将召开,这是一场汇聚全球心理学、教育及媒体领域精英的学术盛宴。 本次会议将深入探…...

深入了解diffusion model

diffusion model是如何运作的 会输入当时noise的严重程度,根据我们的输入来确定在第几个step,并做出不同的回应。 Denoise模组内部实际做的事情 产生一张图片和产生noise难度是不一样的,若denoise 模块产生一只带噪声的猫说明这个模块已经会…...

TransmittableThreadLocal原理

1、原理 TransmittableThreadLocal(简称TTL)是阿里巴巴开源的一个Java库,用于解决线程池中线程本地变量传递的问题。其底层原理主要是基于Java的ThreadLocal机制并对其进行扩展,以支持在父子线程间以及线程池中任务切换时&#x…...

华为昇腾310B初体验,OrangePi AIpro开发板使用测评

0、写在前面 很高兴收到官方的OrangePi AIpro开发板测试邀请,在过去的几年中,我在自己的博客写了一系列有关搭载嵌入式Linux系统的SBC(单板计算机)的博文,包括树莓派4系列、2K1000龙芯教育派、Radxa Rock5B、BeagleBo…...

GPTQ 量化大模型

GPTQ 量化大模型 GPTQ 算法 GPTQ 算法由 Frantar 等人 (2023) 提出,它从 OBQ 方法中汲取灵感,但进行了重大改进,可以将其扩展到(非常)大型的语言模型。 步骤 1:任意顺序量化 OBQ 方法选择权重按特定顺序…...

【GD32】05 - PWM 脉冲宽度调制

PWM PWM (Pulse Width Modulation) 是一种模拟信号电平的方法,它通过使用数字信号(通常是方波)来近似地表示模拟信号。在PWM中,信号的占空比(即高电平时间占整个周期的比例)被用来控制平均输出电压或电流。…...

JVM思维导图

帮助我们快速整理和总结JVM相关知识,有结构化认识和整体的思维模型 JVM相关详细知识和面试题...

Ollama+OpenWebUI+Phi3本地大模型入门

文章目录 Ollama+OpenWebUI+Phi3本地大模型入门一、基础环境二、Ollama三、OpenWebUI + Phi3Ollama+OpenWebUI+Phi3本地大模型入门 完全不懂大模型的请绕道,相信我李一舟的课程比较适合 Ollama提供大模型运行环境,OpenWebUI提供UI,Phi3就是那个大模型。 当然,Ollama支持超级…...

实战15:bert 命名实体识别、地址解析、人名电话地址抽取系统-完整代码数据

直接看项目视频演示: bert 命名实体识别、关系抽取、人物抽取、地址解析、人名电话地址提取系统-完整代码数据_哔哩哔哩_bilibili 项目演示: 代码: import re from transformers import BertTokenizer, BertForTokenClassification, pipeline import os import torch im…...

js 表格添加|删除一行交互

一、需求 二、实现 <div style"margin-bottom: 55px"><form action"" method"post" enctype"multipart/form-data" id"reportForm" name"sjf" style"margin-left: 25px;margin-bottom: 50px;&quo…...

如何选择合适的服务器硬件和配置?

业务需求 了解您的业务需求和负载。这将帮助您确定需要哪种类型的服务器&#xff08;如文件服务器、数据库服务器、Web服务器等&#xff09;以及所需的处理能力、内存、存储和网络性能。...

Prometheus + Grafana + Alertmanager 系统监控

PrometheusGrafana 系统监控 1. 简介1.1 Prometheus 普罗 米修斯1.2 Grafana 2. 快速试用2.1 Prometheus 普罗 米修斯2.2 Prometheus 配置文件2.3 Grafana 2. 使用 Docker-Compose脚本部署监控服务3. Grafana 配置3.1 配置数据源 Prometheus3.2 使用模板ID 配置监控模板3.3 使用…...

5.23R语言-参数假设检验

理论 方差分析&#xff08;ANOVA, Analysis of Variance&#xff09;是统计学中用来比较多个样本均值之间差异的一种方法。它通过将总变异分解为不同来源的变异来检测因子对响应变量的影响。方差分析广泛应用于实验设计、质量控制、医学研究等领域。 方差分析的基本模型 方差…...

rnn 和lstm源码学习笔记

目录 rnn学习笔记 lstm学习笔记 rnn学习笔记 import torchdef rnn(inputs, state, params):# inputs的形状: (时间步数量, 批次大小, 词表大小)W_xh, W_hh, b_h, W_hq, b_q paramsH stateoutputs []# 遍历每个时间步for X in inputs:# 计算隐藏状态 HH torch.tanh(torch.…...

解析Java中1000个常用类:CharSequence类,你学会了吗?

在 Java 编程中,字符串操作是最常见的任务之一。为了提供一种灵活且统一的方式来处理不同类型的字符序列,Java 引入了 CharSequence 接口。 通过实现 CharSequence 接口,各种字符序列类可以提供一致的 API,增强了代码的灵活性和可扩展性。 本文将深入探讨 CharSequence 接…...

微服务远程调用之拦截器实战

微服务远程调用之拦截器实战 前言&#xff1a; 在我们开发过程中&#xff0c;很可能是项目是从0到1开发&#xff0c;或者在原有基础上做二次开发&#xff0c;这次是根据已有代码做二次开发&#xff0c;需要在我们微服务一【这里方便举例&#xff0c;我们后面叫模版微服务】调用…...

德人合科技——天锐绿盾内网安全管理软件 | -文档透明加密模块

天锐绿盾文档加密功能能够为各种模式的电子文档提供高强度加密保护&#xff0c;丰富的权限控制以及灵活的应用管理&#xff0c;帮助企业构建更严密的立体保密体系。 PC地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee ————…...

超融合架构下,虚拟机高可用机制如何构建?

作者&#xff1a;SmartX 产品部 钟锦锌 虚拟机高可用&#xff08;High Availability&#xff0c;简称 HA&#xff09;是虚拟化/超融合平台最常用、关键的功能之一&#xff0c;可在服务器发生故障时通过重建业务虚拟机以降低故障对业务带来的影响。因此&#xff0c;为了充分保障…...

工厂模式详情

一.介绍工厂模式的用途与特点 工厂方法模式是一种创建型设计模式&#xff0c; 其在父类中提供一个创建对象的方法&#xff0c; 允许子类决定实例化对象的类型。定义工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口&#xff0c;但让实现这个接口的类来决定实例…...

【Word】调整列表符号与后续文本的间距

1. 默认的列表格式&#xff1a; 2. 修改间距&#xff1a; ************************************************** 分割线 ************************************************************ 3. 效果...

匠心独运,B 端系统 UI 演绎华章之美

匠心独运&#xff0c;B 端系统 UI 演绎华章之美...

Java电商平台-开放API接口签名验证(小程序/APP)

说明&#xff1a;在实际的生鲜业务中&#xff0c;不可避免的需要对外提供api接口给外部进行调用. 这里就有一个接口安全的问题需要沟通了。下面是干货: 接口安全问题 请求身份是否合法&#xff1f; 请求参数是否被篡改&#xff1f; 请求是否唯一&#xff1f; AccessKey&am…...

Tale全局函数对象base

目录 1、 Tale全局函数对象base 1.1、 * tale alert删除 1.2、 * 成功弹框 1.3、 * 弹出成功,并在500毫秒后刷新页面 1.4、 * 警告弹框 1.5、 * 询问确认弹框,这里会传入then函数进来...

【启程Golang之旅】掌握Go语言数组基础概念与实际应用

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…...

COMSOL中液晶材料光学特性模拟

前面我们根据FDTD官方文档设置了液晶指向的模型。COMSOL也可以根据相似的方法设置各项异性的周期性变化的材料。 该方法参考了luneburg_lens的COMSOL文档 在给出的文件中&#xff0c;可以发现定义-变量中可以使用默认坐标作为变量&#xff0c;即xyz。因此&#xff0c;折射率也可…...

虚拟现实环境下的远程教育和智能评估系统(五)

查阅相关VR眼动注意力联合教育学相关论文 1.Exploring Eye Gaze Visualization Techniques for Identifying Distracted Students in Educational VR&#xff08;IEEE VR 2020&#xff09; 摘要&#xff1a;我们提出了一种架构&#xff0c;使VR教学代理能够响应眼动追踪监控…...

【算法】模拟算法——Z字形变换(medium)

题解&#xff1a;模拟算法——Z字形变换(medium) 目录 1.题目2.题解3.参考代码4.总结 1.题目 题目链接&#xff1a;LINK 2.题解 利用模拟&#xff0c;来解决问题。 首先创建出一个O(numRows*n)的数组来&#xff0c;并按照题目要求把每个字符按顺序填进去。 这里以numRows…...