fc2ブログ

Mini Windows XP 日本語対応完成

我々PCサポート業者は、OS起動不能となったPCの修復やデータ復旧に、CDからブート可能なOS(主にLinuxベース)を使います。所謂、「Live CD」です。

昔はフロッピー・ディスクがブート・メディアの主流だったので、FDブートのMS-DOSベースのパーティション管理ツールなどを使っていました。中でも「パーティションコマンダー」には大変お世話になりました。

最近はFDDを搭載していないPCが殆どで、企業でもFDを使わなくなっています。
しかし、我々は今でも3.5”FDを使っています。販売している中古PCのリカバリー・ディスクを作る時に使います。(リカバリー・ディスクを添付した中古PCを売っているところは、当店以外殆ど無いと思います。)
MS-DOSベースのGhostを使い、BATファイルを駆使して作成します。私はWindowsが世に出る前の時代からPCに関わっていたので、BATコマンドはある程度よく知っています。当店の中古PCを購入されたお客様が、詳しい知識が無くとも簡単にリカバリーできるように、Enterキーを何度か押すだけで実行できるようにしています。

レスキューCDとしては、市販の「LBイメージバックアップ」やフリーのKNOPPIXを使っていましたが、数年前に「Hiren's BootCD」というものを見つけました。
このCDにはDOSベースのテストツールやLinuxも含まれているのですが、「Mini Windows XP」が含まれていました。そしてこのMiniXPを起動すると、英語版のXPが現れ、その中にいろいろなフリーのツールが”てんこ盛り”で入っているのです。

英語版とはいえ、使い慣れたXPのGUIで操作できるのは大変な魅力なので、それ以来この中のツールを使ってPCのテストをしたり、パーティションの変更や修復を行っています。
しかし難点は、日本語に対応していないので、日本語のファイル名は文字化けしており、キーボードも英語キーボード設定なので、アルファベットの配列は同じですが、記号類のキーが違うのです。

WindowsベースのLiveCDには、以前からWindows PEがあります。
これなら日本語版のLiveCDが作れ、作ったことも有りますが、起動に非常に時間が掛かる大きな欠点があります。(先のMiniXPは非常に早いです。)

KNOPPIXは、完全に日本語化がされていて使いやすいOSです。
しかし、従来のIDEドライブだと問題ないのですが、最近のS-ATAドライブでAHCIモードPCだとブートできません。MiniXPはたくさんのデバイス・ドライバを含んでおり、最新のPCでもブートできます。

Hiren's BootCDにはカスタマイズ機能があり、HDDに展開し、一部変更し、またISOファイルに簡単にできるソフトも付属しています。
という訳で、「MiniXP日本語対応」に取り組むこととしました。

まずは日本語キーボード対応です。
MiniXPは、シングルバイト圏のキーボードには対応しており、先のカスタマイズ機能を使って簡単に切り替えることができます。しかし日本語キーボードのドライバは入っていません。

HDDに展開したファイル構造を見ると、XPというサブフォルダがあり、その中にXP.wimというファイルがあります。これがMiniXPの実態です。WIMファイルは、Vistaから採用されたOSイメージ圧縮ファイルで、PEもこの形で作られます。
また、このHiren's BootCDの中の豊富なツール群は7z(以前はUHA圧縮)で圧縮保存されており、使うときに解凍されてRAMディスクにコピーされるようになっています。
この7zでWIMファイルも解凍できます。

展開したXP.winのファイル構造を見ると、i386という親フォルダがあり、その中は殆ど通常のXPのフォルダ構造と同じでした。
この中のSystem32フォルダに各国のキーボード・ドライバが入っているので、まず日本語キーボード・ドライバであるkbd106n.dllを放り込みました。しかしこれだけではダメで、レジストリを変えないといけないのは百も承知です。

レジストリのどこを変えればよいのかというのは、先述の元からある各国キーボードを切り替えるバッチ・ファイルを調べることによって分かりました。
まずはその部分のレジストリにエントリーを追加し、先のバッチ・ファイルにも日本語用の記述を追加しました。
これにより日本語キーボードでキーラベル通りに入力できることを確認しました。
しかし問題は、この変更したレジストリをどうやって保存するかです。

XP.wimは、MiniXPが起動すると展開され、Xドライブという仮想ディスクとして存在します。この中のi386¥system32¥configにレジストリ・ファイルが存在し、通常のXPならこのファイルをコピーすればよいのですが、レジストリを変更した後このファイルを見ると、更新されていません。
どうもこれらのファイルは起動時にメモリーにロードされ、起動後はこのメモリー上のレジストリは更新されますが、保存はされないようです。
これをどうするか?というのが最初のハードルでした。

