2011/09/23

Windows To GoなUSBメモリ

Windows 8 pre-betaであるところのWindows Developer Preview(以下、略してWDP)には、完全に独立したOSをUSBメモリから起動できるWindows To Goがある。これがあればPCにインストールしたままにしなくてもWDPが使えるので、このUSBメモリを作成してみた。

1. 作成方法


BUILD2011の資料を見ると、作成方法がさらっと書いてある。
(Channel9 BUILD2011 Running Windows from an external USB drive with Windows To Goのスライド資料より)

環境依存のドライブレターがそのまま入っているので分かりにくいが、大体以下の手順で作成できることが分かる。
  1. imagex.exeで(予め作成しておいた)OS環境のイメージファイル(.wim)をUSBメモリに展開する。
  2. Bcdboot.exeでOSを起動可能にする。
ただ、これを試すには幾つか問題があって、
  • imagex.exeか他の方法でイメージファイルを作成するときに必要なオプション、その有無が不明。
  • WDPのバージョン(Build 8102)に対応したimagex.exeはWindows ADK(Windows 7までのWindows AIKに相当)に入っているようだが、これをダウンロードするにはMSDNサブスクリプションが必要。
何とかできなくもなさそうだが骨が折れそうなので二の足を踏んでいたところ、先人によれば(How to Create a Windows To Go USB Drive)割と簡単にできるらしい。すなわち、imagex.exeはWindows 7のWindows AIKにあるもので可で、イメージファイルはWDPのインストールDVD中のものを使えばいいらしい。

これに従えば、手順は以下のようになる。
  1. Windows 7のWindows AIKをインストールし、imagex.exe(64bitは\Program Files\Windows AIK\Tools\amd64に、32bitは\Program Files\Windows AIK\Tools\x86にある)を適当な場所にコピーしておく。

  2. 32GB以上のUSBメモリをDiskPartでブート可能にしておく。詳しい方法は従来と同じ(diskpartを使ってWindows Vista/7のインストールUSBメモリを作る)。ただし、ファイルシステムはNTFSで。

  3. WDPのインストールDVDのISOファイルをマウントして(Windows 8では標準でこれが可能)、install.wim(\sourcesにある)をimagex.exeと同じ場所にコピーしておく。

  4. USBメモリを挿し、管理者としてコマンドプロンプトを開いて、imagex.exeのある場所から以下を実行(かなり時間がかかる)。ここまではWindows 7でも可。

    imagex.exe /apply install.wim 1 d:\
    (USBメモリのドライブレターがD:の場合)

  5. 続いて以下を実行。ここはWDPでなければ不可(Windows 7ではBcdboot.exeに/fオプションがないので)。

    bcdboot.exe d:\windows /s d: /f ALL
    (同上)
なお、このイメージファイル(install.wim)はインストール途中の状態を保存したものなので、これでブートすると残りのインストールが行われた後に起動する。

2. 実際


実際に試した条件は以下のとおり。
  • PC: ThinkPad X61s(CPU: Core2Duo 1.8GHz、メモリ: 4GB、USB2.0)
  • ISOファイル: 開発ツール付きの64bit版(WindowsDeveloperPreview-64bit-English-Developer.iso)
  • USBストレージ:
    • Buffalo RUF3-S32GS-BK (32GB、USB3.0、ファームウェアアップデート済み、TurboPCなど付属ツールは使用しない)
    • GreenHouse GH-UFD3-32GF (32GB、USB3.0)
    • Mtron MSD6000(MSD-SATA6025-032-N-A、32GB、SATAのSSD)
      +SilverStone SST-TS02B(USB2.0、2.5インチ用のUSBケース)
このPCではUSB3.0のUSBメモリも必然的にUSB2.0接続になる。Windows To GoはUSB3.0推奨らしいので力不足ではあるが、WDPを内蔵SSD(X25-M G2 80GB)にインストールした状態ではさくさく普通に動作する。

先に、それぞれの速度をCrystalDiskMarkで確認しておく。なお、X61sはストレージ速度が遅いPCなので(前世代のX60sと比べても遅い)、他のPCならもっと速いと思われる。

まずRUF3-S32GS-BK。

テストサイズが1000MBのときの4Kランダムライトが極端に遅いのが分かる。

次にGH-UFD3-32GF。

