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

2024-06-01 00:36

本文主要是介绍vm-bhyve:bhyve虚拟机的管理系统@FreeBSD,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先说情况,刚开始创建虚拟机后网络没有调通....不明白是最近自己点背,还是确实有难度...大约用了5天时间才搞定。主要原因就是一个物理网卡不能放进两个网桥配置里,至少ifconfig分配的网卡不能再被vm-bhyve分配。网络踩坑见:https://blog.csdn.net/skywalk8163/article/details/139359520

缘起:

前段时间学习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   

vm-bhyve介绍

vm-bhyve是FreeBSD下的虚拟化解决方案的管理器,它使用命令行操作,帮助用户轻松创建、启动和停止虚拟机。官网:https://github.com/churchers/vm-bhyve.git

快速使用

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 start -f myguest

关机

关机使用

vm stop myguest

总结

vm-bhyve管理虚拟机还是相当好用的,尽管网络设置那边走了一些弯路,安装盘也走了一些弯路,但用熟练之后,vm-bhyve真是太方便了!

调试

绑定igb0网络出错

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

最后才知道是因为网卡已经分配给bridge0,不能同时分配给两个桥,解决的方法是删掉bridge0的igb0 绑定,具体见:https://blog.csdn.net/skywalk8163/article/details/139359520

启动虚拟机报错

 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 console myguest登录上去之后控制台是乱的

vm console myguest登上去是乱的,当然可以盲打登录,可以盲打关机....

ssh上去是正常的

解决方法:要么ssh上去,要么开机的时候直接-f登录,那个不会乱

vm start -f myguest

这篇关于vm-bhyve:bhyve虚拟机的管理系统@FreeBSD的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019487

相关文章

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

HotSpot虚拟机的经典垃圾收集器

读《深入理解Java虚拟机》第三版笔记。 关系 Serial、ParNew、Parallel Scavenge、Parallel Old、Serial Old(MSC)、Concurrent Mark Sweep (CMS)、Garbage First(G1)收集器。 如图: 1、Serial 和 Serial Old 收集器 2、ParNew 收集器 3、Parallel Sc

理解java虚拟机内存收集

学习《深入理解Java虚拟机》时个人的理解笔记 1、为什么要去了解垃圾收集和内存回收技术? 当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就必须对这些“自动化”的技术实施必要的监控和调节。 2、“哲学三问”内存收集 what?when?how? 那些内存需要回收?什么时候回收?如何回收? 这是一个整体的问题,确定了什么状态的内存可以

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

使用Spring Boot集成Spring Data JPA和单例模式构建库存管理系统

引言 在企业级应用开发中,数据库操作是非常重要的一环。Spring Data JPA提供了一种简化的方式来进行数据库交互,它使得开发者无需编写复杂的JPA代码就可以完成常见的CRUD操作。此外,设计模式如单例模式可以帮助我们更好地管理和控制对象的创建过程,从而提高系统的性能和可维护性。本文将展示如何结合Spring Boot、Spring Data JPA以及单例模式来构建一个基本的库存管理系统

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。

基于SSM+Vue+MySQL的可视化高校公寓管理系统

系统展示 管理员界面 宿管界面 学生界面 系统背景   当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前,不接受信息改革带来的信息技术的企业随时面临被淘汰,被取代的风险。所以当今,各个行业领域,不管是传统的教育行业

图书管理系统系统分享

分享一个图书管理系统,Java、SpringBoot、Vue和MySQL开发的图书馆管理系统 gitee项目地址:https://gitee.com/yuanmomoya/open-source-project/tree/master/books-management-system GitHub项目地址:https://github.com/yuanmomoya/open-source-pro

虚拟机ubuntu配置opencv和opencv_contrib

前期准备  1.下载opencv和opencv_contrib源码 opencv-4.6.0:https://opencv.org/releases/ opencv_contrib-4.6.0:https://github.com/opencv/opencv_contrib 在ubuntu直接下载或者在window上下好传到虚拟机里都可以 自己找个地方把他们解压,个人习惯在home下新建一