Mp bios bug 8254 timer not connected to io apic как исправить

Обновлено: 04.07.2024

UNIX-подобные операционные системы устроены так, что если в них что-то
ломается, то они не пытаются самовосстановиться, а честно сообщают о
случившемся. Дальнейшая судьба операционки зависит от квалификации владельца
компа: новичок сразу затеет переустановку, матерый же юниксоид спокойно
загрузится с LiveCD, наберет в терминале несколько команд и отправит комп на
перезагрузку, довольно усмехнувшись. Дизайн UNIX настолько прост и прямолинеен,
что ОС можно поднять с колен, в каком бы состоянии она ни находилась.

Всего существует шесть классов проблем, с которыми сталкиваются пользователи
никсов:

  1. Загрузка. Затертая запись MBR, забытый пароль root.
  2. Оборудование. Подвисания и самопроизвольная перезагрузка ОС, паника
    ядра.
  3. Винчестеры. Затертая таблица разделов, выход из строя жесткого диска.
  4. Графическая подсистема. Неправильная настройка xorg.conf, отсутствующий
    видеодрайвер, тормоза.
  5. Драйвера. Все, что связано с нераспознанным оборудованием.
  6. Сеть. Неправильная настройка сетевых интерфейсов, неработающий
    DNS-резолвинг.

Мы рассмотрим способы борьбы с каждой из этих проблем.

Когда пингвин отказывается выходить на старт

Проблема затертой записи MBR загрузчиком другой операционной системы уже
возведена в разряд запрещенной к обсуждению на многих тематических форумах,
попала в многочисленные FAQ и глубоко сидит в печенках опытных пользователей.
Нет в нашей стране новичка в Linux, который бы ни разу с ней не сталкивался. А
между тем, решение очень простое: достаточно загрузиться с любого Linux LiveCD,
открыть окно терминала и набрать заветную команду:

$ sudo grub-install /dev/sda

В большинстве ситуаций этой команды будет достаточно для возвращения
загрузчика на законное место. Но если вместо глубокомысленного молчания
grub-install разразится бранными ругательствами - дело плохо! Придется запустить
командную строку grub:

Команда "find /boot/grub/stage1", введенная в ответ на приглашение grub,
должна выдать на экран имя дискового раздела, содержащего каталог /boot/grub.
Далее все просто:

: root дисковый_раздел
: setup (hd0)
: quit

Куда реже страдают от проблемы затертого загрузчика пользователи FreeBSD, но
такое случается и в с ними. Алгоритм восстановления записи MBR тут несколько
иной:

  1. Загружаемся с первого или восстановительного диска FreeBSD.
  2. Выбираем пункт меню "Fixit", далее "CDROM/DVD".
  3. Набираем в открывшейся командной строке "boot0cfg -o packet ad0 && exit".
  4. Жмем на системном блоке кнопку Reset.

С MBR все. Теперь поговорим о забытом пароле пользователя root. Как же
юниксоиды любят выдумывать длинные, запутанные пароли, а потом с успехом их
забывать, и как же они радуются, узнав, что для восстановления пароля достаточно
выполнить всего два простых действия. А именно – загрузиться в
однопользовательском режиме и удалить пароль из базы пользователей с помощью
команды vipw.

В Linux вход в однопользовательский режим осуществляется за счет передачи
ядру опции single. Выбери в grub нужный пункт меню, нажми 'e', добавь в конец
появившейся строки слово single и нажми <Enter>. Ядро благополучно загрузится и
запустит /bin/sh от имени суперпользователя. Выполни команду vipw, сотри
звездочку в поле пароля пользователя root, выйди из редактора и набери exit.

Чтобы попасть в однопользовательский режим FreeBSD, требуется нажать '4' в
ответ на загрузочное меню или набрать "boot -s" в командной строке загрузчика.

Железная болезнь

Часто ядро отказывается загружаться или корректно работать по причине кривой
реализации ACPI в чипсете или BIOS'е материнской платы. Разработчики
операционных систем уже устали ругаться по этому поводу; ядра Linux и FreeBSD
содержат даже не десятки, а сотни воркэраундов для материнских плат, обладающих
такой неприятной особенностью. Однако очевидно, что с момента поступления
материнской платы в продажу и до обнаружения в ней ошибок проходит какое-то
время, поэтому не стоит надеяться, что твоя свежекупленная бажная ASUS уже есть
в черных списках ядра.

К счастью, это легко обходится через явное отключение APIC и/или ACPI в ядре.
Для Linux необходимо выбрать нужный пункт меню в загрузчике grub, нажать 'e',
добавить в конец появившейся строки слово noapic и нажать 'b'. Для фиксации
изменений открываем файл /boot/grub/grub.conf и добавляем noapic ко всем
строкам, начинающимся со слова kernel. Если и это не поможет, полностью
отключаем ACPI через опцию "acpi=off".

