
私はGentooシステムを更新し、ZFSを含むMinecraftを更新しました。カーネルを除くすべて。まず、再起動してから新しいカーネルをビルドする必要があるようです。現在はカーネルで実行されます。3.17.8-Gentoo-r1。
私のカーネルはZFSでサポートされています。また、過去にはZFS 0.6.2から0.6.3にアップデートすることができました。今日は絶対に言わないで0.6.3到着0.6.5.4。
/ bootを除くすべてのエントリがZFSにあるため、起動できなくなり、半減期が停止します。カーネルパニックはありませんが、ファイルシステムは空です。 zfs/zpool 操作を試みるたびにエラーが発生します。
# zpool status
internal error: Success
Aborted
この成功の声明は興味深いかもしれませんが、私は漂流していました。
名前で呼び出すと、別のエラーが発生します。
# zpool status system
zpool: libzfs_status.c:201: Assertion `nvlist_lookup_uint64(config, ZPOOL_CONFIG_VERSION, &version) == 0' failed.
Aborted
最初は、ZFSがカーネルのバージョンをチェックして、そのカーネルに対して独自にコンパイルしたことを覚えています。また、ZFSはモジュールです。だから私はmake modules
andを作りましたmake modules_install
。カーネルとinitramfsを再構築する必要がありますか? 2番目はgenkernelにバグがあるので迷惑です。しかし、それは可能です。
私は現在、FuntooのZFS回復CDを使用して(ZFSがインストールされている)システムにルートを割り当てています。ちなみに、chroot環境でも同じエラーが発生します。 「ホスト」環境のボリュームに問題はありません。
私は答えを探し続けます。しかし、私はこの質問をこの時間にしたかったのです。なぜなら、あなたは私の検索時間を少し節約できるからです。 ZFSアップデートの正確なプロセス/順序はよく文書化されていません。
PS重要な場合はSystemDで実行されます。私はこれが本当だとは信じていません。
答え1
まあ、あまり期待しなかった部分だったんですね。 1つを除くすべてのモジュールが更新されました。initrdファイルを更新した後、正常に起動しました。
したがって、プロセスは次のようになります。
- (オプション)ルートファイルシステムのスナップショット。
- ZFSアップデートが表示されます。
- initramfsを使用している場合は、それを更新/再構築して新しいモジュールを入手してください。
- カーネルモジュールを再ロードします。 root-fsがZFSの場合は再起動する必要があることを意味します。そうでない場合は、再起動するのが最も簡単です。
カーネルも更新する必要がある場合は、ZFSを更新した後に行うことをお勧めします。これはあなたがいくつかを繰り返していることを意味しますが、私にとってこれが新しいオプションであるかどうか疑問に思うよりも優れています。
カーネルを更新した後にカーネルイメージをビルドし、emerge -va @module-rebuild
新しいカーネル用のモジュールを生成するinitrdファイルを作成する前にこれを行います。 initrd ファイルに隠されるモジュールです。
それはすべてです。そこに文書があればよかったでしょう...
この過程で、私はまたGenkernel-Nextが圧縮モジュールを好まないことを発見しました。だから私はその機能を無効にする必要がありました。 LZ4を使用してカーネルを圧縮するとうまく機能しますが、InitRDで同じことをすると、彼女はパニックになります。
したがって、Genkernelは、行を変更するために手動で開く必要がある12の異なるInitRDファイルを生成します。それ以外の場合は動作しません。しかし、今は動作します。 4.1.15で実行されます。 ZFSのパフォーマンス向上は明らかです。前のエントリをすべて削除する前に、しばらく実行してみましょう。
誰かが起動できなくなり、フル機能をアップグレードできるかどうかを教えてください。