systemd-firstboot
systemd-firstboot は新しく作成したシステムイメージの最初の起動時に基本的なシステムの設定を行います。設定できる項目はシステムのタイムゾーン・ロケール・ホストネームとマシン ID の自動生成です。
systemd-firstboot はファイルシステムを直接操作し、関連する systemd サービス (timedatectl, hostnamectl, localectl など) を使用しないため、既存の環境で実行するものではありません。
設定はファイルシステムイメージで外部的に使用する場合はインタラクティブでない方法で、起動の初期段階で実行する場合はインタラクティブな方法で指定することができます。
デフォルトの Arch Linux インストールでは systemd-firstboot が扱うことのできる変数の多くが設定され、pacstrap で systemd パッケージをインストールするときに使用できないスケルトンファイルの作成を容易にしています。
目次
インストール
systemd-firstboot は systemd に含まれています。
使用例
新しい 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 がもう一度起動します。