移行作業中です...

はてなブログの該当ページへリダイレクトします。お手数をおかけします。ご容赦ください。

Knoppixを起動する方法をいろいろ試しためも

はてなブックマーク

2007.9.29 作成
2007.10.27 フロッピー + USBメモリを追記
2008.4.7 産総研版knoppix-terminalserverのスクリプト修正を追記
2010.8.22 KNOPPIX Terminal Server のスクリーン・ショットを追加
最終更新日 2010.8.22

※ KNOPPIX バージョン 5.3.1 (5.1.1) での確認です。6.x 以降では若干違うかもしれませぬかなり違うので参考にならないかもしれません

CDドライブのないパソコンで、Windowsの設定など既存環境は一切変えずにKnoppixを試したい場合とか。

あっと、あくまで LiveCD(or 仮想CD)としてブートさせるやり方ばかりです。

結構面倒だったりするのではありますが...とりあえず試しためもです。

ツール類

Windowsでisoファイルの展開

CDに一旦焼く、または WinRAR 7-Zip などで展開。下記のツールも便利。

Windowsでフロッピーイメージの書き込み

SYSLINUX

Windows上でUSBメモリやFDへのインストール方法

zipファイルをダウンロードして展開。コマンド プロンプトで win32 ディレクトリに移動。下記コマンドを実行

syslinux.exe <ドライブレター>:

くれぐれもドライブレターを間違えないように!

syslinux.exe -ma <USBメモリなどのドライブレター>:
設定ファイル

バージョン3.35以降

  • SYSLINUX は syslinux.cfg、ISOLINUX は isolinux.cfg
    • 場所はそれぞれ/ or /syslinux(/isolinux) or /boot/syslinux(/boot/isolinux) ディレクトリに置く
    • kernel などのファイル指定はカレントディレクトリからの相対パスか、/を付けて絶対パスで表記
  • PXELINUXでは pxelinux.cfgディレクトリ内の default ファイル
    • kernel などのファイル指定はtftpディレクトリのルートからの相対パスで

GRUB for DOS

HDやFDからのブート時に使用。Windows XP/2000 のntldrからチェーンロード可能。

FD/CD/USBメモリなどでの使用や SYSLINUX や BCDW からのチェーンロードも可能。

Knoppix のブートの流れ

これを理解しておくと、環境に応じて色んな手段が取れます(※と言いつつ内容はあまり自信なし。ごめんなさい)。CDブートできない場合や、CDブート可能だが、CDブート後にCDを入替えしたい時など。

ブートの流れは基本的にこんなかんじかな。

  1. BIOSが対応しているブートデバイスを選択
  2. ブートセクタ内のブートローダ(IPL)OSのブートローダ
  3. ブートローダがkernelとinitrd(初期RAMディスク - 「ミニ」ルートイメージ)読み込み
  4. initrd をRAMディスク上に展開し(ミニ)ルート【/】としてマウント
    • デバイスの初期化など。ここでBIOSでは非対応のUSBなどの認識も可能に(サポートしていれば)
  5. Knoppix本体のルートイメージファイル/KNOPPIX/KNOPPIX)を検索してルート【/】としてマウント

kernelとinitrd読み込み後はUSBなどのデバイスの認識が可能になる。ブートさせるデバイス(ブートローダやkernelなど)とKnoppixイメージの場所はそれぞれ別でもよい。HDからブートしてCDやUSBメモリ内のイメージをルートしてマウント、CDからブートしてHDやUSBメモリ内のKnoppixイメージをマウントすることも可能。

※kernelは約2MB程なので1.44MBフロッピーには入らない。

注意点は、ブートデバイスとは別の場所のKnoppixイメージをマウントした際は、ブートデバイス側はマウントされないが、Knoppixイメージ側はアンマウントできない(HDの該当パーティションは書き込み可能でリマウントはできるがリカバリーイメージの復元はできない。日本語ファイル名は正しく表示されない)。

すべてのデバイスを制限なしで利用するには、ネットワークブートか、toramオプション(メモリにKnoppixイメージをコピー)で。

