[an error occurred while processing this directive]

「Miria」再インストール手順

[an error occurred while processing this directive]

「●『Miria』再インストール」へ


ファイルに対する変更はpatch風に

変更するファイル
+ 追加
- 削除

の形で書く(あくまでpatch"風"なので、行数とかは書かない)。
参考サイトは「>〜〜」のように書く。
基本的に上から下に向かって行った順番で書いている。
たぶん参考にならないとは思うが、一応汎用の「SETI@home専用マシン」を作れるように冗長な情報も書いておく(SWI-PrologやCLISPなんかはまったく関係ないが…)。
このサイトの他のページにすでに書いてある情報もあるが、一箇所にまとめるという意味でここにも書いておく。
結構内部事情がわかるような情報も多いが、一応セキュリティホールにならないように注意してるつもり。でもなってるかもしれない。

インストール
ディスクはすでに作ってあったもの(前回のインストール時に使用)を用いた。
「Miria」の特記事項として、ディスプレイが800x600なのでCDから起動した時にinstallではなくResolutionを選んで800x600にする必要がある。
一般ユーザーはnaoyaだけ作成する。
rpmインストールを忘れずに([2]参照)。
>[1]それ行けLinux〜Turbolinux 10 Desktop(FTP版) インストールCD作成〜
>[2]それ行けLinux〜Turbolinux 10 Desktop インストール〜

●nomce
K8(Athlon64、Opteron)のマルチコアCPUだとやっておいたほうが吉かも。
今のところはっきりした確信はないが、K8マルチコア+nForce4だとこれをやらないとクラッシュするっぽい?
これやるの忘れてて、その結果次のTUでクラッシュしてしまったorz。
ソースはぐぐってて発見した[3]。x86-64(AMD64?要するにItaniumじゃないほう)だし、うまくいくかな〜…と思って。
起動してからセットしようとしてもそれまでにクラッシュする可能性があるので、まずgrubのメニューからnomceをつけて起動し、その後すぐにgrub.confを書き換えておく。

/boot/grub/grub.conf
- kernel (hd0,1)/vmlinuz root=0303
+ kernel (hd0,1)/vmlinuz root=0303 nomce

>[3]技術情報:AMD Opteron プロセッサとx86-64カーネル(AMD64)使用時の注意点 | サイオステクノロジー株式会社 Northern Lights Products

●TurboUpdate
cupsで止まるので2回やる必要がある。先にcupsだけ入れておくという手も。
update途中でcrash。nomce設定するの忘れてた。

●sudo
「Miria」ではroot権限の必要なコマンドを使うことが多いので、sudoersを変更してパスワードなしでsudoできるようにしておく。
実質rootのパスワードないのと同じだが(「sudo su」で本当にパスワードなしでrootになれるし)…。
まあ、「Miria」は外部に直接公開してない(ルータにポートを割り当てていないので、「Sephie」のVMware上で動いているTurbolinux経由じゃないとアクセスできない)ので、大丈夫だと思うけどなぁ。
外部公開してるマシンでは絶対にやらないように。万一進入されたら地獄だ。

/etc/sudoers
+ naoya ALL=(ALL) NOPASSWD: ALL

>[4]サーバーのセキュリティ対策
>[5]自宅サーバであそぼ: 基本的なセキュリティの設定([4]の移転先で、実質的に[4]と同じ)

●.bashrc
lsの結果を色つきにする。
これは、Turbolinuxの場合あらかじめ.bashrcにテンプレートがあるので、コメント化&コメント外しで
また、rootの.bashrcに/usr/sbin、/sbinなど管理者ツールへのパスをセットし、値確認メッセージを出すようにしておく。

