Малышку верните!
May 20, 2008 · CommentsBcdeditTroubleshootingWindows
На днях у одной из тестовых машин, занимающих жизненное пространство у меня в офисе, обнаружились проблемы с перегревом. Вернее сказать не у неё, а у машин из той же самой партии компьютеров. Под это дело организовали установку дополнительных кулеров на все подобные машины и, что б два раза не вставать, - обновление BIOS. Я, надо сказать, никаких проблем с перегревом не замечал, но мало ли. Ставят - чего ж отказываться.
И вот в день X приходит человек, ставит дополнительный кулер, обновляет BIOS и уходит. Однако, вскоре после его ухода, обнаруживается одна неприятная штука - 4 ядерный процессор на этой машине стал вдруг одноядерным. По крайней мере, операционная система видит только одно ядро. Ага, подумали сибирские мужики, BIOS обновили, а настройки сбросились в значения по умолчанию. Ничего подобного. Настройка «включить только одно ядро» действительно есть, но выставлена она в «выкл.» - как положено.
Безрезультатно перепробовав разные комбинации «околопроцессорных» настроек в BIOS перешел к следующему подозреваемому. Дело в том, что незадолго до обновления, я установил на той машине другую версию системного ядра вместе с HAL. Надо сказать, что изменения в ядре никак не могли повлиять на количество определяемых процессоров, но всякое бывает. Новое ядро было установлено параллельно со старым (конфигурация была скопирована с помощью BCDEDIT.EXE и для копии были заданы опциями KERNEL и HAL), так что я просто перезагрузился со старым ядром. Не помогло. По-прежнему обнаруживается только один процессор. Значит все-таки BIOS.
Пишу письмо, мол, - «Не хочу я такого апгрейда. Верните всё назад, как было. Да и вообще оно и не перегревалось совсем». Тот же человек возвращается, ставит предыдущую версию BIOS, перезагружает машину и, конечно же, система по-прежнему видит только одно процессорное ядро. Гм.
После еще одного сеанса медитации с бубном, звонков с выяснением, а та ли это версия BIOS и не нужно ли чего еще обновить, пришла в голову светлая мысль перезагрузиться в Windows 2003 и, о чудо! - W2K3 увидел все 4 ядра. Человек обрадованный уходит. Я, соответственно, опечаленный остаюсь.
Выдвигается следующая гипотеза - всё дело в том, что при установке системы не вводился серийный номер. Обычно тестовая OS ставиться с помощью системы автоматического тестирования, которая берет на себя все тяготы активации, а в тот день она немного поломалась, так что операционную систему я ставил руками. На следующий день переустанавливаю систему «как положено» и она видит все четыре ядра. Замечательно! Ставлю модифицированное ядро и HAL - снова виден только один процессор. Бум. Красивая гипотеза про отсутствующий серийный номер идет прахом.
Перезагружаюсь обратно в исходное ядро - теперь там тоже виден только один процессор, что очень странно, ведь я не изменил ни одного файла в системе - только создал дополнительную загрузочную конфигурацию. В конце концов, я догадался проверить версию HAL, который я устанавливал. Тогда-то и выяснилось, что я устанавливал однопроцессорный HAL вместо многопроцессорного. После смены HAL все заработало как положено. К сожалению, ошибка с версией HAL никак не объясняет каким образом новая загрузочная конфигурация повлияла на старую, ведь «HAL» не является глобальной опцией.