나는 systemd, 사용자 정의 커널, 사용자 정의 initramfs 및 사용자 정의 init 스크립트를 사용하는 젠투 시스템을 가지고 있습니다. 시스템이 작동 중입니다. 더 이상은 아닙니다. 분명히 뭔가가 달라졌을 것 같은데, 무엇인지는 모르겠습니다.
init 스크립트가 init 시스템( exec switch_root /mnt/root /var/lib/systemd/systemd
)을 시작하면 다음 오류가 발생합니다.
Welcome to Gentoo/Linux!
[!!!!!!] Failed to isolate default target, freezing.
이 오류는 무엇을 의미합니까? 문제를 해결하려면 어떻게 해야 하나요?
답변1
시스템 용어로,격리단위는 약간 특별한 형태이다.시작또는활성화이는 대부분의 경우(비록 나중에 다시 설명하겠지만) 활성화와 동일하게 취급됩니다. 부트스트랩의 systemd는 시스템이 응급 모드, 구조 모드 또는 일반 모드에서 시작되는지 여부에 따라 세 가지 대상 중 하나를 격리합니다. 처음 두 개는 첫 번째 프로세스에 전달된 커널 명령줄에서 및에 의해 지정 -b
되고 각각 및를 격리합니다. 일반 모드는 장치를 분리합니다.-s
emergency.target
rescue.target
default.target
별명( )를 사용하여 또는 systemctl set-default
와 같은 다른 특정 목표를 설정합니다 . 다른 모든 장치가 흐르는 첫 번째 장치를 분리하지 못하는 것은 상당히 심각한 오류이며, 이런 일이 발생하면 systemd는 메시지를 내보내고 정지됩니다.graphical.target
multi-user.target
분리할 수 없다는 것은 default.target
특이한 것으로, 이는 심각한 구성 오류(예: 차단된 사람 sysinit.target
) 또는 매우 특이한 설정(예: 시스템 전제 조건 중 하나 위반, 예: 와 /usr
동일한 /etc
파일 시스템 또는 적어도 와 함께 설치됨 /
)을 나타냅니다. 이를 진단하려면 앞서 언급한 비상 및 구조 모드가 추가로 필요합니다. 그냥 부팅하세요그것들일반 모드 대신 모드수동장치를 시작 default.target
하고 무슨 일이 일어났는지, 어떤 오류가 발생했는지, 로그 내용을 확인하세요. 여기서 격리와 활성화의 차이가 중요합니다. 필수아니요default.target
장치를 격리하는 과정에서 긴급/구조 모드 로그인 세션이 닫히기 때문입니다 . 필수시작그것.
좀 여유로운 시간을 갖고 있는 것 같아요.
추가 읽기
답변2
내 시스템이 부팅되지 않는 이유를 이해하기 위해 대부분 @CodyCreager의 조언을 따랐습니다. 나는 --log-level=debug
and를 추가했는데 --log-target=console
이것이 exec switch_root ...
원하는 효과를 냈습니다. systemd.journald.forward_to_console=1
커널 매개변수를 추가하는 것과 동일한 효과를 얻는 방법을 모르겠습니다 . 하지만 그렇게 하지 않고도 충분한 정보를 얻었습니다.
내 시스템이 부팅되지 않는 이유는 누구에게도 도움이 되지 않습니다. initramfs에서 사용자 지정 작업을 수행하고 systemd 설정을 사용하여 사용자 지정 작업을 수행하고 있지만 systemd는 이에 만족하지 않습니다. 특히 암호화된 파일 시스템을 사용하고 있지만 이를 알아내기 위해 시스템을 구축할 수 없습니다.