9 Inside Debian-Installer

武藤健志      
___________________________________________________________________________________________________________________________

9.1 Debian-Installer とは

Debian-Installer (以下 d-i) は、 Debian GNU/Linux リリース 3.1、 コードネーム Sarge から採用された 新 し い イ ン ス ト ー ラ シ ス テ ム で す 。

これまでのインストーラシステム(Woody 以前) として採用されていた Boot-Floppies には、 次のような 問 題 が あ り ま し た 。




2000 夏ごろ

Joey Hess がデザインを始める



2000 秋ごろ

サンプル実装が公開される



2002

Woody Boot-Floppies に基づいてリリース。 Sarge d-i になる よう本格的に目標が立てられる



2003

開発がかなり進展。 開発者も増える



2004

d-i rc2 リリース



2005

d-i rc3 リリース



2005

Sarge リリース




2: d-i の簡単な歴史

9.2 開発体制

d-i の開発は、 ほかのどの Debian のサブプロジェクトよりも大規模です。




プロジェクトリーダ

Joey Hess



国際化

Christian PerrierDennis Stampfer



フロントエンド

Collin Watson



パーティションマネージャ

Anton Zinobiev



ネットワーク設定

Joshua Kwan



ハードウェア認識

Petter Reinholdtsen



移植

Martin MichlmayrSteve Langaek、 …



ドキュメント

Frans Pop




3: 主な開発者

当初は CVS、 現在は Subversion にて協業を行っています。


d-i/  
    installer/build/ ――d-iのビルドディ レクトリ (make ...を実行するとd-iイメージができる)  
    installer/doc/   ――ドキュ メント。 manual/にXML形式のインストールマニュ アルが収録されている  
    packages/        ――各udebのソースコード  
    scripts/         ――自動化などに使うスクリプト集


1: d-i リポジトリの構造


9.3 d-i の構造

d-i は、 これまでに蓄積されてきたさまざまな Linux/Debian のフレームワークを応用してい ます。

udeb
通常の deb から実行に不必要なものを削除してスリムにしたもの
cdebconf
C で記述された debconf フレームワーク (いくらか拡張)
devfs
ハードディスクなどのデバイスファイルの取り扱いを容易にする
フレームバッファと国際化端末
国際化端末を実行する (bogl-term および jfbterm)
discover hotplug
ハードウェアの自動認識
9.3.1 udeb

udeb は、 通常の deb とほぼ同じですが、 ドキュメントなどの実行に直接関係ないものを削ぎ落としたバ イナリパッケージです。




anna

擬似 APT



udpkg

マイクロ dpkg



languagechoosercountrychooser

言語・国情報の設定



hw-detectethdetecthw-detect-full

ハードウェアの検出



preseed

事前構成のロード



netcfg

ネットワーク設定



network-console

SSH サーバーを起動してリモートインストール を実行する



cdrom-retrieverfloppy-retrievernet-retriever

udeb パッケージをダウンロードする



partman

パーティションマネージャ



base-installer

ベースシステムを debootsrap で展開し、 CPU に合ったカーネルをインストールする



os-prober

インストールされているほかの OS の検出



prebaseconfig

CD の取り出し、 現在の状態の保存など




4: 主な udeb

リポジトリの packages/だけでなく、 libc discoverconsole-tools のように、 外部の deb パッケージ udeb を提供することもあります。

d-i udeb の集合体で、 最初にロードされるインストーラも udeb を基に構成されています。 d-i make 時にどの udeb から構成しておくかによって、 CD 向け、 ネットワーク向け、 USB メモリ向けといっ たイメージを作成できます。

9.3.2 cdebconf

cdebconf は、 Perl で記述されていた debconf を、 C で実装し直したものです。

今後は普通の環境も、 debconf は捨てて (orphan 済み)cdebconf に移行しようという計画になってい ます。

d-i では cdebconf が大きな役割を果たしています。

9.3.3 devfs

Linux カーネル 2.4 で導入された devfs では、 「動的に」 「利用可能な」 デバイスファイルが作成され るので、 ハードディスクのパーティションやフレームバッファの存在を検出するのに便利 です。

ただ、 devfs はもう obsolete なので、 今後は udev に書き換えていくことになるでしょう。

9.3.4 フレームバッファと国際化端末

Linux のデフォルトの端末画面はラテン文字しか表示できないので、 国際化されたインス トーラを実行するためにはフレームバッファドライバをロードしたあと、 その上で国際化端 末を実行する、 という手順が必要になります。 x86 の場合フレームバッファドライバは、 vesafb vga16fb と試行しています。 d-i の国際化端末としては、 次の 2 つを採用してい ます。

9.3.5 discover hotplug

最初のハードウェア認識には discover が使われます。 再起動後、 標準で使われるのは hotplug です。

9.4 今後の d-i

Etch に向けての TODO はいろいろあります。

東 京 エ リ ア Debian 勉強会 2005 _________________________________________________________

PIC