しばらく考えて思いついたのが、レジストリのExport/Import機能です。
変更したキーボード関連部分のレジストリをExportして、USBメモリーに保存しました。このファイルをCDのどこかのフォルダに入れておき、起動時にReg importコマンドを仕込んで読み込ませればよいのです。

改造したCDを作る為には、展開したWIMファイルを圧縮しないといけません。
解凍時に使用した7zで圧縮もできるので、WIMファイルを再作成し、ISOファイルを作成し、CD-RWに焼きました。
そして作ったCDでブートしようとしたところ、XPのロゴからいつまで経っても先に進みません。
2つ目のハードル発生です。

原因をいろいろ考えましたが、再作成したWIMファイルが正常ではないのではないか?と思われました。
本来WIMファイルは、PEを作成する時に使うWindows AIKに含まれるImageXで作成・展開されるものです。言わば「純正ソフト」です。これを使っていないからではないか?と考えました。
Windows AIKをダウンロードしてインストールすればImageXが使えるのですが、どうもこのImageXはCUIツールのようです。
そこでもう少し調べてみると、ImageXを単体でしかもGUIで操作する「GImageX」というフリーソフトがあるようなので、これをダウンロードしました。
しかし、これを単体で使用するには、wimgapi.dllが必要だということなので、これも探してきてGImageXと同じフォルダに入れました。
そしてこのGImageXを使って再度XP.wimを展開し、変更を加えた後WIMファイルを作成しようとしました。
GImageXは英語表示で、[Capture]タブがWIMファイルを作成するところですが、最初[Option]のところを何もチェックせずに作成しました。そうして作成したCDをブートさせたら、やはり同じように起動できませんでした。
そこで今度は[Boot]オプションをチェックしてから作成しました。そうしたら起動できるようになりました。

そうして日本語キーボードで入力できるMiniXPが出来上がりました。
一歩前進しましたが、まだ日本語ファイル名を表示させる目標には達していません。

通常の英語版XPであれば、「多言語パック」なるものをインストールすれば日本語表示も入力も出来るようになるみたいですが、LiveCD版ではそういう方法はできません。
基本的にはExplorerの中で日本語が表示されさえすればデータのバックアップが出来るので、日本語フォントを入れてやり、そのフォントに切り替えれば実現できるように思います。

まず最初に、日本語版XPの中からMSGOTHIC.TTCファイルを持ってきて、MiniXPのi386¥Fontsに入れました。
そうして作成したCDでMiniXPを起動しました。スタートメニューからControlPanelのFontsをポイントすると、フォントのリストが表示され、その中にmsgothic.ttcがあります。それをクリックしてみたら、英語で「インストールしますか?」というメッセージBOXが現れ、OKをクリックしたら「一つのファイルがコピーされました」という英語のメッセージがコマンドプロンプト画面に表示されて消えました。
どうもこの操作でフォントがメモリーにロードされ、レジストリにも追加された感じです。

さっきの手作業のフォント・インストールを自動化する方法を考えないといけません。
まず思いつくのはスクリプトを使う方法ですが、それは最後の手段として置いておき、もっとスマートな方法を探りましたが、今度のハードルは前よりも高いハードルでした。

実はXP起動時に最初に実行されるStartup.cmdというバッチ・ファイルがあり、その中にnircmdという聞いたことが無いコマンドがちょくちょく出てきていました。そのコマンドの後にWAITとかshortcutとか、いろいろなオプションがくっついていて、気になったのでググってみると、nircmd.exeというフリーの実行ファイルで、Windowsのいろいろな操作をコマンドラインで実行できるもののようですが、日本語の解説サイトは殆どありませんでした。

そしてフォント関係のレジストリを読んでいるうちに、このnircmdが実行される一行を見つけました。
この一行をコピーしてメモ帳に貼り付け、USBメモリーに保存し、自分のPCに持って行き、解析を始めました。
nircmdにはqboxというオプションがあって、コマンド実行前にメッセージ・ボックスを表示させることができるのですが、この一行を眺めると、どうもさっきのゴシック・フォントをクリックした後に実行された処理をやっているような感じなのです。

