Centos
CentOS 7:重啟後,zfs 模組不會載入,沒有 /dev/zfs
959 天后,需要在 CentOS 7 系統上重新啟動,該系統在過去幾年中完美地使用了 ZFS。
yum update
那段時間我每個月跑一次。重啟系統顯然無法載入其 ZFS 模組,如下所示
# zpool list /dev/zfs and /proc/self/mounts are required. Try running 'udevadm trigger' and 'mount -t proc proc /proc' as root. # modprobe zfs modprobe: FATAL: Module zfs not found. # uname -a Linux foo 3.10.0-1160.49.1.el7.x86_64 #1 SMP Tue Nov 30 15:51:32 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux # yum install zfs zfs-kmod Package zfs-0.7.13-1.el7_6.x86_64 already installed and latest version Package kmod-zfs-0.7.13-1.el7_6.x86_64 already installed and latest version Nothing to do
/proc
已安裝並且udevadm trigger
沒有效果。/dev/zfs
不存在。為 ZFS 查詢 dmesg(不區分大小寫)為空。手動載入模組說# modprobe zfs modprobe: FATAL: Module zfs not found.
我難住了。我怎樣才能讓 ZFS 再次執行?
編輯
一個問題是我的回購
/etc/yum.repos.d/zfs.repo
仍然是 7.6,而/etc/yum.repos.d/zfs.repo.rpmnew
7.9。我保存了舊的 zfs.repo 並將 7.9 的那個複製到zfs.repo
. 然後再次按照 kABI 的說明進行操作。現在我得到了這個:# yum install zfs Resolving Dependencies --> Running transaction check ---> Package spl.x86_64 0:0.7.13-1.el7_6 will be obsoleted --> Processing Dependency: spl = 0.7.13 for package: kmod-spl-0.7.13-1.el7_6.x86_64 ---> Package zfs.x86_64 0:0.7.13-1.el7_6 will be updated --> Processing Dependency: zfs = 0.7.13 for package: kmod-zfs-0.7.13-1.el7_6.x86_64 ---> Package zfs.x86_64 0:2.0.7-1.el7 will be obsoleting --> Processing Dependency: libzpool4 = 2.0.7 for package: zfs-2.0.7-1.el7.x86_64 --> Processing Dependency: libzfs4 = 2.0.7 for package: zfs-2.0.7-1.el7.x86_64 --> Processing Dependency: libuutil3 = 2.0.7 for package: zfs-2.0.7-1.el7.x86_64 --> Processing Dependency: libnvpair3 = 2.0.7 for package: zfs-2.0.7-1.el7.x86_64 --> Processing Dependency: libzpool.so.4()(64bit) for package: zfs-2.0.7-1.el7.x86_64 --> Processing Dependency: libzfs_core.so.3()(64bit) for package: zfs-2.0.7-1.el7.x86_64 --> Processing Dependency: libzfs.so.4()(64bit) for package: zfs-2.0.7-1.el7.x86_64 --> Processing Dependency: libuutil.so.3()(64bit) for package: zfs-2.0.7-1.el7.x86_64 --> Processing Dependency: libnvpair.so.3()(64bit) for package: zfs-2.0.7-1.el7.x86_64 --> Running transaction check ---> Package kmod-zfs.x86_64 0:0.7.13-1.el7_6 will be updated ---> Package kmod-zfs.x86_64 0:2.0.7-1.el7 will be an update ---> Package libnvpair1.x86_64 0:0.7.13-1.el7_6 will be obsoleted ---> Package libnvpair3.x86_64 0:2.0.7-1.el7 will be obsoleting ---> Package libuutil1.x86_64 0:0.7.13-1.el7_6 will be obsoleted ---> Package libuutil3.x86_64 0:2.0.7-1.el7 will be obsoleting ---> Package libzfs2.x86_64 0:0.7.13-1.el7_6 will be obsoleted ---> Package libzfs4.x86_64 0:2.0.7-1.el7 will be obsoleting ---> Package libzpool2.x86_64 0:0.7.13-1.el7_6 will be obsoleted ---> Package libzpool4.x86_64 0:2.0.7-1.el7 will be obsoleting ---> Package spl.x86_64 0:0.7.13-1.el7_6 will be obsoleted --> Processing Dependency: spl = 0.7.13 for package: kmod-spl-0.7.13-1.el7_6.x86_64 --> Finished Dependency Resolution Error: Package: kmod-spl-0.7.13-1.el7_6.x86_64 (@zfs-kmod) Requires: spl = 0.7.13 Removing: spl-0.7.13-1.el7_6.x86_64 (@zfs-kmod) spl = 0.7.13-1.el7_6 Obsoleted By: zfs-2.0.7-1.el7.x86_64 (zfs-kmod) Not found You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest # yum install --skip-broken zfs [...] Packages skipped because of dependency problems: kmod-zfs-2.0.7-1.el7.x86_64 from zfs-kmod libnvpair3-2.0.7-1.el7.x86_64 from zfs-kmod libuutil3-2.0.7-1.el7.x86_64 from zfs-kmod libzfs4-2.0.7-1.el7.x86_64 from zfs-kmod libzpool4-2.0.7-1.el7.x86_64 from zfs-kmod zfs-2.0.7-1.el7.x86_64 from zfs-kmod
我該如何解決依賴問題?
959天不重啟?哇。我假設你沒有使用
kexec
,這意味著你第一次啟動了新核心。問題是您安裝的 ZFS 模組是為不同的核心建構的,因此您現在無法載入它。您的選擇:
嘗試使用
weak-modules
腳本(weak-modules --add-kernel --no-initramfs
如果您在 initramfs 中不需要 ZFS)。如果沒有 kABI 更改,它會將模組符號連結到新/lib/module
目錄,以使其可用於新核心。(如果這真的是您第一次使用新核心,那麼可能是 kABI 發生了變化。)如果上述方法不起作用,您可以嘗試重新安裝軟體包。OpenZFS提到這是在 CentOS 次要版本之間升級時的必要步驟。
- 您需要先刪除現有的
zfs
,spl
和.kmod-zfs``yum remove zfs spl kmod-zfs
- 從OpenZFS安裝 7.9 的最新儲存庫。
yum install https://zfsonlinux.org/epel/zfs-release.el7_9.noarch.rpm rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux
- 從新添加的 repo安裝
zfs
和安裝。kmod-zfs
- 您也可以嘗試安裝DKMS模組(將在核心更新後自動重建)而不是您現在使用的 kmod 包。