FreeBSD 8.1インストール手順

バックアップ

 2. To back up your database installation, type:
 
    pg_dumpall > outputfile
 
 If you need to preserve OIDs (such as when using them as foreign
 keys), then use the "-o" option when running pg_dumpall.
 pg_dumpall -o > /home/cutxout/db.out
 su 
 su pgsql
 pg_ctl stop

インストール

項目|前回|今回| |

/ 512MB 512MB ad4s1a
/tmp 512MB 512MB ad4s1e
/var 512MB 2048MB ad4s1d
/usr 70GB 461GB ad4s1f
swap 512MB? 1024MB ad4s1b
  • Choose Distributions
    • Kern-Developer
    • portsは除外
  • ftpのURL
  • packageでインストールするもの
  • ここでリブート

初回起動後

su
cd /usr/home
mkdir tmp
chown cutxout:wheel tmp
cd tmp
SCPでバックアップファイルを転送
アーカイブを解凍
mv /usr/home/cutxout /usr/home/cutxout.old
mv ./cutxout /home/cutxout
rsync -arvz --stats --progress 192.168.xxx.xxx:/home/cutxout/ /home/cutxout/
mv /var /var.old
mv ./var /var
/etcの主要ファイルを復旧
/usr/local/etcの主要ファイルを復旧
  • toorを有効にする
    • vipw
 vipw
 toor:*:0:0:Bourne-again Superuser:/root:/usr/local/bin/zsh
 passwd -l toor
  • supfile
cp /usr/share/examples/cvsup/standard-supfile .
cp /usr/share/examples/cvsup/ports-supfile .
ホスト名:cvsup.jp
  • 実行
cvsup -g standard-supfile
cvsup -g ports-supfile
  • /etc/make.conf
vi /etc/make.conf
CPUTYPE=core2
  • KERNEL再構築
    • cd /usr/src/sys/i386/conf
    • cp GENERIC XXX
    • XXXを適当に編集
    • make worldする
