/var/run/libvirt가 존재하지 않는 이유는 무엇입니까?

/var/run/libvirt가 존재하지 않는 이유는 무엇입니까?

라는 프로그램을 사용하려고 하는데SecGen임의의 해커 취약점이 있는 가상 머신을 만듭니다. 나는 사용하지 않았다최신 저장소관련 없는 질문이 있어서 여기서는 다루지 않겠습니다. 을 실행하면 다음 ruby secgen.rb run과 같은 오류가 발생합니다.

Call to virConnectOpen failed: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory`

추가 조사 결과 파일이 존재하지 않는 것으로 나타났 /var/run/libvirt으며 파일을 실행하려고 하면 systemctl start libvirtd( 가 있든 없든 sudo) 호스트가 다운되었기 때문에 시작할 수 없다는 오류가 발생합니다.

참고할 사항: 사용 libvirt가능한 대부분 의 패키지 apt-get( libvirt-clients명령 및 . 또한 (또한 ) 및 ( Windows 10 웹 사이트를 통해)을 설치했습니다 . 대부분의 다른 파일은 파일 에 존재합니다 .libvirt-daemon-systemlibvirtdlibvirt-dbusvagrantapt-getVirtualboxapt-getlibvirt

이 질문이 모호해 보인다면 사과드립니다.많은libvirt-socket여러분 중 일부는 내 질문을 언급하고 싶어하지만 파일에서 찾을 수 없는 사람들을 제외하고는 이 주제에 대해 아무것도 찾을 수 없지만 파일이 전혀 존재하지 않기 libvirt때문에 내 문제는 약간 다릅니다 . /var/run요청하시면 필요한 정보를 제공해 드리겠습니다. 또한 WSL과 함께 Windows용 Ubuntu를 사용하고 있다는 점도 언급하고 싶습니다.

편집: 이것은 libvirtd를 시작할 때 systemctl에서 발생하는 오류입니다.System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down

답변1

데비안 정책에 따라 패키지는 필요에 따라 디렉터리를 생성해야 합니다 /run. /var/run이러한 디렉터리는 시작 시 삭제되거나 생성될 수 있기 때문입니다. (사실 우분투에서도 이런 경우가 많습니다.) 이는 프로그램 자체나 프로그램을 시작하는 스크립트를 통해 수행할 수 있습니다. 서비스가 실행되고 있지 않으면 디렉터리가 존재하지 않을 수도 있습니다.

WSL에서는 init 시스템이 시스템화되지 않습니다. 대부분의 배포판에서 systemd는 많은 서비스를 시작하고 많은 파일 시스템을 마운트하지만 둘 다 대부분의 WSL 환경에서는 유용하지 않습니다. 대신 WSL은 자체 사용자 지정 초기화 시스템을 사용하여 일부 작업을 수행합니다. 이는 WSL 시스템이 더 빠르게 시작될 수 있음을 의미합니다.

systemd와 함께 제공되는 도구는 systemd가 실행되지 않을 때 실행을 거부하는 경우가 많기 때문에 사용할 수 없습니다. service libvirtd start패키지와 함께 제공되는 init 스크립트를 사용하기 위해 호출할 수 있습니다 . 이 명령을 사용하면 몇 가지 이점이 있습니다 service. systemd가 활성화되면 systemd에 위임되고, 그렇지 않으면 init 스크립트와 함께 작동하므로 일반적으로 systemd 사용 여부에 관계없이 모든 Linux 시스템에서 실행됩니다. init 스크립트가 없을 수도 있습니다. 이 경우 서비스 파일의 구성을 확인하여 직접 시작을 처리해야 합니다.

관련 정보