Устранение неполадок с загрузкой UEFI на виртуальных машинах Azure Linux
Область применения: ✔️ виртуальные машины Linux
Примечание.
CentOS, на который ссылается в этой статье, является дистрибутивом Linux и достигнет конца жизни (EOL). Думайте об использовании и планировании соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.
Образы партнеров Linux в Azure Marketplace помечены и настроены для загрузки 1-го поколения BIOS и единого расширяемого интерфейса встроенного ПО (UEFI) поколения 2.
При развертывании виртуальных машин Linux поколения 2 в Azure могут возникнуть сбои загрузки UEFI. В этой статье рассматриваются некоторые сценарии, в которых возникают сбои загрузки UEFI и предоставляются решения.
Симптомы
При развертывании виртуальной машины Linux поколения 2 в Azure загрузка завершается сбоем, и сервер недоступен.
Определение ошибок загрузки UEFI
Проверьте текущее состояние виртуальной машины с помощью диагностика загрузки Azure.
На снимках экрана загрузки диагностика показаны следующие сообщения об ошибках:
Ошибка 1
Сводка загрузки виртуальной машины
- Неизвестное устройство
Загрузчик не загружал операционную систему. - Диск SCSI (0,0)
Загрузчик не загружал операционную систему. - Диск SCSI (0,1)
Загрузчик не загружал операционную систему. - Сетевой адаптер (000D3A4DD64D)
Загрузочный образ не найден.
Операционная система не была загружена. Виртуальная машина может быть настроена неправильно. Закройте и повторно настройте виртуальную машину или нажмите кнопку "Перезапустить", чтобы повторить повторную загрузку текущей последовательности загрузки.
- Неизвестное устройство
Ошибка 2
Запуск PXE через IPv4
Перед устранением неполадок
Чтобы выполнить восстановление автономной виртуальной машины, необходимое для сценария 1: раздел UEFI в загрузочном образе отсутствует и сценарий 2. Раздел UEFI в загрузочном образе поврежден, убедитесь, что у вас есть доступ к Azure CLI или Azure Cloud Shell.
Сценарий 1. Отсутствует секция UEFI в загрузочном образе
Если секция загрузчика UEFI отсутствует или удалена, виртуальная машина Linux поколения 2 завершится ошибкой загрузки.
Проблему можно устранить следующим способом.
Используйте команду az vm repair create для создания виртуальной машины восстановления. Виртуальная машина восстановления будет иметь копию диска ОС для нефункциональную виртуальную машину. Дополнительные сведения см. в статье "Восстановление виртуальной машины Linux" с помощью команд восстановления виртуальной машины Azure.
Повторно создайте секцию с помощью следующих команд:
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.
Внимание
- Замените
/dev/sdc
соответствующую копию диска операционной системы (ОС). - Выбор номера секции не имеет значения, если начальные и конечные точки сектора правильны. Выбраны правильные точки начала и окончания сектора, так как ОС может определить отсутствующие секторы.
- Убедитесь, что конечный сектор не занят какой-либо другой секцией на диске. Выбор значений по умолчанию должен быть достаточно.
Образы партнеров Azure Linux имеют следующий номер секции, начальные точки сектора и конечные точки сектора:
Дистрибутив ОС Linux Номер раздела 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 - Замените
После повторного создания раздела восстановите виртуальную машину, переключив восстановленный диск ОС с исходным диском ОС виртуальной машины с помощью команды az vm restore . Дополнительные сведения см. в шаге 5 в разделе "Восстановление виртуальной машины Linux" с помощью команд восстановления виртуальной машины Azure.
Сценарий 2. Повреждение секции UEFI в загрузочном образе
Если загрузочный раздел UEFI поврежден, виртуальная машина Linux поколения 2 завершится ошибкой загрузки. Проблему можно устранить следующим способом.
Используйте команду az vm repair create для создания виртуальной машины восстановления. Виртуальная машина восстановления будет иметь копию диска ОС для нефункциональную виртуальную машину. Дополнительные сведения см. в статье "Восстановление виртуальной машины Linux" с помощью команд восстановления виртуальной машины Azure.
Очистка поврежденной секции с помощью следующих команд:
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
Внимание
- Замените
/dev/sdc
соответствующую копию устройства диска ОС. - Всегда выполняйте резервную копию диска ОС и выполняйте сухой запуск с
-n
параметром перед выполнением проверки файловой системы, указанной выше. - Для
dosfsck
проверки файловой системы vfat можно использовать команду. Обе команды одинаковы. Дополнительные сведения см. в разделе fsck.vfat.
- Замените
После очистки раздела восстановите виртуальную машину, переключив восстановленный диск ОС на исходный диск виртуальной машины с помощью команды az vm restore . Дополнительные сведения см. в шаге 5 в разделе "Восстановление виртуальной машины Linux" с помощью команд восстановления виртуальной машины Azure.
Сценарий 3. Удаление всего содержимого секции /boot
Если весь раздел /boot или другое важное содержимое отсутствует и не удается восстановить, восстановление виртуальной машины из резервной копии является единственным вариантом. Дополнительные сведения см. в статье "Как восстановить данные виртуальной машины Azure в портал Azure".
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.