LANDISK HACKING DIARY
Since2005/8/17
TOPへ戻る

   INDEX
 
1. LANDISKのバックアップ概要
2. LANDISKの分解
3. ハードディスクの取り付け
4. dd でイメージバックアップ
5. USB HDDケースを使った復元
6. 参考文献





 
   LANDISKのバックアップ概要

まず、LANDISKを改造する前にLANDISK内に入っているOSのイメージバックアップを行うことにする。LINUXはちょっとの操作ミスでも重大な損害を被ることがある。その上、筆者自身がなんちゃってリナクサーともなれば最低限必要なことはバックアップに他ならない。バックアップだけではない。バックアップしたそのイメージからいつでも工場出荷状態に復旧できるような環境を構築しておく必要がある。LANDISK内には、debian がインストールされており、Red Hat Linux、Turbo Linux、Fedora Core しか触ったことのない筆者に大いなる期待を抱かせてくれると同時に不安感もまとわりつく。debian を一度だけインストールしたことならあるが、操作方法がRed Hat とは結構異なっており、面倒くさくなってすぐに捨ててしまった記憶はある…。

LANDISKはブートローダがMBR(Master Boot Record)に書き込まれているため、ハードディスクごとバックアップする必要がある。HDDのまるごとバックアップに関しては、環境によって様々な方法があると思うが、筆者はできるだけ安全且つお金をかけない方針でいくことにした。250GBをそのまま同容量の別HDDにバックアップするのが1番手っ取り早いのだが、残念ながら250GBのHDDはLANDISK 以外には所持していないし、バックアップのためだけに250GBのHDDを買ってくるのもなにか納得がいかない。それなら、新しく玄箱や外付けHDDを買ったほうがコストパフォ-マンスの面でまだマシな気がするのだ。また、TelnetやSSHをLANDISKにインストールし、ログイン後にHDDごと別のHDDにバックアップするという方法もあるが、そのTelnet やSSH のインストールパッケージを当てて不具合がでても面白くないのでとりあえず工場出荷状態を保存しておきたかった。

そこで取った方法は、LANDISK の/dev/hda1 と/dev/hda2だけイメージバックアップしておき、250GB のうち9割の容量を占める/dev/hda3に関してはデフォルトで格納されている初期ファイル(計1.8MB)だけをtar で固めて部分バックアップしておき、後からmke2fs をしてフォーマットしたパーティションに戻しておけば問題ないだろう。/dev/hda1 は約70MB程度、/dev/hda2 は512MB程度あるが、スワップ領域なので実は保存しておく必要はない。後からmkswap するなりしてスワップ領域を作成してあげればいいだけである。以下のコマンドは、自作マシンのFedora CoreにLANDISKから取り外したHDDをPrimary Slave に装着し、fdisk -l を実行した結果である。見てもらえばわかるとおり、デフォルトではパーティションは3つに分かれており、/dev/hdb1 に /(ルート)、/dev/hdb2 にスワップ、/dev/hdb3 が実際にデータを格納するパーティションといった構成になっている。ファイルシステムは、ext2 となっている。

[root@ns1 ~]# fdisk -l
Disk /dev/hdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/hdb1               1           9       72261   83  Linux
/dev/hdb2              10          79      562275   82  Linux スワップ
/dev/hdb3              80       30401   243561465   83  Linux

# df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                 68M   56M  8.5M  87% /
/dev/root              68M   56M  8.5M  87% /
/dev/ram0            1003k  154k  798k  16% /mnt/ram0
/dev/hda3             229G  2.7G  214G   1% /mnt/hda3



 
   LANDISKの分解
 
バックアップのために、さっそくLANDISKからHDDを取り出すわけだが、さほど難しい作業ではない。ハードウェアに関する知識がなくとも取り外せるようにはなっている。なにせハードウェア音痴の筆者にとりはずせたのだから。自作パソコンを作ったことがあるレベルならばきっと簡単に感じるだろう。それでも、1回目の取り外しはそれなりに苦労するかもしれない。特にLANDISKのネジは非常にきつく閉められており、かなりの力を必要とする。筐体を開けることを想定されていないかのような固さなので、ネジを取り外す際はきちんと下方向へ押しながら回転させていくと良いだろう。以下に取り外しの手順を画像とともに順を追って見ていくこととする。


