オフラインインストール

提供: ArchWiki
2022年9月4日 (日) 14:45時点におけるAshMyzk (トーク | 投稿記録)による版 (ページの作成:「Category:ライブ Arch システム Category:Arch の入手とインストール en:Offline installation ru:Offline installation zh-hans:Offline instal…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

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.

Local Repository Method (Recommended)

Prepare local repository

Follow Pacman/Tips and tricks#Installing packages from a CD/DVD or USB stick for instructions on preparing a local repository with the necessary files on a separate host installation.

At the very least, for a functioning system, the following packages are recommended:

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

Create your custom offline repository

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

Mount and configure

Once the repository is prepared, connect the external media to the new installation, and mount it on the newly created root filesystem:

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

Edit your archiso /etc/pacman.conf and add a new section:

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

Comment out [core], [extra] and [community] so that pacman does not fail on the default repositories.

Pacstrap

You can now continue to pacstrap your locally-available packages to the new installation:

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

Chroot

In case the new system is expected to remain offline or airgapped, it should be configured to expect local repositories only.

After chrooting into your new installation, edit the new /etc/pacman.conf in the same way as previously (but without the /mnt prefix):

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

Comment out all other repositories and save. Continue configuring the new system as usual.

From now on any updates to the offline system can be made by bringing an up to date copy of the local repository, mounting it to /repo and running pacman commands as usual.

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

このセクションは削除するべきか検討が行われています。
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 ディスクを作成してインストールを完了してください。