/ «2004-07-31 (Sat) ^ 2004-10-17 (Sun)» ?
   西田 亙の本:GNU 開発ツール -- hello.c から a.out が誕生するまで --

Categories Books | Hard | Hardware | Linux | MCU | Misc | Publish | Radio | Repository | Thoughts | Time | UNIX | Writing | プロフィール


2004-10-12 (Tue)

[UNIX] From Debian/GNU Linux to OpenBSD

サーバー移転

いつの間にやら、3ヵ月が経過・・。この間に没頭していた、新しいサーバーへの移転作業が、ほぼ完了。従来レンタルしていた国内のサーバーから、北米のサーバーへ引っ越したため、日本からの応答性は今ひとつ。しかし、同じ値段で「Dual Xeon HP blade server, 2 x 80GB HDD, なおかつグローバル IP 9個」が利用できるのであれば、十分にお釣りが来るほどだ。HDD が RAID ではないため、合計 160GB を自在にマウント可能という点も気に入った。

もちろん、私のような「悪い子」には必須の、シリアルコンソールおよびリモート・リブート機能も最初からサポートされている。日本で同じスペックのレンタルサーバーを使用するためには、おそらく数倍を遙かに超える出費が必要だろう。サーバー天国、アメリカに多謝。面白かったのは契約時に、わざわざアメリカから確認の電話が掛かってきたこと。これも初めての経験である。

同サーバーにプリインストールされるOSは、Debian GNU/Linux もしくは FreeBSD 4.x だけであり、新たに挑戦したかった OpenBSD は用意されていなかった。このため、渋々 Debian を選択。が、悪い子の真の狙いは Secondary IDE drive に OpenBSD を「リモート作業で」インストールすることにあったのである。

経験豊かなインストール野郎の方々は、上の文章を読んで「そんなアホな!」と思われたことだろう。私も当初は無理だと考えていた。しかし、海外を丹念に探したところで、OpenBSD をサポートしているような奇特なレンタル会社はほとんど皆無と言って良い。たまにサポートされていても、料金や、上述したシリアルコンソールを始めとする様々な条件に適合するサービスを見つけることは出来なかった。

という事で、「自力でリモートマシンに OpenBSD をインストールするしか、オジサンに道はない」という結論に達した次第。「必要は発明の母」とは、まさにこの事である。

さて、「手元のマシン」に PC-UNIX をインストールすることは極めて簡単だ。最近はやりの ISO image を使えば、それこそ猿でも出来るかもしれない。しかし、今回のお相手さんは、遙か太平洋の向こう、アメリカ東海岸に位置するデータセンターにいらっしゃる。無論、私の手は届かない。これまで何度も夢見た「リモート・フロッピー挿入装置」も、この世にはまだ登場していない。

では、どうするか?一応、ネット上も調べてみたが、このような世迷い言を実行に移した人間を見つけることは出来なかった。世の中というのは、思いの外、常識人ばかりのようである。で、色々下調べを続けた結果、OpenBSD のインストーラーであれば、必ずや夢は実現できると確信。

OpenBSD のブートローダーに手を加えては、リモートリブートを繰り返すこと、幾たびか・・。数え切れないほどの失敗の後、遂に東海岸で OpenBSD が産声を上げたときの感動をオジサンは忘れない。久しぶりに、背筋がゾクゾクする感覚を味わった。

インストール途中、Debian server が接続不能になった事を察知した向こうの管理者から、すかさず「何か困ったことはないか?」とメール連絡があった。「実はリモート作業で OpenBSD をインストールしているため、しばらくサーバーは不通の状態が続く模様」と答えたものの、続く返事はなかった。恐らく、東海岸のサーバー管理室では「Japan の与太郎が訳の分からんことやっとるぞ。アホちゃうか!」位に思われていたのだろう(私が向こうの立場であれば、そう考える)。

で、目出度く OpenBSD current が Dual Xeon 上で起動した後に「作業は無事完了」とのメールを送ったところ、今度はすかさず以下のような返信が到着。

Wataru,

I must say I'm quite impressed!
If you have some time, I'd love to know how you managed to do that.
Glad it worked out for you.

短いメールではあるが、太平洋を越えて届いた祝福に感謝。今回、私が行った作業の「意味」を彼は十二分に理解してくれたらしい。このような「共感」は、何者にも代え難いものだ。

さて、今回の「変態技」を実現するために必要となる知識は以下のようなものである。

  • PC-BIOS におけるブートドライブの取り扱い
  • MS-DOS パーティションにおける MBR と PBR の違い
  • BSD スライスおよびパーティションの構造
  • OpenBSD ブートローダー(biosboot / boot) の内部構造

しかしながら、残念なことに、これらについて明快に記載した文書は、私が知る限り存在しない(だから苦労するのだが)。例えば、インストールの際には必ず登場する「基本パーティション・拡張パーティション」というお馴染みの言葉。このふたつの用語は、インストール解説書中で当たり前のように使われているが、実は両者を正確に定義した文書というものは見あたらない。誰もが曖昧なままに、パーティションにまつわる言葉を使っているのである。

ということで、いつの日か、今回の経験を元にした「パーティション・シリーズ」を執筆できればと思う。ちなみに現在は、Debian を BSD slice 上にインストールする変態フロッピーディスクを作成中。最新版である Debian unstable のブート・ルートフロッピーイメージの内部構造も、なかなか奥深く、面白い。