WindowsへインストールできるKNOPPIX 3.4UNIX USER2004年9月号より転載

1CD Linuxとして人気のあるKNOPPIX。最新版の3.4日本語版では、Windows 2000/XPのHDD上にコピーして、CD-ROMなしにHDDからより高速に利用する方法が用意されている。ここでは、その手順と仕組みを解説する。また、ハードウェアの自動認識に失敗した場合の対処例も合わせて解説しよう。

» 2004年08月19日 14時30分 公開
[UNIX USER]

より手軽になったKNOPPIX 3.4

 KNOPPIXは、HDDへインストールせずにCD-ROMから起動して利用できる、Debian GNU/LinuxをベースとしたLinuxディストリビューションである。ハードウェアの自動認識機構が優れているため、PCにCD-ROMをセットし、電源を投入するだけで、気軽にLinux環境を利用できる(図1)。標準のデスクトップ環境はKDEだ。また、日本語版は独立行政法人 産業技術総合研究所がメンテナンスしており、その完成度は高い。

図1 図1 KNOPPIX 3.4日本語版のデスクトップ(クリックで拡大します)

 さらに、最新のKNOPPIX 3.4日本語版(knoppix_v3.4_20040517-20040629.iso)では、Windows用インストーラを同梱し、すでにWindowsがインストールされている環境にCD-ROM分の空き容量(約700MB)があれば、HDDにKNOPPIX本体をコピーし、そこから起動させることが手軽にできる。当然HDDのほうがCD-ROMに比べて読み込み速度が速いので、より快適な環境にもなる。

 KNOPPIX 3.4の主なソフトウェアはリスト1のとおりである。そのほかの関連情報や利用方法などは、以下のURLから参照していただきたい。

http://unit.aist.go.jp/it/knoppix/

Linuxカーネル2.6.6/2.4.26
glibc 2.3.2
XFree86 4.3.0
KDE 3.2.2
OpenOffice.org 1.1.1
リスト1 KNOPPIX 3.4(knoppix_v3.4_20040517-20040629.iso)の主な構成

起動後のネットワーク認識

 KNOPPIXは多くのデバイスを自動認識してくれるが、中には認識できないデバイスもある。例えば、3Com製のギガビットイーサネット3c940が認識されない。これを例に、起動後に認識させる手順を以下で紹介しよう。

 まず、KNOPPIXに認識させたいデバイスのカーネルモジュールが存在するか確認する。lspciコマンドを実行して、一覧に表示されるか否かが1つの目安だ(実行例1)。ここで製品名などが表示されていれば、存在する可能性が高い。

$ sudo -s       ← rootになる
# lspci         ← PCIデバイスの一覧表示
0000:00:00.0 Host bridge: Intel Corp. 82875P Memory Controller Hub (rev 02)
0000:00:01.0 PCI bridge: Intel Corp. 82875P Processor to AGP Controller (rev 02)
        :
        :
0000:02:03.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 46)
0000:02:05.0 Ethernet controller: 3Com Corporation 3c940 10/100/1000Base-T [Marvell] (rev 12)
# lspci -n       ← 各デバイスのPCI IDを表示
        :
        :
0000:02:03.0 Class 0c00: 1106:3044 (rev 46)
0000:02:05.0 Class 0200: 10b7:1700 (rev 12)
                         ~~~~~~~~~~~~~~~~~~
実行例1 KNOPPIX 3.4上でデバイスの状況を確認

 3c940の欄を見ると分かるように、3c940はMarvell製のチップである。KNOPPIXと同じバージョンのカーネルソース(2.6.6)で、drivers/netディレクトリ以下を「Marvell」や「3Com」、PCI IDの「10b7」と「1700」などで検索すると分かるが、必要なモジュールはsk98lin.koである。

 モジュールが特定できたら、これを読み込む(実行例2)。ネットワークインタフェースの場合は、eth0が利用可能になったあと、IPアドレスの設定が必要だ。IPアドレスをDHCPから自動取得するなら/sbin/pumpコマンドで、固定のIPアドレスを割り当てるならifconfigコマンドで設定する。最後にifconfigコマンドでeth0にIPアドレスが割り振られたか確認しておこう。

 以上で作業は完了だ。これでネットワークが利用できるようになる。

