Live CD <INSERT> を使ってみる

初稿: 2006/ 5/28


LINUX O/Sの一つである Knoppix というO/S(ドイツ人のKnopperさんがDebian GNU/Linux を元に作ったフリーO/Sで「クノーピックス」と呼ぶようです) の派生版 INSERT という レスキュー用 O/Sを使ってみました。
Knoppix もそうですが、ライブCD(CD/DVD-ROMからのブートが出来る)で且つ USB外付けHDDなどの接続が出来るという特徴に加えて、Knoppix ではNTFSからの読み出しが出来るものの書込みはまだ完全ではないというのに対して、INSERTは NTFSファイルシステムへの書込が出来るということでしたので、Windows マシンが起動しなくなった場合などに データーの救出や起動の復旧に使えそうな O/Sです、というか INSERTの目的は Rescue そのものです。。

<図1 起動LOGO>

現状Windows PCがクラッシュした場合、私はデーターの救出は Knoppix で起動して USB接続の外部HDD(FAT32フォーマット)に保存し、boot.iniなどの起動用ファイルの修正やコピーは Bart's PE という Windows Xpベースの Bootable CD を使ったり、XPのインストール用CDの回復コンソール機能などを使ってやっていますが、USB外付けHDDから ntldr などの起動ファイルを内蔵の NTFSパーティションにファイルコピーしようとしたりすると一旦 HDDを取り出して 別PCに接続するしか手がありませんでしたので、外部HDDが使えて、内部/外部の NTFSパーティションがR/W出来るといううたい文句の INSERTの特徴はなかなか魅力的です。
しかし、何せ 今までさわったことのない Linux ベースの O/Sで、 Knoppix はLinux と言ってもかなり GUIが使えて Windowsに近い操作が可能ですが、INSERT は O/Sが軽い分 コマンドラインからの操作が必要で、かなり操作に慣れが必要です。 また、派生であるためか 操作方法のマニュアルらしきものが見つからず悪戦苦闘しました。 何せ 正当な Linuxの勉強も全くせずに、教科書も持ち合わせず、いきなり Webで検索しては トライ&エラーでやったもので、この方法が正しいのかどうかも分かりません。このページを公開すれば、半分くらいの人は 参考にしていただけると思いますが、半分くらいの人からは 「間違っている」とか、「こうした方がいい」という指摘を頂けるかも知れませんので、勇気を出して公開してみることにしました。
従って、以下の説明を過信せずにこんなものなんだという程度に参考にしてください。 HDDのレスキューというのは ほんの僅かでも手順や方法を間違えると、救えるべきデーターが2度と復旧できなくなる可能性を持っています。例えば、一般的には HDDをPCの外に取り出してUSB変換アダプタなどで別の PCにつないでデーターを救出した方がずっと信頼性が高いと思います。ここでは、INSERTを使ったNTFSパーティションへの書込み操作方法を説明することが目的ですので、レスキューの他の方法は分かるけど INSERTの使い方だけが分からないと言う場合にだけ参考にしてください。また、ダウンロードしたisoファイルを起動可能な状態でCDに焼く方法もここでは説明しません。使用している焼き込み用アプリの説明書を読んでください。当然ですが単にファイルとして焼いても起動はしてくれません。
この情報の適・不適によらず 生じた結果に関しては私は責任を持ちません。この説明に従って操作される場合も自己責任でお願いします。 ここが違っている、もっと違う方法の方がいい、というご指摘は大歓迎です。掲示板にお願いします。

1.INSERT について
特徴:
・ フリーである。
・ CD/DVDからの起動が出来る(Windowsが立ち上がらなくなった場合にも救済が出来る)
  全体のサイズが約 80MBと小さいので、USBメモリからの起動も可能(らしい)。
・ USBなどの周辺機器の接続が簡単(自動)
・ Windows-Xpなどの標準フォーマットである NTFSパーティションへの読み書きが可能
・ 起動時間が CDブートO/Sとしては早い: 実測 約 1分20秒
その一方で、
* Linux O/Sであり、しかもGUIが削ぎ落とされているので 操作が分かりづらく面倒。
  >>>Linux未経験者が いきなり使おうとしても多分無理。
