○目的
1.ThinkPad X40内蔵HDDのWindowsをUSBメモリへバックアップする。
2.USBからWindowsをブートできるようにする。
3.安物のUSBメモリから起動しても実用に耐えれるのか検証する。


○結論
1.バックアップできた。
2.バックアップしたUSBメモリからWindowsを起動できた。
3.書き込みの頻発するソフト(Webブラウザ等)は実用に耐えられないが、それ以外なら何とか・・・
  ※Webブラウザは、キャッシュをRAMディスクに変更すると、実用的に動く。


○用意したもの
1.ThinkPad X40(バックアップ元。)
2.USBメモリ 4GB(バックアップ先。\2,000弱の安物)
3.USBメモリ 256MB(Puppy LinuxがBOOTするようインストール済み。CDドライブがあるなら、Puppy LinuxのライブCDでも可)
4.PeToUSB(ブートドライブ作成ソフト。http://gocoding.com/からダウンロード)


○バックアップ手順
1.HDDの内容を整理する。
  ・バックアップ先のUSBメモリが4GBしかないので、不要なファイル等を削除して、3GB程度に抑える。
  ・今回は、一度Windows XP SP3をクリーンインストールし、ThinkPad用のドライバを適用。その後、必要なアプリを導入。
  ※クラスタサイズが4KB→64KBに増えるので、ギリギリだと収まりきらないかも。

2.USBメモリ(4GB)をUSBブート可能な形でフォーマットする。
  PeToUSBを実行し、フォーマットする。そのとき、下記のオプションをONにしておく。
  ・Enable Disk Format
  ・Quick Format
  ・Enable LBA(FAT16X)
  ※FAT32だとなぜかブートできない。

3.USBメモリ(4GB)へブートマネージャをインストール
  HDDのC:\から下記ファイルをコピー。必ず1)から4)の順にコピーする。
  1)ntldr
  2)ntdetect.com
  3)bootfont.bin
  4)boot.ini
  ※2)~4)の順序は違っても起動するかも

4.USBメモリ(Puppy Linux)からLinuxを起動。
  他のLinuxでも良いが、Puppy Linuxだと起動後にUSBメモリを外せるので便利。
  PE WindowsのCDがあるなら、そっちの方がいいかも。

5.HDDの内容をUSBメモリへコピーする。
  ・コピーの方法は、GUIでコピーするなり、cpコマンドを使うなり、お好きな方法で。
  ・すでにコピー済みのntldr、ntdetect.com、bootfont.bin、boot.iniは絶対にコピーしないこと!
  ・コピー後にUSBメモリ内のdesktop.iniファイルをすべて削除しておく。(6.以降で行ってもよい)
  ※Linuxなので、一部属性がコピーされず、起動時にdesktop.iniファイルが開かれたり、スタートメニューへdesktop.iniが表示されたりするため。
  ※PE WindowsなどのWindowsからコピーした場合、削除する必要はない。

6.HDDからWindowsを起動する。
  ※この時点ではUSBから起動しても、起動中にブルースクリーンになる。

7.USB内のWindowsのレジストリを開く。
  1)ファイル名を指定して実行→regeditでレジストリエディタを起動
  2)HKEY_LOCAL_MACHINEを選択→メニューのファイル→ハイブの読み込み
  3)D:\WINDOWS\system32\config\systemファイルを開く(USBがDドライブの場合)
  4)キー名に「SYSTEM2」を指定する。

8.USBのドライブ名とHDDのドライブ名を入れ替える。
  ※下記はUSBメモリがDドライブの場合。違う場合は適宜変更すること。
  1)HKEY_LOCAL_MACHINE/SYSTEM2/MountedDevicesを開く
  2)「\DosDevices\D:」の名前を「\DosDevices\CC」に変更する
  3)「\DosDevices\C:」の名前を「\DosDevices\D:」に変更する
  4)「\DosDevices\CC」の名前を「\DosDevices\C:」に変更する
  ※HDDのドライブ名「\DosDevices\C:」とUSBのドライブ名「\DosDevices\D:」の名前を入れ替えただけ。

