コンテンツにスキップ

「新しいハードウェアに移行する」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
構成を設定に変更
Kgx (トーク | 投稿記録)
新しいシステムで: 翻訳を修正
 
(2人の利用者による、間の12版が非表示)
7行目: 7行目:
{{Related articles end}}
{{Related articles end}}


​この記事では、 Arch Linux システムを新しいハードウェアに移動するために必要な手順について説明します。​目標は、ハードウェアに依存しないインストール済みソフトウェアと設定に関して、同じ環境を構築し実現することです。
​この記事では、 Arch Linux システムを新しいハードウェアに移動するために必要な手順について説明します。​目標は、ハードウェアに依存しないインストール済みソフトウェアと設定に関して、同じ環境を構築し実現することです。


{{Warning|次の手順の中には危険なものもあります。続行する前に、重要なデータをすべて古いシステムにバックアップしておくことをお勧めします。}}
{{Warning|次の手順の中には危険なものもあります。続行する前に、重要なデータをすべて古いシステムにバックアップしておくことをお勧めします。}}
20行目: 20行目:
== 新しいハードウェアに適応 ==
== 新しいハードウェアに適応 ==


{{Warning|どちらのアプローチでも、古いものとハードウェアの違いを考慮し、それに応じてインストールされているドライバーと設定を変更する必要があります。}}
{{Warning|どちらのアプローチでも、古いマシンハードウェアの違いを考慮し、それに応じてインストールされているドライバーと設定を変更する必要があります。}}


始める前に、新しいハードウェアの側面を調査し、違いのリストを作成します。 一般的な違いは
始める前に、新しいハードウェアの側面を調査し、違リストを作成します。 一般的な違いは


=== ハードドライブと SSD ===
=== ハードドライブと SSD ===
30行目: 30行目:
=== CPU ベンダー ===
=== CPU ベンダー ===


CPU を別のベンダーの CPU(Intel から AMD など)に切り替える場合は、[[マイクロコード]] 構成を変更してください。
CPU を別のベンダーの CPU (Intel から AMD など) に切り替える場合は、[[マイクロコード]] 設定を変更してください。


=== GPU ベンダー ===
=== GPU ベンダー ===


