This translation is older than the original page and might be outdated. See what has changed.

在Apple Silicon上的UTM虚拟机中安装OpenWrt

这份文档描述了如何在 macOS(Apple Silicon 硬件)上的 UTM虚拟机 中运行 armsr/armv8 架构的 OpenWrt 镜像。
您可以在wiki的其他地方找到 macOS(Apple Silicon 硬件)上采用其他虚拟化技术虚拟机的安装教程

您需要 ARM x64 位版本的 OpenWrt。 有下列两个版本可供选择:

  • combined-squashfs.img.gz: 截止到版本23.05.0,这个版本与sysupgrade功能不兼容
  • combined-ext4.img.gz: 这个磁盘镜像使用一个单独的可读写的ext4分区,没有只读的squashfs根文件系统,因此无法使用像 Failsafe Mode(安全模式)或 Factory Reset(出厂重置)等功能

在这份文档中,我们将使用openwrt-armsr-armv8-generic-ext4-combined.img.gz/,因为它支持sysupgrade功能

  • targets/armsr/arvm8/ folder下载一个稳定版本的 generic-ext4-combined.img.gz
  • e.g. 23.05.0.
  • 或者你也可以尝试最新版本但不稳定的快照镜像 snapshot
  • 解压缩下载得到的gzip文件,你将得到一个原始的openwrt.img镜像文件

:!: 提示:保留原始的gzip压缩的镜像文件的副本,它可以用作sysupgrade的镜像。

启动UTM,然后点击Create a new Virtual Machine


选择 Virtualize


选择Other(因为Linux的安装路径需要一个安装ISO映像文件,而我们在OpenWrt中不使用这种映像文件)。


勾选 Skip ISO boot


配置为512MB内存和2个CPU(需要保证有足够资源运行sysupgrade)。


接受默认的存储设置(稍后将删除这个驱动器并替换为OpenWrt镜像)。


无需配置共享目录


勾选Open VM Settings。为虚拟机命名,然后点击Save


如果您根据本文档了设置,请继续参考下列配置:

网络设置

选择Network。将网络模式更改为Host Only。勾选Show Advanced Settings。在Guest Network框中,输入虚拟机LAN的网络范围:10.0.2.0/24


在“Devices”下,点击/+New条目,添加一个新的Network。点击这个网络并确认它被配置为Shared Network


虚拟机上的br-lan 接口连接到lan 接口,固定地址为10.0.2.2,在UTM中设置为Host Only Network。此接口将始终对当前主机可用。
虚拟机上的eth1接口连接到wan接口,使用动态地址,在UTM中设置为Shared Network(NAT)。此接口将通过主机进行互联网访问。

:!:Host Only Network“和“Shared Network”的顺序对于运行在虚拟机中OpenWrt的即插即用操作非常重要。虽然后续你可以使用控制台进行配置,但以这种方式配置可以简化启动配置的过程。


移除未使用的设备

Display选项上右键点击并删除它。在Sound选项上右键点击并删除它。(由于OpenWrt运行在终端,无需声音图形设备,删除可以减轻资源压力)在VirtIO Drive选项上右键点击并删除它。确认删除驱动器,点击Delete。(这是UTM在创建虚拟机时创建的空白磁盘)


其他设备设置

继续在下方点击/+New条目,添加一个新的Serial设备。点击串口设备并检查模式。默认模式是一个内置终端窗口,支持使用macOS原生键盘快捷键进行复制和粘贴。可自由终端样式。


Drives选项部分,选择New...。接受接口默认设置(VirtIO),然后点击Import...。目标文件夹为你之前解压的openwrt.img文件。


点击Save保存以上设置 .

虚拟机中OpenWrt设置


  • 启动你的虚拟机(点击启动按钮)
  • 等待几秒GRUB自动启动
  • 当启动消息完成滚动时,按Enter键以激活虚拟机内的控制台
  • 显示当前LAN网络配置。请注意,在第一次启动时,默认的LAN地址为192.168.1.1。
    root@openwrt:~# uci show network.lan
    network.lan=interface
    network.lan.device='br-lan'
    network.lan.proto='static'
    network.lan.ipaddr='192.168.1.1'
    network.lan.netmask='255.255.255.0'
    network.lan.ip6assign='60'
  • 编辑网络配置以允许SSH访问,将以下命令粘贴到控制台中:
    uci set network.lan.ipaddr='10.0.2.2'
    uci commit
    service network restart
  • 如果您熟悉vim编辑器,可以直接对config文件进行,使用指令:
    vim /etc/config/network

    进行修改后重启网络:

    service network restart
  • 现在,你可以通过SSH访问你的虚拟机,使用用户root(无密码),IP地址为10.0.2.2
  • 如果你安装了一个稳定发布版本的镜像,如23.05.0,LuCi web界面可以通过 http://10.0.2.2/ 进行访问
  • 如果你安装了不包含LuCi的快照版本,可以使用以下命令安装luci:
    opkg update && opkg install luci
  • 你的主机需要接入互联网(尝试运行opkg update)并需要一个具有静态地址的LAN接口,以确保你可以随时通过SSH进行连接
  • 如果你有更复杂的需求,你需要通过阅读其他文档或使用LuCi来自行进行设置
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2023/11/08 11:52
  • by imashenyoo