Sirius

2008年1月22日(火) 00:24

swap を USB メモリに

内臓 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 に変える予定です。

written by sirius [玄箱] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Sirius

MySketch 2.7.2 written by 夕雨