rm -rf /usr/obj/*
adjkerntz -i
cd /usr/src 
make clean 
make buildworld 
make buildkernel 
make installkernel 
cp -R /boot/kernel /boot/kernel.GENERIC
make buildkernel KERNCONF=cutxout
make installkernel KERNCONF=cutxout
reboot
mergemaster -p
make installworld
reboot

二回目起動後

先ずやること

cd /usr/ports/lang/perl5.10
make install
  • samba3
 cd /usr/ports/japanese/samba3
 make install
  • /usr/local/etc/smbd.conf
    • hosts allowの修正
    • workgroupの修正
    • printing = bsd
    • interfaces = jme0
  • /etc/rc.conf
nmbd_enable="YES"
smbd_enable="YES"
winbindd_enable="YES"
  • ユーザ登録
smbpasswd -a ユーザ名
portsでインストール
 #       sec.name  source          community
 com2sec local     localhost       XXXXXX
 com2sec mynetwork 192.168.0.0/24      XXXXXX
    • /etc/rc.conf
snmpd_enable="YES"
snmpd_flags="-a"
snmpd_pidfile="/var/run/snmpd.pid"
snmpd_conffile="/usr/local/share/snmpe/snmpd.conf"
 chmod 0600 .fetchmailrc
 chmod 0710 .fetchids
 chmod 600 .procmailrc
iplog:*:100:100::0:0:iplog daemon:/nonexistent:/usr/sbin/nologin
user : iplog
group: nogroup
    • /etc/rc.conf
iplog_enable="YES"
    • /usr/local/etc/iplog.conf
logfile /var/log/iplog
この辺でもう一回リブートしておく

ソースからBuildするもの

方針
  • 主要アプリケーションはソースからBuildする。
  • 主要アプリケーションが必要とする依存関係は、portsを使ってもよい。
  • ソースは必ず保存するべし。
  • 個別作業に入る前に/var/logを復旧しておくべし。
Apache2.2.15
  • UserとGroupの登録
    • /usr/sbin/sysinstall -> Configure -> User Management
    • システムデフォルトで登録されている様だが、無ければ追加する。
 www:*:80:80:World Wide Web Owner:/nonexistent:/sbin/nologin
  • apache2.2.15
    • 基本的に全てstaticに組み込む。
    • Install
./configure --prefix=/usr/local                          \
            --disable-asis                               \
            --disable-status                             \
            --disable-userdir                            \
            --enable-layout=FreeBSD                      \
            --enable-auth-digest=yes                     \
            --enable-static-htdigest                     \
            --enable-dav=yes                             \
            --enable-dav-fs=yes                          \
            --enable-dav-lock=yes                        \
            --enable-logio=yes                           \
            --enable-proxy=yes                           \
            --enable-proxy-connect=yes                   \
            --enable-proxy-http=yes                      \
            --enable-rewrite=yes                         \
            --enable-ssl=yes                             \
            --enable-usertrack=yes                       \
            --with-ssl=/usr/bin                          
 make
 make install
  • /etc/rc.conf
    • いつの間にこんなのが必要になったんだ?
 apache2_enable="YES"
  • /home/pubの復元
su
chown -R www:www /home/pub

mv /usr/local/www/data /usr/local/www/data.original
ln -s /home/pub /usr/local/www/data
DocumentRootを設定した方が速いか
./configure --with-apxs2=/usr/local/sbin/apxs
make 
make test
make install
PostgreSQL 8.4.4
pgsql:*:70:70:PostgreSQL Daemon:/home/pgsql:/bin/sh
  • バックアップ
pg_dumpall > db.out
pg_ctl stop
  • Install
./configure --prefix=/usr/local --with-perl
gmake
gmake check  # for regression test
su
gmake install
gmake -C src/bin install
gmake -C src/include install
gmake -C src/interfaces install
gmake -C doc install
set kern.ipc.semmni=256
set kern.ipc.semmns=512
set kern.ipc.semmnu=256
  • データベース作成
mkdir /home/pgsql
mkdir /home/pgsql/data
chown -R pgsql:pgsql /home/pgsql
su pgsql
initdb --encoding=EUC_JP --no-locale -D /home/pgsql/data
  • postmaster 起動
su pgsql -c '/usr/local/bin/pg_ctl start -o -i -D /home/pgsql/data '
  • 復元

su
su pgsql
psql -e template1 < db.out

  • /etc/rc.conf
postgresql_enable="YES"
postgresql_flags="-w -s -m fast"
postgresql_initdb_flags="--encoding=EUC_JP --no-locale -D /home/pgsql/data"
postgresql_class="default"
  • UserとGroupの作成
pgsql:*:70:70:PostgreSQL Daemon:/home/pgsql:/bin/sh

pw groupadd pgsql  # 削除はpw groupdel groupname
adduser -g pgsql -d /usr/home/pgsql

Username   : pgsql
Password   : *****
Full Name  : PostgreSQL Daemon
Uid        : 1002
Class      : 
Groups     : pgsql 
Home       : /home/pgsql
Home Mode  : 
Shell      : /bin/sh
Locked     : no
  • バックアップ
 pg_dumpall > db.out
 pg_ctl stop
  • Install
 ./configure --prefix=/usr/local --with-perl
 gmake
 gmake check  # for regression test
 su
 gmake install
 gmake -C src/bin install
 gmake -C src/include install
 gmake -C src/interfaces install
 gmake -C doc install
  • データベース作成
 mkdir /home/pgsql
 mkdir /home/pgsql/data
 chown -R pgsql:pgsql /home/pgsql
 su pgsql
 initdb --encoding=EUC_JP --no-locale -D /home/pgsql/data
  • postmaster 起動
 su pgsql -c '/usr/local/bin/pg_ctl start -o -i -D /home/pgsql/data '
  • 復元
 su
 su pgsql
 psql -e template1 < db.out 
samba3.5.4
smbclient
sudo pdbedit -a -u foo
pdbedit -L 
smbd --interactive --debuglevel=2
    • smbpasswd -a cutxoutで設定したID/PWと確実に同じ文字列を認証ダイアログに入れているにもかかわらず、認証が通らない。それでいて、/var/log/samba/log.*に全くログが残ってないから困る。
    • インストール直後はちゃんとマウントできたのだが、apachepostgresqlをインストールして再起動したあたりからマウントできなくなったのだよな。一体何なんだろうか。
  • ソースの入手
tar zxvf samba-3.5.4.tar.gz
cd samba-3.5.4/source3
./configure
make
make install
    • 依存関係でlibiconvが必要なので、別途インストールしておく。
      • /usr/ports/converters/libiconv

perl modules

Intel Speedstep

  • KERNCONF
# CPU frequency control
device          cpufreq
  • /etc/rc.conf
powerd_enable="YES"
  • /boot/loader.conf
cpufreq_load="YES"
  • sysctl -a dev.cpu
    • 以下のような表示がでればOK
dev.cpu.0.freq: 1666
dev.cpu.0.freq_levels: 1666/-1 1457/-1 1249/-1 1041/-1 833/-1 624/-1 416/-1 208/-1

usbrh

FreeBSD 7以前は misc/usbrh
FreeBSD 8以降は misc/usbrh-libusb
    • 個別にmakeするとエラーで停止するので、portsを使うのがよい。
  • root以外がデバイスにアクセスできるようにする
su
chmod -R a+rw /dev/usb

多分、/dev/usb配下と/dev/uhidと/dev/ugenがrw出来れば大丈夫。
usbrh --help
usbrh: illegal option -- -
USBRH on Linux 0.05 by Briareos
usage: usbrh [-vthm1fl]
       -v : verbose
       -t : temperature (for MRTG2)
       -h : humidity (for MRTG2)
       -m : temperature/humidity output(for MRTG2)
       -1 : 1-line output
       -fn: set device number(n>0)
       -l : Device list

usbrh -m      
30.54
43.79

Temperature/Humidity

トラブル対応

HotSaNICの設定
DRIVE=/dev/ad4s1a,/ root-filesystem
DRIVE=/dev/ad4s1d,/var
DRIVE=/dev/ad4s1e,/tmp
DRIVE=/dev/ad4s1f,/usr
DRIVE=devfs,/dev
  • インデックスの再構成
./bin/HotSaNIC/makeindex.pl

最終的な/etc/rc.conf

# -- sysinstall generated deltas -- # Tue Jul 13 04:59:45 2010
# Created: Tue Jul 13 04:59:45 2010
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
defaultrouter="192.168.xxx.xxx"
hostname="xxx.xxx.xxx"
keymap="jp.106"
ifconfig_jme0="inet 192.168.xxx.xxx  netmask 255.255.255.0"

sshd_enable="YES"
apache2_enable="YES"
apache2ssl_enable="YES"
ddclient_enable="YES"
mrtg_daemon_enable="YES"
snmpd_enable="YES"
#snmpd_flags="-a"
#snmpd_pidfile="/var/run/snmpd.pid"
#snmpd_conffile="/usr/local/share/snmp/snmpd.conf"

#cupsd_enable="YES"
nmbd_enable="YES"
smbd_enable="YES"
winbindd_enable="YES"

postgresql_enable="YES"
postgresql_flags="-w -s -m fast"
postgresql_initdb_flags="--encoding=EUC_JP --no-locale -D /home/pgsql/data"
postgresql_class="default"

powerd_enable="YES"
iplog_enable="YES"

/boot/loader.conf

set kern.ipc.semmni=256
set kern.ipc.semmns=512
set kern.ipc.semmnu=256
cpufreq_load="YES"
ahci_load="YES"

感想

  • HP2475wの入出力端子の多彩さを過信していて、D-SUB 15ピンがないはずは無いと思っていたら、実はなかった件。何故か持っていた、VGA-DVI変換コネクタのおかげで助かった。
  • EeeBoxでboot device選択画面に入るのはF8キー、BIOS設定画面はF2キー。
  • ダイナミックDNSをはじめ、いくつかの設定が既にブラックボックスになっている件。単純に/etcと/usr/local/etc配下をコピーしたら動くだろうか。最大の鬼門は、WebDAVの日本語化(mod_encoding)まわりのような気がする。未だにいろいろトラブルを抱えているようだ。
  • 我ながらびっくりしているのは、自分でも仕込んだことを忘れていたスクリプトが淡々とデータベースに記録をアップデートしていたこと。メールのアーカイブも2004年2月頃からずっと月次のフォルダにとり続けている。すごいですな。
  • ネットワーク的に最も近所のftpサーバを指定したら、えらい速度でダウンロードされている。プライマリサイトの15倍近くてわらた。