systemd-firstboot

提供: ArchWiki
2017年7月11日 (火) 23:12時点におけるKusakata (トーク | 投稿記録)による版 (翻訳)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

systemd-firstboot は新しく作成したシステムイメージの最初の起動時に基本的なシステムの設定を行います。設定できる項目はシステムのタイムゾーンロケールホストネームとマシン ID の自動生成です。

systemd-firstboot はファイルシステムを直接操作し、関連する systemd サービス (timedatectl, hostnamectl, localectl など) を使用しないため、既存の環境で実行するものではありません。

設定はファイルシステムイメージで外部的に使用する場合はインタラクティブでない方法で、起動の初期段階で実行する場合はインタラクティブな方法で指定することができます。

デフォルトの Arch Linux インストールでは systemd-firstboot が扱うことのできる変数の多くが設定され、pacstrap で systemd パッケージをインストールするときに使用できないスケルトンファイルの作成を容易にしています。

インストール

systemd-firstbootsystemd に含まれています。

使用例

警告: 既存の Arch Linux インスタンスで以下を実行するとシステムが破壊される可能性があります。新しい環境でのみ使うようにしてください。

新しい Arch Linux 環境の起動時にシステム設定をインタラクティブに設定

systemd-firstboot を使ってまだ起動したことがない Arch Linux を操作できることは、ノートパソコンにプリインストールされているディストリビューションなど、最終的なエンドユーザー以外のユーザーでインストールを実行するような場合に特に有用です。

以下の手順はインストールガイドシステムの設定が終わってから、パーティションをアンマウントする前に行ってください。つまり新しい環境に chroot している間に実行してください。使用したいロケールはあらかじめ生成しておいてください。未生成のロケールは使用できません。

既存の設定の削除

以下のファイルが存在する場合、systemd-firstboot は関連する設定について質問しません:

# rm /etc/{machine-id,localtime,hostname,shadow,locale.conf}

systemd-firstboot.service の修正と有効化

以下のように太字の部分を変更してください。--prompt を利用することで systemd-firstboot は全ての設定について質問を投げるようになります。[Install] セクションはサービスを有効化するブートプロセスを指定するのに必要です。

/usr/lib/systemd/system/systemd-firstboot.service
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=First Boot Wizard
Documentation=man:systemd-firstboot(1)
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-remount-fs.service
Before=systemd-sysusers.service sysinit.target shutdown.target
ConditionPathIsReadWrite=/etc
ConditionFirstBoot=yes

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/systemd-firstboot --prompt
StandardOutput=tty
StandardInput=tty
StandardError=tty

[Install]
WantedBy=sysinit.target
# systemctl enable systemd-firstboot.service

インストールの完了

インストールガイドに従ってインストールを続行してください。他に設定が不要であれば、chroot を終了して、パーティションをアンマウントしてシャットダウンしてください。次の起動時に systemd-firstboot が立ち上がります。問題なく機能するかテストしたい場合、上記のファイルを削除して再起動すれば systemd-firstboot がもう一度起動します。

参照