私はUbuntuの仮想マシン(VM)で直接作業しています。一部の更新(カーネルなど)は、更新マネージャーで入手できました。
VMを使用していない場合、何かを壊すリスクがあるため、VMを更新しません。これはVMであるため、スナップショットを作成するか、アプライアンスをエクスポートして、問題が発生した場合に復元できます。
VMをDebian/Ubuntuインストールで使用していないとします。VMの構成に依存しないインストール/復元アプローチはありますか?アップグレードの直前にシステムを復元し(Windowsの「復元ポイント」のように)、VMアプライアンス?
(「ゴーストイメージ」などを探していません(ノートンゴースト、クローンジラなど)。Linuxシステムに組み込まれているものを探しています)
私が知っている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
に保持されます。ディスク容量がある場合は、新しいバージョンが機能することを確認するまで、古いパッケージファイルを削除しないでください。/etc
のバージョン管理を設定する非常に簡単な方法があります。etckeeper
パッケージをインストールし、etckeeper init
コマンドを使用してアクティブ化します。 (私はそうしますが、アップグレードが何かを壊すことを心配しているのではなく、私の変更が何かを壊すのが心配だからです。)パッケージマネージャーは、どのファイルがどのパッケージからのものであるかを処理し、パッケージの更新またはインストールをロールバックできるため、必要ありません。
etckeeper のようなツールを使用してみてください。このツールは、システム全体の構成ファイルをバージョン管理リポジトリに保持するだけで、変更を簡単にロールバックして再度適用できます。
しかし、正直に言うと、debian/stableシステムの更新による変更をロールバックする必要はありませんでした。手動で行った間違いを修正するために使用します。
TMK、Windowsの復元機能は、レジストリと一部の重要なディレクトリへの変更を元に戻すだけです。 Linuxにはこれがありません。
あなたはバックアップで手動のアプローチを試すことができます。 Synapticからホームディレクトリとプログラムのリストをバックアップし、それを復元ポイントとして使用するだけです。
Timeshiftと呼ばれるツールがあります。 ( http://www.teejeetech.in/p/timeshift.html )使用していませんが、有望に見え、ユーザーから良いことを聞いています。スナップショットは、データの重複を回避するように設計されています。そして、あいまいに見えるウェブサイトに怖がらないでください。 :)
特にUbuntu(ただしおそらくDebianも)は更新をインストールするときに古いカーネルパッケージを削除しないことに注意してください。ブートローダーを設定して、起動時に選択するカーネルのリストを表示できます。
これにより、カーネルのみの「復元ポイント」が自動的に作成されます。これは、新しいバージョンが問題を引き起こす場合、以前のバージョンを選択できるためです。私の知る限り、Windowsのカーネルアップデートには、このようなものはありません。 (そして特にホームユーザーの場合、カーネルの更新が原因で起動できないシステムを診断して修正する手助けをしたくはありません。)
Logical Volume Manager を使用してハードディスクのコンテンツを管理する場合、スナップショットを使用してある程度無料でこれを取得できます。すばらしい引用 [〜#〜] howto [〜#〜] : "1つの例は、ボリュームのスナップショットを作成し、スナップショットをマウントして、実験的なプログラムを試すことですそのボリューム上のファイルを変更します。その動作が気に入らない場合は、スナップショットをアンマウントして削除し、元のファイルシステムをその場所にマウントできます。 "
VMテクノロジーに応じて、VMを停止/一時停止/一時停止し、コアをダンプしてVMのイメージをコピーできます。失敗した場合は、元の状態に戻します。
論理ボリュームをそのまま使用している場合は、元のLVに基づいてLVMスナップショットを作成できます。アップグレードをテストし、それが機能する場合は、元のVMでやり直します(lvcreate(8)-sを参照)。
または、ゴールドの古いtar(1)を使用します。ユーザースペースの完全なtarボールを作成し、ファイルを復元して、元のtarボールになかったファイルを削除します。
とても便利なのに、現時点ではLinuxはそのような機能を実際には提供していません。
ただし、記事 nbreakable upgrades、ZFS and Apt は、Linuxベースのapt-clone機能について説明し、Nexentaストレージの配布について提案し、...
また、BFSと呼ばれるZFSへの応答として部分的に作成される新しいファイルシステムもあります。これは、ZFSの多くの利点があり、将来的にはUbuntuのような平均的なLinuxディストリビューションでも「アンブレイカブルアップグレード」を有効にできる可能性があります。
私見では、このような機能をシステムインストーラー/アップデーターに正常に実装する前に、Linuxで使用可能な コピーオンライト(COW)ファイルシステム が最初に必要です。
注意:NexentaはLinuxベースですが、Linuxカーネルを使用しません。 OpenSolarisカーネルとZFSを使用します。