新しいハードウェアに移行する
この記事では、 Arch Linux システムを新しいハードウェアに移動するために必要な手順について説明します。目標は、ハードウェアに依存しないインストール済みソフトウェアと構成に関して、同じ ArchLinux インストールを実現することです。
インストールの移行には、2つの異なるアプローチがあります:
- 古いマシンから新しいマシンへ :新しいハードウェアに新しい Arch Linux システムをインストールし、インストールしたパッケージと設定ファイルを、例えば ドットファイル で記述されているように復元します。
- 新しいマシンから古いマシンへ :古いハードドライブを新しいハードドライブにクローンするか、古いハードドライブを新しいシステムに配置します。必要に応じて構成ファイルを変更します。
上から下へのアプローチは、下から上へ のアプローチよりも元のシステムをより正確に再現します。
新しいハードウェアに適応
始める前に、新しいハードウェアの側面を調査し、違いのリストを作成します。 一般的な違いは
ハードドライブと SSD
SSD を参照してください
CPU ベンダー
CPU を別のベンダーの CPU(Intel から AMD など)に切り替える場合は、マイクロコード 構成を変更してください。
GPU ベンダー
GPU を別のベンダーのGPUに変更した場合(AMD から NVIDIA など)、グラフィックスドライバーを変更します。
UEFI と MBR のブートコードの起動
UEFI を使用してより新しいメインボードに切り替える場合は、"MBR ブートコード" ブートから UEFI ブートに切り替えることが望ましいか必要な場合があります。 この場合、新しい EFIシステムパーティション が必要です。
古いマシンから新しいマシンへ
古いシステムの場合
ここでは、このアプローチをインストールガイドと区別する、古いシステムから新しいシステムに引き継がれる最小限の構成を定義します。新しいシステムにコピーする /etc
の構成ファイルと /home
のドットファイル、およびユーザーデータファイルについて考えてみます。新しいシステムから古いシステムにアクセスできない場合は、コピーするすべてのファイルをバックアップしてください。
インストールされているパッケージのリスト
$ pacman -Qqen > pkglist.txt $ pacman -Qqem > pkglist_aur.txt
リポジトリと AUR から明示的にインストールされたパッケージの素晴らしいリストを提供します。作成する場合は、バックアップに含めてください。
次のスクリプトを使用して、パックマンに知られていない状態でインストールされたバイナリとライブラリの概要を確認することもできます(たとえば、Steam、Desuraを介してインストールするか、独自のインストール方法を使用してインストールします)。
find / -regextype posix-extended -regex "/(sys|srv|proc)|.*/\.ccache/.*" -prune -o -type f \ -exec bash -c 'file "{}" | grep -E "(32|64)-bit"' \; | \ awk -F: '{print $1}' | \ while read -r bin; \ do pacman -Qo "$bin" &>/dev/null || echo "$bin"; \ done
pacman キャッシュ
アーキテクチャを変更しない場合(たとえば、x86 から x86_64 )は、 /var/cache/pacman/pkg/
のバックアップを検討してください。
新しいシステムで
インストールガイド前半
新しいシステムのインストールの基本については、インストールガイド を参照してください。 pacstrap コマンドを除いて、インストールガイドの前半に従ってください。
pacman キャッシュをコピーする
/var/cache/pacman/pkg/
にある pacman キャッシュを古いシステムから新しいシステムに、またはバックアップから新しいシステムにコピーします。
インストールガイド後半
pacstrap コマンドを含むインストールガイドを最後まで続行しますが、再起動しないでください。パッケージのインストール以外に追加の作業を行うため、 pacstrap コマンドをスキップしないでください。
以前にインストールしたソフトウェアをインストールする
pkglist.txt (および pkglist_aur.txt )を編集し、新しいシステムで不要なドライバーを削除します。次に、以前にインストールした他のソフトウェアを
# pacman -S --needed - < pkglist.txt
新しいマシンから古いマシンへ
新しいマシンから古いマシンへのアプローチには2つのオプションがあります。システムがすでにインストールされているドライブを保持してその内容を変更するか、システムを新しいドライブにコピーすることができます。ドライブを保持し、変更してから古いシステムに戻すと、変更によって古いシステムが起動できなくなる可能性があります。
古いシステムをクリーンアップします
ファイルシステムの掃除 で説明されているように、クローンを作成する前にシステムをクリーンアップすることも価値があります。クリーンアップ後、先に進む前に、古いシステムが引き続き期待どおりに機能していることを確認してください。
システムを新しいドライブにコピーします
システムを新しいドライブにコピーするには、ディスクのクローン とファイルコピーの2つの基本的な方法があります。
ディスクのクローン作成
古い ArchLinux システムではなく、ライブ Linux システムを使用する必要があります。たとえば、Arch Linux USB インストールメディア を使用できます。古いシステムのパーティションレイアウトとファイルシステムが再現されます。
ファイルのコピー
- 新しいドライブに新しい パーティション と ファイルシステム を作成します。この機会を利用して、以前とは異なるパーティションレイアウトやファイルシステムを選択できます。
- ファイルシステムごとに、 rsync または権限や属性などを保持するその他のツールを使用して、古いドライブから新しいドライブにファイルをコピーします。システムのフルバックアップ]、 システムのクローニング を参照してください。
トランスポートオプション
2つのドライブ間でデータを転送する方法には、さまざまな方法があります。
- オリジンHDDとデスティネーションHDDを同じコンピューター(古いコンピューターまたは新しいコンピューター)に接続します。データリンク:古いHDD -> コンピューター -> 新しいHDD。
- 外付けHDDやクラウドバックアップなどの一時ストレージデバイスを利用します。データリンク:古いHDD -> 古いコンピューター -> ストレージ -> 新しいコンピューター -> 新しいHDD。概要については、記事 システムバックアップ を参照してください。
- rsync などを使用して、ネットワーク経由でデータを転送します。データリンク:古いHDD -> 古いコンピューター -> ネットワーク -> 新しいコンピューター -> 新しいHDD。
最初の2つのオプションについては、HDD を接続するためのアダプター(PATA-> SATA、USB-HDD-Cases など)が必要になる可能性があることを考慮し、十分に高速な接続を選択してください。
最後の2つのオプションでは、この時点では新しいハードドライブから起動できないため、新しいコンピューターでライブ Linux システムを使用する必要があります。
fstab の更新
Arch Linux インストールイメージを使用している場合は、新しいルートパーティションを /mnt にマウントし、通常のインストールと同様に必要な他のパーティションをマウントします ファイルシステムのマウント を参照してください。)
/mnt/etc/fstab
の最後に、#end of old fstab
のような任意のコメントを挿入します。 fstab に記載されているように、新しい fstab ファイルを生成し、現在の fstab ファイルに追加します。一般に、 genfstab によって作成された fstab ファイルは必ず確認してください。この場合、コメントの前に古い fstab エントリをチェックし、それらが古くなっているか重複しているかを確認してから削除し、古いエントリが残っている場合は残しておきます。たとえば、ネットワークドライブのマウントエントリを保持できます。一般に、永続的なブロックデバイスの命名 を使用することをお勧めします。
ブートローダーを再インストールします
次の理由により、ブートローダー を再インストールまたは再構成する必要がある場合があります。
- 異なるディスク、パーティションレイアウト、またはファイルシステム
- UEFI ブートエントリを新しいメインボード NVRAM に追加
- "MBR ブートコード" ブートから UEFI ブートへの移行
- USB からSATA/NVMe への移行
- カーネルコマンドラインの更新
- 異なる GPU の場合は、フレームバッファーモードを更新します
- マイクロコード initramfs イメージを更新します
Arch Linux ライブ環境を使用している場合は、ブートローダーを再インストールする前に、changeroot を新しいシステムにインストールします。
# arch-chroot /mnt
(再)インストールする方法については、ブートローダー の記事を参照してください。
カーネルイメージを再生成します
mkinitcpio を使用して initramfs イメージを再生成することをお勧めしますが、最初はフォールバック initramfs イメージが機能する場合があります。
オーディオを再構成します
- alsamixer volume
- 設定を保存する
ネットワークを再構成します
古いインストールと移行されたインストールが同じネットワークに共存する場合は、hostnamectl を使用して新しいホスト名を設定します。
ホスト名の変更後に必要な構成の変更も検討してください。
- /etc/hosts
- ホスト名を使用する他のアプリ:synergy、nut (ネットワークアップツール)
grep -Ri 'hostname' /etc
(root ユーザーとして)は、更新するファイルに関するヒントを提供する必要があります
名前付きネットワークインターフェイスでdhcpcdを使用すると、ネットワークインターフェイス名が変更される場合があります。
$ dmesg | grep 'ethから名前が変更されました'
は、新しいインターフェイス名を見つけるのに役立つ場合があります- remove old: disable
dhcpcd@enpXs0.service
- activate new: enable
dhcpcd@enpXs0.service