OMV(OpenMediaVault)是基于 Debian GNU/Linux 的网络连接存储(network attached storage,NAS)解决方案。它包含 SSH、(S) FTP、SMB/CIFS、DAAP 媒体服务器、rsync、 BitTorrent 等很多种服务。它可用于 x86-64 和 ARM 平台。
在x86-64平台上,基于x86-64虚拟机安装OMV软件是相对容易的事情,例如使用VirtualBox创建一个x86-64虚拟机,参考官方的x86-64平台安装文档可以轻松搞定。但是基于ARM虚拟机则没有那么容易,因为在x86-64平台上,VirtualBox不支持创建ARM虚拟机,这时就需要用到QEMU了。
根据官方文档,在ARM平台上安装,需要Armbian镜像,这里选用通用的ARM64镜像,而不是用于特定ARM开发板例如树莓派等的镜像。
============================================================
操作流程(基于Ubuntu 24.04 LTS系统):
----------------------------------
安装QEMU:
sudo apt install qemu-system-arm
验证QEMU:
qemu-system-aarch64 -version
----------------------------
下载Armbian 24.2.1 Bookworm CLI(OMV不支持桌面环境,因此下载这个版本):
wget https://dl.armbian.com/uefi-arm64/archive/Armbian_24.2.1_Uefi-arm64_bookworm_current_6.6.16.img.xz
解压Armbian镜像:
xz -kd Armbian_24.2.1_Uefi-arm64_bookworm_current_6.6.16.img.xz
OMV系统盘和数据盘是分开的,并且要求系统盘可用空间大于4GB。
系统盘就是用Armbian镜像虚拟的硬盘,基本上已经没有多少可用空间了,因此需要先扩容。
给Armbian镜像增加8GB容量用于安装OMV等软件:
qemu-img resize Armbian_24.2.1_Uefi-arm64_bookworm_current_6.6.16.img +8G
创建一个qcow2格式的虚拟硬盘作为OMV数据盘:
qemu-img create -f qcow2 omvdata.qcow2 16G
虚拟硬盘是动态分配大小的,因此创建完成后文件大小只有几百KB,不是8GB。
---------------------------
创建虚拟网桥和虚拟网卡:
sudo apt install iproute2(系统默认已经安装)
可选安装:brctl、tunctl、dhclient
sudo apt install bridge-utils
sudo apt install uml-utilities
sudo apt install isc-dhcp-client-ddns
创建虚拟网桥和虚拟网卡:
sudo ip link add br0 type bridge
sudo ip tuntap add dev tap0 mode tap
连接虚拟网桥和虚拟网卡:
sudo ip link set dev tap0 master br0
连接物理网卡(WiFi网卡需要配置4-address 模式支持WDS桥接)到虚拟网桥:
sudo iw dev wlx14cf92fe3d77 set 4addr on
sudo ip link set dev wlx14cf92fe3d77 master br0
启动虚拟网桥:
sudo ip link set dev br0 up
查看网桥连接的网卡:
sudo brctl show br0
清除物理网卡上的IP地址(同时也会清除路由):
sudo ip address flush wlx14cf92fe3d77 dynamic
使用
DHCP
方式给网桥分配
IP
(会自动配置网关和
DNS
):
sudo dhclient br0
或者给网桥配置静态IP,这种情况需要同时需要手动配置网关和DNS(否则无法连接外网):
sudo ip address flush wlx14cf92fe3d77 dynamic
sudo ip address add 192.168.2.99/24 dev br0
sudo ip route add default via 192.168.2.1 dev br0
sudo resolvectl dns br0 192.168.2.1 8.8.8.8
也可以使用brctl和tunctl命令配置网桥更简单:
sudo brctl addbr br0
sudo brctl stp br0 on
sudo tunctl -t tap0
sudo brctl addif br0 tap0
sudo iw dev wlx14cf92fe3d77 set 4addr on
sudo brctl addif br0 wlx14cf92fe3d77
sudo ip link set dev br0 up
sudo ip address flush wlx14cf92fe3d77 dynamic
sudo dhclient br0
使用无线网卡,桥接网络可能不稳定,DHCP获取IP时间也会长一些。如果连接中断,重新连接WiFi,检查网卡是否还连接网桥,重新配置IP地址。
网桥连接有线网卡会稳定一些:
sudo ip link add br0 type bridge
sudo ip tuntap add dev tap0 mode tap
sudo ip link set dev tap0 master br0
sudo ip link set dev enp4s0 master br0
sudo ip link set dev br0 up
也可以使用
brctl
和
tunctl
命令:
sudo brctl addbr br0
sudo brctl stp br0 on
sudo tunctl -t tap0
sudo brctl addif br0 tap0
sudo brctl addif br0 enp4s0
sudo ip link set dev br0 up
清除物理网卡上的
IP
(同时也清除路由),通过
DHCP
给网桥分配
IP
:
sudo ip address flush enp4s0 dynamic
sudo dhclient br0
如果给网桥配置静态
IP
,需要同时配置默认路由和
DNS
(否则无法访问外网):
sudo ip address flush enp4s0 dynamic