これは1000MBでも4Kランダムライトがそれなりの値を維持している。なお、他の人のベンチマーク結果を見ると、このUSBメモリの値はこれよりかなり高い。

さらに比較用として、手持ちのUSB2.0のUSBメモリの中で最速のPicoBoost 8GB(以前の計測結果)。

1000MBでもそれほど遅くなっていない。これに比べるとRUF3-S32GS-BKの4Kランダムライトの遅さが際立つ。

最後にMSD6000によるUSB SSD。このMSD6000は最初期のSSDで、引退させていたのを探し出してきた。

当然といえば当然だが、ランダムライトはUSBメモリとは段違いに速い。

RUF3-S32GS-BKの場合


まず用意したのがRUF3-S32GS-BKで、これが順調に行っていればそこで終わりだったのだが。

作成は手順どおりにできたが、imagex.exeの実行には209分もかかった。

作成したUSBメモリからブートすると、インストールに長い時間がかかった後、WDPが起動した。起動後は、見た目は内蔵SSDから起動したときと変わらない。ページファイルを無効にした状態でUSBメモリの使用容量は約14GB。
(C:がWindows To GoのUSBメモリ)

ただし……起動と終了を何度か繰り返すうちにはっきりしたが、動作が極めて、極めて遅い。

起動時間(電源ボタンを押してからStart画面が出るまで)を内蔵SSDと比べると、
  • 内蔵SSD: 18秒
  • RUF3-S32GS-BKによるWindows To Go(初回ではない): 8分25秒
起動時だけならまだしも、起動後も何か操作する度にしばらく待たされる。上のスクリーンショットも、このために起動し、デスクトップを開き、エクスプローラを開き、スクリーンをコピーし、ペイントに貼り付け、それを保存し、終了するまでに30分近くかかっている。とても実用にはならない。

GH-UFD3-32GFの場合


ここは実際の順番とは前後する。

Windows To Goが極めて遅いのはRUF3-S32GS-BKのランダムライトの遅さが原因という可能性があるので、改めてBUILD2011で配布されたUSBメモリを見ると、外観からKingstonのData Traveler Ultimate 3.0シリーズということが分かった。

このシリーズには第1世代(G1)と第2世代(G2)とがあって、G2の方がシーケンシャルリードでは速くなっているが、ランダムライトではG1の方が他のUSBメモリの中でも飛び抜けた速さを誇っている。これはG1が中身的にはUSB SSDに近いということがあると思う。


Microsoftが配布したのがG1かG2かは分からないが、ランダムライトの速さからいえばG1の方が理想的ではある。が、生産終了品でうまく入手できなかったのと、G2もランダムライトは速い方なので、G2とほぼ同じコントローラを持ち、入手性も高いGH-UFD3-32GFに方向転換した次第。

GH-UFD3-32GFでWindows To Goを作成したところ、imagex.exeの所要時間は50分と、かなり短縮された。

作成したUSBメモリからブートしてのインストールもそれほど待たされることなく、WDPが起動した。動作は内蔵SSDに比べればややぎこちないが、普通に操作できる。起動時間も十分に許容範囲。
  • 内蔵SSD: 18秒
  • GH-UFD3-32GFによるWindows To Go: 46秒
が……なぜかIEがインターネットに接続できない(10秒ぐらいで自動終了する)。Firefoxでは接続できるので、OSは繋がっているのだが。IEだけでなく、IEの機能を内部的に利用しているであろう標準アプリ(Metroアプリを含めて)も接続不可。Windows Updateもかけられないので、打つ手なし。原因は不明だが、これも実質的に使えない。

なお、RUF3-S32GS-BKでは遅すぎてこの問題を確認するには至らなかった。

MSD6000(USB SSD)の場合


RUF3-S32GS-BKでは遅すぎて使い物にならないと判明した後、USB接続のストレージでランダムライトが速く、手持ちで試せるものとして浮かんだのがMSD6000をUSB接続にすること。

このUSB SSDでWindows To Goを作成すると、まずimagex.exeの所要時間が段違い。20分で終了した。

このUSB SSDからブートするとインストールもさくっと進み、WDPが起動。操作した感じも内蔵SSDと変わらない。起動時間もリーズナブル。
  • 内蔵SSD: 18秒
  • MSD6000によるWindows To Go: 32秒
