オフラインインストール

提供: ArchWiki
2022年9月6日 (火) 10:13時点におけるAshMyzk (トーク | 投稿記録)による版 (→‎Local Repository Method (Recommended): 同期)
ナビゲーションに移動 検索に移動

関連記事

If you wish to install the Archiso (e.g. the official monthly release) as it is without an Internet connection, or, if you do not want to download the packages you want again:

First, follow the Installation guide, skipping the Installation guide#Connect to the internet section, until the Installation guide#Install essential packages step.

There are two main methods to enable bootstrapping the new installation: preparing a local pacman repository with all the required files, and manually copying the files from the archiso. The first version is highly recommended.

ローカルリポジトリを使う方法 (推奨)

ローカルリポジトリを準備する

Pacman ヒント#パッケージを CD/DVD や USB スティックからインストールする の指示に従って、必要なファイルを含むローカルリポジトリを別のホスト環境上に準備してください。

最低限、システムを機能させるには以下のパッケージをインストールすることが推奨されます:

# pacman -Syw --cachedir . --dbpath /tmp/blankdb base base-devel linux linux-firmware systemd mkinitcpio vim

カスタムのオフラインリポジトリを作成してください:

# repo-add ./custom.db.tar.gz ./*[^sig]

マウントと設定

リポジトリの準備が済んだら、外部メディアを新しい環境に接続し、新しく作成したルートファイルシステムにメディアをマウントしてください:

# mkdir /mnt/repo
# mount /dev/sdX /mnt/repo

archiso /etc/pacman.conf を編集し、新しいセクションを追加してください:

[custom]
SigLevel = Optional
Server = file:///mnt/repo/

pacman がデフォルトのリポジトリでエラーを吐かないようにするために、[core][extra][community] のセクションをコメントアウトしてください。

Pacstrap

これで、ローカルで利用可能なパッケージを新しい環境に pacstrap することができます:

# pacstrap /mnt base base-devel linux linux-firmware mkinitcpio systemd vim

Chroot

新しいシステムがオフライン、あるいはネットワークから物理的に切り離されたままになることが予想される場合、ローカルリポジトリのみを使うように設定する必要があります。

新しい環境に chroot して、先に説明したように /etc/pacman.conf を編集してください (ただし、/mnt を除いて):

[custom]
SigLevel = Optional
Server = file:///repo/

他のすべてのリポジトリをコメントアウトし、保存してください。通常通り、新しいシステムの設定を続けてください。

これで、このオフラインのシステムのアップデートは、ローカルリポジトリの最新のコピーを持ってきて、それを /repo にマウントし、通常通り pacman のコマンドを実行することで行えます。

ファイルをコピーする方法

このセクションは削除するべきか検討が行われています。
Reason: ルートファイルシステムのイメージを ISO から展開する方法は、サポートされているインストール手段ではありません。この方法のカスタマイズは、インストール済みのシステムには適していません。 (議論: トーク:オフラインインストール#)
この記事またはセクションの正確性には問題があります。
理由: archiso からファイルをコピーするのではなく、Arch のミラーから手に入る "bootstrap" イメージを対象のディスクに直接展開することができます。archiso を変更する必要はなく、最小のシステムを手に入れることができます。 (議論: トーク:オフラインインストール#)
この記事またはセクションは情報が古くなっています。
理由: 複数のファイル (カーネル、mkinitcpio フック、設定ファイル、journald 設定ファイル、choose-mirror スクリプトなど) の名前と場所が変更されています。 (Discuss)

新しい root に archiso をインストール

pacstrap でパッケージをインストールする代わりに (リモートのリポジトリからパッケージをダウンロードするわけですが今はインターネット接続がありません)、ライブ環境から新しい root に全てをコピーしてください:

# cp -ax / /mnt
ノート: オプション (-x) を使って、新しい root にコピーしないようにいくつかの特殊なディレクトリを除外しています。

次に、新しいシステムの整合性を保つために、カーネルイメージを新しい root にコピーします:

# cp -vaT /run/archiso/bootmnt/arch/boot/$(uname -m)/vmlinuz /mnt/boot/vmlinuz-linux

その後、インストールガイド#fstab の生成 に書かれているとおりに fstab を生成してください。

Chroot とベースシステムの設定

次に、新しくインストールしたシステムに chroot します:

# arch-chroot /mnt /bin/bash
ノート: インストールガイド#システムの設定における他の設定 (ロケールやキーマップなど) を行う前に、ライブ環境の跡 (つまり、非ライブ環境に適合しない archiso のカスタマイズ) を消す必要があります。

journald の設定の復旧

archiso のカスタマイズによってシステムのジャーナルはメモリに保存されるようになっており、そのままだと再起動でジャーナルは消えてしまいます:

# sed -i 's/Storage=volatile/#Storage=auto/' /etc/systemd/journald.conf

特殊な udev ルールの削除

この記事またはセクションは情報が古くなっています。
理由: https://gitlab.archlinux.org/archlinux/archiso/commit/0d67870667ee8c2084dea2bbdf1323288e2e7457 を見ると、systemd-networkd と systemd-resolved の変更によって以下の文章を書き換える必要があります。 (Discuss)

この udev ルール は有線ネットワークインターフェイスが存在する場合に自動的に dhcpcd を起動します。

# rm /etc/udev/rules.d/81-dhcpcd.rules

archiso によって作成されたサービスの無効化と削除

ライブ環境用に作成されているサービスファイルがあるので、pacman-init.servicechoose-mirror.service無効化してファイルを削除してください (新しい環境では不要であるため):

# rm -r /etc/systemd/system/{choose-mirror.service,pacman-init.service,etc-pacman.d-gnupg.mount,getty@tty1.service.d}
# rm /etc/systemd/scripts/choose-mirror

ライブ環境の特殊なスクリプトの削除

ライブ環境には archiso スクリプトによっていくつかスクリプトがインストールされており、これらは新しい環境では必要ありません:

# rm /etc/systemd/system/getty@tty1.service.d/autologin.conf
# rm /root/{.automated_script.sh,.zlogin}
# rm /etc/mkinitcpio-archiso.conf
# rm -r /etc/initcpio
ノート: mkinitcpio-archiso.conf ファイルはもはや存在しません。追加の手順については #Initramfs の設定 を見てください。

archlinux 鍵のインポート

公式リポジトリを使うには archlinux のマスター鍵をインポートする必要があります (pacman-key#キーリングの初期化)。通常は pacstrap でインポートされますが、以下のコマンドでインポートすることもできます:

# pacman-key --init
# pacman-key --populate
ノート: エントロピーを生成して最初のステップを高速化するにはキーボードやマウスを動かす必要があります。

Initramfs の設定

archiso からファイルシステムをコピーしたので、適切な initramfs をインストールするために mkinitcpio.conf を編集する必要があります。 テキストエディタで /etc/mkinitcpio.conf を開き、唯一コメントアウトされていない HOOKS をコメントアウト/削除し、以下に置き換えてください:

# HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)

システムの設定

スキップしたインストールガイド#システムの設定セクションの設定 (ロケールやタイムゾーン、ホストネームなど) を行ってインストールガイド#Initramfs に書いてあるように初期 RAM ディスクを作成してインストールを完了してください。