2012年9月23日日曜日

リカバリメディアを何度でも作る方法[まとめ]

ThinkPadシリーズのリカバリメディアを何度も作る方法についてこのブログを訪れる人が多いようなので、これまでに分かったこと(→元ネタ)のまとめをしておきます。

対象となる機種がどれなのかははっきりとは分かりませんが、少なくともThinkPad Edge E430はすべてのモデルで該当するようです。おそらく兄弟機のE530も同じでしょう。また、2011年後半くらい以降に発売開始になった他のモデルでも同じ方法が使えるかも知れません。ただし、E420/E520は方式が古い(service_done.iniファイルによる方法)のでこの方法は使えません。

なお、ここに書き込む方法は一度リカバリメディアを作ってしまったあとで、「しまった!別のメディアに作り直したい!」とか「リカバリメディアを作ったが1つでは心許ない。もう一つ欲しい。」という人のための方法であって、ThinkPadを購入した直後にHDDのイメージバックアップを採っている人はそのバックアップイメージを復元すればほぼ完全な「工場出荷状態」に戻せるわけですから、以下の方法は意味を成しません。可能であれば、リカバリメディアを作る前にディスクイメージでバックアップをとっておくことを強くおすすめします。


では、2回以上リカバリメディアを作成する方法を説明します。

  1. ThinkPadで普通にWindowsを起動してください。
  2. コマンドプロンプトを起動します。
  3. q: [ENTER]と打ち込んでQドライブに移動します。
  4. cd FactoryRecovery [ENTER]と打ち込んでリカバリイメージのあるディレクトリに移動します。このディレクトリは隠しディレクトリになっていますが、"cd Fa"くらいまでを打ち込んでTABキーを押すと自動的に残りが補完されるはずです。
  5. echo > recovery.ini:Done [ENTER]と入力します。
以上の操作でもう一度リカバリメディアを作成できるようになっているはずです。
もう一つメディアを作成するとまた作成できなくなるので、また上と同じことを行ってください。


(2012年10月9日追記)

ちなみに、recovery.ini:Doneに書き込む内容は、先頭の1文字が"1"という文字でなければ何でもよいようです。言い換えると、副次ストリームrecovery.ini:Doneの先頭が"1"であればリカバリ済みと判定しているようです。

ですので、echo 0 > recovery.ini:Doneでも、echo 01 > recovery.ini:Doneでも、リカバリメディアを作ることができるようになります。
一方で、echo 1> recovery.ini:Doneはもちろん、echo 100000 > recovery.ini:Doneとした場合でも、リカバリメディアを作ることはできなくなります。


2012年9月12日水曜日

一度くらいは取説に目を通してみるもんです

前回書いたFnキーの組み合わせを解決したくて、ThinkPad Edge E430のユーザー・ガイドを見てみました。すると、意外な発見がありました。


  • Fnキーを4秒以上押し続けると、ファンクションキーをF1-F12キーとするか特殊機能キーとするかを選択できる!
F1-F12キーの扱いはBIOSからでないと変更できないと思っていたのですが、Windows上からも変更できるのですね。しかも、普通にコンパネからキーボードのプロパティを開いても、次のようなダイアログが出るではないですか!


Visual Studioを使っているとファンクションキーは多用するのでいちいちFnキーと一緒になんて押していられない(=swapする設定で常用してます)し、このプロパティでこまめに変更できてもうれしくはないのですが、そんな機能があるならもっと早く教えて欲しかったです。BIOSでしか変更・設定できないと思っている人は多いはず・・・。

でも結局は、Fn+Bキーとかの謎は解けなかった(ユーザー・ガイドには書いていなかった)。

2012年9月10日月曜日

BREAKキーの代用

「困った」というほどではないのですが、ThinkPad E430には"BREAK"キーがないのには驚きました。

いや、BREAKキーの用途としてはたった一つしか思いつかないし、それはVisual Studioでビルドを中止するときという極めてニッチな用途しかないので、「もうBREAKキーなんて要らないだろう」となくしてしまうもの理解できないわけではないです。最初はビルドを止めたくなったら反射的に右手が右上の方に飛んでいくのでとまどいがありましたが、だいぶ慣れたいまはALT+B、Aと押すようになりBREAKキーがなくてもよくなってきていました。

しかし、E430でもBREAKキーがあるというではないですか!それは、

  Fnキー+P

ということらしい。
確かにCTRL+Fn+P(=CTRL+BREAK)でビルド中止することができました。