9.起動時にUSBドライバを読み込むように変更する。
   1)HKEY_LOCAL_MACHINE/SYSTEM2/ControlSet001/Services/usbehciを開く
   2)「Start」の値を0に変更する。
   3)「Group」の値を「System Bus Extender」に変更する
   4)HKEY_LOCAL_MACHINE/SYSTEM2/ControlSet001/Services/usbhubを開く
   5)「Start」の値を0に変更する。
   6)「Group」の値を「System Bus Extender」に変更する
   7)HKEY_LOCAL_MACHINE/SYSTEM2/ControlSet001/Services/usbstorを開く
   8)「Start」の値を0に変更する。
   9)「Group」の文字列値を新規作成し、値を「System Bus Extender」に変更する
  10)「Tag」のDWORD値を新規作成し、値を3に変更する
  11)HKEY_LOCAL_MACHINE/SYSTEM2/ControlSet001/Services/usbuhciを開く
  12)「Start」の値を0に変更する。
  13)「Group」の値を「System Bus Extender」に変更する
  ※ControlSet001以外にControlSetがあるなら、1)~13を同様に行う。

10.USBのレジストリを切り離す。
  ※切り離すまで、レジストリエディタを終了してはいけない。
  1)HKEY_LOCAL_MACHINE/SYSTEM2を選択する
  2)メニューのファイル→ハイブのアンロードを選択
  3)確認ダイアログで「はい」を選択

11.ブートマネージャの設定を行う。
  USBメモリのboot.iniを修正する。今回は下記のようにしてみた。
    [boot loader]
    timeout=30
    default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="USB memory Windows XP Professional" /noexecute=optin /fastdetect
    multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Internal HDD Windows XP Professional" /noexecute=optin /fastdetect

12.USBからWindowsを起動してみる。
  これで、USBからWindowsが起動できるはず。
  ※Windowsのロゴ画面が一瞬表示されてブルーバックになった場合、8.と9.のレジストリの設定が正しくない。


○実用検証
1.起動速度
  電源ONからWindowsが使えるようになるまで、およそ1分20秒。HDD起動の場合は1分10秒程度。
  HDDにくらべ、あまり変わらない。

2.Windowsの操作
  スタートメニューを開いたり、エクスプローラを開いたりするとき、多少の引っかかりがある。
  (HDDよりも、長めの引っかかり)

3.FireFoxの起動
  5分以上かかって起動し、起動後も激重。
  →キャッシュをRAMディスクにすると、HDDと同様の快適な操作に!

4.アプリのインストールなど
  書き込み遅くて、怖くてできません・・・

5.Windowsの終了
  時間は計っていないが、HDDの1.5倍程度の時間が掛かっている。
  USBメモリのWRITE性能が悪い模様・・・

6.全体的な感想
  HDDに比べ、全体的にもたつきがあるが、使えないレベルではない。
  SLCの高速USBメモリやCFを使えば、内蔵HDDより快適になりそう。
  256MB程度のRAMディスク導入を激しく推奨。

○おまけ
1.今回使用したHDDの性能(HGST TravelStar 40GB/HITACHI_DK13FA-40B)
低性能で有名なThinkPad X40用HDD。
--------------------------------------------------
CrystalDiskMark 2.1 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

   Sequential Read :   18.610 MB/s
  Sequential Write :   16.742 MB/s
 Random Read 512KB :   12.094 MB/s
Random Write 512KB :   11.980 MB/s
   Random Read 4KB :    0.254 MB/s
  Random Write 4KB :    0.540 MB/s

         Test Size : 100 MB
              Date : 2008/09/06 18:29:47

2.今回使用したUSBメモリの性能(A-DATA PD14 4GB)
低性能で有名なMLC搭載USBメモリ。
--------------------------------------------------
CrystalDiskMark 2.1 (C) 2007-2008 hiyohiyo
      Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

   Sequential Read :   28.966 MB/s
  Sequential Write :    6.131 MB/s
 Random Read 512KB :   28.826 MB/s
Random Write 512KB :    1.985 MB/s
   Random Read 4KB :    5.055 MB/s
  Random Write 4KB :    0.025 MB/s

         Test Size : 100 MB
              Date : 2008/09/06 18:46:48

○参考サイト
・内蔵HDDからUSB-HDDへWindowsをバックアップする手順が公開されている(今回主に参考にしたサイト)
http://plaza.rakuten.co.jp/comapple/diary/200709160000/
・USBからの起動について色々と情報が揃っている
http://orz.kakiko.com/kaeru/usbboot.html
・USBメモリのベンチマークが揃っている。USBメモリ選定の参考に。
http://usbmem.heriet.info/