ゆるりとものづくり

ゆるりとものづくり

夢見るおっさんの工作記録

SSDにUbuntu(Lubuntu)をBtrfsで再インストール

UDMA2病を調査するために、Windowsを入れた後にUbuntuを再度入れて、kernelの起動オプションで対処出来ることが分かりました。
ファイルシステムとしてBtrfsを使うつもりだったのですが、この時はEXT4で構築しました。
そのまま、使い心地を上げるためのカスタマイズやチューニングを模索し、そこそこ満足出来る環境が出来ました。

ただ、試行錯誤を繰り返したので、無駄なパッケージが沢山入っていて気持ち悪いのでw、今回Btrfsで一から再構築することにしました。

まず、前提として私のCF-W2のメモリは512Mしかありません。通常ならばSWAP出来るようにして仮想メモリを使えば良いだけですが、SSD上にスワップファイルを置くのはさすがに嫌ですw
なので、使用メモリ量>速度>ユーザーフレンドリーという優先度で環境を作ります。



標準のデスクトップ環境であるGnomeだと、起動しただけで200M近く使ってしまいますので、デスクトップ環境(ウィンドウマネージャ)は、なるべくメモリを使わない軽量なものに変更します。FluxBoxかOpenBoxかの二択で悩みましたが、使用メモリ量は両者ともあまりかわらないのでOpenBoxを選択しました。

Ubuntuには、デスクトップ環境を変えたフレーバーと呼ばれる亜種がいくつか存在するのですが、そのうちの軽量デスクトップ環境を目指して作られたLubuntuというものがあります。それに採用されているのがOpenBox(正確にはLXDEですが)なんですね。
このLubuntuをベースに軽量化すれば、色々と楽です。

Ubuntuのインストーラを使って、インストールした場合、GnomeベースのUbuntu-desktopがインストールされます。そこからLubuntu-desktopを上書きで入れればLubuntu化は簡単なのですが、無駄なアプリやdaemon類が入ってしまいなんとなくすっきりしません。
ですので、配布されているLubuntuのインストーラを使って最初からLXDEベースにしておけば無駄なパッケージが入らず、すっきりできますw

しかし、ここでハマってしまいました。
Lubuntuのインストーラは、Ubuntuインストーラをそのまま使っているため、ディスクのファイルシステム選択画面ではBtrfsが表示されます。しかし、インストールCDから起動されるインストール用システム(ややこしいな)にはBtrfsのサポートプログラムが入っていないため、それを選択してしまうとフォーマットが失敗してインストールが続行出来なくなります。
インストール中にbtrfs-toolsを手動で入れれば、フォーマットは完了するようになりますが、今度はインストールされたinitrdがBtrfs未対応のものなのでファイルシステムをマウント出来ず、起動できない状態になります。

そこで、まずはExt2でシステムをインストールし、Sakopcのホームページ - btrfs化さんを参考にBtrfsにコンバートしました。

なんで、LubuntuのインストーラはわざわざUbuntuインストーラからBtrfs関連を抜いてあるのかは謎ですが、2段階インストールを行うことで、少しめんどくさいけどなんとかなります。
(要望があれば、LubuntuのインストーラにBtrfsサポートを組み込んだインストールCDとか作ってもいいんですが、需要はなさそうですよねw)

現在のパーティション構成とfstabはこのようになっています。

/dev/sda2 / btrfs defaults,noatime,ssd 0 1
/dev/sda1 /boot ext4 defaults,noatime 0 2

btrfsはマウント時にSSDを検出すると自動でSSDモードになるんですが、一応ssdオプションをここでも設定してあります。
起動オプションとしては、kernelにlibata.force=1.00:udma5,noncq(この東芝SSDはNCQに対応していません)を追加してudma2病を阻止しています。
これ以外に、/tmpと/var/cache/apt/archivesをtmpfs(RAMディスクみたいなもの)にして、SSDの寿命対策を取っています。
また、swapは使っていません。

肝心のBtrfsのSSDモードなんですが、brtfsのFAQによると、なるべく上書きをしないようにするちょっとした最適化と書いてあります。ちょっと何をやっているか分からないので、ソースをみてみたところ(推測8割ですがw)メタデータの最後尾から書き換えていく所を、実データの最後尾から書き込む様な処理が行われていました。本当にちょっとの最適化のようですが、寿命対策としては効果が大きいのでしょう。

それに対して速度については、Phoronix Test With SSD ModeによるとSSDモードはちょっと遅いみたいですね。

現状ではNILFS2がSSD最速のファイルシステムのようですが、このCF-W2についてはおそらく性能が天井に到達していて効果が薄いように思われます。気が向いたら試すかもしれませんがw

実際の環境や使用感はまた次に書きます。