などの特徴があります。
また、同じ系列の Knoppixは 商用ディスクイメージのバックアップ/復元ソフトの True Imageなどの CD起動 O/Sとしても使われているらしく、緊急用としては起動時間などが Windows 系よりも優れていそうです。

2.動作条件
 以下の条件が必要と思われます。
  • CD/DVDドライブ(USBメモリにインストールした場合は USB I/F)から起動が可能な PCであること。
  • (起動時に Boot CDが入っていると、HDDでなく CDから起動できるPC。 ほとんどの場合、内蔵CDを備えたPCは 電源スイッチを押した直後、特定のキーを押すことで HDD/CD/FDDなどから起動デバイスを選択できるか、起動の優先順位を BIOSで設定できるようになっていると思います。したがって内蔵CDドライブがない Note PC で使うのは非常に厳しいです。BIOS設定で USBストレージデバイスからの起動が可能な PCがありますが、あまり多くはないと思います。)
  • NTFSへの書込みをする場合は Windows XP* の 次のシステムファイルがコピーできること。
    "Windows\system32\ntoskrnl.exe"   "Windows\system32\drivers\ntfs.sys"
  • (* 私は最初 Windows 2000 の同名のファイルを使ったところ、"ntfs.sys"のバージョン[5.0.2195.7049] が古いというエラーが出て ntfsへの書込みが出来ず、XPのファイル[5.1.2600.2180] では問題ありませんでした)
  • INSERT のisoイメージが入手できて CDにisoイメージとして焼けること。
  • INSERTは オリジナルが ここにあるようですが、日本語対応していないので、ファイル名などが文字化けしますし、ファイルをコピーなどしても2バイト文字はファイル名が変わってしまいます。 日本語対応した isoイメージがここで配付されていますので、こちらを使った方がいいと思います。(注:現時点の私の環境では、こちらのファイルでも2バイト文字は、表示の際文字化けしています)
    ダウンロードしたら(md5をチェックして)isoイメージとして CD-Rなどに焼きます(通常のファイルとして焼くと起動しません)。
3.INSERTの起動

以下の画像は画面表示の都合上、縮小されています。細部が確認したい場合は画像をクリックすると別窓で実寸で表示されます。別窓のサイズをなるべく大きくしたほうが見やすいと思います。また、今回使用した INSERTのバージョンは、INSERT v1.3.6 です。
 INSERTの起動CDをCDドライブに入れて電源ONして CDドライブからの起動選択メニューが表示されるキーを押します。(BIOSで優先順位が設定されている場合は、HDDよりも CDドライブの優先順位を高く設定します。) CDドライブの読み込みが始まって暫くして INSERT: というプロンプトが表示されたら(上の 図.1) リターンキーを押します。 1分ほどで INSERTのデスクトップと 標準の ブラウザである dilloが起動します。

<図2 INSERTの DESKTOP画面>
上図のように、Winodwsや Knoppixのように「Start」という画面のアイコンがありませんので、アプリケーションの起動はデスクトップをマウスで右クリックして表示されるメニューから行います。

<図3 アプリケーションの起動>
4.ファイルマネージャの起動とドライブのマウント
まずファイルマネージャの 「emelFM」 を起動します。 デスクトップ画面を右クリックして、上の図のように「Applications」 → 「File manager」 → 「emelFM super users」 と順にマウスポインタで辿って左クリックして選択します。

<図4 emelFM の起動画面>
上図のように、起動した直後は左右に同じフォルダー/ファイルリストが表示されます。左のウィンドウに /ramdisk/home/insert のルート(../)が選択されていますので、このまま 左カーソルキー「←」を 3回押すか、 下のリストウインドウの ../ 上でリターンキーを3回押します。すると上のディレクトリウィンドウが単に「/」と表示されますので、このとき下のリストの ”/mnt/” を選択してリターンキーを押すと HDDや CD-ROMなどの記憶装置デバイス一覧が表示されます。(下図 左のリストウィンドウ)

