FreeBSD 13.0 Bhyve 虚拟化程序安装 Ubuntu 20.04

Pader2022年3月7日 发表于 系统与硬件 FreeBSD FreeBSD Ubuntu Bhyve

Bhyve 是 FreeBSD 自带的虚拟化实现,其高效精简,且支持 PCI 设备直通。

安装和初始化管理工具 vm-bhyve

在 FreeBSD 下使用 Bhyve 建议使用 vm-bhhyve (https://github.com/churchers/vm-bhyve)这个工具进行管理,其提供的 vm 命令有大量功能可以轻松的管理 bhyve 虚拟机。

# 安装 vm-bhyve 命令,以及 grub2-bhyve 以支持 grub 启动 Linux
pkg install vm-bhyve grub2-bhyve bhyve-firmware

# 创建 ZFS 数据集用于存储虚拟机文件,我们这里把数据集 zroot/vm 挂载到 /vm 位置
zfs create -o mountpoint=/vm zroot/vm

# 配置 vm-bhyve 开机启动及指定数据目录位置,如果不是 ZFS 数据集,vm_dir 可直接指定目录位置,无需 zfs: 前缀
sysrc vm_enable="YES"
sysrc vm_dir="zfs:zroot/vm"

# 初始化 vm-bhyve 生成系统初始化必备文件
vm init
cp /usr/local/share/examples/vm-bhyve/* /mountpoint/for/pool/vm/.templates/

# 创建公共的虚拟交换机,并将主机网卡加入交换机,作为后续虚拟机桥接用
vm switch create public
vm switch add public em0

此时 bhyve 环境就准备好了,接下来是创建 Ubuntu 的一些步骤。

安装 Ubuntu 虚拟机

# 下载 Ubuntu ISO 文件并加入到 vm 管理中
vm iso https://mirror.nju.edu.cn/ubuntu-releases/20.04.4/ubuntu-20.04.4-live-server-amd64.iso

# 使用预设的 ubuntu 模板(/vm/.templates/ubuntu.conf)创建名为 ubuntu20 的虚拟机
vm create -t ubuntu -s 80G ubuntu20

# 使用 iso 启动虚拟机安装
vm install ubuntu20 ubuntu-20.04.4-live-server-amd64.iso

# 进入该虚拟机的控制台进行安装操作
vm console ubuntu20

这里需要注意以下三点:

一、安装 Ubuntu 时虚拟机至少要给 768M 内存,建议 1G(否则会报 "initramfs unpacking failed: write error" 错误),安装完之后正常可以降低内存运行。

使用以下命令打开 ubuntu20 的配置文件,该配置可修改虚拟机的 CPU 和内存、挂载的设备、网络配置等等。

vm configure ubuntu20

# 修改配置后需要重启虚拟机才能生效
vm restart ubuntu20

二,安装完后启动如果停留在 grub shell 界面,此是需配置 grub 加载分区和位置。

添加以下配置到虚拟机中(配置中的值可以在 grub shell 中通过命令找到):

grub_run_partition="gpt2"
grub_run_dir="/grub"

然后重启虚拟机。

三、在安装完成后通过 df -h 可能会发现 Ubuntu 并未使用虚拟磁盘所有空间,比如给的虚拟磁盘是 100G,但是在 Ubuntu 里看却只有 50G。

这是因为在安装时选用了 LVM 进行磁盘管理导致的,此时执行以下步骤扩展 LVM 使用磁盘的全部可用空间。

# 增加物理卷 (pv) 至最大可用空间
pvresize /dev/sda3

# 扩展逻辑卷 (LV) 使用剩下的所有可用空间
lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

# 重置文件系统大小
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

其它

给虚拟机添加一块磁盘

vm add -d disk -s 100G ubuntu

使用 screen 或 tmux 进入控制台后,可以防止无法退出控制台的现象(虽然一般安装后我们都使用 SSH 来登录)。

# 安装 screen 命令
pkg install screen

# 使用 screen 打开一个屏幕进行 ubuntu20 的控制台
screen -S cc vm console ubuntu20

# 使用 Ctrl + A 再按 K 结束屏幕

将虚拟机加入到开机启动中

sysrc vm_list+=ubuntu20

参考资料:

https://github.com/churchers/vm-bhyve

https://medium.com/@fgo.inai/%E5%9C%A8freebsd%E4%BB%A5bhyve%E5%BB%BA%E7%AB%8Barch-linux-vm-142e88464d70

https://github.com/churchers/vm-bhyve/issues/208

https://community.spiceworks.com/topic/2325763-how-can-i-make-ubuntu-vg-ubuntu-lv-consume-the-entire-disk-space-available

https://www.linuxidc.com/Linux/2015-08/121117.htm



评论 共有 0 条评论

暂无评论,快发表你的评论吧。