(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.
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
任意のマシンでも使えるようにしたいのでスワップパーティションを使うことに しました。
fdisk実行後、新しいパーティションをフォーマットします:
==> /sbin/mke2fs -c /dev/sda1
そしてスワップパーティションを作ります:(fdiskから15360ブロックをスワップ パーティションにします)
==> /sbin/mkswap -c /dev/sda2 15360
最後にZipディスクをマウントしておきます:
==> mount /dev/sda1 /iomega -t ext2
Zipドライブのパラレル接続バージョンは、実際にはSCSIデバイス ではないので、ブート可能なデバイスではありません。そこでモジュールとして ではなく、ppaを組み込んだカーネルを使ったブートディスクが必要です。
はじめにロードモジュールではなく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
にあります。
異なるカーネルとパラメータが必要なので4枚のフロッピーを用意します (加えてこの作業の方法についてメールをいただきました)。 ブート可能なフロッピーを作る方法のひとつとしてLILOの章を設けました。
いくつかのカーネルを1枚のフロッピーに納めたい、シングルユーザーモード といった引数を渡せるようにしたいまたはその必要があるという人達のために、 フロッピーにLILOをインストールする方法についてメールをいただきました。
フロッピーにext2ファイルシステムを作るために、Zipディスクと同じようにします:
==> mke2fs -t /dev/fd0
次にマウントポイントのディレクトリがあることを確認してフロッピー
をマウントします(私は/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つのステップ「カーネルのみの インストール」「フロッピーにルートとスワップを設定する」は飛ばして下さい。 ここまでの作業が楽しいからもう一度やりたいと言うなら話しは別ですけど :)。
NOTE: これはLILOインストールとは関係ありません。
新しく作ったカーネルをフロッピーディスクにコピーします:
==> cp arch/i386/boot/zImage /dev/fd0
あるいは
==> cat arch/i386/boot/zImage > /dev/fd0
フロッピーにカーネルをコピーする方法はたくさんありますが、私は上のcatを 使った方法がちょっと通っぽくて気に入っています。ここで">"を 忘れないようにしましょう。バイナリファイルを見るのが好きというなら別ですが :)。
NOTE: これはLILOインストールとは関係ありません。
フロッピーにカーネルを入れたら、Zipディスクにルートデバイスをセット する必要があります:
==> /sbin/rdev /dev/fd0 /dev/sda1
rdev - ルートデバイス、スワップデバイス、RAM ディスクサイ
ズ、ビデオモードの問い合わせと設定
次のオプションが必要かどうかわかりませんが、やるにこしたことは ありません。スワップのセットは:
==> /sbin/rdev -s /dev/fd0 /dev/sda2 とします。
[訳注:ブートフロッピーの作り方については「Linux Bootdisk HOWTO」 中野武雄さん訳を参照して下さい。JFサイトから入手できます。]