GPU を別のベンダーのGPUに変更した場合([https://wiki.archlinux.jp/index.php/ATI AMD] から [https://wiki.archlinux.jp/index.php/NVIDIA NVIDIA] など)、グラフィックスドライバーを変更します。
GPU を別のベンダーのGPUに変更した場合 ([https://wiki.archlinux.jp/index.php/ATI AMD] から [https://wiki.archlinux.jp/index.php/NVIDIA NVIDIA] など)、グラフィックスドライバーを変更します。


=== UEFI と MBR のブートコードの起動 ===
=== UEFI と MBR のブートコードの起動 ===


UEFI を使用してより新しいメインボードに切り替える場合は、"MBR ブートコード" ブートから [[UEFI]] ブートに切り替えることが望ましいか必要な場合があります。 この場合、新しい [https://wiki.archlinux.jp/index.php/EFI_%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3 EFIシステムパーティション] が必要です。
UEFI を使用してより新しいメインボードに切り替える場合は、"MBR ブートコード" から [[UEFI]] ブートに切り替えることが望ましいか必要な場合があります。 この場合、新しい [[EFI システムパーティション]] が必要です。


==古いマシンから新しいマシンへ==
==古いマシンから新しいマシンへ==
51行目: 51行目:
$ pacman -Qqem > pkglist_aur.txt
$ pacman -Qqem > pkglist_aur.txt


リポジトリと [[AUR]] から明示的にインストールされたパッケージの素晴らしいリストを提供します。作成する場合は、バックアップに含めてください。
リポジトリと [[AUR]] から明示的にインストールされたパッケージの一覧が表示されます。作成する場合は、バックアップに含めてください。


のスクリプトを使用し、パックマンに知られていない状態でインストールされたバイナリライブラリの概要を確認することもできます(たとえば、SteamDesuraを介してインストールするか、独自のインストール方法を使用してインストールます)
以下のスクリプトを使 pacman が知らないうちにインストールされたバイナリライブラリ(例:SteamDesura 経由、独自のインストール方法インストールされたもの)の概要を把握することもできます。


find / -regextype posix-extended -regex "/(sys|srv|proc)|.*/\.ccache/.*" -prune -o -type f \
find / -regextype posix-extended -regex "/(sys|srv|proc)|.*/\.ccache/.*" -prune -o -type f \
66行目: 66行目:
アーキテクチャを変更しない場合(たとえば、x86 から​ ​x86_64 )は、 {{ic|/var/cache/pacman/pkg/}} のバックアップを検討してください。
アーキテクチャを変更しない場合(たとえば、x86 から​ ​x86_64 )は、 {{ic|/var/cache/pacman/pkg/}} のバックアップを検討してください。


===新しいシステム===
=== 新しいシステムについて ===


====インストールガイド前半====
==== インストールガイド前半 ====


新しいシステムのインストールの基本については、[[インストールガイド]] を参照してください。 pacstrap コマンドを除いて、インストールガイドの前半に従ってください。
新しいシステムのインストールの基本については、[[インストールガイド]] を参照してください。 pacstrap コマンドを除いて、インストールガイドの前半に従ってください。


==== pacman キャッシュをコピーする====
==== pacman キャッシュをコピーする ====


{{ic|/var/cache/pacman/pkg/}} にある pacman キャッシュを古いシステムから新しいシステムに、またはバックアップから新しいシステムにコピーします。
{{ic|/var/cache/pacman/pkg/}} にある pacman キャッシュを古いシステムから新しいシステムに、またはバックアップから新しいシステムにコピーします。


====インストールガイド後半====
==== インストールガイド後半 ====


pacstrap コマンドを含インストールガイドを最後まで続行しますが、再起動しないでください。パッケージのインストール以外に追加の作業を行うため、 pacstrap コマンドをスキップしないでください。
pacstrap コマンドを含めてインストールガイドを最後まで続ますが、再起動しないでください。pacstrap コマンドはパッケージのインストール以外に追加の作業を行うため、スキップしないでください。


====以前にインストールしたソフトウェアをインストールする====
==== 以前にインストールしたソフトウェアをインストールする ====


pkglist.txt (および pkglist_aur.txt )を編集し、新しいシステムで不要なドライバーを削除します。次に、以前にインストールた他のソフトウェアを
pkglist.txt (および pkglist_aur.txt) を編集し、新しいシステムで不要なドライバーを削除します。次に、以前にインストールされた他のソフトウェアをインストールします


# pacman -S --needed - < pkglist.txt
# pacman -S --needed - < pkglist.txt
106行目: 106行目:
==== ファイルのコピー ====
==== ファイルのコピー ====


* 新しいドライブに新しい [https://wiki.archlinux.jp/index.php/%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8B%E3%83%B3%E3%82%B0 パーティション] と [[ファイルシステム]] を作成します。この機会を利用して、以前とは異なるパーティションレイアウトやファイルシステムを選択できます。
* 新しいドライブに新しい [[パーティショグ|パーティション]] と [[ファイルシステム]] を作成します。この機会を利用して、以前とは異なるパーティションレイアウトやファイルシステムを選択できます。
* ファイルシステムごとに、 [[rsync]] または権限や属性などを保持するその他のツールを使用して、古いドライブから新しいドライブにファイルをコピーします。[https://wiki.archlinux.jp/index.php/Rsync#.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.AE.E3.83.95.E3.83.AB.E3.83.90.E3.83.83.E3.82.AF.E3.82.A2.E3.83.83.E3.83.97 システムのフルバックアップ]]、 [https://wiki.archlinux.jp/index.php/Rsync#.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.AE.E3.82.AF.E3.83.AD.E3.83.BC.E3.83.8B.E3.83.B3.E3.82.B0 システムのクローニング] を参照してください。
* ファイルシステムごとに、 [[rsync]] または権限や属性などを保持するその他のツールを使用して、古いドライブから新しいドライブにファイルをコピーします。[[rsync#システムのフルバックアップ]]、 [[rsync#ファイルシステムのクローニング]] を参照してください。


==== トランスポートオプション ====
==== トランスポートオプション ====
123行目: 123行目:
=== fstab の更新 ===
=== fstab の更新 ===


{{Warning|
{{Warning|この手順を実行する前に、古いシステムでこのドライブを使用しないようにしてください。 fstab ファイルを変更すると、古い構成でシステムが起動しなくなる可能性があります。}}
* この手順を実行する前に、古いシステムでこのドライブを使用しないようにしてください。 fstab ファイルを変更すると、古い構成でシステムが起動しなくなる可能性があります。
* [[ディスクのクローン]] を使用し、複製元のドライブと同じマシンで最近複製したドライブを使用している場合、パーティションテーブルの UUID、パーティションの UUID、およびファイルシステムの UUID がドライブ間で競合を引き起こします。複製されたドライブのこれらすべてを新しいランダム値に変更してください。GPT とそのパーティションには、[[GPT fdisk#パーティションテーブルのバックアップとリストア|sgdisk]] を使用し、ファイルシステムには [[ファイルシステム#ファイルシステムのタイプ|適切なユーザースペースユーティリティ]] を使用します。}}


​Arch Linux インストールイメージを使用している場合は、新しいルートパーティションを /mnt にマウントし、通常のインストールと同様に必要な他のパーティションをマウントします [https://wiki.archlinux.jp/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89#.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.AE.E3.83.9E.E3.82.A6.E3.83.B3.E3.83.88 ファイルシステムのマウント] を参照してください。)
​Arch Linux インストールイメージを使用している場合は、新しいルートパーティションを /mnt にマウントし、通常のインストールと同様に必要な他のパーティションをマウントします [[インストールガイド#ファイルシステムのマウント|ファイルシステムのマウント]] を参照してください。


​{{ic|/mnt/etc/fstab}} の最後に、{{ic|#end of old fstab}} のような任意のコメントを挿入します。 [https://wiki.archlinux.jp/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89#fstab_.E3.81.AE.E7.94.9F.E6.88.90 fstab] に記載されているように、新しい fstab ファイルを生成し、現在の fstab ファイルに追加します。​一般に、 genfstab によって作成された fstab ファイルは必ず確認してください。​この場合、コメントの前に古い fstab エントリをチェックし、それらが古くなっているか重複しているかを確認してから削除し、古いエントリが残っている場合は残しておきます。​たとえば、ネットワークドライブのマウントエントリを保持できます。​一般に、[[永続的なブロックデバイスの命名]] を使用することをお勧めします。
​{{ic|/mnt/etc/fstab}} の最後に、{{ic|#end of old fstab}} のような任意のコメントを挿入します。 [[インストールガイド#fstab の生成|fstab]] に記載されているように、新しい fstab ファイルを生成し、現在の fstab ファイルに追加します。​一般に、 genfstab によって作成された fstab ファイルは必ず確認してください。​この場合、コメントの前に古い fstab エントリをチェックし、それらが古くなっているか重複しているかを確認してから削除し、古いエントリが残っている場合は残しておきます。​たとえば、ネットワークドライブのマウントエントリを保持できます。​一般に、[[永続的なブロックデバイスの命名]] を使用することをお勧めします。


=== ブートローダーを再インストールします ===
=== ブートローダーを再インストールします ===
158行目: 160行目:
=== ネットワークを再構成します ===
=== ネットワークを再構成します ===


古いマシンと移行されたインストールが同じネットワークに共存する場合は、[https://wiki.archlinux.jp/index.php/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A#.E3.83.9B.E3.82.B9.E3.83.88.E3.83.8D.E3.83.BC.E3.83.A0.E3.81.AE.E8.A8.AD.E5.AE.9A hostnamectl] を使用して新しいホスト名を設定します。
古いストールと移行されたインストールが同じネットワークに共存する場合は、[[ネットワーク設定#ホスト名の設定|hostnamectl]] を使用して新しいホスト名を設定します。


ホスト名の変更後に必要な構成の変更も検討してください。
ホスト名の変更後に必要る設定変更について考慮してください。


* /etc/hosts
* {{ic|/etc/hosts}}
*ホスト名を使用する他のアプリ:synergy、nut (ネットワークアップツール)
* ホスト名を使用する他のアプリケーション: synergy、nut (network ups ツール)
* {{Ic|grep -Ri 'hostname' /etc}} (root ユーザーとして)は、更新するファイルに関するヒントを提供する必要があります
* (root ユーザーとして) {{Ic|grep -Ri 'hostname' /etc}} は、更新するファイルに関するヒントを提供ます


名前付きネットワークインターフェイス[[dhcpcd]]を使用する、ネットワークインターフェイス名が変更される場合があります。
ネットワークインターフェイス名は変更される可能性があり、[[ネットワーク設定#ネットワークマネージャ|ネットワークマネージャ]] の設定にハードコーディングされている場合は、その設定更新する必要があります。次のコマンドを使用して新しいネットワークインターフェイス名を確認します。


# journalctl -k --grep='renamed from eth'
* {{ic|$ dmesg {{!}} grep 'ethから名前が変更されました'}} は、新しいインターフェイス名を見つけるのに役立つ場合があります
* remove old: [https://wiki.archlinux.jp/index.php/Systemd#.E3.83.A6.E3.83.8B.E3.83.83.E3.83.88.E3.82.92.E4.BD.BF.E3.81.86 disable] {{ic|dhcpcd@enp''X''s0.service}}
* activate new: [https://wiki.archlinux.jp/index.php/Systemd#.E3.83.A6.E3.83.8B.E3.83.83.E3.83.88.E3.82.92.E4.BD.BF.E3.81.86 enable] {{ic|dhcpcd@enp''X''s0.service}}


== 参照 ==
== 参照 ==

2023年12月27日 (水) 09:09時点における最新版

​この記事では、 Arch Linux システムを新しいハードウェアに移動するために必要な手順について説明します。​目標は、ハードウェアに依存しないインストール済みソフトウェアと設定に関して、同じ環境を構築し実現することです。

警告 次の手順の中には危険なものもあります。続行する前に、重要なデータをすべて古いシステムにバックアップしておくことをお勧めします。

​インストールの移行には、2つの異なるアプローチがあります:

  1. ​古いマシンから新しいマシンへ :新しいハードウェアに新しい Arch Linux システムをインストールし、インストールしたパッケージと設定ファイルを、例えば ドットファイル で記述されているように復元します。
  2. 新しいマシンから古いマシンへ :古いハードドライブを新しいハードドライブにクローンするか、古いハードドライブを新しいシステムに配置します。​必要に応じて設定ファイルを変更します。

​新しいマシンから古いマシンへのアプローチは、古いマシンから新しいマシンへ のアプローチよりも元のシステムをより正確に再現します。

新しいハードウェアに適応

警告 どちらのアプローチでも、古いマシンとのハードウェアの違いを考慮し、それに応じてインストールされているドライバーと設定を変更する必要があります。

始める前に、新しいハードウェアの側面を調査し、相違リストを作成します。 一般的な違いは

ハードドライブと 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 から明示的にインストールされたパッケージの一覧が表示されます。作成する場合は、バックアップに含めてください。

以下のスクリプトを使って pacman が知らないうちにインストールされたバイナリやライブラリ(例: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 インストールメディア を使用できます。古いシステムのパーティションレイアウトとファイルシステムが再現されます。

ファイルのコピー

トランスポートオプション

2つのドライブ間でデータを転送する方法には、さまざまな方法があります。

  • オリジン HDD とデスティネーション HDD を同じコンピューター (古いコンピューターまたは新しいコンピューター) に接続します。データリンク:古い HDD -> コンピューター -> 新しい HDD。
  • 外付け HDD やクラウドバックアップなどの一時ストレージデバイスを利用します。データリンク:古い HDD -> 古いコンピューター -> ストレージ -> 新しいコンピューター -> 新しい HDD。概要については、記事 システムバックアップ を参照してください。
  • rsync などを使用して、ネットワーク経由でデータを転送します。データリンク:古い HDD -> 古いコンピューター -> ネットワーク -> 新しいコンピューター -> 新しい HDD。

最初の2つのオプションについては、HDD を接続するためのアダプター (PATA -> SATA、USB-HDD-Cases など) が必要になる可能性があることを考慮し、十分に高速な接続を選択してください。

最後の2つのオプションでは、この時点では新しいハードドライブから起動できないため、新しいコンピューターでライブ Linux システムを使用する必要があります。

fstab の更新

警告
  • この手順を実行する前に、古いシステムでこのドライブを使用しないようにしてください。 fstab ファイルを変更すると、古い構成でシステムが起動しなくなる可能性があります。
  • ディスクのクローン を使用し、複製元のドライブと同じマシンで最近複製したドライブを使用している場合、パーティションテーブルの UUID、パーティションの UUID、およびファイルシステムの UUID がドライブ間で競合を引き起こします。複製されたドライブのこれらすべてを新しいランダム値に変更してください。GPT とそのパーティションには、sgdisk を使用し、ファイルシステムには 適切なユーザースペースユーティリティ を使用します。

​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 (network ups ツール)
  • (root ユーザーとして) grep -Ri 'hostname' /etc は、更新するファイルに関するヒントを提供します。

ネットワークインターフェイス名は変更される可能性があり、ネットワークマネージャ の設定にハードコーディングされている場合は、その設定を更新する必要があります。次のコマンドを使用して、新しいネットワークインターフェイス名を確認します。

# journalctl -k --grep='renamed from eth'

参照