安装 ubuntu-zfs 时出错

安装 ubuntu-zfs 时出错

我正在从 FreeNAS 切换到 Ubuntu 12.04 LTS。完成 Ubuntu 的 vanilla 安装后,我按所示顺序运行以下命令来安装 ZFS:

  1. apt-get install python-software-properties
  2. add-apt-repository ppa:zfs-native/stable
  3. apt-get -y -q update && apt-get -y -q upgrade
  4. 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_MOUNTZFS_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问题 :(

相关内容