hack のためのネタ帳, etc,,,

ZFS on Linux を Ubuntu 14.04 LTS で使っていたのだが、Ubuntu 16.04 LTS ではディストリビューション側でサポートされるようになったので不要になった。
ところが do-release-upgrade すると、以下のように ZFS on Linux のパッケージが残ってしまう。
$ dpkg -l| grep -i zfs
ii  libzfs2                             0.6.5.7-1~trusty                amd64        Native OpenZFS filesystem library for Linux
ii  libzpool2                           0.6.5.7-1~trusty                amd64        Native OpenZFS pool library for Linux
ii  ubuntu-zfs                          8~trusty                        amd64        Native ZFS filesystem metapackage for Ubuntu.
ii  zfs-dkms                            0.6.5.7-1~trusty                amd64        Native OpenZFS filesystem kernel modules for Linux
ii  zfs-doc                             0.6.5.7-1~trusty                amd64        Native OpenZFS filesystem documentation and examples.
ii  zfsutils                            0.6.5.7-1~trusty                amd64        Native OpenZFS management utilities for Linux
代替は、
$ apt-cache search zfs
parted - disk partition manipulator
bzflag-server - 3D first person tank battle game -- server
collectd-core - statistics collection and monitoring daemon (core system)
golang-go-zfs-dev - Go library for ZFS manipulation
libguestfs-zfs - guest disk image management system - ZFS support
libuutil1linux - Solaris userland utility library for Linux
libuutil1linux-dbg - Debugging symbols for libuutil1linux
libzfs2linux - Native OpenZFS filesystem library for Linux
libzfs2linux-dbg - Debugging symbols for libzfs2
libzfslinux-dev - Native OpenZFS filesystem development files for Linux
libzpool2linux - Native OpenZFS pool library for Linux
simplesnap - Simple and powerful network transmission of ZFS snapshots
zfs-dkms - Native OpenZFS filesystem kernel modules for Linux
zfs-doc - Native OpenZFS filesystem documentation and examples.
zfs-fuse - ZFS on FUSE
zfs-initramfs - Native OpenZFS root filesystem capabilities for Linux
zfs-zed - OpenZFS Event Daemon (zed)
zfs-zed-dbg - Debugging symbols for zfs-zed
zfsnap - Automatic snapshot creation and removal for ZFS
zfsutils-linux - Native OpenZFS management utilities for Linux
zfsutils-linux-dbg - Debugging symbols for zfsutils-linux
ubuntu-zfs - Native ZFS filesystem metapackage for Ubuntu.
libzpool2 - Native OpenZFS pool library for Linux
libzfs2 - Native OpenZFS filesystem library for Linux
libuutil1 - Solaris userland utility library for Linux
zfsutils - Native OpenZFS management utilities for Linux
で出て来る zfsutils-linux のはずなんだけど、install すると以下のようになる。
$ sudo apt-get install zfsutils-linux
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
 zfsutils-linux : 依存: zfs-doc (= 0.6.5.6-0ubuntu15) しかし、0.6.5.7-1~trusty はインストールされようとしています
                  依存: libnvpair1linux しかし、インストールされようとしていません
                  依存: libuutil1linux しかし、インストールされようとしていません
                  依存: libzfs2linux しかし、インストールされようとしていません
                  依存: libzpool2linux しかし、インストールされようとしていません
                  推奨: zfs-zed しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
どうも Ubuntu 16.04 LTS のものは 0.6.5.6 なのに対して、ZFS on Linux の方が 0.6.5.7 で 0.0.0.1 新しく、依存関係が = で記述されているので、依存関係が解決出来ないっぽい。
$ sudo apt-get install zfsutils-linux -s --allow-downgrades -f
のように、ダウングレード許可と依存関係修復用の --allow-downgrades -f オプションを付けてみたが、これでも依存関係を解決出来なかった。

