systemd-firstboot.service를 사용하는 방법?


11

데비안 제시의 이미지를 만들고 있습니다. 부팅시 시스템에 /etc/machine-id파일 이 없습니다 . 이로 인해 시작되지 않은 저널링에 일부 문제가 발생합니다.

systemd repo에서 찾았습니다.

#  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

실행 위치에 배치해야합니까?

시스템 215에서는 ConditionFirstBoot를 사용할 수 없습니다. 어떻게 처리합니까?

답변:


1

systemd를 설치하는 것만으로이 스크립트를 사용하지 않은 것에 약간 놀랐지 만 (일반적으로) 대답은에 넣어야한다고 생각합니다 /etc/systemd/system.

이 상황에서 (저널링 작업을 수행하기 위해 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를 살펴볼 가치가 있습니다. 215에는 수정 된 몇 가지 문제가 있습니다 ( https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=systemd ).


제안 된 솔루션이 작동하는지 두 번 확인하는 참고 사항입니다. 몇 년 전에 시스템 제어 OS (IIRC 데비안 10, 그가 여전히 Sid 였을 때)를 이미징하기 시작했을 때, 첫 번째 충동은 이미징 전에 바로 다른 성격 제거 작업 중 / etc / machine-id를 삭제하는 것이 었습니다. 그 효과는 상당히 극적이었습니다. 시스템은 플랫 부팅을 거부하고 복구 모드 (클라우드 vm을 배포하는 경우 브릭)로 전환되었습니다. 수정 사항이 잘 렸지만 파일 ( : > /etc/machine-id)을 유지하십시오 . 어쩌면 이것은 더 이상 사실이 아니지만 그 이후 로이 파일을 큰 존경과 경외심으로 대하는 법을 배웠습니다.
kkm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.