玄箱(kuro-box)Debian化+各種サーバ設定。まとめ

0、はじめの設定
1、最新版か、安定版か
2、sambaサーバ
3、BitTorrentクライアント+スクリーンを使う。
4、CFカードブートと後付スワップ
5、NTPサーバ、クライアント。
6、syslogを色々。
7、日本語環境。
8、rsyncでバックアップ。
9、USB外付けハードディスクを使う。
10、プリントサーバlpr、lpd。





Debianに必要なファイルを持ってくる。
で公式パッチと差し替え。
めんどいんで、飛ばし。


初めはtelnetでしか入れないので
telnetでログイン。
winのコマンドプロンプトを使うとろくな事が起きないので
窓の杜からTera term Proでも落としておいた方が良い。
Macと両対応にしたいのでもちろんUTF-8にする予定。

login: tmp-kun
password: tmp-kun

でログイン。

$ su -
# passwd

rootのパスワードを変える。

tmp-kunなんてユーザー要らないので削除&自分の好きなユーザー作成。

ユーザー:sony
グループ:users

を作成する。
#useradd -u 100 -g 100 -d "/home/sony" -s "/bin/bash" sony
# mkdir /home/sony
# chown sony:users /home/sony
# passwd sony

-u 100はグループにusersがID:100だったので
ユーザーIDも100が空いてたから一緒にした。
adduserでやってもOKかな。

sonyユーザーでログインし直し。

tmp-kun削除。
#userdel tmp-kun
#rm -r /home/tmp-kun




ネットワーク環境を構築。
# vi /etc/hosts
192.168.0.10 KURO-BOX

一応ホスト名を決めておく。一応192.168.0.10で動かすってことで。

# vi /etc/hosts.allow
ALL: 192.168.0.0/255.255.255.0

192.168.のネットワークからはアクセスできるようにする。
特定のネットワークからアクセスできるようにするには。
ALL : .idg.co.jp, .example.com

何行でも書いてよし。
ALL:ALLでもいいけど。。。わかってるならやめたほうがいいかな。

# vi /etc/resolv.conf
nameserver 192.168.0.1

DNSサーバの変更。だいたいブロードバンドルータと一緒だからいいかな?

# vi /etc/network/interfaces
iface eth0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

これだるいね。。。


一回リブートしてネットワーク環境を整えましょう。
# sync
# sync
# init 6

まずは問答無用で SSHをインストール。
# apt-get install ssh

色々聞かれるので、初めのいくつかはNOで
Do you want to run the sshd server?と聞かれたら、YES

# ps -aux でsshdが上がっているのが確認したら
SSHでログイン。ログインできたらtelnet、FTPはいらないので止める。

# vi /etc/inetd.conf


#:STANDARD: These are standard services.
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd

となっているのを、telnetとFTPの前に#を入れる。

#:STANDARD: These are standard services.
#telnet stream tcp.........
#ftp stream tcp nowait .............

# pkill -HUP inetd

inetdを再起動させておしまい。


上がってきたらログインして
su-
して最新の環境へ。
# apt-get update
# apt-get upgrade

とりあえず必要最低限はこれだけ 。


メールとかウザいのが動いているので消しておく。
# apt-get remove exim
# rm /etc/cron.d/exim
# rm /etc/init.d/emim




1、 最新版か、安定版か?

# apt-get update
がうまくいかないので。。。
sources.listを変えた。。。
どうもミラーがうまくうごいてない?


# stable
deb http://ring.ocn.ad.jp/archives/linux/debian/debian stable main contrib
deb http://ring.ocn.ad.jp/archives/linux/debian/debian-non-US stable/non-US main contrib

# Sources stable
deb-src http://ring.ocn.ad.jp/archives/linux/debian/debian stable main contrib
deb-src http://ring.ocn.ad.jp/archives/linux/debian/debian-non-US stable/non-US main contrib


に変えた。stableが安定版。
サーバだけで使うなら安定版がよいというが
USB周りとかちょっと弱いところがある。
ので最新版のsargeを入れたい場合は、以下。


# sarge
deb http://ring.ocn.ad.jp/archives/linux/debian/debian sarge main contrib
deb http://ring.ocn.ad.jp/archives/linux/debian/debian-non-US sarge/non-US main contrib