結局
dpkg -l| grep -i zfs | awk '{print $2}' | sudo xargs apt-get purge -y
のような感じで、一旦 ZFS on Linux 関連の package を全部 purge してから改めて
$ sudo apt-get install zfsutils-linux
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libnvpair1linux libuutil1linux libzfs2linux libzpool2linux zfs-doc zfs-zed
提案パッケージ:
  nfs-kernel-server zfs-initramfs
以下のパッケージが新たにインストールされます:
  libnvpair1linux libuutil1linux libzfs2linux libzpool2linux zfs-doc zfs-zed zfsutils-linux
アップグレード: 0 個、新規インストール: 7 個、削除: 0 個、保留: 49 個。
896 kB のアーカイブを取得する必要があります。
この操作後に追加で 2,902 kB のディスク容量が消費されます。
続行しますか? [Y/n] 
ってしてやると解決したのだが
これ、見ての通り zfs-initramfs が suggest になってるので
ZFS root にしてるマシンでやるには zfs-initramfs も入れる必要がある。
オプションに --install-suggests 付けとけば良いのかなって来もするけど、
これちょっと勇気いるかも。

しかも、最近の ZFS は知らない flag があると import 出来なかったりするので、 0.0.0.1 の違いで、最悪、ZFS root が mount 出来ない恐れがあるのも怖い。


あと、上記の操作で
$ dpkg -l|grep zfs
ii  libzfs2linux                       0.6.5.6-0ubuntu15               amd64        Native OpenZFS filesystem library for Linux
ii  zfs-doc                            0.6.5.6-0ubuntu15               all          Native OpenZFS filesystem documentation and examples.
ii  zfs-zed                            0.6.5.6-0ubuntu15               amd64        OpenZFS Event Daemon (zed)
ii  zfsutils-linux                     0.6.5.6-0ubuntu15               amd64        Native OpenZFS management utilities for Linux
のようになったんだけど、zfs-dkms が入ってない。
どういう事かと思ったら、以下のように linux-image の方で provide されてて、最初からコンパイル済みの kernel module として zfs や spl が入ってた。
$ apt-cache show linux-image-4.4.0-53-generic
Package: linux-image-4.4.0-53-generic
Priority: optional
Section: kernel
Installed-Size: 55797
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Architecture: amd64
Source: linux
Version: 4.4.0-53.74
Provides: fuse-module, ivtv-modules, kvm-api-4, linux-image, redhat-cluster-modules, spl-dkms, virtualbox-guest-modules, zfs-dkms
Depends: initramfs-tools | linux-initramfs-tool, kmod
Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo
Suggests: fdutils, linux-doc-4.4.0 | linux-source-4.4.0, linux-tools, linux-headers-4.4.0-53-generic
Filename: pool/main/l/linux/linux-image-4.4.0-53-generic_4.4.0-53.74_amd64.deb
Size: 19190844
MD5sum: 7aad61a59a178f4c0812c5459abe4f47
SHA1: 18f051b49755ec6b0833ad71c477b7279c784466
SHA256: fdda39805549960dc4c00caeda385c2b8fa6b39c207db5a40b50f81d405b5aca
Description-en: Linux kernel image for version 4.4.0 on 64 bit x86 SMP
 This package contains the Linux kernel image for version 4.4.0 on
 64 bit x86 SMP.
 .
 Also includes the corresponding System.map file, the modules built by the
 packager, and scripts that try to ensure that the system is not left in an
 unbootable state after an update.
 .
 Supports Generic processors.
 .
 Geared toward desktop and server systems.
 .
 You likely do not want to install this package directly. Instead, install
 the linux-generic meta-package, which will ensure that upgrades work
 correctly, and that supporting packages are also installed.
Description-md5: 301993998617cbcae03feb3fe5d3aa55
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y
うわ、Ubuntu 凄いな。
って、気付いたら、Debian も sid はリポジトリに入ってるわ。 こっちは真面目に zfs-dkms 経由で kernel module こさえてるみたいだけど。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます