その後のFail2ban


 安定まで苦労したFail2banだが、今ではすっかり落ち着いておられる。
 そして今日、とうとうLogwatchからSMTP第三者中継失敗の報告が消えた。よくやった。

 ちなみに長期遮断に引っ掛かってるホストは全部中国だった。国ごと遮断する人の気持ちもすごく分かる気がする。しないけどさー。


Yumのグループインストールを使ってみる


 余り物状態で放置されていたNP12に、MBMによるWindows7とCentOSの二本立ての環境が整備出来て、これからLinuxサーバとしての華麗なる第二の人生が始まろうとしていた。が、そこにはcrondすら無く。
 という訳で、yum登場。先にEPELも入れといて、と。
 んー、色々と大量にインストールしたいから、groupinstallってのを試してみたいな。それじゃリストを出すか。yum grouplist、と。
 うむ。何かグループ名が全部日本語に翻訳されてるな。「システムツール」とか「管理ツール」とか。groupinstallに与える名前が知りたいのに。yum groupinstall システムツールとか実行しろっていうのか。
 いや、あれ、まさか。あ、そうなんですか。本当にそのコマンドが正しいんで。ウヘァ。
 確かにインストール出来ました。ははははは。Python3kのUnicode識別名とか使ったらもっと凄い違和感がありそうだ(笑)。
 それじゃーどんどん入れちゃうよー。


CentOSを入れてみるんどす


注意:
 普通にインストールするならこんな無駄な苦労は全く不要です!

前回までの登場人物

NP12
EPSON Endeavor NP12。定価32550円だが、いつ見ても限定クーポンで10500円引の22050円で売られている。小さくて安くて非力。メモリは2GBに増設済み。Windows 7とか入ってるけど、正直事務用としても少し厳しい重さ。Windowsで使うならIONなり何なりの方が良さげ。事務用でも。
USB HDD
USB接続キットで無理矢理繋いだ、その辺に余ってた250GBのベアドライブ。
カマクラ
USB HDDにFreeDOSを入れたパーティション。

前回の分かりにくいあらすじ

NP12にLinux入れたい→デュアルブートしたい↓
↓ブートできない←FreeDOS入れたい←MBM入れたい
GRUB4DOS入れた→FreeDOS入れた→MBM入れた↓
本当の戦いはこれからだ!←LinuxはいつものCentOSにしよう

 つーわけで。

 インストール先となるNP12に空き領域を作ろう。簡単だが。コンパネ→管理ツール→コンピュータの管理→ディスクの管理、から適当に右クリで既存パーティションを縮小出来る。こんな簡単だったっけ。Windows 7だから?

 次に、USB HDDにカマクラとは別のFAT32な32GBパーティション(以下ホンヤラ)を作った。そして、CentOSインストーラーを入れるのだが、DVD版とか巨大だからネットワークインストールを試してみようぜー、と思って、そうしてみた。つっても多分、以下はDVD版も同じ手順だろうけど。
 まず、CentOSインストーラーのISOイメージを落として、Explzhで開いてisolinuxディレクトリの中身をホンヤラのルートに突っ込む。楽勝である。
 ホンヤラのisolinux.cfgsyslinux.cfgにリネームして、syslinux落としてきて展開して、コマンドプロンプトでwin32ディレクトリに入ってsyslinux.exeに適当なパラメータ付けてホンヤラに書き込ませる。これも楽勝。
 NP12にUSB HDDを繋ぎ直して、MBMでホンヤラから起動すると、よしよし、CentOSのインストーラーの画面が出たぞ。もう後は簡単だろ、ははは。

 などと油断していたのだが。
 インストーラーをずんずん進めて、パーティション構成をカスタム設定にして、NP12の空き領域にext3で/にマウント、として。快調な雰囲気だったが、ブートローダーを書き込む設定のところで、USB HDDのMBRにブートローダーを書き込もうとしてるように見えてならない。非常に意味が分からない。どこから設定変えるんだこれ。わかんね。いっそ、ブートローダーを書き込まない、でどうなるか試してみるかー。
 そして、ずんずん進めてたらインストーラー落ちた。例外で落ちたよ!
 何が原因か良く分からないので、微妙に設定を変えてもう一度試す。ネットワークインストールだと、二度もやるのは無駄に重いでござるなあ。
 そして例外で落ちる。
 …適当に検索したところ、「Packages from CentOS Extrasを導入しようとすると落ちるぜ」とか書いてあった。三年以上前の日付で。長生きなバグだな、ちくしょうめ。

 三度目のインストール。くそう、重いぜ。何でこんなに重いのか少し不思議だが。
 でも、今度こそ順調にインストーラーが完走した。パッケージ選択では、何も入れないことにしてみた。面白そうなので。
 そして再起動して、MBMから選択して、起動しない。よしよし。予想通りのトラブルだ。よくねーけどな。
 要するにパーティションにブートローダーがいないのだろう。GRUB Legacyをgrub-installしてやればいいのだろうが、どっからやんのかな。多分ほぼ同じ中身のLinuxからじゃないとまずいよね。うん。つまりホンヤラからレスキューだね。

 四度目のホンヤラ。今度はインストールじゃなくて、linux rescueと打ち込んでレスキュー運用である。が、ネットワークインストール版なので、重いのは変わらない。うん。DVD版にすべきだった気がするよね。とっくにだけどね。
 んでシェルが来たんで、chroot /mnt/sysimageで騙くらかして、えーとNP12の目標パーティションは/dev/sda3みたいだから、grub-install /dev/sda3かな。そして、/boot/grub/device.mapに不要なエントリがあるからついでに除去しちゃって、と。(hd0) /dev/sda3以外要らないべ。
 そして再起動ー、っと。
 あ。GRUB設定してない。
 もちろん起動しないが、GRUBシェルまでは行くから、勘でkernelパラメータを打ち込んでみる。そんなファイル無いと言われる。lsとか取れないのかなこれ。カーネルのバージョンが分からないと無理ですなあ。ははは。

 五回目のホンヤラ。D・V・D! D・V・D!
 さっきと同じ手順でchrootして、/bootのファイル名を確認し、

# touch /boot/grub/grub.conf
# ln -s /boot/grub/grub.conf /boot/grub/menu.lst

って感じに作って、/etc/fstabを見たりしながら適当に編集。

default=0
timeout=3
title CentOS (2.6.18-194.el5)
    root (hd0,2)
    kernel /boot/vmlinuz-2.6.18-194.el5 ro root=LABEL=/
    initrd /boot/initrd-2.6.18-194.el5.img

こんな感じかな。

 そして、再起動。流れるブートログ。とうとう任務が完了したのだ。
 が、そこにあったのはcrondすら無い荒野だった。誰が…、こんなことを…。
 sshdを入れた途端にまるっきりいつも通りの楽な作業になったけどな。

 なお、Windows 7でクライアントとして使うには非常に非力だったNP12だが、SOHOのLinux鯖としては全く問題無さそうだった。リモート管理だとビデオ性能も全く要らないし。何だか大満足の転身劇である。
 そして、これが思ったより便利なのであった。Windowsしか使わない事務所なのに。Sambaすごいなあ。


DOSを入れてみるんどす


 やめろ。

 USBに突っ込むと起動する、みたいなDOS環境があるとすごく便利ですよね。あらかた嘘ですが。memtestとか使うには便利かもしんないですね。
 まあ、今回はDOSが必要なのだ。NP12のLinuxサーバ化計画では最終的にデュアルブートにする予定なので、ブートの仕組みを調べたが、MBRに便利なブートローダーを入れるべき、と熱弁してるとこがあって、こういう仕組みならそうなるよなあ、と。で、MBMもお勧めされてるんだけど、DOS用なのでありますなあ。

 という訳で、作業開始。
 ただし、フロッピーは使えません。CDも使えません。USBメモリも使えません。USBなHDDだけが使えます。OSはWindows XP以降だけです。何この激しい縛り。XPだと起動ディスクもFDにしか作れないんだよな確か。つーかUSBメモリなんか糞安いんだし買ってこいよ俺。ついでにピザポテトとコーラもな。
 などと思いつつ、面白そうなので気合で何とかしてみようとする。
 お役御免となっていた250GB HDDをUSB接続キット(NV-TW130U)でUSBに接続してー、FreeDOSのイメージを適当に用意してー…。

 ここで一度目の躓き。FreeDOSの配布場所にはISOが置いてあるが、今回はCDが使えない。ISOの中にはFDイメージもあるが、FDも無い。
 めんどくさいので、commandとkernelの最新っぽい奴のバイナリっぽい奴をバラで落とす。多分フォーマット直後にカーネルを最初に書き込めば平気なんじゃないかな、DOSだし。知らんけど。つーかFreeDOSにこだわらんでも、Virtual Floppy Driveを入れて起動ディスク作らせて抜き取る方が楽かもしんないけど。

 で、作業再開。次はブータブルなHDDの作成だな。
 DOSを入れる為の32768MBのFAT32パーティション(以下カマクラ)をクイックフォーマットで作成してー、HP USB Disk Storage Format ToolでFreeDOSの入ってるフォルダを指定して再度クイックフォーマットをカマクラ…。
 はい今死んだ! 今"the user-supplied DOS system files are not compatible with FAT32."とか出て死んだよ!
 マジうぜえ。2047MBのFAT領域を作ってみても駄目だし。えーと、HP USB Disk(略)が2.1.8だと駄目みたいだな。2.2.3だと突破出来たぜ。でも、突破しただけで結局起動しなかったから全然意味無いけどな!

 何かこー、あれですよ。手軽にWindows上からHDDにブートローダーを入れられれば、それで何とかなるはずじゃないですか。MBRとカマクラの両方にな。
 そして、探してみると、grubinstがまさにそれであった。何だよ結局GRUBかよ。GRUB4DOSかもしれないけど。まあいいや、とにかく入ってみようぜ。こっちだ越前。
 展開すると、中にはgrubinst_gui.exeなどという眩しげなファイルも見えたり。早速そいつを起動して、MBRとカマクラに書いて、と。あとはFreeDOSを適当にカマクラにコピーして、NP12にUSB HDDを繋いで、BIOSのブート優先順位を変えて、さあ起動だ。はい今"No Grldr"とか出て死んだ!
 grub4dos-0.4.4.zipとか適当に拾って、中のgrldrをカマクラにコピーして、もういっちょ。おお、GRUBのシェルが出たぞ。ゴールは近い予感。えーと、

> chainloader /kernel.sys
> boot

でどうだ。
 お、FreeDOSが起動した。すげー、起動したよー。でも面倒だからmenu.lstとか書こうな。

 という訳で、USB接続の外付けHDDにFreeDOSを突っ込んだ手順をまとめると、

  • 面倒なのでUSB HDDのパーティションを全開放(空き領域を作るだけで十分だろうけど)
  • 32768MB以下の適当なサイズの領域(もう一度言うけど以下カマクラ)を作って、FATかFAT32でクイックフォーマット
  • 何となくカマクラをアクティブにしてみる
  • FreeDOSのibiblioミラー(リンク切れ)からkernelディレクトリに入って、適当に新しそうなバイナリ拾って、その中のkernel.sysをカマクラにコピー(GRUBならフォーマット直後でなくてもいいのだろうか?)
  • 同じとこからcommandディレクトリに入って、command.com, config.sys, autoexec.bat辺りをカマクラにコピー
  • 他にもDOSで使いたいツールをどんどんカマクラ送り
  • grub4dos-*.zipを拾って、grldrをカマクラ送り
  • grubinst-*-bin-w32-*.zipを拾って展開し、grubinst_gui.exeを起動
  • Diskのリストから正しいドライブを絶対に間違えないように選択し、Part ListのRefreshを押し、リストからWhole Diskを選択してInstallし、さらにリストからカマクラも選択してInstall
  • カマクラにmenu.lstファイルを作り、中には
    title Boot FreeDOS 
    root (hd0,0)
    chainloader /kernel.sys

    とか書いておけばいいのかも?

という感じ。
 あ、Windowsで接続されたUSB HDDを引っこ抜く時は、ハードウェアの安全な取り外しがもちろん必須。DOSの方は遅延書き込みとか無かった気がするからどうでもいいが。多分。

 以上のあやふやな手順により、めでたくカマクラDOSが起動したので、NP12のMBRにMBMを書き込む。これでもうBIOSのブート順位も元の平常運転に戻せるし、USB HDDにどんどんOSも増やせそうだ。
 という訳で、早速Ubuntu…、いやCentOSにしよう。何かもう新しいの覚える気力が無いんだぜ。

 そしてここから、もう一つの山場が待っていたのであった。


Kermitを使う


 明日いっぱいで旧鯖ともお別れである。サービスもSSH以外はほぼ止めてある。
 が、何か取りこぼしは無いかなー、と思って眺めていると、あったあった。このファイルは拾っておくか、的な物が。早速FTPで接続。出来ない。止めてるしな。パスワード知らないユーザーのディレクトリに送りたいからscpも困るな…。ローカルへのscpをしようにも、これ俺のディレクトリじゃないしなあ(笑)。HTTPアップロードとかもちょっとアレだし。
 はっ。Kermitがあるじゃナイデスカ。よし、kermit -P -iで、send 何とか.tar.gzで、あとは受信だな!
 ちゃんと転送されてます。キモーイ。オソーイ。マジオソーイ。
 scpで俺のディレクトリに送ってsuしてどうにかすれば良かったよね、というオチで。

 つーかrootなんだからコピー元を俺のディレクトリに移してローカルにscpするなり何なりどうとでもなっただろーが的な。つまり、Kermitを試したかっただけだろうな。ZMODEMならもっと懐かしくなれたかもね!