どうしてこんな隠しキーみたいな扱いになっているのでしょうか?取説に載ってるのかな?普通PCの取説って読まないですよね?Pキーの上に赤で"BREAK"と印刷くらいはできたと思いますが・・・。

で、いま思いつきましたけど、他にもFn+?キーの組み合わせが隠してあるのではないかと思い、Fnキーといろいろ押してみました。


  • Fn+R:ウィンドウロック(ログオンパスワードの画面に戻る)
  • Fn+T:(不明)
  • Fn+I:(不明)
  • Fn+P:BREAKキー
  • Fn+S:(不明)
  • Fn+C:(不明)
  • Fn+B:(不明)
と他にも組み合わせがあるようです。が、どういう機能が割り当ててあるのか分かりません。Fn+SあたりはScrollLockかな~と推測しますが、具体的に使う場面を知らないので機能しているのかどうか分かりません。


さて、蛇足ですが、コンテキストメニューキーも残しておいて欲しかったなぁ、と個人的には思います。
Visual Studioでソース編集していると、カーソルキーとSHIFT/CTRLキーの組み合わせで文字を選択した後、そのままその選択範囲に対するコンテキストメニューを出したくなることがあります。マウスやウルトラナビの右ボタンでは、まずその選択範囲内にマウスカーソルを持って行かなければならないのでちょっと面倒です。あまり使わないけど、やはりあると便利です>コンテキストメニューキー。

2012年9月6日木曜日

指紋リーダーのススメ

ThinkPad Edge E430について来た指紋リーダーはなかなか便利です!

これまで特に必要性を感じていなかった指紋リーダーですけど、E430を買うときにどうしてもアルミブラックにしたかったので仕方なくついてきました。
「まあ、ログオン時かPC起動時にパスワードを入力する代わりに指でなぞる」くらいにしか考えていなかったのですが、なかなかよくできていて便利です。

まずはログオン時。パスワードをその都度入力するのが面倒なので「パスワードを入力せずにログオンする」設定にしていましたが、もしPCを盗まれでもしたら簡単にディスクの中を覗かれてしまいます。指でサッとなぞるだけなら、長いパスワードをいちいち入力しなくて済むので全くストレスになりません。

それから、g-mailやらamazonなどいろいろとアカウント認証の場面がありますが、(どういう仕組みになっているのやら)そういう場面では自動的にポップアップが出てきて指をなぞるとアカウント&パスワードが自動的に入力されてログインまでされます。これはなかなかよくできていると感心しました。
ブラウザもアカウント名やパスワードを覚えてくれますが、最初の一文字でサジェスチョンが出るだけだったり、パスワードについては結局全部入力しなければならなかったりと、多少手間がかかっていましたが、それらがすべて指をなぞるだけで済んでしまうので非常に便利です。

更に、それ以外の場面で指をなぞると、あらかじめ登録したアプリやWEBサイトを起動することができるようになっています。それぞれの指ごとに設定ができるので、最大10アプリorサイトまで登録することができます。私の場合は、G-mailのサイトを登録しているので、指でなぞればすぐにメールチェックができて重宝しています。

意外といろいろと使えるものです、指紋リーダー。わずか1050円で追加できるのですから、その価値は十分にあると思います。

2012年8月24日金曜日

[ThinkPad Edge E430] 2つ目のリカバリメディア作成法

ようやく2つ目のリカバリディスクを作ることができました。(作成方法だけを知りたい人は、こちらにまとめを書いてありますので、そちらをご覧ください。)

転売対策か何かの理由(ライセンスの問題?)で、リカバリディスクは1部しか作れないようになっているようですが、DVDに焼いたものは保存性にどうも疑問があります。以前TVドラマをDVD-Rに焼いていたのですが、ほんの1ヶ月くらいで読めなくなったことがありました。怪しいDVD-Rを使うからだ!と言われればそれまでですが、それ以来DVD-Rよりは保存性がいいと言われているDVD-RW(もちろん国内メーカーのもの)を使うようにしていますが、それでも使えなくなったらと思うと心配です。

話がそれました。
いったんはDVDにリカバリを作ったものの、やはりUSBメモリにリカバリメディアを用意したいと思いました。が、一度作ってしまったらそれを許してくれません。WEBをいろいろ見てみると、リカバリメディアの作成に失敗してしまってもう二度と作れなくってしまった人もいるようなので、そういう人のためにもここに方法を記録しておきたいと思います。

