前文
最近拿家里多余的一些硬件组了个飞牛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设置好(设置为上级网关)后应用。