初代玄箱 (Not HG, Not PRO) への Debian 化キット導入メモ

まえおき

当該ウェブページでは、先ず「初期化」直後のクリーンな玄箱環境を使って既存の Debian 化キット内パッケージ (3.0 woody) を最新版 (4.0 etch) へとアップデートし、新たな Debian 化キットを一旦生成した上で実環境へと適用する手順を以下に掲載しています。

尚、作りの雑さ・記述の不正確さ・書き手の語彙力の無さに付きましては、何卒御容赦下さいます様、お願い申し上げます。

要件

<!-- ここから余談 -->

貴方が何の為に Debian 化した玄箱を欲しているかにも依るのですが、私の場合は当初から現在に至るまで "Apache を使う事" という目的に徹しています。玄箱自体のハードウェア性能に余地が無い為に、まぁそうせざるを得ないと云う事も主な要因で或るものの、その一方では「限定的な利用」を行う上での躊躇いを感じさせない、とでも云うべきか、心置きなくその 1 台を自宅サーバ用途として使い潰す事が出来ると云うか。実際には同じ物を 2 台持っていて、Apache の入れ替えの度、亦たは電源やら排気ファンやらの不調時などに、もう片方と入れ替え乍ら運用してたりしますけど。

光学ドライブにメディアを突っ込んで OS を入れる手間無く、自力でパッケージ群を make する待ち時間無く、したい事だけを出来る。それは私にとって、特に Pen III-S 1.4 GHz を積んだ普通の PC にて、現在とほぼ同じ事をやっていた数年前までの私にとって、最高の環境だと呼べましょう。

一方、貴方にとっては、如何なものと成りましょうか。

先述の通り、単にファイル倉庫を求めるので有れば、玄箱は元々はネットワークストレージとして誂えてありますので、手を加える事無く利用すれば良い事。学習用として理解を深めようにも、不可解な仕様が仇と成り、迂回的な手段に依って本来の目的が歪められてしまうかも知れない。奇妙な朱に交わる位なら、ハナっから Live CD 辺りから頼るなり、フリーの仮想化 PC 環境ソフトウェア内にて好き放題されてはどうでしょう。

私としては、中途半端に外部ネットワークとファイル送受信をする方法などばかりを憶えて、いざクラッキングされた、秘匿を要する情報が WAN に対して丸裸に成ってしまった、などに付いての想像力が追いついていないかの様な認識が蔓延する事が無いように、ただ願うばかりでは有ります。オールインワン嗜好、何でもそれ 1 つで賄おうとしてしまうのは、一方では個々を正しく理解する誠実さを持たない短絡思考の顕れでは無いのでしょうか。

とまぁ、無駄な位長い前置きは最早これまでとしまして、どういうことかと申しますと、つまり、外部からの接続を受け入れる前提の環境では、クラッキングされて困る様な状態にしない・見られて困る様な物は一切置くなと云う事です。無論、玄箱に限っての事では有りません。だからこそ <!-- 余計に腹が立つんじゃありゃ (中略) 夢の END は (中略) --> 後から他人事かの様に「つこうた」だの言える連中が、私は気に食わない。

(‥遅い昼飯を喰うつもりが、晩飯の時間に至るまで何書いてるんだよ俺)
(って、そんなこと知らんがな、俺俺)

<!-- ここまで余談 -->

用意する物

Telnet ログイン用クライアントツール

