http://www.freebsd.org/doc/ja_JP.eucJP/articles/fbsd-from-scratch/ 暫定まとめ
暫定ですが、まとめとシェルスクリプトを置いておきます。
より汎用的にするために何かご意見等ありましたらコメントへお願いします。
スライス、ラベルの構成
HP ML115 G1 サーバでの構成例です。
以後はこの構成で話を進めていきます。
ブートに関して
FreeBSD の起動シーケンスは三段階に分かれています。
BootManager 有り
BootManager 無し
このうち、今回採用するのは BootManager 無しの方です。
BootManager は起動セクタを選択できるのですが、説明の便弁上、今回は BootManager 無しでいきます。
起動シーケンスを理解出来ている方は BootManager 有りでも良いかもしれません。
また、スライス 3 の /newroot ( installworld のターゲット先 ) は bsdlabel -e などで /dev/ad4s3a などにしておいてください。これをやらないとブートができません。
スライス 1
ラベル | マウントポイント | 容量 | 備考 |
---|---|---|---|
ad4s1a | / | 2G | |
ad4s1b | swap | 2G | メモリ 2 倍 |
ad4s1d | /var | 4G | |
ad4s1e | /tmp | 1G | ln -s /var/tmp /tmp |
ad4s1f | /usr | 4G |
スライス 2
ラベル | マウントポイント | 容量 | 備考 |
---|---|---|---|
ad4s2d | /src | 2G | mount_nullfs /src/stable.7 /usr/src |
ad4s2e | /obj | 2G | mount_nullfs /obj/stable.7 /usr/obj |
ad4s2f | /ports | 2G | mount_nullfs /ports/current /usr/ports |
ad4s2g | /jails | 8G |
スライス 3
ラベル | マウントポイント | 容量 | 備考 |
---|---|---|---|
ad4s3a | /newroot | 4G |
スライス 4
ラベル | マウントポイント | 容量 | 備考 |
---|---|---|---|
ad4s4d | /export | 残り全部 | ユーザ情報や設定ファイルなどを格納 |
作業内容
基本は下記のような作業内容になります。
第一段階: スライス 1 で起動
- build{world,kernel}
- install{kernel,world} DESTDIR=/mnt/newroot
- /mnt/newroot/etc/fstab の編集
- スライス 3 の / ( ルート ), スライス 2 の /src ( /usr/src ), /obj ( /usr/obj ) を記述
- 必要なら rc.conf 、make.conf 、 src.conf をコピー
第二段階: スライス 3 で起動
シェルスクリプト
下記にシェルスクリプトが置いてあります。
http://svn.sourceforge.jp/svnroot/cocelo-style/platform/freebsd/freebsd-from-scratch/
ベースとなったシェルスクリプトは http://www.freebsd.org/doc/ja_JP.eucJP/articles/fbsd-from-scratch/ なので、こちらの説明、及び注意事項に目を通しておいてください。
fetch や wget 、 svn co でファイルを取得後、各自の設定を施してください。
また、これらのシェルスクリプトはあくまでもサンプルとしてのものなので、カスタマイズありきという事を念頭にお願いします。
stage1.sh と stage_1.conf
これは以下の順番で実行されています。
- ${DESTDIR} のフォーマット、マウント
- make distrib-dirs DESTDIR=${DESTDIR}
- 設定ファイルのコピー ( passwd, group 含む )
- make installworld DESTDIR=${DESTDIR}
- make installkernel DESTDIR=${DESTDIR} KERNCONF=${KERNCONF}
- ${DESTDIR}/etc/fstab の設定と Time zone の設定
確実に変更する必要があるのは stage_1.conf です。
ファイルシステムのフォーマットやマウント、 fstab の設定は必ず変更して下さい。
stage2.sh と stage_2.conf
これは ports/package のインストールです。
カテゴリ 名前 オプションのように指定します。
lang perl5.8 WITH_THREADS=yes
また、 stage2.conf の下記の変数は各自の環境によって異なると思いますので、各自確認をお願いします。
DBDIR="/var/db/pkg" PORTS="/ports/current" PACKAGES="/ports/packages" LOGDIR="/var/log/ports"; mkdir -p ${LOGDIR} PKG_PATH="${PACKAGES}/All" PKG=
今後の予定
stage1.sh の create_file_systems () と create_etc_fstab() の分離。
stage3.mk から stage3.mk.local のインクルード。