/root/.bashrc
- alias ls='ls -NF --show-control-chars'
+ #alias ls='ls -NF --show-control-chars'
- #LS_COLORS='(略)' ; export LS_COLORS
+ LS_COLORS='(略)' ; export LS_COLORS
- #alias ls='ls --color=auto -NF --show-control-chars'
+ alias ls='ls --color=auto -NF --show-control-chars'
+ export LANG=ja_JP.eucJP
+ export JLESSCHARSET=japanese
+ export PATH=$PATH:/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin
+ echo root value set.
/home/naoya/.bashrc
- alias ls='ls -NF --show-control-chars'
+ #alias ls='ls -NF --show-control-chars'
- #LS_COLORS='(略)' ; export LS_COLORS
+ LS_COLORS='(略)' ; export LS_COLORS
- #alias ls='ls --color=auto -NF --show-control-chars'
+ alias ls='ls --color=auto -NF --show-control-chars'
+ export LANG=ja_JP.eucJP
+ export JLESSCHARSET=japanese

>[6]初心者必見

●ssh
パスワードログインを禁止、その前にキーをセットしておく(先にパスワードログイン禁止にするとキーを送るのが面倒)。
説明するまでもないと思うが、ログインする側の公開鍵(id_rsa.pubなどの名前になっている。ミスを防ぐためにid_rsa.pub.cli1などにリネームしてコピーするといいだろう)をログインされる側の/home/ユーザ名/.ssh/authorized_keysに追加しておく(「cat id_rsa.pub.cli1 >> authorized_keys」のようにすればいい)。
間違えてログインされる側の公開鍵をauthorized_keysに追加しないように(しても問題はないだろうが、本来ログインしたい端末からログインできない)。
あと、ログインする側の公開鍵でログインされる側の公開鍵を上書きしてしまわないように(上で書いてるようにコピー時にリネームしておけばOK)。
また、最近のsshdはデフォルトでrootログイン不能になっているはずだが、念のため確認しておくといいかも。

/etc/ssh/sshd_config
- #PasswordAuthentication yes
+ PasswordAuthentication no
- #ChallengeResponseAuthentication yes
+ ChallengeResponseAuthentication no


●samba(swat)
sambaサーバの設定を行う。
ファイル交換目的だけならWinSCPなどを使うようにして、sambaを切ってしまうという手もある。
私の場合は「Sephie」からグラフ化ツールで「Miria」上のファイルを読んでいるのでsambaが必要である。
インストール時にswatを起動する設定にしておくと楽(セキュリティレベル中だと起動しないので、個別設定画面でswatだけONにする)。
「Miria」のディスプレイは狭くて見づらいので、LAN内のマシンから設定するためにhosts.allowにswatの項目を追加。
swatから以下の設定を行う。
・ワークグループ名を変更
・セキュリティレベルをSHAREにする
USERだとどうもうまくいかない…はず。
最近は面倒で検証してない(ぉ)。
外部に公開してないから大丈夫だろう。そもそもLAN内に侵入されたら「Miria」より「Fen」や「Naomi」が狙われてアウトだし。

・ブラウズマスタにならないようにする
「コンピュータ一覧表示オプション」のOSレベルを1にし、それ以外のオプションをすべてNoにする。
Windows NT(2000/XP/Vista含む)マシンがある環境だとおそらくそちらをブラウズマスタにするはずなのでこれでいいだろう。
・ゲストアカウントをnaoyaにし、有効化+書き込み可能にする
これは各共有ごとに必要であれば行っておく。
セキュリティレベルをUSERにできればこんなことしなくてもいいんだけどなぁ。

/etc/hosts.allow
+ swat: 192.168.0.*


●fstab
今度は逆に「Miria」から「Sephie」上のファイル共有をマウントするための設定を行う。
先に/mnt/setiを作っておくのを忘れずに。
さすがに/etc/smbpassの中身は見せられないが、

username=ファイル共有にアクセスするためのユーザ名
password=そのユーザのパスワード

のようになっている。
平文ではないパスワードが使える(つまり/etc/smbpassに暗号化されたパスワードが書ける)かどうかは不明。その辺気になる場合は各自調べてくれ(ぉ)。

