web-dev-qa-db-ja.com

Linuxで、ドライブ全体のイメージスナップショットを作成/復元するにはどうすればよいですか?

ドライブ全体のデジタルスナップショットを取得するWindowsユーティリティに甘やかされすぎて、ドライブがクラッシュした場合に復元できます。 (例:Mac OSX用のTimeMachineなど)。

Linuxでこれを行う同様の方法はありますか?

14
user35997

必要なツール(Time Machineに最もよく似ています)は rsnapshot と呼ばれます。通常のバックアップツールとは異なり、変更されたものだけをコピーし、多くの時点に簡単に移動できます。許容されるディスク容量を指定でき、その制限内にとどまるように保持されるスナップショットの数を調整します。とても素敵なツールです。

13
Norman Ramsey

単に「dd if=/dev/sda of=/path/to/target/backup "配置しようとしている部屋があることがわかっている場合。" dd if=/dev/sda | bzip2 > /path/to/target/backup "オンザフライで圧縮します。ただし、これには時間がかかる場合があります。

または、「tar --preserve-permissions -cjf backup.tar.bz2 /what/to/backup "必要なすべての読み取り権限を持つユーザーとして。選択してください。

補遺:最近、Vistaがプリインストールされた新しいラップトップを購入しました。いつか試してみたいと思ってVistaをどこかに保存したいと思ったので、初めてコンピューターを起動したとき(Linux livecdを使用)、これを行いました。

dd if=/dev/sda | ssh 10.0.0.1 "bzip2 > ~/vistadrive.bz2"

もちろん、これは高速なローカルネットワーク上にありました。そうでなければ、送信前に圧縮する方が賢明でしょう:

dd if=/dev/sda | bzip2 | ssh 10.0.0.1 "cat > ~/vistadrive.bz2"

このいくつかがお役に立てば幸いです。

編集:おっと。 bbdd ..に変更しました。

6
Pianosaurus

PartImage コマンドラインから、またはテキストGUIとして実行されます。 ddよりも重要な利点が1つあります。

Partimageは、パーティションの使用済み部分からのみデータをコピーします。速度と効率のために、空きブロックはイメージファイルに書き込まれません。これは、空のブロックもコピーする「dd」コマンドとは異なります。

6
StuffMaster

私は2つの戦略を使用します:#1は LVMスナップショット であり、2番目は rsnapshot であり、専用の外付けハードディスクへのポイントインタイムバックアップを作成するために使用しますドライブ。外付けハードディスクドライブは、何か悪いことが起こった場合にドアから出る途中で簡単に引っ張ることができるように配置されています。スナップショットを定期的に一連の暗号化されたDVDディスクに書き込み、別の都市の友人の場所に保管して保管する以外は、(まだ)オフサイトのメカニズムを使用していません。

変更されていないものにハードリンクを使用してスナップショットを作成する方法のため、rsnapshotを強くお勧めします。ホームディレクトリに問題が発生した場合は、rsnapshotコピーを取得して、ドライブ障害の再インストールまたは回復後に新しいホームパーティションにターピペまたはrsyncするだけです。

4
Michael Trausch

いくつか。昔ながらのdd(1)がありますが、これは一種の難解です。 dump(8)restore(8);があります。 Amanda ;のようないくつかのオープンソース製品があります。また、必要に応じて、ZFSをインストールし、cronスクリプトを使用して定期的なスナップショットを取得し、Time Machineと実質的に同じものを提供できます(Tim Fosterのブログを参照)。

ウィキペディアには 多くのオプションのリストがある記事 があります。

3
Charlie Martin

タイムマシンのようなファイルレベルのバックアップが必要な場合は、 rsnapshot as Norman をお勧めします。

ノートンゴーストのような完全なイメージのバックアップと復元タイプのソリューションが必要な場合は、 CloneZilla が非常にうまく機能することがわかりました。ライブCDを起動し、別のマシンをSSHサーバーとして使用して、イメージのバックアップ/復元を行います。

(私は、CDドライブがなく、USBが起動していない古いタブレットラップトップのPXEブートを介してライブバージョンを動作させることもできましたが、それはかなりの手間でした。)

