ubuntu 20.04로 업그레이드 한 후 kexec 재부팅이 더 이상 펌웨어 / 하드 재부팅을 건너 뛰지 않습니다.

Nov 26 2020

(우분투 하위 사이트가 아닌 여기에 게시하는 이유는 우분투와 특별히 관련이 없다고 생각하기 때문입니다 ...)

나는 이전에 여기kexec-reboot -lr 의 매우 유용한 페이지 에서 성공적으로 사용 했습니다 .

18.04에서 20.04로 업그레이드 한 후에도이 명령을 실행하면 여전히 시스템이 재부팅되지만 이제는 커널을 다시로드하고 다시 시작하는 대신 EFI / 펌웨어로 끝까지 내려가는 '하드'재부팅을 수행합니다. 이것은 내 서버의 부팅 시간에 몇 분을 추가 하고이 호출을 사용하는 전체 포인트를 무력화시킵니다 ...)

kexec-reboot의 자세한 출력에 따라 실행되는 명령은 다음과 같습니다.

Running /sbin/kexec -l /boot/vmlinuz-5.4.0-54-generic --append='root=UUID=69a4d39e-361f-41e7-9ad3-866cb9dae202 ro intel_iommu=on' --initrd=/boot/initrd.img-5.4.0-54-generic

해당 명령을 직접 실행 (즉, kexec-reboot 편의 스크립트에서 실행하지 않음)하면 동일한 동작이 제공됩니다.

syslog와 dmesg에서 관련성있는 메시지를 확인했는데 아무것도 찾을 수 없지만 내가 볼 수있는 다양한 위치를 모두 알지 못할 수도 있습니다. verbose 플래그 외에이 문제를 해결하는 데 사용할 수있는 다른 것은 무엇입니까?

업데이트 11/26 : 위에서 설명한대로 kexec 줄을 수동으로 빌드 한 다음 실행하면 kexec -e( 여기에 설명 된대로 ) 실제로 커널을 직접 부팅합니다. kexec-reboot 코드를 살펴보면 최종 호출이라는 것을 알 수 shutdown -r now있으므로 이제 shutdown -r now이전과 다른 동작이 왜 다른지 알아 내려고합니다 .

답변

VSreekanthChintada Nov 30 2020 at 21:59

커널 5.4 이상 Linux 보안 모듈에서 잠금 기능을 활성화했습니다. 이렇게하면 kexec 재부팅 기능이 비활성화되고 하드 리셋 우회가 허용되지 않습니다. 기본적으로 잠금 기능은 5.4에서 비활성화되어 있습니다. 그러나 귀하의 경우에는 활성화되어 있지 않은지 확인하십시오. u-boot 변수 또는 커널 소스를 확인할 수 있습니다.