
私は、半年前から ZFS ルート上で Debian 派生版 (LMDE) を実行しています。これは、必要なすべてのパッケージを含む通常の ext4 ベースのインストールを ZFS プールにクローンし、そのプールに chroot して grub メニューとブートローダーを再作成することによって作成されました。システムは、ext-3 専用の /boot パーティションを使用します。
Ubuntu 14.04 でも同じことをやりたいのですが、いくつかの障害に遭遇しました。
- 信頼できるzfs-grubパッケージはありません
- デフォルトの grub パッケージには ZFS サポートが組み込まれていません。その原因となるビルド システムに小さなバグが見つかり (パッチ付きのレポートが作成されました)、独自の grub パッケージをビルドしました。
- 組み込みのZFSサポートは機能不全で、カーネルコマンドラインに適切な引数を追加しません。
- そこで私はLMDEシステムでも使用しているZoL grubパッケージをインストールしました。これにより正しいgrub.cfgが提供されます。
しかし、正しい grub.cfg であっても、ブート プロセスは ZFS プールから bootfs パラメータを取得していないようです。代わりに、値を受け取るはずの変数は空のままです。その結果、initrd はデフォルトのプール ("rpool") をロードしようとしますが、もちろん失敗します。ただし、プールを手動でインポートし、手動でプロセスを完了することはできます。
記憶が正しければ、ブートプロセスがブロックされるのを避けるためにapparmorを無効にする必要もありました。後プールをインポートしています。
何か見落としているのでしょうか? 比較のために、LMDE システムに Ubuntu 3.13 カーネルをインストールしましたが、問題なく動作します (つまり、同一のカーネルと grub バイナリにより、LMDE では問題なく正常に起動しますが、Ubuntu では起動しません)。
編集: grub バグレポート:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1321335?comments=all