4.3. USB メモリでの起動用ファイルの準備

USB メモリの準備をするには、GNU/Linux が既に動いていて、USB をサポートしているシステムが必要になります。現在の GNU/Linux では、USB メモリを挿すと自動的に認識するでしょう。そうならない場合は、usb-storage カーネルモジュールをロードしているかを確認してください。USB メモリを挿すと、/dev/sdX (X は a〜zの範囲の文字) というデバイスにマッピングされます。どのデバイスが USB メモリかは、挿した後で dmesg コマンドを実行すると見られます。USB メモリに書き込むには、ライトプロテクトスイッチを切る必要があります。

警告

この方法を使うとデバイス上の既存の物は破壊されてしまいます! USB メモリの正しいデバイス名を必ず確認して使用してください。間違ったデバイス名を使用すると、例えばハードディスク内のすべてのデータを失うといったことが起こります。

4.3.1. ハイブリッド CD/DVD イメージを使った USB メモリの準備

Debian の CD/DVD イメージは直接書き込めるようになり、起動可能な USB メモリを作るのがとても簡単になりました。USB メモリに合う CD/DVD イメージを選んでください。CD/DVD イメージの取得については 「公式 Debian GNU/Linux CD/DVD-ROM セット」 を参照してください。

別の方法として、とても小さな、サイズが数メガしかない USB メモリ用に、netboot ディレクトリから mini.iso をダウンロードできます (場所については 「どこでインストールイメージを探すか」 に記載があります)。

選択した CD/DVD イメージは、既存の内容を上書きして、直接 USB メモリに書き込む必要があります。例えば、既存の GNU/Linux システムを使っている場合、以下のようにして、CD・DVD イメージファイルを、USB メモリに書き込めます。完了したら、確実にアンマウントしてください。

# cp debian.iso /dev/sdX
# sync

重要

ほとんどのユーザは、CD/DVD イメージを単にUSBメモリに書き込むだけでうまく行くでしょう。下記の選択肢はもっと複雑なので、主に特殊なニーズがあるユーザ向けです。

USB メモリに配置したハイブリッドイメージは、ストレージの領域すべてを専有するわけではありません。そのため、ファームウェアファイルやパッケージ、その他選んだファイルを保持するために、空き領域を使用するのを、検討する価値があるかもしれません。あなたが、ひとつしか USB メモリを持っていないか、ひとつのデバイスにすべて格納する必要があるときに便利です。

USB メモリに ふたつ目の FAT パーティションを作成し、パーティションをマウントしてから、ファームウェアのコピーや展開をそこに行います。以下に例を示します。

# mount /dev/sdX2 /mnt
# cd /mnt
# tar zxvf /path/to/firmware.tar.gz
# cd /
# umount /mnt

もしかすると、USB スティックに mini.iso を書き込んだかもしれません。この場合、ふたつ目のパーティションを作成する必要はなく、都合のいいことに、すでに作成済みでしょう。USB メモリを挿し直すと、ふたつのパーティションが見えるはずです。

4.3.2. USB メモリへのファイルの手動コピー

USB メモリを設定するもう一つの方法は、インストーラのファイルと CD イメージを手動で書き込むやり方です。USB メモリは少なくとも 1 GB のサイズが必要なのに注意してください (「USB メモリへのファイルの手動コピー — 柔軟な方法」 のようにすれば、もっと少ないサイズでもセットアップできます)。

syslinux や、その設定ファイルと共に、インストーラの全ファイル (カーネル含む) が入った hd-media/boot.img.gz というオールインワンなファイルがあります。

これは便利ですが、この方法にはひとつの大きな欠点があることに注意してください。USB メモリの容量がもっと大きかったとしても、デバイスの論理サイズが 1 GB に制限されます。他の用途にも使用したい場合は、全容量を確保し直すため、USB メモリをパーティション分割し直し、新しいファイルシステムを作成する必要があります。

