2008/06/04(Wed)システムフォントサイズが…?

2008/06/04 6:30 Software::Windows

フォントが小さすぎる所がある

x64を導入してから特に目立ったシステムトラブルはなかったのだが、フォントのサイズがやけに小さい場所があって、困っていた。それも自分で指定しているのではなく、システムデフォルトのフォント指定のところが、である。

具体的には、このように(MS UI Gothicの8ptだろうか?)文字サイズもFormサイズも潰れるほど小さくなってしまうのである。
(ちなみに下のソフトは、自分が組んでいるソフトのプロトタイプバージョンです。)

prinpa_8pt.png


非公式テーマ(.msstyles)を使っているだとか、その非公式テーマを適用するためにuxtheme.dllにパッチを当てているのが原因かとか、MSGothic.ttcのバージョン違い?などといろいろ考えて実験してみた。
やっぱりここでもVMが大活躍。大概カスタムを施していないVMの方では正常な挙動をすることが多いので、同環境の正常個体として役に立つ。これでこそメモリを増やした甲斐があったものだ。

テーマ設定が悪い?

確かにウィンドウタイトルバーやアイコン等は"Tahoma 8pt"に設定されているが、明らかに上の画像の部分はTahomaではないし、ウィンドウ内のLabelコントロールのフォントを指定できるようなところは画面のプロパティにない。

display_design_setting.png


しかも、正常なVM内とホスト側、どちらもすべて同じ設定値。
よってこれは違う。

DPI設定?

システムのフォントサイズといえば、DPI設定がある。

display_dpi_setting.png


が、これも正常なVM内とホスト側、どちらも96DPI。
よってこれも違う。

uxtheme.dll?

どちらもパッチ済みでCRC比較しても一緒だった。これも違う。

ならば何だ?

と思ってレジストリをパラパラ見ていると、それらしいのがあった。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize

▼VM側
gre_initialize_vm.png


▼ホスト側
gre_initialize_host.png


という風に明らかにGUIFont.Height(DWORD) = 0x00000009といいうのが足りない。しかもいま9ptにならなくて悩んでいるので速攻で設定してリブート。

無事、ちゃんと意図したようになりました。
やれやれ。

▼左(異常)、右(正常)
prinpa_8pt.png
prinpa_9pt.png


何でこのエントリが削れたんだろう?

[追記] 2008/06/08

MicrosoftのKBWindows Server 2003 R2 with SP2 適用済みのメディアからシステムをインストールした場合 表示が小さくなる場合があるに書いてありました。
うーん何でこれが不足するんだろうねw

Windows XP x64の情報を探すときは、Windows 2003R2の情報を探す方がいいのかも。

2008/06/04(Wed)回復コンソールをHDDにインストールできない!

2008/06/04 5:58 Software::Windows

さて、今回は回復コンソールの話。

回復コンソールはWindowsがセーフモードでも起動しなくなった時や、セーフモードよりもっと低層のファイル操作が必要な時などに重宝する。

通常はWindows XPのインストールCDから起動し、ドライバを読み終わった後で[R]を押して回復コンソールへログインするのだが、HDDにインストールし、ブート時にメニューから選択することもできる。


回復コンソールをHDDへ

ググるとすぐに出てくるのでリンクを張るまでもないかもしれないが、Windows XP での回復コンソールのインストールおよび使用方法である。

が、x64の場合は\i386\winnt32.exeではなく、\amd64\winnt32.exeである点に注意。Technetの方には書いてあるのだが、何故↑のKBに書いてないんだろう…?


インターネットから更新パッケージを調べ、順調にファイルをコピーしていくのだが、最後で詰まった。

ファイル a3lb241a.sys(a9doe4m5.sys)*1をC:\$WIN_NT$.~BT\a3lb241a.sys(a9doe4m5.sys)にコピー中にエラーが発生しました。

ファイルが不足しています。システム管理者に問い合わせてください。

コピーの再試行、このファイルのスキップ、またはセットアップの終了を選択できます。

* [再試行]を選択した場合は、ファイルをもう一度コピーしようとします。

