wiki:LinuxDebianEtchUSBInstall

Version 8 (modified by sgk, 13 years ago) (diff)

--

USBメモリを使ってDebian Etchをインストール

インストールのためだけに、CD-ROMドライブがついているサーバを買うのも不毛。 プロなら、「やっぱりインストールにはCDが必要だから」なんてひ弱なことを言ってはいけない。 USBメモリにインストーラを入れて、USBブートでインストールすべし。

今回は、Debian Etch(2006年12月リリース予定のDebian 4.0のテスト版)をインストールしてみる。 なぜそんなことをしたのかと言えば、DellのPowerEdge 850のSATAインターフェースとネットワークインターフェースとが、Debian Sargeに含まれるカーネルでは認識されないから。

Debianプロジェクトないし、プロジェクト関係者がUSBメモリ用のイメージを提供してくれているのだけど、案外使えない。

  1. 提供されているイメージのサイズより大きいUSBメモリを必要とする。ほんの少しはみ出して使えなかったこと多数。
  2. カーネルバージョンが古いことがある。新しめのハードウェアだと、古いカーネルではデバイスが認識されない。

前者については、ここに記述した方法で解決できます。 後者については、ここで提供しているファイルには比較的新しめのカーネルを入れておいたので、しばらくは大丈夫でしょう。 また、以下の「解説」を理解していただけば、インストーラのカーネルを入れ替えることもできます。

まずは答

今回は特別に答から。作業のために、もう1台Linuxマシンが必要です。Debian Etchである必要はありません。ここではDebian Sargeの場合で説明します。他のLinuxの場合は適当に読み替えてください。もちろん、USBメモリを用意しておく必要があります。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メモリを準備する必要があるでしょう。

解説

あとで書きます。