「新しいハードウェアに移行する」の版間の差分
(→ネットワークを再構成します: 翻訳修正) |
(→新しいシステムで: 翻訳を修正) |
||
(2人の利用者による、間の16版が非表示) | |||
7行目: | 7行目: | ||
{{Related articles end}} |
{{Related articles end}} |
||
− | この記事では、 Arch Linux システムを新しいハードウェアに移動するために必要な手順について説明します。目標は、ハードウェアに依存しないインストール済みソフトウェアと |
+ | この記事では、 Arch Linux システムを新しいハードウェアに移動するために必要な手順について説明します。目標は、ハードウェアに依存しないインストール済みソフトウェアと設定に関して、同じ環境を構築し実現することです。 |
{{Warning|次の手順の中には危険なものもあります。続行する前に、重要なデータをすべて古いシステムにバックアップしておくことをお勧めします。}} |
{{Warning|次の手順の中には危険なものもあります。続行する前に、重要なデータをすべて古いシステムにバックアップしておくことをお勧めします。}} |
||
14行目: | 14行目: | ||
# ''古いマシンから新しいマシンへ'' :新しいハードウェアに新しい Arch Linux システムをインストールし、インストールしたパッケージと設定ファイルを、例えば [https://wiki.archlinux.jp/index.php/%E3%83%89%E3%83%83%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB ドットファイル] で記述されているように復元します。 |
# ''古いマシンから新しいマシンへ'' :新しいハードウェアに新しい Arch Linux システムをインストールし、インストールしたパッケージと設定ファイルを、例えば [https://wiki.archlinux.jp/index.php/%E3%83%89%E3%83%83%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB ドットファイル] で記述されているように復元します。 |
||
− | # ''新しいマシンから古いマシンへ'' :古いハードドライブを新しいハードドライブにクローンするか、古いハードドライブを新しいシステムに配置します。必要に応じて |
+ | # ''新しいマシンから古いマシンへ'' :古いハードドライブを新しいハードドライブにクローンするか、古いハードドライブを新しいシステムに配置します。必要に応じて設定ファイルを変更します。 |
新しいマシンから古いマシンへのアプローチは、''古いマシンから新しいマシンへ'' のアプローチよりも元のシステムをより正確に再現します。 |
新しいマシンから古いマシンへのアプローチは、''古いマシンから新しいマシンへ'' のアプローチよりも元のシステムをより正確に再現します。 |
||
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 を使用してより新しいメインボードに切り替える場合は、"MBR ブートコード" から [[UEFI]] ブートに切り替えることが望ましいか必要な場合があります。 この場合、新しい [[EFI システムパーティション]] が必要です。 |
==古いマシンから新しいマシンへ== |
==古いマシンから新しいマシンへ== |
||
44行目: | 44行目: | ||
===古いシステムの場合=== |
===古いシステムの場合=== |
||
− | ここでは、このアプローチをインストールガイドと区別する、古いシステムから新しいシステムに引き継がれる最小限の |
+ | ここでは、このアプローチをインストールガイドと区別する、古いシステムから新しいシステムに引き継がれる最小限の設定を定義します。新しいシステムにコピーする {{ic|/etc}} の設定成ファイルと {{ic|/home}} のドットファイル、およびユーザーデータファイルについて考えてみます。新しいシステムから古いシステムにアクセスできない場合は、コピーするすべてのファイルをバックアップしてください。 |
====インストールされているパッケージのリスト==== |
====インストールされているパッケージのリスト==== |
||
51行目: | 51行目: | ||
$ pacman -Qqem > pkglist_aur.txt |
$ pacman -Qqem > pkglist_aur.txt |
||
− | リポジトリと [[AUR]] から明示的にインストールされたパッケージの |
+ | リポジトリと [[AUR]] から明示的にインストールされたパッケージの一覧が表示されます。作成する場合は、バックアップに含めてください。 |
− | + | 以下のスクリプトを使って pacman が知らないうちにインストールされたバイナリやライブラリ(例:Steam や Desura 経由、独自のインストール方法でインストールされたもの)の概要を把握することもできます。 |
|
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 コマンドはパッケージのインストール以外に追加の作業を行うため、スキップしないでください。 |
− | ====以前にインストールしたソフトウェアをインストールする==== |
+ | ==== 以前にインストールしたソフトウェアをインストールする ==== |
− | pkglist.txt (および pkglist_aur.txt |
+ | pkglist.txt (および pkglist_aur.txt) を編集し、新しいシステムで不要なドライバーを削除します。次に、以前にインストールされた他のソフトウェアをインストールします |
# pacman -S --needed - < pkglist.txt |
# pacman -S --needed - < pkglist.txt |
||
106行目: | 106行目: | ||
==== ファイルのコピー ==== |
==== ファイルのコピー ==== |
||
− | * 新しいドライブに新しい [ |
+ | * 新しいドライブに新しい [[パーティショニング|パーティション]] と [[ファイルシステム]] を作成します。この機会を利用して、以前とは異なるパーティションレイアウトやファイルシステムを選択できます。 |
− | * ファイルシステムごとに、 [[rsync]] または権限や属性などを保持するその他のツールを使用して、古いドライブから新しいドライブにファイルをコピーします。[ |
+ | * ファイルシステムごとに、 [[rsync]] または権限や属性などを保持するその他のツールを使用して、古いドライブから新しいドライブにファイルをコピーします。[[rsync#システムのフルバックアップ]]、 [[rsync#ファイルシステムのクローニング]] を参照してください。 |
==== トランスポートオプション ==== |
==== トランスポートオプション ==== |
||
123行目: | 123行目: | ||
=== fstab の更新 === |
=== fstab の更新 === |
||
+ | {{Warning| |
||
− | {{Warning|この手順を実行する前に、古いシステムでこのドライブを使用しないようにしてください。 fstab ファイルを変更すると、古い構成でシステムが起動しなくなる可能性があります。}} |
||
+ | * この手順を実行する前に、古いシステムでこのドライブを使用しないようにしてください。 fstab ファイルを変更すると、古い構成でシステムが起動しなくなる可能性があります。 |
||
+ | * [[ディスクのクローン]] を使用し、複製元のドライブと同じマシンで最近複製したドライブを使用している場合、パーティションテーブルの UUID、パーティションの UUID、およびファイルシステムの UUID がドライブ間で競合を引き起こします。複製されたドライブのこれらすべてを新しいランダム値に変更してください。GPT とそのパーティションには、[[GPT fdisk#パーティションテーブルのバックアップとリストア|sgdisk]] を使用し、ファイルシステムには [[ファイルシステム#ファイルシステムのタイプ|適切なユーザースペースユーティリティ]] を使用します。}} |
||
− | Arch Linux インストールイメージを使用している場合は、新しいルートパーティションを /mnt にマウントし、通常のインストールと同様に必要な他のパーティションをマウントします [ |
+ | Arch Linux インストールイメージを使用している場合は、新しいルートパーティションを /mnt にマウントし、通常のインストールと同様に必要な他のパーティションをマウントします [[インストールガイド#ファイルシステムのマウント|ファイルシステムのマウント]] を参照してください。 |
− | {{ic|/mnt/etc/fstab}} の最後に、{{ic|#end of old fstab}} のような任意のコメントを挿入します。 [ |
+ | {{ic|/mnt/etc/fstab}} の最後に、{{ic|#end of old fstab}} のような任意のコメントを挿入します。 [[インストールガイド#fstab の生成|fstab]] に記載されているように、新しい fstab ファイルを生成し、現在の fstab ファイルに追加します。一般に、 genfstab によって作成された fstab ファイルは必ず確認してください。この場合、コメントの前に古い fstab エントリをチェックし、それらが古くなっているか重複しているかを確認してから削除し、古いエントリが残っている場合は残しておきます。たとえば、ネットワークドライブのマウントエントリを保持できます。一般に、[[永続的なブロックデバイスの命名]] を使用することをお勧めします。 |
=== ブートローダーを再インストールします === |
=== ブートローダーを再インストールします === |
||
158行目: | 160行目: | ||
=== ネットワークを再構成します === |
=== ネットワークを再構成します === |
||
− | 古い |
+ | 古いインストールと移行されたインストールが同じネットワーク内に共存する場合は、[[ネットワーク設定#ホスト名の設定|hostnamectl]] を使用して新しいホスト名を設定します。 |
− | ホスト名の変更後に必要な |
+ | ホスト名の変更後に必要となる設定変更についても考慮してください。 |
− | * /etc/hosts |
+ | * {{ic|/etc/hosts}} |
− | *ホスト名を使用する他のアプリ:synergy、nut ( |
+ | * ホスト名を使用する他のアプリケーション: synergy、nut (network ups ツール) |
− | * {{Ic|grep -Ri 'hostname' /etc}} |
+ | * (root ユーザーとして) {{Ic|grep -Ri 'hostname' /etc}} は、更新するファイルに関するヒントを提供します。 |
− | + | ネットワークインターフェイス名は変更される可能性があり、[[ネットワーク設定#ネットワークマネージャ|ネットワークマネージャ]] の設定にハードコーディングされている場合は、その設定を更新する必要があります。次のコマンドを使用して、新しいネットワークインターフェイス名を確認します。 |
|
+ | # 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つの異なるアプローチがあります:
- 古いマシンから新しいマシンへ :新しいハードウェアに新しい 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 から明示的にインストールされたパッケージの一覧が表示されます。作成する場合は、バックアップに含めてください。
以下のスクリプトを使って 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 インストールメディア を使用できます。古いシステムのパーティションレイアウトとファイルシステムが再現されます。
ファイルのコピー
- 新しいドライブに新しい パーティション と ファイルシステム を作成します。この機会を利用して、以前とは異なるパーティションレイアウトやファイルシステムを選択できます。
- ファイルシステムごとに、 rsync または権限や属性などを保持するその他のツールを使用して、古いドライブから新しいドライブにファイルをコピーします。rsync#システムのフルバックアップ、 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 (network ups ツール)
- (root ユーザーとして)
grep -Ri 'hostname' /etc
は、更新するファイルに関するヒントを提供します。
ネットワークインターフェイス名は変更される可能性があり、ネットワークマネージャ の設定にハードコーディングされている場合は、その設定を更新する必要があります。次のコマンドを使用して、新しいネットワークインターフェイス名を確認します。
# journalctl -k --grep='renamed from eth'