이 문서에는 커널 패닉 오류로 인해 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에서 로드한 커널을 식별하려면 직렬 콘솔 로그를 확인해야 합니다. 예를 들면 다음과 같습니다.
[ 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 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Aug 10 10:46:21 EDT 2023
또한 커널 패닉 오류를 확인합니다. 이 오류는 일반적으로 VM이 시작될 때 커널 줄이나 여러 스택 호출 trace가 있는 직렬 콘솔 로그 끝에 표시됩니다.다음 예시에서는
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-08-01(UTC)
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"번역 문제" },{ "type": "thumb-down", "id": "otherDown", "label":"기타" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"이해하기 쉬움" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"문제가 해결됨" },{ "type": "thumb-up", "id": "otherUp", "label":"기타" }] -