# Sources sarge
deb-src http://ring.ocn.ad.jp/archives/linux/debian/debian sarge main contrib
deb-src http://ring.ocn.ad.jp/archives/linux/debian/debian-non-US sarge/non-US main contrib








2、sambaサーバ

とりあえず、共有サーバなのでsambaがないとね。

# apt-get install samba swat

smb.confを作るのがダルすぎなので、swatを入れます。
swatぶっこむとinetd.confのコメントアウトをしろと言われるので
inetd.confの最後の3行ぐらいをコメントアウト。
##
とか書いてある。

基本的にはdaemons起動ですね。inetd起動はありえなーい。

これでswatで全部設定してもらえばOKPK
swatはwebベースなので
http://192.168.0.10:901
とします。

パスワードもUNIXのを使うかsmbpasswdを作るか色々できるんで。。。
SWATの設定が終わったら、もうアクセスしないので
inetd.confからコメント入れてSWATを無効にしてあげましょう。


玄箱で共有フォルダを使っていた人には
/mntの中に全部入っています。
これはすべてsjisで使われているので
そのまま使いたいときは
dos charset = sjis
unix charset = sjis
display charset = sjis

としましょう。これで元々使っていた、玄箱の中身も文字化けしません。
ちょっとsjisは嫌だなぁってひとは
とりあえずsjisで起動して他にバックアップしてから
この辺は好きな環境を作ってください。

3、BitTorrentクライアント+スクリーンを使う。

玄箱でBitTorrentを動かしてDLを
PC立ち上げて無くてもいいので省エネです。

# apt-get install bittorrent

bittornadoとかqtorrentとか、GUIとかあるけど。。。
よくわからんので、本家本元を

インストールすると/usr/binに色々ファイルが出来る。
# /usr/bin/btdownloadcurses <.torrentファイル>
&つけるとバックグラウンドで便利〜
共有フォルダをsambaで作っておいて
そこでブラウンジングでtorrentファイル引っ張ってきて
そこで起動すれば楽かな?
btdownloadcurses --max_upload_rate 100 とか付けると良いかも。。。



screenを使うともっと楽で
# apt-get install screen
用はバーチャルなウインドウを作ってくれる。
CTRL+A + C
で新しいウインドウを
CTRL+A + Space
でウインドウの切り替え


終わるときはデタッチして
CTRL+A + d

復活するときは
# screen -r
複数スクリーンがあるときは
# scree -ls
# screen -r <プロセル番号>


うーん便利、かな。。。?
どっちにしろ、コマンドがめんどいね。。。
sh作ってフォルダの.torrenntファイルを自動読み込みとか
ダルいのでつくりませんが。。。
正規表現使えば余裕でいけそう。。。
日本語がはいると残ね〜んかな?



結構、パワー使うので
HDDむっちゃ熱くなります。。。+10度は。。。
# hddtemp /dev/hdaで確認。。。





追記:
screenはコマンドラインのところでデタッチしないと
元に戻れなくなるので注意!!!
細かい設定はコチラ


4、CFカードブートと後付スワップ


CFカード→SDカードアダプタもさして
格安なSDカードでもメモステでも動いちゃいますからね。。。

外付けHDDはUSBで認識させて
RAIDも組めるし
自由自在って所でしょうか?

もっと格好良いケースが有ればなぁ。。。

そんなわけでおさらい。


まず、EMモードで動くので
IPアドレスを探してtelnet

# mfdisk -c /dev/hda

hdaを作ります。

パーティションはprimary partition (1-4)の1で
Command (m for help): w
で終了。

このままだとなんのファイルシステムか分からないので
# mke2fs /dev/hda1
# tune2fs -c 0 /dev/hda1

まぁ、mkfsでもなんでもOK
# mount /dev/hda1 /mnt

これでマウントされるので
ftpでこの前作ったtmpimage.tgzを持ってきて
# cd /mnt
# tar zxvf tmpimage.tgz

はい終了。
ftpで持ってくるときにcd /mntで/mntに置かないと
ディスク容量で引っかかります。
そんなわけでリブートしておしまい。
その2あたりに戻る。



USBのHDDを付けるときは
# fdisk /dev/sda
# mke2fs ?j /dev/sda1

# mkdir /mnt/usbhdd
# chmod 777 /mnt/usbhdd
# mount /dev/sda1 /mnt/usbhdd

