[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

UNIXの怪しい活用法



井上です。

いきなりですが、昨日から今日にかけて、手持ちのノートPC Thinkpad 240ZのHDD
を、元から入っていた20Gのものから40Gのものに交換しました。
流体軸受けモーターで、音が恐ろしく静かです。
今までのWindows2000環境は残しつつ、後ろにあいた20GにLinuxをインストール
する予定です。

さて、この以降作業なのですが、自分でできるか分からないしめんどうな「リカ
バリー」を避けたいということで、Linuxを使って怪しい方法にチャレンジして
みました。

使ったものは、
・TP240Z本体
・Linux(RH7.2, kernel 2.4.9)が動いているデスクトップ
・2.5インチHDD(増設用、IBM製40GB)
・2.5インチHDD用ケース(USB外づけハードディスクになるもの)
・後、Linux用の端末マシンとか、ねじ回しその他
です。また、デスクトップには30GB程度の未使用のHDD領域がありました。

方法ですが、簡単に言うと、元のHDDのWindowsパーティションを「そのまま」デ
スクトップに吸い上げ、新しいHDDに全く同じ大きさの領域をつくって書き戻
したということです。

まず、TP240Zから元のHDDを取り外しました。そして、これをUSB HDDケースに入
れてデスクトップにつなぎました。このケース、USB2.0にも対応しているのです
が、うちにはUSB2.0端子のついたパソコンがないので、USB1.1として利用しまし
た。(なのでコピーにはめちゃくちゃ時間がかかりました。(^^;))

ちなみに、TP240Z(やおそらく同じ形状のiSeries1124系)はHDDの取り付け/取り
外しが非常に楽です。裏蓋のネジを2カ所はずし、横向きにふたをスライドさせ
るとHDDも一緒に移動してコネクタからはずれ、取り外せます。後はHDDをくるん
でいるいくつかの部品を取り外すだけです。
最初このマシンを手に入れた時、メモリを増設したくてネジをはずしていたら、
間違ってHDDをはずしてしまったほどです。SONYのVAIO505とかとはえらい違いで
す。
# ちなみに、保証期間は終わっています。(でもいろいろな事情で気が引けます
# が、これも本来の用途のためなので。)

つなぐと、LinuxからはSCSIのHDDとして見えるようになります。最初のSCSI HDD
として認識されたことがログから分かったので、
cd /dev
./MAKEDEV sda1
としてSCSI HDDのデバイスファイルをつくりました。この状態で
# mount /dev/sda1 /mnt
などとすると、きちんとFAT32を認識して中身が見られました。

次に、(マウントはしてない状態で)以下を実行します。
1.  ディスクパラメータをメモする。
# fdisk /dev/sda
としてfdiskを起動し、pコマンドででてくるパーティション情報をメモしました。
(screenで画面キャプチャしただけですが。)
こんな感じでした。

----
ディスク /dev/sda: ヘッド 64, セクタ 32, シリンダ 19077
ユニット = シリンダ数 of 2048 * 512 バイト
	
 デバイス ブート   始点      終点  ブロック   ID  システム
 /dev/sda1   *         1     19078  19535008+   c  Win95 FAT32 (LBA)
 領域 1 はシリンダ境界で終わっていません:
      物理=(1022, 254, 63) (1022, 63, 32) であるべきです
----

2.  MBRのバックアップ
HDDから起動させるためにはMBR(Master Boot Record)が必要なので、これを吸
い出してファイルにしました。
# dd if=/dev/sda of=./mbr.dat bs=512 count=1

3.  パーティションの丸ごとコピー
20GBのパーティションを丸ごとコピーするので、30GBの空き領域をマウントして、
そこで以下を実行しました。
# cat /dev/sda1 > tp240.hdd

3.にはだいたい8時間くらいかかったと思います。一晩ですね。
tp240.hddファイルがのそのそと大きくなって行くのをときどき確認していまし
た。2GBを越えたあたりで止まるんじゃないかとか心配しましたが、ちゃんと
20GB程度のファイルができました。ちなみに、ファイルを作成したパーティショ
ンはEXT2FSです。

4. ここまで終わったら、HDDをケースから出し、買ってきた40GBのHDDに入れ替えます。
そしてUSBケーブルでデスクトップに再びつなぎます。
最初のHDDは確かちゃんとサイズの表示などがでたと思うのですが、新しいのは
なにも情報が書き込まれていないためか、USBデバイスがつながったことを表す
表示がでただけでした。少しひやひや。

5. 新しいHDDにfdiskでパーティション情報を書き込みました。
# fdisk /dev/sda
nコマンドでパーティションの作成を選び、プライマリパーティションの領域1を
選択します。そして、サイズは以前のHDDの第1パーティションの数字と同じに
します。
ところが、終了シリンダの指定で、1.で示したように19535008にしようとしても、
つまり、
+19535008K
とやっても、表示が以前と同じように
19535008+
になりません。(少し大きな数字に切り上げられて+はつかない。)
それに、「領域1はシリンダ境界で終わっていません」なんていうエラーもでません。
まあ、エラーがないんだからいいことにして、次に進みました。

6. パーティションタイプの指定
tコマンドでパーティションのタイプを指定します。デフォルトではLinuxになっ
ているので、16進数の「c」を入力してFAT32だと思ってもらうようにします。
それと、パーティション1が起動可能になっていることを確認して、wコマンドで
パーティション情報を保存します。

7. MBRの書き込み
先ほど保存しておいたハードディスクの起動部分を新しいHDDに書き戻します。
# dd if=mbr.dat of=/dev/hda

8. パーティションの書き戻し
さて、保存しておいた20GBのパーティションイメージを書き込みます。
# dd if=tp240.hdd of=/dev/hda1
・・・ここで、仕事に出かけます。(笑)
おそらく8時間くらい後に書き込みは終わります。
(もちろん、USB2.0やIEEE1394, もっとオーソドックスにIDEとして接続して作業
すれば、もっと速くできるはずです。)

9. HDDの取り付け
書き込みが終わったHDDを、TP240ZのHDD区画にとりつけます。
そして、電源を入れます。
すると、心配をよそに何事もなく起動しました。
おまけに、スタンバイやハイバネーションもきちんと動作しています。
さらに、どうやら元々このHDDのWin2000にインストールされていたいけないもの
までコピーされてしまったようです。(^^;)

ということで、Linux(おそらくFreeBSDでも可、以前似たようなことやってまし
た。)を使って、リカバリーなしでHDD入れ替えができてしまった、というお話で
した。
ThinkpadのHDDは元々かなり(ノートにしては)うるさかったので、領域が増えた
上に恐ろしく静かになって今の所満足しています。
前のHDDはとりあえずUSB HDDケースに収まって、外づけ持ち運び用ディスクとし
て活用されるか、そのままバックアップとして塩漬けされるかのどちらかの予定
です。

後はTPへのLinuxのインストールです。。これがやたらめんどうだったり、音が
でなかったりしなければいいのですが。

-- 
                    Koichi Inoue, ARGV
                    E-Mail: inoue@...