久々にHandbookを見ながらGentoo Linuxをインストール

久々にGentoo Linuxをインストールした。マシンは最近買ったこれ。
省電力PC自作の発注内容 | 曖昧/旬.
Athlon 5350の処理能力が気になるところ。コンパイルはどれだけ早いのか、それとも遅いのか。

そんなわけで、Athlon 5350は64bitマシンなので、このハンドブックを使いました。
Gentoo Linux amd64 Handbook: Installing Gentoo – Gentoo Wiki.
昔とは場所が変わった。何年ぶりだろう、ハンドブックを見るのは。5年ぶりぐらいかな?公式ドキュメントはWikiに集約されたようだね。

詳しい手順はハンドブックを見て欲しいので、気になったとこ、注意して欲しいところを書いておきます。

とりあえずMinimalインストールCDから起動したら、なんか不安定。コマンドを打つとCDが回って待つ、tarで解凍する時にbzipがハングする、みたいな症状に悩まされたら、起動時にカーネルパラメータでdocacheを指定するといいです。こんな感じ。

boot: gentoo docache

自分はCUIが好きなのでnoxも指定しています。そんでLVMも使うのでdolvmを指定します。dolvmしなくてもLVMは使えるけれど、既存のLVMを起動直後からactiveな状態にしたい場合は便利です。

そんで一番大きく変わっていたと思えるのがこれ。HDDのパーティションをMBRではなくGTPでなこと。コマンドもfdiskからpartedに変わっています。まだ移行期なのでMBRとの対比やfdiskの使い方も載ってるけどね。

GTPへの移行は世の中的な流れではあるけれど、なぜでしょうか。それは、MBRだとHDDの2TB以上の領域を区分けできないからなんだそうです。最近は巨大なHDDも手軽に入手できるようになってきて、使う機会も増えてきたもんね。それ以外にも、予備のパーティションテーブルをHDDの最後に記述するようになったり、チェックサムでパーティションテーブルの破損を検出できたり、ってことで安全性も向上しているらしいです。archlinuxさんが詳しく説明してくれています。
GUID Partition Table – ArchWiki.
archlinuxも気になるんだけどな。

しかし128個のパーティションとか不要。コマンドとかも変わりすぎてて嫌。そんな人はgptfdiskなんてものもあるらしい。
GPT fdisk Tutorial.
って、嘘。いや、gptfdiskってのは存在するんだけど、デフォルトで入っているfdiskでもGPTなパーティションを操作できます。引数で -t gpt って指定するだけ。試しにGPTモードでMBRなHDDを操作しようとすると怒られます。逆にMBRモードでGPTなHDDを操作しようとすると全体が一つのテーブルでTypeがGPTになっています。これはGPTがMBRへの後方互換性を維持しているからです。

ちなみに、Windowsとのデュアルブートをしたい場合はGPT一択っぽいです。

そして各パーティションにファイルシステムを作るわけですが、今回はルートファイルシステムにデフォルトのext4、bootはext2、その他はJFSにしてみました。JFSの実力がどうなのかは分かりませんが、IBMが20年以上メンテナンスしてきているのも安心だし、ファイルシステムのりサイズもmountコマンドで -o remount,resize と指定するだけなのが好感です。

CFLAGSとCXXFLAGSは相変わらずなのでSafe CFLAGSを参照。
Safe CFLAGS – Gentoo Wiki.
でもAMD系CPUの最新情報は載っておらず。仕方がないのでインストール中はとりあえず -march=native で自動判別しておきました。インストール後に確認したところ、btver2だったようです。btのバージョン2っぽいけど、btってなんだろう。コアはKaviniらしいから関係なさそうだけど。まー、いいか。

んで、地味に変わっていたのが/devと/sysのマウント。昔は単に

# mount -o bind /dev /mnt/gentoo/dev

みたいな感じだったのに、今は

# mount --rbind /dev /mnt/gentoo/dev
# mount --make-rslave /mnt/gentoo/dev

とかしなきゃならないらしい。chroot内から変な変更が出来ないように厳重にしているのかな?でもコマンド増えて面倒。でも仕方がない。

つか昔は/sysとか不要だったんだよな。/sysが普及してきたってことかな。昔は/procだけで済んでいたんだけど、デバイス情報系は/sysに移行したんだよね、確か。

あー、タイムゾーンの指定方法も変わったな。昔は

# ln -snf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

だったと思うけど、今は

# echo Asia/Tokyo > /etc/timezone

だ。オペミスは起こりにくい、のかな?

GRUBが2になったのも大きな変化だけど、それは昔やったことあるから今回はスルー。

デフォルトのcronも変わってた。かつてのデフォルトvixie-cronは完全に姿を消し、デフォルトはcronieになっていました。anacron的な機能も持っているらしいけど、USEフラグにanacronを指定しないと有効にならないっぽい。今のところ常時起動だから不要かな?でも深夜の不意のクラッシュで明朝起動したらバックアップを走らせたい、かな?そんな一大事にバックアップしたら混乱するだけかも。ってことでanacronは指定しない。必要なのはクライアントマシンだな、たぶん。

再起動時にちょっとハマったのがLVM。何も設定していないと起動時にLVMをスキャンしてくれない。それに気づいてインストールCDから起動して

(c) # rc-update add lvm

したんだけど、改善しない。よくよく見てみたらlvmサービスはdefaultランレベルに入っている。それじゃだめ。boot時に起動してくれないとマウントできない。ってことで、こうしました。

(c) # rc-update add lvm boot

以上でインストール完了。

Athlon 5350は良好です。コンパイル速度も十分。むしろ4コアの能力が活かされて速いんじゃないだろうか。比べるマシンは持ってないけどね。