「Archiso」の版間の差分
(→トラブルシューティング: 追加) |
(→参照: 同期) |
||
225行目: | 225行目: | ||
== 参照 == |
== 参照 == |
||
− | === ドキュメントとチュートリアル === |
||
− | * [https://projects.archlinux.org/archiso.git Archiso プロジェクトページ] |
||
− | * [https://projects.archlinux.org/archiso.git/tree/docs 公式ドキュメント] |
||
+ | * [https://gitlab.archlinux.org/archlinux/archiso Archiso プロジェクトページ] |
||
− | === カスタマイズテンプレートのサンプル === |
||
+ | * [https://gitlab.archlinux.org/archlinux/archiso/-/tree/master/docs 公式ドキュメント] |
||
− | * [http://easy.open.and.free.fr/didjix/ Archiso で作成された Arch Linux によるライブ DJ ディストリビューション] |
||
+ | * [https://lists.archlinux.org/mailman3/lists/arch-releng.lists.archlinux.org/ Arch Linux Release Engineering メーリングリスト] |
||
+ | * [ircs://irc.libera.chat/archlinux-releng #archlinux-releng — Arch Linux Release Engineering IRC channel] |
||
+ | * [https://github.com/pierres/archiso-manager archiso-manager — 公式の月次 ISO をビルドする際に用いられるツール] |
2022年9月3日 (土) 19:39時点における版
Archiso は Arch Linux のライブ CD/USB ISO イメージを構築するための 高度にカスタマイズ可能なツールです。公式のイメージは Archiso でビルドされています。レスキューシステム、Linux インストーラー、そして他のシステム用のベースとして使用できます。この Wiki 記事では、Archiso のインストールの仕方と、成果物の ISO イメージに含まれるパッケージやファイルなどを設定する方法について説明します。技術的な要求とビルドの手順は プロジェクトの公式ドキュメントを参照してください。Archiso はいくつもの Bash スクリプトで実装されており、mkarchiso コマンドがその中心です。このコマンドのオプションは mkarchiso -h で文書化されているので、ここでは説明しません。
目次
インストール
archiso パッケージか archiso-gitAUR パッケージをインストールしてください。archiso-profilesAUR パッケージには、コミュニティによって提供されている追加のプロファイルが含まれています。
カスタムプロファイルを準備する
Archiso には2つのプロファイルが付属しています。releng と baseline です。
- releng は毎月リリースされる公式インストール ISO を作成するために使われます。カスタマイズ ISO イメージを作成するためのベースとしても使用できます。
- baseline は最小限の構成であり、メディアからライブ環境を起動するために必要な最小限のパッケージのみが含まれています。
未変更のプロファイルをビルドする場合は、#ISO をビルドする までスキップしてください。archiso に同梱されているプロファイルのうちどれかをカスタマイズしたい場合は、ディレクトリ /usr/share/archiso/configs/profile-name/
を、自由な名前の書き込み可能なディレクトリへコピーしてください。例えば:
$ cp -r /usr/share/archiso/configs/releng/ archlive
カスタムプロファイルをカスタマイズ、ビルドするには以下のセクションに進んでください。
プロファイルの構造
Archiso プロファイルはISOイメージファイルの内容を定義するファイルが含まれています。プロファイルの構造は /usr/share/doc/archiso/README.profile.rst
[1] で文書化されています。
パッケージを選択する
packages.x86_64
を編集してLiveシステムにどのパッケージをインストールするかを設定してください。1行で1つのパッケージが定義されます。
カスタムローカル・リポジトリ
公式リポジトリに存在しないパッケージ (カスタムパッケージや AUR/ABS からのパッケージ) を追加するには, カスタムローカルリポジトリを作成 し、そこにパッケージを追加してください。その後、pacman.conf
にリポジトリを以下のように追加してください:
archlive/pacman.conf
... [customrepo] SigLevel = Optional TrustAll Server = file:///path/to/customrepo ...
multilibリポジトリ
multilib リポジトリからパッケージをインストールする場合は pacman.conf
の設定をアンコメントしてください。
イメージにファイルを追加
airootfs ディレクトリはライブシステムの root ディレクトリ (/
) の起点として使用されます。このディレクトリの全てのファイルがパッケージがインストールされる前に作業ディレクトリにコピーされます。
変更されたファイルやディレクトリを airootfs/
以下の目的の場所にコピーします。例えば、もし iptables スクリプトを現在のライブイメージで使用したい場合、それをこのようにコピーします。
$ cp -r /etc/iptables archlive/airootfs/etc
同様に いくつかの特別な場所にある設定ファイルは特別な注意が必要です。 不完全なディレクトリ構造は mkdir(1) で作成できます。
に設置してください。
デフォルトでは パーミッション は、ファイルは 644
ディレクトリは 755
に設定されており、全ては root ユーザーによって所有されています。他のパーミッションや所有者を設定するには、 file_permissions
連想配列を profiledef.sh
で設定してください. 詳細は README.profile.rst を確認してください。
ブートローダー
デフォルトのファイルで大抵は動作するので、触れる必要はほとんどありません。
Due to the modular nature of isolinux, you are able to use lots of addons since all *.c32 files are copied and available to you. Take a look at the official syslinux site and the archiso git repo. Using said addons, it is possible to make visually attractive and complex menus. See here.
ログインマネージャ
ブート時に X を起動させるのはログインマネージャの systemd サービスを有効化すれば出来ます。どの .service ファイルがソフトリンクを必要としているのかわからない場合、作成する iso と同じプログラムを使っていればすぐに確認することができます:
$ ls -l /etc/systemd/system/display-manager.service
そして ~/archlive/airootfs/etc/systemd/system
に同じソフトリンクを作成します。LXDM の場合:
# ln -s /usr/lib/systemd/system/lxdm.service ~/archlive/airootfs/etc/systemd/system/display-manager.service
これでライブ環境でシステムを起動した時に LXDM が有効になります。
もしくは airootfs/root/customize_airootfs.sh
で他のサービスと同じようにサービスを有効化することもできます。
起動時に自動的にグラフィカル環境が実行されるようにしたい場合 airootfs/root/customize_airootfs.sh
を編集して以下の行を:
systemctl set-default multi-user.target
次のように置き換えてください:
systemctl set-default graphical.target
自動ログインの変更
getty の自動ログインの設定は airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf
にあります。
このファイルを編集することで自動ログインするユーザーを変更することができます:
[Service] ExecStart= ExecStart=-/sbin/agetty --autologin isouser --noclear %I 38400 linux
もしくは上記の設定を削除することで自動ログインを無効化することも可能です。
ISO をビルドする
CD や USB に焼くことのできる ISO を以下のコマンドでビルドしてください:
# mkarchiso -v -w /path/to/work_dir -o /path/to/out_dir /path/to/profile/
-w
は作業ディレクトリを指定します。このオプションが指定されない場合、カレントディレクトリ内のwork
をデフォルトとして使用します。-o
は、ビルド済み ISO イメージが置かれるディレクトリを指定します。このオプションが指定されない場合、カレントディレクトリ内のout
をデフォルトとして使用します。- mkarchiso の実行時にはプロファイルファイル
profiledef.sh
は指定できず、そのファイルまでのパスのみを指定できることに注意してください (訳注: つまり、そのファイルが存在するディレクトリを指定する)。
/path/to/profile/
はカスタムプロファイルへのパスに置き換えてください。未変更のプロファイルをビルドする場合は /usr/share/archiso/configs/releng/
に置き換えてください。
スクリプトは、指定されたパッケージを work_directory/x86_64/airootfs
へダウンロード・インストールし、カーネルと init イメージを作成し、カスタマイズを適用し、最後に ISO をビルドして出力ディレクトリへ保存します。
作業ディレクトリの削除
一時ファイルが作業ディレクトリにコピーされています。ISO を正常にビルドした後であれば、作業ディレクトリとその内容を削除できます。例えば:
# rm -rf /path/to/work_dir
ISO を使う
選択肢については インストールガイド#インストールメディアの準備 を見てください。
ISO を QEMU でテストする
任意の依存パッケージである qemu-desktop と edk2-ovmf をインストールしてください。
QEMU を使ってビルド済みイメージを実行するには、run_archiso
という便利なスクリプトを使ってください:
$ run_archiso -i /path/to/archlinux-yyyy.mm.dd-x86_64.iso
仮想マシンは UEFI エミュレートを使って実行することもできます:
$ run_archiso -u -i /path/to/archlinux-yyyy.mm.dd-x86_64.iso
インターネットにアクセスできない環境でのインストール
インターネットに接続できない、パッケージを何度もダウンロードしたくないなどの理由で archiso (例: 公式の月次リリース) をインストールするときは以下を読んでください:
まず、#インターネット接続の確立などのセクションを飛ばして#ベースシステムのインストールまでインストールガイドに従ってください。
新しい root に archiso をインストール
pacstrap
でパッケージをインストールする代わりに (リモートのリポジトリからパッケージをダウンロードするわけですが今はインターネット接続がありません)、ライブ環境から新しい chroot に全てをコピーしてください:
# time 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 によって作成されたサービスの無効化と削除
ライブ環境用に作成されているサービスファイルがあるので、サービスを無効化してファイルを削除してください (新しい環境では不要であるため):
# systemctl disable 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 archlinux
システムの設定
スキップしたインストールガイド#システムの設定セクションの設定 (ロケールやタイムゾーン、ホストネームなど) を行ってインストールガイド#Initramfs に書いてあるように初期 RAM ディスクを作成してインストールを完了してください。
グラフィカルログインの有効化 (任意)
GDM などのディスプレイマネージャを使用する場合、systemd のデフォルトターゲットを multi-user.target
からグラフィカルログインができるターゲットに変更すると良いでしょう:
# systemctl disable multi-user.target # systemctl enable graphical.target
トラブルシューティング
ウィンドウマネージャがフリーズする
Live CD でウィンドウマネージャを使いたい場合、必要な正しいビデオドライバーを追加しなければなりません。さもないと、ロード中にウィンドウマネージャがフリーズする場合があります。