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 : コンピュータ

日立PriusOne AW33P電源修理顛末記

当店で展示販売していた液晶一体型です。アナログTVチューナ搭載で、2015年までデジアナ変換放送があるので、まだTVが見られます。
PriusOne AW33P


突然電源が入らなくなりました。調べると、電源ユニットが壊れたようです。
ググると、この機種の電源はよく壊れているみたいです。

廃棄処分するのはまだもったいないので、修理することにしました。
ヒューズが飛んでいましたが、ヒューズだけ交換しても飛んだ原因を解決しないとまた飛ぶのは明白です。
しかし、電子部品が専門では無く、半田付けも上手くない私は、他の小型電源ユニットを使って修理することにしました。

最初に選んだ電源は、AOpen FSP200-60SAV BB NEWです。スリム・デスクトップに搭載されているものです。
元の電源は180Wで、この電源は200WあるのでOKです。
サイズも元の電源ケースの中にすっぽり入る大きさです。
新品を4,000円弱で購入しました。

元の電源のケースだけ残し、中のユニットを取り外しました。
AOpenの方は、ACソケットからのケーブルとファンから来ているケーブルを切断しました。
問題はAOpenの内部ユニットをどうやって元のケースに取り付けるかです。
元の基盤のサイズを測り、同じサイズのユニバーサル基板を探しましたが、縦横同じサイズのものはありませんでした。しかし、1辺だけ同じで小さいものがあったので、それを購入しました。283円でした。
4隅のネジ穴のサイズは元の基板と同じです。これを二つに割ってベースとし、この上にAOpenの基板を取り付ける計画です。
AOpen基板の4隅の取り付け穴の位置を現物合わせでマーキングし、先ほどのベース基板にドリルで穴を開けました。この穴にマザーボード用のスタッドネジをねじ込み、このネジ穴にAOpenの基板を取り付けました。
こんな感じでうまく収まりました。
AOpen電源基板取り付け完成図

ちょん切った配線を接続し、Priusのマザーボードに仮接続しました。
ACコードを繋ぎ、PCのスイッチを入れましたが、一瞬ファンが回るだけで起動しません。
(なかなかすんなりとはいかんなぁ...)

電源単体でもテストしてみましたが、やはり一瞬動くだけです。
他のATX電源をPriusに仮接続してPCが起動できることは確認済みです。だからこの改造電源に問題があるということになります。

この「一瞬ファンが回る」という現象でググってみると、ある程度の負荷を与えないと起動しない電源があるみたいで、AOpenの電源の仕様を見ると、”Minimum Load”の項目がありました。3.3V・5V・12Vのいずれにも最低電流値が指定されています。
マザーのCPUはファンレスだが、DVDドライブはマザーから電源供給される配線になっており、電源ユニットにもファンが付いているので、ある程度は負荷があるはずなのに足りないのか?と思い、HDDを繋いでみましたがだめで、5インチのDVDも2台追加しましたがやはりだめでした。

こうなったら指定の負荷以上を確実に掛けてやろうと決意しました。
3.3Vには0.2Aの最低電流指定でしたが、この3.3VというのはPCIバスやPC-100/133などの古いタイプのメモリーで使われる電圧です。PCIバスにはTVチューナーボードが刺さっていますが起動時には負荷が掛からない可能性があり、メモリーもDDRタイプで電圧が違います。
仕方なく、3.6V/1Wの青色LEDを買ってきました。546円でした。
これに3.3Vの電圧を掛けると0.3Aの電流が流れる計算です。(この年になって「オームの法則」の復習です)

このLEDを電源の3.3Vコネクタに接続し、スイッチをONにしたところ、LEDは一瞬明るく光りましたが、残念ながら起動はしませんでした。

次は5Vです。
5Vは、最低1.0Aの指定です。
5V電源は、HDDやDVDなどのドライブが使用する電圧で、負荷は足りているはずなのですが、念のため6V/8Wの豆電球を買ってきました。210円でした。
これもオームの法則によると、1.6Aの電流が流れるはずです。
豆電球を接続し、スイッチを入れたところ、電球もLEDも一瞬光りますが、やはり電源は起動しませんでした。

残るは12Vだけです。(ここまで来たら、最後まで確認してやる!)
12Vは、最低2.0Aとかなり高い数値です。
12V電源は、HDDやDVDなどのドライブも使用しますが、ファンが12Vです。
12V×2A=24W以上の負荷を掛ければよい計算なので、10Wのセメント抵抗を3本買ってきました。1本84円でした。
この抵抗を直列に接続したら30Wになります。それぞれの端子を半田付けし、電源に接続し、スイッチを入れました。
やはりだめでした.....

このAOpenの電源を検証するのに、かなりの時間と労力を費やしましたが、結局のところ、不良品であったという結論になります。(AOpenよ、エエかげんにせ~よ!)

こうなったら意地です。(費用対効果関係なし)
今度は中古品で別の小型電源ユニットを購入しました。
この電源では、予備テストでは起動できました。
先のユニバーサル基板の穴を開けなおし、ケースの中に収めることができました。

しかし別の問題が発生しました。
元の電源ユニットに固定されているファンが最大出力で回り、非常にうるさいのです。
元々このファンは元の電源基板に4pinで接続されていて、おそらく温度により回転数を制御されていたと思われますが、この端子をマザーに繋ぐことになり制御されなくなってしまったようです。

そこで、ファンをコントロールするフリーソフト(Speed Fan)をダウンロードし、インストールしました。
ところが、ファンの回転数や温度は表示されたのですが、回転数を変えることは出来ませんでした。

もっと出力の小さいファンに交換しようかとも思いましたが、ファン・コントローラーをいろいろ探していたら、比較的安くてちょうど良い物がありました。
3.5”ベイにもPCIスロットカバーにも取付可能な、AINEXのPF-013CRという商品です。873円で購入しました。
ファン・コントローラー

電源のファンのコネクタが4pinで、このファン・コンのコネクタは3pinなので、このままでは接続できないのですが、ちょうど3pinコネクタの予備パーツが有ったので、それに交換し、何とか取り付けることができました。
そしてテストしたら、ちゃんと回転数を変化させることができました。

ついに完成です!

ここまでたどり着くのに、それなりの費用とかなりの労力を費やしました。
売れるかどうかも分からない中古PCですが、オームの法則の復習や、ノウハウ蓄積にはなったということで、自分を納得させています。

theme : パソコン修理・サポート
genre : コンピュータ

プロフィール

tasys

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

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

09月 | 2012年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コード