<図5 ドライブリストの表示例>
   HDDの名前について
Windows のように "C:" "D:" という名前ではありません。内蔵 IDE HDD は "hda1" "hda2" ・・・ 1台のHDDをパーティションを切ってあると 1/2/3 のように番号が変わりますが、基本パーティションがあれば 1-4 (1つしかなければ後は空き)、拡張パーティションは 5番以降が採番されます。 2台目以降の HDDがある場合は hdb/hdc のように a/b/c が変化します。
内蔵の SATA HDD は "sda1" "sda2" ・・・
USB/SCSI I/Fなどの外付けHDDも基本パーティションと拡張パーティションがあれば "sda1" "sda2" ・・ "sda5"・
複数の外付け HDDがあれば "sdb1" "sdc1" ・・・ という感じで表示されます。
上図では、1台の CD-ROMドライブ、1台の内蔵IDEハードディスク(hda1 :パーティションは1つだけ)、1台の外付けハードディスク(パーティションは基本が1つ : sda1、拡張領域内に2つのパーティション : sda5/sda6)が認識されているのが分かります。
ドライブ装置が表示されたら、ドライブからファイルを読み出すために 「マウント」します。Windows では、Explorerでドライブが表示されたらそのドライブ名をクリックすれば即読み書きが可能ですが、Linuxでは読み書きのためにはマウントしないといけないようです。単にドライブ名を選択してリターンキーを押しても (../) だけしか表示されません。
"ntkrnl.exe" "ntfs.sys" という2つのファイルがあるドライブ(通常は起動ドライブ hda1 )上で右クリックして、表示される操作リストの上から3番目「mount」を左クリックします。

<図6 ドライブをマウントする>
ドライブがマウントされると、そのドライブのルートディレクトリが表示されます。(下図左のウィンドウ)
ちなみに、FAT32パーティションの場合は、この状態で既に読み書きが可能になっています。

