Installing Linux on Zip disk using ppa Zip Drive Mini-Howto John Wiggins, jwiggins@comp.uark.edu v0.7, 26 January 1998 伊佐冶 哲, isaji@mxu.meshnet.or.jp Fri Feb 27 23:30:53 1998 このドキュメントは、Zipドライブのプリンタポートバージョンを使 い、ZipディスクでポータブルLinuxシステムやLinuxシステムのバックアップ をしたいという人にとって便利です。 ______________________________________________________________________ 目次 1. 免責事項 2. イントロダクション 2.1 What's new 2.2 この文書のルール 2.3 アップデート 2.4 リファレンス 2.4.1 謝辞/貢献 3. Zipディスクの設定 3.1 Zip ディスクのパーティション 3.2 Zipディスクのフォーマットとマウント 3.3 ブートディスクの作成 3.3.1 カーネルの設定と作成 3.3.2 フロッピーにカーネルを納める 3.3.2.1 LILOインストール 3.3.2.1.1 ext2ファイルシステムの作成 3.3.2.1.2 基本的なファイルのコピー 3.3.2.2 カーネルのみのインストール 3.3.2.2.1 フロッピーにルートとスワップを設定する 4. Red Hat 4.2 インストール 4.1 著者の環境 4.2 パッケージインストール 4.2.1 パッケージの入手 4.2.1.1 アップデート:誤り 4.2.2 glintを使わず、rpmを使ってどのようにパッケージをインストールするか: 4.2.3 pamconfigあるいはpamどちらが先か? 4.3 パッケージのインストール後の問題 4.3.1 /etc/ld.so.cacheとlibc.so.5がないケース 4.3.1.1 /etc/ld.so.cache 4.3.1.2 libc.so.5 4.3.2 rootパスワードの設定 4.3.3 インストールプログラムが作るもの 4.3.4 ネットワーク設定 5. Slackware 2.2インストール 5.1 必要なもの 5.2 インストール 5.3 インストールについて 6. /etc/fstabを作る 7. Debian 1.2インストール 7.1 必要なもの 7.2 あらまし 7.3 レスキューディスクの作成と修正 7.3.1 新しいレスキューディスクを作るためにdd(あるいはDOSでRAWRITE)を使う 7.3.2 Zip ppa サポートの新しいカーネルを構築する 7.3.3 新しいレスキューディスクのマウント 7.3.4 カーネルイメージのコピー 7.3.5 rdev.shスクリプトの編集 7.3.6 修正したrdev.shスクリプトを実行 7.4 Zipドライブに基本システムをインストールする 7.5 ブートディスクの作成 7.6 システムの再起動 7.7 基本システムの設定、インストールプロセスの完成 7.8 step 7.3.2で作ったモジュールのインストール 8. 補足 ______________________________________________________________________ 1. 免責事項 注意:Zipドライブにはパラレルポート、SCSI、IDEタイプのものがあります。 著者はIDEタイプのZipドライブを持っていないので、IDEタイプのものがパラ レルポート(printer port)のものと同じように動作するか確認していません。 IDEタイプのZipドライブについてはこれ以上コメントしません。 debianインストールの箇所は基本的に、手を加えずにコピーされたものか一部 編集したものです。そのため作業に重複があるかもしれません。 このドキュメントでは以下のことを想定しています: o プリンタポートZipドライブを持っている(Zip Plusはパラレル、SCSI両方 のコネクタを持ったものがあるので、これも同じように動作するものとし ます)。 o すでにlinuxをインストールして走らせている:このドキュメントは linuxをはじめてインストールすることを取り扱っていません。 o ppaが今のカーネルでサポートされている、あるいはモジュールなら ppaモ ジュールがロードされている(訳注:ppa.c -- /usr/src/linux/drivers/scsi/ppa.c。IOMEGA PPA3 パラレルポートSCSI ホストアダプタ用の低水準ドライバです)。 o Zipディスクのマウントポイントは/iomegaディレクトリである。 2. イントロダクション このドキュメントは、プリンタポートZipドライブを使った100MB Zipディスク 上に、 Linuxシステムの基本的な機能(bare-bones)のインストール方法を記述 した、4つの章に分けられています。はじめの章ではZipディスクのセット アップ方法を記述しています。Red Hat/Slackware配布パッケージのインスト ールに共通した内容です。4,5そして7章はそれぞれZipディスク上にRed Hat 4.2, Slackware 2.2, Debian 1.2配布パッケージをインストールする方法につ いて書かれています。 NOTE:Red Hat 5.0がリリースされたようですが、授業と仕事があるので Red Hat 5.0での作業については5月終りになると思います。またできれば他の配 布パッケージでもテストしたいと思っています。 2.1. What's new このドキュメントをアップデートする時間がやっと作れました(本当は社会学 の試験勉強をしなければならない...)。メールでコメントを送ってくださった 方々に感謝いたします。 このドキュメントの新しい点は: o Debian 配布パッケージの情報。 o フロッピー上のLILOについて。 o Red Hat (4.2 Biltmore) の新しいバージョンの情報。 o ネットワーク設定(Red Hat:テストしていません)。 2.2. この文書のルール o コマンドを示しています: ==> o 注目、注意を示します: ______________________________________________________________________ NOTE: ______________________________________________________________________ o スクリーンショット/キャップチャを示します: ______________________________________________________________________ Text here. ______________________________________________________________________ 2.3. アップデート アップデートについては(まれにしかしませんが)以下をチェックして下さい: http://comp.uark.edu/~jwiggins/linuxZip/ 2.4. リファレンス o 「Installation-HOWTO」 鈴木さんの和訳があります。 o 「SCSI-HOWTO」水原 文、中野武雄さんの和訳があります。 o 「NET-3-HOWTO」 (4.3.3章) こじまみつひろさんの和訳があります。 o 「Zip-Drive (mini-HOWTO)」 中井優一さんの和訳があります。 o 「LILO-FAQ」、「LILO-Mini-HOWTO」:中谷千絵さんの和訳があります。 o ParPortカーネルパッチ(プリンタポートを経由してアクセスできるように する): http://www.cyberelk.demon.co.uk/parport/ 注:上記ドキュメントの和訳文はJFサイトから入手できます。 http://jf.gee.kyoto-u.ac.jp/JF/JF.html を参照して下さい。 2.4.1. 謝辞/貢献 Slackware 2.2の章:Michael Littlejohn mike@mesa7.mesa.colorado.edu 氏 の好意によって。 Debian 1.2の章:John D. Blair jdblair@uab.edu氏の好意によって。 LILOの情報やその他役立つ識見を Darcy Boese possum@niagara.com氏、 および Javier Rodriguez jrodrigu@nextgeninter.net.mx氏から。 3. Zipディスクの設定 (Red Hat、Slackware配布パッケージ両方に共通の章です。始める前に Zipド ライブにアクセスできるか確認して下さい:カーネルにppaが組み込まれてい るか、ppaモジュールがロードされているか。これを確認する簡単な方法 はdmesg でチェックすることです: ==> dmesg dmesgはかなり長いことがあるのでmoreにパイプで渡しましょう。 dmesg | more 以下は著者のPPA部分を引用したものです: ______________________________________________________________________ scsi0 : PPA driver version 0.26 using 4-bit mode on port 0x3bc. scsi : 1 host. Vendor: IOMEGA Model: Zip 100 Rev: D.08 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi removable disk sda at scsi0, channel 0, id 6, lun 0 SCSI device sda: hdwr sector= 512 bytes. Sectors= 196608 [96 MB] [0.1 GB] sda: Write Protect is off sda: sda1 sda2 ______________________________________________________________________ もし以下のように表示されている時は、SCSIサポートはされていてもZipドラ イブは検出されていません。 ______________________________________________________________________ scsi : 0 hosts. scsi : detected total. ______________________________________________________________________ 3.1. Zip ディスクのパーティション Zipディスクのパーティションを設定するためにfdiskを実行します: ==> fdisk /dev/sda/ これは私が設定したパーティションテーブルのスナップです: ______________________________________________________________________ Disk /dev/sda: 64 heads, 32 sectors, 96 cylinders Units = cylinders of 2048 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/sda1 1 1 81 82928 83 Linux native /dev/sda2 82 82 96 15360 82 Linux swap ______________________________________________________________________ 任意のマシンでも使えるようにしたいのでスワップパーティションを使うこと にしました。 3.2. Zipディスクのフォーマットとマウント fdisk実行後、新しいパーティションをフォーマットします: ==> /sbin/mke2fs -c /dev/sda1 そしてスワップパーティションを作ります:(fdiskから15360ブロックをス ワップパーティションにします) ==> /sbin/mkswap -c /dev/sda2 15360 最後にZipディスクをマウントしておきます: ==> mount /dev/sda1 /iomega -t ext2 3.3. ブートディスクの作成 Zipドライブのパラレル接続バージョンは、実際にはSCSIデバイスではないの で、ブート可能なデバイスではありません。そこでモジュールとしてではな く、ppaを組み込んだカーネルを使ったブートディスクが必要です。 3.3.1. カーネルの設定と作成 はじめにロードモジュールではなくppaをサポートしたカーネルを作り、設定 します。 ppaオプションを有効にするためにまずSCSIサポートを有効にしま す: SCSI support (CONFIG_SCSI) [Y/m/n/?] さらにSCSIディスクサポートを有効にします: SCSI disk support (CONFIG_BLK_DEV_SD) [Y/m/n/?] 最後に「SCSI low-level drivers」でppaサポートをします: IOMEGA Parallel Port Zip drive SCSI support (CONFIG_SCSI_PPA) [Y/m/n/?] ppaはモジュールとしてではなくカーネルに組み込むことに注意して下さい。 parportカーネルパッチ(``リファレンス''章を参照) がないと、ppaドライバ はZipドライブの passive port(訳注:Zip ドライブの後面についているプリ ンタ接続用のコネクタ) をプリンタ接続に使えません。そこでパラレルプリン タサポートにはnoと答えます: Parallel printer support (CONFIG_PRINTER) [N/y/m/?] ______________________________________________________________________ NOTE: ppaドライバについての詳しい情報は「Zip-Drive mini-HOWTO」 を参照して下さい。 ______________________________________________________________________ カーネルの設定ができたらカーネルを構築します: ==> make dep; make clean; make zImage 新しいカーネルはarch/i386/boot/zImageにあります。 3.3.2. フロッピーにカーネルを納める 異なるカーネルとパラメータが必要なので4枚のフロッピーを用意します (加 えてこの作業の方法についてメールをいただきました)。ブート可能なフロッ ピーを作る方法のひとつとしてLILOの章を設けました。 3.3.2.1. LILOインストール いくつかのカーネルを1枚のフロッピーに納めたい、シングルユーザーモード といった引数を渡せるようにしたいまたはその必要があるという人達のため に、フロッピーにLILOをインストールする方法についてメールをいただきまし た。 3.3.2.1.1. ext2ファイルシステムの作成 フロッピーにext2ファイルシステムを作るために、Zipディスクと同じように します: ==> mke2fs -t /dev/fd0 3.3.2.1.2. 基本的なファイルのコピー 次にマウントポイントのディレクトリがあることを確認してフロッピーをマウ ントします(私は/mnt/floppyを使いました): ==> mount /dev/fd0 /mnt/floppy -t ext2 現在のLinuxインストールでLILOが使っているものと同じファイルが必要で す。 ______________________________________________________________________ NOTE: ここにあるファイルは私のマシンからのもので全ての人にとって そのまま当てはまるわけではありません。 ______________________________________________________________________ ==> cp /boot/boot.b /mnt/floppy ==> cp /boot/map /mnt/floppy ==> cp /usr/src/linux/arch/i386/boot/zImage /mnt/floppy/vmlinuzDESK 次にLILO用の設定ファイルを作ります。はじめにZipディスク用のカーネ ルLILO設定ファイル(/mnt/floppy/lilo.conf)を作ります。以下は私が使って いるものです。テスト用に異なるカーネルを設定しています: ______________________________________________________________________ boot=/dev/fd0 map=/mnt/floppy/map install=/mnt/floppy/boot.b prompt compact timeout=50 image=/mnt/floppy/vmlinuzLAP label=Laptop root=/dev/sda1 read-only image=/mnt/floppy/vmlinuzDESK label=Desktop root=/dev/sda1 read-only image=/mnt/floppy/vmlinuzDESK label=rescue root=/dev/hdc1 read-only ______________________________________________________________________ 2つのカーネルがあります。ひとつ(vmlinuzLAP)は486ラップトップ用のもの で数値演算コプロセッサをサポートしています。もうひとつ(vmlinuzDESK)は デスクトップ用のものです。label=rescueはハードディスクからの緊急ブート 用です。 フロッピーはマウントしたままにして、以下のコマンドでフロッピー上 にLILOをインストールします。 ==> /sbin/lilo -C /mnt/floppy/lilo.conf LILOをフロッピーにインストールしたら、以下2つのステップ「カーネルのみ のインストール」「フロッピーにルートとスワップを設定する」は飛ばして下 さい。ここまでの作業が楽しいからもう一度やりたいと言うなら話しは別です けど :)。 3.3.2.2. カーネルのみのインストール ______________________________________________________________________ NOTE: これはLILOインストールとは関係ありません。 ______________________________________________________________________ 新しく作ったカーネルをフロッピーディスクにコピーします: ==> cp arch/i386/boot/zImage /dev/fd0 あるいは ==> cat arch/i386/boot/zImage > /dev/fd0 フロッピーにカーネルをコピーする方法はたくさんありますが、私は上 のcatを使った方法がちょっと通っぽくて気に入っています。ここで">"を忘れ ないようにしましょう。バイナリファイルを見るのが好きというなら別ですが :)。 3.3.2.2.1. フロッピーにルートとスワップを設定する ______________________________________________________________________ NOTE: これはLILOインストールとは関係ありません。 ______________________________________________________________________ フロッピーにカーネルを入れたら、Zipディスクにルートデバイスをセットす る必要があります: ==> /sbin/rdev /dev/fd0 /dev/sda1 rdev - ルートデバイス、スワップデバイス、RAM ディスクサイ ズ、ビデオモードの問い合わせと設定 次のオプションが必要かどうかわかりませんが、やるにこしたことはありませ ん。スワップのセットは: ==> /sbin/rdev -s /dev/fd0 /dev/sda2 とします。 [訳注:ブートフロッピーの作り方については「Linux Bootdisk HOWTO」中野 武雄さん訳を参照して下さい。JFサイトから入手できます。] 4. Red Hat 4.2 インストール 何であれコンピュータ関連のものは、3カ月そこらで時代遅れになってしまう ので、アップグレードをする必要があります。Linuxも例外ではなく、次々と アップデートパッケージがリリースされていますが、その度にドキュメントを アップデートする時間があるとは限りません。ですが、せめて配付パッケージ のバージョンが上がった時には、この文書をアップデートするようベストを尽 くします。RedHat以外の配布パッケージに関しては、各パッケージの章の作者 が送ってこない限りアップデートはしません。 4.1. 著者の環境 私のインストールでは: o Kernel 2.0.30 o Iomega ppa ディスクドライブ o Red Hat 4.2 を使っています。 4.2. パッケージインストール 最初ZipディスクにRed Hatをインストールしようと思った時、Red Hatのブー トディスクを使えばいいから(インストールなんて)「超簡単」であると思って いました。でも気づきました。メールでRed Hatユーザーの様々な方から手助 けをいただいたのでブートディスクを作りそうになりましたが、最終的に はrpmの--root オプションに気づきその方法(project)をとることはやめまし た。 --root 全ての操作においてにルートされたシステムを使います。こ れはデータベースは全て以下で読み込まれたり修正された り、にchroot()した後にスクリプトが実行されるということ を意味しています。 4.2.1. パッケージの入手 あるRed Hatミラーで見つけたファイルをみて、インストールするパッケージ を見つけました。このファイルは redhat/redhat-4.2/i386/RedHat/base/comps にあります。このインストールにおいてネットワークサポートをしたいのです が、 Red HatのX network設定用ツールはX上のものしか用意されていないので マニュアル設定をしなければなりません。むしろマニュアル で/etc/sysconfig/にあるネットワークセットアップスクリプト、設定を試み るべきでしょう。 私の場合は、Zipドライブに開発パッケージをインストールしていません。 (少なくともパッチを当てていないカーネルでは)何をコンパイルするにしても 遅いです。また私はディスクスペースの都合からXのインストールはしていま せん。 Xを使えるようにしたければ、後でハードディスクをマウントし て/usrにシンボリックリンク(symlink)をはっておくという手もあるのですか ら。 以下は私がインストールしたパッケージのリストです。*でマークしたもの はRed Hatの問題のあった(errata)パッケージをアップデートしたものです。 丸括弧で囲った箇所はアップデートのパッケージ番号です: 例: NetKit-B-0.09-6 は NetKit-B-0.09-8 にアップデートされています。 この場合のエントリは *91) NetKit-B-0.09-6 (-8) となります。 ______________________________________________________________________ (コマンド rpm --root /iomega -qa によって作られたリスト) 1) setup-1.7-2 2) pamconfig-0.51-2 3) filesystem-1.3-1 4) MAKEDEV-2.2-9 5) adduser-1.7-1 6) libc-5.3.12-18 7) SysVinit-2.64-8 8) ash-0.2-8 9) at-2.9b-2 10) libtermcap-2.0.8-4 11) bash-1.14.7-1 12) bc-1.03-6 13) bdflush-1.5-5 14) cpio-2.4.2-4 15) cracklib-dicts-2.5-1 16) tmpwatch-1.2-1 17) crontabs-1.5-1 *18) db-1.85-10 (-11) 19) dev-2.5.1-1 20) diffutils-2.7-5 21) etcskel-1.3-1 22) file-3.22-5 23) fileutils-3.16-1 24) findutils-4.1-11 25) grep-2.0-5 26) groff-1.10-8 *27) ld.so-1.7.14-4 (-5) 28) getty_ps-2.0.7h-4 29) gZip-1.2.4-7 30) mingetty-0.9.4-3 *31) initscripts-2.92-1 (93-1) 32) ed-0.2-5 33) info-3.9-1 34) ncurses-1.9.9e-4 35) libg++-2.7.1.4-5 *36) pwdb-0.54-3 (-4) 37) rootfiles-1.5-1 *38) pam-0.57-2 (-4) 39) redhat-release-4.2-1 40) less-321-3 41) mount-2.5l-2 42) zlib-1.0.4-1 43) rpm-2.3.11-1 44) e2fsprogs-1.10-0 45) sysklogd-1.3-15 46) tar-1.11.8-11 47) passwd-0.50-7 48) gawk-3.0.2-1 49) gdbm-1.7.3-8 50) gpm-1.10-8 51) hdparm-3.1-2 52) kbd-0.91-9 53) slang-0.99.37-2 54) newt-0.8-1 55) kbdconfig-1.4-1 56) ncompress-4.2.4-7 *57) sh-utils-1.16-4 (-5) 58) procinfo-0.9-1 *59) logrotate-2.3-3 (4-1) 60) lilo-0.19-1 61) losetup-2.5l-2 62) linuxthreads-0.5-1 *63) mkinitrd-1.6-1 (7-1) 64) mailcap-1.0-3 *65) man-1.4h-5 (j-1) 66) mt-st-0.4-2 67) modules-2.0.0-5 68) mailx-5.5.kw-6 69) net-tools-1.32.alpha-2 70) procmail-3.10-10 71) procps-1.01-11 72) psmisc-11-4 73) quota-1.55-4 74) readline-2.0-10 75) sed-2.05-6 76) setconsole-1.0-1 77) sendmail-8.8.5-4 78) shadow-utils-960530-6 79) stat-1.5-5 80) tcsh-6.06-10 81) termcap-9.12.6-5 82) textutils-1.22-1 83) time-1.7-1 84) timeconfig-1.8-1 85) util-linux-2.5-38 86) vim-4.5-2 87) vixie-cron-3.0.1-14 88) which-1.0-5 89) zoneinfo-96i-4 90) tcp_wrappers-7.5-1 *91) NetKit-B-0.09-6 (-8) *92) lpr-0.18-1 (19-1) *93) bind-4.9.5p1-2 (9.6-1) *94) bind-utils-4.9.5p1-2 (9.6-1) *95) wu-ftpd-2.4.2b12-6 (b15-1) 96) anonftp-2.3-3 97) Zip-2.1-1 98) unZip-5.12-5 99) statserial-1.1-7 100) minicom-1.75-2 101) lrzsz-0.12.14-1 102) dip-3.3.7o-9 103) ppp-2.2.0f-3 104) portmap-4.0-3 105) perl-5.003-8 *106) traceroute-1.0.4.4bsd-2 (1.4a5-1) *107) elm-2.4.25-7 (-8) 108) lynx-2.6-2 109) ncftp-2.3.0-5 110) pine-3.95-2 111) rdate-0.960923-1 112) apache-1.1.3-3 *113) nfs-server-2.2beta16-7 *114) nfs-server-clients-2.2beta16-7 (2.2beta16-8) (2.2beta16-8) ______________________________________________________________________ これらがインストールされていてもまだ32MBも残っています! 4.2.1.1. アップデート:誤り 多くのRedHatユーザーはご存知の通り(であることを願っていますが) ある パッケージではセキュリティ上の欠点があったり問題があったりします。その 修正のため、Red Hatは欠点/問題のあったパッケージのアップデートをリリー スします。アップデートしたり上記リストでマークされたパッケージを更新し ました。アップデートされたパッケージについてはRed Hatのwebパッケージを 参照して下さい: http://www.redhat.com/support/docs/rhl/rh42-errata-general.html ______________________________________________________________________ NOTE: パッケージをアップデートする前に4.3.1.1で述べたldconfigを実行します。 ______________________________________________________________________ 4.2.2. glintを使わず、rpmを使ってどのようにパッケージをインストールす るか: インストールにおいて、マウントしたディレクトリをルートだと指定するため に、 rpmに--rootオプションをつけます。しかしいろいろなパッケージのイン ストールに失敗することを発見しました。これはpreinstallあるい はpostinstallスクリプトは本当のルートディレクトリ以外に対しては正常に 動作しないためです。そこで--noscriptsオプションを使います: ==> rpm --root /iomega -i --noscripts PACKAGE.i386.rpm 多くのユーザーが確認しているように、以下のエラーメッセージが出ます: ______________________________________________________________________ failed to open /iomega/var/lib/rpm/packages.rpm error: cannot open /iomega/var/lib/rpm/packages.rpm ______________________________________________________________________ そこでvar/lib/rpmディレクトリを作ります :)。 ==> mkdir /iomega/var; mkdir /iomega/var/lib; mkdir /iomega/var/lib/rpm 4.2.3. pamconfigあるいはpamどちらが先か? pamconfigをインストールしようとすると、pamに依存したエラーが出ます。一 方 pamをインストールしようとするとpamconfigに依存したエラーが出ます! これはまるで「卵が先かにわとりが先か」ということのようですが、--nodeps フラグを使って強制的にpamconfigをインストールすることができます。 pamはpamconfigよりも依存性のエラーが出るようです。 ==> rpm --root /iomega -i --nodeps --noscripts pamconfig-0.51-2 4.3. パッケージのインストール後の問題 うまく全てインストールされても、残念なことにディスクはこれだけでは十分 に機能しません。私の言っていることは、もし現状のままフロッピーを使って ブートしようとしても、initがスタートアップしようとすると間もなく、2つ のラブリーな:) エラー出ます。 4.3.1. /etc/ld.so.cacheとlibc.so.5がないケース ブートしようとすると2つエラーメッセージが出てきます。1つ目 は/etc/ld.so.cacheファイルがないためで、2つ目は libc.so.5がないための 警告です。 4.3.1.1. /etc/ld.so.cache 多くの読者の方から指摘を受けたのですが、以前に書いた手順では(私がそこ に書いたようには)ちゃんと動作しません。このファイルを作るためにZipドラ イブがマウントされている内にldconfigを実行しなければなりません: ==> chroot /iomega /sbin/ldconfig この解決を教えてくれたJavier Rodriguez氏に感謝します。 4.3.1.2. libc.so.5 ライブラリがない場合の解決として、インストールスクリプトによって作られ たライブラリにシンボリックリンク(symlink)する必要があります。 ==> cd /iomega/lib; ln -s libc.so.5.3.12 libc.so.5 この解決を教えてく れたDarcy Boese氏に感謝します。 4.3.2. rootパスワードの設定 4.3.1.1章で実行したldconfigと同様に、新しいシステム用のrootパスワード も変更/生成しておきます。 ==> chroot /iomega passwd root 4.3.3. インストールプログラムが作るもの ______________________________________________________________________ NOTE: これはとても簡単なセットアップ方法です。動作するかどうか はテストしていません。理論的には動作するはずですが、動か なくても私に文句を言わないように。 ______________________________________________________________________ Red Had 4.2 CD-ROMを調べている間、興味深いこと(インストールプログラム のソースコード)に遭遇しました。このコードは/misc/src/install以下にあり ます。興味深いのはnet.cファイルです。ここでどのようなファイルが、イン ストールプログラムによって実行されることで、生成されるかがわかりまし た。これらのほとんどは(net.cという名前の通り)ネットワークサポートを与 えていますが、ネットワークカードがなくてもネットワークとし てlocalhostを使うことができます(加えてapacheはhostnameを決定できないこ とに文句を言うかもしれません)。これらのファイルには: /etc/hosts /etc/HOSTNAME /etc/resolv.conf /etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0 (あるいはあなたが持っているネットワークデバイス) が含まれています。 4.3.4. ネットワーク設定 このドキュメントにおいて私は「3Com 3c595 fast-ethernetカード」 (以前は 別のマシンで数カ月使っていたもの)を使いたいと思います。 まず名前が必要です。私は他のマシンで自分専用のネームサーバを走らせてい るので(話せば長いのですが)、(IPアドレスだけでなく)名 前:dash-dot.wig.orgを与えました。IPアドレス無しで名前を与えることは意 味のないことなので、ローカルアドレスとして定義されているIPアドレス 192.168.10.0のネットワークに接続することにしました。ネームサーバもこの ネットワークに接続されています。ホスト名は普通/etc/HOSTNAMEに書かれて いますが、Red Hatでは/etc/sysconfig/networkをチェックします。以下は私 の/etc/sysconfig/networkのサンプルです: ______________________________________________________________________ NETWORKING=yes HOSTNAME=dash-dot DOMAINNAME=wig.org GATEWAY= GATEWAYDEV=eth0 NS1=192.168.10.7 ______________________________________________________________________ 次に/etc/HOSTNAME、/etc/resolv.conf、/etc/hosts に関する情報を挙げま す: /etc/HOSTNAME: ______________________________________________________________________ dash-dot.wig.org ______________________________________________________________________ /etc/resolv.conf: ______________________________________________________________________ search wig.org nameserver ns.wig.org ______________________________________________________________________ /etc/hosts: ______________________________________________________________________ 127.0.0.1 localhost 192.168.10.99 dash-dot.wig.org dash-dot 192.168.10.7 ns.wig.org ns ______________________________________________________________________ Red Hatは/etc/sysconfig/network-scriptsにあるスクリプトから全ネットワ ークデバイスを設定します。ネットワークデバイスの設定は普通はじめにイン ストールプログラムを使って行われます。そこで手動でこれらの設定ファイル を作ります。これらの設定ファイル名は全てifcfg-XXX で始まります。ここ でXXXはifconfigで表示されるネットワークインターフェース(ppp0, eth0 な ど)です。例えば、ifcfg-eth0というファイルを以下のように作ります: ______________________________________________________________________ DEVICE=eth0 ONBOOT=yes BOOTPROTO=none BROADCAST=192.168.10.255 NETWORK=192.168.10.0 NETMASK=255.255.255.0 IPADDR=192.168.10.99 ______________________________________________________________________ これらを正しく行うために、/etc/sysconfig/network-scripts ディレクトリ で以下を実行します: ==> ./ifup ifcfg-eth0 boot これはスクリプトをスタートします。このスクリプトは、インターフェースが ブート時開始するようセットされた場合に、セットネットワークインターフェ ースの設定をするものです。 詳細については「NET-3-HOWTO」ドキュメントを参照して下さい。 5. Slackware 2.2インストール ______________________________________________________________________ NOTE: この部分はアップデートされていません ______________________________________________________________________ 5.1. 必要なもの o Zipディスクとドライブ(当然) o Zipサポートのカーネル o 「Zip HOWTO」(お奨め) o 1.44" HDフォーマットのフロッピー o 1〜2時間の所用時間 5.2. インストール さて、楽しい作業です。システムディスクに必要なファイルとZip ドライブに 入れておきたいパッケージを決めます。 ZipドライブにSlackwareを直接インストールするのがもっとも簡単な方法だと 思います。SlackwareはRed Hatよりも小さなパッケージであり、不必要なもの を切り詰めるのが易しいのでこのアプローチにします。これは私 がSlackware配布パッケージを使っているという理由でもあります。 ZipドライブにSlackwareをインストールするのは簡単です。rootとして setupコマンドを実行し、インストールするパーティションを/iomega に選び ます。「パーティションからのインストール(install from partition)」 をSlackwareソースがある場所(CDROM、ハードディスクなど)にセットして 「install」を選択します。後はプロンプトに従って作業を進めて下さい。 5.3. インストールについて 難しいのは何を追加して何を追加しないかを決めることです。最低限'A'シリ ーズ (約8MB)は必要です(訳注:基本セット)。残りはあなたの好きなものを入 れて下さい。 gcc/g++, perl, X11R6(全てではありません!)、sendmail, オンラインドキュ メント (development manページは入れずHOWTOのみ全て入れました)、その他 必要なものをいろいろ入れてSlackwareを70MBのインストールに切り詰めまし た。それでもユーザーファイル用に約10MB残っています。もっともこれは人に よって状況が違うので必ずしもそうとは限りません。 6. /etc/fstabを作る (Red Hat、Slackware配布パッケージ共通) 再起動する前に行う最後のことはfstabファイルを作ることです。以下 は/iomega/etc/fstabの最小設定のものです: ______________________________________________________________________ /dev/sda1 / ext2 defaults 1 1 /dev/sda2 none swap sw none /proc proc defaults 1 1 ______________________________________________________________________ ファイルを保存して新しく作ったブートフロッピーを使って再起動します。 enjoy!(私にこの重要で決定的な作業を教えてくれたMikeに感謝します - John) 7. Debian 1.2インストール ______________________________________________________________________ NOTE: この章の作者の方から1997年6月11日にメールで送られたものです。 ______________________________________________________________________ 7.1. 必要なもの o ppa Zipドライブとディスク o 2枚の空のフロッピーディスク o Debianインストールディスクの完全なセット(これらの作り方を思い出せな かったらDebianインストールドキュメントを参照しましょう) o 2時間の所用時間 7.2. あらまし dpkgと2,3時間格闘してみて、ppa Zipドライブの認識ができるように Debian "Rescue" ディスクを修正してしますのが最も簡単である結論に達しました。 これはとても簡単に行えます。修正したディスクを通常のDebian基本システム インストールで使うことができます。いったん基本システムをインストールし てしまえば、ブートディスクを使って新しい基本システムをスタート し、dselectを使ってインストールを完全なものにできます。この方法を行う ために2つのカーネルを構築する必要があります。ひとつはppaと初期RAMディ スクをサポートしたもの。もうひとつはRAMディスクサポートをしないカーネ ルです。 やろうと思えば``3章''のステップを全て飛ばして、 Debianインストール でZipディスクのフォーマットもすることができます。 7.3. レスキューディスクの作成と修正 DebianレスキューディスクはSYSLINUXスタイルのブートディスクです。 DOSフォーマットのフロッピーディスクでMS-DOSをロードしないように特別な ブートローダを使っています。これらのディスクではカスタム化したブート設 定に容易に修正することができます。Debian 'boot-floppies' パッケージに はブートディスクの作成プロセスを自動化するスクリプトセットが含まれてい ます。しかしこのスクリプトはシンプルなもので、手で処理を行う方がよいと いうことに気づきました。 これはDebianの哲学から少し逸れるものですが、 私は手で行いました :)。以下は主にレスキューフロッピーのreadme.txtファ イルに書かれていることです。 7.3.1. 新しいレスキューディスクを作るためにdd(あるいはDOSでRAWRITE)を 使う レスキューディスクの作り方を忘れたらDebian installドキュメントを参照し て下さい。 訳注:UNIXでイメージファイルをフロッピーディスクに書き込むには: dd if=rsc1440.bin of=/dev/fd0 bs=512 conv=sync;sync とします。 7.3.2. Zip ppa サポートの新しいカーネルを構築する Zip ppaサポート``カーネルの設定と作成''した新しいカーネルを構築します が、RAMディスクの設定もして初期RAMディスクサポートをするようにします。 またmsdos, fat, minix, ext2fs, procfsファイルシステムの設定をする必要 もあります。 またZipディスク上に、最後にインストールしたいモジュールも設定しておき ます。 カーネルの設定ができたら構築します: ==> make dep; make clean ==> make bzImage モジュールを作ります: ==> make modules あとでこれらをインストールします(今はモジュールインストールをしませ ん)。 ______________________________________________________________________ NOTE: 'make zImage'ではなく'make bzImage'を使っている ことに注意して下さい。 ______________________________________________________________________ 7.3.3. 新しいレスキューディスクのマウント ==> fdmount fd0 あるいは ==> mount /dev/fd0 /mnt ==>などなど :) 7.3.4. カーネルイメージのコピー (i386プラットフォーム用のarch/i386/boot/bzImageにある)カーネルイメージ をフロッピーディスク上のlinuxにコピーします。 ==> cp arch/i386/boot/bzImage /mnt 7.3.5. rdev.shスクリプトの編集 適当なエディタでレスキューフロッピー上にあるrdev.shスクリプトを開きま す。最後の行 'rdev /mnt/linux /dev/ram0' を 'rdev /mnt/linux /dev/sda1' に変更します: /mnt/linuxの最後の箇所は適当なパスに変更して下さい。フ ロッピーは/fd0にマウントしているので、/mnt/linux を/fd0/linuxに変更し ます。 7.3.6. 修正したrdev.shスクリプトを実行 ==> ./rdev.sh と実行して下さい。 7.4. Zipドライブに基本システムをインストールする 修正したレスキューディスクをブートさせます。全てうまくいったら見慣れ たDebianメニューベースのインストールプロセスが表示されます。いつもと違 うのはppa Zipドライブが対象となっていることです。ハードディスク上にシ ステムをインストールしているように処理を進めていきますが、/dev/sda1を ルートとしてマウントして/dev/sda2をスワップとして初期化しておいて下さ い。 標準的なインストールプロセスからすこし外れたものがあります -- ロードモ ジュールをインストールしない/設定しないということです。ここで ``レス キューディスクの作成と修正''の後半で作ったモジュールをインストールしま す。 7.5. ブートディスクの作成 ``カーネルの設定と作成''と ``フロッピーにカーネルを納める''で書いたよ うにしてブートディスクを作ることができます。またもし必要ならDebianイン ストール中に"Create Boot Disk"オプションを使うこともできます。他 のSYSLINUXブートディスクがあるので、2つ目のオプションが気に入っていま す。私がカスタムしたブートフロッピーの振る舞いを記述する初期メッセー ジ(greeting message)を編集することができ、カーネル引数を追加できるから です。ファンクションキーを使ったヘルプファイルを入れることさえできま す。カーネルを再構築したりブートディスクを後からRAMディスクサポートに したい方がいるかもしれません。その時は連絡して下さい。 7.6. システムの再起動 ブートディスクを挿入してインストールメニューの「Reboot」オプションを選 びます。 7.7. 基本システムの設定、インストールプロセスの完成 システムが再起動されると、遅いけれど完全に動作する(ppa Zipドライブを外 した) Debian基本インストールができています。ここで通常のインストールを 行いUNIX ユーティリティ(ドキュメントセット、make、gcc、ライブラリ、そ の他さまざまなファイル操作ユーティリティ)を全てインストールしました。 後は緊急時にシステムを復旧するための緊急ブートディスクです。 ______________________________________________________________________ NOTE: 次のステップを行うために少なくともmakeはインストール しておいて下さい。 ______________________________________________________________________ 7.8. step 7.3.2で作ったモジュールのインストール ``Zip ppa サポートの新しいカーネルを構築する'' で作ったモジュールのイ ンストールをします。makeはインストールされているはずなので、ここでハー ドディスクパーティションをマウントできるようにカーネルを構築しておきま す。適当なディレクトリに移動してmake modules_installと実行します。以下 はこの作業例です: ==> mount /dev/hda2 /mnt ==> cd /mnt/usr/src/linux ==> make modules_install ______________________________________________________________________ NOTE: ステップ6で説明したように/etc/fstabファイルを修正 する必要はありません。Debianインストールプロセスは すでにそれらが考慮されています。 ______________________________________________________________________ 「``ステップ6''」:"/etc/fstabを作る"。 8. 補足 ふー。31枚のZipディスクがたまり、Zip unleashedバッテリーパックを外した ら次に試してみることはラップトップでPCMCIAを動作させることです。 [日本語訳:伊佐冶 哲, isaji@mxu.meshnet.or.jp 校正 :中野 まさよしさん, sx3m-nkn@asahi-net.or.jp またJFの方々にもお世話になりました。ここに感謝いたします。]