* [ファイルのスキップ]を選択した場合は、ファイルはコピーされません。これはWindows システムファイルの詳しい知識があるユーザーを対象にしています。

* [セットアップの終了]を選択すると、後で再度セットアップを実行して、Windows をインストールまたはアップグレードする必要があります。


cmdcons_err1.png:cmdcons_err1.png:cmdcons_err1.png

cmdcons_err2.png:cmdcons_err2.png:cmdcons_err2.png


こんなsysファイル見たことないなぁ…と思いつつ、セットアップCDからCドライブのいたるところ、特にdriver.cab等を重点的に探したのだが出てこず。


*1 : 何度繰り返してもファイル名が変わらなかったが、再起動して再度winnt32.exe /cmdconsを試すと、ファイル名が変わっていた…

強行突破

を図って、回復コンソールをブートさせてみたが、Loading files...の一番最後でこのファイルが見つからないと言って強制停止を食らった。

これでもだめならば、VMwareの同様の環境で試そうということで、試してみるとVM側はあっさりインストールが完了。あれ?

C:\cmdcons\以下をDiffしてみると、Winnt.sif、Bootsect.datが双方で異なったが、一個だけファイルがそもそも片方にないのがあった。

unsupdrv.infというファイルである。

中身はというと…

[Version]
Signature = "$Windows NT$"

[AddReg.a9doe4m5]
[Files.a9doe4m5]
a9doe4m5.sys,system32\drivers
[HardwareIds.a9doe4m5]
*PNPA000=a9doe4m5
ACPI\PNPA000=a9doe4m5
[Devices]
a9doe4m5

中身の名前からしてもこれに間違いない。

とりあえず削除してみると、回復コンソールが無事に使えるようになった。やれやれ。


後書き

a3lb241aやa9doe4m5という名前に全く心当たりはないけれど、unsupdrv.infという名前がついているあたり、Unsupported Driverじゃないかとの助言をつーさ氏から受けた。なるほど……。

そういえば、問題が起きたPC上(マザボ: ASUSTek P5B Deluxe/WiFi-AP)では、ASUSが配っている謎のACPI virtual deviceというドライバを導入してたっけな。これ絡み?

とりあえずACPIの制御を回復コンソールでやることはないであろう……。

2008/06/03(Tue)ステルスモード

2008/06/03 20:02 Software::Windows

Kaspersky Internet Security 7.0

導入してからブラウザのレスポンスが低下した。
具体的には、"www.google.co.jpに接続しています..."の部分が長くなって、画像もわらわら出てくる感じである。
私は何かを検索したいとき、新しいタブを開いて、そこに表示されるGoogleの検索ボックスに入力するのだが、ここで待たされるのはイライラ……。

あと、サーバーからの応答が無くなることがたまに。ローカルプロキシを再起動してやるとなぜか繋がる。


この解決方法をいろいろ探してみて、たどり着いたのはこれ。
"ファイアウォール"の"設定"の"ゾーン"タブで、"インターネット"ゾーンのステルスモードをOFFにすればいいらしい。


ステルスモードというのは、インターネット側からこちらのPCの存在を隠す機能らしく、セキュアな聞こえがあるが、ルーターの配下に居ればどっちみち関係ない気が。というわけで、オフにしました。

しかし、ヘルプから引用すると……
インターネットに分類したネットワークを使用しているときには、ステルスモードを追加のセキュリティとして使用できます。この機能は、ユーザまたは許可されたアプリケーションが開始するネットワーク接続を許可します。この機能を使用すると、あなたのコンピュータは周囲のコンピュータから見なくなります。このモードを使用しても、コンピュータのインターネットへの接続パフォーマンスには影響を与えません。

注意
コンピュータが、サーバ(例えばメールまたはHTTPのサーバ)として使用されている場合には、ステルスモードを使用することをお勧めしません。もし使用した場合、サーバに接続しようとするコンピュータから、サーバを見つけることができません。
「パフォーマンスに影響ない」と書いてあるけど、少なくとも自分には影響しているように思えます。
まぁ、VNCのサーバーも立ってることだし、どっちみちステルスはOFFのほうが好ましいな。

2008/06/03(Tue)カスペルスキー

2008/06/03 11:57 Software::Windows
先日の紆余曲折を経て、なんとかx64システムのベースが完成した。必要なアプリ類はまだまだあるのだが。

前回の失敗を踏まえて

Acronis True Imageというソフトを使って、システムドライブ全体を毎日スナップショット管理できるようにした。
ドキュメントフォルダもスケジュールバックアップさせようと構築中だ。
前回の失敗は、システムドライブが死亡するとドキュメントまで巻き込むということだったので、最悪システムドライブのMFT周りがおかしくなってもドキュメントが死なないよう、思い切って別ドライブに分けた。相変わらず、1ディスク=1パーティションは崩してませんが。(バックアップエリアを除く)

1台目(250GB): 120GBがシステム、残りがTrue Image セキュアエリア(不可視)
2台目(300GB): マイドキュメント、デスクトップ、WWWデータ、インストール不要アプリなど。
3台目(250GB): 2台目のバックアップ(圧縮するし、2台目は300GB全部埋まっているわけではないので250GBでもなんとかなるだろう)と、VM類。

かなり富豪的な使い方ですね。
でも、バックアップはきちんとしておくものだと思う。

で、ウイルス対策ソフトをどうするか

以前はウイルスバスター2008というのを使っていた。実はウイルスバスター誕生以来の古参ユーザーで、毎年ユーザー更新を続けていたのもあって、一括購入の恩恵を受けられる今までずるずる来ていたわけだ。

が、どこかに書いたかもしれないが、VB2008は色々と使いづらい。
いろいろ使っているうちに知りえたことだが、DLLインジェクションやプロキシ情報のレジストリアクセス*1に過度に反応する割には、パーソナルファイアーウォールがザル*2だったりで、困ったものなのだ。


しかし、さすがに導入しないのはそれはそれでリスキーである。
上記のようにバックアップシステムを構築していても、さすがに私は「いつシステムが吹っ飛んでも良い」とまでは言えないし。
しかも、今回はWindows XP x64で動くことが条件なのだ。

ウイルスバスターは選択肢から消え(XP x64は動作範囲外。Vista x64はサポート。)、ノートンも重いのであり得ない(PFWはVBより優秀かな?)。
フリーのもなんとなく信用できない。AVGとかAvast。そもそも純国産のって無いしね。
以前Kerio Personal Firewall 2を友達つてに聞いて使っていたが、2バイト文字をパスに含んだ場所で、軽くトラブるなど、純国産じゃないアプリはちょっと問題あるし。そもそもx64で動かない、これ。
ソースネクストのウイルスセキュリティZEROは更新料が0円らしいが、まずこの会社を色々信用していないので却下w

残ったのは、ESET Smart SecurityKaspersky Internet Security 7.0である。
前者のESETはキヤノンのNOD32にPFWを足した形で、NOD32の信頼性をそのまま受け継いでいるとすれば、かなりポイントが高い。
が巷の噂では、PFWがそんなによろしくない、ヒューリスティクス検出に力を入れていても一般的なウイルスをスルーするなど怖いうわさが飛び交っていたので、導入直前でやめた。

後者のKISはそれなりに有名らしい。日本ではJust Systemが委託販売?体験版で最大90日使えるらしいので、とりあえず入れてみた。
PFWも細かく設定できるし、レジストリガードやアプリケーション毎の細かな設定、全体プロファイルの保存機能(OSをよく入れなおす人には必須)があったり、独自調査とはいえこういう数字でレポートをまとめている自信があるところに信用感を覚えた。

そしてつい今しがた、慶應大学も導入したという記事も読んだし。

*1 : ブラウザ等ネットワークアプリを起動するたびに拒否しましたとウザい。

*2 : 未定義のアクセスは問い合わせる設定でも勝手に拒否る、IP/ホスト制限がローカル側に対してか、リモート側に対してか曖昧。VMの仮想ネットワークボードのアクセスからの定義がし辛い。

でもガチガチなのも問題?

