Следующая страница Предыдущая страница Содержание

9. Часто встречающиеся сообщения об ошибке.

-------------------------------------------------------------------------------

9.1 Modprobe can't locate module, "XXX" и сообщения подобного типа.

[modprobe не может найти модуль]

Эти типы сообщений чаще всего возникают во время загрузки или выключения системы. Если modprobe, insmod или rmmod жалуются на то, что не могут найти модуль, добавьте следующую строку в файл /etc/modules.conf или /etc/modutils/aliases, где бы они не находились в системе.


alias <module-name> off

И используйте названия модулей, появляющихся в сообщениях об ошибке.

[J.H.M. Dassen]

-------------------------------------------------------------------------------

9.2 Unknown terminal type linux и т.п.

[Неизвестный тип терминала - linux]

В ранних версиях ядра тип консольного терминала по умолчанию был изменён с "console" на "linux". Вам необходимо подредактировать файл /etc/termcap, изменив строку:


console|con80x25:\

на


linux|console|con80x25:\

(там может быть дополнительная чепуха -   удалите её, если это так).

Чтобы заставить работать редактор вам может понадобиться ввести:


TERM=console 

(для bash и ksh) или


setenv TERM console 

для csh или tcsh.

Некоторые программы используют /usr/lib/terminfo вместо /etc/termcap. Для этих программ вы должны обновить ваш terminfo, который является частью ncurses.

-------------------------------------------------------------------------------

9.3 lp1 on fire

[lp1 в огне]

Это шутливое/традиционное сообщение об ошибке относится к одному из типов ошибок, выдаваемых вашим принтером, но это состояние ошибки является неверным. Возможно у вас конфликт I/O или IRQ - проверьте настройки вашей карты. Некоторые люди говорят, что у них это сообщение возникает при выключенном принтере. Будем надеяться, что он действительно не горит...

В более новых версиях ядра это сообщение пишется как "lp1 reported invalid error status (on fire, eh?)" ("lp1 выдаёт неверное состояние ошибки (в огне, что ли?)").

-------------------------------------------------------------------------------

9.4 INET: Warning: old style ioctl... called!

[ИНЕТ: Предупреждение: вызван старый тип ioctl...]

Вы пытаетесь использовать старые утилиты настройки сети. Новые могут быть найдены на ftp.linux.org.uk в директории /pub/linux/Networking/PROGRAMS/NetTools/ (боюсь, что только исходники).

Note that they cannot be used just like the old-style programs. See the NET-2 HOWTO for instructions on how to set up the old-style networking programs correctly. Even better, see the NET-3 HOWTO and upgrade your networking software.

-------------------------------------------------------------------------------

9.5 ld: unrecognized option '-m486'

[ld: непонятная опция '-m486']

У вас старая версия ld. Установите более новый пакет binutils - в нём есть обновлённый ld. Ищите на tsx-11.mit.edu в директории /pub/linux/packages/GCC/ архив binutils-2.6.0.2.bin.tar.gz.

-------------------------------------------------------------------------------

9.6 GCC сообщает Internal compiler error.

[Внутренняя ошибка компилятора]

Если ошибка постоянно повторяется (т.е. она всегда возникает на том же месте в том же самом файле - даже после перезагрузки и повторной попытки, используя стабильное ядро), значит вы нашли новый баг в GCC. Более подробно о том, как сообщить об ошибке, смотрите в документации GCC Info (наберите Control-h в Emacs и выберите из меню GCC) - убедитесь, что у вас последняя версия.

Помните, что возможно это проблема не с Linux. За исключением, если вы компилируете программу, которую также компилировали другие пользователи Linux, вы не должны отправлять сообщение об ошибке в любую группу из comp.os.linux.

Если проблема не повторяется, у вас может быть повреждена старая микросхема памяти - смотрите make says Error 139.

-------------------------------------------------------------------------------

9.7 make выдаёт Error 139

[Ошибка 139]

Ваш драйвер компилятора (gcc) выполнил дамп памяти. Возможно у вас повреждённая, с багами или старая версия GCC - найдите последний релиз. С другой стороны, у вас может быть переполнился swap - смотрите "Моя машина работает очень медленно, когда я запускаю GCC / X / ...".

Если это не решило проблему, возможно у вас проблемы с памятью или повреждён винчестер. Проверьте тактовую частоту, режимы ожидания и частоту обновления ваших SIMM'ов и кэша (руководства по аппаратному обеспечению иногда ошибаются). Если это так, возможно у вас "левые" SIMM'ы или неисправна материнская плата, жёсткий диск или контроллер.

Linux, как и любой Unix, является очень хорошим тестировщиком памяти - гораздо лучше, чем DOS'овские программы тестирования памяти.

Как сообщают, некоторые клоны математического сопроцессора х87 могут создавать проблемы. Попробуйте откомпилировать ядро с эмуляцией math ("Как мне обновить/откомпилировать ядро?"). Вам может понадобиться использовать флаг командной строки ядра "no387" в командной строке LILO, чтобы заставить ядро использовать эмуляцию math, или можно будет работать, используя '387' с откомпилированной, но в основном неиспользуемой эмуляцией math.

