วิธีการใช้ systemd-firstboot.service


11

ฉันสร้างภาพของ Debian Jessie ในการบูตระบบไม่มี/etc/machine-idไฟล์ สิ่งนี้ทำให้เกิดปัญหากับเจอร์นัลที่ไม่เริ่ม

ฉันพบว่าใน 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

ควรวางไว้ที่ไหนเพื่อให้ทำงานได้

ใน systemd 215 ConditionFirstBoot ไม่พร้อมใช้งาน วิธีจัดการกับสิ่งนั้น?

คำตอบ:


1

ผมประหลาดใจเล็กน้อยที่คุณไม่ได้มีสคริปต์นี้ในสถานที่จากเพียงแค่ติดตั้ง systemd แต่ (ทั่วไป) /etc/systemd/systemผมคิดว่าคำตอบคือว่าคุณควรจะใส่ลงใน

ในสถานการณ์เช่นนี้ (ตั้งแต่ที่คุณกำลังทำสิ่งนี้เพื่อลองและได้รับเครื่องรหัสในการสั่งซื้อเพื่อให้การทำงาน journald) ผมคิดว่าผมอาจจะเปลี่ยน ConditionFirstBoot /etc/machine-idที่มีการตรวจสอบไฟล์ที่คุณดูแลเกี่ยวกับการ

ดังนั้นฉันอาจจะเขียนส่วนของหน่วยเป็น:

[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 )


โปรดทราบว่าต้องตรวจสอบสองครั้งว่าโซลูชันที่เสนอนั้นใช้งานได้หรือไม่ เมื่อฉันเริ่มการถ่ายภาพระบบปฏิบัติการที่ควบคุมด้วยระบบ (ขึ้นอยู่กับ Debian 10, IIRC เมื่อเขายังเป็น Sid) เมื่อสองสามปีก่อนแรงกระตุ้นครั้งแรกของฉันคือลบ / etc / machine-id ก่อนถ่ายภาพท่ามกลางงานลบบุคลิกภาพอื่น ๆ ผลที่ได้ค่อนข้างน่าทึ่ง: ระบบปฏิเสธที่จะบู๊ตและเข้าสู่โหมดการกู้คืนอย่างราบเรียบ (ถ้าคุณกำลังปรับใช้ cloud vm) การแก้ไขถูกตัดทอน แต่เก็บไฟล์ ( : > /etc/machine-id) บางทีนี่อาจไม่เป็นความจริงอีกต่อไป แต่ฉันเรียนรู้ที่จะปฏิบัติกับไฟล์นี้ด้วยความเคารพและความเกรงกลัวนับตั้งแต่นั้นมา
kkm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.