884 字
4 分钟
在飞牛OS虚拟机上搭建OpenWRT
2025-01-29
无标签

前文#

最近拿家里多余的一些硬件组了个飞牛OS。主路由是硬路由,没改内存带不了太多应用。刚好飞牛OS也推出了虚拟机,就寻思整旁路由试试。

操作#

选择硬盘镜像#

OpenWRT没有像其他系统那样的安装盘,需要自行将镜像烧录到硬盘。同时飞牛OS不能添加多ISO,也不能在开机的时候编辑ISO,导入操作有点麻烦。

飞牛OS的虚拟机是基于qemu的,需找到一个.qcow2的硬盘镜像导入。

这里选用的是ImmortalWrt,官方有带qcow2的镜像。

创建虚拟机#

如果下载的镜像名称中包含“efi”,在创建虚拟机时,主板固件请选择UEFI。启动镜像可以随意选择一个ISO。

其他步骤按照正常流程进行,硬盘空间可以随意填写。

替换镜像#

创建虚拟机后,点击虚拟机名称来查看详情,下滑找到磁盘部分,查看磁盘路径。

连接飞牛OS的SSH,切换到磁盘的目录,例如我这里是/vol2/vm/pool/

使用支持SSH的文件传输工具(WinSCP等…)将镜像上传到该目录。

删除原虚拟机的磁盘,将上传的镜像重命名为原虚拟机的磁盘名称(原磁盘名称在磁盘路径中可以看到)。

修改新上传磁盘文件所有者:

chown libvirt-qemu:libvirt-qemu 磁盘名称

设置新上传磁盘文件权限:

chmod 600 磁盘名称

操作完之后就可以开机了。

使用IMG镜像安装#

转换镜像#

什么?你所装的系统只有IMG?

连接飞牛OS的SSH,使用该命令转换镜像,再进行上一步操作。

qemu-img convert -O qcow2 any.img convert.qcow2

或参考后文介绍的写盘方式。

写盘#

在Windows下你可以使用physdiskwrite写盘。使用命令行

physdiskwrite.exe -u OpenWRT.img

填写你要写入的硬盘序号,确认信息后按y即可。

也可以在Linux下使用dd if写盘。这里采用ImmortalWrt的iso进行引导启动。

系统启动后,修改IP,使用SSH工具上传IMG文件到/tmp,然后使用以下命令:

dd if=/tmp/OpenWRT.img of=/dev/sda

注意:/dev/sda通常是第一块硬盘,我这里只有一块硬盘,所以直接写入。实际操作时请根据实际情况选择正确的硬盘!

写入完成后若无报错,重启即可。

扩容问题#

首先使用cfdisk自行分区(需自行安装软件包),分区保存后使用mkfs格式化要被扩容的分区。

mkfs.ext4 /dev/sda3

这里的/dev/sda3是在cfdisk中刚刚分出来的分区,在cfdisk中有标注。

个人建议将扩容空间分配给/overlay,但如果要扩容到根目录,请留意以下步骤:

在官方挂载工具中,提示的复制命令第三步:

mount /dev/sda1 /tmp/extroot

这里的/dev/sda1一定要改为你刚刚分区的那个盘,我这里是/dev/sda3

其他相关扩容教程搜索引擎有不少。

修改IP#

ImmortalWrt默认br-lan的ip是192.168.1.1,当然我是做旁路由。

虚拟机开机后,连接VNC,等一会终端没有其他输出后然后回车,进入终端。

nano /etc/config/network 

br-lan的IP修改为你当前网段未被分配的IP后重启网络服务。

/etc/init.d/network restart

浏览器访问修改后的IP,去网络里将br-lan的网关和DNS设置好(设置为上级网关)后应用。

在飞牛OS虚拟机上搭建OpenWRT
https://blog.linmoyu.top/posts/openwrt-at-fnos-vm/
作者
羽末
发布于
2025-01-29
许可协议
CC BY-NC-SA 4.0