Дополнительная информация об этой проблеме доступна в вебе на сайте http://www.bitwizard.nl/sig11/.

-------------------------------------------------------------------------------

9.8 shell-init: permission denied при входе в систему.

[shell-init: доступ запрещён]

Ваша корневая директория и все директории над вашей домашней директорией должны быть всем доступны для чтения и выполнения. Смотрите manual page по chmod или книгу по Unix, чтобы решить проблему.

-------------------------------------------------------------------------------

9.9 No utmp entry. You must exec ... при входе в систему.

Ваш файл /var/run/utmp испорчен. Вы должны иметь


> /var/run/utmp

в директории /etc/rc.local или /etc/rc.d/*. Смотрите "Я запорол свою систему и не могу войти в неё, чтобы исправить." Помните, что utmp также моет быть найден в директории /var/adm/ или /etc/ на других более новых системах.

-------------------------------------------------------------------------------

9.10 Warning: bdflush not running.

[Предупреждение: bdflush не запущен]

Современные ядра используют улучшенный метод записи кэшированых блоков на диск. В дополнение к изменениям ядра это влечёт за собой замену старого обновления программы, которая записывает все данные каждые 30 секунд, используя более хитрый демон (в действительности пары), известный как bdflush.

Достаньте архив bdflush-n.n.tar.gz там же, где взяли исходники ядра ("Как мне обновить/откомпилировать ядро?"), откомпилируйте и установите его. Bdflush должен быть запущен перед обычной проверкой файловой системы во время загрузки. Он также будет прекрасно работать с другими более старыми версиями ядра, поэтому нет необходимости хранить старое обновление.

-------------------------------------------------------------------------------

9.11 Warning: obsolete routing request made.

[Предупреждение: выполнен устаревший запрос маршрутизации]

Здесь нечего волноваться. Сообщение означает, что ваша версия route немного устарела, по сравнению с ядром. Вы можете избавиться от этого сообщения, достав новую версию route там же, где и исходники ядра ("Как мне обновить/откомпилировать ядро?").

-------------------------------------------------------------------------------

9.12 EXT2-fs warning: mounting unchecked file system.

[EXT2-fs предупреждение: монтирование непроверенной файловой системы]

Вам необходимо запустить e2fsck (или fsck -t ext2, если у вас установлена программа fsck) с опцией -а, чтобы снять с файловой системы флаг 'dirty', а затем корректно демонтировать раздел во время каждого завершения работы.

Самый простой путь осуществить это - найти последнюю версию программ fsck, umount и shutdown, которые доступны в пакете программ Рика Фэйта (Rik Faith) ("Где я могу найти дистрибутив Linux через FTP?"). Вы должны убедиться, что ваши скрипты /etc/rc*/ правильно их используют.

Примечание: не пытайтесь выполнить проверку файловой системы, примонтированной для чтения/записи - то же самое касается и корневого раздела, если вы не видите строку


VFS: mounted root ... read-only

во время загрузки. Вы должны настроить монтирование корневой файловой системы при старте только на чтение, а затем заново примонтировать её на чтение/запись. Прочитайте документацию, которая поставляется с пакетом util-linux, чтобы выяснить, как это делается.

Запомните, что при монтировании вам необходимо задать опцию -n, которая не пытается обновить файл /etc/mtab до тех пор, пока корневая файловая остаётся доступной только на чтение.

-------------------------------------------------------------------------------

9.13 EXT2-fs warning: maximal count reached.

[EXT2-fs предупреждение: достигнуто максимально число]

Это сообщение выдаётся ядром, когда оно монтирует файловую систему, отмеченную как чистая, чьё "число монтирований со времени проверки" достигло определённого значения. Для решения этой проблемы найдите последнюю версию утилит ext2fs (на время написания этих FAQ архив назывался e2fsprogs-0.5b.tar.gz) на обычных сайтах ("Где я могу найти дистрибутив Linux через FTP?").

Максимальное число монтирований можно узнать и изменить, используя прогамму tune2fs из этого же пакета.

-------------------------------------------------------------------------------

9.14 EXT2-fs warning: checktime reached.

[EXT2-fs предупреждение: достигнуто время проверки]

Ядра версий от 1.0 и выше поддерживают проверку файловой системы, основанную на истечении срока со времени последней проверки, так же как и для числа монтирований. Найдите последнюю версию утилит ext2fs ("EXT2-fs warning: maximal count reached.")

-------------------------------------------------------------------------------

9.15 df сообщает Cannot read table of mounted file systems.

[Невозможно прочесть таблицу примонтированных файловых систем]

