今ならXeonも搭載可能なPCサーバー「PowerEdge SC440」が2万円台から買える!

マウスコンピューター」ならWindows抜きでもPCが買える。Linuxサーバーとしての利用に最適!

トップページ

  • tarの使い方
  • rpmの使い方
  • psコマンドでプロセスを確認
  • /etc/crontabを編集してアプリを自動実行
  • chkconfigコマンドでプロセスを自動起動

rsyncで増設HDDにバックアップ

 前のページでは同一のHDD内にバックアップを作成したが、HDDの故障に対処するには別のHDDにバックアップをとった方がいい。ここではIDEで接続する内蔵HDDを増設し、そこにバックアップをとることを考えてみる。

増設HDDをフォーマット

 新しいHDDを追加してLinuxを起動したら、まずは増設HDDを利用できるようにフォーマットを行う。フォーマットを行う前にHDDが正しく認識されているか確認してみよう。次のコマンドを入力し、接続したHDDの名前や容量などの情報が表示されれば正しく認識されている。

# dmesg | grep hdb
    ide0: BM-DMA at 0x1410-0x1417, BIOS settings: hda:DMA, hdb:DMA
hdb: HDS722580VLAT20 IDE Hard Drive, ATA DISK drive
hdb: attached ide-disk driver.
hdb: 8388608 sectors (4295 MB) w/32KiB Cache, CHS=522/255/63, UDMA(33)
 hdb: unknown partition table
#

 「hdb」というのはHDDを示すデバイス名のこと。IDEで接続したHDDの場合、1台目は「hda」、2台目は「hdb」、その次が「hdc」となる。外付けのHDDでは「sda」「sdb」「sdc」となるので、外付けを選んだ場合はデバイス名を読み替えてほしい。

 次にfdiskコマンドでHDDの領域確保を行う。複数の領域に分割して使うこともできるが、ここでは全体を1つの領域として使うように設定してみる。

# fdisk /dev/hdb

コマンド (m でヘルプ): n ←新たに領域を作成する
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p  ←基本領域を作成する
領域番号 (1-4): 1 ←領域の番号を指定
最初シリンダ (1-522, 初期値 1): ←空のまま「Enter」
初期値 1 を使います
終点シリンダ または+サイズ または+サイズM または+サイズK (1-522, 初期値 522)
:←空のまま「Enter」
初期値 522 を使います

コマンド (m でヘルプ): p ←領域の設定を確認する

Disk /dev/hdb: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdb1             1       522   4192933+  83  Linux

コマンド (m でヘルプ): w ←設定を書き込んで終了する
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
#

 領域の確保が終わったらフォーマットだ。WindowsではFATやNTFSというファイルシステムが使われるのに対し、Linuxではext2やext3が用いられている。ext3はext2の強化版であり、ジャーなリング機能が取り入れられた。とつぜんシステムがダウンしてもHDD上のデータに矛盾が生じにくく、かりに不整合があったとしてもジャーナルという記録によってすぐに回復できる。Vine Linuxではext3がサポートされているので、よほどの理由がないときはext3でフォーマットすべきだ。
 フォーマットにはmkfs.ext3コマンドを使う。「hdb1」というのは2台目のHDDに存在する1番目の領域という意味。

# mkfs.ext3 /dev/hdb1
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
524288 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
First data block=0
32 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

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

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

フォーマットしたHDDをマウントする

 WindowsではHDDにアルファベットのドライブ名が割り当てられるが、Linuxにはドライブ名という概念がない。HDDは「マウント」して、どこかのディレクトリに割り当てる。増設したHDDも同じようにどこかのディレクトリにマウントする必要がある。
 割り当てるディレクトリはどこでもいいが、一般的には/mntディレクトリの中にマウントポイントを作成する。ここではバックアップ用に使うということで/mnt/backupというディレクトリを作成しよう。ディレクトリの階層が深くなるならルートディレクトリにいきなり/backupというディレクトリを作ってもかまわない。
 ディレクトリを作ったら、mountコマンドで増設したHDD(/dev/hdb1)をそのディレクトリに割り当てる。dfコマンドで正しくマウントされているかを確認しよう。

# mkdir /mnt/backup
# mount /dev/hdb1 /mnt/backup
# df
ファイルシステム    1k-ブロック   使用中      空き 使用% マウント場所
/dev/hda2              3826584    878308   2753892  25% /
/dev/hda1                46633     10512     33713  24% /boot
/dev/hdb1              4127076     32828   3884604   1% /mnt/backup
#

 システムを起動するたびにmountコマンドでマウントするのは大変だ。そこで/etc/fstabを編集して、起動時に増設したHDDが自動的にマウントされるように設定する。最後の一行を追加してほしい。

LABEL=/       /             ext3    defaults       1 1
LABEL=/boot   /boot         ext3    defaults       1 2
none          /dev/pts      devpts  gid=5,mode=620 0 0
none          /proc         proc    defaults       0 0
none          /dev/shm      tmpfs   defaults       0 0
/dev/hda3     swap          swap    defaults       0 0
/dev/cdrom    /mnt/cdrom    iso9660 noauto,owner,kudzu,ro,io...
/dev/fd0      /mnt/floppy   auto    noauto,owner,kudzu,iocha...
/dev/hdb1    /mnt/backup ext3   defaults     1 2

増設したHDDにrsyncでバックアップする

 ここまでくれば、あとはこのページで紹介したのと同じだ。/mnt/backupディレクトリをバックアップ先としてrsyncコマンドを実行する。うまく実行できれば/etc/crontabを編集して、定期的に自動実行するように設定しておく。これで何もすることなく自動的にバックアップが行われ、データの安全性は大幅に増す。

rsync -a --delete /home /etc/backup
 
掲示板 管理者のサイト トップページへ

お問い合わせや間違いのご指摘はyasu@center-left.comまでメールください。