LXF109:Спецрепортаж
|
|
|
- Толкование сообщений об ошибках
Содержание |
Тайны сообщений об ошибках
- Грэм Моррисон раскрывает тайный смысл наиболее частых сообщений об ошибках в Linux, и по мере изложения помогает исправить проблему.
Linux пугает некоторых уже тем, что выдаваемые им сообщения об ошибках, на первый взгляд, выглядят вестниками апокалипсиса. И их полно. Поискав на наших форумах слово «Error», вы получите более 150 страниц результатов. А это – много людей, столкнувшихся со многими проблемами.
Самая большая загвоздка для пользователей – не изобилие сообщений об ошибках; труднее всего что-нибудь по ним понять. Что, например, означает «Kernel Oops» или «PCI Can’t Allocate»? Сообщения о сбоях Linux невнятны, сложны для понимания и редко когда полезны. И очень жаль, так как большинство проблем разрешимо довольно легко, причем значительное их число повторяется снова и снова. На языке бизнеса это низко висящий плод. Такие-то ошибки мы и рассмотрим.
Вовсе не нужно быть экспертом в Linux, чтобы машина успешно загрузилась, или программистом – для воспроизведения файла с фильмом. Но сообщения об ошибках все еще считают пользователя экспертом. Мы прольем свет на самые частые проблемы и дадим решения, которые помогут вам обойти их и вернуть свою машину в строй. Мы выбрали, на наш взгляд, наиболее проблематичные области: трудности с загрузкой, общие вопросы использования приложений, файловую систему, сеть и установку дистрибутивов.
Из каждой области мы взяли несколько наиболее частых ошибок, и, объясняя, что происходит, заодно предлагаем их решение. Наше намерение – дать вам, даже если эта проблема вас не касается, представление о том, как и почему сообщения об ошибках Linux кажутся загадочными и немного пугающими. И, надеемся, полученные знания о поиске лучшего решения помогут вам изгнать ваши собственные проблемы.
Установка дистрибутива
Любой дистрибутив Linux имеет собственную процедуру установки, и каждая вызывает проблемы. Ubuntu может работать на одной машине, а на другой – нет. Компьютер с Ubuntu может не дружить с Fedora, или OpenSUSE, или Linux Mint, или Mandriva…
ОШИБКА Невозможно загрузиться с CD/DVD
Часто для новичков в Linux это первое знакомство с ОС: вы вставили диск в привод и перезагрузились лишь ради того, чтобы вас поприветствовала ваша старая система. Проблема в том, что ваш жесткий диск имеет более высокий приоритет, чем оптический привод. Многие современные BIOS’ы содержат загрузочное меню, откуда можно изменить приоритет ваших устройств на лету – попробуйте нажать клавишу Escape или F12 при первом появлении чего-либо на экране. Оттуда легко выбрать загрузку с оптического диска.
У машин постарше может не быть такой функции. Тогда во время старта ПК вам придется нажать либо F2, либо клавишу Del, чтобы попасть в BIOS и поменять там порядок загрузки. Обычно эта опция сидит в меню «Boot», и вам следует сохранить изменения, чтобы загрузиться с оптического диска. Та же процедура имеет место при загрузке с внешнего привода или USB-брелка, что может пригодиться в интернет-кафе или за корпоративной машиной. [В биосах AWARD эта опция находится в меню "Advanced CMOS Setup"]
ОШИБКА PCI: cannot allocate
Существует много проблем, подобных этой, и большая их часть возникает во время загрузки. Причина тут одна: плохо работающее управление питанием. Виновник – некий ACPI, Advanced Configuration and Power Interface [Усовершенствованный интерфейс конфигурации и управления питанием]. Хотя это стандарт для управления питанием, он досаждает всем уже лет десять. Беда его в том, что драйверы устройств склонны не полностью поддерживать данную спецификацию. При каждом запуске управления питанием вашей машины, например, при загрузке или выходе из режима спячки, определенные устройства сбоят. Установка с Live CD усугубляет проблему: здесь нет такой роскоши, как проверка точного соответствия оборудования при загрузке, и тут не найдешь любой драйвер для любого устройства. Потому-то эта проблема и нередка при установке с Live CD.
Выход здесь только один: отключить ACPI. Иногда это можно сделать из вашего BIOS’а; а если нельзя, придется отключить ACPI во время загрузки. Вначале нажмите Escape, чтобы попасть в меню Grub; там выберите ту опцию, что вы обычно используете. Спуститесь к строке, начинающейся с kernel, и нажмите E, чтобы отредактировать ее. Добавьте в конец acpi=off noapic и нажмите Enter и B, чтобы начать процесс загрузки. Вы увидите, что машина запустится без проблем, и если вы продолжите установку Linux, теперь ваш дистрибутив лучше справится с подбором правильных драйверов.
Проблемы с загрузкой
Нет ошибок гнусней, чем те, что не дают вашей системе загрузиться – потому что нет инструмента решения проблемы. Увы, проблемы с загрузкой таки встречаются. Мы любим устанавливать дистрибутивы, и часто у нас их несколько на одной машине, да иногда еще и Windows на том же диске. Любая из этих установок может испортить процедуру загрузки, а заставить систему заработать снова не очень-то просто.
ОШИБКА Grub…
Если это все, что вы видите при включении машины, значит, повреждено загрузочное меню Grub. Это часть установки Linux, ответственная за загрузку ОС. Единственное, что здесь можно сделать – это запустить Linux с другого носителя, желательно с LiveCD. Дойдя до графического рабочего стола, откройте терминал, перейдите в режим root и введите grub. Кстати, это также пригодится, если пункты меню Grub не содержат разделов Linux.
Наберите find /boot/grub/stage1. Это поиск исходного загрузочного диска, и вы должны получить что-нибудь наподобие (hd0,0) (результат зависит от установки) – так в синтаксисе Grub’а именуются накопители. Теперь надо ввести root (hd0,0) (или ваш результат), чтобы сказать Grub’у, с какого раздела загружаться, затем setup (hd0) для переустановки загрузчика в главную загрузочную запись диска. Теперь после перезапуска компьютера вы сможете загрузиться нормально.
ОШИБКА Out of range
ОШИБКА Fatal server error: no screens found
Такое случается, когда предварительно настроенный экранный режим несовместим с вашим монитором. Нажмите Ctrl+Alt+F1 для перехода в консоль, войдите от имени администратора-root (или воспользуйтесь sudo из обычной учетной записи в Ubuntu). Пользователи дистрибутивов, основанных на Debian, для перенастройки экрана могут ввести dpkg-reconfigure xserver-xorg.
Остальным рекомендуем исправить свои настройки вручную, следующим образом. Во-первых, наберите cd /etc/X11, а затем cp xorg.conf xorg.lxf, чтобы сделать копию исходного файла конфигурации. Теперь откройте этот файл своим любимым редактором для командной строки. Кто не уверен, введите nano xorg.conf. Если вам известна спецификация вашего экрана, прокрутите файл вниз и найдите «Section Monitor». Здесь нужно вручную указать вертикальную и горизонтальную частоты развертки. Если вам неизвестно разрешение вашего экрана, прокрутите еще ниже и найдите раздел Screen. В нем нужно удалить все высокие разрешения экрана, так как мы ищем «наименьший общий знаменатель» (мы бы рекомендовали убрать все, что превосходит 1024x768). Когда графический рабочий стол будет починен, вы сможете увеличить разрешение. Если ни один из этих способов не помог, последний надежный вариант – поменять «Device» на “vesa”, что полностью отключит ваш графический драйвер.
ОШИБКА Kernel panic!
Сообщение «Kernel panic» или «Kernel oops!» – максимальное приближение Linux к Синему Экрану Смерти, который все еще страшит сторонников Microsoft. Как и в случае Windows, при его появлении мало что можно предпринять, разве что отключить питание. Ядро – это сердце системы Linux, и Oops обычно вызывается дурным поведением оборудования, которое отсылает его в неразмеченную область системной памяти. Лучшим решением будет обновление ядра, так как проблема с оборудованием может быть решена в более новой версии. Но чтобы воспользоваться Linux для установки обновления, возможно, придется вернуться к более старой версии ядра в загрузочном меню.
Другой способ – распознавание оборудования-вредителя. Если вы сменили устройство или установили новый драйвер, скорее всего, причина в нем. Иначе вам придется поштучно изымать оборудование и смотреть, загрузилась ли машина. Несмотря на обильный вывод, понятной простому смертному информации сообщается очень мало.
ОШИБКА Неправильное имя пользователя или пароль
Вы удивитесь, узнав, сколько читателей звонят нам и говорят, что забыли свой пароль, или, хуже того, клянутся, что их о пароле и не спрашивали. К счастью, не все потеряно. Вам следует загрузить вашу машину в однопользовательском режиме или в режиме восстановления. Для этого нажмите на клавишу Escape, как только при запуске компьютера исчезнет экран BIOS’а. Вы увидите загрузочное меню Grub.
Если в этом меню нет ни пункта одного пользователя, ни режима восстановления, выберите то ядро, что обычно загружается (как правило, самое верхнее в списке), и нажмите E для редактирования параметров загрузки. Перейдите на строку, начинающуюся с kernel, и опять нажмите E для изменения ее текста. Убедитесь, что курсор стоит в конце строки, и добавьте следующее: rw init=/bin/bash. Нажмите Enter, а затем B, чтобы загрузиться. Это мы изменили опцию загрузки по умолчанию на вход в терминал Bash, а не в обычную сессию. Войдя в безопасный режим или режим восстановления, введите passwd, а затем имя пользователя, чей пароль вы хотите изменить. Без этого команда passwd поменяет пароль root’а. Потом перезагрузите компьютер и используйте уже новый пароль.
Файловая система
Файловая система – это часть ОС Linux, ответственная за считывание и запись файлов, в том числе на внешние устройства. Как правило, она устойчива, но сбои питания и плохое оборудование могут иногда вызывать проблемы. А проблемы файловой системы обычно решать сложно. Для этого используется командная строка.
ОШИБКА Run fsck manually
Есть десятки разновидностей основной ошибки файловой системы. Такие проблемы обычно возникают при загрузке машины, и часто приводят к предупреждению о «Read only» корневой ФС. Это значит, что загрузка удалась, но делать вы ничего не можете. Решение – загрузиться с Live CD, так как при этом жесткий диск не используется и утилита восстановления сможет внести изменения, чтобы исправить проблему. Выполните команду fsck -f /dev/drive, заменив drive на устройство, соответствующее вашему корневому разделу: оно зависит от установки. Например, первый раздел на первом диске обычно называется sda1. Исходная ошибка должна содержать эту информацию. Запускать fsck надо от имени системного администратора; для пользователей Ubuntu это означает, что придется создать учетную запись с Ubuntu Live CD, введя sudo passwd root, а затем sudo bash.
ОШИБКА Устройство занято
Многие из нас используют USB-брелки и внешние жесткие диски, но иногда эти устройства отказываются отмонтироваться от файловой системы. Просто выдернуть их нельзя: тогда потеряются локально кэшированные и еще не записанные данные. Введя в командной строке sync, вы принудительно запишете на устройство все кэшированные данные, но устройство на волю не выйдет. Поможет команда lsof – не исключено, что ее придется установить отдельно. Набрав lsof точка_монтирования, вы получите список системных процессов, обращающихся к файлам устройства на текущий момент; и их следует завершить, чтобы система смогла отмонтировать носитель.
Это также пригодится, если у вас случатся неприятности с отмонтированием привода CD или DVD, поскольку техника выполнения та же (только здесь не нужно делать sync, ведь эти устройства только для чтения). Вот примерная сессия:
> umount /mnt/content umount: /mnt/content: device is busy > lsof /mnt/content COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME smbd 23222 root cwd DIR 8,33 4096 2 /mnt/content > kill -9 23222 > umount /mnt/content
Сеть
Любителей исправлять неполадки в сети на свете мало. Но в нашем мире, опутанном проводами, этого не избежать. К счастью, пара-тройка ошибок перекрывает большую часть проблем, и мы разрешим их для вас.
ОШИБКА Сервер не найден
Это классическая ошибка при работе с сетью. Включаете машину, ждете с минуту, пока она загрузится, щелкаете по ссылке на любимый сайт… и вместо него вас приветствует ошибка сервера. Проблема – в отсутствии соединения с Интернетом, и причин для этого может быть много. Лучший способ разpешить проблему – идти от главного соединения. Включен ли и работает ли ваш маршрутизатор? Работает ли на маршрутизаторе широкополосное соединение? Если у вас беспроводная сеть, следует, очевидно, проверить беспроводное соединение. В случае проводного Ethernet’а нужно проверить, горят ли оба светодиодных индикатора около кабеля: оранжевый сообщает, что соединение работает, а зеленый мерцает при любых действиях.
Все это в порядке? Ищите проблему в Linux-компьютере. Проверив панель настройки сети вашего дистрибутива и убедившись, что все вроде бы работает как надо, попробуйте несколько утилит командной строки. ifconfig дает не в меру обильный вывод, но это наискорейший способ убедиться, что сетевому соединению присвоен IP-адрес. Поищите либо eth0 для проводного соединения, либо ath0 или wlan0 для беспроводного, и убедитесь, что для него есть осмысленный inet-адрес. Если нет, попробуйте ifconfig eth0 down, и после этого ifconfig eth0 up. Также может пригодиться команда route, проверяющая, что определен только один адрес шлюза. Если их два, удалите лишнее, введя route del адрес_шлюза.
ОШИБКА MSN не подключается
Неважно, каким клиентом вы пользуетесь. Все они – Pidgin, Kopete, KMess и AMSN – иногда отказываются соединиться с сервером. Обычно это бывает при смене протокола сервера, и тогда каждый из этих клиентов нужно обновить. Но такое случается и из-за локальной сети. MSN чувствителен к брандмауэрам и перенаправлению портов. Решение – использовать HTTP, обычно эта опция присутствует в окне настройки. HTTP – тот же протокол, что используется для передачи данных Web, и с соединением у вас проблем не возникнет.
Приложения
В этой области применения Linux мы все испытываем затруднения. Пользователей OS X и Windows часто удивляет, как это сторонники Linux не могут просто скачать пакет из Интернета, дважды щелкнуть по нему и установить приложение без каких-то проблем. Они могут достать последние версии таких приложений, как GIMP, Inkscape и OpenOffice.org, просто скачав файл и запустив его. Пользователям Linux тут не повезло, и проблему усугубляет то, что многие дистрибутивы используют разные способы установки.
ОШИБКА Permission denied
Эта ошибка – защитная реакция системы, она часто возникает при попытке запустить приложения в командной строке и редактировать определенные файлы. Linux ограничивает доступ к некоторым файлам и каталогам, и даже если учетная запись пользователя взломана, злоумышленник не сможет испортить важные системные приложения. Такая система практичнее всего на сервере или на машине с сотней пользовательских записей. И хотя это важно и для однопользовательской машины, нет особой беды в том, чтобы немного отойти от предосторожности и дать себе права на запуск или открытие таких файлов.
Вы можете сделать это и из рабочего стола, и из командной строки, но потребуется использовать учетную запись администратора, чтобы иметь право менять требуемые разрешения. В командной строке систем типа Debian это означает ввод sudo bash, а в не-Debian – просто su. Можно поменять владельца файла, введя chown имя_пользователя имя_файла; ввод аргумента -R рекурсивно поменяет владельца файлов в каталоге. Но это не поможет другим пользователям вашей машины: они все еще будут испытывать проблемы с правами доступа. Ответ состоит в установке прав на запуск файла так, чтобы его могли выполнять все. Это достигается командой chmod. Введите chmod +x имя_файла, чтобы дать всем пользователям вашего компьютера права на запуск файла. Аналогично, chmod +rw имя_файла разрешит всем его выполнение и изменение. [Совет из серии «вредных» – защитные механизмы лучше не отключать, а разбираться, почему они вдруг сработали, – прим. ред.].
ОШИБКА Скачанное не запускается!
Как-то раз мы включили на наш DVD демо-версию одной игры, упаковав ее в файл tar.gz. Многие из нас, закаленных на полях Linux, этого даже в голову не взяли. Но нам позвонили несколько новых пользователей Linux (а их-то расположение нам и надо завоевывать!) и спросили, почему не запускается файл tar.gz. Ответ, конечно, в том, что .tar.gz – это архив. Мы объяснили, что он подобен файлу zip, то есть его нужно распаковать в каталог и запустить демо оттуда. Вы сможете сделать это почти во всех графических средах с помощью правого щелчка мыши, или же в командной строке, введя tar xvf имя_файла.tar.gz – ну, новичкам об этом знать не обязательно. Затем найдите файл .bin или .sh и щелкните по нему, тем самым запустив демо. Если вам опять не повезет, придется, видимо, набрать ./install.sh из командной строки в только что созданном каталоге. От лица всех защитников Linux приносим извинения за неудобства.
ОШИБКА Flash не проигрывается
Новые пользователи Linux, войдя в свежеустановленную систему, очень обижаются, что они не могут проводить круглые сутки на YouTube. Да, очень немногие дистрибутивы Linux включают по умолчанию поддержку воспроизведения Flash. Хуже того, безнадежно оптимистичное заявление браузера о том, что установка доступна за несколько щелчков мыши, оказывается, как правило, ложью. Однако есть надежный способ заставить работать поддержку Flash.
Поищите в Google «adobe flash download» и щелкните по первому результату поиска. На новой странице из выпадающего списка «version to download» выберите «tar.gz for linux» и щелкните по соглашению. Файл будет скачан, а вы хорошенько запомните место, куда браузер сохранит его. Затем откройте терминал и введите cd и пробел, после чего укажите путь каталога, где лежит загруженный файл (обычно это ~/Desktop – ваш рабочий стол). Перебравшись туда, введите tar xvf install_flash* для распаковки скачанного пакета, и затем cd в новый каталог. Теперь можете запустить установщик, введя ./flashplayer-installer и следуя экранным подсказкам. Браузер перезапустится, и вы увидите, что Adobe Flash работает. LXF