IBM Thinkpad X-40 の
ハードディスク交換 20GB → 40GB

2004-3-14

ノートパソコン

1995年くらいから、ノートパソコンはずっとIBMのThinkpadの系列を愛用しています。ポインタが、もはや赤いトラックポイント以外は使えなくなってしまいました。トラックボールやトラックパッドも使ってみましたが、トラックポイントはキーボードのホームポジションから指を動かさなくてよいというのが最大の利点です。クリープといって、ポインタがじわじわ動いてしまう現象が現れるのが短所です。
その他にも、Thinkpadは、キーボードが良い、作りが堅牢、修理サービスの応対がよい、という特長があります。反対に、どちらかというと重め、ディスプレイがぱっとしない、という弱点もあります。

商売がら、ノートパソコンを持ち込んで会議をすることが多いのですが、10人集まると、9人くらいがThinkpadだったりします。そういう業界なのでしょうか。みんなお金持ちなのか、Tシリーズが多いようです。次に多いのは、Vaioと Lets Noteだと思います。

これまで、Thinkpadは、530, 560, 570, 240Z, X30, X40 と乗り換えてきました。ノートPCの蘊蓄は別の機会にゆずりましょう。X-40についてちょっとだけ。2003年の12月末に、ほとんど発売と同時に購入しました。1世代前の240zは、手頃な大きさで持ち運びも楽でしたが、X30になって持ち運びが億劫になってきました。持ち運ぶ距離が圧倒的に長くなったのがその理由です。X-40は、1,2Kg台ということで、早速購入したわけです。確かに携帯性は格段によくなりましたが、ディスクが20GBと、3年前の世界に戻ってしまったのが大問題でした。

X-40のハードディスク

ディスク容量がそんなに小さくなったのは、2.5インチではなく、1.8インチのドライブを使っているからです。おもしろいことに、インタフェースは2.5インチと互換性があります。写真でわかるように長辺と短辺を入れ替えた関係になっています。反対に、2.5インチのもっと容量の大きなディスクも接続できると言うことです。Oh, your 2.5-inch hard disk is sticking out of your PC. ということになりますが。

このディスクは、日立-IBM製C4K40です。東芝も1.8インチディスクを作っていますが、そのインタフェースは2.5インチIDEとは互換性がありません。日立-IBMには、20GBと40GBがありますが、ともに回転速度は4200rpm、バッファメモリ2MB、インタフェースATA100、などです。消費電力と騒音は、20GBと40GBで差があります。アイドル時は、0.33W対0.5W、シーク時は、1.12W対1.7W、騒音は18dB対20dB。hdbenchで測定すると、10-15MB/secの速度でした。大きさや電力消費を考えるとかなり高性能だと言えるでしょう。音も電力も2.5インチより控えめで、速度も控えめですが、前者の方が重要だと思います。

新しい40GBディスクは、20GBのものより厚みが少し増加しています。X40のHDベイは、この40GBディスクを入れるようにできていますので、完全に収容できます。ディスクの入れ替えは、ねじを二つ付け替えるだけでとても簡単です。ただし、本体の液晶ディスプレイパネルを開いておくことを忘れないように。

リカバリ領域

ところが、X-40では、このなけなしの20GBのうち有効な容量は16GBだけで、20GBフルには使えません。4GBの残りは、OS.に障害が生じた場合に工場出荷時の状態に戻すためのリカバリー用の情報に使われています。何も起きなければ、一度もアクセスすることのない情報です。リカバリ用のデータは、CDROMに格納するのが常識だったのですが、CDROM1,2枚には入り切らなくなったのと、ハードディスクがかなり大きな容量を持てるようになったのでそのディスクの一部をリカバリに使うことにしたのでしょう。総量80GBの5%の4GBであれば納得できますが、20GBの20%、実際はOSなどのシステムが数GBを占め、ユーザ用には10GBほどしか残っていない状況で4GBをリカバリに割くのは賢明とは思えません。枚数が10枚でもいいからcdromにしてもらうか、dvd-romにでも焼いてもらった方がずっとうれしいと思います。mobility のためにCDROM driveも電池も削っているのです。どうしてリカバリ用の情報を毎日ディスクに入れて持ち運ばされているのでしょうか?(そんなに日常的に落ちるってか?)

そのリカバリー情報を使うときが来ました。これを新しいディスクに入れてリカバリーを実行すれば新品のX40のハードディスクが新しくできあがる寸法です。しかし、結論から言うと、この操作を私はついに実行することができませんでした。理由は、20GBのハードディスクをどうやって読み込もうにも、リカバリー用の領域にはアクセスできなかったからです。fdiskで見ると、20GBと表示されるにも関わらず、パーティションが作れるのは16GBまでなのです。WinXPの管理ツール、コンピュータの管理、ディスクの管理、で見ても、16GB以上の領域は見えません。

IBM.は、Rapid Restore Ultra というディスクメンテナンス用のソフトを配布してくれています。X40のIBM Toolsにも入っています。その最新版、4.01を使うと、使用中のハードディスク(Cパーティション)を外部のDVD, HDDまたネットワーク共有フォルダにバックアップできる、起動時のユーティリティでそれを読み込めるように書いてあります。インストールを試みましたが、空き領域が少なすぎる、と言われて失敗しました。1.5GBくらい残っていたのですが、どうしてでしょう?それ以上の空き領域が残るなら、ディスクの換装などしません。ネットワークの先のサーバーにバックアップを作り、40GBディスクにネットワークアクセスができるWindows環境を築いてからバックアップをロードすれば良いかと思ったのですが、できないということです。

Linuxでディスクのコピー