試しにこの一行をコマンド・プロンプトに貼り付けて実行してみましたが、「パスが見つからない」みたいなエラーが出ました。
再度この一行を眺めると、c cd dが連続して記述されていて、どうも意味不明で腑に落ちないのです。思い返してみると、元々レジストリの中にあった一行の中の/(スラッシュ)や""(ダブルクォーテーション)が消えているようなのです。
qboxの後はバッチコマンドを連続しているようなので、バッチコマンドのオプションや構文を再確認し、1コマンド1行で、必要な/や""を付け直し、nircmdを使わない普通のバッチファイルを作ってみました。
そしてこのバッチファイルを実行してみたら、”当たり!”でした。

こうなってくると、もう推理小説の世界です。
私は昔から推理小説が好きで、よく読みましたが、パソコンの世界も推理力・想像力が関係してきます。但しそれらは過去の経験と知識をベースにしていることは言うまでもありません。
試行錯誤の繰り返しの結果、いろいろなことが一つ一つ分かってくるのです。(だから面白い)

難関を乗り越えましたが、まだ先があります。
Explorerで表示されるフォントをインストールした日本語フォントに切り替えないといけないのです。

手動で切り替える方法は比較的簡単に見つかりました。
画面のプロパティの[デザイン](Appearance)タブの[詳細設定](Advanced)で、[アイコン](icon)のフォントを変えればよいのです。
実際に試してみると、フォントリストの中に「MS GOTHIC」「MS P GOTHIC」「MS UI GOTHIC」が増えています。
MS UI GOTHICを選び、OK→OKで閉じると、デスクトップ・アイコンのフォントが変わりました。
そしてExplorerを開くと、その中のフォントも変わっており、日本語フォルダ名も漢字やカタカナで表示されています!

これで手作業で切り替えることは出来るようになったのですが、最後の課題はこれを自動でやる方法です。
キーボードの時にやったように、切り替わった後の変更されたレジストリ部分を探し、Exportして保存しておき、OS起動後にImportする方法をやってみました。
しかしImportしても切り替わりませんでした。レジストリの中身はちゃんと変わっていました。
調べてみると、どうもコンパネ関係のレジストリを変更しても、再起動しないと反映されないようです。
普通のXPならレジストリの変更がハイブに保存されるので、再起動すればよいのですが、このXPは再起動したら変更が消えてしまいます。

そこで、再起動せずにレジストリを反映させる方法を探しました。
しかし、VBやCでプログラムを作らないと無理みたいで、そうなると大事です。
先述のnircmdにはshellrefreshとかsysrefreshやrestartexplorerなどのコマンドがあったので、全て試してみましたがダメでした。

こうなると残された手段は、スマートではありませんが、スクリプトを使って手でやる操作を自動実行させる方法しか私には有りませんでした。

VBSを使い、Desk.cplを呼び出して、SendKeyコマンドを連続させ、泥臭い方法ですが、自動実行は出来るようになりました。

こうやって遂に、目的は達成されました!(万歳三唱)
スポンサーサイト



theme : フリーソフト
genre : コンピュータ

comment

管理者にだけメッセージを送る

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: Hiren'sBootCDの日本語キーボード対応について

> Hiren'sBootCDの「Mini Windows XP 日本語対応」の日本語キーボードに対応するバッチファイルについて、もう少し詳しくお教え頂けませんか?
> http://screen.chobi.net/cgi-bin/bbs392/bbs392.cgi
> 記載した程度までは理解できました。
> バッチファイルの内容がわかりません。
> よろしくお願いいたします。

しばらくブログを更新しておらず、コメントに最近気づきました<m(__)m>
2年以上経ってしまい、今更手遅れかもしれませんが、
http://ta-sys.com/dl/HBCD152+Ghost+JP.iso
HBCD Ver.1.52ベースの日本語表示対応版のISOファイルです。(Ghost32も入れています)
ダウンロードしたISOをCDに焼いてください。
出来たCDの中の、\HBCD\BootフォルダのKeyboard.batの改変(日本語キーボードの選択)
\HBCD\XPに、
FontLoad.cmd
Pcreate.cmd
SetCpl.vbs
を追加し、XpCustomize.cmdからFontLoad.cmdとPcreate.cmdを実行させ
FontLoad.cmdからSetCpl.vbsを実行させています。

ところで現在、
HBCD_BEの日本語表示に取り組んでいます。

プロフィール

tasys

Author:tasys
FC2ブログへようこそ!

カレンダー
プルダウン 降順 昇順 年別

09月 | 2023年10月 | 11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -


最新記事
最新コメント
カテゴリ
天気予報

-天気予報コム- -FC2-
フリーエリア
検索フォーム
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード