2008/06/17(Tue)Boot Windows from USB-HDD

2008/06/17 23:53 Software::Windows
前々から環境整備したWindowsをポータブルに持ち運べないかと考えていた。

PXEブートだとか、色々難しく考えすぎていたのかもしれないが、ググってみたら、意外と簡単に行けそうなことが書いてある記事があった。
USB外付けHDDからWindowsをブートする(1)


試してみたいのはやまやまだけど、ちょっと時間がないのでまたに…。

でもなぁ、Windows環境を持ち運べるようにしたところで、そのライセンスはPC1台分必要だし、繋ぐPCによってドライバ関係がめんどそうだし、何より……電源レスにしようとしたら、2.5インチHDD=遅いからあんまり意味はないかなぁ。

2008/06/07(Sat)UltraVNC SC

2008/06/08 0:13 Software::Windows

UltraVNC SCとは

UltraVNCの派生的存在のUltraVNC SCというのがあります。
UltraVNCは他のVNCソフトウェア同様、遠隔操作のためのツールの一つであるが、このSCというのはSingle Clickの略で、遠隔操作を使用したサポートにもってこいのツールですね。

UltraVNC SCのすすめ

離れた場所にあるPCをサポートしたことのある人なら誰もが経験していると思いますが、まず「サポートしづらい」でしょう。
離れた場所にあるPCをモニタリングなどできないから、
  • 電話・メール越しに状態を聞いてアドバイスするとか
  • メッセンジャーでお話しながら聞くとか
一種のエスパー的推測をしながら対処していることだろうと思います。

UltraVNCSCを使うと、相手にファイルをひとつ送って開いてもらい、1クリックしてもらうだけで、こちらにVNC同様、画面がリアルタイムに送られてくる。もちろん操作もできます。
UltraVNC付属機能の、ファイル転送なんかもできる。
相手がファイアーウォールの圏内にいても、問題なし。
唯一の弱点といえば、相手がWindowsに限定されること、支援する側のポートが開いていないといけないくらいでしょうか。

構築方法

幸い便利な生成ソフトが作られているので、これを使うとよい。
画面レイアウトをカスタマイズしてEXEを作るだけ。
後は、USBメモリで渡すなり、メッセンジャーで渡すなり、無料HPのサーバーに置いておくなり好きにすればよい。

一方、支援する側にも設定が必要です。
もっとも、支援する側なんだから、これくらい事はわかってくれると思って書きますが。
  1. TCPポートをひとつ開けます。ルーターを使っている場合は、NAT設定で、支援するPCに転送するように設定しておきましょう。
  2. ファイアーウォールで、そのポートが使えるように開放しておきます。
  3. UltraVNCのvncviewer.exeをListenモードで起動します。具体的には、vncviewer.exe -listen <port-number>
これだけです。

ファイアーウォールを越える仕掛け

↑で支援する側にvncviewer.exeをListenモードで立ち上げるのがミソです。
ビューワ側にサーバー的役割(Listen)をさせることで、支援される側のファイアウォールを内側から開けることができ、その開いたポートを使って、UltraVNCSCから画面情報をこちらに流してVNCするわけです。
考えた人は偉いですね。

レスポンスが悪い場合

UltraVNCSCで作ったsc.exeは、一応2000やXP、Vistaなどで使うことができるようですが、Vistaの場合、極端にレスポンスが低下することがあります。
これを解決するには、UltraVNC本体に含まれているVideo Hook Driverを組み込んでやるとよい模様。
UltraVNC 1.0.4RC14 日本語版 Release 1等に含まれている、Ultravnc_driver_Setup.exeを、支援する人のPCでインストールしてもらえば、サクサク動くようになります。


有料の遠隔支援ツールを使わなくても、こんなに素晴らしいツールがありますよ。。。

2008/06/04(Wed)HGSTのHDD

2008/06/04 7:30 Hardware::PC
私はいわゆるIBM信者で、昔からIBM製のHDDしか買っていない。
が、IBMの名前はHitachiに変わり、結局今はHGSTに変わったわけですが……。

勿論、十年ものを越えると壊れてくるHDDも1~2台はありますが、物理的に壊れたことはなく、シーク音も静かなので気に入ってます。

が、最近あまり聞き捨てならない問題が起こっているらしいのでちょっと調べてみました。

P7K500問題

こちらのスレッドなどを参考にすると、
  • HDP725050GLA360 500GB
  • HDP725040GLA360 400GB
  • HDP725032GLA360 320GB
  • HDP725025GLA360 250GB
あたりのHDDで制御方法の違いによる差でチップセットと干渉することがあるそうな。

価格.com - ハードディスク・HDD(3.5インチ)でも人気第1のHDP725050GLA360に一体何が起こっているというのか。

以下の解説が非常にわかりやすかった(スレより引用)ので、HDDを買うのはちょっと待った方がいいかもしれない。
■チップセットとHDDのいざこざ会話
 用語解説&登場人物
  ・LBA28・・・(最大137GBまで制御可能な命令)
  ・LBA48・・・(最大144PBまで制御可能な命令)
  ・HGST・・・日立HDD P7K500
  ・intel・・・Intelチップセット ICHR でAHCI/RAIDモード

 intel : おれはLBA28とLBA48の両方を扱えるぜ。どっちにする?
 HGST: いまどきLBA28なんぞ使わんだろ。LBA48でよろしく。
 intel : 了解。ただし128GBまでのアクセスはLBA28で命令するぜ。
 HGST: いや、両方つかわれると混乱するから、やめてよ
 intel : 知るかボケ。はい前半LBA28。はい後半LBA48。はいまたLBA28、つぎLBA48。
 HGST: やめてくれーー。あーなんか頭が混乱してきた・・・もうダメ
 intel : おい、応答なしかよ。OSには「HDD応答なし」と伝えておく。
 Windows : (死亡)
 全員 : (死亡)

■原因
・intelドライバはなぜか128GB以上(LBA48対応済み)HDにもLBA28を使いたがる
・HGSTはLBA28とLBA48を混同されると、脇が甘いため境界部分が読めない
 (パーティション境界をうまく挟めばOKだが、爆弾を抱えている状況は変わらない)

■両者の言い分
 intel :LBA28の終わり(LBAアドレス0x0FFFFFFE)をちゃんと処理しろ!ボケ!!
 HGST :いちいちLBA28とLBA48をつかいわけず、全部 LBA48使え!ボケ!!

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の情報を探す方がいいのかも。