ページファイルを無効にした状態でUSB SSDの使用容量は約14GBで、これは変わらない。種類はHDDになる。
(C:がWindows To GoのUSB SSD)

エクスペリエンスインデックスはこんなもの(上が内蔵SSD、下がUSB SSD)。

Primary hard diskは、内蔵SSDの7.2に対してUSB SSDは5.2なので、そんなに低くはない。

以上、USB SSDで作成したらさくさく動作するWindows To Goができた。

3. まとめ


Windows To Goの動作には、USBメモリのランダムライトの速度が重要。これはOSがその上で動作することを考えれば当然ではある。接続がUSB2.0かUSB3.0かは直接関係ないし、PCの性能もあまり関係ないが、USBメモリの速度はPC本体にかなり左右されるところがあるので、無関係とも言えない。

これはReadyBoostの条件と似ているが、最近の、とくに32GB超のUSBメモリではReadyBoost対応は重視されてないようなので、盲点ではある。高速なシーケンシャルアクセスを謳う製品でも、ランダムライトが遅ければWindows To Goには不適格。この点は、Windows 8がリリースされるときにはReadyBoostのような基準を作る必要があると思う。

とりあえず容量と速度を考えれば自分のようにSSDを再利用するのが手っ取り早いが、ランダムライトが遅くないUSBメモリを慎重に選ぶか、先々は、教えていただいたSuper TalentのUSB 3.0 Express RC8のような中身的にUSB SSDに近いものを使うのがいいと思う。ただし、IEの問題は残るかもしれない。

4. 注意点


Windows To Goの場合に限らないが、WDPの起動時に自動chkdskがかかった後、Windows 7で作成したパーティション(ファイルシステムはNTFS)がアクセス不能になったことが複数回あった。逆に、Windows 7で自動chkdskがかかった後、WDPのシステムパーティションがアクセス不能になったこともあった。

バックアップしておけばいいことだが、一応注意を要する。

[追記1]

Windows To Goの作成例。
並みのUSBメモリでは使い物にならないという点で一致。清水さんが「実用は厳しい」と評しているUSBメモリと、ぱすわさんが「一応使えるレベル」としたGreen HouseのPicoDrive Dual Xの速度は同程度のように見えるので、その辺が境界線になるのだろうと思う。

また、ぱすわさんの場合もIEが起動できないということなので、これは普遍的な問題らしい。

さらに、清水さんの記事を読んで、改めてBUILD2011での動画を見ると、デモで使われていたのはSuper TalentのRAIDDrive USB3.0だった模様(市場で入手できる現在最速の、8chでSuper Talentのドライブと言っている)。確かにこれなら速度的には別格だから、道理でという感じ。資料を見直しても「USB Drive」と書いていても「USB Stick」とは書いてないので、これを(並みの)USBメモリと捉えたのが、ある意味ミスリーディングだったようにも思う。

[追記2]

USB SSDでWindows To Goを使っていたところ、サスペンド、ハイバネーションともできないことが判明した。内蔵SSDから起動した場合には可能なので、Windows To Goの場合特有の問題だと思う。

なお、内蔵SSDから起動した場合も「Power」に「Sleep」の選択肢は出ないが、ThinkPad式のショートカットキー(Fn + F12)でハイバネーションに入り、電源キーでレジュームする。ただし、サスペンド(Fn + F4)したときもハイバネーションに入る模様(非常に速いので実害はないが)。

[追記3]

Windows To Goの最終的な姿が明らかになったので、まとめを書いた。

2011/09/03

NAS Herder beta

Beta版ということで公開しました。外見的な変化はFan回転数の横にグラフを付けたぐらいです。

プロジェクトサイト: NAS Herder 英語 at SourceForge.net
実行ファイル from SourceForge.net

関連スレッド: Beta Tester Wanted (new Windows app for ReadyNAS)

[更新]

ボリューム使用率とUPS充電率のバー表示を変更しました。ボリューム使用率が90%を超えると赤に変わります。このvisual styleで色を自由に変えられるプログレスバーのサンプルコード

標準のプログレスバーをこれに使っていたところ、Windows Developer Previewでは自動的にマーキーになってしまってましたが(本来のプログレスバーとしては間違ってはいない)、自分で作成したことで解決となりました。