2014年8月23日土曜日

Windowsの回復環境の関する覚え書き

また、すぐに忘れてしまいそうなので、覚えているうちに順不同で記しておきたいと思います。
後日、頭の中が整理できたら、別エントリで総括したいと思います。

bcdeditとreagentcコマンド、および、DtoDのリカバリ環境に関して調べた結果です。

  • 回復パーティションは2種類ある。ひとつはWindowsRE環境で、システムのリフレッシュや復元時に使用されるもうひとつのWindows環境で、メインのWindowsが起動しない時にもこちらから起動される(ことがある)。
    もう一つは、PCメーカーが用意したリカバリイメージを含むパーティションで、たいていは数GByteのサイズで一番最後のパーティションであることが多い。
  • WindowsRE環境のパーティションは普通のNTFSだけれど、GPTのattributeで隠し属性になっているので、通常は見えない。diskpartでドライブレターを割り当てると、操作できるようになる。
  • WindowsREパーティションには、\Recovery\WindowsRE\というディレクトリがあり、この下に起動すべきWindowsREイメージ(ファイル名=WinRE.wim)が入っている。
  • \Recovery\WindowRE\ディレクトリにあるReAgent.xmlというファイルに、リカバリするための情報が書かれている。
    このファイルに書かれている情報としては、WindowsRE環境のある場所や、回復イメージのある場所などがあるが、それらの「場所」情報は、[ディスクID(GPT ID)]と[イメージが配置されているパーティションの先頭セクタ番号]の組み合わせで示されている。したがって、すべてのパーティション構造を保ったまま、別のHDDにクローンしてもそのままではリカバリは行えないということになる(リカバリイメージが見つからなくなるため)。
  • もしクローンしたときに、ディスクIDと、(もしパーティションサイズや位置に変更があれば)イメージのあるパーティション先頭セクタがずれてしまったら、それを直さなければならない。それを行うのが、ReAgentCコマンド。
    ReAgentC /setreimageを使うと、ReAgent.xmlファイル中のWinreLocationとImageLocationエントリを適切なものに設定してくれる。
    ReAgentC /setosimageを使うと、ReAgent.xmlファイル中のPBRImageLocationエントリを適切なものに設定してくれる。
    ReAgentC /enableを使うと、ReAgent.xmlファイル中のWinreBCDエントリと、BCDブート構成情報内のブートローダ構成({current}エントリにrecoverysequenceを設定し、そのrecoverysequenceの参照先に適切なWindowsREのブートローダ情報を設定してくれる。
    なお、これらのReAgentCコマンドによる設定内容は、bcdeditとdiskpartを駆使すれば手動でもできることだけど、面倒なのでReAgentCを使うと便利。
どうも、最後のReAgentCコマンドを使うあたりの調整処理は、TODO Backup 6.5.0.0を使ってHDDをクローン化したときはやってくれない感じっぽいです。

また、起動に関わる重要な情報を含むBCDも調整してくれません。そのせいで、TODO Backupでクローン化したあとは、0x80000225エラーでブートに失敗しているようです。
このとき、bootrecやbcdbootコマンドでとりあえずブートできるようには修正できますが、休止からの復帰に使うBCDブートエントリは直っていないことが多いです。こういうときは、手動でbcdeditを駆使して直します。

いまのところ、覚えているのはこんなところ。

2014年8月19日火曜日

dynabook R73購入

昨年末にLIFEBOOK WS2買ったばかりだというのに、今度はdynabook R73をポチってしまった。これが欲しくなって、夢の中にまで出てきてました・・・。

LIFEBOOKの失敗は、何と言っても「低電圧版CPUだったこと」です。Haswel世代になったので、そこそこサクサク動くと期待していたのだけれど、通常電圧版+SSDのサクサク動作に慣れてしまうと、ちょっとしたモタつきですら、ストレスに感じていました。
また、LIFEBOOKは21.1時間のバッテリー持続時間をウリにしていると思うのですが、実際の使用では10時間にも満たない感じでした。せめて半分の10~11時間はもって欲しかったので、この点でも残念感が強く残ってしまい、不満でした。

その点、dynabook R73はクアッドコアの通常電圧版Core i7だし、Full-HD画面に光学ドライブあり(→たぶんHDDマウンタで載せ替えると思う)なので、スペック的には申し分ないです。しかも、ThinkPadで慣れている「トラックポイント(通称、赤ポッチ)」はThinkPadだけと思っていたら、dynabookにも「アキュポイント」という同じようなものがあるじゃないですか!
バッテリー持続時間は、公称10.5時間と控え目ですが、測定方法がJEITA Ver.2.0になっていて、しかも低電圧版ではなく通常電圧版での値ですから、実際の稼動状態で7~8時間くらいはもってくれるのでは無いかと期待しています。

あと、指紋センサーがついていれば完璧なんですけど、これはまあ無くても我慢します。

唯一、気になるのが、LCDパネルの質ですね。
色の再現力とか細かいことはあまり気にしないのですが、グレア/ノングレアの違いは気になります。しかし、カタログにはそのどちらも書いていないんですね。
東芝の場合、「Clear SuperView液晶」という表現がカタログに出てくるのですが、これがグレア/ノングレアのどちらに該当するかどうかが不明。メーカーとしては、グレア液晶を好む一般ユーザーと、ノングレア液晶を好むビジネス&オタクユーザーの両方を取り込みたいので、そういう白黒ハッキリさせない表現を使っているのでしょうかね。
しかし、よくよくカタログを見てみると、モデルによって少しづつ表現が違いますね。

  • 高輝度・広視野角Clear SuperView液晶
  • 高輝度Clear SuperView IPS液晶
  • 高輝度Clear SuperView液晶
  • Clear SuperView液晶
  • 軽量・高輝度液晶
  • 広視野角液晶
R73では、このうちの「軽量・高輝度液晶」であって、Clear SuperViewの冠はついていない方です。これがどういうものなのかは店頭で確かめるのが一番良いのですが、残念ながらR73は近くの電気屋には置いていなくて、結局現物を見ないままフライングゲット(笑)です。あるブログでは、「ハーフグレア」と表現されているので、店頭にあるようなツルツルピカピカ液晶では無さそうなので、私的にはまあOKな範囲なのでしょう。また、2chでもR73の液晶はそんなに悪くない(ThinkPad T440pよりはよい)という評価もあるようなので、たぶん大丈夫だと信じています。

早く来ないかな。

Intel SSD故障?→保証期間につき交換してくれた

ありがたい話です。IntelのSSD(335シリーズ)が不調だったので、サポートに電話したら交換してくれました。3年保証の2年目だったのですが、保証期間が1年じゃなくて良かったです。

いま思えば、これが不調の前兆だったのかなぁ、と思います。

  • Windows使用中にときどき操作を受け付けなくなることがあった。
これがSSDの不調によるものかどうかを知る由もありませんが、次のような状況からSSDへのアクセスに問題が発生していたとしたら、有り得る話ではないかと思いました。

(状況)
  • あるアプリが急に操作を受け付けなくなる。その後、他のアプリもだんだん受け付けなくなってくる。
  • 新しいアプリを起動しようよしても開かない。
  • 開いているアプリを閉じようとしても、閉じないことが多い。
  • ウィンドウ自体は動かせる。ウィンドウ内の表示内容は保持されている。
  • そのうち、タスクマネージャーの表示が更新されなくなる。
  • そのうち、Windowsキーやエクスプローラも反応しなくなる。
  • マウスカーソルは動かせる。
  • ブルースクリーンにはならない。
  • 電源ボタンを短押ししても反応はなく、スリープ/休止状態にはならない。
  • 電源ボタンを長押しして、強制的に電源OFFにするしかない。
  • 再起動すれば、普通に立ち上がる。その後、chkdskしても問題は報告されない。
  • このような状況が発生するときは一日に続けて数回もおきるが、おきないときは何ヶ月も起きない。
都合のいい想像ですが、SSDへのアクセスが発生した時点でアプリ(というかプロセス)の単位でフリーズしているのではないだろうか?SSDへのアクセス、あるいは、SATAのリンクに何か異常が発生してリトライばかりで回復できない状況に陥っていると、後付けの理屈ですが、そんな風に思います。

このような状態でだましだまし使ってきましたが、当初はWindowsシステムの何らかの問題であって、SSDが原因とは考えていませんでした。しかし、SSDの故障が決定的になったのは、chkdskで大量のエラーが報告されるようになったこと、それからIntelのToolboxでテストにかけると「読み取りエラー」が報告されるようになったことです。

この「読み取りエラー」はやはり深刻なもののようで、Intelのサポートに電話をしたときにこの「読み取りエラー」のことを告げると、すぐに交換対応ということになりました。

実際のところ、多少失ったファイルはありますが、いずれもアプリケーション本体なので再インストールすれば済むものばかり。作成したファイルやソースコードに被害はなかったので、まだアクセスできるうちに別のSSDに移して、事なきを得ました。

余談ですが、SSDとシステムをコピーするとき、TODO Backup 6.5.0.0を使ったのですが、これはGPTパーティションを丸ごとコピーしてくれますが、なぜか起動環境は壊れてしまう(というか、不整合が出てしまう)。これはどうしてなんでしょうか?
調べてみると、BCDの内容が正しいパーティションを指していないです。ディスク構成やパーティション構成が同じであれば、BCDファイル自体をコピーするだけでうまくいきそうなのですが、かならずBCDを再調整しないといけないですね。もしかすると、BCDの中身には、パーティションへの相対的な位置を記録しているのではなく、ディスクのID(GPT ID)を含めた絶対的な位置を記録しているのでしょうかね。そうであれば、新しいSSDが異なるディスクIDを持っていると、確かにBCDが正しい起動パーティション/オプションを参照できなくなりますね。
いずれにしても、BCDにはだいぶん慣れましたので、bcdeditやbootrecを使って(多少手間ですが)簡単に直せるのでヨシとします。

だいぶん脱線しましたが、intelのサポートは丁寧でなかなか良かったです。今回はたまたま具合の悪い個体に当ってしまいましたが、工業製品に一定割合の不具合品が含まれてしまうことは仕方のない事なので、これからも価格がそれほど違わなければintelのSSDを選ぼうかと思いました。

2014年8月2日土曜日

富士通の「わけあり品」PCって・・・

正直なところ、個人的には「わけあり」だろうがなかろうが、安く買えるならどっちでも気にしないです・・・PCの購入に関しては。

しかし、どうも富士通さんの「わけあり品」という売り方に関しては、疑問を感じます。
  • 「わけあり品」を全面に打ち出す以外に、お買い得感を出す方法はなかったのかなぁ。
  • PC自体はデザインも含めてがんばってるなと感じる分、「わけあり」って言われると残念だなぁ
  • そんなにいつもいつも「わけあり品」があるって、どういうこと?
かくいう私も、「わけあり」でない方の富士通さんのPCを買ったわけですけど、なんか嫌な感じがずうっとしています。もうちょっといいところ、頑張ったところを前に出した広告にして欲しいものです。

なので(何が「なので」なのか・・・)、もうしばらくの間LIFEBOOKは使っていないです。
これは個人的な感覚ですが、やはり低電圧版CPU(「U」版)はいくら最新CPUのCore i5だといってもモッサリ感は否めないです。SSDに替えてもです。このちょっとした違いが我慢できず、いまだにThinkPad Edge E430を使い続けています。

ああ、もったいないことしてるなぁ・・・

2014年7月17日木曜日

[S]と[D]は隣同士なので・・・

キーボードで[S]と[D]は隣同士なので、この2つから一方を選択させるような操作はやめて欲しいです。

何のことか?と思われるでしょう。これはOpenOfficeでファイルを保存するときの保存確認ダイアログの話です。



こういうとき、私はアクセラレータキー(下線付きのSとかDとか表示されているやつ)を使って、キーボードで操作することが多々あるのですが、「保存(S)」と「破棄(D)」ではまったく真逆の動作なので、押し間違えると大変です。
まあ、押し間違える方が悪いと言われればそのとおりなのですが、できればこのような割り当ては避けるというのが、UXの向上につながるということなのではないでしょうか。


2014年7月11日金曜日

起動しなくなったWindows8(8.1)の件の続き

(2014/8/21追記)
下記に書いてあることは、うまくいく場合もあります(ありました)が、その後の経過を見ていると、当てはまらないことの方が多いように思います。
が、念のため、この書き込み自体は消さずに残しておきます。

2014年7月1日火曜日

またブラウザで指紋認証ができなくなった・・・

以前、「Google ChromeでAuthenTec TrueSuiteが動かなくなった」と書いた件、また発生しました。
今回も実際はChromeじゃなくて、Ironなんですが、このIronは自動的にアップデートされないので手動でアップデートするのですが、今回この手動アップデート後に現象が出るようになりました。しばらくアップデートをサボっていたので、Ver.27→Ver.35への大幅バージョンアップだったので、またまたJavaScriptに渡されるオブジェクトの型や内容が変わったのだろうと推測出来ました。

調べてみますと、今回はonMessageとonDisconnectに渡される引数の型に変更があったようなので、これに合うようにTrueSuiteの方のスクリプトを書き換えました(画像中の赤で囲んだ部分を追加)。


これで、ちゃんと指紋認証の確認ダイアログがでるようになりました。

2014年6月24日火曜日

ブートしなくなったWindows 8.1の復旧

最近、またThinkPad Edge E430を使い始めています。やはり、「U」版のCPUとはキビキビ感が違いますから。

そのE430ですが、なぜか起動しなくなりました。UEFI BIOS画面が出て、Windowsの旗が表示されたところで、すぐに電源が落ちてしまいます。玉がグルグル回るアニメーションが出る直前のことです。
見た目の症状としては、以前の「休止状態から復帰しない」と同じですが、今度はもっと重症です。以前は、再度電源を入れると「休止状態からの復帰」ではなく「コールドブート」で起動していたのですが、今回は何回やってもまったく起動しません。

このThinkPadはシステム用のSSDと、データ用のHDDのデュアルドライブで運用しているのですが、不思議なことにデータ用HDDを外すと起動するようになります。その後、そのHDDを再びつけても、ちゃんと起動できます。しかし、「何かの拍子」にまた起動しなくなってしまいます。その都度HDDを外したりつけたりしていましたが、あまりにも不便です(その後気づいたのですが、修復ディスクやWindows8インストールディスクから起動して、「Windows8(8.1)へ進む」とすることでも、起動できるようです)

試行錯誤していくうちに、その「何かの拍子」が何か分かりました。「高速スタートアップ」を有効にしてシャットダウンした場合と、休止状態にした場合です。その操作をしたあとは、Windows8.1が起動しなくなることに気づきました。一方、「再起動」と「SHIFTキーを押しながらシャットダウン(=完全シャットダウン)」のときは、ちゃんと起動できます。

これに気づいてgoogleって見ますと、皆さん同じ症状で困っているようですね。しかも、外付けUSB-HDDの内容が飛ぶとか、怖い話もあるではありませんか!
しかし、どのページを見ても「高速スタートアップは無効する」というような対処療法的な解決策しか載っていませんでした。確かに、SSDを使っていると高速スタートアップのご利益はあまり無さそうですが、高速スタートアップを無効にしたところで、休止状態から復帰できないことに変わりはないので、私としては全然問題解決になっていないです。

いろいろと調査&試行錯誤した結果、ようやく解決策を見つけました!
私のThinkPadの場合は、BCDストアを少しいじってやると直りましたので、紹介します。


  • 修正ポイントその1-bootmgrのあるボリュームが明示的に指定されていなかった

    もともとそうだったのか、何かのタイミング(怪しいのはWindows8.1 Updateのとき?)にそうなったのかは定かではありませんが、BCDストアの「Windows ブート マネージャ」に存在すべき(だと思う)deviceエントリがありませんでしたので、下記のように追加しました。

    Windows ブート マネージャー                                    
    --------------------------------                             
    identifier              {bootmgr}                            
    device                  partition=\Device\HarddiskVolume1    
    path                    \EFI\Microsoft\Boot\bootmgfw.efi     
    description             Windows Boot Manager                 
    locale                  ja-JP                                
    inherit                 {globalsettings}                     
    integrityservices       Enable                               
    default                 {current}                            
    resumeobject            {e47973bb-8254-11e3-9794-f7a2787aa3d1}
    displayorder            {current}                            
    toolsdisplayorder       {memdiag}                            
    timeout                 5                                    
    HarddiskVolumeのあとの数値は、PCによって異なる可能性が高いです。ここには、EFIパー ティションを指定します。
    正しく指定されているかを確認する方法の一つは、そのEFIパーティションにドライブレターを与える方法です。diskpartを起動して、EFIパーティションをselectしたら、assign LETTER=sなどのようにドライブレターを割り振ります。その後、bcdedit /set {bootmgr} device partition=\Device\HarddiskVolume? コマンドで適当な番号を設定した後、再度bcdedit /enum コマンドで確認した時に、device  partition=S:と表示されていたら正解です。

  • 修正ポイントその2-「休止状態からの再開」にあるinheritエントリを削除する

    これについては、こちらの情報を参考にしました。Windows Vista SP1での情報ですが、症状は似ています。Microsoftは、Vistaでの間違いをまたWindows8でも繰り返したのでしょうか?

    bcdedit /enum bootappコマンドなどで、ブートアプリケーション一覧を表示させて、「休止状態からの再開」に対するidentifier(GUID)を覚えておきます。
    そして、bcdedit /deletevalue {GUID} inheritコマンドを実行します。

このトラブル解析のおかげで、BCDに関する知識がだいぶん深まった気がします。
いままで気付かなかったのは、BCDは単に「エントリ=値」の関係を覚えているだけに過ぎないこと、いくつかの「エントリ」は起動すべき実行ファイルを指すなど重要な意味を持っているけれど、それ以外のエントリはブートするアプリに固有の情報でしかないこと、です。できれば、個々のエントリについてもう少し詳しい意味・解説が知りたいところですが、今はなんとかブートできるようになっただけで「おなかいっぱい」なので、後日調査することにします。


2014年5月27日火曜日

今更ながらムラーノ(PZ50)の乗り心地で感じたこと・・・

先日、ティアナに乗る機会があったのですが、ちょっとビックリしました。すごく静かだったんです。

ティアナは、そこそこの価格に抑えてありますが、いちおう「ラグジュアリーサルーン車」としての位置づけと理解していましたので、乗り心地はまずまずいいのだろうと思っていましたが、まさかムラーノよりもはるかに快適だとは思ってもみませんでした。

まず、アイドリングが静かでほとんどエンジン音が聞こえず、振動もわずかだったです。

それから一番驚いたのは、遅くてもある程度の速度を出していても、多少の段差であれば静かにタタンッと軽く踏み越えて、嫌な突き上げはなく、音や振動が社内で響いたり残ったりすることもなく、一発でスッと収めてくれます。それでいて、フワフワして乗り味ではなく、しっかりと路面を捉えている感じがあるのは私好みでした。

一方、ムラーノときたらどうでしょう。
検索するとムラーノは「多少の突き上げはあるけれど、ロールは少なく静かである」「段差越えも気にならない」というような評価が多いのですが、私の感想としては、

  • 段差を越えた後に残るダッダッダッという振動と音が酷い
  • アイドリング中もポコポコというようなこもった音が社内に響いていて、むしろ走っている時の方が静かと感じる
という感じで、この二点についてはティアナにボロ負けしていると思います。
「多少の突き上げ」に関しては私自身固めのセッテイングが好きなので、これまで「そんなもん」と思っていましたが、ティアナみたいなセッティングが可能ならそうしたいくらいです。車格も重量も違うので、それは物理的にムリなんだろうな。

あと、確かに走行中は高速走行であっても、ムラーノの方が静かだとは思います。高速走行時の安定性・直進性もムラーノに軍配でしょう。しかし、いかんせん上に書いた二点が悔しい!「すごく良い」と評価している人もいるようなので、これは個体差なのかなぁ。つまり、ハ・ズ・レを引いているということなのでしょうか。
でも、他の部分は気に入っているので、少なくともあと2年、10万kmは走りますよ。

2014年5月2日金曜日

マルチキャストパケットの受信方法

自分向けの備忘録なので、要点のみとします。


  1. ソケットを生成する
  2. IPADDR_ANY+任意のポート番号で、bindする
  3. setsockoptにIPPROTO_IP/IP_ADD_MEMBERSHIPを指定して、マルチキャストグループからのメッセージを受け取れるようにする。
  4. 必要に応じて、3を繰り返す。
  5. recvfromでパケットを受け取る
これで、あとはファイアウォールを正しく設定すれば受信できました。

が、上の手順3~4で複数のマルチキャストグループを指定した場合は、受け取ったパケットがどのグループ宛だったのかが分かりません。

今回は、複数のグループからのマルチキャストパケットのグループを区別して受け取りたかったので、検索した結果、次のような方法があることを知りました。
  1. ソケットを生成する。
  2. setsockoptにSOL_SOCKET/SO_REUSEADDRを指定して、一つのポートに複数のソケットをbindできるようにする
  3. IPADDR_ANY+任意のポート番号で、bindする
  4. setsockoptにIPPROTO_IP/IP_ADD_MEMBERSHIPを指定して、マルチキャストグループからのメッセージを受け取れるようにする。
  5. 必要に応じて1~4を繰り返し、グループ毎に別々のソケットを用意する。
  6. 個々のソケットでrecvfromなどで受信する
要点は、複数のソケットを用意することと、それらのソケットに同じポート番号をbindできるようにSO_REUSEADDRフラグをセットすることでした。