WindowsのようなLinux(Debian / Ubuntu)に「復元ポイント」はありますか?


17

私はUbuntu Virtual Machine(VM)で直接作業しています。いくつかの更新(カーネルなど)が更新マネージャーで利用可能でした。

VMを使用していなかった場合、何かを壊すリスクがあるため、更新しません。VMなので、スナップショットを作成したり、アプライアンスをエクスポートしたり、何か問題が発生した場合に復元したりできます。

Debian / UbuntuインストールでVMを使用していないと仮定します。VMアプライアンスのように簡単に復元できる、アップグレードの直前にシステムを復元するVM構成に依存しないインストール復元方法がありますか(Windowsの「復元ポイント」のような)。

(「ゴーストイメージ」またはそのようなもの(Norton Ghost、Clonezillaなど)を探しているのではなく、Linuxシステムに組み込まれているものを探しています)


3
これはトピック外であることがわかっているため、コメントとして追加していますが、OpenSolarisはZFSファイルシステム全体のスナップショットを作成し、後で復元することができます。重複排除のため、ディスク容量もあまり必要ありません。実際、メジャーアップグレードを行う標準的な方法は、新しいFSスナップショットを作成し、その上にアップグレードをインストールすることです。tiが機能する場合は、古いものを削除できます。そうでない場合は、機能していたものに戻ることができます。
-AndrejaKo

3
@AndrejaKo:+1ただし、「クローン」(書き込み可能なスナップショット、通常のスナップショットは読み取り専用)であり、多くのスペースを必要としないという事実は、重複排除とは関係なく、スナップショットとクローンの処理方法とは関係ありませんCOWファイルシステムで。つまり、重複除去されていないプールでも同じディスク容量を節約できます。
knweiss

@knweissはい、そうです。見上げただけです!
-AndrejaKo

回答:


15

私が知っているLinuxディストリビューションには、同様の機能は組み込まれていません。Windowsよりもはるかに有用でない理由はいくつかあります。

  • 主に、Linuxディストリビューションは、重要なバグを最小限の変更で修正するためにのみ安定版リリースがアップグレードされるという点で、Microsoftよりもはるかに深刻です。たとえば、UbuntuおよびDebianでは、セキュリティアップデートのみを受信するか(-security)、セキュリティアップデートと重要なバグ修正のみを受信するか()を選択できます-updates

  • カーネルのアップグレードは、一見有益な変更が特定のハードウェア構成で問題を引き起こす可能性があるため、最もリスクの高いものです。これが、ほとんどのディストリビューションで複数のカーネルバージョンを同時にインストールできる理由です。たとえば、これを書いている時点では、Ubuntu 10.04には3つのカーネルバージョンがあります。2.6.32.21.22元のリリースから2.6.32.22.23、セキュリティ更新プログラム、および2.6.32.23.24非セキュリティ更新プログラムまであります。... 24リリースがコンピューターで問題を引き起こす場合は、... 23で再起動できます(少なくともaptitudeを使用している場合は、... 24をインストール禁止としてマークします)。

  • レジストリはありません。すべての構成データはファイル内(/etc階層内)にあり、何か問題が発生した場合は個別に簡単に復元できます。それでも、安定版リリースへの更新がのファイルに影響することはほとんどありません/etc

  • 安定版リリース以外のソースからパッケージをインストールする場合は、パッケージの古いバージョンのコピーを保持し、構成ファイルのバックアップを保持することができます。DebianおよびUbuntuでのこれに関するいくつかのヒントを以下に示します。

    • ダウンロードしたパッケージはに保存され/var/cache/apt/archivesます。ディスク領域がある場合は、新しいバージョンが動作することを確認するまで古いパッケージファイルを削除しないでください。
    • 多くのソースは古いバージョンを保持しているため、(古いバージョンを手動でダウンロードしてインストールするか、aptプリファレンスを使用して)簡単にダウングレードできます。Debianの場合、snapshot.debian.orgをご覧ください
    • バージョン管理を設定する非常に簡単な方法があります。パッケージを/etcインストールetckeeperし、コマンドでアクティブにしetckeeper initます。(私はそれを行いますが、アップグレードが何かを壊すのではなく、私の変更が何かを壊すのが心配だからではありません。)

はい、Windowsの安定性とDebian / stableの単純な比較はありません。何かが壊れたとしても(ほとんどの場合、明らかなユーザーの間違いによる)、問題をデバッグして修正するためのツールがたくさんあります。
リオリ

2
「カーネルのアップグレードは最もリスクの高いものです」-だから、Knoppixのコピーをコンピューターの隣に置いています。6ではなく
amphetamachine

また、便利な[rsnapshot](rsnapshot.org)があります。これは、rsyncに基づいたファイルシステムスナップショットユーティリティです。
パブロA

5

