概要

概要

状況によっては、Windows インストールをあるコンピュータから別のコンピュータに移動するのが難しい場合があることは知っています (ハード ドライブを物理的に移動する) が、Linux ではどのように動作するのでしょうか。ほとんどのドライバー モジュールは起動時に読み込まれませんか。理論的には、それほど面倒なことでしょうか。

明らかに、xorg 構成は変更され、独自の ATI ドライバーなどは再コンパイルする必要があります (おそらく)。私が考えている以上に何かあるのでしょうか?

2 台のコンピューターが同じ時代のものであると仮定します。たとえば、両方とも i7 ですが、ハードウェアがわずかに異なります。

更新:
回答ありがとうございます。これは主に私自身の好奇心からです。職場では Linux システムを稼働させていますが、最終的にはデュアル ビデオ カードを搭載できるコンピューターに移行して、2 台以上のモニターを稼働させたいと思っています。ただし、すぐには実現しません。

答え1

ソース プロセッサとターゲット プロセッサが同じアーキテクチャ (両方とも x86、両方とも x64、両方とも arm など) であると仮定すると、Linux インストールの移動または複製は非常に簡単です。

移動

移行する場合、ハードウェアの依存関係に注意する必要があります。ただし、ほとんどのユーザーは、(最近のディストリビューションではそれを必要としない傾向がありますが) ブートローダ以外では困難に遭遇することxorg.confはありません。

  • ディスク構成が異なる場合は、ブートローダーそしてファイルシステムテーブル(暗号化を使用する場合、/etc/fstabmd RAID を使用する場合)。ブートローダの場合、最も簡単な方法は、ディスクを新しいマシンに挿入し、ディストリビューションのライブ CD/USB を起動して、ブートローダ修復ツールを使用することです。/etc/crypttab/etc/mdadm.conf

    ディスクを物理的に移動するのではなくデータをコピーする場合 (たとえば、1 つまたは両方のシステムが Windows とデュアル ブートしている場合など)、パーティション全体をコピーする方が高速で簡単です ((G)Parted またはを使用dd)。

  • もしあなたがxorg.confディスプレイ関連のオプションを宣言するファイル(例えば、プロプライエタリドライバとの関連)は、ターゲットシステムに異なるグラフィックカードや異なるモニタ設定がある場合は変更する必要があります。専用ドライバー該当する場合は、移動する前にターゲット システムのグラフィック カードを確認してください。

  • 宣言した場合モジュールオプションまたはブラックリストがある場合は/etc/modprobe.d、対象システムに合わせて調整する必要がある場合があります。

クローン

インストールのクローン作成には、移動と同じハードウェア関連の問題が伴いますが、新しいマシンに新しい ID を与えるために注意すべきことがいくつかあります。

  • 編集して、新しいマシンに新しい名前を付けます。 の下でホスト名の他の出現を検索します。一般的な場所は、(127.0.0.1 のエイリアス) やその他のメール システム構成です。/etc/hostname
    /etc/etc/hosts/etc/mailname

  • 再生するSSHホストキー

  • 必要な変更を加えるネットワーク構成(静的 IP アドレスなど)。

  • RAID ボリュームの UUID を変更します (必須ではありませんが、混乱を避けるために推奨されます)。例: mdadm -U uuid

参照Ubuntuを対象としたステップバイステップのクローン作成ガイド

私の現在のデスクトップ コンピューターのインストールは、2 つの RAID-1 ミラー ディスクのうちの 1 つを取り外し、それを新しいコンピューターに移動し、既存のディスクに RAID-1 ボリュームを作成し、ミラーを再同期し、該当する場合は上記の変更を加えることによって、以前のコンピューターから複製されました。

答え2

これが質問の答えになるかどうかはわかりませんが、通常は正反対のことを行います。つまり、ユーザー フォルダーを移動してすべてを再インストールします。理論的には、すべてのカスタマイズ ファイルと個々の構成ファイルはユーザー フォルダー内にあるはずなので、実際に転送する必要があるのはそれだけです。

一部のパッケージ マネージャーには、インストールされているすべてのパッケージを一覧表示する方法があります (Debian/Ubuntu にはdpkg --list、Gentoo には/etc/worldなどがあります)。そのため、次のようにします。

  1. 新しいシステムにベースディストリビューションをインストールする
  2. 「他のコンピュータにあったすべてのパッケージをインストールする」と指示します
  3. ユーザーフォルダをコピーする

そして、最終的には機能的に同一のシステムになるはずです。

答え3

確かに、Windows ではハードドライブの内容をコピーしたり、ハードドライブを PC 間で切り替えたりするだけでは、インストールを新しい PC に移動することはほぼ不可能ですが、Linux ではこれが驚くほどうまく機能します。私は、古いハードドライブの内容を新しいハードドライブにコピーするだけで (古いハードドライブを USB 経由で接続された外部クロージャに入れ、すべてを Gparted-Live-CD の下にコピー)、Thinkpad R52 から Thinkpad T400 に切り替えました。その後は、Grub を手動で MBR に入れて起動するだけで済みました。私の場合は、すべて正常に動作しました。