hdk の自作ソフトの紹介 | PuTTYjp (http://hp.vector.co.jp/authors/VA024651/PuTTYkj.html) より、ダウンロード項目に設置されたリンク先の zip ファイルをダウンロードさせて頂き、適当なフォルダに展開して下さい。使用時には、展開フォルダ内 puttyjp.exe をダブルクリックで。

FTP ログイン用クライアントツール

Sota's Product : FFFTP (http://www2.biglobe.ne.jp/~sota/ffftp.html) より、インストーラ無し版 FFFTP をダウンロードさせて頂き、適当なフォルダに展開して使用するという方法が一番手軽かつ OS を汚さずに済むかと思います。その辺はお好みで。

初代の無印玄箱

今回は HG でも PRO でも無い、初代の玄箱に限った説明をさせて頂きます。未だ私は HG や PRO を所有しておりませんが故。

LAN ケーブル

どんな品質のどんなタイプのものでも、結果的に玄箱と接続出来れば良いので、取り敢えず 1 本用意して下さい。

ファームウェアアップデート Ver1.02 (kuro_102.zip)

玄人志向 [PRODUCTS] (http://kuroutoshikou.com/products/kuro-box/kuro-boxfset.html) ウェブページ内「ファームウェアアップデート」項目に設置されたリンク先の同名ファイルをダウンロードして下さい。

Debian 化キット (debian_2006_06_10_dist.tgz)

配布元である、玄箱うぉううぉう♪ (http://kuro.dsk.jp/) さんのウェブサイトよりダウンロードさせていただき、直ぐに開く事の出来そうな適当なフォルダにでも移しておいて下さい。

Windows OS が動作する PC

購入した玄箱に添付されている説明書の記載通り、玄箱の初期化を行うアプリケーションの動作させる為に使用します。

市販のブロードバンドルータ

今回は便宜上、DHCP に依って完結するネットワーク設定を紹介致しますが故、難解な予備知識が無くとも誰でも扱える「市販のもの」とさせて頂きます。今時、サイバーノーガード戦法を地で行く様な方々で無ければ、ルータの 1 つ位、当然の如く所持頂きたい所では有りますが。

手順

先ずは普通に初期セットアップと下準備

先ずは、ブロードバンドルータと LAN ケーブルで繋いだ玄箱の電源を入れます。この時、今回の作業に使う PC は当然同じ LAN 環境に接続されている必要が有ります。

kuro_102.zip を、どこでも良いから適当なフォルダに解凍・展開。そして、KuroBoxUpdate.exe をダブルクリックして起動させます。

KuroBoxUpdate.exe 起動時ウィンドウ

アップデート前に、先ずは表示された IP アドレスに対して Telnet ログインが可能か確認。PuTTY の場合でしたら、ホスト名には KuroBoxUpdate.exe の実行中ウィンドウ内に表示された IP アドレス、接続タイプを選択するラジオボタンを "Telnet" に合わせた後に [ 開く(O) ] ボタンを押して下さい。

PuTTY 起動時ウィンドウ

KURO-BOX-EM login: root
Password: kuro (実際には非表示)

ログイン後、念の為にネットワーク設定を確認。ifconfig eth0 コマンドの値、/etc/resolv.conf に書かれている値を、それぞれ必要ならば紙にでもしっかりとメモっておいて下さい。貴方の家のネットワーク設定なんぞ私が知る訳が有りません。

# ifconfig eth0
# cat /etc/resolv.conf
# exit

玄箱に Telnet 接続中

Telnet ログイン状態からログアウトし、KuroBoxUpdate.exe の実行中ウィンドウ内の [アップデート開始] ボタンを押し、玄箱のアップデートを完了させて下さい。

玄箱のアップデートが完了

玄箱の再起動が済んだら、今度は FTP クライアントツールで玄箱に FTP ログインし、debian_2006_06_10_dist.tgz を /root ディレクトリに転送して下さい。転送が完了した時点で FTP ログイン状態からログアウト。

FFFTP の場合は、[接続 (F)] タブの [クイック接続 (Q)] を選択し、ポップアップする "接続先" ウィンドウ内項目のホスト名 (アドレス) または URL (H) には KuroBoxUpdate.exe の実行中ウィンドウ内に表示された IP アドレス (例: 192.168.11.150) を、ユーザ名 (U) に "root" を、パスワード / パスフレーズ (P) に "kuro" を、それぞれ埋めてから [ OK ] ボタンを押して下さい。

玄箱に FFFTP を使って接続

FTP ログイン後、現在のディレクトリが "/root" である事を確認し、この /root ディレクトリに debian_2006_06_10_dist.tgz を転送します。

Debian 化キットの転送中

Debian 化キット自体のアップデート

玄箱に対して再び Telnet ログイン。先ずは玄箱の内蔵時計の時刻が合っているかを確認。買って初めて通電させる場合や、長期間に渡って放置していた場合など、時刻のズレが酷い様ならば大体の現在時刻に設定。

引数無しで実行された date コマンドは、内蔵時計の現在時刻を返します。一方、date コマンドに対し、定められたフォーマットに沿って時刻を指定する事で内蔵時計の時刻修正を行えます。

root@KURO-BOX:~# date MMDDHHIIYYYY
MM = 2 桁の月
DD = 2 桁の日
HH = 2 桁の時
II = 2 桁の分
YYYY = 4 桁の西暦

Debian 化キットを展開する為の作業用ディレクトリを /mnt に作成。

root@KURO-BOX:~# mkdir /mnt/chroot

作成した /mnt/chroot ディレクトリに、Debian 化キットを展開。

root@KURO-BOX:~# tar zxvf /root/debian_2006_06_10_dist.tgz -C /mnt/chroot

ここまでの手順

展開された Debian 化キットの中身から chroot コマンド用バイナリを /root ディレクトリにコピー。

root@KURO-BOX:~# cp /mnt/chroot/usr/sbin/chroot /root

コピーした chroot バイナリを使って、/mnt/chroot ディレクトリ配下の Debian 化環境に chroot (仮想ログインとでも表現すべき ?) する。

root@KURO-BOX:~# /root/chroot /mnt/chroot

chroot 環境から抜けたいときは、その場で exit。chroot 環境に戻る際は、再び /root/chroot /mnt/chroot で。

ネットワーク設定関連ファイルを、先にメモっておいたかも知れない内容をアテに適切に書き換え。

vi エディタに慣れていない方は、nano エディタを使うと楽かもしれない。Ctrl + O キーでファイル保存確認、名前の変更を聞かれてもそのまま Enter キーで保存。Ctrl + X キーで nano エディタの終了。

/etc/hosts.allow の修正。

KURO-BOX:/# nano /etc/hosts.allow

ALL : 192.168.0.0/255.255.0.0
ALL : 127.0.0.1

nano を使って/etc/hosts.allow を修正

/etc/resolv.conf の修正。

KURO-BOX:/# nano /etc/resolv.conf

nameserver あなたの普段使っている DNS サーバ の IP アドレス

/etc/resolv.conf を修正

/etc/network/interfaces の修正。以下の例では、玄箱のネットワーク設定 (eth0) を DHCP に依存し、且つ 192.168.11.150 という IP アドレスを eth0 のエイリアス (eth0:0) として設定しています。もし、何らかの理由で DHCP が有効なネットワークから玄箱へアクセス出来なくなってしまっても、PC と玄箱を直接繋いで 192.168.11.150 という IP アドレスでアクセスする事が可能です。

KURO-BOX:/# cd /etc/network
KURO-BOX:/etc/network# mv interfaces interfaces.backup
KURO-BOX:/etc/network# nano interfaces

iface lo inet loopback
iface eth0 inet dhcp

iface eth0:0 inet static
address 192.168.11.150
netmask 255.255.255.0

auto lo eth0 eth0:0

/etc/network/interfaces を修正

Debian アップデート用コマンド apt-get 接続先設定ファイル sources.list を書き換え。元ある sources.list は、取り敢えず別名でバックアップしておきましょうか。

KURO-BOX:/etc/network# cd /etc/apt
KURO-BOX:/etc/apt# mv sources.list sources.list.backup
KURO-BOX:/etc/apt# nano sources.list

deb http://security.debian.org sarge/updates main contrib
deb ftp://ftp.dti.ad.jp/pub/Linux/debian sarge main contrib
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian sarge main contrib

ここまでの手順

先に、Debian 化キットのデフォルトである Debian 3.0 (woody) から Debian 3.1 (sarge) へのアップデート。3.0 から現在の最新版である 4.0 (etch) へのアップデートは出来ないんだとか、どうとか。

とりあえず、DTI を指定

KURO-BOX:/etc/apt# apt-get update
KURO-BOX:/etc/apt# apt-get upgrade

或る意味、最初の山場かも

もし、いつまで経ってもコマンドの進捗状況が見受けられないとかいう状況に遭ってしまったら、その時は chroot 前の状態の玄箱から外部ネットワークへアクセス可能か、及び chroot 後の環境で DNS による名前解決が出来ているかどうかを、ping コマンドなりを活用して確認して下さい。実行中コマンドを強制中断する場合は Ctrl + C キーで。

依存関係などが山盛り

アップデートするパッケージに依っては、その処理方法の如何に付いて一々質問される度にいずれかの回答をせねば成りませんが、基本的に元々カーソルが当たっている項目のまま Enter キーを押せば、特に問題無い筈ですし、亦た、[Y/n] や [y/N] という聞かれ方の場合には、それぞれ大文字に成っている方の選択肢がデフォルト(Y = Yes, N = No) ですので、意図的に変更する必要が無ければ、やはりそのまま Enter キーを押す動作だけを行って下さい。

Adduser

KURO-BOX:/etc/apt# apt-get dist-upgrade

y 入力か、そのまま Enter キー

Configuring Debconf

Debconf (1/2)

Debconf (2/2)

ProFTPd configuration (1/2)

ProFTPd (1/2)

FTP デーモンである ProFTPd の起動状態に付いての質問です。もし、特別な理由が有って単独起動 (standalone) させるので無ければ、ここでの選択肢は "inetd" にする事をお奨めします。

ProFTPd (2/2)

Do you want to upgrade glibc now? [Y/n]

逆らわない

Do you wish to restart services? [Y/n]

常駐起動中 (である筈) のデーモン達を、その場で再起動させるか否かに付いての質問ですが、これには "n" を入力して Enter キー。

chroot 中ですやn

*** halt (Y/I/N/O/D/Z) [default=N] ?

このファイルを更新してしまうと、玄箱本体の電源キーを押してもシャットダウン出来なく成ったりしますので、デフォルトの "N" のまま Enter キー。以下、[default=N] の質問には原則的に N 亦たはそのまま Enter キーで。

元ファイルは別名でバックアップされるんですがね

*** securetty (Y/I/N/O/D/Z) [default=N] ?

nanikore

May I update your system? [Y/n]

そのまま

exim 3.x and 4.x

メーラデーモン exim の設定に付いての質問ですが、使う気も無い上に設定方法なんか知らないので、5 を入力し、ここでの設定作業をスキップ。

私は exim 使わない。貴方は ?

*** aliases (Y/I/N/O/D/Z) [default=N] ?

aliases

Configuring man-db

setuid しない

ProFTPd configuration (2/2)

proftpd.conf の上書き

余談

"at" というパッケージを削除しないまま etch へバージョンアップすると、ググっても全然引っ掛からないようなエラーが出るようになります。つーか、atdinvoke-rc.d なんてものがドコに有るのかと。

at イラネ

よって、特別な理由で at (atd) を使う必要が無いならば、一連のアップデート手順を行う前に予め at パッケージを削除しておくのが良いかも知れない。いや、責任は持てませんけど。

引き続いて Debian 3.1 (sarge) から Debian 4.0 (etch) へのアップデート。/etc/sources.list 内の sarge という文字列を、そのまま etch に書き換えてください。

KURO-BOX:/etc/apt# nano sources.list

deb http://security.debian.org etch/updates main contrib
deb ftp://ftp.dti.ad.jp/pub/Linux/debian etch main contrib
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian etch main contrib

再び書き換え。stable 指定にはしない

後は、先述と同じように update, upgrede, dist-upgrade の順で apt-get を実行。された覚えの有る質問には、前回と同じ答えを返してあげて下さい。

KURO-BOX:/etc/apt# apt-get update
KURO-BOX:/etc/apt# apt-get upgrade
KURO-BOX:/etc/apt# apt-get dist-upgrade

先程の通り

そのまま Enter キー

もし、先述の理由で at パッケージを削除するなら apt-get remove at という風にコマンドを実行して下さい。また、パッケージを消しても残っている起動スクリプトも削除する為に、併せて update-rc.d -f atd remove というコマンドも実行する様にして下さい。

KURO-BOX:/etc/apt# apt-get remove at
KURO-BOX:/etc/apt# update-rc.d -f atd remove

要らない起動スクリプトの削除

やっぱり山盛り

これも確か弄るとややこしかった、かな

ここまで終わったら、アップデートの際に生成された一時ファイル等を削除。消しておかないと、新しい Debian 化キットとして丸めたファイルのサイズが大きくなり過ぎますので。

KURO-BOX:/etc/apt# apt-get clean
KURO-BOX:/etc/apt# rm -rf /var/log/*

chroot 環境からログアウト。

KURO-BOX:/etc/apt# exit

chroot 環境に作成された Debian 4.0 (etch) ファイル群を、新しい Debian 化キットとして /root に保存する。

root@KURO-BOX:~# cd /mnt/chroot
root@KURO-BOX:/mnt/chroot# tar zcvf ~/(新しい Debian 化キットに付ける名前).tgz *

永久 ? 保存版

出来上がった新しい Debian 化キットは、間違えて消したりしない様に FTP クライアントツールでダウンロードしておくなりして大事に保存しておいて下さい。無くしたら勿体無いし。

出来れば hash 値チェック等も並行して

Debian 化キットの適用

今度は chroot ディレクトリにでは無く、実環境にブチ撒けるだけ。

root@KURO-BOX:/mnt/chroot# cd /
root@KURO-BOX:/# tar zxvf /root/(新しい Debian 化キットに付けた名前).tgz

EM モードとか気にした憶えが無い

Debian 化の成功を祈りつつ、玄箱を再起動させて下さい。

Waku-Teka

今度は、Debian 化キットのデフォルトユーザ名 "tmp-kun" と、そのパスワード "tmp-kun" でログインする必要が有ります。Debian GNU/Linux に続く 4.0 という文字列が、etch への確かなバージョンアップを示しています。

Debian GNU/Linux 4.0
KURO-BOX login: tmp-kun
Password: tmp-kun (実際には非表示)

計画通り

玄箱の Debian 化手順自体は、ここまでで終了です。取り敢えず、お疲れ様でした。後は、Debian 関連の書籍やら Debian にまつわるキーワードでググった先のウェブサイトをアテに勉強して下さい。

おまけ

以下のコマンド一発で、大抵の野良ビルド用バイナリ群をインストール出来る様です。足りないものは、パッケージ名を個別に指定。しかし、同じ事を aptitude ではどの様に行えば良いのかは現時点では知りません。

# apt-get build-dep emacs21
# apt-get install bison flex autoconf m4 libxml2 (← 足りないもの。Apache, PHP 関連)

あとがき

書き直す、書き直す、と云いながら幾期間も放ったらかしにしてしまい、申し訳ございません。いっその事、元から無かった事にでもしてしまおうか、とも思っていた当該ウェブページですが、今さら需要が有るかに付いても甚だ疑問乍ら、私なりのケジメとして書き直させていただきました。

その他、今回の Debian 化 + カーネルを別途入れ替えた玄箱で稼動させている自作の検索エンジン等に触れつつ話題を広げたい所ですが、それは亦た別の機会にでも、、出来る余地が有るのだろうか。タダでさえ集中力の無き自分をして。。

(2008-01-14 追記) 本文とは全く関係の無い箇所ばかりを細々と修正。今後のアレやコレやに付きましては、一先ず未定とさせて頂きます。

WAPRES.ORG :: Bentoubako http://www2.wapres.org/