また、Windowsマシンにも使用できます。

2
Evan

ドライブのサイズが異なる場合、私は常にddの使用を心配していました。または、ヘッド/セクター/トラック/などの数が異なっていました。

ddは、同じドライブのスナップショットと再フラッシュを行うときに非常に役立ちます。特にUSBドライブまたはWindowsパーティション。しかし、500Megドライブから1500Megドライブに移行するとき、私は心配になります。

さらに、ドライブに障害が発生した場合、新しいOSにアップグレードするための言い訳として使用できるようにしたいと思います。


とはいえ、古き良きtarは素晴らしい仕事をしています! GNU-tarにはdiff-tar-against-filesonly-update-files-that-have-changed、およびonly-archive-files-newer-than-dateオプション。

(言及する必要があります:私は数年前にバグに遭遇し、新しいバージョンのGNU-tarをダウンロードしてインストールする必要がありました(何か)。非常に長いパス名と複数のボリュームを処理します。)大したことではありません。常にオプションであることに注意してください。)

おそらく/ proc/ sys、そしておそらく/ var/log/lastlogまたは/ mnt。 (私は通常、/ mntの下にマウントされた外付けドライブにバックアップします。バックアップのバックアップ-あまり良くありません!)

/ devを含めることには価値があります。 gnu-tarはデバイスを適切に処理します(mknod)。ただし、復元中にバックアップ/ devを使用することはおそらくないでしょう。 (場合によっては、以前に設定したアクセス許可またはリンクを確認するのが便利です。)

また、fdiskrpminfoをダンプしたい場合もありますバックアップ。例えば。

/sbin/sfdisk -l /dev/sda > /....../info_sda
rpm -qa | sort > /...../info_rpms
rpm -qa --qf "%{Arch} \t %{NAME}-%{VERSION}-%{RELEASE}\n" | sort -k2,2 > /........./info_rpms_Arch

また、「オプション」ユーザーマウントファイルシステムをマウントします。

1
Mr.Ree

これが別の方法の完全な手順です。あるハードドライブから別のハードドライブに移動し、ハードウェアが類似している場合はマシンのクローンを作成することもできます。

まず、適切に機能するシステムのイメージを作成します。ルートとしてこれを行います。

# cd / 
# tar cpzf hostname.tgz / --exclude=hostname.tgz --exclude=proc --exclude=lost+found --exclude=mnt --exclude=sys --exclude=home --exclude=usr/src

カーネルイメージをバックアップする

# mount /boot
# cd /boot
# tar cpzf boot.tgz *

ライブCD/gentoo CDを使用して、イメージを展開するマシンを起動します。そのハードドライブをマウントし、適切にパーティション分割します。

# fdisk /dev/hda
/dev/hda1  /boot
/dev/hda2  swap
/dev/hda3  /tmp
/dev/hda4  /

ファイルシステムを追加する

# mke2fs /dev/hda1
# mkswap /dev/hda2
# mke2fs -j /dev/hda3
# mke2fs -j /dev/hda4

ドライブのマウント:

# mount /dev/hda4 /mnt/new_root
# mkdir /mnt/new_root/tmp
# mkdir /mnt/new_root/boot
# mkdir /mnt/new_root/proc
# mkdir /mnt/new_root/sys
# mount /dev/hda3 /mnt/new_root/tmp
# mount /dev/hda1 /mnt/new_root/boot
# swapon /dev/hda2
# mount -t proc proc /mnt/new_root/proc

このマシンにhostname.tgzファイルをコピーします。

新しいマシンのルート/ mnt/new_rootに抽出します

# tar -xzf hostname.tgz

新しい環境にchrootします。

# chroot /mnt/new_root /bin/bash
# env-update && source /etc/profile

/boot/grub/grub.confと/ etc/fstabを確認します

ハードドライブにgrubをセットアップします。

# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install /dev/hda

ドライブを終了してアンマウントし、マシンを再起動します。

1
deepwell

論理ボリュームマネージャーであるLVMを使用して、Linux上でスナップショットを作成できます。

0
Christian