これが原因か分からないけど、VMをインストールしようとしたときにBSODで死んだ。
念のためTrueImageで復元して、KISを一時的に無効してやったらうまくいったようだが、アプリの大量インストール時はOFFにしたほうがいいかもしれない。

2008/06/01(Sun)ディスク故障

2008/06/01 20:45 Software::Windows
昨日のVistaインストールでブートローダーが上書きされてしまったのを直そうと、今日色々やってみたのだが、余計に壊してしまった。

ブートローダーの復旧

対象のマシンにはHDDを物理的に3台積んでいる。
それぞれα、β、γとすることにすると、αが今回インストールしたVista、βが今まで使っていたXP、γが緊急起動用の昔のXPである。

αにインストールしたとき、βのブートセクタを壊してしまったので、αの接続を外してβの起動優先度を1番上にし、回復コンソールをCDブートで起動した。

ここで、ログインするときに何故かCドライブ(β)が確認できない。一応γへの回復コンソールログインが出来るようだったので試してみた。

無事にログインし、DIR C:を試してみると、何故か"列挙できない"という旨のエラーが帰ってきた。
「どーせ、ブートセクタが壊れてるからNTLDRを認識できず、したがって何か微妙な状態になってるんだろう」位にか考えておらず、fixmbrとfixboot c:を試したのだが、その時どちらも正常完了したものの、何故かFATとして認識されていた。


この時点で青ざめたのだが、ブートシーケンスまで行ってみるとNTLDR is missing。
と言う事はブートセクタは直ったわけだ。


ファイル構造がどうなっているかをαに入れたVistaから確認すると……


「10MBのパーティション???しかも、FAT12???」

開いてみると

αのVistaから見ても、γのXPから見ても、βの中には4バイトのファイルが一個あるだけだった。

念のためKNOPPIXを試してみたが、パーティションはちゃんとNTFSなものの、中身は文字化けしまくっていて読めない。

red:えーー!

どうやら

HDDの論理テーブルを壊してしまったようだ……。
幸い最重要なMy Documents辺りは95%位バックアップに頼っていいと思うのだが…。200GB近くのデータが失われるのはやっぱり辛い。

となれば復旧

αに入っているけど、とりあえず使い物にならないVistaはフォーマットして、こちらに復旧させる事に。
γで起動して、復旧ソフトを立ち上げてみる。


まずは、以前にお世話になった「R-Studio データレスキュー PRO」を試してみる。
以前もシステムディスクが壊れたとき、これにお世話になったが、復旧率は微妙だったかなぁ……。

▼セクタースキャンしてみた。不思議なパーティションが認識されている
r-studio_rescue1.png


今回も試してみたけど、ディスクの最初の方のMFTが壊れてて読めないのか、ルートディレクトリにぶら下がってるディレクトリが読めた程度、ファイル群は全て削除されたものとして点々バラバラに検出された。

ファイルは戻せるかもしれないが、これでは元のディレクトリに戻すのは骨である。
▼ツリーが1階層で切れている……
r-studio_rescue2.png

次に試してみた復旧ソフト

FinalDataという有名すぎる復旧ソフトを試してみた。とはいえ、2006とかもうかなり前のバージョンだけど。

こちらはさすがに大御所だけあって、半端ない。

簡易スキャンではさすがに無理だが、パーティション検出をきちんと行って、セクタスキャンさせたところ、わらわらファイル名が出てきて、ディレクトリ構造も検出できている。

あと数時間で全クラスタのスキャンが終わるようだが……。


(追記)
結局ディレクトリ構造やファイル構造まで復元できていたが、ファイルの中身がぐちゃぐちゃで使い物にならなかった。やはり、パーティションタイプがへんちくりんになってしまった以上、どっかで勘違いを起こしたんだな…。
今までのデータにはお別れを告げて、新しいシステムを組もう……(涙

教訓

HDDの値段も下がってきたし、ソフトウェア的にでもミラーリングするシステムを作っておくのが良いかも…。
HDDを近日中に買おう……。


とかいって、前同じドライブを2台買ったけど、あればあるようにオリジナルデータを大量に溜め込んでしまうんだよな(汗