オフラインインストール
関連記事
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.
ファイルをコピーする方法
新しい root に archiso をインストール
pacstrap
でパッケージをインストールする代わりに (リモートのリポジトリからパッケージをダウンロードするわけですが今はインターネット接続がありません)、ライブ環境から新しい root に全てをコピーしてください:
# cp -ax / /mnt
次に、新しいシステムの整合性を保つために、カーネルイメージを新しい root にコピーします:
# cp -vaT /run/archiso/bootmnt/arch/boot/$(uname -m)/vmlinuz /mnt/boot/vmlinuz-linux
その後、インストールガイド#fstab の生成 に書かれているとおりに fstab を生成してください。
Chroot とベースシステムの設定
次に、新しくインストールしたシステムに chroot します:
# arch-chroot /mnt /bin/bash
journald の設定の復旧
archiso のカスタマイズによってシステムのジャーナルはメモリに保存されるようになっており、そのままだと再起動でジャーナルは消えてしまいます:
# sed -i 's/Storage=volatile/#Storage=auto/' /etc/systemd/journald.conf
特殊な udev ルールの削除
この udev ルール は有線ネットワークインターフェイスが存在する場合に自動的に dhcpcd を起動します。
# rm /etc/udev/rules.d/81-dhcpcd.rules
archiso によって作成されたサービスの無効化と削除
ライブ環境用に作成されているサービスファイルがあるので、pacman-init.service
と choose-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
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 ディスクを作成してインストールを完了してください。