新しいコンピュータハードウェアに安全かつスムーズに移行するにはどうすればよいですか?

新しいコンピュータハードウェアに安全かつスムーズに移行するにはどうすればよいですか?

私は通常マシンAを使用し、AをファイルサーバーBにバックアップします。近いうちに何らかの理由で機械Aを失うことになります。ハードドライブが摩耗したり、雷に当たったり、一部の販売員が恥ずかしいほど古いゴミだと信じていたり、オーバークロック実験がひどく間違っていたり、「フラッシュ関連イベント」が発生しました。

コンピュータCがコンピュータAと全く異なるとしましょう。つまり、大容量記憶装置インタフェース、企業プロセッサ、画面解像度などが異なる。

災害が発生する前にコンピュータCの空のハードドライブに同じソフトウェアを簡単にインストールできるように、現在コンピュータAにインストールされているすべてのソフトウェアを一覧表示する簡単な方法はありますか?あるいは、より良い方法は、特定のマシンC用に最適化された特定のサブバージョンとともに、各ソフトウェアの最新バージョンを簡単にインストールできるようにすることです。

Bに十分なスペースがあれば、これが最も簡単なコピーのようです。すべてこれにより、BからCにコピーしたいファイルとコピーしたくないファイルを区別するための良い方法はありませんか?必要に応じて簡単に再ダウンロード(または再コンパイル)できるバイナリをコピーしたくないので、とにかくCマシンでは機能しません。それとも長期的に見ると、最初にBで簡単に使用できるシステム固有のバイナリをバックアップしない方が良いですか?ウイルスとトロイの木馬がCに渡され、再びアクティブになる可能性を減らすより良い方法はありますか?

ソフトウェアをカスタマイズしたり、まったく新しいソフトウェアを作成したりするときに調整した内容をバックアップし、新しいコンピュータに転送してインストールするのに最適な方法はありますか? cronやanacronのような仕事はありますか?

新しいコンピュータCに安全かつスムーズに切り替えるにはどうすればよいですか?

(この質問はサブ質問を拡張します。 「rsyncまたはrdiffバックアップの問題による増分システムのバックアップと回復」私はこれが特に重要だと思います。)

答え1

バージョン管理の $HOME

  • /homeディレクトリ内のすべてのエントリを定期的にバージョン管理リポジトリにコミットします。 (プログラマの$ HOMEディレクトリをコミットする前に常に "make superclean"を実行することを除いて、プログラマはバイナリ実行可能ファイルや他の簡単にマシン生成ファイルをコミットしません。)
  • マイタスクコンピュータで一意のデータを「所有」する各ユーザーに対して、マイファイルサーバーにそのユーザーの完全な$ HOMEディレクトリ(「アワビの$ HOME」)を含むバージョン管理リポジトリの種類があることを確認します。文字通りこのキーボードに触れる人は私だけですが、私にはたった一人のユーザーもいます。マルウェアに感染する可能性のある多数のゲームをインストールするのが好きな信頼できないWebブラウザ、しばしばひどいバグのあるソフトウェアを書くCプログラマー。彼がrootユーザーであるボットユーザーを誤って削除しないように、彼を砂の中に隔離します。
  • バージョン管理作業ディレクトリである $HOME ディレクトリにすべての「マイ」ファイルを保持します。
    • テキストファイル、写真、Webブラウザのブックマークファイルなど - すべてホームディレクトリにあります。
    • 別のサブディレクトリに移動する必要があるバッチスクリプトを作成する場合は、マスターコピーを自分の$ HOMEディレクトリのどこかに保存し、別のサブディレクトリからマスターコピーへのソフトリンクを作成します。
    • 別のサブディレクトリに移動する必要があるコンパイル済みソフトウェアを作成する場合は、デフォルトのソースコードとMakefileを$ HOMEディレクトリの一部のサブディレクトリに保存し、「make install」が自動的にそのディレクトリにバイナリ実行可能ファイルをインストールするようにMakefileを設定します。 。他のサブディレクトリ。
    • 一部のソフトウェアのバグを修正したら、バグ修正内容をアップストリームに渡してください。
    • 「お気に入りだがデフォルトではインストールされていないアプリ」と「通常はデフォルトではインストールされているが気に入らないアプリ」のリストを、$HOMEディレクトリのテキストファイルに保存してください。バラよりUbuntu(Linux)にインストールされているパッケージを追跡するには?またはFedora(Linux)にインストールされているパッケージを追跡するには?
  • CDまたはDVDでソフトウェアを購入する場合は、ファイルサーバーにISOイメージをバックアップし、そのイメージをワークコンピュータにインストールします。 (マイワークコンピュータには持つ光学ドライブ)。

