ハードウェア編のほうで構築した自宅サーバ機に、早速Linuxをインストールする。ということでまずはディストリビューションをどうするか、だが、今回はこの作業の数週間前にリリースされたばかりのDebian GNU/Linux 3.0を使用することにした。
と書くと出たばっかりだからだと思われそうだが、そういうわけではなく(言い訳がましい)以前に試しにVineやRedHatを入れてみたときに、自分のような初心者がソフトをソースからコンパイルしてインストールしたりしているとすぐに何が入っているか、ということの把握ができなくなって管理が破綻しそうなことがわかったからである。
もちろん、rpmによるパッケージ管理機能を使えばそんなことにはならないのだが、どうせならより先進のパッケージ管理機構といわれるaptを採用したDebianにしようと思ったのである。なんでも、ソフト名だけ指定したら勝手にダウンロードしてインストールしてくれたり、そのソフトのために必要なほかのソフトがあったらそれも入れてくれたりという至れり尽せりの機能ならしい。また、インストールされているソフトにアップデートパッチが出たときも、アップデート用の命令を実行したら必要な物を勝手にインストールしてくれるんだとか。
そしてパッケージ管理がしっかりしていて、一度インストールしたらよほどのことがない限り再インストールする必要がないとのこと。そういう仕組みは一回インストールして使い出したらもう止められないホームサーバには必要だろうということでDebianでいくことにした。
何はなくとも公式ページのインストールマニュアル。こんなとこ読むよりよっぽどためになる。
公式サイトのダウンロードから、x86用のインストールFDイメージをダウンロードする。コンピュータの構成によっていくつかの種類のインストーラが用意されているが、自分の場合はideのHDDさえ使えればいいだろうと思ったので"idepci"フレーバーというやつをダウンロードした。
このフレーバーは3つのディスクで構成され、それぞれrescue、root、driverディスクである。3つのイメージを3枚のFDにそれぞれrawriteというプログラム(同じサイトでダウンロードできる)で展開しておく。
早速rescueディスクをフロッピードライブに入れてマシンを起動すると、しばらくしてメニューが表示されてBoot:というプロンプトで止まる。rescueディスクという名のとおり、インストール後に困ったことが起きて起動できなくなったりしたらここでいろいろ打ち込むことでこのディスクからとりあえず起動して復旧できたりもするようだ。ともかく、今はインストールしたいだけなので単にEnterを押す。
しばらく待つとdbootstrapというインストーラが起動する。メニューの指示どおりに進んでいくとインストールが完了する仕組みになっている。
このマシンは、ディスクをRAIDに構成して運用しようと思っているため、HDDが2台積んである。/dev/hda のディスクが13GB、/dev/hdc のディスクが40GBだったのだが、インストール後にしかRAID構成をとることはできないので、とりあえず/dev/hdaにインストールしておくことにした。
インストール先を選択すると、cfdiskというパーティション(HDDの区画)操作ツールが起動するので、/dev/hda1に8GBほどと、念のためにswap用に512MBの/dev/hda2の2つのパーティションを作成した。同時に、このツールを使ってパーティションタイプをそれぞれ0x83(Linux)と0x82(Linux Swap)に設定し、/dev/hda1に起動可能フラグをつけておく。
あとはパッケージがダウンロードされてインストールが始まる。終わるまであとどのくらいかかるのかがいまいちわかりにくい画面だが、数十分という感じだろうか。高速な回線ならもっと早く終わるだろう。
ひとしきりして、基本システムのインストール作業が終わると「システムを起動可能にしますか?」と聞かれた。(LILOをインストールする)HDDに起動用の情報を登録するか、ということらしい。別に問題ないのでMBRにLILOをインストール。さらに起動FDを作るかどうか聞かれたので「作成する」を選択し、起動FDができるとついに基本システムのインストールは完了である。
ここで再起動が促され、うまく起動できればOK。
無事にHDDからDebianが起動し、Congratulations の画面が出る。再びインストーラの指示に従って残りの設定をするように、ということらしい。
ここまでで基本システムのインストールは完了である。この後はそれぞれの人の使い方によって追加で必要なパッケージを適宜インストールしていくことになる。自分は必要最小限のパッケージしか入れたくなかったのだが、「必須のパッケージ」というものがあるらしいので、それだけはインストール中に入れておくことにした。
必須のパッケージのみをインストールするのは簡単で、次に聞かれる、「tasksel」というパッケージ選択プログラムで何も選択せずに終わるだけでよい。勝手にパッケージのダウンロードが始まり、展開され、適切な順序でインストールされていく。
途中、インストールされるパッケージの使用についていくつか聞かれるが、適当に答える。デフォルト以外を選んだのはsshの「ログインをssh2に限定する」に「いいえ」を選んだことくらいであろうか。
すべての質問に答えて、これでインストールがすべて完了。ログインプロンプトが出て、そのままどうとでも使ってくださいという感じである。「Debianのインストールは難しい」と言われていたが、さすがに最近は改善されているようだ。
最小限のインストールをしたといっても、この時点ですでに多くのデーモンプロセスが稼動している。別にサーバー負荷がどうというほど重いものではないが、不要なサービスが起動しているということはそれだけセキュリティ上の問題が増える可能性があるので切るのが望ましい。おそらく要らないと判断したのは、
の4つ。atdは遅延実行サービス。バッチ処理用のcronはともかく、こっちはおそらく使わない。lpdはプリンタスプーラ。印刷なんかしないので不要。あとの2つはNFS(Network File System)サービスのためのもの。NFSは使わないのでまたまた不要である。これらのサービスを止めるには、
user@host$ su - rootになる
Password:
root@host# /etc/init.d/atd stop
root@host# /etc/init.d/lpd stop
root@host# /etc/init.d/portmap stop
root@host# /etc/init.d/nfs-common stop
でOK。
ただし、このままでは次回の起動時にまた自動的にこれらのサービスが起動してきてしまうので、各ランレベルの起動スクリプトディレクトリからこれらのサービスを起動するスクリプトを削除しなければならない。手でやってもいいけど面倒なこの作業、Debianには update-rc.d というスクリプトがあるのでこれを使用する。楽ちん。
root@host# update-rc.d -f atd remove
root@host# update-rc.d -f lpd remove
root@host# update-rc.d -f portmap remove
root@host# update-rc.d -f nfs-common remove