ext3からext4 no journaling modeへの変換
PandaBoardの公式ページで紹介されているUbuntu 11.04は「ARM/OMAP – Ubuntu Wiki」からダウンロードできる。自分は11.04のHeadless Image(モニタやキーボードを使わない前提でX.orgなどが起動しないバージョン)を使っている。
で、このイメージでインストールされるUbuntuのファイルシステムはext3である。世の中的にはフラッシュメモリ用のファイルシステムならext4がいいんじゃね?って話なので変換してみる。また、ext4でも“no journaling mode”の方が速いらしいのでそちらにもチャレンジ。
これは作業メモです。参考記事をよく読んで理解してから作業することを推奨します。
作業はすべてターゲットのPandaBoardとは別のLinuxマシンで行う(自分の場合はiMacにインストールしたVMWare fusion上のUbuntu11.04)。Ubuntu11.04の場合、必要なツールはすべてインストールされているか、パッケージマネージャでインストールできる。
参考にしたのは、以下の2つの記事
- How To Upgrade From Ext3 To Ext4 Without Formatting The Hard Disk
- [HOWTO] Convert ext4 partitions to No-Journaling mode
作業対象
まず、パーティション構成と/dev上の位置
/dev/sdb – SDカード
/dev/sdb1 – ブートに使うFAT32パーティション。今回は触らない
/dev/sdb2 – Ubuntuがインストールされたext3パーティション。今回の作業対象
sdbについては、SDカードスロットの数によってsdcになったりsddになったりするので、各自の環境に合わせて。
ディスクのバックアップ
以降の作業はすべてディスクをアンマウントした状態で行う。
なにはなくともバックアップ。
sudo dd if=/dev/sdb of=~/PandaUbuntu11.04.img
ちなみに、試験用に別のSDカードを買って、そっちに上記イメージをレストアして実験しようかと思ったんだけど、ディスクサイズが微妙に小さくてレストアに失敗した。表示が同じ16GBでも容量はメーカと製品によって異なると言うのはSDカードもハードディスクも同じようだ。要注意である。しかたがないので普段の作業で使っているSDカードで試した。
ext4への変換
su tune2fs -O extents,uninit_bg,dir_index /dev/sdb2 sudo fsck -pf /dev/sdb2
これでext4への変換が完了。
no journaling modeにする
sudo tune2fs -O ^has_journal /dev/sdb2
これで完了。
sudo tune2fs -l /dev/sdb2
で、featuresに
fstabの書き換え
PandaBoardで起動する時にext4としてマウントするためにfstabを書き換える。
sudo mount -t ext4 /dev/sdb2 /media #エディタでfstabを開き、ext3となっている部分をext4に書き換える sudo vim /media/etc/fstab
これでSDカードをPandaBoardに挿して起動すれば、ext4 no journaling modeで起動する。
まとめ
特になし。まだパフォーマンステストもしていない。