Linuxシステムの完全な復元


20

私はrsyncを使用してシステムからさまざまなファイルをバックアップすることに慣れていますが、マシンを完全に復元する最良の方法は何ですか。

私が過去に試したことは:

  1. Fedoraインストールディスクから基本的なフォーマット/再インストールを行う
  2. ネットワーキングが有効になっていることを確認してください
  3. rsyncバックアップからすべてを新しくインストールしたシステムの上部にコピーします

このように動作しますが、インストールされたすべてのパッケージが100%動作するとは思いません。

最小限の労力でシステムを復元できるようにしたいのですが、バックアップが行われたときと同じようにすべてが機能します。また、可能であれば、他のマシンにインストールし、本質的に同じパッケージとデータを持つ2つのマシンをインストールします。


他のマシンにインストールしたいというとき、他の「同一/マシン、またはデスクトップやラップトップのようなもの」を意味しますか?
イコルス2009年

ハードウェアが異なることだろうが、両方で同じソフトウェアパッケージ望んで
サイモン・フォスターの

回答:


17

これが私がやったことです(これは/ dev / sdaにある単一のディスクを想定しています)

  • ddを使用してMBRとパーティションテーブルをバックアップします。「dd bs = 512 count = 1 if = / dev / sda of = / backups / sda.layout」

  • rsyncを使用して、「rsync -axvPH --numeric-ids ...」などのように全体をコピーします。

復元時にこれを行います:

  • sysrescuecdでターゲットマシンを起動します。通常、USBスティックに「sda.layout」ファイルがあります。

  • MBR /パーティションテーブルをddで復元します: "dd bs = 512 count = 1 if = / path / to / sda.layout of = / dev / sda"

  • カーネルにパーティションテーブルを再読み込みさせるには、partprobe (コメント者Markに感謝)を使用します。

  • さまざまなパーティションをすべて/ restore /の下にマウントします。復元時にマウントポイントを同一にするため、ソースに/ boot、/ varがある場合、/ restore / boot、/ restore / varなどになります。

  • rsyncを使用して全体を復元します。


3
私はこれを数回行っており、標準のLinux CLIコマンドを使用するという利点があります。rsnapshot、rsyncの周りのperlスクリプトを使用して、中央サーバーにバックアップを作成します。次に、sysrescuecdから起動し、パーティションテーブルをdd 'した後、すべてをrsyncします。ところで、「partprobe」はパーティションテーブルを再読み込みします
Mark Porter

OK、これは卑劣なハックと見なされる場合がありますが、fdiskのようにsysctl()を発行することでカーネルにパーティションテーブルを再読み込みさせることができるため、fdiskがあります-私の経験では常にpartprobeとは異なります-doこれ:EOF Wのfdiskの/ dev / yourdisk << EOF
ベルントHaugの

みんなの提案をありがとう、私はそこにもっと良い解決策がなければならないと知っていた。これらの提案を試して、私に最適なものを見てみましょう。
サイモンフォスター

3
ddのカウントを忘れないでください!「dd bs = 512 if = / dev / sda of = / backups / sda.layout count = 1」および「dd bs = 512 if = / path / to / sda.layout of = / dev / sda count = 1」
スティーブン

@スティーブン:がらくた!キャッチしてくれてありがとう。コメントに投票できますか?
kbyrd 2009年

6

システムを完全に複製することはありません。何が変わるかわからないので、システムクローンイメージは、1つの変更が発生した時点ですでに古くなっています。それを行う最善の方法は、機能的に同一のシステムを作成できる手順を確立することです。1つの可能性は、キックスタート、AutoYaST、または同様のツールのようなものです。構成の適切なバックアップを保持し、Bcfg2、Puppet、CFEngineなどの構成管理システムを使用して、手動で行うのではなく、すべてを構成するのが理想的です。次に、所有している別のシステムと類似した新しいシステムを作成するか、既存のシステムを再作成する必要がある場合、それは簡単で明確に定義された手順です。


3

前もってもっと手間がかかりますが、KickstartRevisorではインストールをカスタマイズして他のマシンで使用できます。設定ファイルのカスタマイズされたバージョンを含めることができます。

また、ホームディレクトリを別のパーティションに保持することも検討してください。別のパーティションでクリーンインストールを実行しながら、そのパーティションをそのままにしておくことができます。


2

システムリカバリcdのコピーを取得し、最初の最小インストール後、そこから起動し、ディスクにマウントしてchrootし、rsyncを実行します。完了したら、update-grubを実行して、正しいブートデバイスとカーネルからブートする必要があります。


2

私はいつも、新しいシステムを(バックアップなどから)インストールするGentooの方法は、そのシンプルさゆえに最高だと考えてきました。

  1. 動作する最小限のシステムを作成します。
  2. 動作中のシステムをlivecdのハードドライブとしてロードします。
  3. ファイルシステムをtarし、どこかに保存します。
  4. livecdでターゲットシステムをロードします。
  5. ターゲットハードドライブを準備し、マウントします。
  6. マウントされたハードドライブに展開します。
  7. chrootを入力します。
  8. ブートローダーおよびその他のシステム依存のものをセットアップします。
  9. 再起動してください。
  10. 必要に応じて、新しいソフトウェアをインストールする/ユーザーフォルダーをコピーする/他のファイルを追加する。

