インストール作業
- 実機または仮想マシンに通常インストール
- HDD, ビデオカード, キーボード, CD をつけて CD からブート
- HDD に普通にインストールする
- まずは起動できるようにする
pxe 化
普通にディスクからブートするつもりであれば ここの設定はいりませんので, 飛ばしてくださって結構です.
準備
- ホスト名を決める (ここでは "hoge")
- /etc/hostname, /etc/hosts, /etc/mailname 等を編集する
- IPアドレスを決める (ここでは "10.0.16.0")
- /etc/network/interfaces や /etc/rc.conf 等を編集
- セキュリティーの設定
- sshd_config を編集して PermitRootLogin を yes 以外に変更
- root password を設定する
Debian Linux および Ubuntu Linux
TFTP サーバの設定
- /tftpboot 以下にホスト名のディレクトリを作成
# mkdir /tftpboot/hoge
- 作ったディレクトリに PXE化したい機械の /boot/vmlinuz と /boot/initrd.img をコピー
- /usr/lib/syslinux/pxelinux.0 をコピー
- pxelinux.cfg 作成
# cd /tftpboot/hoge # scp hoge:/boot/vmlinuz . # scp hoge:/boot/initrg.img . # scp hoge:/usr/lib/syslinux/pxelinux.0 . # mkdir pxelinux.cfg # cd pxelinux.cfg # cat <<EOF > 0A001000 prompt 1 noescape 0 allowoptions 0 timeout 60 label debian kernel vmlinuz append root=/dev/nfs netboot=nfs initrd=initrd.img nfsroot=10.0.1.1:/system/hoge ip=eth0 rw EOF
DHCP サーバの設定
- dhcpd.conf に以下を追加
host hoge { hardware ethernet xx:xx:xx:xx:xx:xx; # ここにMACアドレスをコピー fixed-address 10.0.16.0; option root-path "10.0.1.1:/system/hoge"; filename "/hoge/pxelinux.0"; next-server 10.0.1.2; }
- dhcpサーバのプロセスを再起動
# /etc/init.d/isc-dhcp-server restart
NFS サーバの設定
- ルートディレクトリの作成
# zfs create zfspool/system/hoge # zfs set sharenfs=on zfspool/system/hoge # zfs set sharenfs="-maproot=0 10.0.16.0" zfspool/system/hoge
- システムのコピー
hoge# mkdir /mnt hoge# mount -t nfs 10.0.1.1:/system/hoge /mnt hoge# cp -Rp /bin /boot /etc /lib /lin32 /opt /root /sbin /selinux /usr /var /mnt/ hoge# cd mnt hoge# mkdir dev proc mnt sys tmp
- 設定の変更
- etc/fstab のローカルディスク部分を消し,nfsに変更
- 必要に応じて /tmp, /var/tmp, /var/run, /var/lock
を memory disk に変更
proc /proc proc defaults 0 0 10.0.1.1:/system/hoge / nfs rw,intr,hard,noac 0 1 none /tmp tmpfs defaults 0 0 none /var/run tmpfs defaults 0 0 none /var/lock tmpfs defaults 0 0 none /var/tmp tmpfs defaults 0 0
- nfs 上に swap を設ける
- あまり良い作法ではないので, 以下はメモリが足りない場合にのみ設定すること
- /system/hoge/swapfile を作る.
dd のパラメータは必要に応じて変えたほうがよい.
pirika# dd if=/dev/zero of=/system/hoge/swapfile bs=100M count=10 pirika# ssh root@hoge hoge# losetup /dev/loop0 /swapfile hoge# mkswap /dev/loop0 hoge# swapon /dev/loop0
- hoge の etc/rc.localに追加
losetup /dev/loop0 /swapfile swapon /dev/loop0
FreeBSD
TFTP サーバの設定
- /tftpboot 以下にホスト名のディレクトリを作成
# mkdir /tftpboot/hoge
- 作ったディレクトリに
PXE化したい機械の /boot/pxeboot をコピー
# cd /tftpboot/hoge # scp hoge:/boot/pxeboot .
DHCP サーバの設定
- dhcpd.conf に以下を追加
host hoge { hardware ethernet xx:xx:xx:xx:xx:xx; # ここにMACアドレスをコピー fixed-address 10.0.16.0; option root-path "10.0.1.1:/system/hoge"; filename "/hoge/pxeboot"; next-server 10.0.1.2; }
- dhcpサーバのプロセスを再起動
# /etc/init.d/isc-dhcp-server restart
NFS サーバの設定
- ルートディレクトリの作成
# zfs create zfspool/system/hoge # zfs set sharenfs=on zfspool/system/hoge # zfs set sharenfs="-maproot=0 10.0.16.0" zfspool/system/hoge
- システムのコピー
hoge# cd / hoge# mkdir /mnt hoge# mount -t nfs 10.0.1.1:/system/hoge /mnt hoge# cp -Rp .cshrc .profile COPYRIGHT /bin /boot /dist entropy /etc /lib /libexec /rescue /root /sbin /tmp /usr /var /mnt/ hoge# cd mnt hoge# mkdir dev media proc mnt tmp hoge# ln -s usr/compat compat hoge# ln -s usr/src/sys sys
- 設定の変更
- etc/fstab のローカルディスク部分を消し,nfsに変更
- 必要に応じて /tmp, /var/tmp, /var/run, /var/lock
を memory disk に変更
10.0.1.1:/system/hoge / nfs rw 0 0 md /tmp mfs -s=30m,rw 0 0 proc /proc procfs rw 0 0 devfs /dev devfs rw 0 0
- nfs 上に swap を設ける
- あまり良い作法ではないので, 以下はメモリが足りない場合にのみ設定すること
- /etc/rc.conf に追加
swapfile="/swap/${hostname}.swp"
起動確認
- HDD を外して起動する
- 起動できない場合には…
- server の log を tail -f しつつ原因を探すこと
事後処理
- /etc/udev/rules.d 以下を整理する
- apt-get でOS更新をしてみる
- 本格運用する前に一週間程度様子を見ることをおすすめします