이 문서에는 커널 패닉 오류로 인해 VM이 응답하지 않는 문제에 대한 문제 해결 정보가 포함되어 있습니다.
시작하기 전에
- Cloud Logging에서 직렬 포트 출력을 로깅하려면 Cloud Logging에 익숙해야 합니다.
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다.
로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 커널에 해당하는
initramfs
파일과 관련된 항목이grub.cfg
파일에 없습니다. initramfs
파일이 커널 설치 중/boot
디렉터리에 생성되지 않았습니다.initramfs
파일이 일부만 생성되거나 손상되었습니다.시리얼 콘솔에 연결하고 Google Cloud 콘솔에서 VM에 로그인합니다.
Google Cloud 콘솔에서 VM의 재설정을 클릭합니다.
GRUB 스플래시 화면이 표시되면 이전에 작동되던 커널 또는 구조 커널을 선택한 후 시스템을 부팅합니다. 이렇게 하면 선택한 커널로 VM이 시작됩니다.
VM에 액세스할 수 없으면 VM에 대한 SSH 연결을 시작할 수 있습니다.
문제 원인을 파악하고 그에 따라 추가 조치를 수행합니다.
예를 들어
initramfs
파일이 누락되었거나 손상되었으면 다음 단계를 수행합니다.dracut
명령어를 사용하여 원본 커널에 해당하는initramfs
파일을 생성합니다. 예를 들면 다음과 같습니다.dracut -f /boot/initramfs-3.10.0-1160.95.1.el7.x86_64.img 3.10.0-1160.95.1.el7.x86_64
grub2-mkconfig
명령어를 사용하여grub2.cfg
파일을 업데이트합니다. 예를 들면 다음과 같습니다.grub2-mkconfig -o /boot/grub2/grub.cfg
initramfs
파일이 생성된 후 오류 없이 VM을 다시 시작할 수 있습니다.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
커널 패닉
커널 패닉은 커널이 게스트 OS를 부팅하는 데 필요한
initramfs
모듈을 적절하게 로드할 수 없을 때 발생할 수 있습니다.다른 형태의 커널 패닉은 커널이 특정 요청을 처리하는 방법을 모르고 중지하여 자신을 보호하는 경우에 발생할 수 있습니다. 커널 패닉은 RedHat, SUSE, CentOS, Ubuntu를 실행하는 Compute Engine VM에서 발생할 수 있습니다.
일반적인 오류 메시지
다음은 참조할 수 있도록 가장 일반적인 커널 패닉 이벤트를 보여줍니다.
Kernel panic - not syncing: hung_task: blocked tasks
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Kernel panic - not syncing: NMI: Not continuing
Kernel panic - not syncing: out of memory. panic_on_oom is selected
Kernel panic - not syncing: Fatal Machine check
주요 원인
커널 패닉 오류는 여러 이유로 인해 발생할 수 있습니다. 일반적인 이유는 다음과 같습니다.
증상
VM 인스턴스에서 커널 패닉이 발생할 경우 일반적인 증상은 시리얼 콘솔을 사용하더라도 커널에서 VM에 연결할 수 없는 경우입니다.
게스트 OS에서 로드한 커널을 식별하려면 직렬 콘솔 로그를 확인해야 합니다. 예를 들면 다음과 같습니다.
커널 패닉 오류도 확인합니다. 이 오류는 일반적으로 VM이 시작될 때 커널 줄이나 여러 스택 호출 trace가 있는 직렬 콘솔 로그 끝에 표시됩니다.[ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0-1160.95.1.el7.x86_64 (mockbuild@x86-vm-42.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Aug 10 10:46:21 EDT 2023
다음 예시는
initramfs
문제로 인한 커널 패닉 이벤트를 보여줍니다.[ 1.520840] No filesystem could mount root, tried: [ 1.520840] [ 1.521964] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) [ 1.523495] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.10.0-1160.95.1.el7.x86_64 #1 [ 1.524932] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 [ 1.526901] Call Trace: [ 1.527421] dump_stack+0x41/0x60 [ 1.527978] panic+0xe7/0x2ac [ 1.528578] mount_block_root+0x2be/0x2e6 [ 1.529693] ? do_early_param+0x95/0x95 [ 1.530441] prepare_namespace+0x135/0x16b [ 1.531237] kernel_init_freeable+0x203/0x22d [ 1.532081] ? rest_init+0xaa/0xaa [ 1.532808] kernel_init+0xa/0x103 [ 1.533395] ret_from_fork+0x35/0x40 [ 1.535229] Kernel Offset: 0x23a00000 from 0xffffffff81000000
커널 패닉 오류 해결
커널 패닉 오류를 해결하려면 다음 단계를 수행합니다.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-11-21(UTC)
-