Linux
linux 上的 ZFS 從 0.6.2 升級到 0.6.3 使我的 zpool 無法讀取幫助將 CentOS 轉換為 Ubuntu 命令
使用升級我的
ubuntu 13.10
伺服器sudo apt-get upgrade
並重新啟動後,我的 zpool 不會顯示。messier@ANDERSON:~$ sudo zpool status no pools available messier@ANDERSON:~$ sudo zpool import zpool: ../../lib/libzfs/libzfs_import.c:356: Assertion `nvlist_lookup_uint64(zhp->zpool_config, ZPOOL_CONFIG_POOL_GUID, &theguid) == 0' failed. messier@ANDERSON:~$
我查看了 linux github 上的 zfs,找到了 CentOS 的修復方法,即刪除舊的核心模組,然後重新安裝軟體以獲取新的核心模組。
$ find /lib/modules/$(uname -r)/extra -name "splat.ko" -or -name "zcommon.ko" -or -name "zpios.ko" -or -name "spl.ko" -or -name "zavl.ko" -or -name "zfs.ko" -or -name "znvpair.ko" -or -name "zunicode.ko" | xargs rm -f $ find /lib/modules/$(uname -r)/weak-updates -name "splat.ko" -or -name "zcommon.ko" -or -name "zpios.ko" -or -name "spl.ko" -or -name "zavl.ko" -or -name "zfs.ko" -or -name "znvpair.ko" -or -name "zunicode.ko" | xargs rm -f $ yum reinstall zfs-release $ yum reinstall $(rpm -qa | egrep "zfs|spl")
人們說這是修復它。我只是不知道如何讓這個修復程序在我的 ubuntu 伺服器上執行。感謝您的幫助!
最後編輯:如果您進入此頁面是因為 zfs 更新錯誤。最簡單的解決方案就像 Scott Simon 所說的那樣。
# apt-get update # apt-get dist-upgrade # reboot
$ sudo find /lib/modules/$(uname -r)/updates -name "splat.ko" -or -name "zcommon.ko" -or -name "zpios.ko" -or -name "spl.ko" -or -name "zavl.ko" -or -name "zfs.ko" -or -name "znvpair.ko" -or -name "zunicode.ko" | xargs rm -f $ sudo apt-get install --reinstall ubuntu-zfs $ sudo apt-get install --reinstall $(dpkg-query --show --showformat='${binary:Package}\n' | egrep 'spl|zfs')
Ubuntu 將其所有 dkms 保存在 中
/lib/modules/$(uname -r)/updates
,而不是像 CentOS 那樣保存在/lib/modules/$(uname -r)/extra
和中。find /lib/modules/$(uname -r)/weak-updates
yum resinstall
相當於apt-get install --reinstall
。Ubuntu 的 zfs 元包與 CentOS 中的
ubuntu-zfs
不同。相當於zfs-release
rpm -qa``dpkg-query --show --showformat='${binary:Package}\n'
我也不確定 find 命令是否真的需要執行,因為
apt-get
可能已經處理好了,但執行它不會破壞程序。具有更多知識或經驗的人
dpkg
可能能夠編寫稍微更有效的命令,但我懷疑這對於大多數目的來說已經足夠了。