パッケージマネージャーは、どのファイルがどのパッケージからのものであるかを処理し、パッケージの更新またはインストールをロールバックできるため、必要ありません。


2
しかし、パッケージがリブート中に何かを壊した場合、ロールバックを実行することが難しくなる可能性があります(特にカーネルリビジョンに関連する)
warren

1
そのため、通常は以前のカーネルが保持され、grubで起動するように選択できます。
mbq

1
私は同意しない。簡単な再起動でOSアップデートxとアップデートx + 1(違いにはカーネルパッケージ以上のものが含まれる可能性があります)を切り替えることができれば非常に便利です。これはOpenSolarisで可能です。
-knweiss

安定したドライバーを見つけることを除いて、Solarisではすべてが可能です;-)
mbq

5

etckeeperのようなツールを使用してみてください。このツールは、システム全体の構成ファイルをバージョン管理リポジトリに保持するだけで、変更を簡単にロールバックして再適用できます。

しかし、正直に言うと、debian / stableシステムの更新による変更をロールバックする必要はありませんでした。手動で行った間違いを修正するために使用します。


etckeeperを使用していますが、実際には、ロールバックするよりも変更のタイムラインを表示する方が便利です(もちろん、両方の機能を取得できます)。内蔵のWebサーバのバックエンドの(例えばHG、gitの、のbzrなど)、多くの場合、最も簡単れる使用:sudo hg serve -R /etc

3

TMK、Windowsの復元機能は、レジストリといくつかの重要なディレクトリへの変更のみを元に戻します。Linuxにはこれがありません。

バックアップを使用して手動のアプローチを試すことができます。Synapticからホームディレクトリとプログラムのリストをバックアップし、それを復元ポイントとして使用します。


3

特にUbuntu(おそらくDebianも)は、更新のインストール時に古いカーネルパッケージを削除しないことに注意してください。ブートローダーを構成して、ブート時に選択するカーネルのリストを表示できます。

これにより、カーネルのみの「復元ポイント」が自動的に作成されます。これは、新しいバージョンで問題が発生した場合に以前のバージョンを選択できるためです。私の知る限り、Windowsのカーネル更新にはこのようなものはありません。(特にホームユーザーの場合、カーネルの更新が原因で起動できないシステムを診断して修正するのを手伝いたくありません。)


3

タイムシフトと呼ばれるツールがあります。(http://www.teejeetech.in/p/timeshift.html)私はそれを使用していませんが、有望に見え、ユーザーからそれについて良いことを聞きました。スナップショットは、データの重複を避けるように設計されています。そして、あいまいなウェブサイトに怖がらないでください。:)


2

Logical Volume Managerを使用してハードディスクの内容を管理する場合、スナップショットを使用してある程度これを無料で取得できます。すばらしいHOWTOを引用すると:「1つの例は、ボリュームのスナップショットを作成し、スナップショットをマウントし、そのボリューム上のファイルを変更する実験的なプログラムを試すことです。それが気に入らない場合は、スナップショットをアンマウントして削除し、元のファイルシステムをその場所にマウントします。」


Ubuntu 12.04+で推奨されるディスクパーティション分割ではLVMを使用するため、これが本当に最良の提案であることに注意してください。
ケビンフ

1

VMテクノロジーに応じて、VMを停止/一時停止/一時停止し、コアをダンプし、VMのイメージをコピーできます。失敗した場合は、元のファイルを復元してください。

論理ボリュームを直接使用している場合は、元のLVに基づいてLVMスナップショットを作成できます。アップグレードをテストし、動作する場合は元のVMでそれをやり直します(lvcreate(8)-sを参照)

または、ゴールドの古いtar(1)を使用します。ユーザースペースの完全なtarボールを作成し、ファイルを復元して、元のtarボールになかったファイルを削除します。


「VM構成に依存しないインストールと復元のアプローチはありますか」という質問から。
ベンフォークト

1

現在のところ、Linuxはそのような機能を提供していませんが、非常に便利です。

ただし、記事Unbreakable upgrades、ZFS and Aptは、LinuxベースのNexentaストレージディストリビューションのapt-clone機能について説明し、...

BFSFSと呼ばれるZFSへの応答として部分的に作成される新しいファイルシステムもあります。これはZFSの多くの利点を持ち、将来的にUbuntuなどの平均的なLinuxディストリビューションの「壊れないアップグレード」を可能にするかもしれません。

私見では、このような機能をシステムインストーラー/アップデーターに適切な方法で実装する前に、まずLinux用の使用可能なコピーオンライト(COW)ファイルシステムが必要です。

注意:NexentaはLinuxベースですが、Linuxカーネルは使用しません。OpenSolarisカーネルとZFSを使用します。


私はあなたの策略を選ぶつもりはありませんが、LinuxカーネルのないLinuxベースはちょっとした矛盾です。
シーマスコナー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.