web-dev-qa-db-ja.com

システムの復元方法は?

私が直面した問題

  • 以前にコンパイルしたWifiドライバーをクラッシュさせるものをインストールしました。
  • 同じパッケージをアンインストールしても役に立ちません。
  • 最後に、wifiドライバーを再コンパイルしましたが、状況は良好です。

私の質問

ただし、Ubuntu/LinuxMintにはシステムの復元やシステムのロールバックなどがありますか?

  • undoおよびapt-get install packageコマンドを実行できるものはありますか?
16
Yugal Jindle

apt-get install packageの補数はapt-get remove packageです。関連する設定もすべて削除するには、apt-get purge packageを実行する必要があります。

これらのコマンドは、パッケージに付属のアンインストールスクリプトに依存していることに注意してください。私が知っているメインリポジトリ内のすべてのパッケージは、アンインストールの仕事を非常にうまく行っています。これは、サードパーティのパッケージには当てはまらない場合があります。

ドライバーの問題については、パッケージをインストールするとワイヤレスドライバーが破損する可能性がいくつかあります。

  • ドライバーには、条件が満たされたときに実行されるインストール後のフックがあります。カーネルの更新
  • パッケージは、ワイヤレスドライバーが依存していたファイルを上書きしました
  • 問題のパッケージはカーネルの更新でしたが、ドライバーにはドライバーを再コンパイルするためのインストール後のフックがありません(ほとんどの場合)

「システムロールバック」/「システムの復元」機能については、最も近い機能は Clonezilla のようなソフトウェアを使用したシステムイメージです。残念ながら、これは実行中のシステム内では実行できず、Live CDから実行する必要があります。

7
Lekensteyn

Linuxには、この目的のために Timeshift というソフトウェアがあります。 Timeshiftを使用すると、Linuxシステムのスナップショットを定期的に取得し、必要なときにいつでも復元できます。

このソフトウェアは、Windowsのシステムの復元機能をLinuxディストリビューションにもたらします。

公式ウェブサイトからの短い説明:

TimeShift for Linuxは、Windowsのシステムの復元機能やMac OSのTime Machineツールに似た機能を提供するアプリケーションです。 TimeShiftは、定期的にファイルシステムの増分スナップショットを取得することでシステムを保護します。これらのスナップショットを後で復元して、システムをスナップショットが作成された時点の正確な状態に戻すことができます。

スナップショットは、rsyncおよびハードリンクを使用して取得されます。共通ファイルはスナップショット間で共有され、ディスクスペースを節約します。各スナップショットはシステム全体のバックアップであり、ファイルマネージャーで参照できます。

14
Teo

実際、Ubuntuなどにはほとんどありません。これにより、変更をロールバックできます。以下の概要:

  1. /var/backups/dpkg.status.*:このディレクトリは、インストール前の最後のシステム状態のログのセットを次のように保持します。 /var/backups/dpkg.status.0は最新のログですprior状態の変化(例:パッケージのインストール/削除/更新...など); /var/backups/dpkg.status.?.gzは、圧縮されたさまざまな時点のログのアーカイブバージョンであり、毎月ローテーションされます。
  2. /var/lib/dpkg/status:これはインストール済みパッケージの現在の状態です。これを手動でバックアップするか、/etc/logrotate.dでlogrotateスクリプトを提供すると、システム状態のスナップショットがお好みに合わせてスケジュールされます。
  3. ロールバック:コーナーストーンは以前の状態/var/backups/dpkg.status.0です。以前のパッケージの状態を復元するための簡単なステップごとの手順を次に示します(briefおよびnot網羅的に注意してください)。

    a。 cp /var/backups/dpkg.status /var/lib/dpkg/status(パッケージの状態を1バージョン戻します)。

    b。 dpkg -l | grep ii(上記の手順aで取得したロールバックされた/var/lib/dpkg/statusファイルに基づいて推定インストール済みパッケージのリストが表示されます)。

    c。 dpkg -l | grep ii | awk '{print "apt-get --reinstall -y install", $2}' > /tmp/reinstall && sh /tmp/reinstall(シンプルな1行のシェルスクリプトを作成し、apt-get操作の前にシステム上にあると判断されたパッケージを再インストールするために実行します)

    d。 apt-get --reinstall install ucf(/ etc構成ファイルなどをサニタイズします)

    e。ステップcを繰り返します。必要に応じて


少しでも運が良ければ、大丈夫です。

9
user148919

Ubuntuには、Windowsの「以前の状態に復元」のような機能はありません。マシンを以前の段階に復元するために、バックアップを取る必要がありました。真剣に私もこの機能がありません。多くのツールがありますが、Windows RestoreポイントやMacs Time Machineのように機能するものはありません。 Linuxのバックアップで状況が良くなるかどうかを見てみましょう。

4
Abhijeet

上記のTimeshiftおよび/ varログとは別に、 etckeeper を使用して、/ etcディレクトリ内の構成ファイルが破壊され、復元するバックアップがないことを防ぐこともできます。 VCSを使用します。

1
pd12

btrfsには、この種のものを処理できる優れたスナップショット機能があります。データを1つのファイルシステムに、システムを別のファイルシステムに保持し、定期的(毎日?毎週?)スナップショットを使用して、問題が発生するたびにロールバックするだけです。

1
anon