Systemd-firstboot.service nasıl kullanılır?


11

Debian Jessie'nin resmini yapıyorum. Önyüklemede sistemde /etc/machine-iddosya yok . Bu dergi ile başlamayan bazı sorunlara neden olur.

Bunu systemd deposunda buldum:

#  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

Nereye yerleştirilmeli ki koşsun?

215 numaralı sistemde, ConditionFirstBoot kullanılamaz. Bununla nasıl başa çıkılır?

Yanıtlar:


1

Bu betiği sadece systemd yüklemeden yerine sahip olmadığınız için biraz şaşırdım, ancak (genel olarak) cevabın içine koymanız gerektiğini düşünüyorum /etc/systemd/system.

Bu durumda (derginin çalışmasını sağlamak için bir makine kimliği almak için tüm bunları yaptığınızdan), sanırım ConditionFirstBoot'u önemsediğiniz dosya için bir kontrolle değiştirebilirim /etc/machine-id.

Bu yüzden muhtemelen Birim bölümünü şöyle yeniden yazarım:

[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

Bununla birlikte, resminizle daha yeni bir systemd göndermek mümkün olsaydı (Debian'da iyi değilim, bu yüzden en son desteklenen sürümün ne olduğunu kontrol etmek için hiçbir yer bulamadım), buna değebilir - systemd 215'ten bu yana düzeltilmiş birkaç sorun var ( https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=systemd ).


Önerilen çözümün işe yarayacağını iki kez doğrulamak için bir not. Birkaç yıl önce sistemd kontrollü OS (Debian 10, IIRC, hala Sid iken) görüntülemeye başladığımda, ilk dürtü, diğer kişilik silme görevleri arasında, görüntülemeden hemen önce / etc / machine-id'i silmekti. Etki oldukça dramatikti: sistem önyükleme yapmayı reddetti ve kurtarma moduna geçti (bir bulut vm dağıtıyorsanız bir tuğla). Düzeltme kesildi ancak dosyayı ( : > /etc/machine-id) saklayın . Belki bu artık doğru değil, ama o zamandan beri bu dosyaya büyük bir saygı ve huşu ile davranmayı öğrendim.
kkm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.