hakeの日記

Windows環境でプログラミングの勉強をしています。

HDDのバックアップ

ホーム画面の設定タブのバックアップ/リストアでは/HDD1/以下のデータがバックアップされていない。HDDが何時寿命を迎えるかわからないので予めバックアップを取っておく。
ddコマンドで/hdd1領域のイメージをCFに取る、更にパーティションテーブルの情報も。/hdd2領域の初期データは/hdd1以下に存在する。


注意:内蔵HDDが/dev/hda?か/dev/hdc?かを事前に良く確認すること

#dd if=/dev/hdc1 of=/mnt/cf/hdc1.img

#fdisk -l /dev/hdc
Disk /dev/hda: 4095 MB, 4095737856 bytes
16 heads, 63 sectors/track, 7936 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1       204    102784+  83  Linux
/dev/hda2           205      1020    411264   83  Linux
/dev/hda3          1021      7936   3485664    c  Win95 FAT32 (LBA)
/dev/hda4             1         1         0    0  Empty
Partition 4 does not end on cylinder boundary.


HDDがおかしくなった場合の復旧

  • 「D」+「B」を押しながらリセットボタンを押す、電源ONでメンテナンスカーネルが立ち上がるので、rootでログイン
  • fdiskで/dev/hdaに対して上記パーティションテーブルになるように領域確保。領域確保は3,2,1の順に確保する。
  • mkfs.ext2 -j /dev/hda1
  • mkfs.ext2 -j /dev/hda2
  • mkfs.vfat -F32 /dev/hda3
  • fsck.ext3,fsck.vfatでディスクチェック(念の為)
  • mount /dev/hda1 /hdd1 hdd1領域のマウント
  • mount /dev/hdc1 /mnt/cf CFのマウント
  • dd if=/mnt/cf/hda1.img of=/dev/hda1
  • umount /mnt/cf
  • umount /dev/hda1
  • 必要なら/dev/hda2にも同様の操作
  • reboot で再起動

多分これで良いはず。