Como usar o systemd-firstboot.service?

11

Eu estou fazendo uma imagem do Debian Jessie. Na inicialização, o sistema não possui o arquivo /etc/machine-id . Isso causa alguns problemas com o journald que não é iniciado.

Descobri isso no repo 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

Onde ele deve ser colocado para funcionar?

No systemd 215, o ConditionFirstBoot não está disponível. Como lidar com isso?

    
por Velkan 23.10.2015 / 14:59

1 resposta

1

Estou um pouco surpreso por você não ter esse script instalado simplesmente instalando o systemd, mas (em geral) acho que a resposta é que você deve colocá-lo em /etc/systemd/system .

Nesta situação (já que você está fazendo tudo isso para tentar obter um ID de máquina, para fazer o journald funcionar), acho que posso substituir o ConditionFirstBoot por uma verificação do arquivo de seu interesse, /etc/machine-id .

Então, eu provavelmente reescreveria a seção "Unidade" como:

[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

Dito isto, se fosse possível enviar um systemd mais recente com a sua imagem (não estou bem no Debian, por isso não encontrei onde verificar qual era a versão mais recente suportada), pode valer a pena procurar em - systemd 215 tem alguns problemas que foram corrigidos desde então ( link ).

    
por 07.03.2017 / 15:11