トップパネルとボトムパネルを取り外します。背面にある小さな丸い穴を精密ドライバで垂直に押しあてながら、パネルを上に持ち上げます。ピンポイントに当ればあまり力をいれずとも簡単に取り外せます。因みにドライバは0.9mm のものを使用。 トップパネルとボトムパネルをはずした状態。
上下側面にある8本(上4本下4本)のネジを取り外します。ナメやすいネジになっているので下方向へ十分な圧力をかけながらドライバを回しましょう。背面(USB面)にも2本ネジがありますが、精密ドライバかマイナスドライバでないと回せません。 そういう自分はネジをナメてしまったので(8本中5本も!)、太さ2.6mm のネジを購入。長さは少し長めのしかなかったが、太さはジャストでした。3.0mm だと太すぎで、2.0mm だと細すぎます。
いよいよHDDとご対面。HDDはSAMUSUNGのHA250JC。 HDDを筐体から取り出すには背面にある4本のネジを取り外すだけです。
IDEケーブルと電源ケーブルを抜き、HDDを取り出した状態。 IDEケーブルと電源ケーブルは固くて抜きづらいので誤って他の線を傷つけたりしないように慎重に抜きましょう。




 
   ハードディスクの取り付け
 
ここから先は人によって作業内容が変わって来るだろう。Windows でブートしてPartition Magic やDriveCopy などのソフトウェアでまるごとコピーする場合には1台のマシンに3台のHDDを取り付ける必要があるし、Linuxでブートしてdd やdump でバックアップする場合は、2台のHDD、もしくは3台のHDDを取り付ける必要がある。バックアップする手段によってマシンに取り付けるHDDの台数も変わってくる。筆者の場合は、とりあえず1台のマシンに対して3台のHDDを接続してみることにし、正常に起動できるかどうかためしてみることにした。IDEケーブルを見てもらえばわかるとおもうが、タバコのヤニで犯された状態と、新しく買ってきた新品のIDEケーブルの色の違いが恐ろしいほどに見て取れる。タバコを止めて良かったと思える瞬間である。


最初は1台のHDDだけ接続されている状態。 LANDISKのHDDと空HDDを接続した状態。

だが、唯一の不安であった137GBの壁に見事にぶつかった。筆者が使用している自作パソコンは5年以上前のものでマザーボードはいまだに440BXであるため、137GB以上のHDDを正常に認識してくれないのである。BIOSのアップデートも過去に1度もしたことがなく、その必要性も特に感じていなかった(外付けHDDを買うことがほとんどだったため)。とりあえず、遠回りになるがBIOSのアップデートをしてみることにしたが、GigabyteからダウンロードしたBIOSアップデータファイルをGUI 上から実行すると、「fail-Due to EMM386 or QEMM!」というエラーが発生してアップデートすることができない。なので、OS起動時に「セーフモードとコマンドプロンプト」を選択し、EMM が使われていない状況でDOSプロンプトからアップデートを実行するが、それでも同様のエラーが発生する。ひょっとしたら、起動ディスクを作成してフロッピーから起動しないとダメなのか!?と思い、仕方なくフロッピードライブを買ってくることにした。長い間、フロッピーディスクがなくても耐えてきたのにまさかこんなことで買いに行くハメになるとは・・・。勿論、壊れたフロッピードライブの原因はタバコのヤニである。


タバコって怖いですねと感じさせる画像。 アイボリーモデルしか買ったことがなかったが、ちょっと奮発してアルミモデルを購入してみた。

起動用フロッピーディスクを作成し、いよいよBIOSのアップデートができると思ったのも束の間、次々とわけのわからないエラーが発生し、アップデートすることができない。主なエラー内容は以下の通りである。

「The Program File's Part Number does not match with your system」
「Unknown Flash Type」
「Source File not Found!」