できるだけ簡単な方法として、リカバリメディア作成処理の本体であるrecovburncd.exeにパッチを当てるプログラムを書こうと思ったのですが、このexeはデジタル署名がついていて改造が困難なこととそのプログラムを作る時間がないので、手動での操作手順だけ示したいと思います。
前置きが長いですが、この方法はちょっと面倒且つ難しいです。慣れていない人はそれなりの根気が要るかもしれません。また、この方法が適用できるのは今のところ特定のバージョンのrecovburncd.exeに対してのみです(ファイルサイズ504120byte、更新日時2012年3月22日13:18:54のもの)。他のバージョンでは、下記手順のアドレスを調整しなければいけないでしょう。

では、方法です。

  1. ここのページからWinDbgをダウンロードしインストールします。
  2. WinDbgを「管理者として実行」します。
  3. 「File」→「Open Executable」メニューを押して、c:\Program Files (x86)\Lenovo\Factory Recovery\recovburncd.exeを開きます。
  4. 「Save information for workspace?」と聞かれたら、Noを押します。
  5. Commandウィンドウで lm [ENTER] とタイプします。モジュールの一覧が表示されますので、少しスクロールバックしてモジュール名=rec7burncdを探します。そのstartアドレスを控えておきます(通常は00400000hになります)。
  6. Commandウィンドウで bp 0x40c7fc [ENTER] とタイプします。この0x40c7fcの部分は、前の手順で控えたstartアドレスに+C7FChを加えたものとします。
  7. g [ENTER]とタイプします。Commandウィンドウの最終行が
    0040c7fc e85f0d0000 call rec7burncd+0xd560 (0040d560)
    と表示されていればOKです。そうでない人はrecovburncd.exeのバージョンが異なっていると思われます。あきらめるか、何らかの方法でオフセット値を再調査しなければいけません。
  8. 次に「F10」を1回だけ押してください。しばらく*BUSY*表示となったあと、再びプロンプトに戻ってきます。このとき4行くらい前にeax=00000001と表示されている場合はリカバリ作成済みです。一方、eax=00000000と表示された場合リカバリはまだ作成されていません。このeaxを強制的に00000000に書き換えることでリカバリ作成処理に移ることができるようになります。
  9. r eax=0 [ENTER]とタイプして、eaxレジスタの値を1→0に書き換えます。
  10. g [ENTER]とタイプして続きを一気に実行します。
    以降は、リカバリメディアの作成を行うダイアログが表示されて処理を進めることができるはずです。

私はこの方法で新たにUSBメモリにリカバリメディアを作成することができました。これで4枚ものかさばるDVDを管理しなくて済みます。
しかし、私の場合このUSBメモリからブートすることができませんでした。調べてみると、USBメモリ上のリカバリ用パーティションがactiveになっていない、MBRにブートコードが書き込まれていないということのようです(リカバリメディア作成中にブートコードを書いてくれない仕様なのかなあ)。
その後もいろいろと検索してみたのですが、書き込み済みのUSBメモリのMBRにブートコードだけを書き込む方法がなかなか見つかりませんでした。仕方ないので、MBMをUSBメモリにインストールしました。幸いネットワークブートできるMBMを用意してあったので、そこからPCをブートしてUSBメモリにMBMをインストールしました(通常はCDブートの方が簡単かも)。ついでに、パーティションもアクティブにしておきました。
ようやくUSBメモリ版リカバリメディアが用意できました。

2012年8月21日火曜日

リカバリディスク作成時の注意

先日来、ThinkPad Edge E430ばかりのネタを書いていますが、今日もちょっとひっかかったので書いておきたいと思いました。

一つ前のモデルですが、ThinkPad Edge E420に関する情報はそのままE430にも適用できることが多いようなので、こちらのWikiなどを参考にしていました。
ここの情報によると、「リカバリディスクは通常1コピーしか作ることが許されていないが、Edgeシリーズでは伝統的に"Q:\FactoryRecovery\service_done.ini"を削除すれば何度でも作成できる」とありますが、これはE430には当てはまりません!
E430やE530、それからここ最近のThinkPadシリーズではリカバリディスクの作成方法が変わってきているようで上のファイルは作られませんし、そもそもファイル構成自体が変わってきているようです。このWikiでは「伝統的に~できる」と書いてあるので、これからも同じだろうと思ったのは私だけではないようで、2chやブログなどで2つ目のリカバリメディアを作れると思って引っかかった人が何人かいるようです。

この「伝統的に」という文句はもう外さないとダメだと思います。あるいは言葉を選ぶべきです。この書き方だと、これからもずっと同じようにできると読めてしまうし、それをLenovoと関係のない人がいくらwikiといえども書き込むのは危険です。

