systemd-firstboot.serviceの使用方法は?


11

Debian Jessieのイメージを作成しています。起動時にシステムには/etc/machine-idファイルがありません。これにより、開始されないjournaldでいくつかの問題が発生します。

systemdリポジトリでそれを見つけました:

#  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=@rootbindir@/systemd-firstboot --prompt-locale --prompt-timezone --prompt-root-password
StandardOutput=tty
StandardInput=tty
StandardError=tty

実行するためにどこに配置する必要がありますか?

systemd 215では、ConditionFirstBootは使用できません。どのように対処しますか?

回答:


1

systemdをインストールするだけでは、このスクリプトが用意されていないことに少し驚いていますが、(一般的に)答えは、に入れるべきだと思います/etc/systemd/system

この状況では(journaldを機能させるために、これらすべてを実行してmachine-idを取得しようとしているため)、ConditionFirstBootを、関心のあるファイルのチェックで置き換えることができると思います/etc/machine-id

そのため、Unitセクションを次のように書き直します。

[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
ConditionPathExists=!/etc/machine-id

そうは言っても、より新しいsystemdをあなたのイメージで出荷することができたら(私はDebianが苦手なので、サポートされている最新バージョンが何であるかを確認する場所が見つかりませんでした)、調べてみる価値があります-systemd 215には、その後修正されたいくつかの問題がありますhttps://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=systemd)。


提案されたソリューションが機能することを2回確認するためのメモです。数年前にsystemdが制御するOS(Debian 10、IIRCに基づいて、彼がまだSidであった)のイメージングを開始したとき、私の最初の衝動は、他の人格消去タスクの中でも、イメージングの直前に/ etc / machine-idを削除しました。効果は非常に劇的でした。システムは完全に起動を拒否し、復旧モードになりました(クラウドvmを展開している場合はブリック)。修正は切り捨てられましたが、ファイルを保持します(: > /etc/machine-id)。多分これはもう真実ではないかもしれませんが、私はそれ以来、このファイルを大きな敬意とa敬をもって扱うことを学びました。
kkm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.