「Archiso」の版間の差分
(→参照: 同期) |
(→カスタムプロファイルを準備する: 同期) |
||
33行目: | 33行目: | ||
=== プロファイルの構造 === |
=== プロファイルの構造 === |
||
− | Archiso プロファイルはISOイメージ |
+ | Archiso プロファイルは、生成される ISO イメージの内容を定義する設定ファイルが含まれています。プロファイルの構造は {{ic|/usr/share/doc/archiso/README.profile.rst}}[https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/docs/README.profile.rst] で文書化されています。 |
=== パッケージを選択する === |
=== パッケージを選択する === |
||
− | {{ic|packages.x86_64}} を編集して |
+ | {{ic|packages.x86_64}} を編集して、ライブシステムイメージにどのパッケージをインストールするかを選択してください。1行で1つのパッケージが定義されます。 |
− | ==== カスタムローカル |
+ | ==== カスタムのローカルリポジトリ ==== |
− | + | 標準の Arch リポジトリに存在しないパッケージ (カスタムパッケージや [[AUR]]/[[ABS]] からのパッケージ) を追加するには, [[カスタムローカルリポジトリ]] を設定し、そこにパッケージを追加してください。その後、{{ic|pacman.conf}} にリポジトリを以下のように追加してください: |
|
{{hc|''archlive''/pacman.conf|2= |
{{hc|''archlive''/pacman.conf|2= |
||
51行目: | 51行目: | ||
}} |
}} |
||
− | {{Note|{{ic|pacman.conf}} の順番 |
+ | {{Note|{{ic|pacman.conf}} 内での順番は重要です。カスタムリポジトリを最優先させるには、他のリポジトリエントリよりも上にそのリポジトリを配置してください。}} |
− | ==== multilib |
+ | ==== multilib のパッケージ ==== |
− | [[multilib]] リポジトリからパッケージをインストールする場合は |
+ | [[multilib]] リポジトリからパッケージをインストールする場合は、{{ic|pacman.conf}} 内にある multilib リポジトリをアンコメントしてください。 |
− | === イメージにファイルを追加 === |
+ | === イメージにファイルを追加する === |
airootfs ディレクトリはライブシステムの [[Wikipedia:Root directory|root ディレクトリ]] ({{ic|/}}) の起点として使用されます。このディレクトリの全てのファイルがパッケージがインストールされる前に作業ディレクトリにコピーされます。 |
airootfs ディレクトリはライブシステムの [[Wikipedia:Root directory|root ディレクトリ]] ({{ic|/}}) の起点として使用されます。このディレクトリの全てのファイルがパッケージがインストールされる前に作業ディレクトリにコピーされます。 |
||
− | + | カスタムのファイルやディレクトリを {{ic|airootfs/}} 下の好きな場所に配置してください。例えば、現在のシステム上の iptables スクリプトのセットをライブイメージで使用したい場合、それらを以下のようにコピーします: |
|
$ cp -r /etc/iptables ''archlive''/airootfs/etc |
$ cp -r /etc/iptables ''archlive''/airootfs/etc |
||
− | 同様に |
+ | 同様に、この階層の下のどこかに存在する特別な設定ファイルにも注意が必要です。ディレクトリ構造のかけている部分は {{man|1|mkdir}} で作成できます。 |
− | {{Tip|インストールユーザーのホームディレクトリにファイルを追加する場合、 {{ic|''archlive''/airootfs/root/}} にファイルを設置してください。 |
+ | {{Tip|インストールユーザーのホームディレクトリにファイルを追加する場合、 {{ic|''archlive''/airootfs/root/}} にファイルを設置してください。全てのユーザーのホームディレクトリに設置したい場合、それらを {{ic|''archlive''/airootfs/etc/skel/}}.}} に設置してください。 |
− | {{Note|カスタムファイルがパッケージによって提供されているファイルと衝突する場合、 |
+ | {{Note|カスタムファイルがパッケージによって提供されているファイルと衝突する場合、[[Pacnew と Pacsave ファイル#パッケージのバックアップファイル|バックアップファイル]] に指定されていない限り上書きされます。 }} |
− | デフォルトでは |
+ | デフォルトでは、ファイルの[[パーミッション]]は {{ic|644}}、ディレクトリのパーミッションは {{ic|755}} に設定されており、全て root ユーザーによって所有されています。特定のファイルやフォルダーに別のパーミッションや所有者を設定するには、 {{ic|file_permissions}} 連想配列を {{ic|profiledef.sh}} で設定してください. 詳細は [https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/docs/README.profile.rst README.profile.rst] を確認してください。 |
+ | |||
+ | === カーネル === |
||
+ | |||
+ | archiso に含まれている両プロファイルには {{Pkg|linux}} しかありませんが、ISO には他の[[カーネル]]、さらに言えば複数のカーネルをも含ませることができます。 |
||
+ | |||
+ | まず、{{ic|packages.x86_64}} を編集して、お好みのカーネルパッケージ名を記入します。''mkarchiso'' を実行すると、すべての {{ic|''work_dir''/airootfs/boot/vmlinuz-*}} と {{ic|''work_dir''/boot/initramfs-*.img}} (加えて、UEFI 起動に使われる FAT イメージ) が ISO に入ります。 |
||
+ | |||
+ | デフォルトでは、[[mkinitcpio]] プリセットはフォールバックの initramfs イメージもビルドします。ISO の場合、メインの initramfs イメージには {{ic|autodetect}} フックが含まれないので、追加のフォールバックイメージは不要になります。(スペースの節約やビルドプロセスの高速化のために) フォールバック initramfs イメージを作成しないようにするには、{{ic|''archlive''/airootfs/etc/mkinitcpio.d/''pkgbase''.preset}} 内にカスタムのプリセットを配置してください。例えば、{{Pkg|linux-lts}} の場合: |
||
+ | |||
+ | {{hc|''archlive''/airootfs/etc/mkinitcpio.d/linux-lts.preset|2= |
||
+ | PRESETS=('archiso') |
||
+ | |||
+ | ALL_kver='/boot/vmlinuz-linux-lts' |
||
+ | ALL_config='/etc/mkinitcpio.conf' |
||
+ | |||
+ | archiso_image="/boot/initramfs-linux-lts.img" |
||
+ | }} |
||
+ | |||
+ | 最後に、[[#ブートローダー|ブートローダーの設定ファイル]]を生成して、カーネルを起動可能にしてください。 |
||
=== ブートローダー === |
=== ブートローダー === |
||
+ | Archiso では、BIOS ブート用に [[syslinux]]、UEFI ブート用に [[systemd-boot]] をサポートしています。設定ファイルの構文に関する情報はそれぞれのブートローダーの記事を参照してください。 |
||
− | デフォルトのファイルで大抵は動作するので、触れる必要はほとんどありません。 |
||
+ | {{Tip|1=<nowiki></nowiki> |
||
− | 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 [http://syslinux.zytor.com/wiki/index.php/SYSLINUX official syslinux site] and the [https://projects.archlinux.org/archiso.git/tree/configs/syslinux-iso/boot-files archiso git repo]. Using said addons, it is possible to make visually attractive and complex menus. See [http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32 here]. |
||
+ | * '''releng''' プロファイルは、El Torito を使って光学ディスクに焼いた場合や、[https://wiki.syslinux.org/wiki/index.php?title=Isohybrid Isohybrid] を使ってハードディスクに書き込んだ場合は、BIOS と UEFI ブートの両方をサポートする ISO をデフォルトでビルドします。 |
||
+ | * isolinux のモジュール性により、''.c32'' ファイルがすべてコピーされ利用可能なので、多くのアドオンを利用できます。[https://wiki.syslinux.org/wiki/index.php/SYSLINUX 公式の syslinux サイト] と [https://gitlab.archlinux.org/archlinux/archiso/-/tree/master/configs/releng/syslinux archiso git リポジトリ] を参照してください。アドオンを使えば、魅力的で複雑なメニューを作ることができます。[https://wiki.syslinux.org/wiki/index.php/Comboot/menu.c32] を見てください。 |
||
+ | }} |
||
+ | mkarchiso は、[[systemd-boot]] の設定が {{ic|efiboot}} ディレクトリ内に、[[syslinux]] の設定がディレクトリ {{ic|syslinux}} と {{ic|isolinux}} 内に存在することを期待します。 |
||
− | === ログインマネージャ === |
||
− | {{Out of date|{{ic|airootfs/root/customize_airootfs.sh}}は非推奨(deprecated)になっています。替わりにpacman hooksを使用してください([https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/CHANGELOG.rst 51のCHANGELOG参照])}} |
||
− | ブート時に X を起動させるのはログインマネージャの [[systemd]] サービスを有効化すれば出来ます。どの .service ファイルがソフトリンクを必要としているのかわからない場合、作成する iso と同じプログラムを使っていればすぐに確認することができます: |
||
+ | ==== UEFI セキュアブート ==== |
||
− | $ ls -l /etc/systemd/system/display-manager.service |
||
+ | UEFI セキュアブートが有効な環境で Archiso を起動できるようにしたい場合、署名済みのブートローダーを使わねばなりません。[[セキュアブート#インストールメディアを起動する]] の指示に従うことで可能です。 |
||
− | そして {{ic|~/archlive/airootfs/etc/systemd/system}} に同じソフトリンクを作成します。LXDM の場合: |
||
+ | === systemd ユニット === |
||
− | # ln -s /usr/lib/systemd/system/lxdm.service ~/archlive/airootfs/etc/systemd/system/display-manager.service |
||
− | + | ライブ環境で systemd のサービス/ソケット/タイマーを[[有効化]]するには、{{ic|systemctl enable}} が行うように、シンボリックリンクを手動で作成する必要があります。 |
|
+ | 例えば、{{ic|gpm.service}} ({{ic|1=WantedBy=multi-user.target}} を含んでいます) を有効化するには、以下を実行してください: |
||
− | もしくは {{ic|airootfs/root/customize_airootfs.sh}} で他のサービスと同じようにサービスを有効化することもできます。 |
||
+ | $ mkdir -p ''archlive''/airootfs/etc/systemd/system/multi-user.target.wants |
||
− | 起動時に自動的にグラフィカル環境が実行されるようにしたい場合 {{ic|airootfs/root/customize_airootfs.sh}} を編集して以下の行を: |
||
+ | $ ln -s /usr/lib/systemd/system/gpm.service ''archlive''/airootfs/etc/systemd/system/multi-user.target.wants/ |
||
+ | 必要なシンボリックリンクは systemd ユニットを読めば分かります。サービスがインストール済みならば、それを[[有効化]]して systemctl の出力を観察することで、必要なシンボリックリンクを知ることができます。 |
||
− | systemctl set-default multi-user.target |
||
+ | ==== ログインマネージャ ==== |
||
− | 次のように置き換えてください: |
||
+ | ログインマネージャの [[systemd]] サービスを有効化することで、X を起動時に起動します。どの ''.service'' を有効化すべきかわからない場合、ISO のシステム上にあるものと同じプログラムを使っていればすぐに確認することができます: |
||
− | systemctl set-default graphical.target |
||
+ | $ ls -l /etc/systemd/system/display-manager.service |
||
− | === 自動ログインの変更 === |
||
+ | |||
+ | そして {{ic|''archlive''/airootfs/etc/systemd/system/}} に同じソフトリンクを作成してください。LXDM の場合: |
||
+ | |||
+ | $ ln -s /usr/lib/systemd/system/lxdm.service ''archlive''/airootfs/etc/systemd/system/display-manager.service |
||
+ | |||
+ | これでライブ環境でシステムを起動した時に LXDM が有効になります。 |
||
+ | |||
+ | ==== 自動ログインを変更する ==== |
||
getty の自動ログインの設定は {{ic|airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf}} にあります。 |
getty の自動ログインの設定は {{ic|airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf}} にあります。 |
||
109行目: | 138行目: | ||
[Service] |
[Service] |
||
ExecStart= |
ExecStart= |
||
− | ExecStart=-/sbin/agetty --autologin ''' |
+ | ExecStart=-/sbin/agetty --autologin '''''username''''' --noclear %I 38400 linux |
もしくは上記の設定を削除することで自動ログインを無効化することも可能です。 |
もしくは上記の設定を削除することで自動ログインを無効化することも可能です。 |
||
+ | |||
+ | === ユーザとパスワード === |
||
+ | |||
+ | ライブ環境で利用可能なユーザを作成するには、{{ic|''archlive''/airootfs/etc/passwd}}、{{ic|''archlive''/airootfs/etc/shadow}}、{{ic|''archlive''/airootfs/etc/group}} そして {{ic|''archlive''/airootfs/etc/gshadow}} を手動で編集しなければなりません。 |
||
+ | |||
+ | {{Note|これらのファイルが存在する場合、それらには root ユーザと root グループが含まれていなければなりません。}} |
||
+ | |||
+ | 例えば、{{ic|archie}} ユーザを追加するとします。{{man|5|passwd}} の文法に従ってそのユーザを {{ic|''archlive''/airootfs/etc/passwd}} に追加してください: |
||
+ | |||
+ | {{hc|''archlive''/airootfs/etc/passwd| |
||
+ | root:x:0:0:root:/root:/usr/bin/zsh |
||
+ | archie:x:1000:1000::/home/archie:/usr/bin/zsh |
||
+ | }} |
||
+ | |||
+ | {{ic|openssl passwd -6}} を使ってパスワードのハッシュ値を生成し、{{man|5|shadow}} の文法に従ってそのハッシュ値を {{ic|''archlive''/airootfs/etc/shadow}} に追加してください。例えば: |
||
+ | |||
+ | {{hc|''archlive''/airootfs/etc/shadow|2= |
||
+ | root::14871:::::: |
||
+ | archie:$6$randomsalt$cij4/pJREFQV/NgAgh9YyBIoCRRNq2jp5l8lbnE5aLggJnzIRmNVlogAg8N6hEEecLwXHtMQIl2NX2HlDqhCU1:14871:::::: |
||
+ | }} |
||
+ | |||
+ | {{man|5|group}} に従って、ユーザのグループと、そのユーザが所属するグループを {{ic|''archlive''/airootfs/etc/group}} に追加してください。例えば: |
||
+ | |||
+ | {{hc|''archlive''/airootfs/etc/group|2= |
||
+ | root:x:0:root |
||
+ | adm:x:4:archie |
||
+ | wheel:x:10:archie |
||
+ | uucp:x:14:archie |
||
+ | archie:x:1000: |
||
+ | }} |
||
+ | |||
+ | {{man|5|gshadow}} に従って、適切な {{ic|''archlive''/airootfs/etc/gshadow}} を作成してください: |
||
+ | |||
+ | {{hc|''archlive''/airootfs/etc/gshadow|2= |
||
+ | root:!*::root |
||
+ | archie:!*:: |
||
+ | }} |
||
+ | |||
+ | {{ic|/etc/shadow}} と {{ic|/etc/gshadow}} のパーミッションが正しいことを確認してください: |
||
+ | |||
+ | {{hc|''archlive''/profiledef.sh|2= |
||
+ | ... |
||
+ | file_permissions=( |
||
+ | ... |
||
+ | ["/etc/shadow"]="0:0:0400" |
||
+ | ["/etc/gshadow"]="0:0:0400" |
||
+ | ) |
||
+ | }} |
||
+ | |||
+ | パッケージのインストール後、''mkarchiso'' は {{ic|''archlive''/airootfs/etc/passwd}} 内にあるユーザの指定されたホームディレクトリをすべて作成し、{{ic|''work_directory''/x86_64/airootfs/etc/skel/*}} をそれらへコピーします。コピーされたファイルには適切なユーザとグループの所有権が付与されます。 |
||
+ | |||
+ | === ISO で使用されるディストリビューション名を変更する === |
||
+ | |||
+ | まず、{{ic|/etc/os-release}} ファイルを rootfs 内の etc/ フォルダにコピーしてください。そして、そのファイルを適宜編集してください。GRUB と syslinux 内部での名前も変更できます。 |
||
== ISO をビルドする == |
== ISO をビルドする == |
2022年9月3日 (土) 21:25時点における版
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
を編集して、ライブシステムイメージにどのパッケージをインストールするかを選択してください。1行で1つのパッケージが定義されます。
カスタムのローカルリポジトリ
標準の Arch リポジトリに存在しないパッケージ (カスタムパッケージや AUR/ABS からのパッケージ) を追加するには, カスタムローカルリポジトリ を設定し、そこにパッケージを追加してください。その後、pacman.conf
にリポジトリを以下のように追加してください:
archlive/pacman.conf
... [customrepo] SigLevel = Optional TrustAll Server = file:///path/to/customrepo ...
multilib のパッケージ
multilib リポジトリからパッケージをインストールする場合は、pacman.conf
内にある multilib リポジトリをアンコメントしてください。
イメージにファイルを追加する
airootfs ディレクトリはライブシステムの root ディレクトリ (/
) の起点として使用されます。このディレクトリの全てのファイルがパッケージがインストールされる前に作業ディレクトリにコピーされます。
カスタムのファイルやディレクトリを airootfs/
下の好きな場所に配置してください。例えば、現在のシステム上の iptables スクリプトのセットをライブイメージで使用したい場合、それらを以下のようにコピーします:
$ cp -r /etc/iptables archlive/airootfs/etc
同様に、この階層の下のどこかに存在する特別な設定ファイルにも注意が必要です。ディレクトリ構造のかけている部分は mkdir(1) で作成できます。
に設置してください。
デフォルトでは、ファイルのパーミッションは 644
、ディレクトリのパーミッションは 755
に設定されており、全て root ユーザーによって所有されています。特定のファイルやフォルダーに別のパーミッションや所有者を設定するには、 file_permissions
連想配列を profiledef.sh
で設定してください. 詳細は README.profile.rst を確認してください。
カーネル
archiso に含まれている両プロファイルには linux しかありませんが、ISO には他のカーネル、さらに言えば複数のカーネルをも含ませることができます。
まず、packages.x86_64
を編集して、お好みのカーネルパッケージ名を記入します。mkarchiso を実行すると、すべての work_dir/airootfs/boot/vmlinuz-*
と work_dir/boot/initramfs-*.img
(加えて、UEFI 起動に使われる FAT イメージ) が ISO に入ります。
デフォルトでは、mkinitcpio プリセットはフォールバックの initramfs イメージもビルドします。ISO の場合、メインの initramfs イメージには autodetect
フックが含まれないので、追加のフォールバックイメージは不要になります。(スペースの節約やビルドプロセスの高速化のために) フォールバック initramfs イメージを作成しないようにするには、archlive/airootfs/etc/mkinitcpio.d/pkgbase.preset
内にカスタムのプリセットを配置してください。例えば、linux-lts の場合:
archlive/airootfs/etc/mkinitcpio.d/linux-lts.preset
PRESETS=('archiso') ALL_kver='/boot/vmlinuz-linux-lts' ALL_config='/etc/mkinitcpio.conf' archiso_image="/boot/initramfs-linux-lts.img"
最後に、ブートローダーの設定ファイルを生成して、カーネルを起動可能にしてください。
ブートローダー
Archiso では、BIOS ブート用に syslinux、UEFI ブート用に systemd-boot をサポートしています。設定ファイルの構文に関する情報はそれぞれのブートローダーの記事を参照してください。
mkarchiso は、systemd-boot の設定が efiboot
ディレクトリ内に、syslinux の設定がディレクトリ syslinux
と isolinux
内に存在することを期待します。
UEFI セキュアブート
UEFI セキュアブートが有効な環境で Archiso を起動できるようにしたい場合、署名済みのブートローダーを使わねばなりません。セキュアブート#インストールメディアを起動する の指示に従うことで可能です。
systemd ユニット
ライブ環境で systemd のサービス/ソケット/タイマーを有効化するには、systemctl enable
が行うように、シンボリックリンクを手動で作成する必要があります。
例えば、gpm.service
(WantedBy=multi-user.target
を含んでいます) を有効化するには、以下を実行してください:
$ mkdir -p archlive/airootfs/etc/systemd/system/multi-user.target.wants $ ln -s /usr/lib/systemd/system/gpm.service archlive/airootfs/etc/systemd/system/multi-user.target.wants/
必要なシンボリックリンクは systemd ユニットを読めば分かります。サービスがインストール済みならば、それを有効化して systemctl の出力を観察することで、必要なシンボリックリンクを知ることができます。
ログインマネージャ
ログインマネージャの systemd サービスを有効化することで、X を起動時に起動します。どの .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 が有効になります。
自動ログインを変更する
getty の自動ログインの設定は airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf
にあります。
このファイルを編集することで自動ログインするユーザーを変更することができます:
[Service] ExecStart= ExecStart=-/sbin/agetty --autologin username --noclear %I 38400 linux
もしくは上記の設定を削除することで自動ログインを無効化することも可能です。
ユーザとパスワード
ライブ環境で利用可能なユーザを作成するには、archlive/airootfs/etc/passwd
、archlive/airootfs/etc/shadow
、archlive/airootfs/etc/group
そして archlive/airootfs/etc/gshadow
を手動で編集しなければなりません。
例えば、archie
ユーザを追加するとします。passwd(5) の文法に従ってそのユーザを archlive/airootfs/etc/passwd
に追加してください:
archlive/airootfs/etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh archie:x:1000:1000::/home/archie:/usr/bin/zsh
openssl passwd -6
を使ってパスワードのハッシュ値を生成し、shadow(5) の文法に従ってそのハッシュ値を archlive/airootfs/etc/shadow
に追加してください。例えば:
archlive/airootfs/etc/shadow
root::14871:::::: archie:$6$randomsalt$cij4/pJREFQV/NgAgh9YyBIoCRRNq2jp5l8lbnE5aLggJnzIRmNVlogAg8N6hEEecLwXHtMQIl2NX2HlDqhCU1:14871::::::
group(5) に従って、ユーザのグループと、そのユーザが所属するグループを archlive/airootfs/etc/group
に追加してください。例えば:
archlive/airootfs/etc/group
root:x:0:root adm:x:4:archie wheel:x:10:archie uucp:x:14:archie archie:x:1000:
gshadow(5) に従って、適切な archlive/airootfs/etc/gshadow
を作成してください:
archlive/airootfs/etc/gshadow
root:!*::root archie:!*::
/etc/shadow
と /etc/gshadow
のパーミッションが正しいことを確認してください:
archlive/profiledef.sh
... file_permissions=( ... ["/etc/shadow"]="0:0:0400" ["/etc/gshadow"]="0:0:0400" )
パッケージのインストール後、mkarchiso は archlive/airootfs/etc/passwd
内にあるユーザの指定されたホームディレクトリをすべて作成し、work_directory/x86_64/airootfs/etc/skel/*
をそれらへコピーします。コピーされたファイルには適切なユーザとグループの所有権が付与されます。
ISO で使用されるディストリビューション名を変更する
まず、/etc/os-release
ファイルを rootfs 内の etc/ フォルダにコピーしてください。そして、そのファイルを適宜編集してください。GRUB と syslinux 内部での名前も変更できます。
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 でウィンドウマネージャを使いたい場合、必要な正しいビデオドライバーを追加しなければなりません。さもないと、ロード中にウィンドウマネージャがフリーズする場合があります。