2

clonezillaライブCDをお試しください。ライブセッションを起動して、何もインストールすることなくマシンをイメージングできます。その後、ネットワーク共有またはリモートマシンなどにイメージのコピーを保存するオプションがあります。


0

まったく同じマシンの場合はdd、ディスクイメージを作成してから、必要に応じてイメージを再作成するだけです(必要に応じて、いくつかの構成を後で変更します)。

ハードウェアを切り替えている場合は、ファイルシステムルートのtarballまたは完全なrsyncバックアップを作成できました。最初に完全なインストールが必要な理由がわかりません-完全バックアップをとる限り、Fedoraの基本インストールは必須ではありません。


0

手順は多くの問題を引き起こす可能性があるため、避ける必要があります。

これについては、主に2つの推奨される方法があり、純粋に開発環境を構築しようとしている場合は3番目の方法があります。

イメージング

TOを復元するハードウェアが同じまたは十分に類似している場合は、ディスクイメージングツールを使用して、ハードドライブまたはアレイ全体のコピーを作成します。復元する場合は、このイメージを使用して問題のマシンを再イメージします。複数のマシンにイメージを作成する場合、他のデバイス(ホスト名、静的IPアドレスなど)のマシン固有の設定を更新して、互いに競合しないようにする必要があることに注意してください。

実際のイメージングを行うには、ハードドライブのクローンを作成できるツールまたは製品をお勧めします。

構成/ホームディレクトリのバックアップ

プライマリマシンで、次のディレクトリ(またはその他)のいずれかが必要な場合は、定期的に(好きな方法で)バックアップします。

/ home-すべてのユーザーの個人設定、ドキュメント、およびファイル
/
etc- 構成/ opt-パッケージマネージャーを介してインストールされない特別なソフトウェア
/ usr / local-パッケージマネージャーを介してインストールされない特別なソフトウェア
/ var-ログなど

復元する場合は、問題のマシンにOSを再インストールし、これらの各(または関連ファイルのみ)を適切な場所にコピーします。

スナップショットを持つ仮想マシン

VMWareで仮想マシンを作成します(または他の任意のものを作成します)。希望どおりに構成されたら、スナップショットを作成します。このスナップショットは、任意の数の新規または既存の仮想マシンに簡単に復元できます。

一般に、データと構成のみをバックアップする必要があります(ただし、これらを定義します)。OSとソフトウェアはいつでも簡単に再構築できます。自分のコンテンツだけが価値があります。このセットアップが開発用であり、同じ環境を確保する必要がある場合(単に作業を再開するのではなく)、仮想マシンのスナップショットが本当に最善の策です。

イメージングは​​ブルートフォースソリューションです。可能であれば、データをバックアップするだけで、OS自体を心配する必要はありません。完全に復元しようとすると、トラブルが発生します。

最終目的がここにあるものを明確にすることができれば、私はより詳細なソリューションを提供できます。


0

「ハードウェアは異なる」と言うので、SystemImagerは非常に便利です。

これは、PXEとRsyncのラッパースクリプトの単なる束です。したがって、作成される「バックアップ」は、バックアップされたLinuxサーバーの完全なディレクトリ構造にすぎません。このディレクトリに「cd」して、フィード中に内容を変更できます。(SystemImagerは、イメージをプッシュするときにネットワーク設定の変更を独自に管理します。)

イメージをプッシュする前に、バックアップしたサーバーにchrootして、yumまたはaptを実行してソフトウェアをインストールできます。

編集:パーティション/論理ボリュームを作成するSIスクリプトを見て、ターゲットマシンのディスクサイズに応じて変更できます。カーネルモジュールを追加/削除することもできます。


0

私はMondo Rescueと非常に幸運でした。基本的には、後で使用するためにすべてのファイルとパーティションをブート可能なCDにバックアップします。パーティションとドライブの変更を処理できます。

http://www.mondorescue.org/



0
  • 最も安全な方法は、ディスク全体または少なくとも関連するパーティションのクローン作成し、Live CDを使用してそれらを復元することです。

  • 別のスペース効率の良い方法は、ダンプ(XFSの場合はxfsdump)を使用することですが、この場合、パーティションを手動で再作成(フォーマット)する必要があります。同じパラメーター、特にUUIDとLABELで作成することを忘れないでください。

  • パラメーターとともにtarを使用して、--xattrs各ファイルの拡張属性を保存することもできます。


1
Linuxの最新のrsyncには、拡張属性とACLにそれぞれ-Xと-Aがあります。
kbyrd 2009年

0

partimageとpartclone(Clonezillaの一部)は、完全なシステムイメージを作成するための便利なユーティリティです。

確認したように、完全なシステムイメージは必ずしもシステムポータブルではありません。通常はデバイス名が原因です。

イメージング後にGRUB(できれば、別の/ bootパーティションに)とMBRを(たとえば、LiveCDを使用して)再インストールするだけで簡単にできます。

別のアプローチは、構成管理ツールを使用して、ベースラインイメージ(Vagrantベースボックスなど)に適用されるポリシーを定義することです。データバックアップをブロックおよび/またはオブジェクトストレージ(EBS / S3、Openstack Block Storage / Openstack Object Storage)に分けます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.