さて、私の場合はとりあえずDVDにリカバリメディアを用意したものの4枚にもなって管理が面倒なので、USBメモリ1個に置き換えたいと思ったのがことの始まりです。そのためのわざわざ新しいUSBメモリを買ったのに、リカバリメディアが作れないのであれば無駄な出費になってしまいそうです。
新しいリカバリ方法では、"Q:\FactoryRecovery\recovery.ini"というファイルが作られるようなので(タイムスタンプがこのファイルだけリカバリメディアを作った日になっていた)このファイルが何らかのキーになってリカバリ済みだと判定してると思ったのですが、そうではないようです。このファイルをいろいろ書き換えてみましたが、やはり2つ目のリカバリメディアは作れません。
もう少し別のアプローチで調べてみようと思います。

2012年8月17日金曜日

Home Premiumで初めてつまずく・・・

Windowsは以前からよく分からないエディションがいろいろありましたけれど、あまり気にしていませんでした。普通のユーザーが普通に使う分には一番下のエディションで困らないですから。
まあ、そうですね、私が記憶にある範囲では、リモートデスクトップが使えるかどうか?、BitLockerが使えるかどうか?くらいの差があることは認知していましたが、どちらも使わない(だろう)機能なので完全に無視してました。

しかし、この度初めてHome Premiumを使って躓いてしまいました。

 「Visual Studioのリモートデバッグ機能が使えない



ということらしいです。
これまではレッツノートを使ってきたので、自ずとProfessionalエディションだったので気づかなかったのですね。さてさて、どうしたものか・・・。

2012年8月12日日曜日

ThinkPad E430の高熱

先日書いたThinkPad E430の高熱情報の続き。

同じ現象がまた起きました。最高温度は2つのコアで101℃となっていました。Tj maxが105℃なので、本当に強制電源断の手前まで来てるのでしょうか?

今回は2回目なのでもう少し落ち着いて様子を見ることができたと思います。この問題が起きたときは、やはりCPUファンは回っていなかったと思います。どんなに耳を近づけてもファン音を確認できませんでした。また、実際に排気口あたりを触るとかなり熱くなっていたので、Core Tempの表示がおかしかっただけというわけではないと思います。たぶん触れ続けると低温火傷にはなっていたでしょう。

前回は慌ててシャットダウンしましたけど、今回はスリープにしてみました。そして10数秒くらい待っておもむろに再度電源を入れました。すると、画面が表示されてすぐにCPUファンが勢いよく回り始めてCore Tempの表示温度もみるみる下がっていきます。さっきまでは95℃以上をうろうろしていたのにあっという間に70℃を下回りました。

何らかの原因でCPUファンの制御がちゃんと利いていないのだと思います。Windowsのドライバが原因?いや、基本的にOSのドライバレベルでCPUのファンを制御していたら危険だと思いますから、それはないと思います。
じゃあBIOSのバグか?この可能性が高いような気がします。実際には、ファンをコントロールするマイクロコントローラが入っていて、それが温度の検知とファン制御をしているんだろうと予想しています。そして、そのコントローラのファームウェアもBIOSあたりで書き換えができるのではないだろうか?と勝手な推測をしています。

そして、この問題が起きるきっかけはスリープの多用ではないかと疑っています。今回はスリープから戻るとCPUファンが回り出したので、その再起動のときに一瞬はBIOSレベルの初期化処理が走るはずなので、その過程でうまくいったり、いかなかったり、とか。
あとは、BIOSやドライバレベルである程度はファンのONする温度のスレッショルドを設定できる可能性があると思いますので、その温度設定レジスタ(か何か)に異常な値が書き込まれたとか・・・。

いずれにしても推測の域は出ませんが、ThinkPad E430以外のことでもよいので、一般的にCPUファンの制御系統がどうなっているのか、どなたかご存じの方はいらっしゃいませんでしょうか?

2012年8月8日水曜日

i7-3612QMが100℃越え?

先月購入したThinkPad E430だけれど、今日ちょっと冷や汗ものでした(ちょっと大げさか・・・)

UnDupで重複ファイルを検索していたところ、CPU温度がかなり熱くなっていることに気づきました。
まだ買って間がないのでどれくらいCPU温度が上がるのだろうかと思ってCore Tempは常に起動しているんですが、今日はふと見てみるとどのコアも95℃くらいを指していた。このくらいの温度なら前のLets Note S9でもあったのでそれほど慌てるほどじゃないという感覚なのだけれど、今日は様子が違いました。