Возможно, что у вас что-то с вашими файлами /etc/mtab или /etc/fstab. Если у вас есть довольно новая версия приложения mount, то файл /etc/mtab должен быть удалён или очищен во время загрузки (в /etc/rc.local или /etc/rc.d/*), используя что-то вроде этого:


rm -f /etc/mtab*

Некоторые версии SLS содержат входные данные для корневого раздела в файле /etc/mtab, сгенерированные скриптами из /etc/rc* при помощи rdev. Так делать нельзя - более новые версии mount делают это автоматически.

Другие версии SLS имеют строку в файле /etc/fstab, которая выглядит примерно так:


/dev/sdb1   /root   ext2   defaults

Это тоже неверно. /root должно считываться как просто /.

-------------------------------------------------------------------------------

9.16 fdisk сообщает Partition X has different physical/logical ...

[Раздел Х имеет разные физические/логические ...]

Если номер раздела (Х, см. выше) соответствует 1, значит эта та же проблема, что и в вопросе "fdisk: Partition 1 does not start on cylinder boundary."

Если раздел начинается и заканчивается на цилиндре с номером белее 1024, это значит, что стандартное форматирование конфигурации диска DOS не может работать с количеством цилиндров более 10 бит. Вам необходимо прочесть вопрос "Как я могу заставть Linux работать с моим винчестером?".

-------------------------------------------------------------------------------

9.17 fdisk: Partition 1 does not start on cylinder boundary.

[Раздел 1 начинается не на границе цилиндра]

Версия fdisk, поставляемая с многими Linux, создаёт разделы, которые не позволяют проверить их правильность. К сожалению, если вы уже установили вашу систему, вам ничего не остаётся, как перенести данные с раздела, удалить его, заново разметить диск и перенести данные назад.

Вы можете избежать этой проблемы, достав последнюю версию fdisk из пакета util-linux Рика Фэйта (Rik Faith) (доступен на обычных сайтах FTP). С другой стороны, есди вы создаёте новый раздел 1, начинающийся на первом цилиндре, вы можете выполнить следующие операции для получения раздела, удовлетворяющего требованиям fdisk'a:

Не обращайте внимание на сообщении о свободных секторах - они относятся к секторам на первой дорожке, не считая загрузочного сектора, и они останутся неиспользуемыми, если вы создадите первый раздел со 2-ой дорожки.

-------------------------------------------------------------------------------

9.18 fdisk сообщает partition n has an odd number of sectors.

[раздел n содержит нечётное количество секторов]

Схема разбиения диска ПК работает с 512-байтными секторами, но Linux использует блоки по 1Кб. Если у вас имеется раздел с нечётным числом секторов, значит последний сектор не используется. не обращайте внимания на это сообщение.

-------------------------------------------------------------------------------

9.19 mtools сообщает cannot initialize drive XYZ

Это означает, что у mtools проблемы с доступом к винчестеру. Это может быть вызвано несколькими причинами.

Чаще всего это связано с неправильным доступом к накопителям на гибком диске (/dev/fd0* and /dev/fd1*) - пользователь, запускающий mtools, дожен иметь соответствующие права. Более подробно смотри в manual page для chmod.

Большинство версий mtools, распространяемых с системами Linux (не стандартная версия GNU), используют содержимое файла /etc/mtools для определения используемых устройств и плотностей, вместо того, чтобы использовать информацию из двоичных файлов. Ошибки в этом файле часто вызывают проблемы. Часто об этом нет документации.

Простейший способ получения доступ к вашим файлам MS-DOS (особенно к тем, что на разделе жёсткого диска) смотрите в вопросе "Как я могу получить доступ к файлам на моём разделе DOS или дискеие?" Помните - вы никогда не должны использовать mtools для доступа к файлам на примонтированном разделе или диске msdosfs.

-------------------------------------------------------------------------------

9.20 В начале загрузки: Memory tight

[Память сжата]

Это значит, что ваше ядро слишком большое, при этом Linux должен выполнить некоторые манипуляции над управлением  памятью, чтобы он смог загрузить самого себя из BIOS. Это не связано с объёмом физической памяти на вашей машине. Не обращайте внимания на это сообщение или скомпилируйте ядро, содержащее только нужные вам драйверы и настройки ("Как мне обновить/перекомпилировать ядро?").

-------------------------------------------------------------------------------

9.21 Мой syslog сообщает `end_request: I/O error, ...'.

['последний запрос: ошибка ввода/вывода, ...']

Это сообщение об ошибке и подобные ему сообщения почти всегда означает ошибку жёсткого диска.

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

Это сообщение об ошибке также может означать плохое соединение с устройством, особенно на системах домашней сборки. Если вы устанавливаете накопитель IDE, ВСЕГДА используйте новые шлейфы. Это также неплохая идея и для SCSI-дисков.

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

[Питер Малдер, Теодор Т'со (Theodore T'so)]

-------------------------------------------------------------------------------

9.22 You don't exist. Go away.

[Вы не существуете. Убирайтесь.]

Это не вирусная инфекция :-). Это сообщается программами типа write, talk и wall, если вы активизируете UID, не соответствующий действительному пользователю (наверняка из-за повреждения файла /etc/passwd). Или если используемый вами рабочий сеанс (особенно псевдотерминал) неверно зарегистрирован в файле utmp (возможно из-за того, что вы запустили его поразвлечься).


Следующая страница Предыдущая страница Содержание