.. _lima_run_freebsd: ======================= Lima运行FreeBSD虚拟机 ======================= 为了方便兼顾 :ref:`swift` 开发,同时降低每次反复折腾 :ref:`linux_desktop` (特别是 :ref:`gentoo_sway_fcitx` 非常折腾),我现在重新把桌面回归到 :ref:`macos` 。为了能够继续学习实践 :ref:`freebsd` 技术,改为采用 :ref:`lima` 虚拟机运行。不过,我也同时 :ref:`freebsd_on_intel_mac` ,确保能够在实际硬件和虚拟环境都能不断磨练FreeBSD相关技能。 .. note:: 由于Lima目前不支持USB设备支持,而我近期考虑在USB设备上构建 :ref:`lfs` ;并且,Lima实际上也是通过 :ref:`qemu` 来运行FreeBSD。 :strike:`我最终决定改为采用 utm 来统一运行虚拟化。` 但是,目前不管是 Lima 还是 :ref:`utm` ,都没有实现 :ref:`apple_virtualization` 虚拟化下的USB设备支持。这导致不管怎样,都需要使用 :ref:`qemu` 来运行 :ref:`freebsd` 以及需要访问USB设备的 :ref:`linux` 虚拟机。 :ref:`utm` 的优点是图形化交互界面,完全和商业软件 :ref:`vmware_fusion` 对齐 我 :ref:`think_apple_virtualization` 之后,目前依然主力选择 :ref:`lima` .. note:: 本文记录我在 :ref:`lima` 尝试运行FreeBSD虚拟机的两种后端: :ref:`qemu` 和 :ref:`apple_virtualization` (VZ)。目前实践验证,FreeBSD 14.2 需要在 :ref:`qemu` 环境运行。 完成运行FreeBSD之后,则进行 :ref:`freebsd_vm_init` (相对 :ref:`freebsd_init` 会多一些环境设置步骤) lima的FreeBSD模版 =================== - 准备模版文件 ``/usr/local/share/lima/templates/freebsd.yaml`` (具体模版目录可能根据lima安装发布,如果配置文件没有放到正确位置 ``lima start`` 会提示找不到 ``.../freebsd.yaml`` ,则根据提示将配置文件复制到对应位置即可) : .. literalinclude:: lima_run_freebsd/freebsd.yaml :caption: 准备模版 .. note:: 这里我使用了国内163的镜像网站 - 启动: .. literalinclude:: lima_run_freebsd/start_freebsd :caption: 启动(失败) 这里提示错误 .. literalinclude:: lima_run_freebsd/start_freebsd_output :caption: 运行提示 :emphasize-lines: 39 可以看到启动的界面,但是运行时crash(虚拟机屏幕开始滚动输出时) - 修订启动,去掉VZ配置 .. literalinclude:: lima_run_freebsd/start_freebsd_no_vm-type :caption: 不指定vm-type启动freebsd 依然没有解决,看起来默认运行VZ了: .. literalinclude:: lima_run_freebsd/start_freebsd_no_vm-type_output :caption: 不指定VZ启动freebsd .. note:: lima 1.0 开始,如果macOS >= 13.5 ,则新建实例默认使用 ``VZ`` ( :ref:`apple_virtualization` 后端)。见 `Lima Documentatation / Configuration guide / VM types `_ - 修订启动,指定qemu .. literalinclude:: lima_run_freebsd/start_freebsd_qemu :caption: 指定vm-type为qemu启动freebsd 报错显示系统没有qemu安装 .. literalinclude:: lima_run_freebsd/start_freebsd_qemu_output :caption: 指定vm-type为qemu启动freebsd,发现没有qemu - 补充安装 :ref:`qemu` .. literalinclude:: lima_run_freebsd/install_qemu :caption: 安装 qemu 解决了,果然在 :ref:`macos` 环境下,使用 :ref:`qemu` 运行 :ref:`freebsd` 是成功的: .. figure:: ../../../_static/apple/virtualization/lima/lima_freebsd.png 通过 :ref:`qemu` 虚拟化,lima可以运行FreeBSD虚拟机 小结 ======= 我的实践显示在 lima 中使用 ``VZ`` 虚拟化不能运行FreeBSD,但是我也有点疑惑,从之前查询到信息 `Running GUI FreeBSD in a virtual machine on a Mac `_ (我准备尝试一下 :ref:`run_freebsd_in_apple_virtualization` ),使用 :ref:`apple_virtualization` 框架应该能够运行FreeBSD。具体是哪里出错,我还得再研究一下。 参考 ===== - `Lima Issues: Support for FreeBSD guests ? #1508 `_ - `Lima Documentation/Examples `_