自宅のファイルサーバで docker を動かしたくなってしまったので、いろいろ再構築しました。過去の記事が役に立ちました。
http://blog.maedee.net/entry/2015/09/27/135933
なんでルートファイルシステムまで zfs にしちゃうかな?、4 年前の自分。ブートしなくなった場合、 zfs のカーネルモジュールがロードされる Live イメージから起動しないと、何が起きたかわからないとか、怖い。主な作業としては以下の 2 つです。
1. はねぇ、カーネルはすでに systemd に対応しているので、ユーザランドだけ「移行」しようと試みましたが、あきらめました。いろいろ依存関係がめんどくさくて、ちょっとパッケージ消して再起動したら起動してこなくなる事象が発生したので。zfs をルートファイルシステムに使っているためか、ブートローダが systemd をうまく呼び出せていないからか、原因の切り分けが面倒になってきたので、 zfs をやめて普通に再インストールしました。そもそも、 systemd 自体が UNIX のコンセプトに反するもののように(略。というわけで、久しぶりにハンドブックを読みながらの作業でした。
Gentoo AMD64 Handbook
https://wiki.gentoo.org/wiki/Handbook:AMD64
もう、ハンドブックがすばらしくて、日本語でも懇切丁寧で、サクサクとインストールできちゃいましたよ。さらに言うとね、どこでも動くバイナリが容易に手に入るこのご時世に、なんで自分はこんなに時間のかかるディストリビューションを選んでいるのか、いろいろ思うところもありました。時間はかかりますが、「わかりやすい」ディストリビューションだと思います、 Gentoo は。理解度が上がる、という意味で、わかりやすいです。ハンドブックと異なるのは、 systemd のユーザランドを持っている stage3 のイメージを使ったくらいかな。なので、忘れちゃいけないのは、ブートローダの設定で systemd を指定すること。
このページの後ろの方に記載があります。
GRUB2 Quick Start
https://wiki.gentoo.org/wiki/GRUB2_Quick_Start
2. についても、 Wiki ページがあるので、かなり楽ができます。
Docker
https://wiki.gentoo.org/wiki/Docker
ZFS
https://wiki.gentoo.org/wiki/ZFS
なんというか、 Linux のカーネル再構築って、設定がものすごくわかりにくいよね。make menuconfig って、とっつきやすいように見えて、 GUI 特有の再現性のなさ、みたいなところがあってもどかしいです。昔、FreeBSD で生活していた頃はコメント付きの設定ファイルを編集して、 make してエラーがなければ OK でした。そのぶん、依存関係のあるような設定で詰まったりしないから、そこは良いところだと思います。と、もどかしいながらも上記のドキュメント通りにカーネルを作って、必要なパッケージを入れると zfs のプールも認識されますし、 docker も動くようになります。
というわけで、 docker は簡単なテストが通りました。俺たちの戦いはこれからだ!