状況によっては、Windows インストールをあるコンピュータから別のコンピュータに移動するのが難しい場合があることは知っています (ハード ドライブを物理的に移動する) が、Linux ではどのように動作するのでしょうか。ほとんどのドライバー モジュールは起動時に読み込まれませんか。理論的には、それほど面倒なことでしょうか。
明らかに、xorg 構成は変更され、独自の ATI ドライバーなどは再コンパイルする必要があります (おそらく)。私が考えている以上に何かあるのでしょうか?
2 台のコンピューターが同じ時代のものであると仮定します。たとえば、両方とも i7 ですが、ハードウェアがわずかに異なります。
更新:
回答ありがとうございます。これは主に私自身の好奇心からです。職場では Linux システムを稼働させていますが、最終的にはデュアル ビデオ カードを搭載できるコンピューターに移行して、2 台以上のモニターを稼働させたいと思っています。ただし、すぐには実現しません。
答え1
ソース プロセッサとターゲット プロセッサが同じアーキテクチャ (両方とも x86、両方とも x64、両方とも arm など) であると仮定すると、Linux インストールの移動または複製は非常に簡単です。
移動
移行する場合、ハードウェアの依存関係に注意する必要があります。ただし、ほとんどのユーザーは、(最近のディストリビューションではそれを必要としない傾向がありますが) ブートローダ以外では困難に遭遇することxorg.conf
はありません。
ディスク構成が異なる場合は、ブートローダーそしてファイルシステムテーブル(暗号化を使用する場合、
/etc/fstab
md 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
などがあります)。そのため、次のようにします。
- 新しいシステムにベースディストリビューションをインストールする
- 「他のコンピュータにあったすべてのパッケージをインストールする」と指示します
- ユーザーフォルダをコピーする
そして、最終的には機能的に同一のシステムになるはずです。
答え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つのパーティションのみを使用していたため、作業が簡素化されました。ルートパーティションとは別にブートパーティションがある場合は、答えはここにありますそれはあなたを助けるかもしれません。
手順は次のとおりです。
- データをバックアップします。
- ターゲット ドライブに ext4 ファイルシステムを含むパーティションを作成します。
- ソース パーティションからターゲット パーティションにすべてのデータをコピーします。
- インストールグラブターゲットドライブのブートローダーとして。
ヒント
始める前にヒント:接続されたデバイス(例/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
、詳細を見ていきましょう。
ターゲット ドライブに ext4 ファイルシステムを含むパーティションを作成します。
ソース パーティションからターゲット パーティションにすべてのデータをコピーします。
- 以下は、古いパーティションと新しいパーティションの両方がマウントされていることを前提としています。
sudo rsync -a --hard-links --delete --progress --human-readable --stats /run/media/me/old_partition/ /run/media/me/new_partition/
- 私は
rsync
cp
ここで、同じことを実現するために、 古き良き方法を使用することもできます。sudo cp --recursive -a /run/media/me/old_partition/* /run/media/me/new_partition/
- 以下は、古いパーティションと新しいパーティションの両方がマウントされていることを前提としています。
インストールグラブターゲットドライブのブートローダーとして:
- 実行に必要な仮想ファイルシステムを新しいパーティションに追加します
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
。