ディスクのバックアップ方法
##############################################################################
● ディスクのバックアップ方法
バックアップ先の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
戻る