/etc/fstab
+ //192.168.0.1/seti@miria /mnt/seti smbfs credentials=/etc/smbpass 0 0

>[7]coLinux with Debian インストール・設定メモ(暫定版)

●swap
インストール時にswapパーティションを作ってあれば不要。
そうでない場合はswapファイルを作っておく。
これをやっておかないと、搭載メモリ容量によってはSETI@homeがメモリ不足でエラー連発してWU浪費する可能性がある。
[8]は本来NFS上にswapを作成する場合のやり方のようだが、swapパーティションを作り忘れたorサイズを拡大したいという場合に使えるかも。
「Miria」の場合は256Mのswapを/swapに作成するので以下のコマンドを実行する。

dd if=/dev/zero of=/swap bs=1M count=256
mkswap /swap
swapon /swap


swaponは毎回行う必要があるので、/etc/rc.localにでも追加しておく。

/etc/rc.local
+ swapon /swap

>[8][linux-users:84070] Re: Disklessの SWAP(改:Diskless Linuxのモニタ) 

●カーネル(必要ならばkdump,crashも)
[9]を参考にカーネルをダウンロードして解凍し、手順6まで進めておく。
2.6.20はやはりダメだった。2.6.19の.configを使ってmake oldconfigしたのが原因だろうか。
プレーン(ソース解凍後手を加えていない状態)からconfigしなおす必要があるのかもしれない。
kdump、crashを入れる場合はカーネルソースを解凍したディレクトリ以下のDocumentation/kdump/kdump.txtを参考にして入れる。
その場合、常用カーネル、クラッシュ時用カーネル両方のvmlinux(非圧縮カーネルイメージ)を別の場所にとっておくのを忘れずに。
また、[9]にも書いてあるようにTurbolinuxだと最後のインストールがうまくいかない。
[9]ではvmlinuzを書き換えてしまうように書いてあるが、一度でもTurboUpdateでカーネルをアップデートしていれば、/boot以下に〜.oldというファイルができているので、それらとoldをとったファイル(たとえばvmlinuz.oldがあれば、それとvmlinuz)のリンク先を変更すればgrub.confは書き換えなくてもよい。
ただし、シンボリックリンクを張るときにうっかり間違えて絶対パスで張る(ln -s /boot/vmlinuz-〜 /boot/vmlinuz)と起動しなくなるので注意!
シンボリックリンクの張り間違いを防ぐために、「make install」を行って「grubby 〜」というエラーが出た直後に/boot以下で「ls -l」を実行した結果をテキストファイルなどにコピーしておき、それを見ながら作業するといいだろう。
私はkdumpを入れたので、grub.confも書き換えた。nomceオプションはこれまでの手順でセットしていなければ存在しないので気にしない。

/boot/grub/grub.conf
- kernel (hd0,1)/vmlinuz root=0303 nomce
+ kernel (hd0,1)/vmlinuz root=0303 nomce crashkernel=64M@16M

>[9]Linuxでのカーネル再構築方法

●Prolog(SWI-Prolog)、CLISP
そもそも大学での講義ももう終わったし、別に入れなくてもいいんだけど、一応入れておく。
むしろ、カーネルのコンパイルに時間かかるので暇つぶしに同時進行で入れてるだけ?
デュアルコアだからできる方法だ(シングルコアだと余計に遅くなるだけ)。
CLISPのインストールでlibsigsegvがないと言われることがあるが、入れるためのコマンドを示してくれるのでそのまま実行すればいい。
それでも入っていないと言われた場合、おそらくconfigのキャッシュが残っているのが原因なので消す(rm -f src/config.*)。

