Diskless環境

概要

  • FreeBSD 6.1(NFSサーバ、クライアント共に)
  • PXEを使います
  • DHCPサーバ経由です

DHCPサーバの作成

1. isc-dhcp3-serverのインストール

portsでインストール

2. DHCPサーバの設定(/usr/local/etc/dhcpd.confの編集)
# dhcpd.conf
option domain-name-servers 192.168.1.1;
default-lease-time 600;
max-lease-time 7200;
authoritative;

ddns-update-style none;

log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.105;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
  use-host-decl-names on;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.1.255;
  option routers 192.168.1.1;

  host dless-bsd {
    hardware ethernet xx:xx:xx:xx:xx:xx;
    fixed-address dless-bsd;
    next-server 192.168.1.213;
    filename "pxeboot";
    option root-path "192.168.1.213:/data/misc/diskless";
  }
}

参考:FreeBSD Handbook 27.6.2.1 Configuration Using ISC DHCP"

3. /etc/hostsの編集
192.168.1.211  dless-bsd

TFTPの設定

1. tftpサーバ用の領域作成

/tftpbootを作成

2. /etc/inetd.confの編集
tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot  ←上の領域と合せる
3. pxebootのコピー
# cp /boot/pxeboot /tftpboot/
※この後のmake installworld後のほうが良いかも?
4. inetdの再起動

NFSサーバの準備

1. ディレクトリの作成

/data/misc/disklessを作成。(今思うと、何でこの名前を使ったんだろう。サンプルそのままなんだけど)

2. /etc/rc.confの編集
nfs_server_enable="YES"
mountd_flags="-r"
3. /etc/exportsの編集
/data/misc/diskless /usr/ports -maproot=0 192.168.1.211
#-maproot=0を入れないと起動後のログインができなかった(正しいパスワードを入力しても受付てくれず、かなりハマった)。

ディスクレス用ルートファイルシステムの作成

直近でとりあえず、make buildworld,buildkernlをやっていること前提で。

1. カーネルの設定
# setenv DESTDIR /data/misc/diskless
# cd /usr/src
# make installkernel
2. システムファイルの設定
# cd /usr/src
# make installworld
※$DESTDIRを確認するしたうえで
3. /etc関係(あんまりよくわかってないけど)
# cd /usr/src/etc
# make distribution
※$DESTDIRを確認したうえで
4. パスワード関係ファイルのコピー
# cp /etc/master.passwd /data/misc/diskless/etc/
# cp /etc/passwd /data/misc/diskless/etc/
# cp /etc/spwd.db /data/misc/diskless/etc/
# cp /etc/pwd.db /data/misc/diskless/etc/
5. /etc/fstabの編集
192.168.1.213:/data/misc/diskless       /       nfs     rw      0       0
proc                    /proc           procfs  rw      0       0
#procはいらないかも。

スワップファイルの作成

1. スワップファイル作成
# dd if=/dev/zero of=/data/misc/diskless/swapf bs=1024k count=1 seek=192
2. /data/misc/diskless/etc/rc.confの編集
swapfile="/swapf"

起動

今回は、vmware playerを使用したので、F12を押してPXE起動を行なう

注意

  • 今回の環境では、NFSflockの関係でユーザ登録とかパスワードは変更できない。
% passwd
Changing local password for postteen
Old Password:
New Password:
Retype New Password:
passwd: could not lock the passwd file: : Operation not supported