시스템 전문가 여러분,
나는 Cubietruck A20 시스템을 가지고 있고 Armbian 커널은 4.19.62이고 나머지 패키지는 Debian 10 Buster armhf에서 가져온 것이며 systemd는 241-7~deb10u2입니다.
부팅 microSD 카드의 마모를 방지하기 위해 USB 연결 HDD(WD5000BMVW, Western Digital Elements/My Passport(USB))에 LVM2 볼륨 그룹을 생성하고 이 VG의 LV에 여러 ext4 파일 시스템을 생성하여 저장/ var/lib, /var/log, 일부 /var/spool/*, /var/cache 등
이러한 파일 시스템은 모두 /etc/fstab에 올바르게 문서화되어 있으며 시스템 시작 시 마운트됩니다.
그러나 결과적으로 일부 서비스는 시작 전에 설치되는 이러한 파일 시스템에 종속됩니다. 부품은 바인딩9(네임드)와 오징어(squid3)입니다. 다음 재부팅 후에는 이러한 서비스가 해당 파일 시스템이 마운트되고 액세스될 때보다 일찍 시작되었음을 알았습니다.
그래서 일부 시스템 전문가에게 물었고 그들은 "'systemctl edit'을 실행하고 이러한 서비스에 .mount 종속성을 추가하세요"라고 말했습니다. 다음 내용으로 바인드9 및 오징어용 오버레이 파일을 추가했습니다.
# /etc/systemd/system/squid.service.d/override.conf
[Unit]
Requires=var-log.mount var-spool-squid3.mount
After=var-log.mount var-spool-squid3.mount
그리고
# /etc/systemd/system/bind9.service.d/override.conf
[Unit]
Requires=var-lib.mount var-cache.mount
After=var-lib.mount var-cache.mount
이는 도움이 되지 않습니다. 그렇지 않으면 질문을 하지 않을 것입니다. "systemctl list-units" 출력에서 이러한 .mount 이름을 얻었고 Requires 및 After를 개별적으로 그리고 함께 시도했음을 확인할 수 있습니다.
"journalctl -b"에서는 바인딩9 및 squid .services가 매우 일찍 시작되고 단 몇 초 후에 USB 블록 장치(sda)가 발견되고 lvm pvscan을 실행하여 LV가 활성화 및 마운트되었음을 매우 명확하게 알 수 있습니다. . 그래서 저는 bin9&squid .service를 시작하려고 할 때 이러한 .mount 유닛이 존재하지 않는다고 가정합니다.
그래서 내 질문은, 어떻게적절하게루트 FS에서 유닛 파일을 읽고 종속성별로 정렬된 지 몇 초 후에 일부 강제 부팅 시 파일 시스템이 발견될 때 이 종속성을 지정하시겠습니까?
유용한 답변에 미리 감사드립니다.