後でA機が紛失したとき、

  • すべての基本ソフトウェアを含む私のお気に入りの今週のディストリビューションの最新バージョンをマシンCにインストールします。
  • 各ユーザーに対して最新バージョン(HEAD)のバージョン管理チェックを実行します。ただし、すべてのバイナリ実行ファイルをスキップすることは何とか(?)除外されます。これにより、特定の種類のウイルスやトロイの木馬がCに拡散するのを防ぎます。
  • 私のホームディレクトリの外に他のものを設定します。
    • 自分のアプリのリストを確認し、不要なアプリを削除してください。
    • 私のアプリのリストをチェックして、私が望む最新バージョンをインストールしてください。最新バージョンには、私が渡したバグ修正が含まれていることを願っています。 (このプロセスを自動化する方法については、上記のリンクを参照してください)
    • 私が書いているすべてのコンパイラで「make superclean」と「make install」を実行してください。
    • どういうわけか(?)バッチスクリプトが「必要な」場所を覚えて、その場所から私の/ home /ディレクトリのデフォルトソースにリンクするソフトリンクを作成します。 (これを自動化する方法はありますか?)
    • 何とか(?)cronとanacronジョブで実行したすべてを覚えてから再入力します。
    • ファイルサーバーのISOイメージからCDとして購入したソフトウェアをインストールします。
  • ...私が逃したことはまたありますか?

答え2

まず、このトピックの前のスレッドを読んでください。Linuxインストールを新しいコンピュータに移動する(同じアーキテクチャの場合)ハードウェアが異なるコンピュータ間で構成を移行するにはどうすればよいですか?。ここでは、前に取り上げていなかったいくつかのマイナーな問題について議論します。

アーキテクチャが同じコンピュータに移動していてディスクが期限切れになっていない場合は、ディスクを新しいコンピュータに移動するだけです。これは、データをより大きなディスクに移動することとは全く独立して行うことができます。ここで、「同じアーキテクチャ」とは、プロセッサアーキテクチャのタイプを意味する。現在、PCには2種類しかありません。x86-32(別名i386、ix86、IA-32、...)とx86-64(別名amd64、Intel 64、...)。特定のチップセットやプロセッサのバリエーション、ビデオデバイス、ストレージインターフェースなどはここでは重要ではありません。 (ストレージインターフェイスが互換性がない場合、またはコンピュータの1つがラップトップの場合は、アダプタを探すか、ネットワーク経由でコピーする必要があります。)

ドライブ障害(最も脆弱なコンポーネントの1つ)が発生した場合にバックアップを実行するには、次の2つのオプションがあります。

  • ディスク全体またはパーティションのビット単位のコピーを作成します。その後、直接復元したり、緊急事態が発生した場合にバックアップから実行することもできます。これが戦略である場合は、増分更新のためのファイルレベルのツールがまだ必要です。
  • ファイルをバックアップしてください。復元するには、ファイルを再インストールして復元します。

デフォルト設定は、新しいコンピュータに移動するときに変更する必要があるファイルがほとんどなく、すべてをコピーすることです。 32ビットPCから64ビットPCに移行し、64ビットオペレーティングシステムがインストールされている新しいPCを使用する場合は、オペレーティングシステム(最新のuniceを含む)を再インストールする必要があります。そうしないと、コンピュータで誤ったコンテンツが発生する可能性があります。 Windowsまたは他のオペレーティングシステムに移行されます。

使用しているすべてのコンピュータ(既存のコンピュータと新しいコンピュータ、家庭用デスクトップ、個人用ノートブックなど)にデータがあるかどうかを簡単に確認するには、そのデータがシステムレベルではなく自分のホームディレクトリにあることを確認してください。 Ubuntuまたは他の「ユーザーフレンドリー」という用語では、これはパスワードを入力する必要がないカスタマイズ方法を意味します。ただし、カスタマイズがハードウェア(画面解像度など)に大きく依存している場合は、システムレベルでカスタマイズを実行してください。

1 これは概して仮定的な内容です。今日、ほとんどのデスクトップコンピュータにはまだIDEインターフェイスがあり、1980年代後半以降のすべての一般的な内蔵ハードドライブと互換性があります。もちろん、古いコンピュータをすべてアップグレードしました。

答え3

Debianに似たLinuxを使用しているとします。

  • マシンAで定期的に実行:

    dpkg --get-selections  > /mnt/bakup/backup.pkg.lst 
    

backup.pkg.lstファイルを安全な場所に保存してください。

  • 災害が発生した場合は、Cシステム(またはA)に最小インストール(GUIなし)を実行してrootとして実行します。

    dpkg --set-selections < /mnt/floppy/backup.pkg.lst 
    apt-get update
    apt-get dselect-upgrade
    apt-get dist-upgrade
    apt-get upgrade
    

バックアップから/homeディレクトリを復元します。

答え4

仮想マシンでの生活

  • 会社のコンピューターに仮想マシンを設定します。私の実際の作業はすべてこの仮想マシンで行われます。
  • 定期的に仮想マシンを一時停止し、仮想化ディスクと仮想マシンの状態をファイルサーバーにバックアップします。 (コンピュータの使用中にバックグラウンドで全体またはほとんどを実行する方法はありますか?それで、最後のいくつかの項目をバックアップするのに十分な時間だけ一時停止できますか?)

後でA機が紛失したとき、

  • 新しいジョブシステムに便利なホストオペレーティングシステムCをインストールします。
  • タスクマシンCに仮想マシンプレーヤーをインストールします。
  • 仮想化ディスクファイルと仮想マシンステータスファイルをファイルサーバーからマシンCにコピーします。
  • 仮想マシンプレーヤーを起動して、仮想マシンの一時停止を解除します。

残念ながら、CはAが収集したすべてのウイルスとトロイの木馬を実行しています。これらの少なくとも一部を停止する方法はありますか?

関連情報