Linux を、USB メモリだけで起動して動かす方法 (Knoppix)

このソリューションは、Linux を、CD だけで起動して動かす方法 (Knoppix) をベースにしているものであり、必要なものとしては以下の通り。
  • Knoppix を焼いた CD-R(このエントリー執筆段階ではバージョン 5.0.1)
  • 1GB 以上の USB メモリ
  • USB メモリからブート可能な PC
USB メモリからブート可能な PC なんてわりと最近のじゃないとないと思うんだけど、Knoppix を CD-ROM から起動する方法に比べて何より音が静かだし(笑)、HDD や CD-ROM ドライブのように物理的に稼動する部分がない(突っ込まれないように言っておくと CPU ファンは動くけど)ので PC にもやさしい気がする。 CD-ROM の起動の場合と比べて USB メモリだから起動が速くなるかといえば、USB メモリの読み書きのスピードにもよると思うけど、体感的には私が試したものではそんなに変わらなかったような感じだ。ただ、CD-ROM からの起動の場合でも結局は永続ストレージとして USB メモリに作業環境を保存しておくのであれば、すべて USB メモリで完結していた方が美しいと思う。 その USB だが、「1GB 以上」という条件がつくのは、Knoppix は CD-ROM の容量ギリギリまで利用しているからであり、512MB の USB メモリだと残念ながら CD-ROM の容量に届かないから 1GB の USB メモリということになる。現時点で Knoppix のバージョンは 5.0.1 だけど、実は Knoppix のバージョンを落とせば 256MB の USB メモリ64MB の USB メモリに収めることはできるようだ。私も試しに一度 256MB のメモリに Knoppix を入れてみたのだけれど、KNOPPIX 3.6 とあって 5.0.1 を目にしてしまうとやはり 5.0.1 を動かしてみたいと思ったのであった。 そこでまずは「KNOPPIX のUSB化について」試した。このページには「この原理を利用すれば、CD-ROMから起動する、ほとんど全てのKUNOPPIXをUSB化することが可能になります。」とあったので 5.0.1 の CD-R からファイルを USB メモリに転送してみたのだが、 結論を言うとうまくいかなかった。USB メモリを認識して起動しかけるのだが、途中で「KNOPPIX のファイルシステムが見つからない」という英語のエラーメッセージが出てプロンプト状態になってしまう。そこで既存の情報を元に、力ずくで USB メモリへのインストールを試みた。
※以下は、Knoppipx 5.0.1 の起動後、コンソール上で作業を行った。

root@ttyp0[knoppix]# su
↑ルートになる

root@ttyp0[knoppix]# fdisk /dev/sda
↑fdisk コマンドでOS 用とデータ用に 2つ、パーティションを切る(以下)。

コマンド (m でヘルプ): p ←現在のパーティションリストを表示

Disk /dev/sda: 1023 MB, 1023934464 bytes
32 heads, 62 sectors/track, 1008 cylinders
Units = シリンダ数 of 1984 * 512 = 1015808 bytes

 デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1008      999905   83  Linux

コマンド (m でヘルプ): d ←パーティションを削除
領域番号 (1-4): 1 ←1番

コマンド (m でヘルプ): n ←新しいパーティションを作る
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p ←パーティションリストを表示
領域番号 (1-4): 1 ←最初のパーティション
最初 シリンダ (1-1008, default 1): [Enter キーを押す]
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-1008, default 1008): 717 ←このくらいのサイズを用意する

コマンド (m でヘルプ): n ←2番目のパーティション
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 2
最初 シリンダ (718-1008, default 718): [Enter キーを押す]
Using default value 718
終点 シリンダ または +サイズ または +サイズM または +サイズK (718-1008, default 1008): [Enter キーを押す]
Using default value 1008

コマンド (m でヘルプ): a ←ブートパーティションを
領域番号 (1-4): 1 ←最初のパーティションにマーク

コマンド (m でヘルプ): t ←FAT32のファイルシステムを
領域番号 (1-4): 1 ←最初のパーティションに設定
16進数コード (L コマンドでコードリスト表示) : b
領域のシステムタイプを 1 から b (W95 FAT32) に変更しました。

コマンド (m でヘルプ): p ←パーティションリストを表示

Disk /dev/sda: 1023 MB, 1023934464 bytes
32 heads, 62 sectors/track, 1008 cylinders
Units = シリンダ数 of 1984 * 512 = 1015808 bytes

 デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1     *         1         717      711233    b  W95 FAT32
/dev/sda2             718        1008      288672   83  Linux

コマンド (m でヘルプ): w ←変更を書き込む
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
root@ttyp0[knoppix]# mkfs.vfat -v /dev/sda1
↑KNOPPIX が入るパーティションをフォーマット

root@ttyp0[knoppix]# mount /dev/sda1 /media/sda1
↑USB メモリ中の最初のパーティションをマウントする

root@ttyp0[knoppix]# mkdir /media/sda1/KNOPPIX
↑ディレクトリを作成

root@ttyp0[knoppix]# cp -R /cdrom/KNOPPIX/* /media/sda1/KNOPPIX/
↑KNOPPIX のイメージをすべてコピー

root@ttyp0[knoppix]# cp -R /cdrom/boot/isolinux/* /media/sda1/
↑ブートに関連するファイルをコピー

root@ttyp0[knoppix]# syslinux /dev/sda1
↑ブートローダを書き込む

root@ttyp0[knoppix]# mv /media/sda1/isolinux.cfg /media/sda1/syslinux.cfg
↑ブートローダは syslinux にするので名前変更

root@ttyp0[knoppix]# shutdown -r now
↑システムをリブートする。
(シャットダウンしたらCD-R を抜き、USB メモリから起動するようにBIOS のチェックを忘れずに)
シェルスクリプト
#/!bin/sh

mkfs.vfat -v /dev/sda1
mount /dev/sda1 /media/sda1
mkdir /media/sda1/KNOPPIX
cp -R /cdrom/KNOPPIX/* /media/sda1/KNOPPIX/
cp -R /cdrom/boot/isolinux/* /media/sda1/
syslinux /dev/sda1
mv /media/sda1/isolinux.cfg /media/sda1/syslinux.cfg
shutdown -r now
※これでうまくいかない場合は、Windows から syslinux.exe -m を試してみること(syslinux はダウンロード )。
トラックバック URL: https://perltips.twinkle.cc/trackback/149
from Perl Tips on 2007/11/16(金) 07:44
6 Nice! Google AdSense 最近の Ubuntu がなかなか良くできてきている。昨年(2006年)はこのブログでも Knoppix を紹介したが、これからは Ubuntu だと確信する。2007年4月バージョン(Ubuntu のバー
Posted on 2006-12-04 by yas |