我正在从 FreeNAS 切换到 Ubuntu 12.04 LTS。完成 Ubuntu 的 vanilla 安装后,我按所示顺序运行以下命令来安装 ZFS:
apt-get install python-software-properties
add-apt-repository ppa:zfs-native/stable
apt-get -y -q update && apt-get -y -q upgrade
apt-get install ubuntu-zfs
运行最后一条命令时,ZFS 已安装,并且似乎正常工作……大部分情况下(稍后会详细介绍)。但是,当运行最后一个命令时,我收到此错误(完整日志这里):
configure: error:
*** Please make sure the kmod spl devel <kernel> package for your
*** distribution is installed then try again. If that fails you
*** can specify the location of the spl objects with the
*** '--with-spl-obj=PATH' option.
这是什么错误?我该如何修复它?
我之前说主要是因为我的池在服务器重启时不会自动挂载。我读过的所有文章(主要是来自这页面)表示mountall
只需处理安装。我已按照该页面上的说明进行操作,但无法正常mountall
工作。如果我编辑/etc/fstab
或更改中的ZFS_MOUNT
和ZFS_UNMOUNT
选项,我的池将仅在重新启动时自动安装/etc/default/zfs
。
答案1
以下内容对我在 14.04 版有帮助:
sudo apt-get remove spl-dkms zfs-dkms ubuntu-zfs
sudo apt-get install spl-dkms
sudo apt-get install zfs-dkms
sudo apt-get install ubuntu-zfs
我没有意识到spl
需要先安装zfs
才能成功编译,我认为我因此不断收到编译错误。据我了解,要点是源zfs
依赖于spl
源。
我在邮件列表。
答案2
您需要重新初始化内核内容。刚刚在全新安装时发现了同样的问题。
以下假设您已经ppa:zfs-native/stable
安装了 repo:
首先,在尝试安装编译所需的东西之前:
apt-get install linux-headers-generic build-essential -y
安装 zfs
apt-get install ubuntu-zfs -y
重建 dkms 驱动程序(首先是 SPL)
dpkg-reconfigure spl-dkms
dpkg-reconfigure zfs-dkms
如果一切顺利,您应该能够加载模块并看到它们被加载:
# modprobe zfs
# lsmod | grep zfs
zfs 1144227 0
zunicode 331251 1 zfs
zavl 15010 1 zfs
zcommon 47181 1 zfs
znvpair 88812 2 zfs,zcommon
spl 168728 5 zfs,zavl,zunicode,zcommon,znvpair
这是我在这里找到的所有“简单”版本:https://groups.google.com/a/zfsonlinux.org/d/msg/zfs-discuss/sSTbgwerXi4/txQ9EK2yqMMJ
我在我的工作站上使用了它,其价值与上面的两个 dpkg 重建大致相同:
KERNEL_VER=`uname -r`
ZFS_VER=0.6.2
dkms remove -m spl -v $ZFS_VER --all
dkms remove -m zfs -v $ZFS_VER --all
ls -l /var/lib/dkms/spl /var/lib/dkms/zfs # (should be nothing there)
dkms add -m sqpl -v $ZFS_VER -k KERNEL_VER
dkms install -m spl -v $ZFS_VER -k $KERNEL_VER
dkms add -m zfs -v $ZFS_VER -k KERNEL_VER
dkms install -m zfs -v $ZFS_VER -k $KERNEL_VER
答案3
经过反复尝试,我发现apt-get install linux-headers-generic build-essential
在任何其他命令之前调用会导致后面的调用apt-get install ubuntu-zfs
执行时不会出错。但这仍然没有解决mountall
问题 :(