Для FreeBSD достаточно нажать клавишу '2', когда появится меню загрузчика, а
затем зафиксировать изменения, добавив строку "hint.apic.0.disabled=1" в
loader.conf:

Периодические подвисания операционной системы или постоянные уходы ядра в
панику могут свидетельствовать о том, что оперативная память дышит на ладан.
Если подвисания случаются с периодичностью раз в час или тридцать минут, скорее
всего, погорели только некоторые ячейки одной из планок. В случае выхода из
строя всего модуля памяти ядро уйдет в панику при следующей же загрузке!

Проверить память на сбойность не составляет труда. Самый примитивный способ -
запаковать и распаковать большой объем данных, например, дерево исходных текстов
ядра:

/src.tar.gz /usr/src && tar -xzf

Сбойные ячейки памяти вызовут коллизии при сверке контрольных сумм, и
архиватор без замедления сообщит об этом.

Другой (более правильный) способ проверки заключается в использовании
профессионального инструмента memtest86. Это самодостаточная программа, которая
не требует операционной системы для своей работы. Она изначально присутствует в
меню grub многих дистрибутивов и LiveCD Linux. Просто перезагрузи машину и
выбери пункт меню memtest86. Проверка памяти начнется автоматически.

Программа memtest86 использует множество различных алгоритмов тестирования,
поэтому проверка может затянуться надолго. Рекомендую запустить memtest86 на
ночь, лечь спать, а утром проверить, нет ли в выводе красных строчек,
сигнализирующих о сбойных ячейках.

Частые самопроизвольные перезагрузки машины, особенно во время запуска
тяжелых приложений или игр, - следствие перегрева процессора или видеокарты.
Проверь работоспособность кулеров и, в случае необходимости, замени их. Если
времени на эту процедуру нет, а работать надо, попробуй снизить частоту
процессора или чипа видеокарты.

Многие современные процессоры и материнские платы позволяют изменять тактовую
частоту процессора "на лету", без перезагрузки компа. Обычно для этого
предоставляется специальный интерфейс, расположенный в недрах каталога /sys в
Linux или в одной из ветвей sysctl во FreeBSD.

Для манипулирования частотой и другими характеристиками видеопроцессора
принято использовать кроссплатформенную утилиту nvclock. Запусти ее с флагом '-s',
чтобы узнать текущую частоту GPU:

А затем снизь ее примерно на 100 МГц:

Винты посыпались

Пользователи со стажем знают, что диапазон проблем, связанных с
использованием жестких дисков, очень широк и простирается от механического
повреждения в результате удара до случайно потертой таблицы разделов. В
некоторых из них винчестер еще можно вернуть к жизни, но в большинстве случаев
он либо уже умер, либо находится в предсмертном состоянии.

Чтобы не попасть впросак, специалисты рекомендуют периодически проверять
состояние жесткого диска, используя утилиты для отображения статистики S.M.A.R.T.,
специального чипа, встроенного в жесткий диск. В *nix-системах тоже есть такие
утилиты, самая известная из которых именуется smartctl.

Пакет smartmontools, содержащий программу smartctl, предустановлен почти в
любом дистрибутиве Linux, а во FreeBSD доступен через систему портов (sysutils/smartmontools).

В появившейся на экране таблице нас интересуют только две строки:
Reallocated_Sector_Ct и Temperature_Celsius. В последней колонке первой из них
отражено количество переназначенных секторов. Значение, отличное от нуля,
говорит о проблемах. Диск начинает сыпаться, и число переназначенных секторов
будет только расти. Последняя колонка строки Temperature_Celsius содержит
текущую температуру жесткого диска, которая не должна превышать 50-ти градусов
(36-45 градусов - идеальные условия).

Значения S.M.A.R.T. - это всего лишь цифры, которые далеко не всегда имеют
связь с реальным состоянием жесткого диска. Более того, исследования,
проведенные компанией Google, показали, что в 60% процентах случаев вероятность
гибели дисков никак не связана со значениями S.M.A.R.T., а единственный
более-менее достоверный показатель - это количество переназначенных секторов.

Если количество сбойных секторов на диске невелико, то dd скопирует диск,
заполнив проблемные участки нулями. После этого останется только выполнить fsck
для всех файловых систем и жить дальше с новым диском.

К сожалению, трюк с применением dd срабатывает не всегда. В некоторых
ситуациях диск оказывается поврежденным настолько, что сбойные участки
простираются на сотни тысяч или даже миллионы секторов подряд! Завершения
отработки dd придется ждать несколько дней, за которые подопытный вполне может
скончаться.

Лучшие умы планеты советуют использовать специальную утилиту dd_rescue, с
помощью которой можно провести копирование диска с двух сторон: первый проход с
начала диска, второй - с конца. В результате на новом диске окажется вся
информация за исключением проблемного участка.

Делаем первый проход:

Когда диск начнет безумно шелестеть, нажмем <Ctrl+C>, чтобы завершить
копирование, и запускаем процесс копирования с конца:

