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

6. Решение разнообразных и наиболее общих проблем.

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

6.1 free выполняет дамп памяти.

В Linux версии 1.3.57 и выше формат /proc/meminfo был изменён до такой степени, что выполнение free стало непонятным.

Скачайте последнюю версию с sunsite.unc.edu в архиве /pub/Linux/system/Status/ps/procps-0.99.tgz.

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

6.2 Мои часы идут слишком неправильно.

В вашем компьютере существует два вида часов. Аппаратные (CMOS) часы идут даже, когда компьютер выключен, и используются при запуске системы и DOS'ом (если вы используете DOS). Обычное системное время, показываемое и устанавливаемое при помощи "date", настраивается ядром при загрузке Linux.

Вы можете отображать время по часам CMOS или установить другие часы из программы /sbin/clock - см. "man 8 clock".

Существует ряд разных программ, корректирующих каждые часы по отдельности или одновременно для системного смещения или устанавливающие время через сеть. Некоторые из них уже могут быть установлены в вашей системе. Попробуйте поискать adjtimex (корректирует для смещения), netdate и getdate (получает время из сети) или xntp (демон с полным набором функций точного сетевого времени).

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

6.3 Похоже, что скрипты setuid на работают.

Всё правильно. Эта функция была специально отключена в ядре Linux, потому что скрипты setuid почти всегда являются дырой в системе безопасности. Sudo и SuidPerl  могут обеспечить более высокий уровень безопасности, чем скрипты setuid или программы, особенно, если разрешения на выполнение ограничены для определённого ID пользователя или ID группы.

Если вы хотите узнать, почему скрипты setuid являются дырой в системе безопасности, прочтите FAQ на comp.unix.questions.

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

6.4 Объём свободной памяти, сообщаемый программой free, не соответствует действительности.

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

Кэш дискового буфера стремится возрасти вскоре после запуска Linux. По мере того, как вы загружаете программы и используете файлы, содержимое сбрасывается в кэш. Этот процесс стабилизируется через некоторое время.

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

6.5 Когда я увеличиваю объём памяти, работа системы замедляется.

Это общий симптом сбоя при кэшировании дополнительной памяти. Наверняка проблема связана с вашей материнской платой.

Иногда вам необходимо включить кэширование определённых областей в настройках вашего BIOS. Загляните в настройки CMOS и если там есть опция включения кэширования новой области памяти, которая на данный момент отключена. Вероятно это наиболее общая проблема на 486-х машинах.

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

Иногда вам необходимо переставить джамперы для включения кэширования.

Некоторые материнские платы не кэшируют всю RAM, если отношение RAM к величине кэша больше, чем ожидает ваше "железо". Обычно полный 256-килобайтовый кэш решает эту проблему.

Если вы не уверены, прочтите руководство. Если вы всё ещё не справились с проблемой из-за того, что документации недостаточно, вы можете разместить сообщение на comp.os.linux.hardware, приведя все детали - изделие, номер модели, код даты и т.д., чтобы пользователи Linux смогли избежать этого.

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

6.6 Некоторые программы (например xdm) не позволяют мне войти в систему.

Возможно вы используете программы, не поддерживающие скрытые (shadowed) пароли, а в вашей системе используются скрытые пароли.

Если это так, вы должны откомпилировать версии данных программ, поддерживающие скрытые пароли. Пакет программ скрытых паролей можно найти на tsx-11.mit.edu:/pub/linux/sources/usr.bin/shadow/. Они представляют собой исходники. Двоичные файлы возможно находятся в директории linux/binaries/usr.bin/.

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

6.7 Некоторые программы позволяют мне войти в систему без пароля.

Скорее всего у вас та же проблема, что и в вопросе "Некоторые программы (например xdm) не позволяют мне войти в систему." с дополнительной заморочкой.

Если вы используете скрытые пароли, вам необходимо добавить латинскую букву "х" в поле пароля файла /etc/passwd для каждой учётной записи. При этом, если программа не знает скрытого пароля, она не будет предполагать, что это учётная запись без пароля, и позволять входить в систему кому угодно.

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

6.8 Моя машина работает очень медленно, когда я запускаю GCC / X / ...

У вас может быть слишком мало физической памяти. Если объём вашей памяти меньше всех одновременно запущенных программ, Linux сбрасывает излишек данных в swap на жёсткий диск, который при этом жутко трещит. Чтобы решить эту проблему, не запускайте одновременно так много программ или купите больше памяти. Также вы можете немного уменьшить объём используемой памяти, откомпилировав и используя ядро с меньшим набором опций. Смотрите "Как мне обновить/перекомпилировать ядро?".

