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


14

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

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


1
Linuxユーザーが実際にシステムユーティリティを所有しているのと同じように、Windowsであなたが台無しになっていると思います。:)

回答:


13

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


6

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

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


6

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...


1
それにはブートセクターも含まれませんか?partimageを使用してWindowsドライブをバックアップするとき、それは常に私を混乱させました。

グレッグ、パーティションテーブルとmbrを含むすべてを含む
Johannes Schaub-litb 08

4

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

変更されていないものにハードリンクを使用してスナップショットを作成する方法のため、rsnapshotを強くお勧めします。ホームディレクトリが正常に機能しない場合は、ドライブの再インストールまたはドライブ障害からの回復後に、rsnapshotコピーを取得してtarpipeまたはrsyncして新しいホームパーティションに戻すことができます。


3

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

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


2

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

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

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

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


1

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

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

その上、私のドライブが故障したとき、私はそれを新しいOSにアップグレードする言い訳として使用できるようにしたいです。


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

(言及する必要があります:数年前に、新しいバージョンのGNU-tarをダウンロードしてインストールする必要があったバグに遭遇しました(非常に長いパス名と複数のボリュームに関連する何か)。それは常にオプションです。)

おそらく/ proc/ sys、およびおそらく/ var / log / lastlogまたは/ mntを除外する必要があります。(通常、/ mntの下にマウントされた外部ドライブにバックアップします。バックアップをバックアップします-あまり良くありません!)

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

また、バックアップする前にfdiskrpm情報をダンプすることもできます。例えば

/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

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

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

# 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

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


0

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


1
LVMを使用している場合、必ずしもそうではありません。もしそうなら、これは良いオプションですhowtoforge.com/linux_lvm_snapshots
Gavin H
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.