OMV上的ZFS安装
OMV版本:6.0.30-1 (Shaitan)
Debian版本:11 (bullseye)
zfs版本:2.1.99-1266_gd51f4ea5f
官方的ZFS安装教程
官方安装教程:openzfs.github.io/openzfs-doc…
这个教程在我的系统上并没有成功,我尝试时的zfs版本是2.1.4。
由于zfs的许可证和Linux冲突,因此apt安装时是先下载源码然后编译安装,但是我的安装报错了。
于是我手动下载了zfs-2.1.4的源码自行编译,依然不成功。
编译教程参考:openzfs.github.io/openzfs-doc…
最后我尝试了zfs的git仓库最新代码,它可以运行。
编译2.1.99版本的deb包
apt install build-essential autoconf automake libtool gawk alien fakeroot dkms libblkid-dev uuid-dev libudev-dev libssl-dev zlib1g-dev libaio-dev libattr1-dev libelf-dev linux-headers-$(uname -r) python3 python3-dev python3-setuptools python3-cffi libffi-dev python3-packaging git libcurl4-openssl-dev
git clone https://github.com/openzfs/zfs
cd zfs
git checkout master
sh autogen.sh
./configure
make -s -j$(nproc)
make deb
得到的deb文件:
- kmod-zfs-5.18.0-0.bpo.1-amd64_2.1.99-1266_amd64.deb
- kmod-zfs-devel_2.1.99-1266_amd64.deb
- kmod-zfs-devel-5.18.0-0.bpo.1-amd64_2.1.99-1266_amd64.deb
- libnvpair3_2.1.99-1266_amd64.deb
- libuutil3_2.1.99-1266_amd64.deb
- libzfs5_2.1.99-1266_amd64.deb
- libzfs5-devel_2.1.99-1266_amd64.deb
- libzpool5_2.1.99-1266_amd64.deb
- python3-pyzfs_2.1.99-1266_amd64.deb
- zfs_2.1.99-1266_amd64.deb
- zfs-dkms_2.1.99-1266_amd64.deb
- zfs-dracut_2.1.99-1266_amd64.deb
- zfs-initramfs_2.1.99-1266_amd64.deb
- zfs-test_2.1.99-1266_amd64.deb
修正deb包
编译好的deb包是存在问题的,需要手动修改。
各deb包的依赖关系:
方框表示编译得到的deb,圆圈表示依赖的其他包。
可以看到其中的zfs和zfs-test依赖了一个名为libzfs4linux的包,而这个包应该要被libzfs5替代才对,因此要手动修改zfs和zfs-test。
# 建立目录
mkdir build
mkdir -p extract-zfs/DEBIAN
# 解包deb
dpkg -X ./zfs_2.1.99-1266_amd64.deb extract-zfs
dpkg -e ./zfs_2.1.99-1266_amd64.deb extract-zfs/DEBIAN
# 修正Depends
vim extract-zfs/DEBIAN/control # 将Depends中的libzfs4linux改为libzfs5
# 重新打包deb
dpkg-deb -b extract-zfs build
mv ./build/zfs_2.1.99-1266_amd64.deb ./
zfs-test包由于并不需要安装,因此没必要修改。
安装zfs
apt install ./libnvpair3_2.1.99-1266_amd64.deb \
./libuutil3_2.1.99-1266_amd64.deb \
./libzpool5_2.1.99-1266_amd64.deb \
./libzfs5_2.1.99-1266_amd64.deb \
./kmod-zfs-5.18.0-0.bpo.1-amd64_2.1.99-1266_amd64.deb \
./zfs_2.1.99-1266_amd64.deb
modprobe zfs
验证安装
zpool version
lsmod | grep zfs
模块自动加载
默认情况下zfs模块不会开机自启,因此需要修改/etc/modules。
vim /etc/modules # 添加一行,内容为:zfs
修改后:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
zfs
openmediavault-zfs插件的安装
我尝试了使用OMV的浏览器管理界面安装插件,但它底层也是通过apt工具安装zfs-dkms包,而这种方式是已经确认不可行的。
因此要手动下载openmediavault-zfs的deb包,并进行依赖修正。
apt install -d openmediavault-zfs
cp /var/cache/apt/archives/openmediavault-zfs_6.0.9_amd64.deb ./
依赖修正的步骤同上,该deb包的Depends被修正为:
Depends: libzfs5, pve-headers | linux-headers-amd64, openmediavault (>= 6.0.12), kmod-zfs-5.18.0-0.bpo.1-amd64, zfs
最后重新dpkg-deb打包,并通过apt本地安装。
PS
以上教程基于我本人的机器环境,实际运行请参考自身实际情况。