USBメモリを使ってDebian Etchをインストール
(sgk - 2006/10/8)
インストールのためだけに、CD-ROMドライブがついているサーバを買うのも不毛。 プロなら、「やっぱりインストールにはCDが必要だから」なんてひ弱なことを言ってはいけない。 USBメモリにインストーラを入れて、USBブートでインストールすべし。
今回は、Debian Etch(2006年12月リリース予定のDebian 4.0のテスト版)をインストールしてみる。 なぜそんなことをしたのかと言えば、DellのPowerEdge 850のSATAインターフェースとネットワークインターフェースとが、Debian Sargeに含まれるカーネルでは認識されないから。 Debianは保守的すぎていけない。
Debianプロジェクトないし、プロジェクト関係者がUSBメモリ用のイメージを提供してくれています。 このイメージをUSBメモリに書き込んだ上で、USBメモリをマウントし、好きなインストーラのISOイメージ(CD-ROM用)をUSBメモリに追加で保存すると、インストーラとして使えるという物です。 ところが、これって案外不便。
- 提供されているイメージのサイズより大きいUSBメモリを必要とする。ほんの少しはみ出して使えなかったこと多数。
- カーネルバージョンが古いことがある。新しめのハードウェアだと、古いカーネルではデバイスが認識されない。
前者については、ここに記述した方法で解決できます。 後者については、ここで提供しているファイルには比較的新しめのカーネルを入れておいたので、しばらくは大丈夫でしょう。 また、以下の「解説」を理解していただけば、インストーラのカーネルを入れ替えることもできます。
レシピ
材料
- USBメモリ。64M以上。CFカード、SDカードとUSBアダプタでもいい。
- Linuxをインストール済みのマシン。
- syslinuxコマンド(Debianの場合には「syslinux」パッケージ)
- mkdosfsコマンド(Debianの場合には「dosfstools」パッケージ)
- http://omake.accense.com/static/DebianEtchUSBInstall.tar.gz (僕が用意したものです)
作業のために、もう1台Linuxマシンが必要です。Debian Etchである必要はありません。ここではDebian Sargeの場合で説明します。他のLinuxの場合は適当に読み替えてください。もちろん、USBメモリを用意しておく必要があります。64Mもあれば十分ですが、いまどきそんなに小さいのは売ってないので適当に。僕は128Mのを使いました。作業用のLinuxマシンにおいて、必要なツールを準備し、このファイルをダウンロードしておきます。
# apt-get install syslinux dosfstools # cd /tmp # wget http://omake.accense.com/static/DebianEtchUSBInstall.tar.gz
USBメモリを挿入します。dmesgコマンドを実行して、どのデバイスファイルとして認識されたかをチェックします。
# dmesg | tail -20 : : usb 3-1: new high speed USB device using address 35 scsi27 : SCSI emulation for USB Mass Storage devices Vendor: USB Model: Flash Memory: Rev: 0.00 Type: Direct-Access ANSI SCSI revision: 02 SCSI device sdb: 252928 512-byte hdwr sectors (129 MB) sdb: assuming Write Enabled sdb: assuming drive cache: write through /dev/scsi/host27/bus0/target0/lun0: p1 Attached scsi removable disk sdb at scsi27, channel 0, id 0, lun 0 Attached scsi generic sg1 at scsi27, channel 0, id 0, lun 0, type 0 USB Mass Storage device found at 35
下から3行目あたりでsdbと言っているので、/dev/sdbだとわかります。以下、sdbだった場合で説明します。
ここからが本題。めんどくさいので、パーティションを切らず、デバイス全体をFATでフォーマットします。これには、さっきインストールしたdosfstoolsパッケージに入っているmkdosfsを使います。「-I」オプションをつけないと「パーティション切らないのはダメだよ」と怒られるので、つけてください。デバイス名は絶対に間違えないように。何度も確認してください。間違えると、最悪の場合、作業用Linuxを壊してしまいます。かなり危険です。ここに書いてある意味がわからない方、いまいちスッキリしない方には、これら作業はお勧めしません。あたりまえのことですが、作業の結果何が起きても、その原因が僕が書いたことの誤りでも、なんらの補償をしませんから了承下さい。
# mkdosfs -I /dev/sdb mkdosfs 2.11 (12 Mar 2005)
そろそろ作業も終わりです。今フォーマットしたパーティションをマウントし、先ほどのDebianEtchUSBInstall.tar.gzを展開します。 さらに、アンマウントしてからsyslinuxコマンドを実行すればおしまいです。
# mount /dev/sdb /mnt # cd /mnt # tar xzfp /tmp/DebianEtchUSBInstall.tar.gz tar: .: implausibly old time stamp 1970-01-01 09:00:00 # cd /tmp # umount /mnt # syslinux /dev/sdb
なにやらtarが怒っていますが、気にしなくていいです。
あとは、このUSBメモリをターゲットのマシンに挿入して、BIOSの設定でUSBブートを可能にして起動してください。 いつもどおり、Debianのインストーラが起動するはずです。 USBブートについて、「USBメモリのエミュレーション」の種類が選べる場合には、「ハードディスクとしてエミュレーション」するように設定するといいでしょう。
僕が用意したファイルには、Debianの言うところの「名刺サイズのCD-ROMインストーラ」のISOイメージを入れてあります。 このため、インストーラが自動的にパッケージファイルをインターネットから取得してインストールを実行します。 そのため、インターネットに接続されていること、ターゲットのマシンのネットワークインターフェースが認識されること、ネットワークインターフェースを正しく設定することが必要です。 これが不都合な場合には、その他適切なインストーラのISOファイルに取り替えてください。 もちろん、必要に応じて大きめのUSBメモリを準備する必要があるでしょう。
解説
- http://www.debian.org/releases/stable/i386/ch04s04.html.ja
- http://ftp.nl.debian.org/debian/dists/testing/main/installer-i386/beta3/images/hd-media/
あとで書きます。
