今回は1994年の1月にリリースされたばかりの
なぜ今、Debian 0.91なのか?
先日発売された
Linuxディストリビューションの歴史は、
さてDebianの公式サイトからたどれる、
Debian小史にもあるように、
Debian 0.91のインストール方法
Debian 0.
次の手順でインストールします。
- QEMUをインストールする
- HDD用のQEMUイメージを作成する
- Debian 0.
91をダウンロードする - フロッピーディスクイメージを作成する
- フロッピーディスクイメージから起動する
ちなみにQEMUでエミュレーションしますので、
QEMUのインストールからインストーラーの準備まで
まずはQEMUをインストールし、
$ sudo apt install qemu qemu-kvm $ qemu-img create fd0.raw 1228800 $ qemu-img create -f qcow2 hda.qcow2 200M
ディスクは最低でも10MiB程度あれば十分です。ここでは200MiBにしています。ちなみに、
次にOldLinuxからインストールイメージをダウンロードします。
$ wget http://www.oldlinux.org/Linux.old/distributions/debian/debian-0.91.tar $ tar xvf debian-0.91.tar $ cp debian/debian-0.91/dist/base/*.gz . $ gunzip *.gz $ ls basedsk1 basedsk2 bootdisk debian debian-0.91.tar fd0.raw hda.qcow2
bootdiskがインストーラーです。basedsk1やbasedsk2はベースシステムそのものがパッケージとなっています。いずれもフロッピーディスク用のイメージなのでサイズは1.
インストーラーの実行
インストールに必要なものはすべて用意できたので、
$ qemu-system-i386 -enable-kvm -m 32M \ -drive file=bootdisk,index=0,if=floppy,format=raw -hda hda.qcow2 -boot a
「-enable-kvm」

ブートローダーであるLILOが起動し、

それほど時間がかからずにDebian 0.
# dinstall

当時のDebianインストーラーは、
- 1. Run fdisk to partition your hard disk(s)
- パーティションの設定を行います。といってもfdiskが起動するだけなので、
どう設定するかはユーザー任せです。 - 2. Initialize and activate your swap partition(s)
- スワップパーティションのデバイス名を指定します。
- 3. Format your Linux native partition(s) with mke2fs
- ルートファイルシステムをインストールするパーティションのデバイス名を指定します。
- 4. View partition table
- 設定したパーティション情報を表示します。
- 5. Install the Debian Linux base syste
- Debianをインストールします。
- 6. Reboot your system
- 再起動します。
- 7. Return to the shell
- インストーラーを起動する前のシェルに戻ります。
ディスクが空の状態なので、

fdiskが起動します。それだけです。説明も何もないので、
(ルートファイルシステム用のシステムパーティション作成) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-406): 2 Last cylinder or +size or +sizeM or +sizeK (344-406): +168M (シリンダ番号の先頭は偶数である必要があります) (スワップ用のパーティション作成) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (1-406): 344 Last cylinder or +size or +sizeM or +sizeK (344-406): 406 (344はルートファイルシステムの後ろのシリンダ番号です。"p"コマンドで確認してください) (スワップパーティションのシステムIDをスワップに変更します) Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 (設定後のパーティションテーブルを表示します) Command (m for help): p Disk /dev/hda: 16 heads, 63 sectors, 406 cylinders Units = cylinders of 1008 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 2 2 343 172368 83 Linux native /dev/hda2 344 344 406 31752 82 Linux swap (パーティションテーブルを実際に書き込み、fdiskを終了します) Command (m for help): w
最後に再起動するかどうか問われるのでyと答えてください。再びブートローダーからシステムを起動し、
次は2のスワップパーティションを選択します。パーティション名を問われるので、

さらに3のシステムパーティションのフォーマットを行います。今度は

4でパーティションテーブルを確認できます。といっても上記のfdiskで表示したそれと同じです。ここまできてようやくDebianシステムのインストールに入れます。5を選択するとまず、

「m」
Mount which filesystem (ex: /dev/hda3)? /dev/hda1 Mount /dev/hda1 on which directory (ex: /usr)? /root/
正しくマウントできたら

次に行うのがベースシステムパッケージが保存されているフロッピーディスクの指定です。そこで
まずQEMU上で

このQEMUモニター上でコマンドを実行することで、
(qemu) info block (ブロックデバイスが表示される) (qemu) eject floppy0 (qemu) change floppy0 basedsk1 (qemu) info block (floppy0のファイル名が変わる)
上記操作により、

インストールが完了したら同じ手順で今度はbasedsk2へと切り替えた上で、

ホスト名とドメイン名を適当に入力します。次のネットワークの設定は今回はスキップします。

モデムも設定しないので
最後にカスタムブートディスクを作成するか問い合わせてきます。今回はフロッピーブートとするためにyと答えておいてください。QEMUモニターで今度はfd0.

すべてが終わったら7でシェルに戻った上で、
Debian 0.91を起動する
次に、
$ qemu-system-i386 -enable-kvm -m 32M \ -drive file=fd0.raw,index=0,if=floppy,format=raw -hda hda.qcow2 -boot a