Michael が言ったように、通常、新しい PC は、時間の経過とともに蓄積された不要なデータを取り除く良い機会ですが、時には、すぐに仕事に戻らなければならないこともあります。その場合は、ハードドライブの内容をコピーするだけで Linux でうまくいきます。カーネルに含まれるすべてのドライバーは、インストールしなくてもカーネルで使用できるためです。現在では、ドライバーは modprobe.conf に手動でリストされるのではなく、自動的にロードされ、xorg も自動的に構成されます。

古い PC でドライバーを手動で構成する必要がある場合 (例: RAID システム、独自のグラフィック ドライバーなど) のみ、問題が発生する可能性があります。

答え4

概要

最近、Arch Linuxのインストールを別のドライブに移動しました。小さい元のドライブよりも。

元のドライブは1つのパーティションのみを使用していたため、作業が簡素化されました。ルートパーティションとは別にブートパーティションがある場合は、答えはここにありますそれはあなたを助けるかもしれません。

手順は次のとおりです。

  1. データをバックアップします。
  2. ターゲット ドライブに ext4 ファイルシステムを含むパーティションを作成します。
  3. ソース パーティションからターゲット パーティションにすべてのデータをコピーします。
  4. インストールグラブターゲットドライブのブートローダーとして。

ヒント

始める前にヒント:接続されたデバイス(例/dev/sdb)のパスを決定し、デバイスとパーティションの状態を監視するために、私は以下を使用します。watchと組み合わせlsblk:

watch lsblk -o tran,name,model,fstype,label,mountpoints,fssize,fsavail,fsused,fsuse%

2 秒ごとに更新され、次のような出力が生成されます。

TRAN   NAME   MODEL                   FSTYPE LABEL        MOUNTPOINTS                FSSIZE FSAVAIL FSUSED FSUSE%
sata   sda    SanDisk SSD PLUS 1000GB
        ├─sda1                         ext4   VM partition /sda1                        108G     50G  53.4G    49%
        └─sda3                         ext4                /                            808G  561.3G 205.7G    25%
usb    sdb    SABRENT
        └─sdb1                         ext4   new_daedalus /run/media/me/new_daedalus  29.2G   25.3G   2.4G     8%
sata   sr0    MATSHITADVD-RAM UJ8A2

あるパーティションの内容を別のパーティションにコピーするので、多くのスペースを占める不要なデータを取り除くのが良いでしょう。ソースパーティションをチェックして、ncdu最も多くのデータを含むディレクトリを探し、可能であれば削除または移動します。

もう一つのことは、私はSATAからUSBへのアダプタを使っています。これらソースドライブとターゲットドライブをコンピューターに接続します。

詳細

データをバックアップしてあり、ターゲット ドライブが にあると仮定して/dev/sdb、詳細を見ていきましょう。

  1. ターゲット ドライブに ext4 ファイルシステムを含むパーティションを作成します。

    • Linuxパーティションを作成する(0x83と入力の中にMBR):
      sudo sfdisk /dev/sdb <<< "type=83"
      
    • 新しいパーティションにファイルシステムを作成します。
      sudo mkfs.ext4 -L new_partition /dev/sdb1
      
  2. ソース パーティションからターゲット パーティションにすべてのデータをコピーします。

    • 以下は、古いパーティションと新しいパーティションの両方がマウントされていることを前提としています。
      sudo rsync -a --hard-links --delete --progress --human-readable --stats /run/media/me/old_partition/ /run/media/me/new_partition/
      
    • 私はrsynccpここで、同じことを実現するために、 古き良き方法を使用することもできます。
      sudo cp --recursive -a /run/media/me/old_partition/* /run/media/me/new_partition/
      
  3. インストールグラブターゲットドライブのブートローダーとして:

    • 実行に必要な仮想ファイルシステムを新しいパーティションに追加しますgrub-install
      sudo mount --bind /dev /run/media/me/new_partition/dev; sudo mount --bind /proc /run/media/me/new_partition/proc
      
    • 新しいパーティションのルートを現在のルートにします。
      sudo chroot /run/media/me/new_partition/
      
    • ターゲットドライブにGRUBをインストールします(これ詳細については、こちらをご覧ください):
      grub-install /dev/sdb; grub-mkconfig -o /boot/grub/grub.cfg
      
    • +chrootまたはCtrldexit
    • 仮想ファイルシステムとパーティション自体をアンマウントします。
      sudo umount --recursive /run/media/me/new_partition
      

new_partitionこれで完了です。これで、ドライブ上にあるLinux インストールを使用できるようになります/dev/sdb

関連情報