自動でマウントしてもらう場合はこの後に
# vi /etc/fstab

/dev/sda1 /mnt/usb-hdd ext3 defaults,noatime 0 0
追加

あとはsambaとかで指定してあげればOKかな?






追加
swapがないとむっちゃインストールが遅いので。。。
あと付けswapを作る。
256Mあるけど、ちょっと足りないかな?
512Mを追加で作りましょ
#mkdir /mnt/swap
#cd /mnt/swap
#dd if=/dev/zero of=swap_512M bs=1024 count=524288
#mkswap swap_512M
#swapon swap_512M
#vi /etc/fstab
/mnt/swap/swap_512M swap swap defaults 0 0

swap解除は
# swapoff swap_512M

通常運用するときは要らないかな?


5、NTPサーバ、クライアント

NTPを動かして時間合わせ。

# apt-get update
# apt-get install ntp
# apt-get install ntpupdete
# apt-get install ntp-simple

以上!これで勝手に時間を合わせてくれる。
/etc/ntp.confにserver ntp1.jst.mfeed.ad.jp
とか好きなNTPサーバを書いておこう。
近いところが良いらしいけど
でふぉで良いよね?。。。

エラー?
syslogを見てみると、ntpdでエラーを吐いてる。

frequency error -512 PPM exceeds tolerance 500 PPM

なんだこれ。。。
どうも時刻設定と同期が出来ていない様子。
さすが玄箱くん。。。
クロックがしょぼい。。。

そんなわけでどなたかが作ってくれたスクリプトを当てることに
# apt-get install adjtimex

# vi /etc/script/adjtimex.sh




#!/bin/sh
#
## name:adjtick.sh
##
## adjust tick for LinkStation & KURO-BOX
##
## warning: this script use "PPC" platform only
## Don't support HD-LAN series
## this script need "adjtimex"
##
## by Junker
#
#

#KURO-HG
#tmp_freq_base=32.768000
#tmp_tick_base=10076

#KURO
tmp_freq_base=24.576000
tmp_tick_base=10076


tmp_freq=`cat /var/log/dmesg | grep "decrementer frequency" | awk '{print $4}'`

tmp_tick=`awk < /dev/null 'END {t=int(((y/x)*z)+0.5);printf("%d\n",t);}' \
x=$tmp_freq_base y=$tmp_freq z=$tmp_tick_base`

echo " freq_base tick_base freq tick"
echo " " $tmp_freq_base " " $tmp_tick_base " " $tmp_freq " " $tmp_tick

adjtimex "-t" $tmp_tick

exit 0




# chmod 700 /etc/script/adjtimex.sh
とでもしておいて
ntpdのスタートに入れておけば良いんだけど
またずれると困るのでcron.dに放り込んでおく。

# vi /etc/cron.d/adjtimex
を作って週一月曜にに実行
中味

0 9 * * 1 root /etc/script/adjtimex


これでOK
ntpdでエラーを吐かなくなった。
HGの時はHGのコメントをはずせばOK


6、syslogを色々。

別マシンにsyslogサーバがあるなら
サーバ側(192.168.0.100)の/etc/init.d/sysklogd の項目に-rを付ける。
SYSLOGD="-m 0 -r"
# pkill -HUP syslogd

クライアントがサーバにlogを送りつけるようにするには
/etc/syslogd.conf に *.* @192.168.0.100(syslogサーバ)
とする。


これだとすべて送りつけるようになっているけど、logを見たときは適当に送る。
重い?からsyslog-ng入れた方が良いかも。

玄箱はデフォルトで「--MARK--」と付けてポイントをするので
コレがウザい人は「-m 0」だけでOK。

 

7、 日本語環境
日本語環境の設定

# apt-get install locales

とりあえずEUCはもうキライなのでUTF-8にする。
すべてUTF-8
bashrcがデフォルトのはずなので
# vi ~/.bashrc
中味にexport LANG=ja_JP.UTF-8
を追加。
# source ~/.bashrc

日本語にならなかったら再起動
まだ出来なかったら
# dpkg-reconfigure locales

でもう一回やるとできる。
ls --help
とかで見た方が良いかもmanはjman入れてないから英語のまま

# sync
# sync
# init6 最後はリブート。