Останавливаем процесс копирования после продолжительного шелеста диска и
отключаем умирающего.

Другая проблема - утрата таблицы разделов, которую еще совсем недавно было
принято решать с помощью шестнадцатеричного редактора. Сегодня же проще
применить утилиту gpart:

Альтернатива gpart - testdisk, более мощная и гибкая программа с
псевдо-графическим интерфейсом.

Причуды мистера X

Но время от времени X-сервер дает сбои. Причем, зачастую виновным оказывается
сам пользователь или система обновления пакетов. Если после загрузки вместо
привычного окна логина ты видишь скучную черную консоль, значит, процедура
запуска сервера завершилась с ошибками. Этому может быть сотня приин, начиная от
отсутствия необходимого драйвера и заканчивая проблемами с каталогом /tmp. Самое
разумное, что можно сделать – попробовать повторно запустить X-сервер командой
startx и посмотреть, какие ошибки она выдаст на экран. В большинстве случаев
этого оказывается достаточно для диагностики проблемы, но если причины сбоя
остаются загадкой, следует обратиться за более подробным разъяснением к файлу /var/log/Xorg.0.log:

Записывая логи, X-сервер помечает все ошибки маркером "(EE)", так что
приведенная команда выведет только записи, сигнализирующие о проблемах.

Потерянный драйвер

Современные версии Linux и FreeBSD под завязку набиты драйверами даже для
самого экзотического оборудования. Дни, когда для этих операционных систем
приходилось индивидуально подбирать конфигурацию компа, прошли. Сегодня Linux и
FreeBSD легко встают на любой современный сервер, домашний компьютер или лэптоп
и не требуют специального конфигурирования. Загвоздка лишь в том, что драйвера
для "железных новинок" появляются с некоторым опозданием, что вполне
закономерно, но неприятно.

Если твоя свежекупленная железка никак не проявляет работоспособность,
значит, ядро не подхватило ее во время загрузки. Такое может произойти в двух
ситуациях: либо драйвер не был загружен во время инициализации системы, либо
драйвера для такого устройства нет в ядре или модуле. В любом случае следует
опросить шину PCI на предмет найденных устройств и загруженных драйверов. Для
этого можно использовать утилиту lspci в Linux или pciconf во FreeBSD:

На экране ты увидишь все найденные во время инициализации ядра устройства и
закрепленные за ними модули (драйвера). В первом случае имя модуля будет указано
в строке "Kernel modules:", во втором - в первой строке каждого устройства.

Если поиск драйвера не принес результатов, остается одно - ждать выхода новой
версии ядра/ОС и надеяться, что в нем появится поддержка твоего оборудования.
Владельцы неподдерживаемых сетевых адаптеров могут попытать счастья с
фреймворком NDISWrapper, который представляет собой модуль ядра Linux. Он
реализует прослойку для работы драйверов NDIS (Network Driver Interface
Specification), предназначенных для Windows.

Установи пакет ndiswrapper, скопируй с диска каталог с официальным драйвером
для Windows, найди в нем INF-файл и выполни эту команду:

Проверь, загрузился ли драйвер:

Все в порядке? Загружай модуль и конфигурируй сеть:

Латаем сети

Проблемы с подключением к сети - бич новичков в Linux. Большинство
дружелюбных к пользователю дистрибутивов находят сетевые интерфейсы сами и
пытаются настроить их средствами DHCP. Срабатывает это далеко не всегда.
Перво-наперво запусти команду "dmesg | less" в Linux или "less /var/run/dmesg.boot"
во FreeBSD и найди в ее выводе сетевой адаптер, который ты используешь для
выхода в интернет или локальную сеть. Например:

nfe0: <NVIDIA nForce2 MCP2 Networking Adapter> port …

Первое слово - это название сетевого интерфейса (в Linux он будет именоваться
eth0 или eth1). Запусти команду ifconfig без аргументов и найди в ее выводе это
название. Если его нет - значит, интерфейс неактивен, если же в выводе нет
строки inet - значит, ему не присвоен IP-адрес. Активировать интерфейс можно
командой:

Обычно для выхода в локальную сеть не требуется ввод дефолтового шлюза, так
что после исполнения этой команды доступ к локальной сети должен открыться. В
случае, если стандартный шлюз все-таки используется, выполни следующую команду:

Твой провайдер может использовать PPPoE или PPTP-сервер для предоставления
доступа к интернету. Настройка подобных подключений была подробно описана в
статье "Прорыв сквозь
PPP", опубликованной в
майском номере ][ за
2008 год. За сим я прощаюсь. Удачи!

Сыплющийся, но еще работоспособный жесткий диск вполне пригоден для хранения
временных данных. Для этого надо потереть таблицу разделов и создать новый
раздел на уцелевшей части диска.

Чтобы убрать загрузочный экран и увидеть процесс инициализации Linux во всей
красе, удали опции quiet и splash из строки, доступной по клавише 'e' в
загрузчике grub.

Читайте также: