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 镜像,iStoreOS 的 img 镜像,img 写盘工具,UltraISO 镜像编辑工具。
  • 使用 UltraISO 将 iStoreOS 的 img 镜像,img 写盘工具打包到 PE 的 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 网络配置文件。

sh
vi /etc/config/network

输入 i 进入编辑模式,按下图所示修改,修改完成之后按 ESC 退出编辑,输入 :wq 保存并退出。

重启虚拟机之后,如果不出意外,iStoreOS 就可以作为主路由来用了。

iStoreOS 的默认用户名/密码:root/password