Decremented Blog

プログラミング、釣り、工作など、ジャンルを特に定めず、適当に書かれたブログです。

Giga LANDISKのHD交換方法 まとめ

2008-06-25 23:12:19 | 趣味・その他
Giga LANDISKのHDDの載せ換え方法をまとめます。

1.準備するもの
・Giga LANDISK
 今回は、HDL-GX250Rを利用しました。
 eSATAコネクタのあるモデルです。他のモデルでは多分上手く行きません。元のHDD容量は異なってもOKです。
・裸族の頭
 裸のHDDをUSBで接続するキットです。
 他の物でも構いません。
・PC
 Telnetでログインするために必要です。
 Windowsを前提として書きます。

2.Telntedを有効化
http://wiki.nothing.sh/page/I-O%20Hack/Giga%20LANDISK/%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2
を参考に、Telnetdを有効にします。
有効化後、「ファイル名を指定して実行」から「telnet landisk」でLANDISKへTelnetでログインできます。

3.新しいHDDを接続
裸族の頭を使い、新しいHDDをLANDISKへ接続します。
私はLANDISKの後ろのUSBポートを使用しました。
接続後、LANDISKを再起動し、Telnetで再度ログインします。
以下のコマンドを入力して接続を確認します。

> fdisk -l /dev/sdb

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

上のような出力が出たら接続されています。
接続したHDDの容量等を確認してください。

4.システム転送
以下のコマンドで、システム領域を新しいHDDへ転送します。
(HDDの先頭2Gが転送されます)

> dd bs=1M count=2048 if=/dev/sda of=/dev/sdb

5.パーテーション切り直し
以下のコマンドで、パーテーションの切り直しを行います。

> fdisk /dev/sdb

まず、現在のパーテーションを確認します。

> Command (m for help): p

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 2 27 208845 83 Linux
/dev/sdb2 28 78 409657+ 83 Linux
/dev/sdb3 79 144 530145 82 Linux swap / Solaris
/dev/sdb4 145 30394 242983125 5 Extended
/dev/sdb5 145 170 208844+ 83 Linux
/dev/sdb6 171 30394 242774279+ 83 Linux

サイズ変更のために、拡張パーテーションを削除します。

> Command (m for help): d
> Partition number (1-6): 4

拡張パーテーションを作成しなおします。

> Command (m for help): n
> Command action
> e extended
> p primary partition (1-4)
> e
> Selected partition 4
> First cylinder (1-121601, default 1): 145
> Last cylinder or +size or +sizeM or +sizeK (145-121601, default 121601):
> Using default value 121601

設定保存用パーテーション(sdb5)を作成します。

> Command (m for help): n
> First cylinder (145-121601, default 145):
> Using default value 145
> Last cylinder or +size or +sizeM or +sizeK (145-121601, default 121601): 170

データパーテーション(sdb6)を作成します。

> Command (m for help): n
> First cylinder (171-121601, default 171):
> Using default value 171
> Last cylinder or +size or +sizeM or +sizeK (171-121601, default 121601):
> Using default value 121601

> q
で終了します。

6.データの転送
以下のコマンドで、フォーマットを行います。

> mke2fs -j /dev/sdb5
> mke2fs -j /dev/sdb6

以下のコマンドで、設定保存用パーテーションの内容をコピーします。

> mount /dev/sdb5 /mnt/usbdisk1/
> cp /mnt/hda5/* /mnt/usbdisk1

以下のコマンドで、データパーテーションに初期フォルダを作成します。

> mount /dev/sdb6 /mnt/usbdisk2/
> cd /mnt/usbdisk2/
> mkdir -p share/disk/ spool/samba

7.RAIDの再構成
HDL-GXRはHDが一台ですが、ミラーリングのためにRAIDが構成されていますので、再構成が必要です。
LANDISKのHDDを新しいものに入れ替え、再起動します。
この時点では、正常に起動しません。
Telnetで再度ログインします。

以下のコマンドで、RAIDの再構成を行います。

> mdadm -C -f /dev/md5 -l 1 -n 1 /dev/sda5
> mdadm -C -f /dev/md6 -l 1 -n 1 /dev/sda6

LANDISKを再起動します。
以上で作業は完了です。

※追記
正常起動を確認後、管理画面からフォーマットしてください。
そうしないと、RAID管理領域の関係で、データが壊れるようです。

Giga LANDISKのHD交換方法 その2

2008-06-25 03:48:00 | 趣味・その他
昨日の続きです。
とりあえず、元と同じ容量のHDとして認識させることには成功しました。
バックアップの場合はこれで良いのですが、今回はより大容量のものへの載せ替えが目的です。

手元にPartitionMagic 8があるので、これを用いて単純にデータ領域のパーテーションのサイズを変更してみます。
結果、起動はするのですが、内臓HDにアクセスできなくなってしまいました。
フォーマットなどを行っても、エラーになってしまいます。

外からは原因が分かりそうに無いので、telnetを使えるようにし、内部へアクセスして原因を探ることにしました。
telnetdの有効化方法は、↓のサイトを参考にさせていただきました。
http://wiki.nothing.sh/page/I-O%20Hack/Giga%20LANDISK/%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2

色々調べた結果、どうも、ミラーリング機能に原因があるようです。
データパーテーションは/dev/sda6にマウントされるのですが、LANDISKのソフトウェアは/dev/md6をアクセスするようにできてるようです。
パーテーションをいじった為に、RAID情報が失われてしまい、/dev/md6が消滅してしまったのが、今回の原因のようです。

原因が分かれば対策は簡単です。
telnetしたプロンプトから、以下のコマンドを実行し、再度RAIDを構成します。
RAIDと言ってもディスクはひとつなので、-fを付けて強制的に実行します。

> mdadm -C -f /dev/md6 -l 1 -n 1 /dev/sda6

RAID再構成後、再起動すると無事認識されました。
結構、手間をかけさせられたなあ・・・