この記事は、NetBSD Advent Calendar 2017の24日目の記事です。 代わりに投稿できるようになっているので、勝手に投稿してしまいます。 もう25日ですし。
はじめに
ArmアーキテクチャーのNetBSD用のパッケージをpkgsrcで作ることが あります。
大抵のArmのCPUの載ったボードは、SDカードやmicroSDカードを ルートファイルシステムにしています。 SDカード等には、ウェアレベリングの機能などありませんから、 何かを長時間ビルドすると、書き込み回数が多くて、壊れてしまいます。 今回は、いつもビルドに使っているCubieborad2の場合に、この問題に 対処すべくやっていることを書いておきます。
スワップ領域の問題
スワップ領域は、ダウンロードして来たarmv7.img
にも設定
されていますが、非常に小さく役に立ちません。
Cubieboard2ですと、SATAの端子があって、SATAのSSDやHDDを接続できますので、
そちらのファイルシステム内に、スワップ領域を作っておきます。
# dd if=/dev/zero of=/home/ryoon/swapfile bs=1m count=4096
# chmod 600 /home/ryoon/swapfile
# swapctl -a -p 0 /home/ryoon/swapfile
その上で、従来のmicroSDカード上のスワップを無効にし、
これを常に使うようにしてしまいます。/etc/fstab
以下のように
置き換えます。
/home/ryoon/swapfile none swap sw 0 0
一時ファイルの置き場所をSSD/HDDにする
これは、TMP
環境変数を定義し直すのでも良いのかもしれませんが、
/tmp
にSSD/HDDのパーティションの1つを割り当ててしまいます。
以下のように/etc/fstab
を変更します。
/dev/wd0e sw,log 1 1
その上で、マシンをリブートさせます。
mount -a
で良いように思われるかもしれませんが、
既にディレクトリーやUNIXドメインソケット等が作成されているかもしれませんので、
再起動をお勧めします。
まとめ
簡単ですが、pkgsrcの開発をする際に、SDカード等を破損させないために 私がしていることを紹介しました。 でもまだ壊れることがあるので、何か足りないことがあるのかもしれません。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。