# modprobe sk98lin
# /sbin/pump -i eth0
# ifconfig eth0
    :(IPアドレスが設定されたかを確認)
    :
実行例2 モジュールの読み込み

Windows 2000/XPへのインストール

 まずは、手順から解説していこう。作業内容としては、Windowsが起動している状態で、KNOPPIX本体とHDDからの起動に必要なGRUB関連のファイルをHDDにコピーし(リスト2)、GRUBとC:\boot.iniの設定を行うこととなる。

C:\KNOPPIX\KNOPPIX              KNOPPIX本体
C:\KNOPPIX\linux26              Linuxカーネル
C:\KNOPPIX\miniroot_ntfs.gz     ミニルート(initrd)
C:\boot以下                     GRUB関連のファイル
リスト2 Windows上にコピーされるファイル

 このためのバッチファイルinstall2win.batがCD-ROMのトップディレクトリに用意されているので、実際の作業はこれをAdministrator権限のあるユーザーで実行するだけだ注1。KNOPPIXのCD-ROM(付録Disk2)をドライブに挿入したら、CD-ROMのトップディレクトリにあるinstall2win(install2win.bat)をダブルクリックして実行しよう。しばらくして700MBほどのファイルがコピーされたら完了である。

 あとはWindowsを再起動すれば、起動時に次のような選択画面が表示されるようになる。

Microsoft Windows XP Professional
GNU GRUB for KNOPPIX

 デフォルトではWindowsが起動するようになっているので、KNOPPIXを起動するには、矢印キーで下側を選択し、Enterキーを押す。

 続いて、GRUBのメニュー画面が表示されて、Enterキーを押せばKNOPPIXが起動する。

KNOPPIX26
KNOPPIX26(failsafe)

注1 install2win.batは、WindowsがCドライブにインストールされている標準的な状態を想定している。ほかのドライブにWindowsをインストールしていたり、KNOPPIXのインストール先をCドライブ以外にしたかったりする場合は、ファイルのコピーを行うinstall2win.batやGRUBなどの起動設定を行うboot/grub/setup.batの作業内容を参考に、手作業で同様の作業を行う。

Windows上のファイルから起動できる仕組み

 PCからOSが起動する様子を示すと、図2のようになる。BIOSの設定によって、HDDかCD-ROMのどちらかが優先され、そこに起動できるものがあれば、ブートローダーを経由してOSが起動する。上側がWindowsや前述の作業を行った場合の起動、下側がKNOPPIXがCD-ROMから起動したときの流れである。前述の作業は、Windowsが用意しているブートローダーNTLDR(NT Loader)をそのまま使い、MBRへの変更がないので、比較的安全にインストールできる方法である。

図2 図2 PC起動の仕組み(クリックで拡大します)

 NTLDRの仕組みを図示すると、図3のようになる。NTLDRは、C:\boot.iniファイルの設定を読み込み、通常のパーティション情報を基にしたOS起動と、ファイルに書かれたパーティション情報を基にしたOS起動ができる。前述の作業で作成されるboot.iniはリスト3のようになるが、Windows XPの起動に関する設定はパーティション指定、KNOPPIXに関する設定は、ファイルから情報を読み取り起動するものだ。

図3 図3 Windows 2000/XPの起動の仕組み(NT Loader)(クリックで拡大します)
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
        ↑ 通常のパーティション情報から起動
C:\boot\grub\stage1="GNU GRUB for KNOPPIX"
        ↑ ファイルから情報を読み起動
リスト3 C:\boot.ini

 ブートローダーGRUBはstage1とstage2から構成され、MBRや起動セクターに置かれるのがstage1である。stage1はファイルシステムを理解できないので、stage1にはstage2がHDD上のどこに配置されているのかが直接書かれていて、stage2を読み込むようになっている。したがって、stage2の場所が移動した場合、つまりstage2のコピーやデフラグなどを行った(行われてしまった)場合は、stage1を再構成する必要がある。もし、KNOPPIXが起動できなくなったら、C:\boot\grub\setup.bat(grubinstall.exe)を実行して、再構成を試してみると良い。

 同様にして、別パーティションにあるOSもNTLDRから起動できる。詳細な手順は省略するが、別パーティションの起動(先頭)セクターをファイルとして用意すればOKだ。Windowsを普段使っているなら、ほかのディストリビューションなどでも、利用してみてはいかがだろう。

Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.