このイメージを使用するには、単に USB メモリに直接展開してください。

# zcat boot.img.gz > /dev/sdX

その後、FAT ファイルシステムの USB メモリをマウントし(mount /dev/sdX /mnt)、 そこに Debian の ISO イメージ (netinst、フル CD) をコピーしてください。USB メモリをアンマウント (umount /mnt) すると完了です。

4.3.3. USB メモリへのファイルの手動コピー — 柔軟な方法

もっと柔軟なものがよかったり、何が起きているか知りたいのなら、以下に説明する USB メモリにファイルを置く方法を使用すべきです。この方法の利点は、(USB メモリの容量が十分大きければ) フル CD の ISO イメージをコピーするという選択しもあるということです。

4.3.3.1. USB メモリのパーティション分割

デバイス全体ではなく、USB メモリの最初のパーティションを セットアップする方法を示します。

注記

ほとんどの USB メモリは、FAT16 パーティション 1 つであらかじめ設定されているので、おそらく USB メモリのパーティション分割のやり直しや、再フォーマットは必要ありません。どうしてもしなければならない場合は、cfdisk や他のパーティション分割ツールを使って、FAT16 パーティションを作成し[3]、以下のようにして MBR をインストールしてください。

# install-mbr /dev/sdX

install-mbr コマンドは、mbr Debian パッケージにあります。その後、以下のようにファイルシステムを作成してください。

# mkdosfs /dev/sdX1

USB メモリの正確なデバイス名を使用する事に注意してください。mkdosfs は、dosfstools Debian パッケージに含まれています。

USB メモリからブートしてカーネルを起動するには、USB メモリにブートローダを配置します。どのブートローダ (例: lilo) も動作しますが、FAT16 パーティションを使用し、テキストファイルを編集するだけで再設定できるので、syslinux を使用するのが便利です。FAT ファイルシステムをサポートするオペレーティングシステムなら、ブートローダの設定を変更するのに利用できます。

USB メモリの FAT16 パーティションに syslinux を置くには、syslinux パッケージと mtools パッケージをシステムにインストールして、以下を実行してください。

# syslinux /dev/sdX1

繰り返しますが、正確なデバイス名を使用するよう注意してください。 syslinux の開始時には、このパーティションをマウントしてはなりません。この手順ではパーティションにブートセクタを書き込み、 ブートローダコードを含んでいるファイル ldlinux.sys を作成します。

4.3.3.2. インストーライメージの追加

このパーティションをマウントし (mount /dev/sdX1 /mnt)、以下のインストーライメージファイルを USB メモリへコピーしてください。

  • vmlinuzlinux (カーネルバイナリ)

  • initrd.gz (初期化 RAM ディスクイメージ)

インストーラは、通常版とグラフィカル版の選択ができます。後者は、gtk サブディレクトリにあります。ファイル名を変更したければ、syslinux は DOS (8.3) のファイル名しか処理できないことに注意してください。

次に、syslinux.cfg 設定ファイルを作成します。最低限必要なのは以下の 2 行です (netboot を使用している場合、カーネルバイナリ名を linux に変更してください)。

default vmlinuz
append initrd=initrd.gz

グラフィカルインストーラ用には、2 行目に vga=788 を追加すると良いでしょう。他のパラメータをお好みで付加できます。

さらにパラメータを追加するために、ブートプロンプトを有効にするには、prompt 1 の行を追加してください。

hd-media イメージを使用している場合、ここで Debian の ISO イメージのファイル[4]を、USB メモリにコピーしてください。完了したら、USB メモリを アンマウントしてください (umount /mnt)。



[3] bootable フラグを付け忘れないでください。

[4] netinst かフル CD イメージのいずれかを使用できます (「公式 Debian GNU/Linux CD/DVD-ROM セット」 参照)。必ず適合するものを選択してください。netboot mini.iso イメージはこの用途に使用できないことに注意してください。