ca-ttyの日記: Win7でUSERSがあるHDを交換する
ここは私の日記帳であるという観点から、行った作業について漫然と書き綴る. まとめる以前にまとめる過程そのものを、あるいは思いついた端から記述することとする.
発端は BF3 のロードが遅いことであった. BF3 はサーバの設定・仕様によっては、ロードが終わった参加者から順次フィールドに出ていくことになる. この仕様のサーバの場合、私の環境ではロードが遅いために、出られる頃には自陣に乗り物が残っていないことも多かった. すぐに前線に出られないというだけでなく、構築された双方の前線を把握するまで味方と連携できず無駄死にし続ける悪循環に陥り、下手をすると最後までノレずに終わってしまう.これは…ありがたくない.
もう一つの発端は Diablo III のリリースだった. 速度以前にアプリケーション格納用ディスクの残量がほぼゼロだった.
というわけで seagate の AFT, 4KBセクタ仕様の 7200rpm 2TB HDD を入手した. 交換元の HD はやや古い 512 な HGST 500GB HDD である.
環境は Windows7 32bit である. システムが格納された起動ドライブ C: には intel 製 80GB SSD を使用している. が、容量の不足と寿命を考慮し、インストーラを改変して USERS を D: に移してインストールした. その D: が件の HGST 500GB HDD である. インストール時に既に旧式化していたディスクであるが、当時、アプリ起動用としては十分であろうと判断し、前世代のマシンから引っこ抜いて採用した.
何故追加ではなくその 500GB ドライブの交換という手段を考えたかというと、物理的にこれ以上筐体にディスクが入らず、交換するのであれば最も旧式だったそのドライブを交換するのが合理的だと考えられたからである. また環境を変更せずに既存のアプリをそのまま高速に起動させることができれば、ボトルネックの解消にもつながる.
それを実現するための大まかな指針をまず考えた. リムーバブルフレームから使用中の HD を抜き、一時的に新ドライブを装着する. そして旧ドライブを領域ごと新ドライブに複製する. 複製できたらその領域のサイズを新ドライブ全体のサイズに拡張する. うまくいったならば旧ドライブを取り外し、そこに新ドライブを装着する. めどいから事前のデフラグはせず、ある程度その状態で使ってみて問題がないか様子をみる程度にとどめる. 旧ドライブをすぐに消去しなれば致命的な問題は生じないはずである.
手段として最初に EASEUS Todo Backup 2.5.1 を試した. 以前別件の作業のために導入し、そのまま放置されていたものである. 餅は餅屋ということで windows アプリ屋製のものを試すのが良かろうという考えであった. Linux に NTFS を扱わせるのは若干の不安が残る.
EASEUS は windows 稼働中にアプリケーションとして起動し、そのまま実行することが出来たが、純粋なデータドライブではなくシステムにかかわるパーテーションであるため、思い直して中断した. 別件では使用しなかったものの、この製品は USB flashram に書き込んで起動させて使う機能もあるようだ.
早速その機能を利用して起動したが、そのモードで使用されているのは結局のところ Linux だった. 餅は餅屋云々は関係なかった. それはそれとして複製を試したが、1時間以上待っても表示されている「残り時間」が1秒経過あたり1秒の割合で増え続けていく. つまりカウントダウン表示がカウントアップしている. それ以外に進捗状況を示す表示がないので、正しく実行されているか判別することができない.
ここで AFT, 4KBセクタドライブの問題を思い出した. このアプリが正しく扱えていないため、速度低下を引き起こしているのではないかという疑念が生じた.
EASEUS を諦めて、これまた以前使った記憶がある GNU Parted を試してはどうかと考えた. その以前の時には何かのディストリのインストールディスクないしは Live CD の類を使った. それが何か思い出せなかったのでテキトーに検索して GParted Live CD 的なものをダウンロードし、CD-RW が発掘できなかったので unetbootin というユーティリティで ISO イメージを USB flash に書き込んだ.
GParted を使って同様の作業を実行した. どうせ EASEUS も libpareted とかなんとかを呼んでるだけだろうと思われるので同じことだろうが、何セクタ目から確保するとか細かい指定が出来て、進捗状況がわかるというのは大きい.
と思ったら... 出来ず、わからなかった. GParted も同じであった.
そこで同環境から root コンソールを起動してその上で素の Parted を使用することにした. unit s というコマンドを発行することで望んだ指定が可能である. また平行して、windows の純正ツール群がどのように領域を確保するのか調査しておいた.
- Windows XP: セクタ 0~62 までがオフセット、63 から開始
- Windows Vista, 7: セクタ 0~2047 までがオフセット、2048 から開始
ここでさらにわれに返り、旧 500GB HD をみてみたところ、AFT ドライブではないにもかかわらず 2048 から領域がはじまっていた. なんとなく AFT でない旧来のドライブは過去互換を重視して XP と同じように初期化されてると思い込んでいた. つまり機械的に領域を複製したのであれば、誤って領域を確保した AFT ドライブ特有の速度低下は起きないということになる.
単に私が思ったよりは長い時間がかかるというだけのことだったのかもしれぬ. 起きているうちに完了するのは諦め、500GB の領域の終了セクタをメモり、まったく同様の領域を確保した. Pareted の複製コマンドのマニュアルを読むのがめどかったので、GParted で領域をコピーしてペースト、進捗がまったく表示されない仕様を不満に思いつつ放置して寝た.
幸いなことに翌朝には終了していた. そのまま領域を拡張し、これはすぐ終わった、シャットダウン.
夜帰宅してドライブをすりかえ、windows7 で再起動. だが windows7 は騙されず、CHKDSK なるものを要求してきた. 拒否すると windows 起動直後に再起動を促され、その再起動でまた CHKDSK を要求するので今度は実行を許可. 何をしているやらわからぬが、しばらく待つと無事終了した. やや心配だが、いくつかのファイルを開いた限りでは問題ないと思われる.
というわけで豪烈にめどかったが、これで無事に battle.net にアカウントを作成し、DiabloIII を導入することが出来る. あるいはいきなりハンドガンでガラスをぶち破り、ナイフにも持ち替えて地下鉄ホームまで全力疾走、出会いがしらにショットガンをぶっ放すことが可能となった.
以上である. 記述を簡潔にまとめなおすことはしない. ハイパーリンクもはらない. この文章は忘れっぽい将来の自分のため、また battle.net に登録しようと思っていたメールアカウントを嫌がらせで誰かに登録されてしまった現在の私の腹いせのために書かれた.呪われよ.
Win7でUSERSがあるHDを交換する More ログイン