Azure Linux Virtual Machines의 UEFI 부팅 실패 문제 해결
적용 대상: ✔️ Linux VM
참고 항목
이 문서에서 참조하는 CentOS는 Linux 배포이며 EOL(수명 종료)에 도달합니다. 사용 및 계획을 적절하게 고려하세요. 자세한 내용은 CentOS 수명 종료 지침을 참조 하세요.
Azure Marketplace의 Linux 파트너 이미지는 BIOS 1세대 부팅 및 UEFI(Unified Extensible Firmware Interface) 2세대 부팅 모두에 대해 태그가 지정되고 구성됩니다.
Azure에서 2세대 Linux VM(가상 머신)을 배포하는 경우 UEFI 부팅 오류가 발생할 수 있습니다. 이 문서에서는 UEFI 부팅 오류가 발생하는 몇 가지 시나리오에 대해 설명하고 솔루션을 제공합니다.
증상
Azure에서 2세대 Linux VM을 배포하면 부팅이 실패하고 서버에 액세스할 수 없습니다.
UEFI 부팅 오류 식별
Azure 부팅 진단을 사용하여 VM의 현재 상태를 확인합니다.
부팅 진단 스크린샷은 다음 오류 메시지를 보여줍니다.
오류 1
Virtual Machine 부팅 요약
- 알 수 없는 디바이스
부팅 로더가 운영 체제를 로드하지 않았습니다. - SCSI 디스크(0,0)
부팅 로더가 운영 체제를 로드하지 않았습니다. - SCSI 디스크(0,1)
부팅 로더가 운영 체제를 로드하지 않았습니다. - 네트워크 어댑터(000D3A4DD64D)
부팅 이미지를 찾을 수 없습니다.
운영 체제가 로드되지 않았습니다. 가상 머신이 잘못 구성되었을 수 있습니다. VM을 종료하고 다시 구성하거나 다시 시작을 클릭하여 현재 부팅 시퀀스를 다시 시도합니다.
- 알 수 없는 디바이스
오류 2
IPv4를 통해 PXE 시작
문제 해결 전
시나리오 1에 필요한 오프라인 VM 복구를 수행하려면 부팅 이미지의 UEFI 파티션이 누락 되고 시나리오 2: 부팅 이미지의 UEFI 파티션이 손상되었는지 확인합니다. Azure CLI 또는 Azure Cloud Shell에 액세스할 수 있는지 확인합니다.
시나리오 1: 부팅 이미지의 UEFI 파티션이 없습니다.
UEFI 부팅 로더 파티션이 없거나 삭제되면 2세대 Linux VM이 부팅되지 않습니다.
이 문제를 해결하려면 다음 단계를 따릅니다.
az vm repair create 명령을 사용하여 복구 VM을 만듭니다. 복구 VM에는 비기능 VM에 대한 OS 디스크 복사본이 연결됩니다. 자세한 내용은 Azure Virtual Machine 복구 명령을 사용하여 Linux VM 복구를 참조하세요.
다음 명령을 사용하여 파티션을 다시 만듭니다.
root@repair-centos7:~# gdisk /dev/sdc GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): p Disk /dev/sdc: 134217728 sectors, 64.0 GiB Model: Virtual Disk Sector size (logical/physical): 512/4096 bytes Disk identifier (GUID): <Disk GUID> Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 134217694 Partitions will be aligned on 2048-sector boundaries Total free space is 1019837 sectors (498.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 3123199 1024.0 MiB 0700 2 3123200 134215679 62.5 GiB 8E00 14 2048 10239 4.0 MiB EF02 Command (? for help): n Partition number (3-128, default 3): First sector (34-134217694, default = 10240) or {+-}size{KMGTP}: 10240 Last sector (10240-1026047, default = 1026047) or {+-}size{KMGTP}: 1026047 Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): ef00 Changed type of partition to 'EFI System' Command (? for help): p Disk /dev/sdc: 134217728 sectors, 64.0 GiB Model: Virtual Disk Sector size (logical/physical): 512/4096 bytes Disk identifier (GUID): <Disk GUID> Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 134217694 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 3123199 1024.0 MiB 0700 2 3123200 134215679 62.5 GiB 8E00 3 10240 1026047 496.0 MiB EF00 EFI System 14 2048 10239 4.0 MiB EF02 Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdc. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) The operation has completed successfully.
Important
- OS(운영 체제) 디스크 디바이스의 해당 복사본으로 바꿉
/dev/sdc
니다. - 섹터 시작 및 끝점이 올바른 경우 파티션 번호 선택은 중요하지 않습니다. OS에서 누락된 섹터를 확인할 수 있기 때문에 올바른 섹터 시작 및 끝점이 선택됩니다.
- 끝 섹터가 디스크 내의 다른 파티션에서 차지하지 않는지 확인합니다. 여기에서 기본값을 선택하는 것으로 충분합니다.
Azure Linux 파트너 이미지에는 다음과 같은 파티션 번호, 섹터 시작점 및 섹터 엔드포인트가 있습니다.
Linux OS 배포 EFI 파티션 번호 섹터 시작 섹터 끝 CentOS 7 15 10240 1024000 CentOS 8 15 10240 1024000 Debian 10 15 8192 262143 Debian 11 15 8192 262143 RHEL 7 1 2048 1026047 RHEL 8 15 10240 1024000 Oracle Linux 7 15 10240 1024000 Oracle Linux 8 15 10240 1024000 Ubuntu 18.04 15 10240 227327 Ubuntu 20.04 15 10240 227327 SLES 12 2 6144 1054719 SLES 15 2 6144 1054719 - OS(운영 체제) 디스크 디바이스의 해당 복사본으로 바꿉
파티션이 다시 만들어지면 az vm repair restore 명령을 사용하여 복구된 OS 디스크를 VM의 원래 OS 디스크와 교환하여 VM을 복원 합니다. 자세한 내용은 Azure Virtual Machine 복구 명령을 사용하여 Linux VM 복구의 5 단계를 참조하세요.
시나리오 2: 부팅 이미지의 UEFI 파티션이 손상됨
UEFI 부팅 파티션이 손상된 경우 2세대 Linux VM이 부팅되지 않습니다. 이 문제를 해결하려면 다음 단계를 따릅니다.
az vm repair create 명령을 사용하여 복구 VM을 만듭니다. 복구 VM에는 비기능 VM에 대한 OS 디스크 복사본이 연결됩니다. 자세한 내용은 Azure Virtual Machine 복구 명령을 사용하여 Linux VM 복구를 참조하세요.
다음 명령을 사용하여 손상된 파티션을 정리합니다.
root@repair-centos7:~# gdisk -l /dev/sdc GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sdc: 134217728 sectors, 64.0 GiB Model: Virtual Disk Sector size (logical/physical): 512/4096 bytes Disk identifier (GUID): <Disk GUID> Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 134217694 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 3123199 1024.0 MiB 0700 2 3123200 134215679 62.5 GiB 8E00 3 10240 1026047 496.0 MiB EF00 EFI System 14 2048 10239 4.0 MiB EF02 root@repair-centos7:~# fsck.vfat -n /dev/sdc3 fsck.fat 4.1 (2017-01-24) 0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt. Automatically removing dirty bit. Leaving filesystem unchanged. /dev/sdc3: 19 files, 1438/63326 clusters root@repair-centos7:~# fsck.vfat /dev/sdc3 fsck.fat 4.1 (2017-01-24) 0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt. 1) Remove dirty bit 2) No action ? 1 Perform changes ? (y/n) y /dev/sdc3: 19 files, 1438/63326 clusters root@repair-centos7:~# fsck.vfat /dev/sdc3 fsck.fat 4.1 (2017-01-24) /dev/sdc3: 19 files, 1438/63326 clusters
Important
- OS 디스크 디바이스의 해당 복사본으로 바꿉
/dev/sdc
다. - 위에서 언급한 파일 시스템 검사를 수행하기 전에 항상 OS 디스크의 백업을
-n
수행하고 옵션으로 드라이 실행을 수행합니다. - 이
dosfsck
명령을 사용하여 vfat 파일 시스템 검사를 수행할 수 있습니다. 두 명령 모두 동일합니다. 자세한 내용은 fsck.vfat을 참조하세요.
- OS 디스크 디바이스의 해당 복사본으로 바꿉
파티션이 정리되면 az vm repair restore 명령을 사용하여 복구된 OS 디스크를 VM의 원래 OS 디스크와 교환하여 VM을 복원 합니다. 자세한 내용은 Azure Virtual Machine 복구 명령을 사용하여 Linux VM 복구의 5 단계를 참조하세요.
시나리오 3: 전체 /부팅 파티션 콘텐츠가 삭제됨
전체 /boot 파티션 또는 기타 중요한 콘텐츠가 누락되어 복구할 수 없는 경우 백업에서 VM을 복원하는 것이 유일한 옵션입니다. 자세한 내용은 Azure Portal에서 Azure VM 데이터를 복원하는 방법을 참조 하세요.
도움을 요청하십시오.
질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.