内臓 HDD を CF に交換した玄箱ですが、やはり書き換え回数が心配なので、swap や /var, /tmp, apache のログなんかを内臓した CF から追い出したいと思い、Lexar の 1GB の USB メモリを(ホント安かったので)購入しました。
一度フルにデータをコピーして読み出せるかどうかチェックしてから使います。(今は違うのかもしれませんが、昔、A-DATA の 1GB SD を買ったとき、買った 2 枚とも使い物にならなかった。もう絶対に、どんなに安くても A-DATA だけは使うまいと思いました。非常に品質の悪い Flash メモリにでひどい眼にあいました。それ以来一度確認してからでないと使う気になりません。最悪ですよ、品質の悪い Flash は。)
チェックも通り、大丈夫なようなので、早速差して使ってみたいと思います。まず、swap 領域は 256M とし、残りを /var 等にするためにパーティションを二つに切りました。こちらの swap が使えたら hda2 のスワップは使わないようにします。
Disk /dev/sda: 32 heads, 61 sectors, 1015 cylinders
Units = cylinders of 1952 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 746 728065+ 83 Linux
/dev/sda2 747 1015 262544 82 Linux swap
ファイルシステムを作成します。sda1 を /var や /tmp に、sda2 を swap にします。
# mke2fs -j /dev/sda1
# mkswap /dev/sda2
起動時にマウントするように /etc/fstab を書き換えます。sda1 を /mnt2/usb にマウントするようにして、hda2 の変わりに sda2 を swap に設定します。例えばこんな感じ
# /etc/fstab: static file system information.
#
#
/dev/hda1 / ext3 defaults,noatime,errors=remount-ro 0 0
proc /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=20 0 0
#/dev/hda2 swap swap defaults 0 0
/dev/sda2 swap swap defaults 0 0
/dev/hda3 /mnt ext3 defaults,noatime 0 0
/dev/sda1 /mnt2/usb ext3 defaults,noatime 0 0
/dev/ram /ram ext2 defaults,noatime 0 0
次に、EM モードで起動して /var 等をコピーします。EM モードにするには、/usr/bin/write_ng を使うと便利です。ただし、コマンドの実行はフルパスで実行しないとうまくいきません。
再起動。EM モードでは、USB ディスクのデバイスファイルが無いので、まず、/mnt に hda1 をマウントし、/mnt/dev にあるデバイスファイルを使って sda1 をマウントしました。例えば次のようにします。
# mount /dev/hda1 /mnt
# mount /mnt/dev/sda1 /mnt2/usb
USB メモリにコピーします。
# cd /mnt
# tar cf - var|(cd /mnt2/usb;tar xvf -)
# mv var var.org
# ln -s /mnt2/usb/var var
# tar cf - tmp|(cd /mnt2/usb;tar xvf -)
# mv tmp tmp.org
# ln -s /mnt2/usb/tmp tmp
その他 USB メモリに追い出す必要があるものは同様にします。
HDD から起動するため /usr/bin/write_ok を実行して再起動します。正常に起動したら、/var.org や /tmp.org は削除しても大丈夫です。
これで OK。ただ、玄箱は USB にディスクを 2 台つなぐとうまく動かないので、おそらく USB メモリを差していると外付けの HDD は使えないと思います。
次は Acerpower100 の内臓 HDD を 2.5 インチの HDD に変える予定です。