3つの条件
  1. ブートローダ
    • CD - ISOLINUXなど
    • FD - GRUB(for DOS)DOS+LINLD(loadlin)など
    • HD - GRUB(for DOS)DOS+LINLD(loadlin)など
    • USBメモリ - SYSLINUXなど
    • ネットワーク(DHCP/TFTPサーバ) - PXELINUX
  2. kernelinitrd などブート関連ファイル(/boot/isolinuxディレクトリ)
    • CD / HD / ネットワーク(DHCP/TFTPサーバ) / USBメモリ /
  3. Knoppix「本体」イメージ(KNOPPIXディレクトリ
    • CD / HD / ネットワーク(NFSサーバ) / USBデバイス /
    • 上記のデバイスからtoramオプションでメモリにコピー(※1GB以上必要)
    • ※Knoppixイメージのあるデバイス(パーティション)は /cdrom としてマウントされる

ややこしいけど以下注意点...

  • SYSLINUX(ISOLINUX,PXELINUX)では同一デバイス上のファイルを読み込み可能
  • Grub( for DOS)では、同一デバイスとHDとCD(USBはだめ?)のファイルを読み込み可能
  • ネットワークブート非対応PCでもNIC(LANアダプタ)が内蔵かPCIボードの場合、対応ROMがあればFD/CD/HD/USBデバイスからネットワークブートが可能
  • 【3】がCDの場合、CDの入れ替えはできない
  • 【3】がHDやUSBメモリなどの場合、該当パーティションはアンマウントやリカバリーイメージの復元などできない、日本語ファイル名が正しく表示されない(書き込みは可能?)
  • PCのBIOSがUSBデバイスのブートに非対応でも【3】ではUSBデバイスの認識はほぼ可能?
  • GRUB for DOSのFDでブートした場合、【2】は内蔵HD(または内蔵CDドライブ)のみ?
  • メモリが1GB以上ある場合、オンメモリ・オプション(toram)を指定して【3】をメモリにコピーすることが可能。デバイスの利用制限はなし。
CDでブートしてHDのイメージをマウント

一旦起動するが、いわゆる「シェルに落ちる」状態でGUIが起動できない場合とかに試してみる手段の一つとして。

Knoppix起動後はCDを入替えできる。空き領域700MB以上必要。

Windowsが健在ならGRUB for DOSを使ってHDからブートした方が簡単ですが、Windowsがブートできず、Knoppix上でCD-Rドライブを使いたい場合など。

KNOPPIXディレクトリを削除したCDでブートするか、通常CDでブートしてオプションを指定する。

※無指定だと/dev/hdc などCDドライブが優先かな?

  1. HDのパーティションのルートへKNOPPIXディレクトリを保存、ブート時にオプション指定
  2. 例:knoppix bootfrom=/dev/hda2

hda2はPATA接続HD1台目2番目のパーティションの場合

※ 一時的な使用なら、HD上にKNOPPIXディレクトリを保存、CDブート、kernel,initrd ロード後にペンギンが出た時点でCDを抜いてしまうとか。

または、

  1. CDブート時にオプション指定
    • knoppix tohd=/dev/hda2
    • これでKNOPPIXディレクトリが指定したHD上にコピーされてマウントされる
    • 次回起動時のオプションは knoppix fromhd=/dev/hda2

多分、USBメモリなどのKnoppixイメージのマウントも可能なはず。/dev/sda とか /dev/sda1,/dev/sdb1,...

これとは逆に、HDやPXEでブートしてUSBデバイスなどのルートイメージのマウントもできるはず?

最も便利なのは、ネットワークブートかな

(ネットワーク上のKnoppixイメージをマウントした場合ですけど)、CDも含めすべてのデバイスが制限されずに利用可能なので。

さらに便利&軽快動作は、イメージをオンメモリで

メモリは1GB以上必要ですが、非常に軽く動くとこのこと。デバイスの利用制限もなし。ブート手段は何でも。

  • オプション指定:knoppix toram

HTTP-FUSE-KNOPPIX

Knoppix本体イメージはマウントせず、インターネット上のサーバから必要なファイルをダウンロードしつつ起動します。通常版と比べ動作は重いです。

通常版との違いは...

通常版と違い不便な点

参考

オンメモリ

実は試したことないので推測です。すみません...

※搭載メモリは1GB以上必要です。

ブート時にオプションを入力(または設定ファイルに追記)

boot: knoppix toram

ネットワークブート

KNOPPIX Terminal Server

別マシンにて KNOPPIX 5.3.1CD をブートさせてサーバ機とします。

ルーターのDHCPサーバ機能が有効なら、ほぼ設定要らずでクリックして行くだけで Terminal Server の起動ができました。

以下、サーバ側での操作です。

※ コマンド実行は knoppix-terminalserver で。テキストモードでも実行可。

ペンギンアイコン 【Services】【Start KNOPPIX Terminal Server】をクリック

knoppix-terminalserver のスクリーンショット1

KNOPPIX 6.2DVDでは...

メニューは違いますが、他のメッセージ画面などほぼ同じでした。

KNOPPIX6.2DVD knoppix-terminalserver のスクリーンショット

殆ど、デフォルト設定のまま【OK】クリックでいいかと思います。

knoppix-terminalserver のスクリーンショット2

knoppix-terminalserver のスクリーンショット3

NIC(LANアダプタ)選択

knoppix-terminalserver のスクリーンショット4

KNOPPIXサーバが割り当てるIPアドレス範囲。そのままでいいかと。

knoppix-terminalserver のスクリーンショット5

対応NICの選択。メジャーどこは選択済みかな?

knoppix-terminalserver のスクリーンショット6

オプションの選択。「secure: Disable root access on client(s)」はオフにした方がいいかと 6.2 では root 権限での実行ができなくなるので。

knoppix-terminalserver のスクリーンショット7

ブート・オプションを追加するならここで。

knoppix-terminalserver のスクリーンショット8

最終確認。【Yes】をクリックで。

knoppix-terminalserver のスクリーンショット9

尚、Terminal Server 稼動中はルーターのDHCPサーバ機能はオフにした方が無難かと思います。

クライアント側の起動

BIOSのブート設定で LAN (Network) を有効に設定。LAN (Network) を選択(または優先に)してブートしませう。CDブート時と同じKNOPPIXブート画面が出るので(※ オプション不要なら)Enter するだけ。

但し、BIOSがネットワークブートに対応していても KNOPPIX が対応していないNICの場合はブートしかけても KNOPPIX が起動できません。新しい規格のNICには対応していない場合もあるのでご注意。

Windowsや別のLinux上でTerminal Serverを動かすには...

ポイントはNFSマウントをサポートした kernel と initrd を取り出すこと。

  1. Knoppix(ライブCDの部屋さんバージョン)をブートして knoppix-terminalserver を起動
  2. /tmp/tftpbootディレクトリをコピーして取り出しておく
  3. コピーしたファイルを参照してDHCP/TFTPサーバを設定(Windowsならtftpd32などで)
  4. NFSサーバを設定(WindowsならシェアウェアですがhaneWINとか)。ディレクトリcdrom を作成してKNOPPIXディレクトリをコピー(※ディレクトリ名が cdrom じゃないとだめっぽい)。
  5. exportsファイルにcdromディレクトリのパスを追記

サーバ側のpxelinuxの設定ファイル(/tftpboot/pxelinux.cfg/default とか)のIPアドレスやパスを編集する必要があるかも。

<略>
APPEND nfsdir=192.168.0.8:/cdrom
<略>

産総研版 5.1.1CDのスクリプトを修正

【追記】最新版 5.3.1CDでは修正不要

産総研版5.3.1CDでは修正不要でブート可能でした。

KNOPPIX 産総研版 5.1.1CDでは下記ページの解説にある通りスクリプトを修正すればブート可能になりました。

261行目のif構文の1番目を削除して、その後の'elif'を'if' に置換

$ which knoppix-terminalserver   --- スクリプト(コマンド)の場所確認
/usr/sbin/knoppix-terminalserver
$ cd /usr/sbin
$ su
# mv knoppix-terminalserver ts_orig
# sed -e '263s/elif/if/' -e '261,262d' ts_orig > knoppix-terminalserver
# chmod 755 knoppix-terminalserver
# exit
$ more +260 knoppix-terminalserver  --- 確認

$ knoppix-terminalserver &

InetBoot

httpfsを使い、httpサーバ上のisoイメージから起動します。KNOPPIXだけでなく、FedoraやUbuntuのLiveCDも起動可能。

HTTP-FUSE-KNOPPIXをネットワークブート

HTTP-FUSE-KNOPPIXをブートさせるならサーバマシンは低スペックでも可能です。でもクライアント側の動作はかなり重くてクセがあるのが難点かな?クライアント側のメモリは512MB以上必要。NFSサーバ不要。

起動ディスク

ネットワークブート非対応のマシンでも、NIC(LANアダプタ)が内蔵 or PCIボードなら起動ディスクからネットワークブートできるかもしれません。FD(SYSLINUX/Grub)、CD(ISOLINUX/Grub)、USBメモリ(SYSLINUX/Grub)でも読み込み可能。GRUB for DOS を設定すればHDからネットワークブートも可能。

USBフラッシュメモリ

これが本命ですかな。

USBカードリーダーやリムーバブルデバイスとして利用可能なUSB接続デジカメでもブート可能なことがあります。

USB-Knoppix の作成(通常版)

手動で作成。WindowsでSYSLINUX最新版(※3.35以降)を使う場合

  1. CD内のファイルをコピー
  2. /boot 下の isolinux ディレクトリ名を syslinux にリネーム
  3. syslinux ディレクトリの isolinux.cfgsyslinux.cfg にリネーム
  4. ブートローダ SYSLINUX をインストール

LiveCDなどに含まれる古いバージョンのSYSLINUXを使う場合

  1. CD内のファイルをコピー
  2. /boot/isolinux ディレクトリ内のファイルをルートにコピー
  3. isolinux.cfgsyslinux.cfg にリネーム
  4. ブートローダ SYSLINUX をインストール
mkbootdev(5.1.1 以降)

コンソールからコマンド実行

  1. A: Don't change partitions on USB storage
    • ファイルのコピーとSYSLINUXのインストール、MBR(ブートストラップ)書き込み
  2. B: Create system on USB storage using a FAT32 partition
    • MBRをクリアしてパーティションを1つ作成、FAT32でフォーマット
    • ファイルのコピーとSYSLINUXのインストール、MBR(ブートストラップ)書き込み
  3. C: Create system on USB storage without partitions
    • MBRクリア
    • パーティションのない状態でFAT32フォーマット
    • ファイルのコピーとSYSLINUXのインストール
1GB SDメモリでの確認

SDメモリはパーティションあり、カードリーダ付プリンタ(PM-A850)で確認しました。BIOSでは「USB LS120」で認識。

  • フォーマットFAT32ではだめ(SYSLINUXのエラー表示)
  • FAT(16)フォーマット後に上記(手動 or mkbootdevのA)の手順実行でブートOK
  • USB1.1ではCDブートに比べ動作が重い
USBブート非対応PCでSDメモリのKnoppixイメージのマウント
  • 通常CDブート + SDメモリ - できたりできなかったり(CDをマウントしてしまう)
    • boot時にオプション knoppix bootfrom=/dev/sda1 入力
  • 通常CDブート + SDメモリのKNOPPIXディレクトリ名をknoppix3に変更 - ほぼOK
    • boot時にオプション knoppix knoppix_dir=knoppix3 入力
  • 通常CDブート、ペンギン表示後にCDを抜いてしまう - ほぼOK
  • HDブート + SDメモリ - ほぼOK
  • PXEブート + SDメモリ - ほぼOK

Can't find KNOPPIX filesystem sorry.
Dropping you to (very limited) shell.

上記の様なメッセージが出て、USBメモリ内のKnoppixイメージがマウントできない場合に、kernel,initrd読み込み後USBランプが消えた直後にUSBポートを挿し直すとマウント可能になることがあります。

Allowing slow USB-devices some more time to register...ok

このメッセージが出れば多分OK。

※HTTP-FUSE-KNOPPIX なら8MB程なので少量サイズのメモリなどでも可能です(※ただ、前述の通りクセがあるのでご注意)。

USBメモリに書き込むには?

USBメモリからブートした際は、USBメモリが /cdrom として読み取り専用でマウントされるのでそのままでは書き込みできません。以下のコマンド実行すればroot権限での書き込みが可能になります。

$ sudo mount -o remount,rw /cdrom
$ sudo konqueror &

でも、日本語ファイル名など正しく表示されないので、常用するのならパーティションを分けた方がいいと思います。

フロッピー + USBメモリ

ここはまだ書きかけなのですが...

USBブート非対応なPCでFDブートからUSBメモリの本体イメージをマウントして起動する方法です。尚、PXEブート対応、または、HDにkernel と initrd を保存できるなら(FDかHDブートで)そちらの方が簡単です。

DOS起動ディスクでブートして、loadlin.exe または LINLD.COM から kernel と initrd をロードさせます。

未確認ですが、USB-CDドライブのマウントも できるのではないかと 一応できました

フロッピー + ハードディスク

Windows 9x などの古めのマシンならこの方法がいいかも(GUIを使うにはメモリは256MBないと苦しいと思いますけど)。元のisoイメージはライブCDの部屋さんバージョンを使いました。

この方法の問題点なのですが、knoppixイメージを保存したパーティションは /cdrom としてマウントされます。日本語名ファイル/ディレクトリがNTFSでは非表示、FAT32ではすべて文字化けしてました。オプションを指定してリマウントしてもだめ。ということで専用パーティションを作ったほうがいいかも?

また、多分Knoppix起動後にデスクトップのアイコンクリックではローカルハードディスクをマウントできません。Konqueror移動記憶メディア、または /etc/fstab を確認してコマンドで。

設定は以下3点

  1. GRUB起動ディスク作成(フロッピー)
  2. menu.lst の編集
  3. ハードディスクへファイルをコピー
GRUB起動ディスク作成
  1. SourceForge.net: GRUB4DOS and WINGRUB: Filesより grub_for_dos-0.4.2.zip(または grub_for_dos-0.4.1.zip) をダウンロード
  2. fat12grldr.img を RawWrite for Windows などでフロッピーへ書き込み
  3. Knoppix CD内のの boot\isolinux\isolinux.cfg を参照
  4. フロッピー内のmenu.lst に項目を追記

こんなかんじに編集追記(※ライブCDの部屋さんバージョンの場合)

--------略--------
# knoppix KDE
title KNOPPIX
      find --set-root /boot/isolinux/linux
      kernel /boot/isolinux/linux ramdisk_size=100000 init=/etc/init lang=ja-utf8 im=scim apm=power-off vga=791 nomce loglevel=0 quiet BOOT_IMAGE=knoppix
      initrd /boot/isolinux/minirt.gz

# knoppix fluxbox
title Knoppix fluxbox
      find --set-root /boot/isolinux/linux
      kernel /boot/isolinux/linux ramdisk_size=100000 init=/etc/init lang=ja-utf8 im=scim apm=power-off vga=normal nomce loglevel=0 quiet BOOT_IMAGE=knoppix desktop=fluxbox
      initrd /boot/isolinux/minirt.gz

# knoppix text mode
title Knoppix text
      find --set-root /boot/isolinux/linux
      kernel /boot/isolinux/linux ramdisk_size=100000 init=/etc/init lang=ja-utf8 im=scim apm=power-off vga=normal nomce loglevel=0 quiet BOOT_IMAGE=knoppix 2
      initrd /boot/isolinux/minirt.gz
--------以下略--------
ハードディスクへファイルをコピー
  • Knoppix CD内の boot 及び KNOPPIX ディレクトリを対象ドライブのルートへコピー

GRUBの選択画面でEnterでデフォルト設定(コードはUTF-8)のKNOPPIXが起動します。

USBメモリ + ハードディスク

この方法の問題点なのですが、knoppixイメージを保存したパーティションは /cdrom としてマウントされます。日本語名ファイル/ディレクトリがNTFSでは非表示、FAT32ではすべて文字化けしてました。オプションを指定してリマウントしてもだめ。ということで専用パーティションを作ったほうがいいかも?

また、多分Knoppix起動後にデスクトップのアイコンクリックではローカルハードディスクをマウントできません。Konqueror移動記憶メディア、または /etc/fstab を確認してコマンドで。

ブートローダは SYSLINUX、元のisoイメージはライブCDの部屋さんバージョンを使いました。

設定は以下4点

  1. USBメモリへKNOPPIXのブート関連ファイルをコピー
  2. isolinux.cfgsyslinux.cfgへリネーム
  3. USBメモリへ SYSLINUX のインストール
  4. ハードディスクへファイルをコピー
USBメモリの設定
  1. KNOPPIX CD内の boot\isolinuxディレクトリ内のファイルをUSBメモリのルートへコピー
  2. isolinux.cfgsyslinux.cfgへリネーム
  3. USBメモリへ SYSLINUX をインストール
ハードディスクへファイルをコピー
  • Knoppix CD内の KNOPPIX ディレクトリを対象ドライブのルートへコピー

boot: プロンプトでEnterキーでデフォルト設定(コードはUTF-8)のKnoppixが起動します。起動ラベルなどはsyslinux.cfgを参照で。

ハードディスクのみ(Windows 2000/XP)

「Windowsの設定など既存環境は一切変えずに」にではないのですけど。

この方法の問題点なのですが、knoppixイメージを保存したパーティションは /cdrom としてマウントされます。日本語名ファイル/ディレクトリがNTFSでは非表示、FAT32ではすべて文字化けしてました。オプションを指定してリマウントしてもだめ。ということで専用パーティションを作ったほうがいいかも?

また、多分Knoppix起動後にデスクトップのアイコンクリックではローカルハードディスクをマウントできません。Konqueror移動記憶メディア、または /etc/fstab を確認してコマンドで。

boot.ini は書き換えられると言っても追記するだけなので問題ないと思います(残っても消せばいいだけなので)。MBR(のブートストラップ)は書き換えません。というわけで影響とか心配しなくてよさそうなかんじです?

ブートローダ GRUB for DOSをWindows XP/2000 の ntldr からチェインロードさせます。

手動設定

手動で設定する場合 (Windows XP/2000)

attrib -h -r -s C:\boot.ini
copy C:\boot.ini C:\boot.ini.txt /y
echo.>>C:\boot.ini
echo C:\grldr="GRUB for DOS">>C:\boot.ini
attrib +h +r +s C:\boot.ini
notepad C:\boot.ini

※最終行 --- メモ帳で内容確認。

echo.>>C:\menu.lst
echo title Knoppix 5.3.1 (SSK) from HDD>>C:\menu.lst
echo     find --set-root /knoppix3.conf>>C:\menu.lst
echo     configfile /knoppix3.conf>>C:\menu.lst
echo.>>C:\menu.lst
echo title Knoppix 5.1.1 (SSK) from HDD>>C:\menu.lst
echo     find --set-root /knoppixs.conf>>C:\menu.lst
echo     configfile /knoppixs.conf>>C:\menu.lst
echo.>>C:\menu.lst
echo title Knoppix 5.1.1 (LCR) from HDD>>C:\menu.lst
echo     find --set-root /knoppix.conf>>C:\menu.lst
echo     configfile /knoppix.conf>>C:\menu.lst
notepad C:\menu.lst

※最終行 --- メモ帳で内容確認。メニューの最後に追記されます。

install2win (産総研版 5.1.1CD)

産総研版 5.1.1CD にはセットアップ用ファイルが付属しています。Windows上のCドライブにファイルがコピーされました。

  1. CD内の install2win.bat を実行。10分程でコピーが終わる
  2. 再起動すると、ブート選択画面(Windowsのboot.ini)が出る
  3. 「GNU GRUB for KNOPPIX」を選択すると、今度はGRUB画面が出現

産総研版の方はデフォルト euc-jp なので menu.lst に UTF-8 用も追記しとくといいかも。

私の環境では C:\menulst でした。

default=0 
timeout=10 
 
title KNOPPIX(ja,normal) 
root (hd0,0) 
kernel /knoppix/linux ramdisk_size=100000 init=/etc/init ro lang=ja vga=791 
initrd /knoppix/minirt.gz 
--- 省略 ---

こんなかんじで追記。

default=0 
timeout=10 
 
title KNOPPIX(ja,normal) 
root (hd0,0) 
kernel /knoppix/linux ramdisk_size=100000 init=/etc/init ro lang=ja vga=791 
initrd /knoppix/minirt.gz 

title KNOPPIX(UTF-8) 
root (hd0,0) 
kernel /knoppix/linux ramdisk_size=100000 init=/etc/init ro lang=ja.utf8 vga=791 
initrd /knoppix/minirt.gz 
--- 省略 ---

アンインストールは unsetup.bat の実行でいいようです。

KnoppixファイルをDドライブなどに移動する場合は、menu.lstの root (hd0,0) を 変更します(root (hd0,1)とか)。

find --set-root /knoppix/linux で検索させてもいいかも。

Written by yassy