Skip to content

公告!

近期接到群友反馈,发现有其它网站复制抄袭本站文案内容,请大家注意甄别,避免上当受骗。

fnOS 虚拟 iStoreOS 软路由

警告

涉及到网络,硬件直通,虚拟机等操作如果出现误操作,可能会导致系统崩溃,无法正常启动,系统连不上等各种严重问题,请谨慎评估风险后再操作!

大家期待的虚拟机功能,飞牛在 0.8.36 这个版本终于支持了!而且支持了 硬件直通!下面就教大家如何在多网口的机器上使用飞牛虚拟机安装 iStoreOS 软路由。

  • 由于主路由和旁路由设置大部分步骤都完全一样,所以下面以主路由为例,需要设置旁路由的时候会单独说明。
  • 以下演示的硬件设备为搭载 Intel 12 代 N100 CPU,板载双 2.5G 网口的机器。

前提条件

硬件直通功能需要使用支持 CPU 虚拟化的平台,并且需要开启 IOMMU,包括主板 BIOS 和内核启动参数两部分。飞牛默认内核启动参数没有开启 IOMMU,需要手动开启。

BIOS 设置部分,不同的主板可能有所不同,可以自行查询对应的主板开启。常见的 NAS 主板(比如畅网/倍控/铭微的 N5105/N100/8505 等)BIOS 默认 IOMMU 已经开启,无需额外设置 BIOS。

下面以 Intel 平台为例,介绍设置内核启动参数开启 IOMMU。

开启 IOMMU

首先 使用 SSH 登录 fnOS,并且换到 root 用户。按照下面的步骤开启 IOMMU。

sh
# 编辑 grub 配置文件
nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT 中加入 intel_iommu=on 参数,注意前后都要保留一个空格。之后按 Ctrl+X 保存,输入 Y 回车确认退出。

更新 grub,之后重启。

sh
# 更新 grub
update-grub
# 重启
reboot

IOMMU 开启成功之后,在飞牛中会显示 已开启,最后按提示开启 硬件直通选项

开启虚拟交换机(OVS)

在网络设置中,开启虚拟交换机。在设置之前,最好将飞牛的网口设置为静态 IP。

这里是有两个网口,一个是 网口 1,对应的网卡名称是 enp2s0。另一个是 网口 2,对应的网卡名称是 enp3s0

目前飞牛使用的网卡是 enp2s0,状态是 已连接,我们需要在这个网卡右边点击•••,选择 启用 OVS。这个网口在 iStoreOS 虚拟机中会作为软路由的 LAN 口。

另一个网口 enp3s0,状态是 未连接,待会需要直通给 iStoreOS 虚拟机作为软路由的 WAN 口。

ISO 镜像

目前飞牛只支持使用 ISO 镜像作为启动镜像,但是 iStoreOS 提供的镜像是 img 格式。我尝试了各种将 img 转换为 iso 的办法,都有问题。最后还是用 PE ISO 镜像启动,在 PE 中使用 img 写盘工具img 镜像写入到虚拟硬盘中,最后才顺利启动。

如果你想自己制作 ISO 镜像,可以参考这个教程 使用 PE 打包 ISO 镜像,最终得到的可启动的 ISO 文件。如果想省事可以直接用我做好的 ISO 镜像,你可以从 夸克网盘下载

之后在飞牛中建立一个 iso 文件夹,把 ISO 镜像上传到这个文件夹里。

创建虚拟机

经过以上步骤,终于可以开始建立 iStoreOS 的虚拟机了,按照下面的步骤来操作:

虚拟机名称 iStoreOS,操作系统选择 Linux,版本 6.x - 2.6 Kernel

启动镜像选择我们上传的 ISO 文件,其它按图所示。

添加存储空间,分配大小为 4G 的 SATA 类型的虚拟硬盘,用来将 img 镜像写入到这个虚拟硬盘里。

在之前我们创建好了虚拟交换机,这里就会自动把虚拟网卡加到虚拟机里,保持默认。

提示

硬件直通这一步,如果是做主路由,需要添加硬件(直通网卡),如果是做旁路由,则不需要添加硬件,直接点击 创建

这一步需要添加之前那个未被使用的网卡,也就是 enp3s0,该网卡在 PCIE 中的设备地址为:03:00.0,点击 添加硬件,按提示添加。

创建完成之后,启动虚拟机,并使用自带的 VNC 访问虚拟机。

写入 img 镜像到虚拟磁盘

虚拟机开机之后,自动启动 PE,打开 此电脑,按下图位置定位到 iStoreOS 文件夹。

打开 img 写盘工具映像档 选择 istoreos.img 文件,点击 开始

写入完成之后,关闭虚拟机。之后编辑虚拟机,删除启动镜像,点击确定。

再次启动虚拟机,就会从虚拟硬盘中的 iStoreOS 启动。

后续 iStoreOS 路由模式设置可以参考这里:iStoreOS 路由模式设置