BIOSのアップデートに格闘すること3時間。インターネットを調べていると、BIOSには、FLASH ROMライトプロテクション(書き込み保護)なる機能があることがわかった。さっそく、BIOSの設定画面でそれらしきものを探してみたところ、「BIOS Flash Protection」という項目をみつけた!だが、残念なことにデフォルトで「disabled 」と設定されていたので書き込み保護が原因でないことを知りガックリ。さらに調べていくと、どうやらマザーボードのジャンパーにも、ライトプロテクションなるものがあるらしいことを知った。Gigabyte のマザーボードにそんなジャンパーがあるわけない・・・とか思いながら説明書を見てみるとなんとちゃんと載っていた。さっそくジャンパーピン22番を確認してみると「Closed」(書き込み保護)になっていました!22番を「Open」にしてからフロッピーディスクを挿入し、BIOSのアップデートを行ったところ、なにも手を加えることなく勝手にアップデートを始めてくれました。原因がわかればなんてことないですが、知らないとこれはハマリますね~。ひとつ勉強になりました。


137GB以上のHDDが認識できずにセカンダリマスターの読み込みで失敗し、フリーズする。 ライトプロテクションを外したら、あっけなくアップデートに成功した。
4台のIDE接続機器が認識。 BIOSのアップデートが成功し、日付も変更されている。



 
   dd でイメージバックアップ
 
HDDもようやく認識し、あとはバックアップするのみ。以下の説明では、/dev/hda をFedora Core が入ったマシン、/dev/sda をLANDISK、/dev/hdd を空HDD27GBとする。LANDISKが /dev/sda となっているのは外付けのUSBハードディスクケースを使用しているためである。HDD換装を始める前に、LANDISK と同じサイズで空HDDにパーティションを切っておく事。

/dev/hda -> Fedora Core (作業用マシン)
/dev/sda -> LANDISK HDD(コピー元)
/dev/hdd -> 空のHDD(コピー先)


# fdisk -l

Disk /dev/hda: 27.2 GB, 27201871872 bytes //作業用マシン
255 heads, 63 sectors/track, 3307 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14         535     4192965   83  Linux
/dev/hda3             536         666     1052257+  83  Linux
/dev/hda4             667        3307    21213832+   5  拡張領域
/dev/hda5             667        2719    16490691   83  Linux
/dev/hda6            2720        3241     4192933+  83  Linux
/dev/hda7            3242        3306      522081   82  Linux スワップ

Disk /dev/hdd: 30.0 GB, 30003241472 bytes //コピー先HDD
255 heads, 63 sectors/track, 3647 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/hdd1               1           9       72261   83  Linux
/dev/hdd2              10          79      562275   83  Linux
/dev/hdd3              80        3307    25928910   83  Linux

Disk /dev/sda: 250.0 GB, 250059350016 bytes //コピー元HDD
255 heads, 63 sectors/track, 30401 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1               1           9       72261   83  Linux
/dev/sda2              10          79      562275   82  Linux スワップ
/dev/sda3              80       30401   243561465   83  Linux

■MBR のコピー

# dd if=/dev/sda of=/dev/hdd bs=512 count=63

■パーティション3「/dev/hdd3」の再作成

次に、サイズの調整とパーティションテーブル再読み込みのために、コピー先のHDDである /dev/hdd3 を削除し、再度作成しておく。なお、上記でMBRをコピーしたことで/dev/hdd2 には、「Linux Swap 」と表示される。

# fdisk /dev/hdd

省略~パーティション3を削除し、再度作成する。

# fdisk -l

Disk /dev/hdd: 30.0 GB, 30003241472 bytes
255 heads, 63 sectors/track, 3647 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/hdd1               1           9       72261   83  Linux
/dev/hdd2              10          79      562275   82  Linux スワップ
/dev/hdd3              80        3647    28659960   83  Linux

■パーティション1のコピー

# dd if=/dev/sda1 of=/dev/hdd1 bs=1M

■スワップ領域の作成

# mkswap /dev/hdd2

■パーティション3の先頭を削除

# dd if=/dev/zero of=/dev/hdd3 bs=1M count=16

■パーティション3をext2 でフォーマット