まず、CPU負荷が全然低い点。Lets noteのときは、コアを2つとも(スレッド4つとも)100%近くまで負荷をかけた状態でしばらく経つと90℃を超えてきて場合によっては95℃を超える場合もありましたが、それだけの負荷であれば仕方ないと思っていたけれど、今回は4つのコアのうち一つが30~40%の負荷で残りは数%程度とかなり低い状態でした。にもかかわらず、コア温度95℃とはいったい何だ!?

そして、よく見てみるとCPUファンが回っていない。ThinkPad E430のファンは音が静かなので聞こえないだけかと思ったけど、確かに回っていなくて熱風を吹き出しているわけでもありませんでした。どうしようかと思っているうちに、温度は97℃・・、98℃とジリジリ上がってきます。そして100℃の値をみたときはさすがにヤバイと思ってシャットダウンを始めました。すると・・・、

CPUファンが急に回り出しました。その後、CPU温度が何度になったのかは分からないけれど、とにかくシャットダウン自体は通常通りに行われたようです。
電源OFF後、パームレストの左側を触ってみるとかなり熱い。内部で近くの樹脂が溶け始めてるんじゃないか?と思えるほどに。ちょっとコワくなったので、冷えてから再起動することにしました。

30分ぐらい経ってから起動すると、ふつう通りに起動しました。壊れた訳ではないようです。
その後はこれまでどおりふつうの温度範囲(45~65℃程度)に収まっており、今もそのPCでこれを書いているんですが、アレはいったい何だったんでしょうか?もしかしてCPUファンをコントロールしているBIOSあたりのバグではないか?と疑ってみたりしますが、そのような情報は特に見あたらず。
しばらく様子見するしかないようです。

2012年7月30日月曜日

ThinkPad E430 雑感

環境を少し整備して、少しずつ使えるようになってきたので、ファーストインプレッションなど。

これまで使ってきた12インチクラスのモバイルノートから考えると確かに大きい。けれど持ち運ぶのデカ過ぎる、ということはない。何とか鞄に入る程度。Lets Noteよりは薄いので、そういう意味では持ちやすく、鞄への収まりもよくなったともいえないこともない。

重さは、初めて箱から出すときは「軽い!」「Lets Noteと同じくらいか?」と思ったけど、当たり前。バッテリーが装着されていないのだから。バッテリー込みだと確かに重いけど、片手で持ち上げるのには苦労しない程度。

外装はアルミブラックを選んでみたので、ThinkPadらしくなくいい感じ。従来の黒い筐体のThinkPadでは、あのザラザラした感触がイマイチ好きじゃなかった。

セパレートキーボードはやはり慣れが必要だなあという感じ。でも、あまり気にしていない。PC変えるたびに慣れが必要なのはいつものことだし、タイプ速度が要求されるような仕事に使う訳じゃないから。

一番うれしい誤算は、ファンが静かなこと。Lets Noteは回り出すと結構うるさかったけど、このE430はクアッドコアなのに常用時の消費電力は低いようでほとんど音がしない。少し負荷をかけても、Lets Noteのような耳障りなまでの音量・音質にはならない。中国系企業になってしまったので、この辺は期待していなかったのだけど、かなりよいと思う。
ただ、実際にはデュアルコアの時ほど全コアに均等に負荷をかけることができていないのも、発熱が少ない原因だろう。Temp Coreで測定した最大温度は68℃どまりでした(i5-520MなLets Noteでは同じような処理をさせて最大97℃まで上がってました)。

さて、クアッドコアを選らんだ最大の要因である自作ソフトのマルチコア対応化の件ですけど、実際のところ2コア4スレッドのときは各スレッドの負荷が100%近くになるくらいに負荷をかけることができたけど、4コア8スレッドではそこまで各スレッドの負荷が上がらない。十分な負荷をかけられるだけの速度でデータの読み出し・書き込みができていないようだ。つまり、I/OがボトルネックになってCPUは余裕をかましている、という感じです。
ただ、やはりクアッドコアの恩恵には与っているようで、デュアルコアでは7秒くらいかかっていた処理が3612QMでは3秒台で終わるようになっています。2倍のコア数で約2倍近いパフォーマンスアップという点では理屈に合うけど、負荷率が同じじゃなくてむしろ下がっているという点では合点がいかない。キャッシュ容量の違いによるものか、あるいは第1世代i5と第3世代i7では命令の実行効率が上がっているということなのか。

もう少し使い込んで、自作ソフトの更なる効率化を目指したいと思います。