● SETI
本家([10])からBOINCクライアント、[11]からLinux用SETI@home最適化クライアントをそれぞれダウンロード&インストール。
本家のSETI@homeクライアントが入らないようにするため、プロジェクト参加前に最適化クライアントを入れておく。
パーミッションが不適切だったり、メモリが少なかったりすると大量のWUを無駄にすることになるので注意!(といいつつやっちまったorz)
また、LAN上のマシンから監視したい場合、監視するマシンのアドレスをBOINCインストールディレクトリ以下のremote_hosts.cfgに改行で区切って記述しておく。

>[10]SETI@home
>[11]Downloads

●自動起動
電源を入れると自動的にSETI@home起動まで行われるようにするために、自動ログイン&自動起動の設定をしておく。
CUIだけで行う場合は/etc/rc.localにでも書いておくか?
GUIを使う場合は[12]、[13]を参考に行う。
「Miria」の場合、自動起動するユーザはnaoya(というか一般ユーザーはそれしかない)、自動起動するコマンドは/home/naoya/setibootに設定。
setibootの中身は後ほど。

/etc/X11/launch_xdm.conf
- LANG=`/sbin/dname -l` /usr/bin/gdm -nodaemon
+ LANG=`/sbin/dname -l` /usr/bin/kdm -nodaemon

>[12]@IT:Turbolinuxで自動ログインするには
>[13]KDEでプログラムを自動起動するには

●lm_sensors
これもSETI@homeにはあまり関係ない。
現時点(2007/2/25)の最新版は2.10.2だが、保存してあったアーカイブを使って2.10.1を入れた。
2.6系kernelではsysfsutils(libsysfs)を入れる必要がある。
sysfsutilsを入れるためには新しいautoconf(少なくとも2.57ではだめで、2.60以上が必要?)を入れる必要がある。
ということで、autoconf(2.61)→sysfsutils(2.1.0)→lm_sensors(2.10.1)の順で入れる必要がある。
入れたら、sensors-detect(/usr/local/sbinにある)を実行した結果を/etc/modules.confと/etc/rc.localに追加しておく。
追加する内容はハードウェア環境に依存するので、ここでは詳細を示さない。

●smartmontools(smartctl)
HDDの状態を監視するためにので入れておく。
なぜか/usr/include/linux-glibc/cciss_ioctl.hを弄る必要があった。
具体的には「#ifndef CCISS_CMD_H」から「#endif /* CCISS_CMD_H */ 」までを「typedef struct _BIG_IOCTL_Command_struct {」より前に移動した。
以前はどうやって入れたんだろう?と思ったら、最新版の5.37ではなく5.36を入れていた

●crontab
lm_sensorsのログを出力・整形するためのコマンドをcrontabにセット。
/home/naoya/.crontabを作成してcrontab .crontabで設定し、crontab -lで確認しておく。
.crontabの中身は後ほど。

●自作ファイルの内容
起動時に呼ばれるsetibootと、cronから実行される自作スクリプトのツリーを書いておく。

~naoya/setiboot:[14]、[15]を参考にメモリ管理とkernel panic時の設定、SETI@homeのlockfile消去(クラッシュした時のため)
|-~naoya/kexecboot:クラッシュ時用カーネルのロード
|-~naoya/seti/goboinc:SETI@home実行

(cron)=.crontab
|-~naoya/lmwritelog:lm_sensorsのsensorsコマンドの出力やCPUクロックをファイルに書き出し
||-/mnt/seti/ext/logger/lmlog(※バイナリ):lmwritelog内で書き出したログを整形するプログラム
||-~naoya/remount:「Sephie」のファイル共有を再マウントする
|
|-~naoya/lmclean:「Sephie」シャットダウンなどで暴走したlmwritelogとlmlogを抹殺
||-~naoya/lmwritelog:上記のlmwritelogと同じ
|
|-~naoya/setiback:SETI@homeのディレクトリを「Sephie」上にバックアップ
 |-~naoya/remount:上記のremountと同じ

>[14]memologue - Linux Memory Overcommit
>[15]ITmedia エンタープライズ Linux Tips「カーネルパニック時には自動的に再起動するようにしたい」


「●『Miria』再インストール」へ