8、rsyncでバックアップ。

バックアップとかミラーとか
めんどくさいので
rsyncを使う。
使い方は
# rsync -avz --delete -e ssh /mnt /bak
/mntを/bakにコピー
一応sshとか使ってるけど、使わなくても良いかな?
別マシンにバックアップを取る場合は
メイン→バックアップにrsyncをする。
バックアップ→メインだと状態が分からなくなることがあるらしい。
で長いけど。。。とりあえず。

バックアップ元(192.168.0.41)
バックアップ先(192.168.0.42)
とすると。

まず、バックアップ元で作業。
# ssh-keygen -t rsa
# scp /root/.ssh/id_rsa.pub 192.168.0.42:/root/.ssh/

バックアップ先で
/etc/ssh/sshd_config を編集。
PasswordAuthentication no
PermitRootLogin yes

バックアップ元に戻り。
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

# pkill -HUP sshd
これでおしまい。
最後にバックアップ元で
# ssh root@192.168.0.42
をしてパスワード入れなくてもOKだったらOK

あとはcrontabに
0 3 * * * root /usr/bin/rsync -avz --delete -e ssh /mnt 192.168.0.42:/bak
とでも書いておけば
毎朝3:00に/mntがバックアップ先マシンの/bakにコピーされる。
おしまい

# vi /etc/cron.d/backup
というファイルを作って、そこに置いておくのも手。

 

9、 USB外付けハードディスクを使う。

USB-HDD
なんかちょっと不都合が多いのでまとめ。

# apt-get install dosfstools

toolをインストール。してモジュールをロード。
この2つはrc.localにでも書いておいた方が良い。
一々再起動すると読み込みしなくなる。

# modprobe ehci-hcd
# modprobe usb-storage

windowsでフォーマットした奴ならvfatつかえば見れることは見れる
rのみなので読み取りのみ。RWにはならない。
# mount -t vfat /dev/sda1 /mnt-usb/

新しいディスクを使いたいならパーティーション作ってフォーマット

# cfdisk /dev/sda
fdiskは元々パッケージにないので、好きなら入れておくべし。
cfdiskのが分かりやすいから。。。それで。。。

とりあえず
# cat /proc/scsi/scsi
で確認、ここに乗っていないとモジュールが読み込まれていない。
# mke2fs ?j /dev/sda1
EXT3でフォーマット。
# tune2fs -j /dev/sda1
ジャーナルを作らないと、びっくどらいぶを認識してくれない。
# mount -t ext3 /dev/sda1 /usb-hdd
マウント〜〜





usbhddにバックアップ取るのと、別マシンにバックアップ取るの
どっちがいいか速度を測ってみたけど
あまり変わらず。。。
玄箱程度のCPUでは結局2.0USBや100Mのネットワークすら満足に使えていない。
。。。と言うことが分かった。
win使えればsambaでコピっるのが一番速度は出るかなぁ。。

 

 

 

10、プリントサーバlpr、lpd

プリントサーバにする。

# apt-get install lpr
# apt-get install usbmgr
# apt-get install usbutils

# modprobe usb-ohci
# modprobe printer
# lsmod
# lsusb

# cat /proc/bus/usb/devices

# mkdir /dev/usb
# mknod /dev/usb/lp0 c 180 0
# /bin/mknod /dev/usblp0 c 180 0
# /bin/chown root:lp /dev/usblp0
# /bin/chmod 660 /dev/usblp0</blockquote>
usbかusblp0かどっちかわからんので
どっちもつかうことにする。

# vi /etc/printcap

lp|iP4100:\
:lp=/dev/usblp0:\
:sd=/var/spool/lpd/lp:\
:af=/var/log/lp-acct:\
:lf=/var/log/lp-errs:\
:pl#66:\
:pw#80:\
:pc#150:\
:mx#0:\
:sh:

# vi /etc/samba/smb.conf

[iP4100]
comment = Canon iP4100
path = /tmp
read only = No
create mask = 0700
guest ok = Yes
printable = Yes
print command = lpr -Plp -r %s
printer name = iP4100
oplocks = No
share modes = No

を追加。
これでOK。

うごかないときは、

# /etc/init.d/npd restart

これでプリンタが反応しない場合はUSB周りがおかしいかも。


TOPページへ