1st 2008/9/21

玄箱のOS Monta VistaをDebian Sargeに入れ替えることとした。なお、Windowsとのファイル共有およびwebサーバーとして機能できるように、SAMBA,THTTPD,Perl(CGIの実行に使用)のインストールを行う。文中の赤字が入力内容、青字はファイル内容である。今回のホームページの修正は、停電でハードディスクに障害が出たため、再インストール及び時点修正等を追記したものである。

必要条件

パソコン1台(インターネットに接続できること。) LANポートが2個あると便利。ポートの1個をEMモード用にしておく。

HDDの初期化と領域確保

玄箱付属のCDのKuroBoxSetup.exeでハードディスクの初期化を行う。この際、パソコン側のIPは19.168.11.100などにしておく。ウィルス検出ソフト及びWindowsのファイアーウォールを切っておく。LANケーブルはパソコンと玄箱とで直結にしておけば安心である。認識しない場合は次の項目に従いハードディスクを初期化する。

玄箱のHDDをWindowsパソコンなどで初期化する。

USB-IDEケーブルか、マザーボードのIDEに玄箱のHDDを接続し初期化する。

EMモードで起動

EMモードとは、玄箱のROMに収めれているLinuxである。この状態で、TelnetとFTPが使える。

玄箱HDDを玄箱に接続し電源をいれると、EMモードで起動する。

Telnetで玄箱にログイン

EMモードでのIPアドレスはDHCPを使わないとき192.168.11.150となるので、パソコンのIPを192.168.11.100などに設定する。あまっているLANポートがあればEMモード専用に使える。
コマンドプロンプトを開き下記のコマンドを実行する。
telnet 192.168.11.150
ユーザー名は root パスワードは kuroadmin である。

ハードディスクの初期化

下記のコマンドを実行し、初期化と領域確保を行う。

/sbin/mfdisk -e /dev/hda
sh /sbin/mkfilesystem.sh


この時点で hda1が/mntにhda3が/mnt2 にマウントされています。

玄箱うぉううぉう♪ からDebian 3.0(woody) をダウンロード

ウェーブブラウザー http://kuro.dsk.jp/ を閲覧。

debian_2006_06_10_dist.tgz 36.9MBをダウンロードする。

玄箱に転送

cd /mnt2

コマンドプロンプトをもう1個開く

ftp 192.168.11.150
root
kuroadmin

cd /mnt2
binary
put c:\debian_2006_06_10_dist.tgz
bye
exit

ダウンロードファイルを展開

ダウンローとファイルを展開し、通常モードで玄箱を起動する。

cd /mnt
tar zxvf /mnt2/debian_2006_06_10_dist.tgz
echo OKOK > /dev/fl3
reboot

Debian woodyのネットワーク設定

起動時のDebianのIPは192.168.0.100になっているので、パソコン側は192.168.0.10などにする。直接rootでログインできないので、あらかじめ設定されているユーザー名でログインしrootに移行する。もしEMモードで立ち上がってしまった場合は、最初からやり直す。

telnet 192.168.0.100
tmp-kun
tmp-kun
su -
root

決まったユーザ名やパスワードではセキュリティ上まずいので、rootのパスワード変更とユーザ名(ここではgoodとした)作成、tmp-kunの削除を行う。
***はパスワードなので、適宜に設定していただきたい。

rootパスワードの変更
passwd
***
***

新ユーザの作成
adduser good
***
***
tmp-kunの削除
deluser tmp-kun
グループを作成する場合
groupadd 新グループ名
useradd -g 新グループ名 ユーザー名

Debianのディフォルトでは、IP 192.168.0.100 ディフォルトゲートウェイが192.168.0.1になっているので、例えばIP 192.168.0.5 ディフォルトゲートウェイ192.168.0.2 に変更する。
cd /etc/network

IPアドレスを設定している1個目のファイルは /etc/network/interfacesである。下記にその内容を示す。
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
iface eth0 inet static
address 192.168.0.100
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

iface lo inet loopback

auto eth0 lo

この状態でFTPが使えるのでFTP経由でWindowsパソコンに設定ファイルを転送し、メモ帳で修正し、FTPで書き込む方法があるが、内容が軽微なのでsedを使って、ファイル内の文字列の置き換えで対処する。

sed -e "s/address 192.168.0.100/address 192.168.0.5/g" interfaces > in
sed -e "s/gateway 192.168.0.1/gateway 192.168.0.2/g" in > in2
cp in2 interfaces
rm in
rm in2
cd /etc

IPアドレスを設定している2個目のファイルは /etc/hostsである。下記にその内容を示す。
KURO-BOXの左側が玄箱のIPアドレスである。
127.0.0.1 localhost
192.168.0.100 KURO-BOX

sed -e "s/192.168.0.100/192.168.0.5/g" hosts > h1
cp h1 hosts
rm h1

