ディスクのバックアップ方法



##############################################################################
● ディスクのバックアップ方法

バックアップ先のHDDはバックアップ元のパーティション構成と同じにする。
特にパーティション番号とマウント先は同じにしておくこと。
パーティションのサイズは元の内容が充分に入るサイズを確保する。
バックアップ元が /dev/sda バックアップ先が /dev/sdb として説明する。

パーティション構成の確認コマンド
[root@localhost ~]# fdisk -l /deb/sfa

ディスク /dev/sda: 1000.2 GB, 1000204886016 バイト
ヘッド 255, セクタ 63, シリンダ 121601
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000dc176

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *           1         523     4200966   83  Linux
/dev/sda2             524        1046     4200997+  82  Linux スワップ / Solaris
/dev/sda3            1047       27155   209720542+  83  Linux
/dev/sda4           27156      121601   758637495   83  Linux


使用容量の確認
[root@localhost ~]# df -k
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda3            206428044   6265508 189676512   4% /
tmpfs                  1097728        80   1097648   1% /dev/shm
/dev/sda1              4134900    185652   3739200   5% /boot
/dev/sda4            746733980 327419392 381382716  47% /home

パーティションの作成は以下のコマンドで行なう /dev/sdb の場合

[root@localhost ~]# fdisk /dev/sdb

	:
	:
	:

パーティションの作成が終わったらファイルシステムを元のHDDと同じタイプで
作成する。

/boot パーティションのファイルシステムを EXT4 で作成

[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262944 inodes, 1050241 blocks
52512 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1077936128
33 block groups
32768 blocks per group, 32768 fragments per group
7968 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                            
Creating journal (32768 blocks): 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.

/ パーティションのファイルシステムを EXT4 で作成

[root@localhost ~]# mkfs.ext4 /dev/sdb3
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
13115392 inodes, 52430135 blocks
2621506 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
1601 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

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

/home パーティションのファイルシステムを EXT4 で作成

[root@localhost ~]# mkfs.ext4 /dev/sdb4
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
47415296 inodes, 189659373 blocks
9482968 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
5788 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

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

/dev/sdb2 をスワップ領域としてフォーマット

[root@localhost ~]# mkswap /dev/sdb2

バックアップ実行
(CentOSのインストールCDのRescueモードで起動して内臓HDD間でバックアップ)

1.バックアップ先のHDDをマウントする。

[root@localhost ~]# mkdir /mnt/sdb1 /mnt/sdb3 /mnt/sdb4
[root@localhost ~]# mount /dev/sdb1 /mnt/sdb1
[root@localhost ~]# mount /dev/sdb3 /mnt/sdb3
[root@localhost ~]# mount /dev/sdb4 /mnt/sdb4

2.バックアップ先のパーティションのマウントディレクトリに移動

[root@localhost ~]# cd /mnt/sdb1

3.バックアップ開始(restore コマンドではカレントディレクトリに展開される)

ローカルで行なう場合

[root@localhost sdb1]# dump -b32 -0f - /dev/sda1 | restore -b32 -r -f -

リモートのバックアップ元からローカルのバックアップ先にコピーする場合は
ssh で接続できるようにしておき下記の要領でコピーする。
(リモートを 172.16.1.2 とする)

[root@localhost sdb1]# ssh 172.16.1.2 "dump -b32 -0f - /dev/sda1" | restore -b32 -r -f -

圧縮して送る場合は

[root@localhost sdb1]# ssh 172.16.1.2 "dump -b32 -0f - /dev/sda1 | gzip -c" | gzip -dc - | restore -b32 -r -f -

4.swap パーティション以外のパーティションをすべて、2.~3.の要領でコピーする。

[root@localhost sdb1]# cd /mnt/sdb3
[root@localhost sdb3]# dump -b32 -0f - /dev/sda3 | restore -b32 -r -f -
[root@localhost sdb3]# cd /mnt/sdb4
[root@localhost sdb4]# dump -b32 -0f - /dev/sda4 | restore -b32 -r -f -

マシンの処理速度とネットワークの速度にも依ると思うが、圧縮しないほうが
速いようだ。


5.ブートローダーのセットアップ

ブートローダーセットアップの前に一旦作業用のOSを再起動して、パーティション
構成がちゃんと認識できるようにする。

パーティション構成は以下の通りとする。

/dev/sdb1 が /boot ファイルシステム
/dev/sdb2 が swap  ファイルシステム
/dev/sdb3 が /     ファイルシステム
/dev/sdb4 が /home ファイルシステム


バックアップしたHDDが下記の構成だとして、/ ファイルシステムを /mnt/sdb3、
/boot ファイルシステムを /mnt/sdb1 にマウントする。

[root@localhost ~] mount /dev/sdb1 /mnt/sdb1
[root@localhost ~] mount /dev/sdb3 /mnt/sdb3

/ ファイルシステムのパーティションをマウントしたディレクトリに移動

[root@localhost sdb4]# cd /mnt/sdb3

6.chrootしたときに必要なファイルシステムをマウントする

[root@localhost sdb3]# mount --bind /dev ./dev
[root@localhost sdb3]# mount -t sysfs sys ./sys
[root@localhost sdb3]# mount -t proc proc ./proc
[root@localhost sdb3]# mount --bind /mnt/sdb1 ./boot

6. /mnt/sdb3 に chroot する

[root@localhost sdb1]# chroot /mnt/sdb3

・grub の場合

/boot/grub/grub.conf が正常かチェックする

[root@localhost /]# view /boot/grub/grub.conf
	:
	:
	:

異常が無ければ grub をインストールする

[root@localhost /]# grub-install


・grub2 の場合

/boot/grub/grub.cfg を、コピーしたディスクに合わせて作り直す

[root@localhost /]# grub-mkconfig --output /boot/grub/grub.cfg
Generating grub configuration file ...
	:
	:
	:

/deb/sdb に grub をインストールしなおす

[root@localhost /]# grub-install /dev/sdb
Installing for i386-pc platform.
Installation finished. No error reported.

chroot 環境から抜けて、マウント状態を解除する

[root@localhost /]# exit
[root@localhost /mnt/sdb3]# umount ./boot
[root@localhost /mnt/sdb3]# umount ./proc
[root@localhost /mnt/sdb3]# umount ./sys
[root@localhost /mnt/sdb3]# umount ./dev
[root@localhost /mnt/sdb3]# cd
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# umount /dev/sdb3



戻る