Вы можете указать, какой объём памяти и swap вы хотите использовать, при помощи программы free или следующеё команды:


cat /proc/meminfo

Если ваше ядро настроено для работы с виртуальным диском, то это использует часть памяти и вызывает замедление работы системы. Используйте LILO или rdev, чтобы сообщить ядру не использовать виртуальный диск (смотрите документацию к LILO или наберите man rdev).

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

6.9 Я могу войти в систему только как root.

Возможно у вас проблемы с разрешениями или у вас есть файл /etc/nologin.

В последнем случае добавьте строчку rm -f /etc/nologin в ваши /etc/rc.local or /etc/rc.d/* скрипты.

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

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

6.10 На моём экране полно странных символов вместо букв.

Возможно вы по ошибке отправили на дисплей какие-то двоичные данные. Наберите '\033c', чтобы избавиться от этого. Многие дистрибутивы Linux содержат команду "reset", осуществляющую это.

Если это не помогло, попробуйте команду непосредственного сброса экрана:


echo <Ctrl-V><Ctrl-O>

Она устанавливает шрифт консоли Linux по умолчанию. Помните, что надо удерживать клавишу Control и вводить символ, вместо того, чтобы просто набирать, например, 'Ctrl-V'. Последовательность


echo <Ctrl-V><Esc>c

приведёт к полному сбросу содержимого экрана. Если в командной строке шелла остались данные после вывода на экран двоичного файла, несколько раз нажмите Ctrl-C, чтобы восстановить командную строку шелла.

[Бернард Габлер (Bernhard Gabler)]

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

6.11 Я запорол свою систему и не могу войти в неё, чтобы исправить.

Перезагрузитесь с аварийной дискеты или пары дискет. Например, с пары загрузочной и root'овской дискет Slackware из поддиректории install дистрибутива Slackware.

Есть ещё два пакета для создания аварийных дискет на sunsite.unc.edu/pub/Linux/system/Recovery. Они являются лучшими на сегодняшний день, потому как они содержат своё собственное ядро, поэтому вы можете не опасаться отсутствия устройств и файловых систем.

Перейдите в командную строку шелла и примонтируйте ваш жёсткий диск командой вроде этой:


mount -t ext2 /dev/hda1 /mnt

При этом ваша файловая система станет доступной под директорией /mnt и вы сможете устранить вашу проблему. Не забудьте отмонтировать ваш жёсткий диск перед перезагрузкой (сначала перейдите в любую другую директорию командой cd, иначе будет выдано сообщение о том, что ресурс занят).

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

6.12 Я нашёл огромную дыру в системе безопасности rm!

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

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

6.13 Программы lpr(1) и/или lpd(8) не работают.

Сначала убедитесь, что ваш порты /dev/lp* правильно настроены. Его IRQ (если таковое имеется) и адрес порта должны соответствовать настройкам карты принтера. У вас должна быть возможность отправлять файлы непосредственно на принтер:


cat the_file >/dev/lp1

Если lpr выдаёт сообщение типа "myname@host: host not found", это может означать, что петлевой интерфейс TCP/IP - lo - работает неправильно. Поддержка петлевого механизма встроена в большинство распространяемых ядер. Проверьте, настроен ли интерфейс при помощи команды ifconfig. По общепринятому в Internet соглашению номер сети - 127.0.0.0, а адрес локального хоста - 127.0.0.1. Если всё настроено правильно, у вас должен быть возможность получить сетевой теледоступ к вашей собственной машине и получить командную строку login.

Убедитесь, что файл /etc/hosts.lpd содержит сетевое имя машины.

Если на вашей машине установлена сетевая версия lpd, как одна из тех, что поставляются вместе с LPRng, убедитесь, что файл /etc/lpd.perms правильно настроен.

Также загляните в документ Printing-HOWTO ("Где я могу найти HOWTO и другую документацию?").

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

6.14 Время создания/изменения файлов в разделе MS-DOS установлено неправильно.

Это баг в программе "clock" (часто обнаруживается в /sbin). Она неверно подсчитывает смещение часового пояса, путая секунды с минутами или что-то вроде этого. Найдите последнюю версию.

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

6.15 Как мне заставить LILO загрузить файл vmlinux?

Из ядра версии 1.1.80 в запакованном образе ядра, в котором находится всё, что необходимо для LILO. Образ находится в файле arch/i386/boot/zImage. Файл vmlinux в корневой директории является распакованным ядром, и вы не должны пытаться загрузить его.

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


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