# mke2fs /dev/hdd3
mke2fs 1.36 (05-Feb-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
3588096 inodes, 7164990 blocks
358249 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=8388608
219 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.


■パーティション3 のデータをコピー先HDDへ移動

# mkdir /mnt/sda3 /mnt/hdd3
# mount -t ext2 -o ro /dev/sda3 /mnt/sda3
# mount -t ext2 /dev/hdd3 /mnt/hdd3
# tar -czvf ~/hda3.tar.gz /mnt/sda3
# tar -xzvf ~/hda3.tar.gz
# mv ~/mnt/hda3/* /mnt/hdd3
# umount /mnt/sda3 /mnt/hdd3



イメージバックアップしたSeagate のHDDへ換装し、起動させてみる。後々、面倒くさいので動作確認できるまで箱は閉じないようにしよう。 使用したHDDリムーバブルケース。HDDの入替えは何気に面倒くさいので重宝します。


■コピー元とコピー先のHDD容量が同じ場合

同容量のHDDどうしの場合は移行が簡単だ。以下のコマンドを実行するだけである。ただし、バックアップ用途でLANDISKのシステムそのものを保存しておくならば、250GBのHDDの複製はあまりにも意味がなく、もったいないような気がするので、上述したようにMBR と/dev/hda1、/dev/hda3 を保存しておくだけの方が幸せになれるでしょう。これなら全てあわせても100MBもありません。

# dd if=/dev/hdb of=/dev/hdc



 
     USB HDDケースを使った復元
   
LANDISK筐体からハードディスクを取り外さなくても、バックアップできる方法があります。USB HDDケース(勿論、HDDも入れてください)をLANDISKのUSB端子に接続し、LANDISKからHDDケースへとデータを移し変えます。データのバックアップは、上記の手順を経て既にイメージバックアップしてあるものとして、ここでは、復元方法のみ説明する。

■バックアップ環境
/dev/hda ---> LANDISK(コピー元)
/dev/sda ---> USB接続されたHDD(コピー先)

■既にバックアップしてあるイメージ
landisk-MBR.img
landisk-hda1.img
landisk-hda3.img.tar.gz

USB HDD(コピー先)にLANDISKのデータ(コピー元)をコピーする方法を以下に説明する。まず、「landisk-MBR.img 」をコピーする。

# dd if=~/landisk-MBR.img of=/dev/sda bs=512 count=1
1+0 records in
1+0 records out

/dev/sda3 を消去し、新たにパーティションを作り直す。

# fdisk /dev/sda3

次に、「landisk-hda1.img」をコピーする。

# dd if=~/landisk-hda1.img of=/dev/sda1 bs=1M
70+1 records in
70+1 records out

swap を作成する。

# mkswap /dev/sda2

/dev/sda3 の先頭を消去する。

# dd if=/dev/zero of=/dev/sda3 bs=1M count=16
16+0 records in
16+0 records out

mke2fs で /dev/sda3 をフォーマットする。

# mke2fs /dev/sda3

あとは、tar で固めた 「landisk-hda3.img.tar.gz」を /dev/sda3 に移動するだけです。/mnt/tmp の直下には、「share」と「spool」ディレクトリがコピーされている状態になるはずである。また、ドットで始まるファイルの「.landisk」と「.landisk-update」の2つのファイルもきちんとコピーしておこう。

# mkdir /mnt/tmp
# mount -t ext2 /dev/sda3 /mnt/tmp
# cd /mnt/tmp
# tar xzvf ~/landisk-hda3.img.tar.gz ./
# mv /mnt/landisk/* ./
# mv /mnt/landisk/.* ./
# umount /mnt/tmp

あとは、出来上がった複製LANDISKをLANDISK筐体にとりつけ、正常に起動するかどうかを確認するだけである。


玄箱で遊ぼう!!―玄箱/玄箱HG対応
玄箱で遊ぼう!!―玄箱/玄箱HG対応
Debian GNU/Linux徹底入門第3版 Sarge対応
Debian GNU/Linux徹底入門第3版 Sarge対応
Debian GNU/Linuxでつくる骨太システム―安全・強靱なサーバの構築と管理 sarge対応版
Debian GNU/Linuxでつくる骨太システム―安全・強靱なサーバの構築と管理 sarge対応版
KURO-BOX/HG NAS組み立てキット
KURO-BOX/HG NAS組み立てキット
I-O DATA LAN接続ハードディスク 「LANDISK」 250GB HDL-F250
I-O DATA LAN接続ハードディスク 「LANDISK」 250GB HDL-F250

 
     参考文献
   
■wizd on LANDISK





TOPへ戻る
 
Copyright © KORO All Rights Reserved.