<図7 マウントされたドライブ>
5.システムファイルのコピー
ドライブがマウントされたらファイルを読み出す準備が出来ましたので、"ntkrnl.exe" "ntfs.sys" という2つのファイルを INSERTが使用出来るようにするために、INSERTの RAMDISK上にコピーします。
左側のリストウィンドウで、Windowsのシステムディレクトリ(通常 XPの場合は \Windows\System32)を選択して、"ntkrnl.exe" というファイルを探します。 次に 右のリストウィンドウで、「←」キーを3回押して、上のディレクトリウィンドウの表示が 「/」 になったら、下のリストウィンドウで下の方にある "var" というディレクトリを選択します。すると 上のディレクトリウィンドウは 「/UNIONFS/var 」と表示されます。続けてその中の「lib 」 「captive 」という順にサブディレクトリを選択します。この「/UNIONFS/var/lib/captive 」というディレクトリに 2つのシステムファイルをコピーします。
下の図は、いちいち System32 と System32\drivers という異なったディレクトリからファイルを一つずつコピーするのが面倒なので、私は一旦 同じディレクトリに 2つのファイルをコピーしておき、それを同時に「/UNIONFS/var/lib/captive 」にコピーするようにしています。(普通はこんな事、1回だけしかやらないのでこんな事必要ないんでしょうが、いろいろと試すために 数十回同じ作業をする羽目になったもので (^^;;;   それと、INSERTには、hda1/Windows/System32 以下にこれらのファイルがある場合は、こうした面倒な手順を自動化するスクリプト /usr/sbin/usecaptive が用意されているようです。個人で使う場合は、CDにこのファイルをあらかじめコピーしておくと言うことも可能だと思いますが、配布となると Copy Rightの問題があるんでしょう。 )

<図8 システムファイルのコピー>
このように、片方のリストウインドウでファイルを選択しておき、真ん中の操作メニューの中から 「Copy」ボタンを押すと、反対側の表示されたディレクトリに選択されたファイルがコピーされます。
<図9 コピーされたシステムファイル>
6.ドライブのマウント解除と再マウント
(書込みを行うNTFSパーティションを書込み許可でマウントするので、もしシステムファイルをコピーするため読み出しモードでマウントした場合はマウント解除をしてから再マウントしないと書込み許可になりません。上のように、システムドライブとは別の書き込む必要のないドライブに 2つのシステムファイルをコピーしておいてから、INSERTの Ramdiskにコピーする場合のように、書込みドライブが まだマウントしてないドライブの場合などは 以下のマウント解除操作は必要ありません。)
<マウント解除>
再び、左側のリストウィンドウが選択された状態で、「←」キーを何度か押して、上のディレクトリウィンドウに 「/mnt/ 」、そして下のリストウィンドウに ドライブネームが表示されるようにしてから、 先ほどマウントしたドライブを選択して右クリックして、表示されるメニューから今度は 「Unmount」を選択します。
<再マウント>
次に、NTFSパーティションを書込み許可でマウントします。 emelFM の 最下段のコマンド入力ウィンドウに
"mount /dev/hda1 /mnt/hda1 -t captive-ntfs" と入力してリターンキーを押します。下線部は、読み書きしたい NTFSフォーマットのドライブの名前です。コマンド・ドライブ名・オプションの間にはそれぞれ半角のスペースを入れます。

<図10 コマンド入力>
リターンキーを押すと、CDが回転する音が暫くして止まるだけで、画面上はあまり変化しません。通常リストウィンドウからメニューでドライブのマウント操作をすると、マウントされた瞬間にリストウィンドウにそのドライブのルートディレクトリが表示されますが、コマンド入力でマウントした場合はこのウインドウは何も変化せず、 右側のリストウィンドウに「/UNIONFS/var/lib/captive 」というディレクトリの中身が表示されていればその中に "s-xxxx/" というフォルダーが作成されます。 xxxx の部分は適当な?4桁の数字のようです。下の画面の例では そのディレクトリが青く選択されていますが、これは後から私が選択したもので自動で選択されるわけではありません。

<図11 書込みモードでのマウント>
7.ファイルリネーム&書込み
これでやっと NTFSパーティションが書込み可能になりました。試しに、左側ウインドウで「←」キーを何度か押して書込み許可モードでマウントしたドライブを選択して、その中のファイルのファイル名を変更したり、ディレクトリを作成したりしてみます。また、先ほどのコピーとは逆に右側のウインドウからファイルを選択して真ん中の「Copy」ボタンを押して左側の表示されているディレクトリにファイルがコピーされるかどうか試してみます。

<図12 ファイルのリネーム操作>
リネームの場合は、右クリックしてメニューから「Rename」を選ぶか、真ん中の 「Rename」ボタンを押すと上の図の左下のようにファイル名変更用のウィンドウが表示されて変更できます。リネームやコピーが成功すると、中段のウィンドウに mv; *******  とか cp; *******  とかの結果表示がされますが、出来なければ failed などという表示がされるようです。

<図13 リネームされたファイル名>
次に、NTFSパーティション上に TEMPというフォルダを作成して、その中に右のウィンドウのRAMDISK上の幾つかのファイルをコピーしてみました。下図の例では、sda1 が外付けしたHDDの NTFSパーティションですが、右側のウィンドウからファイルがコピーされているのが見えると思います。

<図14 ファイルのコピー>
8.漢字対応
で、漢字ファイル名の表示なんですが ・・・・ 下のように「INS_日本語.txt」というファイル名がやっぱり文字化けしています。
<図15 漢字表示>
で、そのまま 別のドライブにコピーして(コピーされたファイルは上図の右側リストウィンドウのように文字化けしたまま見えます)、Windows を立ち上げ直して今のファイルを見ると

<図16 漢字ファイルのコピー>
ちゃんとファイル名もコピーされているのが分かります。 漢字コードの問題でしょうか?ちょっとここまではまだ分かりません。
9.テキストエディタ nano での漢字対応
では、というので nano というエディタがインストールされていたので使ってみました。上記「INS_日本語.txt」というファイルには
for INSERT/Linux Debian GNU test
日本語表示チェック用

という ASCII+S-JIS のテキストが記録されているんですが、これを nano で開いてみます。
まず、例の如く DeskTopを右クリックして表示されるメニューから「Applications」→ 「Editor」 → 「nano」と辿って nanoを開きます。ウィンドウの下にメニューが並んでいますので、「^R」つまり Ctrl+R を押すと下のようにファイルを指定できます。ファイル名が文字化けしたままでは指定できませんので、ここでは 「2byte.txt」と言うふうに予めリネームしておいた同じ内容のファイルを開きました。

<図17 エディター nanoを使う>
例えば /mnt/hda2/2byte.txt というように入力すると、テキストの内容が表示されます。下図の 上から3行目までが元の内容で、やはり S-JISの部分は文字化けして表示されます。 で漢字変換で入力してみようと思ったんですが、Knoppixは Windows と同じように 半角/全角キーでひらがな入力になったような気がしますが・・・なりません。でいろいろ試すと、Ctrl+O でひらがな入力モードになりました。で入力してみたのが下図です。

<図18 nanoでの漢字入力>
これを、F3 を押して(画面のキーメニューではCtrl+O が WriteOut のように見えますが、Ctrl+O は上記のようにひらがな入力モードの切替ですから保存にはなりませんでした。)Saveします。
ついでに、ファイル名を2バイトコードに変えて試してみましたが、何故かファイル名入力で同じように「テスト.txt」と入力した場合、FAT32パーティションでは書き込めますが emelFM 上で見ると文字化けしてしまいます。 そして、そのファイルを選んで「Rename」しようとすると、下図のように emelFMのリストでは文字化けしたままなのにRenameのダイアログボックスにはちゃんと表示されます????

そして更に、書き込めたFAT32上のファイルを Windowsで開いてみると、
のようにちゃんと表示されます???? (この図は、別ファイルで試したときのものなので、「ナノ.txt」となっているのは文字化けではありません。)
一方、NTFS上ではASCIIコードだけのファイル名なら書き込めるものの、「テスト.txt」のように2バイトコードが含まれたファイル名を指定してセーブしようとすると「アクセスが拒否されました」という警告が表示されて書き込めないか(Windows XPマシン/IDE-HDD使用)、ファイルを書き込もうとしたフォルダーが他のファイルごと全部削除され(Windows 2000マシン/S-ATA HDD使用)てしまいました。2-3度試したところではほぼ同じ現象でしたが、XPと2000 の挙動の違いは NTFSのバージョンの違いなのかマシンによるその他の条件の違いなのかは不明ですが、 結論としては:まだファイル名に 2バイトコードが含まれた場合の処理は完全ではなさそうです。
また書き込まれたファイルの中身は、Windowsで開くと下図のようにやはり、INSERT上で入力した 2バイト文字の部分だけが文字化けします。

これは Windows側のエディターで 文字コードに EUCを指定すると下のように正常に表示されます。


結局、Windows上では S-JIS/Linux上では EUCという 2バイトコードの違いからきているようですが、同じINSERT上で入力しても文字化けしてしまうのは???です。

以上、???がいっぱいあるものの、INSERTという O/SでNTFSに読み書きできるという確認は出来ましたが、まだ2バイトコードのファイル名を扱うには疑問が残っています。まぁ、レスキュー用ですから、boot.ini などのファイルを書き換えられれば上出来で、2バイトコードのファイル名を書き換えなどはしないと思いますので、実用上はいいのかもしれません。 新しいバージョンでどうなるか楽しみです。

なお、今回使用するに当たって上のように INSERT上で xwd というスクリーンショットなどの機能も利用しましたが、まだ ???だらけなのでもう少し勉強してから<その2>をそのうちにアップする予定です。
総アクセス数