Palm84 某所の日記

死のうは一定、しのびクマには何しよぞ...

USBメモリでブートいろいろ “ミニ”Linux編

ノートPCのリカバリーはKNOPPIX上のPartimageで行っているのですが、内蔵のコンボドライブの調子が思わしくないのです。Windows上ではCD-R/RWの書き込みがすべてエラーになり、DVDビデオなども再生できなくなってしまいました(嗚呼!ムフフなやつが見れないやん〜、ってなにいわすのw)。また、LiveCDなどもRWに焼くとなかなかブートしてくれません。

というわけで、USBメモリでネットワークとPartimageが使える“ミニ”Linuxについてのめも。

ちなみに、私が現在持ってるのはなんとたったの128MB(BUFFALO RUF-C128M/U2)です。(´・ω・`)

確認はVIA P4N266チップなノートPCで行いました。BIOSでは「USB LS120」と認識されてます。(最近気づきましたが、USB接続したCasioのデジカメ(EX-Z4)でもブートできたのはびっくりしました。)

ぶっちゃけ、1GB以上なUSBメモリでUSB-KNOPPIXするのが本命というか最もストレスないかと思いますけど、そこはそれ...(Knoppixを起動する方法を試しためも

SystemRescueCD でブートに成功して狂喜乱舞してたのですが(大げさすぎw)、ブートローダにsyslinuxを使っているものならほぼすべてのLiveCDで作成可能なのかも。但し、FAT16以外だめとかGRUBが起動しないとか相性はありそうです。



【余談ですが】FDブート可能な Norton Ghost や DriveImage とかが今でも人気がある(?)のはそれなりの理由があるのだなぁと納得してみたり。今時FDなんてと言われそうですけど、FDはメディアは壊れやすいとは言え、ドライブは結構丈夫ですよね。CDドライブの方はノートなんか特に壊れやすいように思います。外付けドライブ持ってないと不安だったりします。FDは簡単にブータブルCD化できますし。

戻ります

予備知識?とか

USBブートに関するあれこれは下記ページにて勉強しませう。


作業の際は、くれぐれもドライブ(デバイス)名の間違いがないようにご注意あそばせ。

【追記】ブートしない場合の注意点とか

理由がわかるほどのスキルなくてごめんなさいです。(汗。

  • ファイル名は8文字以内(または、8文字以内+拡張子3文字)。SYSLINUX 3.70 からこの制限はなくなっている様です。
  • フォーマットはFAT16(※パーティションは2GB以下)でないと駄目な場合がある(BIOSの対応)
  • Linux上で作業とWindows上での作業は結果が違う?(MBRのブートスラップの上書きがLinuxではうまく行かないことがある)
  • パーティションの切り方(切らない方がいい場合も)
  • パーティションを切った場合、MBRの手入れ(標準のブートストラップ)が必要な場合も
    • Windows上で syslinux -ma <ドライブ名>: の実行
    • Linuxでms-sysコマンド
    • install-mbr /dev/sdx(Debian系ディストリに含まれる)の実行
  • syslinuxの設定ファイルである syslinux.cfg はルートにおくこと or /syslinux or /boot/syslinux ディレクトリにおく(※注:バージョン3.35以降の場合)。kernelなどファイルの指定は、syslinux.cfg ある場所からの相対パスか/を付けて絶対パスで表記する
  • BIOSでの認識がUSB-FD USB-HDD の場合と、USB ZIP や USB LS120,USB RMD-FDD など所謂スーパーフロッピー扱いの場合では結果が違う?


Windowsでisoファイルの展開/抽出

Windows上で直接isoイメージを展開(抽出)するには Super ウルトラISO7-Zip などが便利です(※7-Zipで展開時の[BOOT]ディレクトリはブートセクタなので基本的に不要です)。

仮想CDソフトやWinRARなどでは、ファイル名がすべて大文字の8.3形式となってしまうことがあるため上記をおすすめします。

Windows上で SYSLINUXのインストール
  • zip版をダウンロード
  • 展開後にコマンドプロンプトでwin32フォルダに移動
  • syslinux.exe -ma X:

XはUSBメモリのドライブレターを指定。(mオプションはMBRへブートストラップ書き込み)

戻ります

SystemRescueCD


バージョン0.4.0以降ではPXEネットワークブート(dhcp+tftp+httpサーバ、クライアント側は要メモリ300MB以上)が可能だったり機能が増えていますが、サイズも160MB以上でやや重くなってる様なので、0.3.4あたりの方が安定して使えるような気もします。

【追記】0.4.2ではパラレルATAのHDDも/dev/sdxで認識されるもよう。

※バージョン0.3.4での確認です。

“ミニ”Linuxということで操作はほとんどCUIでする必要があると思いますが、メンテナンス系ツール満載で更新も頻繁(= バージョンが新しい)なのでかなり使えるかと。(これでSambaが起動してくれたらなぁ...最新版0.3.4で起動できました!やったぜカトちゃん。

概要
  • サイズ - 115MB(※0.3.4の場合。最新版は163MB程)
  • 英語版
  • Gentoo ベース
  • ウィンドウマネージャ - Window Maker
  • パッケージ
    • Partimage - バックアップ/リカバリー
    • Gparted - パーティション編集
    • Gpart/Testdisk - 診断ツール
    • ntfs-3g - NTFSパーティションへの書き込み
    • SSHサーバ
    • Webブラウザ - Firefox(※漢字は表示不可)
    • ファイルマネージャ - emelfm/mc
    • Sambaサーバは入ってるはずなのですが、起動してくれません...0.3.4で起動できました。但し、smb.conf の編集が必要でした。
注意点
  • 基本的にCUI操作
  • Gparted はGUIなので startx してから起動
日本語表示等

英語版なので、表示はだめ。日本語名ファイル/フォルダはを救出したい場合は親ディレクトリをコピーする。マウントのオプション(codepage,iocharset,nls)はきっちり指定すること。

Firefox ではひらがな/カタカナは表示されますが、漢字はだめ。

NTFSへの書き込み

ntfs-3g を使えば一応可能でした。一応というのは、名前に日本語を含むファイルがコンソール(ターミナル・エミュレーター)などで(ファイル名ではなく)ファイル自体全く表示できません(localeオプションを受け付けない?)。

読み取り専用でマウントした場合は、コンソール上では日本語ファイル名が文字化けで表示されますが、Sambaを起動して別マシンからアクセスすると、機種依存文字(丸付き数字)などを含むファイル名もすべて表示されました。

  • 読み取り専用でマウント
# mkdir /mnt/hoge
# mount -t ntfs -o nls=utf8 /dev/hda1 /mnt/hoge
  • 書き込み可能でマウント
# mkdir /mnt/hoge
# ntfs-3g  /dev/hda1 /mnt/hoge
作成

Vine Linux 上で作成してみました。事前にUSBメモリの領域再作成が必要かもしれない。上記ページの説明にはFAT32でフォーマットとなってますが、私の場合は、FAT32では駄目でFAT16でフォーマットしたらブート可能になりました。

  1. (Linuxの)fdiskで領域すべて削除
  2. 基本領域を1つ作成、bootフラッグを付ける
  3. FAT16でフォーマット
  • isoファイルをマウント
# mkdir /mnt/iso
# mount -o loop systemrescuecd-x86-0.3.2.iso /mnt/iso
  • USBメモリをマウント
# mkdir /mnt/usbkey
# mount -t vfat /dev/sda1 /mnt/usbkey
  • 必要なファイルをUSBメモリのルートにコピー
# cp /mnt/iso/syslinux/syslinux.cfg /mnt/usbkey/
# cp /mnt/iso/sysrcd.dat /mnt/usbkey/
# cp /mnt/iso/isolinux/* /mnt/usbkey/
# cp /mnt/iso/bootdisk/* /mnt/usbkey/
  • USBメモリをアンマウントして syslinux をインストール
# umount /mnt/usbkey
# apt-get install syslinux
# syslinux /dev/sda1
# sync

ブートオプション(チートコード)とか一例


fb800 setkmap=22 dodhcp
  • fb800 - モニター設定SVGA(800x600)表示の場合
    • ※startx でGUIが起動できない場合は他のラベル(nofb や vesa とか)を指定してみる
  • setkmap=jp - キーボードをjp配列に
  • dodhcp - DHCPクライアントを使う場合
    • 手動設定する場合はログイン後に、net-setup eth0 とか


ネットワーク上の他のマシンへファイルをコピー
  • ローカルHDドライブのマウント(NTFS)
# mount -t ntfs -o nls=utf8 /dev/hda1 /mnt/windows
  • ローカルHDドライブ/USBデバイスなどのマウント(FAT32)
# mount -t vfat -o codepage=932,iocharset=utf8,shortname=winnt /dev/hda2 /mnt/custom

【追記】FAT(16/32)パーティションのファイル名のアルファベット大文字をそのままコピーするには、オプションshortname=winntが必要でした。

  • ネットワークドライブをマウント
# mkdir /mnt/hoge
# mount -t smbfs -o codepage=cp932,iocharset=utf8,username=yassy //winxp/share /mnt/hoge

smbfsでのマウントは、codepage=cp932 を指定すること(※Windowsマシンや Shift-JIS環境のLANDISKなどの場合)。

コピーされた日本語名ファイル/フォルダもほぼ大丈夫な模様。丸付き数字、半角カタカナ、にょろ(全角チルダ)、「年表.xls」で確認。

  • My Documents フォルダをコピー
# cp -r /mnt/windows/Documents\ and\ Settings/yassy/My\ Documents /mnt/hoge/backup
Partimage でのネットワーク越しのバックアップ/リストア
# mkdir /mnt/hoge
# mount -t smbfs -o codepage=cp932,iocharset=utf8,shortname=winnt,username=yassy //winxp/share /mnt/hoge
# partimage

「Image file to create/use」に保存場所とファイル名を指定

/mnt/hoge/partimage/backup.img
【追記】Sambaの起動

こんなかんじでできました。

# smbpasswd -a root
# cd /etc/samba/
# cp smb.conf.example smb.conf
# ln -s /mnt /root
# /etc/init.d/samba start

\root が表示されない場合は\\IPアドレス\root\mnt(\\sysresccd\root\mnt)でアクセス。日本語ファイル名の表示もOKでした。

戻ります

HTTP-FUSE-KNOPPIX-4.0.2

どっちかというとネットワークブートで起動してしまえば「ミニ」ではないんですけど書いときます。最新版の 5.0.1 では起動できていないので バージョン 4.0.2 編です。

動作環境は搭載実メモリ512MB以上推奨とのこと。256MBでは nocache を指定すれば動くらしいのですが、かなり重くなる様です。

  • HTTP-FUSE-KNOPPIX
  • isoイメージのダウンロード
    • http://unit.aist.go.jp/itri/knoppix/http-fuse/knoppix-fuse-4.0.2_20060207.iso

概要

起動後はCD版と同様に使えます。

  • サイズ - 4.3MB
  • 日本語版
  • ウィンドウマネージャ - Kwin(KDE)
  • パッケージ
    • Partimage - バックアップ/リカバリー
    • QTparted - パーティション編集
    • Gpart/Testdisk - 診断ツール
    • Sambaサーバ
    • SSHサーバ
    • Webブラウザ - Firefox/Konqueror
    • ファイルマネージャ - Konqueror/ etc
注意点

  • ネットワークの状況次第でなかなか起動しないことも
  • NTFSへの書き込みは(原則)不可
  • 若干不安定かも?
日本語表示等

名前に機種依存文字を含むファイル/フォルダはKonquerorでコピーできない。コンソールから親ディレクトリ丸ごとコピーなら可能。Samba上での表示(Windowsマシンからアクセスした場合)は正常なので、Sambaを起動させてWindowsマシンから操作するのが楽。

作成
  1. USBメモリをFAT(16)でフォーマット
  2. bootディレクトリの“中身”をすべてUSBメモリのルートへコピー
  3. isolinuxフォルダを syslinux にリネーム
  4. isolinux.cfg を syslinux.cfg にリネーム
  5. syslinuxのインストール

話が脱線しますが、この HTTP-FUSE は【完全】ネットワークブートも難なくできました。もちろん、クライアント側がPXEネットワークブートに対応している必要がありますけどね。

【完全】ネットワークブート(たいそうですなぁw)

PXEサーバ側の設定です。

  1. tftpbootブート用のディレクトリ(/tftpboot/var/lib/tftpboot/とか) にディレクトリを作成して(例:knoppi4 とか)、CD内ののisolinuxフォルダ内の“中身”ファイルをコピー
  2. tftpサーバの(pxelinuxの)設定ファイル(/var/lib/tftpboot/pxelinux.cfg/default とか)にlabelを追記。( prompt が0だと選択起動できないようなので注意。)
    isolinux.cfg の最初の項目をコピペでいいかと。ただし、ファイルのパスの修正は必要です。
  3. tftp(inet or xinetd とか)とdhcpdサービスなどを再起動
  • 4.0.2 の場合
label knoppi4
kernel knoppi4/linux
append ramdisk_size=100000 init=/etc/init lang=ja apm=power-off vga=791 initrd=knoppi4/minirt.gz nomce BOOT_IMAGE=knoppix
  • 5.0.1 の場合
label knoppix5
kernel knoppix5/linux
append ramdisk_size=100000 init=/etc/init lang=ja apm=power-off vga=791 initrd=knoppix5/minirt.gz nomce quiet BOOT_IMAGE=knoppix

boot:プロンプトで knoppix5(knoppi4) と打つと起動してくれましたよー。

メンテナンスがお仕事の方や個人サポートな方とか、モバイル用ノートにPXEサーバを設定しておくと役に立つ日がいつか来るかも(保証しませんがw)。

※私のノートPCはネットブート非対応なので自分用には役に立たないのがヒジョーに寂しかったりしますが....

戻ります

INSERT+ 1.2.18 (ライブCDの部屋)

これのいいとこはSambaが入ってるってことです。デフォルトで起動してます。また、ライブCDの部屋さんが一部日本語化(コードはEUC-JP)してくれてますんで便利。

いまいちな点は、kernel2.4系ということとNTFS関連(Captive利用)かな?でも、Partimageは0.6.4-5と新しめです。

概要
  • サイズ - 73MB程
  • 英語版(一部日本語化されてます)
  • ウィンドウマネージャ - fluxbox
  • パッケージ
    • Partimage - バックアップ/リカバリー
    • QTparted - パーティション編集
    • Gpart/Testdisk - 診断ツール
    • ntfs-3g - NTFSパーティションへの書き込み すみません間違いです。最新版に入ってます。
    • Sambaサーバ
    • SSHサーバ
    • Webブラウザ - Links(※日本語表示不可)
    • ファイルマネージャ - emelfm / mc
    • Clam Antivirus
注意点
  • 基本的にCUI操作
  • sambaのユーザーIDは“insert”,パスワードは“insert1218”
  • /tmp へ /mnt のリンクを張る
    • # ln -s /mnt /tmp
  • マウント時のオプションで、uid=insert を指定しておく
日本語表示等

Sambaでの表示は機種依存文字がアンダーバーなどの記号に置き換えされるがコピーは可能。それ以外はOK。NTFSは属性がすべて読み取り専用となるので書き込み可能でリマウントした方がいいかもしれない

ターミナルRxvtで日本語入力可能。表示も機種依存文字以外OK。

NTFSへの書き込み

Captivaの使用でできるようなのですが、怖くてやっていません。すみません...

作成
  1. USBメモリをFAT(16)でフォーマット
  2. isolinux の“中身”をUSBメモリのルートにコピー。
  3. isolinux.cfg を syslinux.cfg にリネーム
  4. INSERTフォルダと.diskフォルダを“フォルダごと”ルートにコピー
  5. syslinux をUSBメモリにインストール
  6. 【追記】CDのルートにあるhtmlファイル(x4)をUSBメモリのルートにコピー

【注意】ルートイメージをパーティション内に探しに行くようです。例えば、sda1...,sdb1... という風に。なので、もしかするとUSBメモリのパーティションを切っていない場合は起動できないかもしれません。

戻ります

SLAX-ja 5

slax-ja-5.1.8.1-3.iso での確認です。

メンテナンス系ツールはデフォルトでは殆ど入ってませんが、簡単に追加可能なので256MB以上のUSBメモリならおすすめかなと。普通にKDEデスクトップ環境が使えます。


SLAX用追加ソフトウェアは、圧縮したモジュール形式で提供されます。使用方法は、とてもシンプルです。ダウンロードしたモジュールを、CD上の/modules/ディレクトリに追加します。これで、SLAXに永久に含まれます。また、SLAXで”uselivemod”コマンドを使えば、その場でモジュールを起動することができます。

概要

※Popcorn Edition は128MBのUSBメモリにインストール可能ですが、英語版でメンテナンス系ツールが殆ど入ってないのであんまり使い道がないかもしれない(「ライブCDの部屋」さんの日本語版は128MBでは収まらない)。

日本語版は「ライブCDの部屋」さん版とslax-ja版があり

  • サイズ - 230MB+
  • Slackware ベース
  • ウィンドウマネージャ - Kwin(KDE) or Xfwm(Xfce)

【追記】現在Slax 5用モジュールは公式サイトからなくなってるみたいですね。下記サイトはミラーなのかな?同じものがダウンロードできました。

  • Live-modules.org mirror - "Live your life live!"/slax-backup/slax5-modules/

FTPにまだ置かれてる模様。

注意点

必要なパッケージを自分で追加する必要はありますけど、GUI環境はKDEなので操作は簡単かと。

128MBにおさまるのは、英語版の Popcorn Edition や Frodo Edition などがありますがあんまりパッケージ入ってません。

日本語表示等

日本語版は UTF-8 なのでほぼ問題はなさそう。

テキストモードでの起動でも、日本語ファイル名の表示及び入力が可能でした。

jfbterm-0.4.7 (注)コンソールで jfbterm -q -e uim-fep と入力してください。日本語入力のオン/オフの切替は、[ctrl] + [\]で行います。

作成

  • (モジュールを追加後に)CD内のBATファイルをコマンドプロンプトから実行
    • make_disk.bat X:\

X はUSBメモリのドライブレター

【追記】

こりゃいいっすねぇ。元のisoイメージをマウントして簡単にモジュールを追加したisoイメージが作成できます。USBメモリ版も作成可能みたいです。

【07.06.22追記】NTFSパーティションのマウント

読み取り専用で自動マウントされます。

デフォルトでNTFS-3gのベータ版が入ってるので書き込み可能でマウントすることも一応できました。でもちょっと不安なんで最新のモジュールを追加した方がいいかも?


# umount /dev/hda1
# ntfs-3g /dev/hda1 /mnt/hda1 -o locale=ja_JP.UTF-8

【07.6.15追記】Sambaの起動

※SLAX起動後にKDE上のKonquerorからSambaをダウンロードして設定する場合。

  1. Sambaモジュールをダウンロード
  2. 「アプリケーションから開く」を選択
    • システムSlax Module manager


# /root/samba ---Sambaを起動
# smbpasswd -a root ---ユーザ「root」のパスワードを設定
# ln -s /mnt /root ---/mntディレクトリをrootのホームディレクトリにリンク

# netstat -tuanetbios-ssn があるのを確認

Windows(またはSambaクライアント)マシンから、\\slax\root\mnt(または \\IPアドレス\root\mnt)でアクセスする。

尚、WindowsのFAT32パーティションは書き込み可能、NTFSは読み取り専用(デフォルト)で自動マウントされてました。Sambaの設定ファイルは/etc/smb.confとなってました。

戻ります