新しい40GBディスクに新しくWindowsXPをインストールしようかとも考えました。X40用のデバイスドライバは後からダウンロードできます。しかし、アプリケーションやメールなど、すでにいろいろな環境を築いてありますから、また一から入れ直すのはうんざりです。

いろいろ考えたあげく、Linuxでハードディスクをコピーすることにしました。20GB, 40GB、おのおののディスクに2.5インチ-3.5インチのIDEアダプターを取り付けて、デスクトップ型のPCのIDEインタフェースに接続します。CDROMなどは使わなくてよいので、一本のIDEを余らせることができて、そこに二つの1.8インチディスクをつなぎます。一方は、マスター、一方はスレーブになるようにジャンパーをつけます。20GBのファイルをサポートできる必要がありますが、別のディスクに1.8インチディスクの内容を吸い上げる20GBの空きがあれば、一つずつつないでもかまいません。OSは、もちろんLinuxです。Windowsでも似たことができるのかどうか、知りません。

古い方の20GB1.8インチディスクがhdc, 新しい40GB1.8インチディスクがhdd としてつながっているとします。hdcは、マウントできるはずですが、ntfsですから、触らない方が無難です。40GBの方は、ファイルシステムどころか、パーティションも切ってありません。

これをdd コマンドを使って生のままコピーします。

% dd if=/dev/hdc of=/dev/hdd ibs=8192 obs=8192 conv=noerror

count= でブロック数を指定してやることもできます。hdcは、16GBしか見えていません。その後ろにリカバリ領域があるのだと考えて20GBを8192Byteで割った値を指定してやりましたが、16GB分コピーしたところで終わってしまいました。コピーには2-3時間かかります。ibs, obsを指定しないと、512バイトずつの読み書きになります。vmstatで見た感じでは、512バイトずつでは1600*512byte=0.8MB/s、8129バイトブロックでは、5000*512byte=2.5MB/s と3倍の差が出ます。8192くらい指定しておかないと、 2,3時間のはずが10時間かかることになります。 conv=noerror というのは、同僚に教えてもらいました 。不良セクターがあって エラーがでると、コピーが止まってしまうのですが、このオプションがあれば、 エラーを無視して続行します。

一度に二つのディスクをつなげられないのであれば、

% dd if=/dev/hdc of=/tmp/bigfile ibs=8192 obs=8192
電源を切ってディスクを交換
%dd if=/tmp/bigfile of=/dev/hdc ibs=8192 obs=8192

などのようにして、いったんLinuxの大きなファイルとして読み込み、ディスク交換後、それを書き込んでやります。16GBのファイルになりますので注意してください。

このようにコピーが終わると、40GBのディスクの前半16GBには、20GBのディスクの16GBとそっくり同じ内容が書き込まれます。ブートセクタ、またパーティションテーブルも書き換えられます。このパーティションテーブルには、ヘッド数、セクタ数、シリンダ数、ファイルシステムタイプ、開始セクタ、パーティションサイズ、などが書き込まれています。ヘッド数などのジオメトリは、20GBと40GBで異なりますので、何か弊害が出るかもしれません。実際、fdiskで見てみると、これらは異なる値ですが、ddでコピーが終わった後は、20GBディスクと同じ値が表示されるようになってしまいます。結論から言うと、これらのディスクジオメトリを気にする必要はありません。

 新しいディスクで立ち上げる

コピーが終わったディスクをX-40に取り付けます。パーティションテーブルは、20GB用になっていますが、気にしないことにします。これでX-40.を起動すると、何事もなかったかのようにWindows-XPが起動しました。起動直後に新しいハードディスクデバイスが見つかった、というメッセージが出ます。管理ツールのディスクの管理を開いてみると、40GBのディスクに16GBのパーティションが切られ、残りは未使用になっています。これを新たに23.5GBのDパーティションとして登録してやります。広くなりましたね。システム領域を除いた、ユーザ用の領域だけだと、2倍ではなく、5倍くらいに広がることになります。20GBでは、Cドライブだけの1パーティションでしたが、今度は二つのパーティションができました。16GBのCドライブをシステム用、23GBのDドライブをユーザデータ用にします。

音がうるさくなりました。20GBは、動作音が全く聞こえないくらいでしたが、40GBはシーク時にチャッチャカ言う音が聞こえます。それも相当に耳障りなスペクトルの音です。気になり出すとうるさくてかなわないと思います。

WIndowsのライセンス認証をやり直せというメッセージは出てきませんが、もちろん、古い方は消してしまいましょう。20GBのディスクには、Linux.を入れて使うことにします。しかし、16GBしか使えないというのがとても腹立たしいですね。いったいどうやったら20GBに戻せるのでしょうか。ご存じの方がいらっしゃったら是非教えてください。ただし、新しいディスクには、リストア用の情報が書き込まれていませんから、もし、OSが破壊されるような事故が(ウィルス?)が起こった場合には、修復できないことになります。古い20GBのディスクをそのまま保存しておけば、このリカバリを働かせて20GBに工場出荷時の状況を再現させ、それをまたここに書いた方法で40GBディスクにコピーする、という方法で修復できることになります。

この方法は、ディスクを入れ替えるとき、バックアップをとるとき、同じ環境を複数のディスクに作るときなどけっこう便利だと思います。もちろん、コピーを作るのは、Linux.などのフリーのソフトに限られますが。

ご注意

ここに書かれた方法で何か事故が起こっても当方は関知しません。取り外してコピーする前に、バックアップツールなどを使って、必要なファイルは別のサーバーなどにコピーしておくことをお勧めします。そのコピーにも1,2時間かかりますから、このディスクの換装には、半日はかかると思ってください。それから、もちろん、Linuxの動くデスクトップ機が必要です。Linuxのバージョンは古くてかまいません。

toshihiro@matsui.dip.jp