USB メモリの準備をするには、GNU/Linux が既に動いていて、USB をサポートしているシステムが必要になります。現在の GNU/Linux では、USB メモリを挿すと自動的に認識するでしょう。そうならない場合は、usb-storage カーネルモジュールをロードしているかを確認してください。USB メモリを挿すと、/dev/sdX (「X」 は a〜zの範囲の文字) というデバイスにマッピングされます。どのデバイスが USB メモリかは、挿した後で dmesg コマンドを実行すると見られます。USB メモリに書き込むには、ライトプロテクトスイッチを切る必要があります。
この方法を使うとデバイス上の既存の物は破壊されてしまいます! 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 メモリに書き込めます。完了したら、確実にアンマウントしてください。
#cpdebian.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 メモリを挿し直すと、ふたつのパーティションが見えるはずです。
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/)、 そこに Debian の ISO イメージ (netinst、フル CD) をコピーしてください。USB メモリをアンマウント (sdX /mntumount /mnt) すると完了です。
もっと柔軟なものがよかったり、何が起きているか知りたいのなら、以下に説明する USB メモリにファイルを置く方法を使用すべきです。この方法の利点は、(USB メモリの容量が十分大きければ) フル CD の ISO イメージをコピーするという選択しもあるということです。
デバイス全体ではなく、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 を作成します。
このパーティションをマウントし (mount /dev/)、以下のインストーライメージファイルを USB メモリへコピーしてください。sdX1 /mnt
vmlinuz か linux (カーネルバイナリ)
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」 イメージはこの用途に使用できないことに注意してください。