IPアドレスを設定している3個目のファイルは /etc/resolv.confである。下記にその内容を示す。
nameseverがディフォルトゲートウェイを示す。
search
nameserver 192.168.0.1

修正し、rebootコマンドで再起動する。

sed -e "s/193.168.0.1/192.168.0.2/g" resolv.conf > r
cp r resolv.conf
rm r
reboot

Debianのバージョンアップ(3.0:woody から 3.1:sarge)

DebianのバージョンアップのサイトのURLが変わっているため修正が必要となる。

telnet 192.168.0.5
cd /etc/apt
mv sources.list sources.org
echo "deb http://ftp.riken.jp/Linux/debian/debian-archive sarge main contrib" > sources.list
apt-get update
apt-get dist-upgrade

reboot

時刻の修正を自動に行うためNTPをインストール

Debian化によりほとんどのインストールが apt-get install で済んでしまう。

telnet 192.168.0.5
cd /etc
apt-get install ntp ntpdate ntp-doc ntp-simple
Y
sed -e "s/server 127.127.1.0/server clock.nc.fukuoka-u.ac.jp/g" ntp.conf > n
sed -e "/127.127.1.0/i ####" > ntp.conf
rm n
/etc/init.d/ntp-server restart


30分以上経過してから ntpq -p

SAMBAのインストール

SAMBAとはLinux上のファイルをWindowsで閲覧するためのソフトである。
SWATはウェーブブラウザ上からSAMBAの設定を行うソフトであるが、インストールのみで使わない。

インストール
apt-get install samba smba-client
atp-get install swat

cd /etc
sed -e "s/#<off># swat/swat/g" inetd.conf > in
cp in inetd.conf
rm in
/etc/init.d/inetd restart

SAMBAユーザーの設定
LinuxのユーザとSAMBAのユーザは別物となっている。よってSAMBAのユーザを設定する。設定するユーザはWindowsと同一である必要がある。ここでは、GOODという名前としてみた。
smbpasswd -a GOOD
SAMBAを稼動させるには、許可するユーザー名、共有名、Windowsからみえるマシン名などを設定しなければならない。設定ファイルは/etc/samba/smb.confである。

/mnt/shareをshareという名称で全ユーザー共有、各ユーザーのhomeディレクトリを公開する場合の最低限の/etc/samba/smb.confを下記にしめす。
グループ名はHOMEGROUPとしてみた。ユーザーは、GOOD、NGとしてみた

[global]
workgroup = HOMEGROUP
security = user
load printers = yes
printing = cups
printcap name = cup
unix charset = UTF8
dos charset = CP932
display charset = UTF8
[homes]
comment = Home Directories
writable = yes
create mask = 664
directory mask = 775
browseable = No

[share]
comment = Debian Sarge Liniux Samba Share Directory
path = /mnt/share
browsable = yes
valid users = root,GOOD,NG
writable = yes
create mask = 664
directory mask = 775

上記の内容を各自の都合で修正し、/etc/samba/smb.confに上書きする。SargeにバージョンアップしたときにFTPが死んでいるので、バージョンアップ前にsmb.confを作成して、別のディレクトリにコピーしておきSAMBAをインストール後に上書きするのが良いと思う。または、EMモードに切り替え、hda3をマウントしてftpで転送する方法もある。私は、自分の代替用のwebサーバーにsmb.confをおいてwgetコマンドで転送した。
なお、Windowsでファイルを修正する場合、漢字コードや改行コードの違いにより変換する必要があるためnkfのインストールと、FTP・SAMBAが使えない場合のWindowsからのファイル転送手段としてwgetをインストールしておくと良い。

apt-get install wget nkf
/etc/init.d/samba restart

webサーバー(THTTPD)のインストール

apt-get install thttpd
/etc/init.d/thttpd stop
Y

公開するディレクトリ等を設定するため、/etc/thttpd/thttpd.confを修正する必要がある。
/mnt/share/www を公開し、/mnt/share/www/cgi-binをcgiファイルの置き場所とし、htmファイルはSJISの場合の/etc/thttpd/thttpd.confファイルの設定を下記に示す。

port=80
nochroot
user=www-data
logfile=/var/log/thttpd.log
throttles=/etc/thttpd/throttle.conf
dir=/mnt/share/www
cgipat=/cgi-bin/*.cgi
charset="Shift_JIS"

上記の内容を各自の都合により修正し、/etc/thttp/thttpd.confに上書きする。
/etc/init.d/thttpd start

perlのインストール

apt-get install perl

perlは /usr/bin/perlにインストールされているので、cgiファイルの先頭をあわせて修正する。

webサーバーで公開するファイルのパーミッション

thttpdではディレクトリとcgiファイル以外は実行属性をつけてはならないので注意