HDD Linux

はてなブックマークに移行済み(20101229)

連載記事 「Linuxファイルシステム技術解説」

Filesystems HOWTO
詳解ファイルシステム
Linux Ext2fs Undeletion mini-HOWTO
ext3 wiki
Red Hat Linux 7.2はどこが変わった?


   [ backup ]


・ハードディスク全体のバックアップ

    ローカルバックアップは一般的な「dd」コマンドが使えます。

    $ echo "HD全体のバックアップ(ローカル)"; \
       SRC=/dev/sda; \
       DST=src_backup.img; \
       sudo dd if="$SRC" of="$DST" bs=512k

    「$R_HOST」には、DNSドメイン名か、IPアドレス、NetBIOS名「`net lookup netbios_name`」が指定出来ます。

    $ echo "HD全体のバックアップ(リモート)"; \
       SRC=/dev/sda; \
       DST=src_backup.img; \
       R_USERNAME="username"; \
       R_HOST="remote_host_name"; \
       sudo dd if="$SRC" bs=512k | \
       ssh -l "$R_USER_NAME "$R_HOST" "sudo dd of=${DST} bs=512k"


・パーティションごとのバックアップ

    「fdisk -l」コマンドで「/dev/sda」のパーティションを表示、「Y|y」でバックアップできます。
    ファイル名は「/」を「_」に変更し、「.img」をつけたファイルになります。

       例 : _dev_sda1.img

    「#"main"」の部分をリモートに変更することも出来ます。

    $ echo "パーティションごとのバックアップ"; \
       SRC="/dev/sda"; \
       \
       temp=$(sudo fdisk -l "$SRC" | grep "^\/" | awk -F" " '{print $1}'); \
       for list in $temp; \
       do \
         echo "backup $list [Y/n]"; \
         read yn; \
         \
         echo "$yn" | \
         tr [:upper:] [:lower:] | \
         if [ `xargs` == "y" ]; then \
           \
           #"main"; \
           dd if="$list" of="$(echo "$list" | sed s%\/%_%g).img"; \
           \
         fi; \
       done


・MBRのバックアップ


・ファイル、ディレクトリ単位のバックアップ( rsync + ssh )

    rsyncコマンドが見つかった場合のみ行います。
    sshコマンドも使いますので、リモート用です。

    $ echo "ファイル、またはディレクトリ単位のバックアップ( rsync + ssh )"; \
       SRC="file_or_directory"; \
       R_HOST="remote_host"; \
       R_DIR="remote_directory"; \
       \
       whereis rsync | grep "bin" && \
       rsync -avz --delete -e ssh "$SRC" "$R_HOST":"$R_DIR"



・ファイル、ディレクトリ単位のバックアップ( tar + ssh )

    tar.gzファイルの場合は、「zcvf」or「zcf」を、
    tar.bz2ファイルの場合は、「jcvf」or「jcf」を指定します。

    $ echo "ファイル、またはディレクトリ単位のバックアップ( rsync + ssh )"; \
       SRC="file_or_directory"; \
       R_USERNAME="username"; \
       R_HOST="remote_host"; \
       R_DIR="remote_directory"; \
       \
       tar zcvf - "$SRC" | ssh "${R_USERNAME}@${R_HOST}" "cat > ${R_DIR}/${SRC}.tar.gz"


・スーパーブロックを修正する場合


・その他inode等特殊なファイル情報の確認方法

    LVMを使用している場合は、 HD単位での情報は見れません。
    パーティションが「ext2」でフォーマットされている場合は、パーティション単位での確認が出来ます。

    man dumpe2fs


・差分/増分バックアップ

    echo "マニュアルチェック ( apropos + apt-cache )"; \
    echo "dump restore lsattr chattr" | \
    for list in `xargs`; \
    do \
       apropos -we "$list" | \
       grep "$list" || apt-cache search ^"$list"$ ; \
    done


    Linux: dump and restore mini-HOWTO


・その他情報源




TOP