最初はrootアカウントのみ存在します。また、
Debian 0.91の中身
Debian 0.
[root:~]# uname -a Linux aoba.eaglejump.co.jp 0.99.14w #1 Fri Jan 28 21:45:47 EST 1994 i586
ちなみにdmesgもすごくシンプルです。
Console: colour EGA+ 80x25, 8 virtual consoles Serial driver version 3.99a with no serial options enabled tty00 at 0x03f8 (irq = 4) is a 16550A lp_init: lp1 exists (0), using polling driver Probing 82C710 mouse port device. PS/2 auxiliary pointing device detected -- driver installed. tpqic02: IRQ 5, DMA 1, IO 300h, IFC Wangtek, $Revision: 0.2.1.21 $, $Date: 1993/ 06/18 19:04:33 $ tpqic02: DMA buffers: 20 blocks, at address 0x1bfc00 (0x1bfab4) tpqic02: reset failed! ftape: allocated 3 buffers alligned at: 001E8000 Calibrating delay loop.. failed aha152x: Probing: BIOS test: failed scsi : 0 hosts. scsi : detected 0 SCSI disks 0 tapes 0 CD-ROM drives total. Memory: 31212k/32640k available (676k kernel code, 384k reserved, 368k data) This processor honours the WP bit even when in supervisor mode. Good. Floppy drive(s): fd0 is 1.2M floppy: FDC version 0x90 Swansea University Computer Society Net2Debugged [1.27] IP Protocols: ICMP, UDP, TCP SLIP: version 0.7.5 (4 channels) CSLIP: code copyright 1989 Regents of the University of California dl0: D-Link DE-600 pocket adapter: not at I/O 0x378. Checking 386/387 coupling... Ok, fpu using exception 16 error reporting. Linux version 0.99.14w ([email protected]) #1 Fri Jan 28 21:45:47 EST 1994 Partition check: hda: hda1 hda2 EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended VFS: Mounted root (ext2 filesystem) readonly. Adding Swap: 31748k swap-space
パッケージデータは/var/
[root:~]# ls /var/adm/dpkg/list/ base1.list base2.list [root:~]# dpkg -v base1 0.91 BETA
このようにベースシステムは2つの大きなパッケージとしてインストールされているようです。ちなみにbase1が設定ファイルやデバイスファイルなど、
当時のdpkgコマンドはただのシェルスクリプトです
[root:~]# more /sbin/dpkg #! /bin/sh # # dpkg (Debian pkg) - Debian Linux package maintenance utility (distributed # with Debian Linux 0.91 BETA! # # Copyright (C) 1994 Ian A. Murdock <[email protected]> # # (Inspired by StopALOP by Dr. Greg Wettstein.) # (後略)
パッケージのインストール
aptと異なりdpkgコマンドはリポジトリという概念を持っていません。もし何かをインストールしたい場合は、
ダウンロードしたdebian-0.
$ qemu-img create repo.raw 40M
この空のイメージを使って、
$ qemu-system-i386 -enable-kvm -m 32M -drive file=fd0.raw,index=0,if=floppy,format=raw -hda hda.qcow2 -drive file=repo.raw,index=1,media=disk,format=raw -boot a
仮想マシン上では
[root:~]# fdisk Disk /dev/hda: 16 heads, 63 sectors, 81 cylinders Units = cylinders of 1008 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hdb1 2 2 81 40320 83 Linux native [root:~]# mke2fs /dev/sdb
一度シャットダウンしてください。ホスト上で、
$ parted repo.raw unit B print o警告: 管理者権限がありません。パーミッションに注意してください。 モデル: (file) ディスク /home/shibata/ダウンロード/debian/repo.raw: 41945088B セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos ディスクフラグ: 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 516096B 41803775B 41287680B primary ext2
ここで最初のパーティションの開始位置は
$ sudo mount -t ext2 -o loop,offset=516096 repo.raw /mnt $ sudo cp -a debian/debian-0.91/dist/packages/* /mnt/ $ sudo umount /mnt
再度仮想マシンを起動してください。
dpkgコマンドの書式は、
パッケージの追加 dpkg -a パッケージ名 デバイス名 ファイルシステムタイプ ディレクトリ パッケージの削除 dpkg -r パッケージ名
「デバイス名」
[root:~]# dpkg -a bc /dev/hdb1 ext2 util/ Package: bc Category: util Name: GNU bc Version: 1.02 Description: An arbitrary precision calculator language Approximate uncompressed size: 78848 bytes. Installing `bc'...done. Fixing the permissions of `bc'...done. Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda1 172368 20861 142889 13% / Installation of `bc' (version 1.02) complete. [root:~]# bc bc 1.02 (Mar 3, 92) Copyright (C) 1991, 1992 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'.
何もオプションを指定せずに起動すると、
[root:~]# dpkg -p /dev/hdb1 ext2 emacs/
最後の引数は、

まとめ
今回はいつもと趣向を変えて、
今回のイメージはパッケージリポジトリとのセットなので、
ちょっとした息抜きの一例として、