Текущий на данный момент набор обновлений для SLES 11 включает патч microcode_ctl-1.17-102.78.1. Однако, его установка на машине HP ProLiant DL360 Gen9 с процессором Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (6-core) привела к проблемам: сервер после этого не может нормально загрузиться. При старте демона HAL сервер уходит на перезагрузку, записывая в аппаратный Integrated Management Log сообщение наподобие следующего:
- Код: Выделить всё
Uncorrectable Machine Check Exception (Board 0, Processor 1, APIC ID 0x00000000, Bank 0x00000013, Status 0xBE200000'000B110A, Address 0x00000008'3FC4EAC0, Misc 0x84FE2090'9F000086)
Поскольку по сообщению похоже, что сбой - аппаратный, то потратили кучу времени на поиск неисправности. На самом деле проблема решается откатом указанного пакета на предыдущую версию (...76.1).
Однако, чтобы откатиться, нужно, во-первых, успешно загрузиться, во-вторых - иметь сеть (доступ к репозиторию с патчами, в моём случае - сервер SMT). Я делал так:
1) загружаемся в single-user mode (runlevel = 1, или S). Это можно сделать, добавляя в меню GRUB или ELILO цифру "1" к выбранным параметрам загрузки. Например, у меня для UEFI стоит загрузка через ELILO; делаем так: в момент приглашения ELILO (когда он начинает рисовать точки на экране) жмём TAB, в ответ появляется список элементов меню; после этого вводим руками название первого пункта меню и через пробел - единицу; жмём Enter. Система загружается в однопользовательском режиме, в ответ на пригашение вводим пароль root-а.
2) если попробовать сразу же откатить патч, то это не получится сделать, поскольку нет сети (и доступа к репозиторию с патчами). А если попробовать поднять сеть (rcnetwork start) - то снова по такому же сбою отправляемся на перезагрузку. Поэтому временно отключаем демон microcode.ctl (chkconfig microcode.ctl off), после чего можно перезагрузиться уже в режиме с сетью (runlevel 2 или 3), см. предыдущий пункт - только вместо единицы указываем двойку или тройку.
3) успешно загрузившись с сетью, убираем указанный патч: yast online_update, в меню "Filter" выбираем "All Patches", в меню "View" выбираем "Versions", после чего выбираем патч slessp3-microcode_ctl и в нижней части экрана пробелом отмечаем предыдущую версию (1.17-102.76.1), жмём "Accept".
4) теперь можно включить демон microcode.ctl обратно (chkconfig microcode.ctl on) и перезагрузиться уже стандартным образом.