Index: head/ru_RU.KOI8-R/books/faq/book.xml =================================================================== --- head/ru_RU.KOI8-R/books/faq/book.xml (revision 46672) +++ head/ru_RU.KOI8-R/books/faq/book.xml (revision 46673) @@ -1,11010 +1,7543 @@ -10-CURRENT"> -X"> -HEAD"> - -X"> -9-STABLE"> -RELENG_9"> - - -X"> -8-STABLE"> -RELENG_8"> - - - -X"> -7-STABLE"> -RELENG_7"> - - + +11-CURRENT"> +X"> +head/"> +X"> +10-STABLE"> +stable/10/"> + +X"> +9-STABLE"> +stable/9/"> + +X"> +8-STABLE"> +stable/8/"> + ]> Часто задаваемые вопросы по &os; &rel3.relx;, &rel2.relx; и &rel.relx; - The &os; Documentation Project + Проект документации &os; 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 + 2013 + 2014 + 2015 The &os; Documentation Project &legalnotice; &tm-attrib.freebsd; - &tm-attrib.3com; &tm-attrib.adobe; - &tm-attrib.creative; - &tm-attrib.cvsup; &tm-attrib.ibm; &tm-attrib.ieee; &tm-attrib.intel; - &tm-attrib.iomega; &tm-attrib.linux; &tm-attrib.microsoft; - &tm-attrib.mips; - &tm-attrib.netscape; + &tm-attrib.netbsd; &tm-attrib.opengroup; - &tm-attrib.oracle; &tm-attrib.sgi; - &tm-attrib.sparc; &tm-attrib.sun; - &tm-attrib.usrobotics; - &tm-attrib.xfree86; &tm-attrib.general; $FreeBSD$ - Этот документ является так называемым FAQ (Frequently Asked - Questions), то есть списком Часто Задаваемых Вопросов по &os; версий + Этот документ является так называемым + FAQ (Frequently Asked Questions), + то есть списком Часто Задаваемых Вопросов по &os; версий &rel3.relx;, &rel2.relx; и &rel.relx;. - Если не оговорено обратное, предполагается, что все замечания - справедливы для версий &os; &rel3.relx; и выше. - Если вы - хотите помочь в составлении этого документа, пошлите письмо в &a.doc;. - Последняя редакция этого документа всегда доступна с + Мы прилагаем все усилия, чтобы сделать этот + FAQ максимально + информативным; если у вас есть идеи по его усовершенствованию, + шлите их на адрес &a.doc;. + + Последняя редакция этого документа всегда доступна с Web-сервера &os;. Его также можно получить в виде одного большого - HTML-файла по HTTP или в виде обычного текстового файла, файла - формата &postscript;, PDF или другого формата с FTP-сервера. - Вы также можете осуществить поиск в - FAQ. + HTML-файла по HTTP или в ряде других форматов с FTP-сервера. Вступление - Добро пожаловать в FAQ по &os; - &rel3.relx;, &rel2.relx; и &rel.relx;! - - Как и обычный FAQ конференций Usenet, этот документ содержит - большинство из часто задаваемых вопросов, касающихся операционной системы - &os; (и, конечно же, ответы на них). Первоначально предназначенный для - уменьшения потока сообщений и избежания повторения одних и тех же - вопросов, постепенно FAQ превратился в ценный источник информации. - - Мы прилагаем все усилия, чтобы сделать этот FAQ максимально - информативным; если у вас есть идеи по его усовершенствованию, - пожалуйста, напишите нам на адрес &a.doc;. - &os; - что это такое? - В двух словах, &os; - это &unix;-подобная операционная - система для платформ AMD64 и &intel; EM64T, &i386;, PC-98, IA-64, - &arm;, &powerpc; и &ultrasparc;, разработанная на основе операционной - системы 4.4BSD-Lite с некоторыми - усовершенствованиями, взятыми из 4.4BSD-Lite2 - Калифорнийского Университета (Беркли). Также она косвенно + &os; - это современная операционная система для настольных + компьютеров, ноутбуков, серверов и встраиваемых систем + с поддержкой большого количества платформ. + + В основе &os; лежит операционная система + 4.4BSD-Lite Калифорнийского Университета (Беркли) + с некоторыми усовершенствованиями из 4.4BSD-Lite2. + Также она косвенно базируется на 386BSD (BSD Net/2, перенесённой на платформу &i386; Уильямом Джолитцем (William Jolitz)), хотя от того первоначального - кода осталось очень мало. Более подробные объяснения того, что - представляет из себя &os; и для чего она может вам пригодиться, - можно найти на домашней - странице &os;. + кода осталось очень мало. &os; используется компаниями, Интернет-провайдерами, научными работниками, профессионалами в вычислительной технике, студентами и рядовыми пользователями по всему миру для работы, образования и отдыха. - Для более детального знакомства с &os;, пожалуйста, - обратитесь к - Руководству по &os;. + Для более детального знакомства с &os; обратитесь к + Руководству + по &os;. Какова цель &os;? - Цель, преследуемая проектом &os; - это предоставление - программного обеспечения, которое может быть использовано в любых - целях без каких бы то ни было ограничений. Многие из нас - вкладывают значительные усилия в её разработку (и проектирование) и + Цель проекта &os; - предоставить быструю и стабильную + операционную систему общего назначения, которую можно + использовать в любых целях без каких-либо ограничений. + + + + + + Есть ли в лицензии &os; какие-то ограничения? + + + + Да. Эти ограничения не касаются аспектов использования + кода, но главным образом описывают отношение к Проекту &os;. + Текст лицензионного соглашения доступен здесь, + и вкратце он может быть изложен следующим образом: + + + + Не говорите, что это написано вами. + + + + Не судитесь с нами, если что-то не работает. + + + + Не удаляйте и не изменяйте лицензию. + + + + Многие из нас вкладывают в проект значительные усилия и определённо были бы не против получения финансовой поддержки, но требовать её мы не будем. Мы надеемся, что наша основная и самая значительная миссия - предоставить код всем желающим, для любых целей, так чтобы он нашел самое широкое применение и принёс наибольшую пользу. Это, на наш взгляд, одна из самых фундаментальных целей Free Software, которую мы с энтузиазмом поддерживаем. Часть исходного кода нашей системы, подпадающая под действие GNU General Public License (GPL) или GNU Library General Public License (LGPL), имеет несколько больше ограничений, хотя и представляет собой навязывание доступа к исходным текстам, а не наоборот, как обычно. Из-за дополнительных сложностей, которые могут возникнуть в случае коммерческого использования программного обеспечения GPL, мы стараемся, где только это возможно, заменить подобное программное обеспечение аналогичным, но подпадающим под менее строгую лицензию &os;. - - Есть ли в лицензии &os; какие-то ограничения? - - - - Да. Эти ограничения не касаются того, как именно вы - используете код, но главным образом описывают ваше отношение при - этом в целом к Проекту &os;. Если у вас есть серьезные - проблемы с лицензированием, прочтите собственно текст - лицензионного соглашения. Упрощенно оно может быть вкратце - изложено следующим образом. - - - - Не говорите, что это написано вами. - - - - Не судитесь с нами, если что-то не работает. - - - - - - Может ли &os; заменить операционную систему, используемую мною сейчас? Для большинства людей, да. Но этот ответ не так уж однозначен. Большинство пользователей на самом деле не используют операционную систему. Они работают с приложениями. Именно прикладные программы и используют операционную систему. &os; разработана для того, чтобы дать надежное и полнофункциональное окружение для приложений. Она поддерживает широкий спектр Web-браузеров, офисных пакетов, программ для работы с электронной почтой, графических пакетов, программных сред, сетевых серверов и - практически все, что вы можете захотеть. Большинство этих + многое другое. Большинство этих приложений могут быть получено из Коллекции Портов. - Если вам необходимо использовать приложение, которое доступно - только для одной операционной системы, вам просто нельзя заменять - операционную систему. Однако есть вероятность, что похожая - программа существует для &os;. Если вам нужен стабильно - работающий сервер для офиса или сервер Интернет, надежная рабочая - станция или просто возможность выполнять работу без сбоев, &os; + Если приложение доступно только для одной операционной + системы, то нельзя всего лишь заменить эту операционную + систему. Однако есть вероятность, что похожая + программа существует для &os;. В качестве сервера для офиса, + или сервера Интернет, или надежной рабочей станции &os; практически всегда справится со всем, что вам нужно. Многие пользователи по всему миру, включая как новичков, так и опытных администраторов &unix;, используют &os; в качестве своей единственной настольной операционной системы. - Если вы переходите на &os; с какого-то другого варианта - &unix;, вы уже знаете большинство ваших потребностей. Если вы - привыкли к таким графическими операционными системам, как &windows; - или старым версиям &macos;, будьте готовы к затратам - дополнительного - времени на изучение подхода &unix; к работе. Этот FAQ и Руководство по - &os; являются прекрасным способом начать это + Пользователи при переходе на &os; с другого варианта + &unix; найдут для себя &os; очень похожей. Пользователей + &windows; и &macos;, напротив, может заинтересовать PC-BSD, + дистрибутив на основе &os;. Пользователям, которые не + использовали до этого &unix;, понадобится затратить + дополнительное время на изучение подхода &unix; к работе. + Этот FAQ и Руководство по + &os; являются прекрасным способом начать это изучение. Почему система называется именно &os;? Она может использоваться безо всяческих выплат, даже для извлечения выгоды. Все исходные тексты операционной системы свободно доступны, на её использование в других разработках (как коммерческих, так и некоммерческих) и дальнейшее распространение наложены минимальные ограничения. Любой, у кого есть усовершенствования или исправления, может предоставить свой код и он будет (правда, с парой оговорок) добавлен в исходные тексты системы. Следует отметить, что слово free - используется здесь в двух смыслах, один означает - бесплатно, а другой вы можете делать всё, + используется здесь в двух смыслах: один означает + бесплатно, а другой делать всё, что хотите. За исключением пары вещей, которые вы не можете делать с &os;, например, претендовать на то, что являетесь её разработчиком, на самом деле можно делать с ней всё, что вам заблагорассудится. В чём заключается разница между &os; и NetBSD, OpenBSD и другими операционными системами с открытыми кодами семейства BSD? - Джеймс Ховард (James Howard) создал хорошее описание истории и - различий между различными проектами под названием - Семейное древо BSD, в котором даётся подробный ответ на - этот вопрос. + Джеймс Ховард (James Howard) создал хорошее описание + истории и различий между различными проектами под + названием Семейное + древо BSD, в котором даётся подробный ответ на + этот вопрос. Некоторая информация там устарела, но + историческая часть остаётся точной. + + Многие из проектов семейства BSD обмениваются + изменениями и готовым кодом даже сегодня. Все они + происходят от общего предка. + + Цели проекта &os; описаны выше в . Цели других наиболее + известных проектов семейства BSD можно кратко описать + так: + + + + OpenBSD в первую очередь ориентируется на + безопасность операционной системы. Команда OpenBSD + написала &man.ssh.1; и &man.pf.4;, которые затем были + портированы во &os;. + + + + NetBSD ориентируется на простое портирование на + другие аппаратные платформы. + + + + DragonFly BSD отделилась от &os; 4.8, + и с тех пор в ней были разработаны многие интересные + собственные функциональные возможности, включая + файловую систему HAMMER и поддержку vkernels + — запуска ядра в пользовательском режиме. + + Какова последняя версия &os;? - - На любом этапе разработки &os; может существовать несколько параллельных веток. Релизы &rel.relx; выполняются из ветки &rel.stable;, а релизы &rel2.relx; выполняются из &rel2.stable;. - До выпуска 8.0 линейка &rel3.relx; была + До выпуска 9.0 линейка &rel2.relx; была известна как -STABLE. - Однако к моменту выхода 8.0 линейка &rel3.relx; + Однако к моменту выхода &rel.head.relx; линейка &rel2.relx; получит статус extended support (расширенная поддержка), и исправления будут вноситься только для серьезных - проблем, к примеру исправления, связанные с безопасностью. Из - ветки &rel3.stable; новые релизы выпускаться не будут, ветка + проблем, к примеру исправления, связанные с безопасностью. + - Версия - &rel.current;, выпущенная &rel.current.date;, является - самым последним релизом в ветке &rel.stable;. - Версия - &rel2.current;, выпущенная &rel2.current.date;, является - самым последним релизом в ветке &rel2.stable;. + Версия &rel.current;, + дата выхода &rel.current.date;, является последним релизом + в ветке &rel.stable;. Версия &rel2.current;, + дата выхода &rel2.current.date;, является последним + релизом в ветке &rel2.stable;. Если вкратце, то ветка -STABLE предназначена поставщикам услуг Internet, корпоративным пользователям, а также всем тем, кому в первую очередь нужна надёжность и минимальное количество отличий от последнего релиза по сравнению с новыми (и, возможно, ненадёжно работающими) возможностями последнего снэпшота -CURRENT. - Релизы можно делать из любой ветки, но - -CURRENT можно использовать только в том - случае, если вы уверены, что готовы к постоянным (по - сравнению со -STABLE) изменениям в работе + Релизы можно делать из любой ветки, но + -CURRENT предназначен для + пользователей, которые готовы к постоянным (по сравнению + со -STABLE) изменениям в работе системы. Релизы делаются раз в несколько месяцев. Хотя многие стараются отслеживать актуальное состояние исходных текстов &os; (обратите внимание на вопросы о &os.current; и &os.stable;), делать это не обязательно, так как исходные тексты постоянно меняются. - Более полную информацию о релизах &os; можно получить со - страницы о - Процессе выпуска релизов на Web-сайте &os;. + Более полную информацию о релизах &os; можно получить + на странице Информации + о подготовке релизов и на странице Справочника + &man.release.7;. Что такое &os;-CURRENT? - + &os.current; - это версия операционной системы, находящаяся в стадии разработки, которая должна потом стать новой веткой &os.stable;. Таким образом, она представляет реальный интерес только для разработчиков системы и её фанатов. - Обратитесь к + Обратитесь к соответствующему разделу Руководства для прояснения деталей работы с -CURRENT. - Если вы не специалист по операционным системам или не в - состоянии отличить реальную проблему от временных явлений, вы не - должны использовать &os.current;. Эта ветвь зачастую меняется - очень быстро и иногда может быть не работоспособна. - Те, кто используют &os.current;, должны быть - в состоянии анализировать любые проблемы и сообщать о них, если - это действительно ошибки, а не глюки. Сообщения - типа make world produces some error about groups, - отправленные в &a.current;, могут быть восприняты - пренебрежительно. + Пользователям, не знакомым с &os;, не + следует использовать &os.current;. Эта ветвь зачастую меняется + очень быстро и иногда из-за ошибок может быть не работоспособна. + Те, кто используют &os.current;, должны быть в состоянии + изучить проблему, найти причину и сообщить о этом. - Ежемесячно из веток -CURRENT и - -STABLE делаются снэпшоты. + Из веток -CURRENT и + -STABLE выпускаются снэпшоты &os;. Их предназначение: Тестирование самой последней версии программы установки системы. Дать людям, которые хотят работать с -CURRENT или -STABLE, но не имеют времени или возможности (пропускной способности) для отслеживания ежедневных изменений, простой способ её установки. Фиксация точки для последующих ссылок в случае, - если позже мы что-нибудь очень сильно сломаем. (Хотя CVS, как + если позже мы что-нибудь очень сильно сломаем. (Хотя + Subversion, как правило, не позволяет случиться ничему такому ужасному.) Все новые возможности, которым требуется тестирование, должны иметь как можно больше потенциальных тестеров. Не утверждается, что всякий снэпшот -CURRENT имеет качество - готового продукта. Если вам нужна стабильно - работающая и полностью оттестированная система, то необходимо - дождаться выхода полного релиза или воспользоваться снэпшотами - -STABLE. + готового продукта. Если нужна стабильно + работающая и полностью оттестированная система, то + придерживайтесь использования полных релизов или + используйте снэпшоты -STABLE. Снэпшот-релизы доступны непосредственно отсюда. - Официальные снэпшоты постоянно генерируются каждый месяц - для всех активно разрабатываемых веток. Также ежедневно - делаются снэпшоты популярных веток &arch.i386; и &arch.amd64; - и доступны на http://snapshots.us.freebsd.org/. + Официальные снэпшоты постоянно генерируются + для всех активно разрабатываемых веток. В чём смысл &os;-STABLE? После того, как была выпущена &os; 2.0.5, разработка &os; - разделилась на две части. Одна ветка получила название - -STABLE, а другая - -CURRENT. + разделилась на две части. Одна ветка получила название -STABLE, + а другая -CURRENT. &os;-STABLE предназначена для провайдеров услуг Интернет и других коммерческих пользователей, для которых неожиданные изменения или экспериментальные возможности весьма нежелательны. В неё вносятся только хорошо оттестированные исправления и другие небольшие последовательные усовершенствования. С другой стороны, &os;-CURRENT являлась единой веткой, не разрываемой с момента выхода версии 2.0 и ведущей к &rel.current;-RELEASE и последующим релизам. Для получения более подробной информации по веткам обратитесь к - разделу статьи + разделу статьи Подготовка релизов &os;: Создание ветки релиза. Статус веток и расписание предстоящих релизов можно получить на странице Информация о подготовке релизов. - Ветвь 2.2-STABLE была завершена выходом релиза 2.2.8. Ветвь - 3-STABLE была завершена выходом релиза 3.5.1, последнего из - 3.X. Ветвь 4-STABLE была завершена - выходом релиза 4.11, последнего из 4.X. - Единственными изменениями в этих ветвях могут быть только - исправления ошибок, касающихся безопасности. Поддержка ветви - 5-STABLE была завершена выходом релиза 5.5, последнего из - 5.X. Поддержка ветви 6-STABLE - продолжится некоторое время, но в основном будет касаться - исправления ошибок в информационной защите и других серьёзных - вопросах. - Активно разрабатываемой веткой -STABLE является &rel.current;-STABLE. Последним релизом в ветке &rel.current;-STABLE является &rel.current;-RELEASE, выпущенный &rel.current.date;. Активно разрабатываемой веткой -CURRENT является ветка &rel.head;, которая движется к созданию следующего поколения &os;. Прочтите ответ на вопрос Что такое &os;-CURRENT? для получения более подробной информации об этой ветке. В какой момент выпускаются новые версии &os;? &a.re; выпускает новую старшую версию &os; в среднем каждые 18 месяцев и младшие версии каждые 8 месяцев. Даты релизов обычно объявляются заранее, так что те, кто работает над системой, знают, когда их проекты должны быть закончены и протестированы. Период тестирования предшествует выходу каждого релиза, для того, чтобы удостовериться в том, что добавление новых возможностей не повлияло на стабильность работы релиза. Многие пользователи расценивают такую осторожность как одну из приятнейших черт &os;, хотя необходимость дожидаться -STABLE для получения всех этих новых возможностей может несколько разочаровывать. Дополнительная информация о процессе подготовки релиза (в том числе планы выпуска последующих релизов) может быть найдена на страницах Web-сайта &os;, посвящённых выпуску релизов. - Для тех, кому нужно или хочется, ежедневно выпускаются - бинарные релизы, как это описано выше. + Для тех, кому нужно или хочется, еженедельно выпускаются + бинарные снапшоты, как описано выше. Кто разрабатывает &os;? Решения, которые касаются ключевых моментов в проекте &os;, такие, как общее направление развития проекта или кто может добавлять код к дереву исходных текстов, принимаются основной командой разработчиков (Core Team), состоящей из 9 человек. Также существует многочисленная группа, состоящая из более чем 350 - так называемых + так называемых коммиттеров (committers), которые могут вносить изменения прямо в дерево исходных текстов &os;. Однако большинство нетривиальных изменений широко обсуждается в списках рассылки, и не существует никаких ограничений на участие в подобных дискуссиях. Где можно найти &os;? Все основные релизы &os; доступны по FTP с FTP-сервера &os;: - Последний релиз &rel.stable;, &rel.current;-RELEASE, - можно найти в - каталоге с &rel.current;-RELEASE. + Последний релиз &rel.stable;, + &rel.current;-RELEASE, можно найти в каталоге + &rel.current;-RELEASE. - - Снэпшот-релизы для веток -CURRENT и -STABLE выпускаются ежемесячно, но - они нужны исключительно для разработчиков и тех, кто тестирует - самые последние наработки. + Снэпшот-релизы + для веток -CURRENT и + -STABLE выпускаются + ежемесячно, но они нужны исключительно для + разработчиков и тех, кто тестирует самые последние + наработки. - Последний релиз &rel2.stable;, &rel2.current;-RELEASE, - можно найти в - каталоге с &rel2.current;-RELEASE. + Последний релиз &rel2.stable;, + &rel2.current;-RELEASE, можно найти в каталоге + &rel2.current;-RELEASE. - - - Последний релиз &rel3.stable;, &rel3.current;-RELEASE, - можно найти в - каталоге с &rel3.current;-RELEASE. - Информация о получении/приобретении &os; на CD, DVD и других носителях доступна в Руководстве. Как можно получить доступ к базе сообщений о проблемах (Problem Report)? - База данных всех сообщений пользователей о проблемах может быть - запрошена с помощью нашего - Web-интерфейса. + База данных всех сообщений пользователей о проблемах + может быть запрошена с помощью нашего Web-интерфейса. - Команда &man.send-pr.1; может быть использована для передачи - и изменения сообщений о проблемах через электронную почту. - Альтернативно можно использовать Web-интерфейс для отсылки - сообщений об ошибках через браузер. + Можно использовать Web-интерфейс + для отсылки сообщений об ошибках через браузер. - Перед тем, как посылать сообщение об ошибке, пожалуйста, + Перед тем, как посылать сообщение об ошибке, прочтите статью Составление сообщений о проблеме во &os; о том, как писать хорошие сообщения об ошибках. - - - - Другие источники информации. - - - - Пожалуйста, посмотрите список имеющейся документации на - главной странице сайта &os;. - - Документация и поддержка Есть ли хорошие книги по &os;? - В рамках проекта создан широкий спектр документации, которая - доступна on-line по следующей ссылке: http://www.FreeBSD.org/docs.html. Кроме того, - в Библиографии - в конце этого FAQ и в Руководстве - имеются ссылки на другие рекомендуемые для чтения книги. + В рамках проекта создан широкий спектр документации, + которая доступна on-line по следующей ссылке: http://www.FreeBSD.org/docs.html. + Кроме того, в Библиографии в конце этого + FAQ и в Руководстве + имеются ссылки на другие рекомендуемые для чтения + книги. Есть ли версии документации в другом формате, например, в виде обычного текста ASCII или &postscript;? Да. Документация имеется в нескольких различных форматах и упакованная разными способами на FTP-сервере &os;, и находится она в каталоге /pub/FreeBSD/doc/. Документация подразделяется на категории различными способами. Это включает: Имя документа, например, faq или handbook. Язык и кодировка документа. Они опираются на имена - локализаций, которые вы найдёте в каталоге - /usr/share/locale - вашей системы &os;. - На данный момент для документации поддерживаются следующие + локализаций, которые находятся в каталоге + /usr/share/locale в системе &os;. + На данный момент поддерживаются следующие языки и кодировки: Кодировка Язык en_US.ISO8859-1 Английский (США) bn_BD.ISO10646-1 Бенгальский или Бангла (Бангладеш) da_DK.ISO8859-1 Датский (Дания) de_DE.ISO8859-1 Немецкий (Германия) el_GR.ISO8859-7 Греческий (Греция) es_ES.ISO8859-1 Испанский (Испания) fr_FR.ISO8859-1 Французский (Франция) hu_HU.ISO8859-2 Венгерский (Венгрия) it_IT.ISO8859-15 Итальянский (Италия) ja_JP.eucJP Японский (Япония, кодировка EUC) mn_MN.UTF-8 Монгольский (Монголия, кодировка UTF-8) nl_NL.ISO8859-1 Голландский (Нидерланды) no_NO.ISO8859-1 Норвежский (Норвегия) pl_PL.ISO8859-2 Польский (Польша) pt_BR.ISO8859-1 Португальский (Бразилия) ru_RU.KOI8-R Русский (Россия, кодировка KOI8-R) sr_YU.ISO8859-2 Сербский (Сербия) tr_TR.ISO8859-9 Турецкий (Турция) - zh_CN.GB2312 + zh_CN.UTF-8 Упрощённый китайский (Китай, кодировка - GB2312) + UTF-8) - zh_TW.Big5 + zh_TW.UTF-8 Традиционный китайский (Тайвань, кодировка - Big5) + UTF-8) Некоторые документы могут иметься не на всех языках. Формат документа. Мы создаём документацию в нескольких различных форматах. У каждого из форматов имеются свои плюсы и свои минусы. Некоторые форматы лучше подходят для чтения в on-line, когда как другие предназначены для получения эстетично выглядящей на бумаге копии. Наличие документации во всех этих форматах обеспечивает возможность прочтения нашими пользователями любой её части как с экрана монитора, так и на бумаге после вывода на печать. На данный момент поддерживаются следующие форматы; Формат Значение html-split Набор маленьких связанных друг с другом HTML-файлов. html Один большой HTML-файл, полностью содержащий документ. pdf Adobe's Portable Document Format ps &postscript; rtf - Rich Text Format от Microsoft + Rich Text Format от µsoft; txt Обычный текст Номера страниц при загрузке Rich Text Format в Word автоматически не обновляются. Для обновления нумерации нажмите CtrlA , CtrlEnd, F9 после загрузки документа. - Способ сжатия и создания архива. Сейчас используется - три варианта. + Способ сжатия и создания архива. В случае формата html-split, файлы архивируются с помощью &man.tar.1;. Получающийся файл .tar затем подвергается сжатию по схемам, подробно описываемым далее. - Все другие форматы генерируют один файл с именем - type.format - (то есть article.pdf, - book.html, и так далее). + Все другие форматы генерируют один файл. + Например, article.pdf, + book.html, и так далее. - Эти файлы затем сжимаются по двум схемам сжатия. + Эти файлы затем сжимаются по двум схемам сжатия, + zip или bz2. + Для работы с этими файлами можно использовать + &man.tar.1;. - - - - - Схема - - Описание - - - - - - zip - - Формат zip. Если - вам нужно будет развернуть это во &os;, то - потребуется установить сначала порт archivers/unzip. - - - - bz2 - - Формат bzip2. - Используется реже, чем Zip, но, как правило, - даёт файлы меньшего размера. Чтобы работать - с такими файлами, установите порт archivers/bzip2. - - - - - Таким образом, сжатая в bzip2 версия Руководства в формате &postscript;, будет находиться в файле с именем book.ps.bz2 в каталоге handbook/. - После выбора формата и способа компрессии, в котором вы хотите - получить файл, вам нужно самим - сгрузить упакованные файлы, распаковать их, а затем скопировать + После выбора формата и способа компрессии, сгрузите + упакованные файлы, распакуйте их, а затем скопируйте документацию в соответствующие места. - Например, версия FAQ в виде отдельных HTML-файлов, упакованная + Например, версия FAQ в виде + отдельных HTML-файлов, упакованная при помощи &man.bzip2.1;, находится в файле doc/ru_RU.KOI8-R/books/faq/book.html-split.tar.bz2. - Для сгрузки и распаковки этого файла вам нужно сделать вот - что. + Для сгрузки и распаковки этого файла наберите: &prompt.root; fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2 -&prompt.root; bzip2 -d book.html-split.tar.bz2 -&prompt.root; tar xvf book.html-split.tar +&prompt.root; tar xvf book.html-split.tar.bz2 - У вас получится набор файлов .html. + Если файл сжат, tar + автоматически определит подходящий формат и корректно + распакует файл в набор файлов .html. Главным является index.html, и в нём - находится оглавление, вводный материал и ссылки на остальные части - документа. После этого вы их можете копировать и перемещать при - необходимости на окончательное местоположение. + находится оглавление, вводный материал и ссылки на + остальные части документа. - Где найти информацию по спискам рассылки &os;? + Где найти информацию по спискам рассылки &os;? + Какие существуют телеконференции по &os;? - Исчерпывающая информация содержится в - разделе - Руководства, который посвящён спискам рассылки. - - - - - - Какие существуют телеконференции по &os;? - - - - Полная информация о группах новостей есть в разделе + Исчерпывающая информация содержится в разделе + Руководства, который посвящён спискам рассылки, и в разделе Руководства, касающемся телеконференций. Существуют ли каналы IRC (Internet Relay Chat) по &os;? Да, большинство сетей IRC имеют канал &os;: - Канал #FreeBSD в сети EFNet посвящён - &os;, но не обращайтесь туда за технической поддержкой и - даже не пытайтесь найти человека, который поможет вам - обойтись без чтения страниц Справочника или собственных - изысканий. Этот канал предназначен в первую и основную - очередь для общения, и в круг обсуждаемых тем входят секс, - спорт, ядерное оружие, как будто это и есть &os;. В - общем, вас предупредили! Канал доступен на сервере - irc.efnet.org. + Канал #FreeBSDhelp в сети EFNet + предназначен для помощи пользователям &os;. - Канал #FreeBSDhelp в сети EFNet - предназначен для помощи пользователям &os;. Здесь гораздо - более благосклонно относятся к вопросам, чем на канале - #FreeBSD. - - - - Канал ##FreeBSD в сети + Канал #FreeBSD в сети Freenode предназначен для помощи общего характера, на нём в любое время присутствует много посетителей. Общение в течение уже некоторого времени известно своей тенденцией сводиться к разговорам не по теме, но приоритет - отдается пользователям с вопросами по &os;. Мы рады - помочь разобраться в основах, отсылая к Руководству по мере - возможности и направляя вас туда, где вы сможете более - глубоко изучить интересующие вас темы. В целом, мы - являемся англоговорящим каналом, несмотря на то, что к нам - приходят пользователи со всего мира. Если вы пожелаете - общаться на родном языке, то попробуйте попросить об этом - на английском и затем перейдите на другой канал - ##freebsd-lang - по мере необходимости. + отдается пользователям с вопросами по &os;. Другие + пользователи помогут разобраться в основах, + отсылая к Руководству по мере возможности и предлагая + ссылки для более глубокого изучения интересующих тем. + Это преимущественно англоговорящий канал, но туда + приходят пользователи со всего мира. Тем, для кого + английский не является родным, следует сперва задать + вопрос на английском и затем перейти на подходящий + канал ##freebsd-lang. Канал #FreeBSD в сети DALNET доступен на сервере irc.dal.net в США и на irc.eu.dal.net в Европе. Канал #FreeBSD в сети UNDERNET доступен на серверах us.undernet.org в США и eu.undernet.org в Европе. Так как это канал взаимопомощи, приготовьтесь к чтению документации, к которой вас отошлют. Канал #FreeBSD в сети RUSNET это канал для русскоговорящих посетителей, посвящённый помощи пользователям &os;. Также это хорошее место - для не технических дискуссий. + для нетехнических дискуссий. Канал #bsdchat в сети Freenode это канал для посетителей, говорящих на китайском традиционном языке (кодировка UTF-8), посвящённый помощи пользователям &os;. Также это хорошее место - для не технических дискуссий. + для нетехнических дискуссий. - Все эти каналы разные и не имеют отношения друг к другу. Их - стили общения также отличаются, так что вам, может быть, придётся - попробовать все, чтобы найти тот, который соответствует вашему - стилю. Как и обычно с любым каналом IRC, - если вы легко раздражаетесь или не можете иметь дела с большим - количеством лиц школьного (и младшего школьного) возраста, - пытающихся озвучить свои попытки самоутвердиться, не обращайте на - это внимания. + На &os; wiki имеется хороший список + каналов IRC. + + Все каналы разные и не имеют отношения друг к другу. + Поскольку их стили общения отличаются, попробуйте каждый, + пока не найдёте подходящий вашему стилю общения. Есть ли какие-нибудь web-форумы для обсуждения &os;? - Официальные форумы &os; расположены по адресу http://forums.FreeBSD.org/. + Официальные форумы &os; расположены по адресу https://forums.FreeBSD.org/. Где можно пройти платные курсы по &os; и получить поддержку? iXsystems, Inc., дочерней компанией которой является &os; Mall, предоставляет поддержку &os; и программного обеспечения PC-BSD на коммерческой основе, в дополнение к разработке &os; и решениям, требующим тонкой настройки. BSD Certification Group, Inc. предоставляет сертификацию системного администрирования DragonFly BSD, &os;, - NetBSD, OpenBSD. Если вы в этом заинтересованы, посетите - их - сайт. + NetBSD и OpenBSD. Для получения дополнительной информации + посетите их + сайт. Чтобы попасть в этот список, другие организации, осуществляющие обучение и поддержку, должны обратиться к нам в Проект. Установка NikClayton
nik@FreeBSD.org
- - - - Какой файл нужно скачать для установки &os;? + + Какую архитектуру нужно загрузить? У меня есть + 64-разрядный процессор &intel;, но я вижу только + amd64. - Вам нужны образы трёх дискет: - floppies/boot.flp, - floppies/kern1.flp и - floppies/kern2.flp. Эти образы нужно - перенести на дискеты с помощью таких утилит, как - fdimage или &man.dd.1;. - - Если вы хотите скачать дистрибутив самостоятельно (например, - для установки с раздела DOS), вот список рекомендованных частей - дистрибутива: - - - - base/ - - - - manpages/ - - - - compat*/ - - - - doc/ - - - - src/ssys.* - - - - Полные инструкции по этой процедуре и об установке вообще можно - найти в - разделе Руководства, посвящённом установке &os;. + &arch.amd64; — это термин, применяемый во &os; + для обозначения 64-разрядной архитектуры x86 (также + известна как "x86-64" или "x64"). На большинстве + современных компьютеров следует использовать &arch.amd64;. + Для более старых подойдёт &arch.i386;. При установке + системы на отличную от x86 архитектуру, выберите платформу, + наиболее подходящую для оборудования. - - Помогите! Загрузочный файл не помещается на дискету! + + Какой файл нужно скачать для установки &os;? - На дискету размером 3.5 дюйма (1.44 Мбайт) может - поместиться 1,474,560 байт данных. Образ дискеты имеет - размер ровно 1,474,560 байт. + На странице Получение + &os; выберите [iso] с + соответствующей оборудованию архитектурой. - Типичные ошибки при подготовке загрузочной дискеты: + Можно использовать любой из: - - - Образ дискеты был загружен по FTP не в режиме - binary. - - Некоторые клиентские программы FTP используют по умолчанию - текстовый (ascii) режим передачи и - пытаются поменять все принятые последовательности символов - "конец строки" на соответствующие им в вашей системе. В таком - случае образ загрузочного диска будет неизбежно испорчен. - Проверьте размер полученного файла: если он не - точно такой же, как на FTP-сервере, то - ошибка произошла, скорее всего, в процессе передачи. - - Во избежание этого введите команду - binary в командной строке FTP после того, - как вы подключитесь к серверу, но до того, как начали - скачивать файл. - - - - Для переноса образа на дискету была использована команда DOS - copy (или её аналог с графическим - интерфейсом). - - Программы типа copy не работают с - образами дискет, предназначенными для загрузки. Образ содержит - полное содержимое дискеты, дорожка за дорожкой, и не - предназначен для помещения на дискету в качестве обычного - файла. Вам необходимо перенести его на дискету - непосредственно, используя низкоуровневые - средства (такие, как fdimage или - rawrite), описанные в - Руководстве. - - - - - - - - Где инструкции по установке &os;? - - - - Инструкции по установке могут быть найдены в - главе - Руководства, посвящённой установке &os;. - - - - - - Что мне нужно иметь для запуска &os;? - - - - Для работы &os; необходим ПК класса 486 и - выше с оперативной памятью объёмом не менее 24 Мбайт и жёстким - диском объёмом не менее 150 Мбайт. - - Все версии &os; могут работать с недорогими - графическими адаптерами MDA, но для работы с &xorg; требуется - адаптер стандарта VGA или лучше. - - Обратитесь также к . - - - - - - Как сделать оригинальную загрузочную дискету? - - - - В настоящий момент нет простого способа - сделать оригинальную загрузочную дискету. Вам придётся делать - новый релиз полностью, включая загрузочную дискету. - - Чтобы сделать оригинальный релиз, следуйте инструкциям в - статье о процессе - выпуска релизов. - - - - - - Может ли &windows; сосуществовать с &os;? - - - - Сначала установите &windows;, а затем &os;. Менеджер - загрузки &os; будет управлять процессом загрузки &windows; или - &os;. Если после этого вы ещё раз выполните процедуру установки - &windows;, то при этом менеджер загрузки будет грубо - удалён. Если такое случится, обратитесь к следующему - разделу. - - - - - - &windows; уничтожила мой менеджер загрузки! Как мне его - вернуть? - - - - Вы можете переустановить менеджер загрузки &os; тремя - способами: - - - - Запустите DOS, перейдите в каталог tools вашего - дистрибутива &os; и найдите программу - bootinst.exe. Запустите её следующим - образом: - - ...\TOOLS> bootinst.exe boot.bin - - и менеджер загрузки будет переустановлен. - - - - Загрузитесь с установочной дискеты &os; и перейдите в - меню установки Custom. Выберите - пункт Partition. Выберите - устройство, на котором будет располагаться ваш менеджер - загрузки (это будет самый первый диск) и когда вы перейдете - к редактированию разделов, первым делом (то есть ещё не - делая никаких изменений) нажмите W. - Последует запрос на подтверждение, выберите &gui.yes;, и - когда вы попадёте в меню выбора менеджера загрузки, выберите - пункт &os; Boot Manager. - Менеджер загрузки будет переписан на диск. Теперь нужно - выйти из меню установки и загрузиться с винчестера как - обычно. - - - - Загрузитесь с установочной дискеты (или компакт-диска) - &os; и найдите пункт меню Fixit. - Выберите - Fixit floppy или CD-ROM #2 (живая файловая - система) соответственно вашему случаю и вы окажетесь в - приглашении командного процессора. - Теперь выполните следующую команду: - - Fixit# fdisk -B -b /boot/boot0 bootdevice - - подставив вместо bootdevice - название реально используемого для загрузки устройства, - например, ad0 (первый диск IDE), - ad4 (первый диск IDE на дополнительном - контроллере), da0 (первый диск SCSI) и - тому подобное. - - - - - - - - На компьютерах IBM Thinkpad серий A, T и X операционная система - устанавливается, но при следующей перезагрузке машины зависают. - Как можно от этого избавиться? - - - - Из-за ошибки в первых версиях BIOS от IBM раздел &os; на - этих машинах распознаётся как возможный служебный раздел FAT для - режима сна. Когда BIOS пытается обработать раздел &os;, - происходит зависание. - - Согласно IBM Письмо от Keith Frechette - kfrechet@us.ibm.com., - исправление включено в следующие релизы моделей/BIOS. - - Модель - - Номер версии BIOS + файл + описание - T20 - - IYET49WW и выше + disc1.iso + Содержит достаточно для установки &os; и + минимальный набор пакетов. - T21 - - KZET22WW и выше + dvd1.iso + Наподобие disc1.iso, + но с дополнительными пакетами. - A20p - - IVET62WW и выше + memstick.img + Образ с автозагрузкой для записи + на USB флешку. - A20m - - IWET54WW и выше + bootonly.iso + Минимальный образ, требующий сетевое + подключение для завершения установки &os;. - - - A21p - - KYET27WW и выше - - - - A21m - - KXET24WW и выше - - - - A21e - - KUET30WW - - Сообщалось, что в более поздних версиях BIOS от IBM эта - ошибка может появиться снова. Это - сообщение от &a.nectar.email; в &a.mobile; описывает - процедуру, выполнение которой может помочь, если ваш новый лэптоп - от IBM не загружает &os;, и вы можете изменить BIOS. + Пользователям &arch.pc98; нужны образы дискет: + floppies/boot.flp, + floppies/kern1.flp, + floppies/kern2.flp и + floppies/mfsroot1.flp. Эти образы + нужно перенести на дискеты с помощью таких утилит, как + &man.dd.1;. - Если у вас BIOS более ранней версии и обновление для вас не - представляется возможным, то это можно обойти, установив &os;, - изменив идентификатор раздела, используемый &os; и установив - новые загрузочные блоки, которые могут работать с различными ID - разделов. - - Во-первых, вам нужно привести компьютер в состояние, когда он - проходит через экран самотестирования. Для этого требуется включить - машину, не позволяя ей найти раздел &os; на ведущем диске. Одним - из способов сделать это является извлечение винчестера и временное - его установка на более старый ThinkPad (такой, как ThinkPad 600) или - настольный ПК с подходящим переходным кабелем. Здесь вы можете - удалить раздел &os; и вернуть диск на место. ThinkPad должен - загружаться снова. - - С работающей машиной вы можете использовать процедуру, описанную - здесь, для получения рабочей системы &os;. - - - - Сгрузите файлы boot1 и - boot2 по адресу http://people.FreeBSD.org/~bmah/ThinkPad/. - Поместите эти файлы куда-нибудь, откуда вы сможете их потом - взять. - - - - Установите &os; обычным образом на ThinkPad. - Не используйте режим Dangerously - Dedicated. Не перезагружайтесь - после окончания установки. - - - - Переключитесь в экран Emergency Holographic - Shell (Alt - F4) или запустите оболочку - fixit. - - - - Используйте команду &man.fdisk.8; для изменения - идентификатора раздела &os; со 165 на - 166 (этот тип используется в OpenBSD). - - - - Перепишите файлы boot1 и - boot2 на локальную файловую систему. - - - - Для записи boot1 и - boot2 на слайс с &os; воспользуйтесь - командой &man.disklabel.8;. - - &prompt.root; disklabel -B -b boot1 -s boot2 ad0sn - - Здесь n означает номер слайса, - в котором установлена &os;. - - - - Выполните перезагрузку. В приглашении загрузчика вам будет - дан выбор для загрузки OpenBSD. На самом - деле при этом загружается &os;. - - - - Случай, когда вы хотите загружать OpenBSD и &os; на одном и - том же лэптопе, оставлен читателю в качестве упражнения. + Полные инструкции по этой процедуре и об установке вообще можно + найти в + разделе Руководства, посвящённом установке &os;. - - Можно ли производить установку на диск с повреждёнными - блоками? + + Помогите! Установочный образ не загружается! - Вы можете это сделать, но это плохая идея. + Это может быть вызвано тем, что образ был загружен по + FTP не в режиме binary. - Если вы обнаружите испорченные блоки на современном диске IDE, - то весьма вероятно, что он скоро выйдет из строя совсем - (собственная способность переносить испорченные блоки исчерпана, - что означает очень большую порчу поверхности); мы рекомендуем - приобрести новый диск. + В некоторых клиентских программах FTP по умолчанию + используется текстовый (ascii) режим + передачи, в котором любые последовательности символов + "конец строки" заменяются на используемые в системе + клиента. В таком случае образ загрузочного диска будет + неизбежно испорчен. Проверьте контрольную сумму SHA-256 + полученного файла: если он не точно + такой же как на FTP-сервере, то ошибка произошла, скорее + всего, в процессе передачи. - Если повреждённые блоки находятся на SCSI диске, взгляните на - такое решение. + В случае использования командной строки FTP-клиента + введите команду binary в командной + строке FTP после подключения к серверу, но перед началом + передачи файла. - - Странные вещи происходят при загрузке с установочного - диска! + + Где инструкции по установке &os;? - Если вы видите, что машина зависает или неожиданно - перезагружается, когда вы пытаетесь загрузиться с установочной - дискеты, вы должны задать себе три вопроса: - - - - Вы используете новую, только что отформатированную дискету - (предпочтительно неиспользованную прямо из коробки, а не ту, - что пришла с популярным журналом и последние три года провела - под диваном)? - - - - Вы скачали образ дискеты в двоичном режиме? - (не смущайтесь, даже лучшие из нас время от времени скачивают - двоичный файл в режиме ASCII!) - - - - Если вы используете &windows; 95 или - &windows; 98, удостоверьтесь, - что вы запускаете fdimage или - rawrite в режиме чистого DOS? Эти - операционные системы могут влиять на программы, работающие - непосредственно с оборудованием, что и делает программа - создания установочного диска; даже запуск из DOS в графической - оболочке может вызвать проблемы. - - - - Есть сведения, что &netscape; вызывает проблемы при скачивании - загрузочного диска, так что лучше всего использовать специальную - программу FTP, если она у вас есть. + Инструкции по установке &os; 9.0 + и более поздних версий могут быть найдены в главе + Руководства, посвящённой установке &os;. + Также имеются инструкции по установке предыдущих + версий &os;. - - Я загрузился с ATAPI CD-ROM, однако программа установки - сообщила, что CD-ROM не найден. Куда он подевался? + + Какие минимальные требования для запуска &os;? - Обычной причиной возникновения такой проблемы является - неправильно сконфигурированный привод CD-ROM. Теперь зачастую ПК - продаются с CD-ROM, установленным как ведомое устройство на втором - контроллере IDE, но без ведущего устройства на этом контроллере. - Согласно спецификации ATAPI, такая конфигурация неверна, однако - &windows; в таком случае всё же работает, и BIOS игнорирует это при - загрузке. Вот почему BIOS может видеть CD-ROM при загрузке, а - &os; для завершения установки - нет. - - Переконфигурируйте вашу систему так, чтобы CD-ROM оказался либо - основным устройством на том IDE-контроллере, на котором он - установлен, либо ведомым устройством на контроллере IDE, который - имеет ведущее устройство. + Для работы &os; необходим ПК класса 486 и выше с + оперативной памятью объёмом не менее 64 Мбайт и + дисковым пространством не менее 1.1 Гбайт. - - Можно ли я установить систему на лэптоп через PLIP (Parallel - Line IP)? + + Как сделать собственный установочный диск? - Да. Используйте стандартный кабель Laplink. Если необходимо, - обратитесь к - разделу Руководства о PLIP для выяснения деталей о работе - в сети через параллельный порт. + Индивидуальный установочный носитель &os; можно + создать, запустив процедуру построения индивидуального + релиза. Следуйте инструкциям в статье о подготовке + релизов &os;. - - Какие параметры диска я должен использовать? + + Может ли &windows; сосуществовать с &os;? - - Под параметрами диска мы понимаем число - дорожек, головок и секторов на дорожку на диске, что для простоты - обозначается как C/H/S. Именно так работает BIOS персональных - компьютеров при чтении или записи диска. - - - Это вызывает много недоразумений у начинающих системных - администраторов. Прежде всего, физические - параметры диска SCSI не имеют никакого значения, так как &os; - работает в терминах дисковых блоков. Фактически нет такого - показателя, как физические параметры, так как - плотность размещения секторов различна по всему диску. То, что - производители называют физическими - параметрами, есть не что иное, как параметры, которые - они получили по занимаемому пространству. Для - дисков IDE, &os; работает в терминах C/H/S, но во всех - современных дисках они преобразовываются во внутреннее - представление. - - Имеют значение только логические - параметры. Это то, что получает BIOS, когда спрашивает - какие у тебя параметры? Затем они используются для - обращения к диску. Так как &os; использует BIOS при загрузке, - очень важно получить верные параметры. В частности, если у вас на - диске находятся несколько операционных систем, они обе должны иметь - одинаковое представление о параметрах диска. В противном случае - серьёзные проблемы при загрузке неизбежны! - - В случае дисков SCSI, параметры используются в зависимости от - того, включена ли поддержка расширенной трансляции на вашем - контроллере (что часто обозначается как поддержка дисков - DOS >1GB или что-то похожее). Если эта возможность - выключена, то используйте N дорожек, 64 - головки и 32 сектора на дорожку, где N - - это ёмкость диска в мегабайтах. Например, 2-гигабайтный диск - должен иметь 2048 дорожек, 64 головки и 32 сектора на - дорожку. - - Если трансляция включена (что обычно - используется для преодоления некоторых ограничений &ms-dos;) и - ёмкость диска превышает 1 Гбайт, используйте - M дорожек, 63 - сектора на дорожку (не 64) и 255 головок, где - M обозначает объём диска в мегабайтах, - поделённый на 7.844238 (!). Таким - образом, наш диск объёмом 2 Гбайт будет иметь 261 дорожку, 63 - сектора на дорожку и 255 головок. - - Если вы не уверены, или &os; ошибается при определении - параметров диска во время установки, самый простой способ решить - эту проблему - создать на диске маленький раздел DOS. После этого - BIOS должна определить параметры диска правильно (и вы всегда - можете удалить раздел DOS в редакторе разделов, если вы не хотите - его сохранить. Однако вы можете оставить его для настройки сетевых - адаптеров и тому подобных вещей. - - Кроме того, существует свободно доступная утилита, - распространяемая вместе с &os;, которая называется - pfdisk.exe. Вы можете найти её в каталоге - tools компакт-диска с - &os; или на различных - FTP-серверах с &os;. Эту программу можно использовать для - определения параметров, используемых другими операционными - системами, расположенными на вашем диске. Затем вы можете - использовать эти параметры в редакторе разделов. + Да, если &windows; установлена первой. Загрузчик + &os; будет управлять процессом выбора загрузки &windows; + или &os;. Если &windows; устанавливается следом, то это + приведёт к перезаписи загрузчика. Если такое случится, + обратитесь к следующему разделу. - - Есть ли ограничения на разбиение диска? + + Другая операционная система уничтожила мой загрузчик + операционной системы! Как мне его вернуть? - Да. Вы должны убедиться, что корневой раздел находится до - 1024 дорожки, так чтобы BIOS могла загрузить с него ядро. - (Заметьте, что это ограничение BIOS компьютера, а не - &os;). + Способ восстановления зависит от используемого + загрузчика. Меню выбора загрузки, используемое во &os;, + можно переустановить с помощью &man.boot0cfg.8;. + Пример для восстановления меню загрузки на диске + ada0: - Для диска SCSI, это, как правило, будет означать, что - корневой раздел располагается в первых 1024 Мбайтах (или в первых - 4096 Мбайтах, если включен режим расширенной трансляции - - посмотрите предыдущий вопрос). Для дисков IDE соответствующее - значение равно 504 Мбайтам. - - + &prompt.root; boot0cfg -B ada0 - - - Совместима ли &os; с менеджерами дисков? - + Неинтерактивный загрузчик MBR можно установить + с помощью &man.gpart.8;: - - &os; распознаёт Ontrack Disk Manager - и допускает его - использование. Другие менеджеры дисков не поддерживаются. + &prompt.root; gpart bootcode -b /boot/mbr ada0 - Если вы хотите использовать диск с &os;, вам не нужен - менеджер диска. Отконфигурируйте диск на столько пространства, - сколько сможет обработать BIOS (обычно 504 Мбайта), и - &os; распознает, сколько места у вас есть на самом деле. - Если вы используете старый диск с контроллером MFM, вам может - потребоваться точно указать &os; количество используемых - дорожек. - - Если вы хотите использовать &os; совместно с другой - операционной системой, это можно сделать и без менеджера диска: - удостоверьтесь, что загрузочный раздел &os; и раздел для другой - операционной системы не выходят за пределы 1024 дорожки. Если вы - будете осторожны, 20 мегабайтного раздела для загрузки будет - достаточно. + Более сложные ситуации, включая использование дисков + GPT, рассматриваются в &man.gpart.8;. - - При загрузке &os; первый раз после установки выдаётся - сообщение Missing Operating System. В чём - дело? + + Я загрузился с компакт-диска, однако программа установки + сообщила, что CD-ROM не найден. Куда он подевался? - Это классический случай, когда &os; и DOS или другая - операционная система конфликтуют по поводу параметров диска. Вам нужно будет - переустановить &os;, но имейте в виду, что инструкции, данные - выше, помогают всегда. - - + Обычной причиной возникновения такой проблемы является + неправильно сконфигурированный привод CD-ROM. Теперь зачастую ПК + продаются с CD-ROM, установленным как ведомое устройство на втором + контроллере IDE, но без ведущего устройства на этом контроллере. + Согласно спецификации ATAPI, такая конфигурация неверна, однако + &windows; в таком случае всё же работает, и BIOS игнорирует это при + загрузке. Вот почему BIOS может видеть CD-ROM при загрузке, а + &os; для завершения установки - нет. - - - После приглашения менеджера загрузки F? - ничего не происходит. - - - - Это ещё один признак проблемы, описанной в предыдущем разделе. - Параметры диска в BIOS и параметры, используемые &os;, не - совпадают. Если ваш контроллер или BIOS поддерживают трансляцию - дорожек (часто обозначаемую как >1GB drive - support), попробуйте включить эту возможность и - переустановить &os;. + Переконфигурируйте систему так, чтобы CD-ROM оказался либо + основным устройством на том IDE-контроллере, на котором он + установлен, либо ведомым устройством на контроллере IDE, который + имеет ведущее устройство. - Нужно ли устанавливать все исходные тексты системы? + Нужно ли устанавливать исходные тексты системы? - В общем случае, нет. Однако мы настоятельно рекомендуем - установить, как минимум, исходные тексты набора - base, включающий некоторые файлы, здесь - упоминаемые, и sys, в который включены исходные - тексты ядра. Для работы системы присутствия исходных текстов не - требуется, разве что для программы конфигурирования ядра - &man.config.8;. За исключением исходных текстов ядра, структура - исходных текстов системы позволяет монтировать их в режиме "только - для чтения" через NFS и генерировать выполнимые файлы программ - (из-за ограничений в исходных текстах ядра мы рекомендуем - монтировать их не прямо в /usr/src, а в - какой-нибудь другой каталог с символическими ссылками для - дублирования структуры каталогов). - - Наличие исходных текстов системы значительно облегчает процесс - перехода на новые версии &os;. - - Для выбора подмножества исходных текстов, которое вы хотите - установить, используйте пункт меню Custom, - когда находитесь в меню Distributions - программы установки. + В общем случае, нет. Для работы основной системы + присутствие исходных текстов не требуется. Некоторые порты + наподобие sysutils/lsof + не будут собираться без установленных исходных текстов системы. + В частности, если порт собирает модуль ядра или напрямую + обращается к структурам ядра, в этом случае исходные тексты + должны быть установлены. Нужно ли перекомпилировать ядро? - Изначально построение нового ядра в большинстве случаев - являлось неотъемлемым шагом при установке &os;, однако - последние релизы предоставляют более дружественные методы - конфигурации ядра. Выполнить конфигурацию - ядра очень просто с помощью более гибкой системы параметров - hints, которые можно задать в приглашении - загрузчика. - - В дальнейшем всё же стоит построить новое ядро, содержащее - только те драйверы, которые вам нужны, для того, чтобы сэкономить - немного ОЗУ, хотя для большинства систем это делать больше не - обязательно. + Обычно нет. Поставляемое ядро GENERIC + содержит драйвера, необходимые для типичного компьютера. + Инструмент &man.freebsd-update.8; не может использоваться + для обновления &os; с собственным ядром. Поэтому по + возможности стоит придерживаться использования ядра + GENERIC. Для компьютеров с очень + небольшим объёмом ОЗУ, таких как встраиваемые системы, + может потребоваться собственное небольшое ядро, содержащее + только необходимые драйверы. Какой из паролей DES, Blowfish или MD5 я должен использовать, и как указать, какого типа пароли используются пользователями? - По умолчанию во &os; используется формат паролей на основе - MD5. Это делается в предположении, что он - более защищён, чем традиционный формат паролей &unix;, в котором - используется схема на основе алгоритма DES. - Пароли DES остаются применимыми, если вам нужно использовать файл - паролей совместно с более старыми операционными системами, в - которых используется менее защищённый формат паролей. - &os; также позволяет использовать пароли - в более защищённом формате Blowfish. Управление выбором - используемого формата для новых паролей осуществляется через - параметр входа passwd_format в файле + Во &os; 9 и выше по умолчанию используется + SHA512. Пароли DES остаются доступны + для обратной совместимости с более старыми операционными + системами, в которых используется менее защищённый формат + паролей. &os; также поддерживает пароли в форматах + Blowfish и MD5. Управление выбором используемого формата + для новых паролей осуществляется через параметр входа + passwd_format в файле /etc/login.conf, принимающий значения - des, blf (если они есть) или - md5. Более подробная информация о параметрах - входа находится на странице Справочника &man.login.conf.5;. + des, blf (если они + есть) или md5. Подробная информация о + параметрах входа находится на странице Справочника + &man.login.conf.5;. - - Загрузка с установочной дискеты прерывается на сообщении - Probing Devices.... Почему? - - - - Если у вас установлены устройства IDE &iomegazip; или jaz;, - уберите их и попробуйте снова. Они могут мешать установочной - программе. После того, как система будет установлена, вы можете - снова подключить устройства. Надеемся, что это будет исправлено в - более поздних релизах. - - - - - - Почему появляется сообщение panic: cant mount - root после перезагрузки только что установленной - системы. - - - - Эта ошибка проявляется, когда есть несогласованность между - представлениями загрузочного блока и ядра о дисковых устройствах. - Эта ошибка обычно проявляется на системах с двумя дисками IDE, с - винчестерами, установленными как ведущий или единственный на - отдельных контроллерах IDE, с &os;, установленной на втором - контроллере IDE. Программа в загрузочных блоках полагает, что - система установлена на ad0 (второй диск - BIOS), тогда как ядро даёт первому диску на втором контроллере - название ad2. После - обнаружения устройства ядро пытается смонтировать то, что - загрузочные блоки выдают за загрузочный диск, - ad0, тогда как он - на самом деле ad2, и ошибается. - - Для решения этой проблемы выполните одно из следующих - действий: - - - - Перезагрузите систему и нажмите - Enter при появлении приглашения - Booting kernel in 10 seconds; hit [Enter] to - interrupt. Вы окажетесь в загрузчике. - - После этого наберите set - root_disk_unit="disk_number". - Здесь в качестве disk_number должен - быть указан 0, если &os; установлена на - ведущем диске первого контроллера IDE, 1, - если она установлена на ведомом диске первого контроллера IDE, - 2, если система находится на ведущем диске - второго IDE-контроллера и 3, если она - установлена на ведомом диске второго контроллера IDE. - - Затем введите команду boot, и ваша - система должна нормально загрузиться. - - Чтобы сделать эти изменения постоянными (то есть чтобы вам - не было нужды выполнять эти действия каждый раз при - перезагрузке или включении вашей машины с &os;), поместите - строчку - root_disk_unit="disk_number" - в файл /boot/loader.conf.local. - - - - Поместите диск с &os; на первичный контроллер IDE, так - чтобы именования диском пришли в соответствие. - - - - - - - - Какие имеются ограничения на объём оперативной памяти? - - - - Ограничение на память зависит от используемой платформы. - Для стандартной системы &i386; размер оперативной памяти - ограничен величиной 4 Гбайт, дополнительный объём - памяти поддерживается через &man.pae.4;. Смотрите инструкции по использованию - 4 Гбайт памяти или больше на &i386;. - - &os;/pc98 имеет ограничение в 4 ГБ оперативной памяти, - PAE здесь использовать невозможно. - Остальные архитектуры, поддерживаемые &os;, имеют гораздо - большие теоретические ограничения объёмов памяти (многие - терабайты). - - - - Какие существуют ограничения для файловой системы FFS? - Для файловой системы FFS максимальный теоретический размер - равен 8 ТБ (2Г блоков) или 16 ТБ при стандартном - размере блока 8 КБ. На практике есть программное - ограничение в 1 ТБ, но с некоторыми модификациями - достижимы 4 ТБ (и такие системы существуют). + Наибольший размер файловой системы FFS ограничен + практически количеством памяти, которая требуется для + работы &man.fsck.8;. &man.fsck.8; использует 1 бит на + фрагмент, и для стандартного размера фрагмента 4 Кбайт это + эквивалентно использованию 32 Мбайт памяти на терабайт + дискового пространства. Это означает, что на архитектурах + с ограничением размера пользовательского процесса в 2 Гбайт + (например, &i386;) максимальный размер файловой системы, + доступный для &man.fsck.8;, составляет ~60 Тбайт. - Максимальный размер одного файла FFS равен примерно 1 млрд. - блоков, или 4 ТБ при размере блока 4 КБ. + Без ограничения на память для &man.fsck.8; максимальный + размер файловой системы составляет 2 ^ 64 + (блоков) * 32 Кбайт => 16 экса * 32 Кбайт + => 512 зеттабайт. - - Максимальные размеры файлов - - - - - размер блока ФС - - работает - - должно работать - - - - - - 4 KБ - - > 4 ГБ - - 4 ТБ - 1 - - - - 8 КБ - - > 32 ГБ - - 32 ТБ - 1 - - - - 16 КБ - - > 128 ГБ - - 32 ТБ - 1 - - - - 32 КБ - - > 512 ГБ - - 64 ТБ - 1 - - - - 64 КБ - - > 2048 ГБ - - 128 ТБ - 1 - - - -
- - При размере блока файловой системы 4 КБ тройная - косвенная адресация блоков работает, и всё должно быть - ограничено максимальным количеством блоков, которое задаётся - в виде тройной переадресации блока (примерно - 10243 + 10242 + 1024), - однако всё ограничивается (ошибочным) лимитом - 1 млрд. - 1 на количество блоков файловой системы. - Это ограничение должно быть равным 2 млрд. - 1. - При количестве блоков, приближающемся к 2 млрд. - 1, - появляются некоторые ошибки, но этот предел недостижим при - размере блока 4 КБ. - - При размере блока 8 КБ и больше всё должно быть - ограничено лимитом 2 млрд. - 1 на количество - блоков файловой системы, но реально ограничено пределом в - 1 млрд. - 1. Использование верного ограничения - в 2 млрд. - 1 блоков вызывает проблемы. + Максимальный размер файла на FFS приблизительно равен + 2  петабайт со стандартным размером блока 32 Кбайт. + Каждый 32 Кбайтный блок может адресовать до 4096 блоков. + С использованием тройной косвенной адресации это составляет + 32 Кбайт * 12 + 32 Кбайт * 4096 + 32 Кбайт * + 4096^2 + 32 Кбайт * 4096^3. Увеличение размера блока + до 64 Кбайт увеличит максимальный размер файла в 16 + раз.
- Я скомпилировал новое ядро и при загрузке получил сообщение об - ошибке archsw.readin.failed. + Я скомпилировал новое ядро и при загрузке получил + сообщение об ошибке readin + failed. - Это произошло, потому что ваше ядро и компоненты системы не - синхронизированы. Такая ситуация не поддерживается. Убедитесь, - что вы используете команды - make buildworld и - make buildkernel - для обновления вашего ядра. + Ядро и компоненты системы не синхронизированы. Такая + конфигурация не поддерживается. Обязательно используйте + команды make buildworld и make + buildkernel для обновления ядра. - Вы можете загрузить систему, непосредственно указав ядро на - втором этапе загрузки, нажав любую клавишу до запуска загрузчика - при появлении символов |. + Загрузите систему, непосредственно указав ядро на + втором этапе загрузки, нажав любую клавишу до запуска + загрузчика при появлении символов + |. - - Установка аварийно завершается ещё при загрузке системы. - Что я могу сделать? + + Существует ли инструмент для настройки системы после + её установки? - Попытайтесь отключить поддержку ACPI. Когда загрузится - загрузчик, нажмите Пробел. Система отобразит - следующее: - - OK - - Наберите: - - unset acpi_load - - А затем: - - boot + Да, bsdconfig предоставляет + замечательный интерфейс для пост-установочной настройки + &os;. -
Аппаратная совместимость Вопросы общего характера Я хочу приобрести аппаратуру для моей системы &os;. Какая модель/производитель/тип лучше всего? - Это постоянно обсуждается в списках рассылки &os;. Так - как аппаратура меняется так быстро, мы это ожидаем. Мы - всё же настоятельно рекомендуем, чтобы вы - прочитали Hardware Notes для &os; &rel.current; или &rel2.current;, а также - выполнили поиск по архивам - списков рассылки перед тем, как задавать вопросы о самом последнем - и лучшем оборудовании. Весьма вероятно, что обсуждение требуемого - вам оборудование как раз было на прошлой неделе. + Это постоянно обсуждается в списках рассылки &os; и + является ожидаемым вопросом, так как аппаратура меняется + очень быстро. + Обратитесь к Hardware Notes для &os; &rel.current; + или &rel2.current;, + а также архивам + списков рассылки перед тем, как задавать вопросы о самом + последнем и лучшем оборудовании. Весьма вероятно, что + обсуждение касаемо этого типа оборудования велось как + раз на прошлой неделе. - Если вы подбираете лэптоп, посмотрите архивы &a.mobile;. - В противном случае вам нужны архивы - &a.questions; или, возможно, специфичные списки рассылки по - конкретному типу оборудования. + Перед приобретением лэптопа посмотрите архивы + &a.mobile; и &a.questions; или, по возможности, более + специфичные списки рассылки по данному типу + оборудования. - - - - Память - - - Поддерживает ли &os; больше 4 Гбайт памяти (ОЗУ)? + Какие существуют ограничения по памяти? + Поддерживает ли &os; больше 4 Гбайт памяти (ОЗУ)? Больше 16 Гбайт? Больше 48 Гбайт? - Да. &os; как операционная система в целом поддерживает + &os; как операционная система в целом поддерживает столько же физической памяти (ОЗУ), сколько аппаратная платформа, на которой она работает. Имейте в виду, что различные платформы имеют различные ограничения на память; например, &i386; без PAE поддерживает максимум 4 Гбайт памяти (и обычно еще меньше из-за адресного пространства PCI), а &i386; с PAE поддерживает - максимум 64 Гбайт. Платформы AMD64, существующие на - текущий момент, ограничены объемом 1 Тбайт физической - памяти. + максимум 64 Гбайт. Для &os; 10 платформы AMD64 + поддерживают до 4 Тбайт физической памяти. Почему &os; видит меньше 4 Гбайт памяти, когда система установлена на машину &i386;? Общее адресное пространство для машин &i386; является 32-разрядным; это означает, что адресоваться (т.е. быть получено) может не более 4 Гбайт памяти. Более того, некоторые адреса в этом диапазоне зарезервированы для различных целей аппаратным обеспечением, например, для использования и управления устройствами PCI, для доступа к видеопамяти, и так далее. Таким образом, общий объем памяти, используемой операционной системой для ядра и приложений, ограничен размером, значительно меньшим, чем 4 Гбайт. В такой конфигурации максимально доступная физическая память составляет от 3.2 Гбайт до 3.7 Гбайт. Для преодоления ограничения в 3.2 Гбайт-3.7 Гбайт установленной памяти (т.е. для получения 4 Гбайт, но также более 4 Гбайт) должен использоваться специальный механизм, именуемый PAE. Сокращение PAE расшифровывается как Physical Address Extension (расширение физического адреса) и предоставляет для 32-разрядных x86 процессоров способ адресовать более 4 Гбайт памяти. PAE переназначает память, которая иначе была бы перекрыта адресными резервациями для аппаратных устройств выше диапазона 4 Гбайт, и использует ее как дополнительную физическую память (смотрите &man.pae.4;). Использование PAE имеет свои недостатки; такая модель доступа к памяти является чуть более медленной по сравнению с обычным режимом (без PAE), и также не работают динамически загружаемые модули (смотрите &man.kld.4;). Это означает, что все драйверы должны присутствовать статически в самом ядре. Самый общий способ включить PAE — это собрать новое ядро со специальным уже подготовленным файлом конфигурации ядра, именуемым PAE, который уже сконфигурирован для сборки безопасного ядра. Имейте в виду, что некоторые строки в этом файле конфигурации ядра являются слишком консервативными, и некоторые драйверы, помеченные как неготовые для использования с PAE, на самом деле являются годными. На практике, если драйвер работает на 64-разрядной архитектуре (такой как AMD64), он также - работает с PAE. Если вы хотите создать свой собственный - файл конфигурации ядра, то вы можете включить PAE, добавив - в свою конфигурацию следующую строку: + работает с PAE. При создании своего собственного файла + конфигурации ядра можно включить PAE, добавив + следующую строку: options PAE PAE не является широко используемым в настоящее время, поскольку большинство нового x86 аппаратного обеспечения также поддерживает работу в 64-разрядном режиме, также известном как AMD64 или &intel; 64. Этот режим имеет большее адресное пространство и не нуждается в таких трюках. &os; поддерживает AMD64, и рекомендуется использование этой версии &os; вместо версии &i386;, если требуется больше 4 Гбайт памяти. Аппаратные платформы и процессоры Поддерживает ли &os; аппаратные платформы, отличные от x86? - Да. В настоящее время &os; работает на архитектурах - Intel x86 и AMD64. Также поддерживаются архитектуры Intel - EM64T, IA-64, &arm;, &powerpc; и &sparc64;. Планируются - к поддержке платформы &mips; и &s390;. Дополнительную - информацию о происходящей работе над платформой &mips; можно - получить, подписавшись на &a.mips;. Для обсуждения общих - вопросов, касающихся новых аппаратных платформ, предназначен - &a.platforms;. + Да. Поддержка &os; подразделяется на множество классов. + Архитектуры первого класса, такие как i386 или amd64, + полностью поддерживаются. Архитектуры 2 и 3 класса + поддерживаются по мере возможности. Полное описание + классов доступно в справочнике + коммиттера. - Если аппаратная платформа Вашего компьютера не поддерживается - &os; и Вам нужно его запустить прямо сейчас, мы советуем - обратить Ваш взгляд также на NetBSD и - OpenBSD. + Полный список поддерживаемых архитектур находится + на странице, + посвящённой платформам. Поддерживает ли &os; многопроцессорные системы (SMP)? - Системы с симметричным мультипроцессированием (SMP) во - &os; в целом поддерживаются, хотя в некоторых случаях ошибки - в BIOS или системной плате могут вызывать определенные - проблемы. + &os; поддерживает симметричное мультипроцессирование + (SMP) на всех невстраиваемых платформах (например, + &arch.i386;, &arch.amd64; и так далее). SMP + также поддерживается для arm и MIPS, хотя некоторые + процессоры могут это не поддерживать. В реализации SMP + во &os; используется мелкодисперсная синхронизация, и + производительность масштабируется почти линейно с ростом + количества процессоров. - &os; задействует преимущества HyperThreading (HTT) на - процессорах Intel, которые это поддерживают. Ядро с включенной - options SMP автоматически распознает - дополнительные логические процессоры. Планировщик заданий &os;, - используемый по умолчанию, распознает логические процессоры - как дополнительные физические процессоры; иначе говоря, не - предпринимается никаких попыток оптимизировать распределение - используемых совместно ресурсов между логическими процессорами - внутри одного CPU. Поскольку такое простое планирование - может вызвать деградацию производительности, то в некоторых - случаях рекомендуется отключать логические процессоры через - переменную sysctl machdep.hlt_logical_cpus. - Также можно отключить любой CPU, работающий в пустом цикле, - через переменную sysctl machdep.hlt_cpus. - За подробной информацией обращайтесь к странице Справочника - &man.smp.4;. + За подробной информацией обращайтесь к странице + Справочника &man.smp.4;. + + + + Что такое микрокод? Как установить обновления + микрокода для процессоров &intel;? + + + + Микрокод - это программа, реализующая набор инструкций + процессора на аппаратном уровне. Она позволяет исправлять + ошибки процессора без замены микросхемы. + + Установите sysutils/devcpu-data, + а затем добавьте: + microcode_update_enable="YES" + в /etc/rc.conf + + + Жёсткие диски, ленточные устройства и приводы CD и DVD Какие типы винчестеров поддерживает &os;? &os; работает с дисками стандартов EIDE, SATA, SCSI и SAS (с совместимыми контроллерами; смотрите следующий раздел), и всеми дисками, использующими оригинальный интерфейс Western Digital (MFM, RLL, ESDI и, конечно же, IDE). Некоторые контроллеры ESDI, использующие собственные интерфейсы, могут и не работать: к таким относятся WD1002/3/6/7 и их клоны. Какие поддерживаются контроллеры SCSI или SAS? Полный список приведён в Hardware Notes для &os; - &rel.current; или - &rel2.current;. + &rel.current; + или &rel2.current;. Какие типы стримеров поддерживаются? - &os; поддерживает устройства SCSI и QIC-36 (с интерфейсом - QIC-02), включая 8-мм (Exabyte) и DAT. - - Некоторые ранние модели 8-мм стримеров не совсем соответствуют - стандарту SCSI-2 и могут работать не совсем хорошо. + &os; поддерживает все стандартные интерфейсы + стримеров SCSI. Поддерживает ли &os; роботов для смены лент? &os; поддерживает роботизированные устройства SCSI через устройство &man.ch.4; и команду &man.chio.1;. Подробная - информация об управлении такими роботами может быть найдена на - странице Справочника по команде &man.chio.1;. + информация об управлении такими роботами находится на + странице Справочника &man.chio.1;. - Если вы не используете AMANDA - или другое программное обеспечение, умеющее работать с роботами, - имейте в виду, что они могут только переносить ленты с одного - места на другое, так что вам нужно самим отслеживать, в каком + В то время как AMANDA и + ещё ряд программных продуктов умеют работать с роботами, + другие приложения могут только переносить ленты с одного + места на другое. В этом случае надо отслеживать, в каком слоте находится нужная лента, и в какой слот нужно вернуть ленту, находящуюся в стримере. - Какие приводы CD-ROM поддерживаются во &os;? + Какие приводы CD-ROM и CD-RW поддерживаются во + &os;? Поддерживаются любые SCSI-устройства чтения компакт дисков, подключенные к поддерживаемому контроллеру. Поддерживается большинство ATAPI-совместимых IDE CD-ROM. - - - - - Какие приводы CD-RW поддерживаются во &os;? - - - &os; поддерживает все ATAPI-совместимые IDE-приводы CD-R - или CD-RW. Более полную информацию можно найти на справочной - странице по команде &man.burncd.8;. + или CD-RW. Более полная информация находится на странице + Справочника &man.burncd.8;. - &os; поддерживает также все SCSI-приводы CD-R или CD-RW. - Установите и используйте программу cdrecord из - системы портов или пакаджей, но проверьте, что в вашем ядре - присутствует устройство pass. + &os; поддерживает также все SCSI-приводы CD-R и CD-RW. + Используйте команду cdrecord из + пакета sysutils/cdrtools. Клавиатуры и мыши - - Поддерживает ли &os; USB клавиатуры? - - - - &os; имеет встроенную поддержку клавиатур USB. - После включения поддержки USB-клавиатуры в системе - AT-клавиатуре будет соответствовать - /dev/kbd0, а клавиатуре USB - /dev/kbd1, если они обе подключены к - системе. Если присутствует только клавиатура USB, ей будет - соответствовать /dev/ukbd0. - - Если вы хотите использовать клавиатуру USB на консоли, вы - должны явно указать драйверу консоли на использование имеющейся - клавиатуры USB. Это может быть сделано в процессе инициализации - системы следующей командой. - - &prompt.root; kbdcontrol -k /dev/kbd1 < /dev/console > /dev/null - - Заметьте, что если клавиатура USB является единственной - присутствующей, она доступна как /dev/ukbd0, - и поэтому команда должна выглядеть примерно так: - - &prompt.root; kbdcontrol -k /dev/ukbd0 < /dev/console > /dev/null - - - Чтобы сохранить это изменение, добавьте в - /etc/rc.conf строку - keyboard="/dev/ukbd0". - - - Как только вы всё это сделаете, клавиатура USB будет работать и - в X-окружении без каких-либо особых настроек. - - Если вам нужно переключиться обратно на клавиатуру, - используемую по умолчанию, выполните такую команду: - - &prompt.root; kbdcontrol -k /dev/kbd0 > /dev/null - - Для одновременной работы второй USB клавиатуры и первой - AT клавиатуры в консоли через драйвер &man.kbdmux.4;, - наберите следующие команды: - - &prompt.root; kbdcontrol -K < /dev/console > /dev/null -&prompt.root; kbdcontrol -a atkbd0 < /dev/kbdmux0 > /dev/null -&prompt.root; kbdcontrol -a ukbd1 < /dev/kbdmux0 > /dev/null -&prompt.root; kbdcontrol -k /dev/kbdmux0 < /dev/console > /dev/null - - За дополнительной информацией обратитесь к страницам - справочной системы &man.ukbd.4;, &man.kbdcontrol.1; и - &man.kbdmux.4;. - - - Выключение и включение USB-клавиатуры на ходу может ещё - не работать совершенно корректно. Во избежание неприятностей - мы рекомендуем подключить клавиатуру перед запуском системы - и не отключать её до завершения работы системы. - - - - - - - У меня необычная мышь типа bus mouse. Как её настроить? - - - - &os; поддерживает мыши типов bus mouse и InPort bus mouse - от таких производителей, как Microsoft, Logitech и ATI. В ядре - GENERIC драйвера таких устройств нет. - Для построения - специального ядра с драйвером такой мыши, добавьте в - конфигурационный файл ядра следующую строку: - - device mse0 at isa? port 0x23c irq5 - - Мыши типа bus mouse обычно поставляются с отдельными - интерфейсными адаптерами. Они позволяют установить адрес порта - ввода/вывода и номер IRQ, отличающиеся от приведённых выше. Для - получения дополнительной информации обратитесь к документации по - вашей мыши и странице Справочника &man.mse.4;. - - - - - - Как использовать мышь PS/2 (типа mouse port - или keyboard)? - - - - Мышь PS/2 системой поддерживается. Необходимый драйвер - устройства, psm, включён в ядро - GENERIC. - - Если в вашем ядре его нет, то добавьте следующую строку в - файл конфигурации ядра и постройте новое ядро. - - device psm0 at atkbdc? irq 12 - - После того, как ядро правильно обнаружило устройство - psm0 во время загрузки, файл - устройства для psm0 будет создан - автоматически. - - - - - Можно ли каким-либо образом использовать мышь, кроме - X Window? + Можно ли использовать мышь вне X Window? - Если вы используете стандартный драйвер консоли, - &man.syscons.4;, то можете использовать указатель мыши в текстовых - консолях для выделения и переноса текста. Запустите демон мыши, - &man.moused.8;, и включите отображение указателя мыши на - виртуальной консоли: + Стандартный драйвер консоли &man.syscons.4; + предоставляет возможность использования указателя мыши + в текстовых консолях для выделения и переноса текста. + Запустите демон мыши &man.moused.8; и включите + отображение указателя мыши в виртуальной консоли: &prompt.root; moused -p /dev/xxxx -t yyyy &prompt.root; vidcontrol -m on Здесь xxxx - это имя устройства мыши, а yyyy - тип протокола, используемого мышью. Даемон мыши может автоматически определять тип протокола большинства мышей, за исключением старых, работающих по последовательному интерфейсу. Для выполнения автоматического определения в качестве протокола укажите auto. Если автоматическое определение не работает, то обратитесь к справочным страницам по &man.moused.8; для получения списка поддерживаемых типов протоколов. - Если у вас мышь типа PS/2, просто добавьте строчку + Для мыши типа PS/2 добавьте строчку moused_enable="YES" в файл /etc/rc.conf для запуска даемона мыши во - время загрузки системы. Кроме того, если вы хотите использовать - даемон мыши во всех виртуальных терминалах, а не только на консоли, + время загрузки системы. Кроме того, для использования + даемона мыши во всех виртуальных терминалах, а не только на консоли, добавьте allscreens_flags="-m on" в файле /etc/rc.conf. После запуска даемона мыши, доступ к мыши должен согласовываться между даемоном мыши и другими программами типа X - Window. Обратитесь к вопросу из FAQ + Window. Обратитесь к вопросу из FAQ + Почему моя мышь не работает с X? для получения более полной информации по этому вопросу. Как можно вырезать и копировать текст с помощью мыши в текстовой консоли? - После того, как вы запустили даемон мыши (посмотрите предыдущий раздел), нажмите кнопку 1 - (левую) и двигайте мышь для выделения текста. Затем - нажмите кнопку 2 (среднюю) для его вставки с позиции текстового - курсора. Нажатие кнопки 3 (правой) расширит - выбранную текстовую область. + Удалить данные с помощью мыши нельзя. Однако их + можно скопировать и вставить. После + запуска даемона мыши, как описано в ответе на предыдущий вопрос, нажмите + кнопку 1 (левую) и двигайте мышь для выделения текста. + Затем нажмите кнопку 2 (среднюю) для его вставки с + позиции текстового курсора. Нажатие кнопки 3 (правой) + расширит выбранную текстовую область. - Если у вашей мыши отсутствует средняя кнопка, вы можете её - сэмулировать или переназначить кнопки опциями даемона мыши. + Если у вашей мыши отсутствует средняя кнопка, её можно + сэмулировать либо переназначить кнопки опциями даемона мыши. Обратитесь к справочным страницам по &man.moused.8; для получения полной информации. У моей мыши есть дополнительные колёсико и кнопочки. Можно ли их использовать во &os;? Ответ, к сожалению, в зависимости от обстоятельств. Эти мышки с дополнительными возможностями, как правило, требуют наличия специальных драйверов. До тех пор, пока драйвер мыши или прикладная программа не будут иметь отдельную поддержку такой мыши, она будет работать как стандартная двух- или трёхкнопочная мышь. Возможные способы использования колёсиков мыши при работе в X Window описаны в другом разделе. - - Как использовать мышь/трэкболл/сенсорную панель на - лэптопе? - - - - Посмотрите ответ на предыдущий - вопрос. - - - - Как использовать клавишу delete в sh и csh? Для Bourne Shell добавьте - следующие строки в ваш .shrc. Смотрите + следующие строки в ~/.shrc. Смотрите &man.sh.1; и &man.editrc.5;. bind ^? ed-delete-next-char # для консоли bind ^[[3~ ed-delete-next-char # для xterm Для C Shell добавьте следующие - строки в ваш .cshrc. Смотрите + строки в ~/.cshrc. Смотрите &man.csh.1;. bindkey ^? delete-char # для консоли bindkey ^[[3~ delete-char # для xterm За дополнительной информацией обращайтесь к этой странице. - - Сетевые и последовательные устройства + + Другое оборудование - - Какие сетевые адаптеры поддерживает &os;? - - - - Обратитесь к файлу Hardware Notes, поставляемому с каждым - релизом &os;, для получения полного списка. - - - - - - Существует ли собственный драйвер для адаптеров Broadcom - 43xx? - - - - Да, многие из адаптеров Broadcom 43xx поддерживаются - драйверами &man.bwn.4; и &man.bwi.4;. - - - - - - Какие многопортовые последовательные адаптеры поддерживаются во - &os;? - - - - Список таких устройств находится в главе Руководства - Последовательные - соединения. - - Некоторые безымянные клоны таких адаптеров тоже работают - нормально, особенно те, которые заявляют о своей совместимости - с AST. - - Прочтите страницы Справочника о &man.sio.4; для получения - подробной информации о конфигурировании таких адаптеров. - - - - - - Как сделать, чтобы приглашение boot: выводилось на консоль на - последовательном порту? - - - - Подробная информация находится в этом - разделе Руководства. - - - - - - - Звуковые устройства - - - - - Какие звуковые адаптеры поддерживаются во &os;? - - - - &os; поддерживает различные звуковые адаптеры - (дополнительную информацию - можно найти в Информации о - релизе &os; и странице справочной системы - по &man.snd.4;). Имеется также ограниченная поддержка MPU-401 - и совместимых с ним адаптеров. Поддерживаются и адаптеры, - соответствующие спецификации µsoft; Sound System. - - - Это касается только звука! Этот драйвер не поддерживает - CD-ROM, SCSI или джойстики ни на каких подобных адаптерах, кроме - &soundblaster;. Поддерживаются устройства на SCSI-интерфейсе - &soundblaster; и не-SCSI CD-ROM, но загрузиться с них - невозможно. - - - - - Есть ли решение проблемы отсутствия звука при использовании звуковых адаптеров &man.pcm.4;? Некоторые звуковые адаптеры при каждой загрузке сбрасывают уровень громкости в 0. Выполняйте следующую команду при каждой загрузке машины: &prompt.root; mixer pcm 100 vol 100 cd 100 - - - - Другое оборудование - - - Поддерживает ли &os; управление энергосбережением на лэптопах? - &os; поддерживает APM - на некоторых машинах. Более полная информация может быть найдена - в справочной странице по &man.apm.4;. - - &os; также поддерживает функции - ACPI, реализованные в основной массе - современного оборудования. Дополнительную информацию можно найти - на странице справочной системы &man.acpi.4;. Если система - поддерживает как APM, так и - ACPI, можно использовать любую из них. Мы - рекомендуем опробовать обе и выбрать ту, что подходит вам в - большей степени. + &os; поддерживает функции ACPI, + реализованные в современном оборудовании. + Дополнительная информация находится + на странице Справочника &man.acpi.4;. - - - - Как я могу отключить ACPI? - - - - Добавьте следующую строчку в файл - /boot/device.hints: - - hint.acpi.0.disabled="1" - - - - - - Компьютеры Micron зависают при загрузке - - - - Некоторые материнские платы Micron имеют BIOS, не - удовлетворяющую стандарту PCI BIOS, что приводит к печальным - последствиям при загрузке &os;, потому что имеет место - несоответствие устройств PCI занимаемым ими адресам. - - Для устранения этой проблемы отключите в BIOS опцию - Plug and Play Operating System. - - - - - - При загрузке с установочной дискеты машины с материнской платой - ASUS K7V зависают. Как это исправить? - - - - Войдите в настройку BIOS и выключите защиту от - загрузочных вирусов. - - - - - - Почему сетевой адаптер &tm.3com; PCI не работает с компьютерами - Micron? - - - - Смотрите предыдущий - ответ. - - - Устранение некоторых проблем Почему &os; определяет неправильное количество памяти на аппаратуре &i386;? Наиболее вероятная причина заключается в различии между адресами физической и виртуальной памяти. Существующее соглашение для большинства оборудования ПК заключается в использовании пространства памяти, лежащей в диапазоне между 3.5 ГБ и 4 ГБ для специальных нужд (обычно для нужд PCI). Это пространство адресов используется для доступа к PCI оборудованию. Как результат, реальная физическая память не может быть получена в данном адресном пространстве. - Какие действия выполняются с памятью в данном регионе - зависит от вашего оборудования. К сожалению, некоторое + Какие действия выполняются с памятью в данном регионе, + зависит от оборудования. К сожалению, некоторое оборудование ничего не выполняет и возможность использовать эти 500 МБ ОЗУ полностью потеряна. К счастью, большинство оборудования перераспределяет память к более верхней позиции, так что она всё ещё может использоваться. Тем не менее, это может вызвать некоторое - замешательство, если вы посмотрите сообщения, выдаваемые при + замешательство при просмотре сообщений, выдаваемых при загрузке. На 32-битной версии &os; кажется, что эта память - потерялась. На самом деле она перераспределится в промежуток, - лежащий за 4 ГБ, который не видим для 32 битного ядра. - В данном случае, решение заключается в сборке ядра, с включенной - опцией PAE. За дополнительной информацией обращайтесь к статье об ограничениях памяти - и о различных - ограничениях памяти на различных платформах. + потерялась, поскольку она переназначится в диапазон выше + 4 ГБ, который не доступен для 32 битного ядра. + В данном случае, решение заключается в сборке ядра с PAE. + За дополнительной информацией обращайтесь к статье об + ограничениях памяти. На 64nbsp;битной версии &os; или в случае использования ядра с включённым PAE &os; корректно определит и перераспределит память, так, что она станет годной к использованию. Тем не менее, во время загрузки может показаться, что &os; определяет больше памяти, чем реально имеется в системе из-за описанного перераспределения. Это нормально, и информация о доступной памяти будет скорректирована по окончанию процесса загрузки. - - На моём винчестеры есть запорченные блоки! - - - - Если это SCSI-устройство, то винчестер должен иметь возможность - автоматической переадресации таких блоков. Однако во многих - поставляемых дисках эта возможность отключена. - - Для включения переадресации запорченных блоков, измените - режим работы устройства, что может быть выполнено пользователем - root по команде - - &prompt.root; camcontrol modepage sd0 -m 1 -e -P 3 - - и изменить значения параметров AWRE и ARRE с 0 на 1: - - AWRE (Auto Write Reallocation Enbld): 1 -ARRE (Auto Read Reallocation Enbld): 1 - - Контроллеры современных IDE-дисков имеют встроенную функцию - переадресации запорченных блоков, которая на момент продажи - включена. - - Если вы увидите предупреждения о запорченных блоках (на любом - типе устройства), это значит, что пришло время подумать над заменой - диска. Вы можете воспользоваться диагностической программой - производителя диска для поиска этих запорченных блоков, и в лучшем - случае это только отнимет ваше время. - - - - - - Почему &os; не распознаёт SCSI-контроллер на машине HP - Netserver? - - - - В общем-то это известная проблема. EISA-контроллеры SCSI, - расположенные на материнской плате машин HP Netserver, занимают - EISA-слот номер 11, так что все настоящие слоты - EISA будут ему предшествовать. Так как адресное пространство для - слотов EISA выше 10 пересекается с адресным пространством, - предназначенным для PCI, то автоконфигуратор &os; в настоящее - время не может эту проблему нормально обойти. - - Так что пока лучшее, что вы можете предпринять, это попытаться - указать, что пересечения диапазонов адресов нет :), установив опцию - ядра EISA_SLOTS в значение 12. - Отконфигурируйте и откомпилируйте ядро так, как это описано в разделе - Руководства о конфигурировании ядра. - - Конечно, это даст вам типичную ситуации "курица или яйцо" - при установке системы на такой машине. Для обхода этой проблемы - внутри UserConfig есть специальный хак. Не - используя визуального интерфейса, а только - интерфейс командной строки, просто наберите следующую команду - в приглашении и установите систему как обычно. - - eisa 12 -quit - - В любом - случае рекомендуется, что вы отконфигурируете и установите - собственное ядро. - - Надеемся, что будущие версии будут содержать полное решение - этой проблемы. - - - Вы не сможете использовать режим dangerously - dedicated на машинах HP Netserver. Полное описание - причин содержится в этом - замечании. - - - - - - - Выдаются сообщения типа ed1: - timeout. - - - - Обычно это вызвано конфликтом прерываний (например, двух - адаптеров, использующих один и тот же IRQ). Загрузите систему с - опцией и смените строку, описывающую - ed0/de0/... - на соответствующую вашей системе. - - Если вы используете разъём BNC сетевого адаптера, таймауты - устройства могут быть вызваны плохим терминированием. Чтобы это - проверить, подключите терминатор к адаптеру (без кабеля) и - посмотрите, не исчезли ли сообщения об ошибках. - - Некоторые NE2000-совместимые адаптеры выдают такую ошибку, - если нет связи по UTP-порту или отключен кабель. - - - - - - Почему мой адаптер &tm.3com; 3C509 перестал работать без всякой - видимой причины? - - - - Этот адаптер имеет странную привычку терять информацию о своих - настройках. Обновите настройки вашего адаптера при помощи утилиты - 3c5x9.exe из DOS. - - - - - - Мой параллельный принтер печатает невероятно медленно. Что тут - можно сделать? - - - - Если проблема только в том, что принтер работает ужасно - медленно, попробуйте сменить - режим работы порта принтера так, как это описано в разделе - - Настройка принтера Руководства. - - - - Программы аварийно завершают работу с ошибкой Signal 11. Ошибки выполнения, связанные с сигналом 11, происходят, - когда ваш процесс пытается обратиться к области памяти, доступ к + когда процесс пытается обратиться к области памяти, доступ к которой ему не был дан операционной системой. Если что-то подобное - происходит в случайные, на первый взгляд, промежутки времени, то - вам нужно попытаться выяснить подробности происходящих событий - более детально. + происходит в случайные, казалось бы, промежутки времени, + следует начать поиск причины. Эти проблемы могут быть классифицированы следующим образом: - Если проблема возникает только в определённом приложении, - которое было самостоятельно вами разработано, то, скорее всего, - это ошибка в вашем коде. + Если проблема возникает только в определённом + самостоятельно разработанном приложении, то скорее + всего это ошибка в коде. Если это проблема в части базового комплекта системы &os;, то это тоже может быть ошибка в программном коде, хотя в большинстве случаев такие проблемы обнаруживаются и ошибки - исправляются задолго до того, как обычным читателям FAQ + исправляются задолго до того, как обычным читателям + FAQ доводится использовать этот код (именно для этого предназначена - версия -current). + версия -CURRENT). - В частности, достоверно не ошибка &os;, - если вы сталкиваетесь с проблемой при компиляции программы, но при - работе компилятора место сбоя каждый раз изменяется. + Вероятно, это не связано с ошибкой во &os;, + если проблема проявляется при компиляции программы, и при + этом ошибка компилятора каждый раз разная. - Например, положим, что вы запускаете команду make - buildworld и компиляция - завершилась аварийно при попытке - компиляции ls.c в ls.o. - Если при следующей попытке повторно выполнить make - buildworld и компиляция - прервётся на том же самом месте, - то это ошибки процесса построения — попробуйте обновить исходные - тексты и попробуйте снова. Если же компиляция прерывается в - каком-то другом месте, то в этом практически достоверно виновато - оборудование. + Например, если запуск make + buildworld завершился неудачей при попытке + компиляции ls.c в + ls.o и при повторном запуске + компиляция снова прервалась на том же месте, то это ошибка + процесса построения. Обновите исходные тексты и попробуйте + снова. Если же компиляция прерывается в каком-то другом + месте, то причина наиболее вероятно кроется в + оборудовании. - Что вы должны сделать: + В первом случае воспользуйтесь отладчиком, к примеру, + &man.gdb.1;, для нахождения точки программы, в которой + делается попытка доступа к неверному адресу, и исправьте + эту ошибку. - В первом случае вы должны воспользоваться отладчиком, к - примеру, &man.gdb.1;, для нахождения точки программы, в которой - делается попытка доступа к неверному адресу и затем исправить эту - ошибку. + Во втором случае проверьте, какой компонент вашего + оборудования неисправен. - Во втором случае вам нужно проверить, что ваше оборудование - исправно. - Среди часто приводящих к этому причин: - Ваши винчестеры могут перегреваться: Проверьте работу - вентиляторов в вашем системном блоке, так как ваш диск (и может, - также другие компоненты, могут перегреваться). + Диски могут перегреваться. Проверьте работу + вентиляторов. - Работающий процессор перегревается: Это может произойти - из-за выхода частоты процессора за рабочие границы или поломки - вентилятора на процессоре. В любом случае вам нужно - убедиться, что ваше оборудование работает так, как ему - положено, по крайней мере, на момент поиска причин - неисправности, другими словами, установите частоту работы на - настройки по умолчанию. + Процессор перегревается. Это может произойти + при разгоне процессора или при поломке процессорного + вентилятора. В любом из вариантов убедитесь, что + ваше оборудование работает так, как ему положено по + крайней мере на момент поиска причин неисправности. + В противном случае сбросьте частоту на настройки по + умолчанию. - Если вы превысили рабочие частоты работы процессора, - заметьте, что дешевле обходится медленная система, чем - сгоревшая система, требующая замены! Также общество не часто - симпатизирует проблемам на таких системах, вне зависимости от - того, считаете ли вы увеличение рабочей частоты не влияющим на - работу или нет. + Что касается разгона, дешевле обходится медленная + система, чем сгоревшая система, требующая замены! + Также общественность не симпатизирует проблемам на + таких системах. - Хитрая память: Если у вас установлено множество микросхем - SIMM/DIMM, то вытащите их все и попытайтесь поработать - индивидуально с каждой микросхемой SIMM или DIMM и локализовать - проблему либо до проблематичной микросхемы DIMM/SIMM, либо даже - их комбинации. + Хитроумная память. Если установлены различные + микросхемы SIMM/DIMM, вытащите их все и попробуйте + по одной до локализации проблемы в проблематичной + микросхеме DIMM/SIMM, либо их комбинации. - Чересчур оптимистические настройки материнской платы: При - настройке вашей BIOS и выборе положения перемычек на - материнской плате вы имеете возможность задать различные - частоты и задержки, и в большинстве случаев настройки по - умолчанию достаточны, но иногда установка слишком малых - периодов ожидания для ОЗУ, установка параметра RAM - Speed: Turbo и подобных параметров в BIOS вызовет - странное поведение. Возможным решением может стать установка - параметров BIOS по умолчанию, но сначала стоит записать ваши - настройки! + Чересчур оптимистичные настройки материнской платы. + Настройки BIOS и перемычки на материнской плате + предоставляют возможность задавать различные частоты и + задержки. Часто бывает достаточно настроек по + умолчанию, но иногда установка слишком малых периодов + ожидания для ОЗУ или установка параметра RAM + Speed: Turbo вызывает странное поведение. + Возможным решением может стать установка параметров + BIOS по умолчанию с предварительной записью текущих + значений. - Неустойчивое или недостаточное электропитание материнской - платы. Если в вашей системе есть неиспользуемые адаптеры - ввода/вывода, винчестеры или приводы компакт-дисков, попробуйте - временно их убрать или отключить от кабеля электропитания, - чтобы посмотреть, сможет ли ваш блок питания работать с меньшей - нагрузкой. Или попробуйте воспользоваться другим блоком - питания, желательно большей мощности (например, если имеющийся - блок питания рассчитан на 250 Ватт, попробуйте другой - мощностью 300 Ватт). + Неустойчивое или недостаточное электропитание + материнской платы. Уберите неиспользуемые адаптеры + ввода/вывода, винчестеры и приводы компакт-дисков или + отключите их от кабеля электропитания для проверки, + что блок питания может работать с меньшей нагрузкой. + Или попробуйте воспользоваться другим блоком + питания, желательно большей мощности. Например, если + имеющийся блок питания рассчитан на 250 Ватт, + попробуйте другой мощностью 300 Ватт). - Вы также должны прочитать FAQ по SIG11 (ссылка дана ниже), в - котором даны прекрасные описания всех этих проблем, хотя и с точки - зрения &linux;. Также обсуждается, как аппаратура или программное - обеспечение для тестирования памяти могут пропускать сбойную - память. + Прочитайте раздел про Signal 11 для дальнейшего + объяснения и обсуждения, как аппаратура или программное + обеспечение для тестирования памяти могут пропускать + сбойную память. Подробная информация по этому вопросу + содержится в FAQ + по проблеме SIG11. - Наконец, если ничего из этого не помогает, то возможно, что - просто вы нашли ошибку во &os; и должны следовать инструкциям - по посылке сообщений о проблемах. - - Подробная информация по этому вопросу содержится в FAQ по проблеме - SIG11. - - - - - - Моя система аварийно завершает работу с сообщениями - Fatal trap 12: page fault in kernel mode - либо panic:, и выдаёт много дополнительной - информации. Что мне делать? - - - - Разработчики &os; очень интересуются такими ошибками, но - им нужно несколько больше информации, чем просто факт - возникновения этой ошибки. Полностью скопируйте сообщение. - Затем обратитесь к разделу FAQ об аварийных завершениях - работы ядра, постройте отладочное ядро и получите - трассу вызовов. Это может звучать трудной задачей, но вам не - нужны никакие знания программирования; просто следуйте - указаниям. + Наконец, если ничего не помогает, то, возможно, это + из-за ошибки во &os;. Следуйте этим + инструкциям для отправки сообщения о проблеме. - - При загрузке монитор темнеет и теряет синхронизацию! + + Моя система аварийно завершает работу с сообщениями + Fatal trap 12: page fault in kernel mode + либо panic:, и выдаёт много дополнительной + информации. Что мне делать? - Это известная проблема с видеоадаптерами ATI Mach64. Она - вызвана тем, что этот адаптер использует адрес - 2e8, как и четвёртый последовательный порт. - Из-за ошибки (или особенности работы?) в драйвере &man.sio.4; он - обращается к порту, даже если он не существует, и - даже если вы отключите - sio3 (четвёртый порт), - который, как правило, использует этот адрес ввода/вывода. - - Пока это не исправлено, используйте следующий метод: - - - - В приглашении загрузчика наберите . - (Это переведёт ядро в режим конфигурации). - - - - Отключите устройства sio0, - sio1, sio2 и - sio3 (все их). После этого драйвер - &man.sio.4; не будет активизироваться и проблем не - будет. - - - - Для продолжения загрузки наберите exit. - - - - Если вам нужно использовать последовательные порты, вы должны - построить новое ядро со следующей модификацией: в файле - /usr/src/sys/dev/sio/sio.c (или в файле - /usr/src/sys/pc98/cbus/sio.c для pc98) - найдите строчку, - содержащую число 0x2e8 и удалите её вместе с - предшествующий запятой (оставив следующую). После этого следуйте - обычным указаниям по построению ядра. + Разработчики &os; интересуются такими ошибками, но + им нужно больше информации, чем просто текст ошибки. + Скопируйте весь текст сообщения. + Затем обратитесь к разделу FAQ об + аварийных завершениях + работы ядра, постройте отладочное ядро и получите + трассу вызовов. Это может звучать трудной задачей, зато не + требует навыков программирования. Просто следуйте + указаниям. - - Почему &os; использует только 64 Мбайт ОЗУ, тогда как - установлено все 128 Мбайт? - - - - Так как для определения объёма памяти &os; использует - информацию BIOS, она ограничена 16 битами, используемыми для - выражения размера ОЗУ в килобайтах (65535 Кбайт = 64 Мбайт) (или - меньше... некоторые BIOS ограничивают размеры памяти до 16 Мбайт). - Если у вас больше чем 64 Мбайт ОЗУ, &os; будет пытаться - обнаружить эту память; однако эта попытка может и не - удаться). - - Для решения этой проблемы вам нужно использовать опцию ядра, - указанную ниже. Способ выяснения полной информации о памяти из - BIOS существует, но у нас нет места в загрузочном блоке, чтобы это - делать. Когда проблема нехватки места в загрузочных блоках будет - решена, мы будем использовать расширенные функции BIOS для - получения полной информации о памяти... но пока мы остановились на - опции ядра. - - options MAXMEM=n - - Здесь n - это объём памяти в - килобайтах. Для машины со 128 Мбайт ОЗУ вам нужно использовать - значение 131072. - - - - - - Объём оперативной памяти моей системы превышает 1 Гбайт, работа - завершается аварийно с выдачей сообщения kmem_map too - small messages. Что не так? - - - - Как правило, &os; определяет параметры ядра, в частности, - максимальное количество одновременно открытых файлов, исходя из - объёма памяти, установленного в системе. В системах, имеющих 1 - Гбайт или больший объём оперативной памяти, этот механизм - автоматического определения параметров может выбрать - слишком большие значения: при запуске ядро выделяет пространство - под различные таблицы и другие структуры, которые заполняют - основной объём доступной ядру памяти. В дальнейшем при работе - системы у ядра не остаётся пространства для динамического - распределения памяти, и оно завершает работу аварийно. - - Скомпилируйте новое ядро, добавив параметр - в конфигурационный файл ядра, - увеличив его максимальный размер до 400 Мбайт - (). - 400 Мбайт должно быть достаточно для машин с объёмом - оперативной до 6 Гбайт. - - - - - - В моей системе нет 1 Гбайта оперативной памяти, однако &os; - аварийно завершает работу, выдавая сообщение kmem_map - too small! - - - - Такое завершение работы показывает, что системе не хватает - виртуальной памяти для сетевых буферов (точнее, структур mbuf). Вы - можете увеличить количество виртуальной памяти для структур mbuf, - если будете действовать в соответствии с инструкциями раздела - - Ограничения сети Руководства. - - - - - Почему я получаю сообщение об ошибке kernel: proc: - table is full? + Что означает сообщение об ошибке maxproc + limit exceeded by uid %i, please see tuning(7) and + login.conf(5)? - Ядро &os; позволяет существовать одновременно ограниченному - числу процессов. Оно зависит от значения переменной - &man.sysctl.8; kern.maxusers. - kern.maxusers также влияет на другие ограничения - ядра, такие как буферы работы с сетью (обратитесь к этому рассмотренному ранее - вопросу). Если ваша машина сильно загружена, вам, наверное, - понадобится увеличить kern.maxusers. Кроме - максимального числа процессов это увеличит значения и других + Ядро &os; позволяет одновременно существовать + ограниченному числу процессов. Это зависит от значения + переменной &man.sysctl.8; kern.maxusers. + kern.maxusers также влияет на другие + ограничения ядра, такие как буферы работы с сетью. + Если система сильно загружена, поднимите + kern.maxusers. Кроме максимального + числа процессов это также увеличит значения других параметров, ограничивающих систему. - Для корректировки значения kern.maxusers - обратитесь к разделу - Ограничения файлов/процессов Руководства. (Хотя в нём - говорится об открытых файлах, те же самые ограничения касаются и - процессов.) + Для корректировки значения + kern.maxusers обратитесь к разделу + Ограничения файлов/процессов Руководства. В нём + говорится об открытых файлах, но те же ограничения касаются + процессов. - Если ваша машина загружена слабо, и просто у вас - слишком много процессов, то вы можете настроить это через sysctl - kern.maxproc. Если данная переменная нуждается - в настройке, она должна быть определена в - /boot/loader.conf. За дополнительной информацией, - касающейся работы с sysctl переменными обращайтесь к страницам - справочника &man.loader.conf.5; и &man.sysctl.conf.5;. Если эти - процессы запущены одним и тем же пользователем, вам также задать значение - kern.maxprocperuid на единицу меньшим, чем новое - значение kern.maxproc. (Оно должно быть по - крайней мере на единицу меньшим, потому что системная программа - &man.init.8;, должна работать всегда.) - - Чтобы сохранить значения sysctl, задайте - их в /etc/sysctl.conf. Дополнительную информацию - о настройке системы с помощью &man.sysctl.8; можно найти в главе - Руководства Настройка с - помощью sysctl + Если система загружена слабо, но в ней запущено + слишком много процессов, поправьте параметр + kern.maxproc, определив его значение в + /boot/loader.conf. Изменение не вступит + в силу до перезагрузки системы. За дополнительной информацией, + касающейся настройки параметров, обращайтесь к странице + Справочника &man.loader.conf.5;. Если эти процессы запущены + одним и тем же пользователем, поправьте + значение kern.maxprocperuid, чтобы оно + было на единицу меньше, чем новое значение + kern.maxproc. Оно должно быть меньше по + крайней мере на единицу, потому что системная программа + &man.init.8; должна работать всегда. - - При перезагрузке с новым ядром выдаётся сообщение - CMAP busy panic. - - - - Процедура определения устаревших файлов - /var/db/kvm_*.db иногда даёт сбой и использует - не те файлы, что может вызвать аварийный останов системы. - - Если это случилось, загрузитесь в однопользовательский - режим и выполните команду: - - &prompt.root; rm /var/db/kvm_*.db - - - - - - Что означает сообщение ahc0: brkadrint, Illegal - Host Access at seqaddr 0x0 - - - - Это - результат конфликта со SCSI-адаптером Ultrastor. - - Во время загрузки войдите в меню конфигурации ядра и выключите - устройство uha0, являющееся источником - этой проблемы. - - - - - - При загрузке моей системы выдается сообщение об ошибке - ahc0: illegal cable configuration. С - подключением кабеля все в порядке. Что происходит? - - - - На вашей материнской плате отсутствует внешняя логика - поддержки автоматического терминирования. Установите в вашем SCSI - BIOS правильное терминирование для вашей конфигурации вместо - автоматического терминирования. Драйвер &man.ahc.4; не может - определить, есть ли внешняя логика для распознавания кабеля (и, - соответственно, автоматического терминирования). Драйвер просто - полагает, что эта поддержка должна быть, если конфигурация, - содержащаяся в EEPROM, установлена в - automatic termination. Без - внешней логики распознавания кабеля драйвер часто будет ошибаться - при настройке терминирования, что может сказаться на надежности - шины SCSI. - - - - - - Sendmail сообщает, что - mail loops back to myself - - - - Подробный ответ вы можете получить в Руководстве. - - - - - Полноэкранные приложения на удалённой машине ведут себя + Полноэкранные приложения на удалённой машине работают неправильно! - На удалённой машине тип терминала может быть установлен - в значение, отличное от типа терминала cons25, - требуемом при использовании консоли &os;. + На удалённой машине тип терминала может отличаться + от xterm, который требуется для + использования консоли &os;. Либо же ядро может иметь + неправильные значения ширины и высоты терминала. - Есть несколько возможных способов решения этой - проблемы: + Проверьте, чтобы переменная окружения + TERM имела значение + xterm. Если удалённая машина его не + поддерживает, попробуйте vt100. - - - После входа на другую машину установите значение - переменной окружения TERM равным - ansi - или sco, если эта машина знает об этих - типах терминалов. - + Запустите stty -a, чтобы узнать, + какие размеры терминала заданы в ядре. Если значения + неправильные, их можно поменять командой + stty rows RR cols + CC. - - Используйте эмулятор VT100, например - screen на консоли &os;. - Screen даёт вам возможность - открывать несколько рабочих сеансов на одном терминале, - и она имеет ещё ряд полезных особенностей. Каждое окно - программы screen ведёт себя - как терминал VT100, так что переменная TERM - на удалённой - машине должна быть установлена в - значение vt100. - - - - Опишите терминал cons25 в базе - данных характеристик терминалов на удалённой машине. - Способ описания зависит от используемой на этой машине - операционной системе. Вам может помочь чтение руководств - по администрированию удалённой системы. - - - - Запустите X-сервер на стороне &os; и войдите на - удалённую систему с помощью какого-либо эмулятора терминала, - работающего в X Window, такого, как xterm - или rxvt. Переменная окружения - TERM - на удалённой машине должна быть установлена в значение - xterm или vt100. - - + Либо же, если на клиентской машине установлен + x11/xterm, запуск + resize позволит узнать у терминала + правильные размеры и применить эти значения. - - Почему мой PnP-адаптер - не обнаруживается (или определяется - как unknown)? - - - - Причины такого поведения объясняются в следующем сообщении - электронной почты, опубликованном в &a.questions; - &a.peter.email; в ответ на вопрос о внутреннем модеме, - который перестал распознаваться после обновления до &os; - 4.X - (комментарии внутри [] были добавлены для - пояснения контекста послания). - - - Содержание этой цитаты по сравнению с оригинальным текстом - было изменено. - - -
- BIOS, поддерживающая PNP, предварительно отводит и оставляет - ему [модему] место в адресном пространстве портов, так что [в - 3.X] процедура обнаружения в старом - стиле ISA находит его здесь. - - В 4.0 код для работы с ISA гораздо более PnP-центричен. - [В 3.X] было возможно при - распознавании ISA найти - беспризорное устройство и затем по идентификатору - PNP-устройства произвести поиск и получить ошибку из-за конфликта - ресурсов. Поэтому для предотвращения повторной процедуры - распознавания в нём сначала выключаются все управляемые - адаптеры. Это также означает, что для поддерживаемого - оборудования PnP нужно знать их PnP-идентификаторы. Имеются - планы на обеспечение возможности настройки этого со стороны - пользователя. -
- - Чтобы заставить устройство работать снова, требуется определить - его PnP-идентификатор и добавить его в список, который используется - процедурой распознавания ISA для идентификации устройств PnP. Этот - идентификатор можно получить при помощи программы &man.pnpinfo.8;, - найдя устройство в её выдаче, вот, например, вывод команды - &man.pnpinfo.8; в случае внутреннего модема: - - &prompt.root; pnpinfo -Checking for Plug-n-Play devices... - -Card assigned CSN #1 -Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff -PnP Version 1.0, Vendor Version 0 -Device Description: Pace 56 Voice Internal Plug & Play Modem - -Logical Device ID: PMC2430 0x3024a341 #0 - Device supports I/O Range Check -TAG Start DF - I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8 - [16-bit addr] - IRQ: 4 - only one type (true/edge) - - [лишние строки TAG исключены] - - TAG End DF -End Tag - -Successfully got 31 resources, 1 logical fdevs --- card select # 0x0001 - -CSN PMC2430 (0x3024a341), Serial Number 0xffffffff - -Logical device #0 -IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 -IRQ 5 0 -DMA 4 0 -IO range check 0x00 activate 0x01 - - Информация, которая вам нужна, находится в строке - Vendor ID в самом начале вывода команды. - Шестнадцатеричное число в скобках (в этом примере - 0x3024a341) является PnP-идентификатором, а - строчка, идущая прямо перед ним (PMC2430) - является уникальным ASCII-идентификатором. - - Либо, если в списке, выдаваемом &man.pnpinfo.8;, адаптера нет, - можно воспользоваться утилитой &man.pciconf.8;. Вот часть выдачи - команды pciconf -vl для интегрированного в - материнскую плату звукового адаптера: - - &prompt.root; pciconf -vl -chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02hdr=0x00 - vendor = 'Intel Corporation' - device = '82801AA 8xx Chipset AC'97 Audio Controller' - class = multimedia - subclass = audio - - В данном случае вам нужно использовать значение для - chip, 0x24158086. - - Эту информацию (ID производителя или номер микросхемы) нужно - добавить в файл /usr/src/sys/dev/sio/sio_isa.c. - - Сначала вы должны сделать резервную копию файла - sio_isa.c просто на тот случай, если что-то пойдёт - не так. Эта копия также может потребоваться для создания патча для - посылки его вместе с вашим PR (вы же собираетесь послать PR, не - правда ли?) отредактировав файл sio_isa.c и - поискав строчку: - - static struct isa_pnp_id sio_ids[] = { - - Затем переместитесь ниже и найдите подходящее место, чтобы - добавить строчку для вашего устройства. Записи имеют примерно такой - вид, и они отсортированы по ASCII-строкам Vendor ID, которые должны - быть помещены в поле комментария справа от строки кода вместе с - полным описанием устройства (если оно поместится) или частью из - Device Description вывода программы - &man.pnpinfo.8;: - - {0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */ -{0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */ -{0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */ -{0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */ -{0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */ - - Добавьте шестнадцатеричный идентификатор Vendor ID вашего - устройства в соответствующее место, сохраните файл, перестройте - ядро и выполните перезагрузку. Ваше устройство должно теперь быть - найдено в виде устройства sio. -
-
- - - - Почему при запуске некоторых программ, например, - top или systat, выдается - сообщение об ошибке nlist failed? - - - - Проблема в том, что приложение, которое вы пытаетесь - запустить, ищет специфические ссылки в ядре, но по каким-либо - причинам не может их найти; эта ошибка происходит от одной из - следующих проблем: - - - - Ваше ядро и программы пользователей не соответствуют - друг другу (например, вы построили ядро, но не выполнили - команду installworld, или наоборот), - и поэтому таблица имен отличается от того, что думают о ней - пользовательские приложения. Если это ваш случай, просто - завершите процесс обновления (обратитесь к файлу - /usr/src/UPDATING для выяснения - правильной последовательности действий). - - - - Для загрузки ядра вы не используете - /boot/loader, а делаете это - непосредственно из boot2 (обратитесь - к справочно странице по &man.boot.8;). Хотя нет ничего - плохого в обходе /boot/loader, обычно - работу по доступности символьной информации ядра из - пользовательских приложений он выполняет лучше. - - - - - - Почему подключение через ssh или telnet к моему компьютеру занимает так долго времени? Симптом: между моментом установления TCP-соединения и выдачей клиентским программным обеспечением запроса на ввод пароля (или, в случае использования &man.telnet.1;, выдачей приглашения на вход) проходит большой промежуток времени. Проблема: скорее всего, задержка вызвана программным обеспечением на стороне сервера, которое пытается преобразовать IP-адрес клиента в имя хоста. Многие серверы, включая Telnet и SSH, поставляемые с &os;, делают это для того, чтобы, кроме всего прочего, записать имя хоста в файле журнала для справки администратора. - Лечение: Если проблема возникает вне зависимости от того, - к какому серверу вы подключаетесь с вашего компьютера (клиента), - то причина в клиенте; или же, если проблема возникает только - при чьей-либо попытке подключиться к вашему компьютеру (серверу), - то проблема с сервером. + Лечение: Если проблема возникает при подключении + клиента к любому серверу, то причина в клиенте. Если + проблема возникает только при чьей-либо попытке + подключиться к серверу, то проблема в сервере. Если проблема с клиентом, то единственным методом ее решения является исправление DNS, чтобы сервер смог распознать вашу машину. Если это происходит в локальной сети, то предположите, - что это проблема с сервером и продолжайте чтение; обратно, если - это происходит в глобальной сети Интернет, то в большинстве - случаев вам нужно обратиться к вашему провайдеру и попросить - исправить положение. + что это проблема с сервером, и продолжайте чтение. Если + это происходит в сети Интернет, обратитесь к вашему + провайдеру. - Если проблема с сервером, и это происходит в локальной - сети, то вам нужно настроить сервер для разрешения запросов на - преобразование адреса в имя хоста в диапазоне ваших локальных + Если проблема с сервером в локальной + сети, настройте сервер для разрешения запросов на + преобразование адреса в имя хоста в диапазоне локальных адресов. Обратитесь к страницам Справочника по &man.hosts.5; и &man.named.8; для получения более подробной информации. - Если это происходит в глобальной сети Интернет, то проблема - может заключаться в некорректной работе ресолвера вашего сервера. - Для проверки попробуйте найти другой хост, скажем, + Если это происходит в сети Интернет, то проблема + может заключаться в некорректной работе ресолвера локального сервера. + Для проверки попробуйте получить адрес другого хоста, такого как www.yahoo.com. Если это не работает, то - проблема у вас. + в этом и состоит проблема. Из-за свежей установки &os;, также возможно, что информация о домене и сервере имён отсутствует в /etc/resolv.conf. Это часто будет вызывать задержку в работе SSH, так как опция UseDNS по умолчанию - установлена в значение yes в файле - sshd_config из каталога /etc/ssh. Если именно это является - причиной проблемы, то вам нужно будет либо добавить недостающую + установлена в значение yes в + /etc/ssh/sshd_config. Если именно это является + причиной проблемы, то добавьте недостающую информацию в /etc/resolv.conf, либо в - качестве временной меры установить UseDNS + качестве временной меры установите UseDNS в no в файле sshd_config. - - Что означает сообщение stray IRQ? - - - - Потерянные IRQ являются признаком странностей в работе - аппаратных IRQ, в основном оборудования, которое удаляет свои - запросы на прерывание посреди цикла подтверждения запроса на - прерывание. - - Имеется три варианта работы с такими ситуациями: - - - - Примириться с сообщениями. В любом случае подавляются все - сообщения, кроме каждых первых 5 на IRQ. - - - - Убрать предупреждающие сообщения, изменив значение - MAX_STRAY_LOG с 5 на - 0 в файле - intr_machdep.c для вашей платформы - (например, &i386;), и собрать новое ядро, и тогда все - предупреждения будут подавлены. - - - - Избавиться от предупреждений, установив параллельный порт, - использующий IRQ 7 и драйвер PPP для него (это есть на - большинстве систем), и установив диск IDE или другое - оборудование, использующее IRQ 15 и подходящий драйвер. - - - - - - Почему в &man.dmesg.8; регулярно выводятся сообщения file: table is full? - Такое сообщение об ошибке сигнализирует о том, что в вашей - системе исчерпано количество доступных файловых дескрипторов. - Пожалуйста, обратитесь к разделу + Такое сообщение об ошибке сигнализирует о том, что в + системе закончились доступные файловые дескрипторы. + Обратитесь к разделу kern.maxfiles главы о Настройке ограничений ядра Руководства для выяснения всех подробностей и устранения этой проблемы. - - Почему выводятся сообщения - calcru: negative runtime или - calcru: runtime went backwards? - - - - При включении в BIOS &intel; Enhanced SpeedStep может - возникнуть проблема, при которой ядро начинает выводить - сообщения calcru как показано - ниже: - - calcru: runtime went backwards from 6 usec to 3 usec for pid 37 (pagezero) -calcru: runtime went backwards from 6 usec to 3 usec for pid 36 (vmdaemon) -calcru: runtime went backwards from 170 usec to 138 usec for pid 35 (pagedaemon) -calcru: runtime went backwards from 553 usec to 291 usec for pid 15 (swi6: task queue) -calcru: runtime went backwards from 15521 usec to 10366 usec for pid 2 (g_event) -calcru: runtime went backwards from 25 usec to 12 usec for pid 11 (swi1: net) -calcru: runtime went backwards from 4417 usec to 3960 usec for pid 1 (init) -calcru: runtime went backwards from 2084385 usec to 1793542 usec for pid 1 (init) -calcru: runtime went backwards from 408 usec to 204 usec for pid 0 (swapper) - - Причиной является то, что &intel; SpeedStep (EIST) не - совместим с некоторыми системными платами. - - Обходной путь: отключить EIST в BIOS. При этом у вас - сохраняется возможность управлять частотой ACPI-совместимого - процессора, используя &man.powerd.8;. - - - - Почему часы на моем компьютере показывают неправильное время? - На вашем компьютере установлены двое или большее количество - таймеров, а &os; выбрала не тот. + На компьютере установлено по меньшей мере два + таймера, и &os; выбрала не тот. Запустите &man.dmesg.8; и посмотрите строки, содержащие слово Timecounter. &os; выбирает таймер с наибольшим значением качества. &prompt.root; dmesg | grep Timecounter Timecounter "i8254" frequency 1193182 Hz quality 0 Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 Timecounter "TSC" frequency 2998570050 Hz quality 800 Timecounters tick every 1.000 msec - Вы можете удостовериться в этом, проверив + Удостоверьтесь в этом, проверив &man.sysctl.3;-переменную kern.timecounter.hardware. &prompt.root; sysctl kern.timecounter.hardware kern.timecounter.hardware: ACPI-fast Это может быть неработающий таймер ACPI. Самым простым решением будет отключить таймер ACPI в - /etc/loader.conf: + /boot/loader.conf: debug.acpi.disabled="timer" Либо же BIOS может изменить частоту TSC—может, для изменения скорости работы процессора при работе от батареек или переводя в режим пониженного электропитания, но &os; не отслеживает это и в результате часы начинают спешить или отставать. В этом примере имеется также и таймер i8254, и он может быть выбран записью его имени в &man.sysctl.3;-переменную kern.timecounter.hardware. - &prompt.root; sysctl -w kern.timecounter.hardware=i8254 + &prompt.root; sysctl kern.timecounter.hardware=i8254 kern.timecounter.hardware: TSC -> i8254 - Теперь ваш компьютер будет аккуратнее следить за временем. + Теперь компьютер должен аккуратнее следить за временем. Чтобы это изменение вступало в силу во время загрузки системы, добавьте в файл /etc/sysctl.conf такую строчку: kern.timecounter.hardware=i8254 - - - Почему мой лэптоп некорректно распознаёт PC-карты? - - - - Эта проблема часто встречается на лэптопах, которые работают - более чем с одной операционной системой. Некоторые не-BSD - операционные системы оставляют аппаратную часть PC-карт в - неустойчивом состоянии. &man.pccardd.8; распознает - карту как "(null)""(null)", а не как - реально используемую модель. - - Вы должны убрать всё питание со слота PC-карты для полного - сброса аппаратуры. Полностью выключите лэптоп. (Не переводите его - ни в спящий, ни в ждущий режим; питание должно быть выключено - полностью.) Подождите несколько секунд и выполните перезагрузку. - Теперь ваша PC-карта должна заработать. - - В некоторых лэптопах аппаратная часть неверно сообщает о - своём выключении. Если описанное выше не работает, остановите - работу, выньте батарею, подождите несколько секунд, вставьте - батарею и выполните перезагрузку. - - - - - - Сразу после экрана BIOS начальный загрузчик &os; выводит - сообщение Read error и - останавливается. - - - - Начальный загрузчик &os; неверно определяет параметры - винчестера. Их можно установить вручную утилитой &man.fdisk.8; при - создании или изменении параметров слайса &os;. - - Правильные значения параметров диска можно посмотреть в BIOS. - Обратите внимание на число дорожек, головок и секторов для этого - диска. - - В подпрограмме fdisk утилиты &man.sysinstall.8; нажмите - G для установки параметров диска (disk - geometry). - - Появится диалоговое окно, запрашивающее количество дорожек, - головок и секторов. Задайте значения, взятые из BIOS и разделяемые - символами слэша. Например, 5000 дорожек, 250 головок и 60 секторов - будут введены как 5000/250/60. - - Нажмите Enter для установки этих значений, - а затем клавишу - W для того, чтобы записать новую таблицу - разделов на диск. - - - - - - Другая операционная система уничтожила мой менеджер загрузки, - как мне его восстановить? - - - - Запустите утилиту &man.sysinstall.8; и выберите пункт - Configure, а затем - Fdisk. Выберите диск, на котором ранее - находился менеджер загрузки, при помощи клавиши - Пробел. Нажмите W для записи - изменений на диск. Появится диалоговое окно для выбора - устанавливаемого начального загрузчика. Выберите нужный, и он - будет восстановлен. - - - - Что означает сообщение swap_pager: indefinite wait buffer:? Это значит, что процесс пытается сбросить страницу памяти на - диск, и попытка сделать это оканчивается неудачно вот уже в течение - более чем 20 секунд. Это может быть вызвано испорченными блоками + диск, и попытка сделать это оканчивается неудачно в течение + более 20 секунд. Это может быть вызвано испорченными блоками на диске, кабелями, подключением или другим оборудованием - ввода/вывода. Если диск сам по себе на самом деле испорчен, вы + ввода/вывода. Если диск сам по себе испорчен, вы также увидите ошибки работы с диском в - /var/log/messages и при работе команды + /var/log/messages и в выводе dmesg. В противном случае проверьте кабели и подключения. - - Что означают ошибки UDMA ICRC, и как их - исправить? - - - - Драйвер &man.ata.4; сообщает об ошибках - UDMA ICRC, когда нарушается передача в или с - диска в режиме DMA. Драйвер будет повторять передачу - несколько раз. Если повторные попытки окончатся неудачей, он - переключится из режима DMA в более медленный режим PIO - взаимодействия с устройством. - - Проблема может возникать по многим причинам, хотя самым - распространённой является неправильное или сбоящее подключение - кабелей. Проверьте кабели ATA на наличие повреждений и - соответствие используемому режиму Ultra DMA. Если вы используете - диски на съёмных салазках, они также должны быть совместимыми с - этим режимом. Удостоверьтесь, что все соединения подключены - хорошо. Проблемы также наблюдались, когда старый диск - устанавливался на тот же самый канал ATA, что и Ultra DMA 66 - (или более быстрый) диск. Наконец, такие ошибки могут указывать на - сбойность самого диска. Большинство производителей дисков - предоставляют программное обеспечение для тестирования своих - дисков, так что проверьте свой диск, и, если это необходимо, - сделайте резервную копию данных и замените его. - - Для просмотра и выбора режимов DMA или PIO для каждого - устройства ATA можно использовать утилиту &man.atacontrol.8;. В - частности, команда atacontrol mode - channel выдаст режимы, - используемые заданным каналом ATA, причём первичный канал - нумеруется нулём, и так далее. - - - - Что означают сообщения lock order reversal? - Ответ на этот вопрос можно найти в глоссарии &os;, - смотрите LOR. + Ядро &os; использует несколько блокировок для арбитража + доступа к соответствующим ресурсам. Когда несколько + потоков в ядре пытаются захватить несколько блокировок + подряд, всегда существует возможность появления мёртвой + блокировки (deadlock), где два потока захватили по одной + блокировке и заблокированы в ожидании освобождения другим + потоком второй блокировки. Такой проблемы синхронизации + можно избежать, если все потоки захватывают блокировки в + одинаковом порядке. + + Система диагностирования блокировок &man.witness.4;, + которая по умолчанию включена во &os.current; и выключена + для стабильных веток и релизов, определяет возможность + появления мёртвых блокировок из-за ошибок их использования, + включая захват нескольких блокировок в различном порядке + в разных частях ядра. Инфраструктура &man.witness.4; + пытается обнаруживать эту проблему по мере её появления + и сообщает о ней на системную консоль в сообщении + lock order reversal (которое также + часто называют LOR). + + В силу консервативности &man.witness.4; возможны ложные + срабатывания. При правильном срабатывании такое сообщение + не означает, что система находится в + состоянии мёртвой блокировки; его следует рассматривать + как предупреждение о том, что в этом месте могла бы + произойти мёртвая блокировка. + + + Плохие LOR обычно быстро + исправляют, поэтому перед написанием сообщения в списки + рассылки следует проверить архивы &a.current.url;. + Что означают сообщения Called ... with the following non-sleepable locks held? Это означает, что функция, которая может находиться в спящем состоянии была вызвана во время использования мьютекс (или другого не засыпающего) блокирования. Причина этого - ошибка, потому что мьютексы не предполагают находиться в удерживаемом состоянии длительные промежутки времени, а блокировать только на короткие периоды синхронизации. Это правило позволяет драйверам устройств использовать мьютексы для синхронизации с остальной частью ядра во время прерываний. Прерывания (во &os;) могут находиться не в спящем состоянии. Следовательно необходимо, чтобы не было подсистем в ядре, которые бы занимались блокировкой длительный период, используя мьютекс. - Для ловли таких ошибок, в ядро могут быть добавлены + Для нахождения таких ошибок в ядро могут быть добавлены assertions, которые будут взаимодействовать с подсистемой &man.witness.4; для генерирования предупреждения или фатальной ошибки (в зависимости от системной конфигурации) в случаях когда производится потенциально блокирующий вызов с удержанием мьютекса. В общем, такие предупреждения не критичны, но тем не менее, с неудачной синхронизацией (timing) они могут вызвать нежелательные эффекты, начиная от незначительной задержки в ответной реакции системы до полной блокировки системы. + + Дополнительная информация о синхронизации во &os; + находится на странице Справочника &man.locking.9;. Почему процесс buildworld/installworld завершается с сообщением touch: not found? Эта ошибка не означает, что не найдена утилита &man.touch.1;. Ошибка наверняка появляется из-за того, что даты модификации файлов - установлены в будущем. Если ваши CMOS часы установлены на локальное - время, то вам надо отрегулировать часовой механизм ядра, запустив - команду adjkerntz -i, при загрузке в + установлены в будущем. Если CMOS часы установлены на локальное + время, отрегулируйте часовой механизм ядра, запустив + команду adjkerntz -i в однопользовательском режиме.
- - Коммерческие приложения - - - Этот раздел выглядит довольно заброшенным, однако мы, - конечно же, надеемся, что производители сделают добавления! :) Проект - &os; финансово не заинтересован в успехах ни одной из компаний, - которые здесь упоминаются, хотя приводит их список в интересах - общества (в предположении, что коммерческий интерес к &os; может - положительно повлиять на дальнейшее развитие &os;). Мы просим - поставщиков коммерческого программного обеспечения присылать нам - информацию о ваших продуктах для включения в этот список. Более - полный список производителей находится на странице - производителей. - - - - - - Где можно найти набор офисных программ для &os;? - - - - Офисные пакеты с открытым кодом OpenOffice.org - и LibreOffice - имеют версии, предназначенные для работы во &os;. - &linux;-версия - Oracle Open Office, - расширенной закрытой версии OpenOffice.org, также работает во - &os;. - - В Коллекции Портов &os; имеется также множество текстовых - редакторов, электронных таблиц и программ для работы с - изображениями. - - - - - - Где можно купить &motif; для - &os;? - - - - Open Group опубликовала исходные тексты - &motif; 2.2.2. Вы можете - установить пакет - x11-toolkits/open-motif - или скомпилировать его из портов. Воспользуйтесь секцией Порты Руководства для - получения детальной информации о том, как это сделать. - - - Лицензия Open &motif; - позволяет распространение, только если - библиотека используется на операционной системе - - с открытыми исходными текстами. - - - В дополнение нужно сказать, что существуют также, - дистрибьюторы предлагающие коммерческий вариант - &motif;. Эта библиотека не - бесплатна, но ее лицензия позволяет вести разработку приложений с - закрытыми исходными текстами. Обратитесь в фирму - Apps2go, предлагающую - самый дешёвый дистрибутив - &motif; 2.1.20 для &os; - (&i386;) в формате ELF. - - Существуют два дистрибутива, для разработчиков - (development edition) и ещё более дешёвая - времени выполнения (runtime edition). - В эти дистрибутивы включены: - - - - OSF/&motif; manager, - xmbind, - panner, - wsm. - - - - Пакет разработчика с uil, mrm, xm, xmcxx, заголовочными - файлами и файлами Imake. - - - - Статические и динамические ELF-библиотеки. - - - - Демонстрационные приложения. - - - - При оформлении заказа не забудьте указать, что вам нужна - версия &motif; именно для &os; - (не забудьте также указать архитектуру процессора)! - Apps2go также продаёт версии для NetBSD - и OpenBSD. В настоящий момент их можно получить только по - FTP. - - - Дополнительная информация - - WWW-сервер Apps2go - - - - или - - электронные адреса отделов продаж и поддержки. - - - - или - - телефоны (817) 431 8775 или - +1 817 431-8775 - - - - - - - - - - Где можно купить CDE для - &os;? - - - - Фирма Xi Graphics предлагала - CDE для - &os;, но сейчас этот продукт в продаже отсутствует. - - KDE - - это свободно - распространяемый вариант графической среды для X11, которая во - многом похожа на CDE. Вам может - также приглянуться xfce. - KDE и xfce - можно получить из - Коллекции Портов. - - - - - - Существуют ли СУБД для &os;? - - - - Да! Обратитесь к разделу - Поставщики программного обеспечения на Web-сервере &os;. - - Также посмотрите раздел Базы данных - Коллекции Портов. - - - - - - Можно ли запустить &oracle; - на &os;? - - - - Да. Указания по настройке &linux; - &oracle; на &os; - находятся по адресу - http://www.shadowcom.net/freebsd-oracle9i/ - - - - - Прикладные программы - Итак, где находятся все прикладные программы? + Где находятся все прикладные программы? - Пожалуйста, загляните на страницу портов, + Обратитесь на страницу портов, содержащую информацию о программных продуктах, перенесённых во &os;. На данный момент в этом списке находится более &os.numports; приложений и он ежедневно увеличивается, так что почаще туда заглядывайте или подпишитесь на &a.announce;, в котором публикуется информация о появлении новых приложений. - Большинство портов должно нормально работать на системах - веток &rel3.relx;, &rel2.relx; и &rel.relx;. - При выходе нового релиза &os; в него в каталог ports/ включается актуальная на + Большинство портов должно нормально работать во всех + поддерживаемых версиях &os;. Неработающие порты + специально помечаются соответствующим образом. + При выходе нового релиза &os; в него в каталог + ports/ включается актуальная на момент выхода Коллекция Портов. - Мы также поддерживаем концепцию пакаджа, - являющегося не более чем упакованным дистрибутивом в бинарной - форме с некоторыми встроенными возможностями по его настройке - во время установки. Пакадж может быть легко установлен и - деинсталлирован снова без углубления в детали того, какие файлы - должны быть установлены. - - Используйте меню установки пакаджей - Packages в &man.sysinstall.8; (в - пункте меню Configure) или - запускайте &man.pkg.add.1; с указанием конкретных файлов с - пакаджами, которые вы хотите установить. Файл с пакаджем, как - правило, идентифицируется по его суффиксу - .tbz. Для обладателей дистрибутива - системы на компакт-диске предназначен каталог packages/All, содержащий все эти - файлы. Также разные версии &os; можно получить по сети со - следующих серверов: - - - - для &rel3.relx; -RELEASE/&rel3.stable; - - - - ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/&rel3.packages; - - - - - для &rel2.relx; -RELEASE/&rel2.stable; - - - - ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/&rel2.packages; - - - - - для &rel.relx; -RELEASE/&rel.stable; - - - - ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/&rel.packages; - - - - - или с ближайшего к вам зеркального сервера. - - Имейте в виду, что не все порты могут быть доступны в виде - пакаджей, так как постоянно идёт добавление новых. Неплохо - время от времени проверять, какие пакаджи доступны на основном - сервере ftp.FreeBSD.org. + &os; умеет работать со сжатыми двоичными пакетами для + упрощения установки и удаления портов. Используйте + &man.pkg.7; для управления процессом установки + пакетов. - - Как настроить INN (Internet News) на моей машине? + + Как загрузить дерево Портов? Следует ли использовать + SVN? - После установки пакаджа или порта news/inn для начала загляните в - INN - FAQ. + Любым из указанных способов: + + + + Используйте portsnap в большинстве случаев. + Обратитесь к разделу Использование + Коллекции Портов для получения инструкций по + использованию этого инструмента. + + + Используйте SVN, если нужны собственные патчи для + дерева портов. Обратитесь к разделу Использование + Subversion для получения дополнительной + информации. + + + Используйте CTM как это описано + в разделе Использование + CTM для получения + изменений по почте при нестабильном соединении. + + - + Поддерживает ли &os; среду &java;? - Да. Посетите страницу - http://www.FreeBSD.org/java/. + Да. Для получения дополнительной информации посетите + страницу http://www.FreeBSD.org/java/. Почему этот порт не компилируется на моей машине с - &rel3.relx; -, &rel2.relx; - - или &rel.relx; -STABLE? + &rel2.relx; - или &rel.relx; -STABLE? - Если вы пользуетесь версией &os;, значительно отстающей от + Если установленная версия &os;, значительно отстаёт от -CURRENT или -STABLE, - вам может потребоваться обновить Коллекцию - Портов. Дополнительную информацию о том, как это сделать, можно - найти в - соответствующем разделе Руководства по созданию портов. - Если ваша Коллекция Портов находится в актуальном состоянии, - то, скорее всего, кто-то внёс изменения в порт, так что - он работает в -CURRENT, но не работает в - -STABLE. Так как - предполагается, что Коллекция Портов должна работать как в ветке - -CURRENT, так и в ветви - -STABLE, то, пожалуйста, пошлите сообщение - об этой ошибке с помощью команды &man.send-pr.1;. + обновите Коллекцию Портов с использованием указаний в + разделе Использование + Коллекции Портов. Если система в актуальном + состоянии, значит кто-то мог внести изменение в + порт, с которым он работает в -CURRENT, + но не работает в -STABLE. Пошлите + сообщение об ошибке, так как Коллекция Портов должна + работать как в -CURRENT, так и в + ветках -STABLE. Я попытался сформировать файл INDEX командой make index, однако попытка окончилась неудачей. Почему? - Первым делом всегда проверяйте, что ваша Коллекция Портов + Первым делом убедитесь, что Коллекция Портов находится в актуальном состоянии. Ошибки, которые отражаются на построении файла INDEX из актуальной копии Коллекции Портов, бросаются в глаза и поэтому практически всегда исправляются немедленно. - Если ваши данные обновлены, возможно, вы столкнулись с другой - проблемой. У команды make - index имеется - известная ошибка, касающаяся работы с неполными копиями - Коллекции Портов. При выполнении команды предполагается, что у вас - имеется локальная копия каждого порта, от которого зависит любой - другой порт, локальная копия которого у вас имеется. Предположив, - что у вас на диске есть копия foo/bar, и - foo/bar зависит от - baz/quux, то у вас также должна быть копия - baz/quux, а также всех портов, от которых - зависит baz/quux, и так далее. В противном - случае у make index - будет недостаточно - информации для создания дерева зависимостей. - - В частности, эта проблема отражается на пользователях &os;, - использующих &man.cvsup.1; (или &man.csup.1;) для отслеживания - Коллекции Портов, но - отказывающихся от установки определенных категорий приложений их - перечислением в файле refuse. Теоретически - любой пользователь может отказаться от некоторых категорий, однако - на практике имеется слишком много портов, которые зависят от - портов, относящихся к другим категориям. Пока кто-нибудь не - предложит решения этой проблемы, общая рекомендация заключается в - том, что если вы хотите сформировать INDEX, то - должны иметь полную копию Коллекции Портов. - В редких случаях INDEX не перестраивается из-за странных комбинаций значений переменных WITH_* или WITHOUT_*, заданных в файле make.conf. Если вы думаете, что это ваш случай, прежде чем сообщать об этом в &a.ports;, попытайтесь сформировать INDEX с отключенными значениями этих переменных. - - Почему CVSup не интегрирована - в основное дерево &os;? - - - - Базовый комплект установки &os; спроектирован - самодостаточным — то есть операционную систему возможно полностью - построить, имея весьма ограниченный набор инструментов. Так, все - инструменты, действительно необходимые для компиляции исходных - текстов &os;, сами поставляются с исходными текстами. Речь идёт - о компиляторе C (&man.gcc.1;), &man.make.1;, &man.awk.1; и подобных - средствах. - - Так как CVSup написан на языке - Modula-3, его включение в - базовый комплект &os; также потребует добавление и поддержку - компилятора Modula-3. Это приведёт как к увеличению как дискового - пространства, требуемого исходным текстам &os;, так и усилий - по их поддержке. Таким образом, как - разработчикам, так и пользователям гораздо проще держать - CVSup в - виде отдельного порта, который легко устанавливается как пакадж, - размещаемый на установочных CD с &os;. - - Тем не менее, начиная с версии &os; 6.2-RELEASE, - пользователи &os; больше не страдают от отсутствия встроенного - клиента, совместимого с CVSup. - Благодаря &a.mux.email;, CVSup был - переписан на языке Си и получил название &man.csup.1;, и теперь - является частью базового комплекта. И хотя в настоящее время - в клиенте не реализованы все функциональные возможности - CVSup, он является хорошим (и - весьма быстрым!) вариантом для синхронизации ваших исходных - текстов. Для систем, выпущенных до 6.2, клиент можно установить - из порта или пакета (смотрите net/csup). - - - - Я обновил исходные тексты. Как теперь обновить установленные порты? - С &os; не поставляется инструмент обновления портов, но - есть несколько программ, немного облегчающих этот процесс. Вы - можете также установить дополнительные инструменты для упрощения - работы с портами, смотрите раздел Руководства &os; Использование - Коллекции Портов. + С &os; не поставляется инструмент обновления портов, + но есть несколько инструментов, немного облегчающих этот + процесс. Кроме того, для упрощения работы с портами + доступны дополнительные инструменты; смотрите раздел + Руководства &os; Использование + Коллекции Портов. Нужно ли мне перекомпилировать все порты каждый раз, когда я выполняю мажорное обновление (со сменой старшей версии &os;)? - Разумеется! На свежеобновленной системе программное + Да! На свежеобновленной системе программное обеспечение, скомпилированное под более старый релиз, будет - по прежнему работать, но в конечном счете вы придёте к тому, - что некоторые приложения перестанут правильно работать и - будут падать в произвольном месте, как только вы начнете + по прежнему работать, но только до тех пор, пока вы не начнете устанавливать другие порты или обновлять существующие. Когда система обновлена, различные совместно используемые библиотеки, загружаемые модули и другие части системы замещаются более новыми версиями. Приложения, скомпонованные с более старыми версиями, могут перестать запускаться либо начнут функционировать неправильно. - Для получения дополнительной информации обращайтесь к разделу, + Для получения дополнительной информации обращайтесь к разделу, посвящённому обновлениям, руководства &os;. Нужно ли мне перекомпилировать все порты каждый раз, когда я выполняю минорное обновление (без изменения старшей версии &os;)? В общем случае, нет. Разработчики &os; делают всё возможное для сохранения двоичной совместимости между всеми релизами в пределах одной старшей версии. Любые исключения из этого правила документируются в "Примечаниях к релизу", и там же даются советы, которых следует придерживаться. Почему возможности /bin/sh так малы? Почему бы во &os; не использовать bash или какой-либо другой командный процессор? - Потому что в стандарте &posix; сказано, что все командные - процессоры должны вести себя так же, как shell. - - Более подробный ответ заключается в следующем: многим + Многим требуется, чтобы разрабатываемые скрипты для командного процессора были переносимы между многими системами. Именно поэтому в &posix; очень подробно описан командный процессор и набор утилит. - Большинство скриптов пишутся на языке процессора Bourne shell, к + Большинство скриптов пишутся на языке процессора Bourne shell + (&man.sh.1;), к тому же некоторые важные программные вызовы (&man.make.1;, &man.system.3;, &man.popen.3; и их аналоги на языках скриптов высокого уровня, таких как Perl или Tcl) предполагают для интерпретации команд использование именно Bourne shell. Так как Bourne shell используется столь широко и часто, то очень важно, чтобы он стартовал очень быстро, его поведение было строго регламентировано и при этом потребности в оперативной памяти были малы. В имеющейся реализации мы приложили максимум усилий для воплощения в жизнь всех этих требований одновременно. Для того, чтобы сохранить /bin/sh небольшим по размеру, мы не включили многие из обычных возможностей, которые имеются в - других командных процессорах. Однако в Коллекцию Портов включены + других командных процессорах. Для этого имеются в наличии командные процессоры, обладающие гораздо большими возможностями, - такие, как bash, scsh, - tcsh и zsh. (Вы можете - сами сравнить - использование памяти всеми этими оболочками, посмотрев в колонки + такие как bash, scsh, + &man.tcsh.1; и zsh. Сравните + использование памяти этими оболочками, посмотрев в колонки VSZ и RSS вывода команды - ps -u.) + ps -u. - - Почему &netscape; и - Opera запускаются так долго? - - - - Обычно проблема заключается в том, что на вашей машине - неправильно настроен DNS. И &netscape;, - и Opera при запуске - обращаются к DNS. Браузер не появится на вашем рабочем столе, пока - программа либо не получит ответ на свой запрос, либо не определит, - что система к сети не подключена. - - - - - - Я обновил некоторые разделы Коллекции Портов при помощи - CVSup, - и теперь многие порты перестали строиться со странными - диагностическими сообщениями! Что случилось? Коллекция Портов - каким-то образом оказалась неработоспособной? - - - - Если вы обновляете Коллекцию Портов только частично, используя - один из более мелких наборов CVSup, - обходясь без CVSup-набора - ports-all, то вы должны - всегда обновлять также и набор - ports-base! Причины описаны в - Руководстве. - - - - Как создать аудио-CD из файлов MIDI? Для создания аудио-CD из MIDI-файлов сначала установите из портов программу audio/timidity++, затем установите набор патчей GUS от Эрика Уэлша (Eric A. Welsh), доступный по адресу http://alleg.sourceforge.net/digmid.html. После корректной установки TiMidity++ MIDI-файлы могут быть преобразованы в WAV-файлы следующей командой: &prompt.user; timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid WAV-файлы затем могут быть преобразованы в другие форматы или записаны как аудио-CD, что описано в Руководстве &os;. Конфигурирование ядра Я хочу изменить настройки ядра. Это сложно? Вовсе нет! Обратитесь к соответствующему разделу Руководства, который посвящён этому вопросу. Новый файл kernel будет установлен в каталог /boot/kernel вместе со своими модулями, а старое ядро и его модули будут сдвинуты в каталог - /boot/kernel.old, так - что если вы - допустите ошибку в следующей конфигурации, то сможете - загрузить предыдущую версию вашего ядра. + /boot/kernel.old. Если сделана + ошибка в конфигурации, просто загрузите предыдущую + версию ядра. - - Я не могу скомпилировать ядро. Отсутствует - _hw_float.Почему? - - - - Наверное, вы удалили npx0 (посмотрите - справку по &man.npx.4;) из вашего файла конфигурации ядра, потому - что у вас нет математического сопроцессора. Устройство - npx0 является - ОБЯЗАТЕЛЬНЫМ. Где-то в вашем оборудовании всё - же присутствует устройство, обеспечивающее поддержку вычислений с - плавающей точкой, которое уже не является отдельной микросхемой, - как это было в старые добрые времена 386 процессоров. Вы - должны включить поддержку устройства - npx0. Даже если вам удастся построить - ядро без поддержки npx0, оно всё равно не - загрузится. - - - - - Почему моё ядро такое большое (больше 10 Мбайт)? + Почему моё ядро такое большое? - Скорее всего, вы компилировали ядро в отладочном - режиме. Ядра, построенные в этом режиме, содержат - много символьной информации, которая используется для отладки - и сильно увеличивает размер ядра. Заметьте, что уменьшения + Конфигурация ядра GENERIC, которая + содержится в дистрибутиве &os;, компилируется в + отладочном режиме. В таком режиме + ядра содержат много символьной информации в разных файлах, + которая используется для отладки и сильно увеличивает размер + /boot/kernel/. + Заметьте, что уменьшения производительности при использовании отладочного ядра нет или оно незначительно, однако отладочное ядро полезно иметь под рукой на случай аварийного завершения работы системы. - Однако, если вы испытываете нехватку дискового пространства - или просто не хотите использовать отладочное ядро, проверьте, - что имеют место следующие две вещи: + Однако при нехватке дискового пространства существует + несколько вариантов уменьшения размера >/boot/kernel/. + Чтобы не устанавливать файлы с символьной + информацией, убедитесь в наличии следующей строки в + /etc/src.conf: + + WITHOUT_KERNEL_SYMBOLS=yes + + Для получения дополнительной информации смотрите страницу + Справочника &man.src.conf.5;. + + Если вы не хотите компилировать отладочное ядро, + убедитесь в выполнении следующих условий: + - В конфигурационном файле вашего ядра нет строчки, - имеющей такой вид: + В конфигурационном файле ядра нет такой + строчки: makeoptions DEBUG=-g Вы не запускали утилиту &man.config.8; с опцией . В любой из вышеописанных ситуаций ядро будет построено с - отладочным режимом. Если же вы точно следуете указанным шагам, - то сможете построить обычное ядро и заметите значительное - уменьшение его размера; большинство ядер имеют размер от - 1.5 Мбайт до 2 Мбайт. - - + отладочным режимом. - - - Почему появляются конфликты прерываний при включении поддержки - многопортовых коммуникационных адаптеров. - + Чтобы скомпилировать и установить только нужные модули, + укажите их в /etc/make.conf: - - Когда я компилирую ядро с поддержкой многопортовых - коммуникационных адаптеров, сообщается, что только первый порт - будет тестироваться, а все остальные пропускаются из-за конфликтов - прерываний. Как это исправить? + MODULES_OVERRIDE= accf_http ipfw - Проблема состоит в том, что во &os; встроен код, - предохраняющий ядро от аппаратных и программных конфликтов. - Вам нужно убрать указания IRQ на всех портах, кроме одного. - Например: + Замените accf_httpd ipfw на нужный + список модулей. Это уменьшит размер каталога с ядром, а + также время сборки. Для получения дополнительной информации + почитайте /usr/share/examples/etc/make.conf. + - # -# Высокоскоростной многопортовый коммуникационный адаптер - 16550 UARTS -# -device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr -device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr -device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr -device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr + Для дальнейшего уменьшения размера также можно удалить + ненужные устройства из ядра. Для получения дополнительной + информации смотрите . + + Для вступления любого из этих действий в силу следуйте + указаниям по сборке + и установке нового ядра. + + Большинство ядер (/boot/kernel/kernel), + как правило, занимают от 12 до 16 Мбайт. Почему мне не удаётся откомпилировать ни один вариант ядра, даже GENERIC? Есть несколько причин, приводящих к возникновению этой - проблемы. Вот они, в случайном порядке: + проблемы: - Вы не используете цели - make buildkernel и - make installkernel, - и ваше дерево исходных текстов отличается от того, которое - использовалось для построения работающей в данный момент - системы (например, вы выполняете построение - &rel.current;-RELEASE на системе &rel2.current;-RELEASE). - Если вы пытаетесь выполнить обновление, - то, пожалуйста, прочитайте файл - /usr/src/UPDATING, обратив особое внимание - на раздел COMMON ITEMS в его конце. + Дерево исходных текстов отличается от того, что + использовалось для построения работающей в данный + момент системы. Перед обновлением прочитайте + файл /usr/src/UPDATING, + обращая особое внимание на раздел + COMMON ITEMS в его конце. - Вы используете цели - make buildkernel и - make installkernel, - но выполнение цели - make buildworld - не было завершено. Полное и корректное выполнение цели + Команда make buildkernel + не завершилась успешно. + Корректное выполнение цели make buildkernel - зависит от файлов, генерирующихся при выполнении цели + зависит от файлов, полученных после выполнения make buildworld. - Даже если вы пытаетесь построить &os;-STABLE, возможно, что вы - скачали дерево исходных текстов в момент, когда оно - модифицировалось или было неработоспособно по другим причинам; - абсолютно гарантируется построение только релизов, хотя в - большинстве случаев - &os;-STABLE строится без проблем. Если вы ещё этого - не сделали, попробуйте сгрузить дерево исходных текстов - повторно и посмотреть, разрешилась ли проблема. Попробуйте - использовать другой сервер в случае, если есть проблемы с тем, - который вы используете сейчас. + Даже при построении &os;-STABLE возможно, что + дерево исходных текстов было загружено в тот момент, + когда оно модифицировалось или было неработоспособно. + Построение гарантируется только для релизов, хотя в + большинстве случаев &os;-STABLE + строится без проблем. Попробуйте сгрузить дерево + исходных текстов повторно и посмотрите, разрешилась + ли проблема. Если с сервером есть проблемы, + попробуйте другое зеркало. - Каким образом можно определить, какой планировщик используется + Какой планировщик используется в работающей системе? - Проверьте существование sysctl-переменной - kern.sched.quantum. Если она у вас есть, - то вы должны увидеть примерно такое сообщение: - - &prompt.user; sysctl kern.sched.quantum -kern.sched.quantum: 99960 - - Если sysctl-переменная kern.sched.quantum - существует, то у вас используется планировщик 4BSD - (&man.sched.4bsd.4;). Если это не так, то вы получите сообщение - об ошибке, которое выдаст &man.sysctl.8;, (и которое вы можете - проигнорировать): - - &prompt.user; sysctl kern.sched.quantum -sysctl: unknown oid 'kern.sched.quantum' - - Название используемого - планировщика доступно напрямую в виде значения sysctl-параметра + Название используемого планировщика доступно напрямую + в виде значения sysctl-параметра kern.sched.name: &prompt.user; sysctl kern.sched.name -kern.sched.name: 4BSD +kern.sched.name: ULE Что такое kern.sched.quantum? kern.sched.quantum определяет максимальное количество тактов, которое процесс может выполняться, не будучи - прерванным. Этот параметр специфичен для планировщика 4BSD, так - что вы можете использовать его наличие для определения типа - используемого планировщика. + прерванным. Диски, файловые системы и начальные загрузчики Как добавить в систему новый диск? Обратитесь к разделу Добавление дисков Руководства &os;. Как перенести систему на большой новый диск? - Самый лучший способ заключается в переустановке ОС на новый - диск и последующем переносе данных пользователей. Это очень - рекомендуется делать, если вы следовали ветке - -STABLE в течение - более одного релиза или обновляли релиз, а не устанавливали - новый. Вы можете установить программу booteasy на оба диска с - помощью команды &man.boot0cfg.8; и выполнять загрузку с любого из - них до тех пор, пока не будете удовлетворены новой конфигурацией - системы. Пропустите следующий абзац, чтобы перейти к вопросу + Самый лучший способ заключается в переустановке + операционной системы на новый диск с последующим переносом + пользовательских данных. Это настоятельно рекомендуется + при отслеживании ветки -STABLE в + течение более одного релиза или при обновлении релиза + вместо установки нового. Установите booteasy на оба диска + с помощью &man.boot0cfg.8; и выполняйте загрузку с любого + из них, пока не будете довольны новой конфигурацией. + Пропустите следующий абзац, чтобы перейти к вопросу переноса данных после этой операции. - Если вы решили не делать новой установки, то вам нужно разбить - на разделы и разметить новый диск с помощью - &man.sysinstall.8; или &man.fdisk.8; и - &man.disklabel.8;. Вы также должны установить на оба диска - программу booteasy с помощью &man.boot0cfg.8;, чтобы иметь - возможность выполнять загрузку как старой, так и новой системы - после выполнения копирования. + Либо разбейте на разделы и разметьте новый диск с + помощью &man.sade.8; или &man.gpart.8;. Если диски + отформатированы в MBR, то booteasy можно установить на оба + диска с помощью &man.boot0cfg.8; для того, чтобы иметь + возможность выполнять загрузку как старой, так и новой + системы после выполнения копирования. - Итак, после подготовки диска вы можете переносить данные. К - сожалению, вы не можете просто скопировать данные. Такие вещи, как - файлы устройств (в каталоге /dev), флаги и - ссылки будут этому мешать. Вам нужно использовать инструменты, - которые работают с такими случаями, а именно &man.dump.8;. Хотя - рекомендуется выполнять перенос данных в однопользовательском - режиме, это не обязательное условие. + После подготовки диска данные нельзя просто так взять + и перенести. Используйте для этого инструменты, + которые учитывают файлы устройств и системные флаги, + например, &man.dump.8;. И хотя рекомендуется выполнять + перенос данных в однопользовательском режиме, это не + является обязательным условием. - Вы не должны использовать ничего, кроме &man.dump.8; и - &man.restore.8; для переноса корневой файловой системы. Команда - &man.tar.1; может сработать, а может и не сработать. Также вы - должны использовать &man.dump.8; и &man.restore.8; при переносе - одного раздела в другой пустой раздел. Последовательность шагов - при использовании программы dump для переноса - данных раздела в новый раздел такова: + Если на дисках стоит UFS, никогда + не используйте ничего, кроме &man.dump.8; и &man.restore.8; + для переноса корневой файловой системы. Эти команды + также следует использовать при переносе отдельного раздела + на другой пустой раздел. Последовательность шагов при + использовании dump для переноса данных + с раздела UFS на новый раздел: выполните команду newfs над новым разделом. командой mount смонтируйте его во временный каталог. командой cd перейдите в этот каталог. выполните команду dump над старым разделом, направив вывод в новый раздел. - Например, если вы собираетесь перенести корневую файловую - систему на устройство - /dev/ad1s1a + Например, чтобы перенести корневую файловую + систему на устройство /dev/ada1s1a с использованием каталога /mnt - в качестве - временной точки монтирования, то это делается так: + в качестве временной точки монтирования, наберите: - &prompt.root; newfs /dev/ad1s1a -&prompt.root; mount /dev/ad1s1a /mnt + &prompt.root; newfs /dev/ad1as1a +&prompt.root; mount /dev/ad1as1a /mnt &prompt.root; cd /mnt &prompt.root; dump 0af - / | restore rf - Переразбиение разделов с использованием dump требует несколько больше усилий. Для объединения раздела типа /var с его вышестоящим разделом, создайте новый раздел, достаточно большой для размещения их обоих, переместите вышестоящий раздел так, как это описано выше, а затем переместите нижестоящий раздел в пустой каталог, созданный при первом перемещении: - &prompt.root; newfs /dev/ad1s1a -&prompt.root; mount /dev/ad1s1a /mnt + &prompt.root; newfs /dev/ada1s1a +&prompt.root; mount /dev/ad1as1a /mnt &prompt.root; cd /mnt &prompt.root; dump 0af - / | restore rf - &prompt.root; cd var &prompt.root; dump 0af - /var | restore rf - Для отделения каталога от вышестоящего, скажем, для размещения /var в собственном разделе, которого не было, создайте оба раздела, затем смонтируйте нижестоящий раздел в подходящий каталог во временную точку монтирования, а затем переместите старый единый раздел: - &prompt.root; newfs /dev/ad1s1a -&prompt.root; newfs /dev/ad1s1d -&prompt.root; mount /dev/ad1s1a /mnt + &prompt.root; newfs /dev/ada1s1a +&prompt.root; newfs /dev/ada1s1d +&prompt.root; mount /dev/ada1s1a /mnt &prompt.root; mkdir /mnt/var -&prompt.root; mount /dev/ad1s1d /mnt/var +&prompt.root; mount /dev/ada1s1d /mnt/var &prompt.root; cd /mnt &prompt.root; dump 0af - / | restore rf - - Вы можете использовать &man.cpio.1;, &man.pax.1;, &man.tar.1; - вместо &man.dump.8; для данных пользователей. На момент написания - этого документа было известно, что они теряют информацию о флагах - файлов, так что используйте их с осторожностью. + Для перемещения пользовательских данных также имеются + программы &man.cpio.1; и &man.pax.1;. Известно, что они + теряют информацию о флагах файлов, так что используйте их + с осторожностью. - - Не угрожает ли режим dangerously dedicated моему - здоровью? - - - - В процессе установки вы можете выбрать - два различных метода разбиения вашего диска (дисков). По умолчанию - это делается - в режиме совместимости с другими операционными системами на этой же - машине с использованием записей в таблице разделов &man.fdisk.8; - (то, что называется слайсом во &os;), со слайсом - (разделом), выделенным &os;. Опционально, вы можете выбрать - установку менеджера загрузки для переключения между операционными - системами. Либо вы можете выделить диск полностью под &os;, не - заботясь о совместимости с другими операционными системами. - - Почему же этот режим называется dangerous? Дело - в том, что диск в этом режиме не будет содержать того, что обычные - утилиты для ПК распознают как таблицу разделов &man.fdisk.8;. - В зависимости от - того, насколько хорошо они написаны, они могут сообщить вам об - этом, как только обнаружат такой диск, или, что гораздо хуже, - могут запортить загрузчик BSD, даже не спрашивая и не сообщая об - этом. К тому же известно, что разметка диска в режиме - dangerously dedicated вводит в заблуждение BIOS - многих производителей, включая AWARD (которые используются в - компьютерах HP Netserver, Micronics и многих других) и Symbios/NCR - (производителя популярных SCSI-контроллеров серии 53C8xx). И это не - полный список, есть ещё другие производители. Симптомами подобных - проблем является сообщение read error, - выводимое загрузчиком &os;, когда он не может найти сам себя, а - также зависания системы при загрузке. - - Тогда зачем вообще нужен этот режим? Он экономит всего лишь - несколько килобайт дискового пространства и может вызвать - серьёзные проблемы при новой установке. Причиной появления - этого режима является желание избежать появления одной из самых - распространённых проблем, с которой сталкиваются новички — - соответствие параметров BIOS и реальных параметров диска. - - Параметры диска являются устаревшей концепцией, - но она лежит в основе работы BIOS с диском. Когда программа - установки &os; создаёт слайсы, она записывает их расположение в - соответствии с тем, как с ними будет работать BIOS. Если это - делается неправильно, вы не сможете выполнить загрузку - системы. - - Режим dangerously dedicated пытается обойти - это, упрощая решение данной проблемы. Иногда он делает это - правильно. Однако это значит, что его нужно использовать только - как последнюю альтернативу — есть способы получше, решающие - проблему в 99 случаях из 100. - - Итак, как избежать использования режима DD во - время установки? Сначала запишите параметры диска, которые - сообщает BIOS. Вы можете выяснить это, заставив ядро вывести эти - параметры при загрузке, указав в приглашении - boot:, или используя boot -v - в загрузчике. Перед тем, как запустится программа установки, ядро - выведет параметры, используемые BIOS. Не волнуйтесь — подождите - запуска программы установки, а затем воспользуйтесь прокруткой, - чтобы посмотреть значения этих параметров. Как правило, BIOS - нумерует диски в том же порядке, что и &os;, сначала IDE, затем - SCSI. - - Когда вы разбиваете диск на слайсы, проверьте, что параметры - диска, выводимые в окне программы FDISK, корректны (то есть они - соответствуют параметрам BIOS); если это не так, нажмите - G, чтобы их исправить. Вы можете это - сделать, если на диске нет абсолютно ничего или если этот диск был - перенесён с другой системы. Заметьте, что это касается только - загрузочного диска; &os; прекрасно разберётся с остальными - дисками, которые могут у вас быть. - - Как только вы добились соответствия параметров диска в BIOS и - &os;, скорее всего, проблем у вас больше не будет, и - использовать режим DD не потребуется. Если, - однако, страшное сообщение read error - продолжает появляться при загрузке, самое время перекреститься и - попробовать этот режим — терять вам больше нечего. - - Чтобы вернуть диск из режима dangerously - dedicated к нормальному режиму использования, есть два - способа. Первый заключается в том, что вы записываете достаточное - количество байтов NULL поверх MBR, чтобы любая программа установки - системы полагала, что это чистый диск. Например, это можно - сделать такой командой: - - &prompt.root; dd if=/dev/zero of=/dev/rda0 count=15 - - Другой способ - недокументированной командой DOS - - C:\> fdisk /mbr - - установить новую MBR, удалив загрузчик BSD. - - - - На каких разделах можно без опаски использовать механизм Soft Updates? Я слышал, что использование Soft Updates на / могут приводить к - проблемам. + проблемам. Что насчёт журналируемых Soft Updates? - Краткий ответ: обычно вы можете использовать Soft Updates + Краткий ответ: обычно Soft Updates можно использовать без опаски на всех разделах. - Подробный ответ: Было несколько возражений против использования - Soft Updates на корневом разделе. Soft Updates имеют две - характеристики, которые этому способствуют. Во-первых, раздел с - Soft Updates имеет мало шансов потери данных по время - аварийного останова системы. (Раздел не будет попорчен; просто - будут потеряны данные.) Кроме того, Soft Updates могут приводить к + Подробный ответ: Soft Updates имеют две характеристики, + которые могут быть нежелательны на некоторых разделах. Во-первых, + раздел с Soft Updates имеет небольшой шанс потери данных по время + аварийного останова системы. Раздел не будет попорчен, + поскольку данные будет просто потеряны. Во-вторых, Soft Updates могут приводить к временной нехватке дискового пространства. - При использовании Soft Updates ядро может задерживать до - тридцати секунд реальную запись изменений на физический диск. Если - вы удаляете большой файл, он остается на диске, пока ядро не - выполнит удаления на самом деле. Это может привести к очень - простой проблеме. Предположим, что вы удалили один большой файл и - тут же создали другой большой файл. Первый большой файл еще не - удален реально с физического диска, так что на диске может не - оказаться достаточного пространства для второго большого файла. Вы - получите ошибку, говорящую о том, что на разделе нет достаточного - пространства, хотя вы точно знаете, что только что освободили - его большой объем! Если вы попробуете еще раз выполнить операцию - секундами позже, создание файла сработает так, как это и ожидалось. - Это не раз заставляло пользователей почесать голову и дважды - проверить свое психическое здоровье, файловую систему &os; или оба - этих объекта. + При использовании Soft Updates ядро может задерживать + до тридцати секунд запись изменений на физический диск. + При удалении большого файла он остается на диске, пока + ядро не выполнит фактическое удаление. Это может привести + к очень простой гонке. Предположим, удаляется один + большой файл и тут же создаётся другой большой файл. + Первый файл на самом деле ещё не удалён с диска, поэтому + для второго файла на диске может не хватить места. Это + приведёт к ошибке о том, что на разделе нет достаточного + пространства, несмотря на то, что только что освободилось + много места. Через пару секунд создание файла сработает, + как и ожидалось. Если система может аварийно остановиться после того, как ядро примет набор данных для записи на диск, но перед тем, как данные - реально запишутся, то данные могут потеряться или оказаться - испорченными. Такой риск весьма мал, но в общем-то, управляем. - Использование кэширование записи на IDE очень сильно увеличивает - этот риск; настоятельно рекомендуется выключить кэширование записи - для IDE при использовании Soft Updates. + реально запишутся, то данные могут потеряться. + Такой риск чрезвычайно мал, но в целом управляем. Эти проблемы влияют на все разделы, использующие Soft Updates. Итак, что это означает для корневого раздела? Жизненно важная информация на корневом разделе меняется очень - редко. Файлы, такие как /boot/kernel/kernel - и содержимое - /etc, меняются только - при обслуживании системы, - или когда пользователи меняют свои пароли. Если в системе + редко. Если в системе произойдет сбой в период тридцатисекундного окна после выполнения такого изменения, возможно, что данные окажутся потерянными. Этот - риск незначителен для большинства применений, но вы должны иметь в - виду, что он есть. Если ваша система не может принять такой риск, + риск незначителен для большинства применений, но его нужно + учитывать. Если система не может принять такой риск, не используйте Soft Updates с корневой файловой системой! / традиционно - является одним из самых маленьких разделов. Если вы размещаете - каталог /tmp в / и у вас заполнен /tmp, вы можете встретиться с - возникающими время от времени проблемами с дисковым пространством. - Создание символической ссылки /tmp, указывающей на /var/tmp, решит эту проблему. - - + является одним из самых маленьких разделов. Если каталог + /tmp размещён в / и у + вас заполнен /tmp, то могут + периодически возникать проблемы с дисковым пространством. + Создание символической ссылки /tmp, + указывающей на /var/tmp решит эту проблему. - - - Что не так с устройством &man.ccd.4;? - - - - Симптом выглядит так: - - &prompt.root; ccdconfig -C -ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format - - Это сообщение обычно выдаётся, когда вы пытаетесь объединить - разделы c, по умолчанию имеющие тип - unused. Драйвер &man.ccd.4; требует, чтобы - используемые разделы имели тип FS_BSDFFS. - Отредактируйте метки - тех дисков, которые вы хотите использовать, сменив типы разделов - на 4.2BSD. + В заключение, &man.dump.8; не работает в режиме реального + времени (-L) с файловой системой, для которой включены + журналируемые Soft Updates (SU+J). - - Почему невозможно отредактировать метку диска &man.ccd.4;? - - - - Симптом выглядит так: - - &prompt.root; disklabel ccd0 -(здесь выводится информация о диске, пробуем отредактировать метку) -&prompt.root; disklabel -e ccd0 -(редактирование, сохранение, выход) -disklabel: ioctl DIOCWDINFO: No disk label on disk; -use "disklabel -r" to install initial label - - Это происходит из-за того, что метка диска, возвращаемая &man.ccd.4;, - на самом деле ненастоящая, не соответствующая - реально располагающейся на диске. Вы можете решить эту проблему, - явно записав эту метку обратно следующим образом: - - &prompt.root; disklabel ccd0 > /tmp/disklabel.tmp -&prompt.root; disklabel -Rr ccd0 /tmp/disklabel.tmp -&prompt.root; disklabel -e ccd0 -(теперь это будет работать) - - - - Можно ли смонтировать другие файловые системы? &os; поддерживает ряд других файловых систем. UFS Компакт-диски с файловой системой UFS могут быть смонтированы без всяких проблем. Монтирование файловых систем Digital UNIX или других систем, поддерживающих UFS, может быть более сложным, в зависимости от особенностей разбиения диска конкретной операционной системой. ext2/ext3 &os; поддерживает разделы ext2fs и ext3fs. За дополнительной информацией обратитесь к странице - справочника &man.mount.ext2fs.8;. + Справочника &man.ext2fs.5;. NTFS - Во &os; имеется драйвер доступа к NTFS в режиме - только для чтения. Для получения более полной - информации обратитесь к странице справочника - &man.mount.ntfs.8;. Порт ntfs-3g - также поддерживает операции записи на NTFS (смотрите - sysutils/fusefs-ntfs). + Поддержка NTFS через FUSE доступна через порт + sysutils/fusefs-ntfs. + Для получения более полной информации смотрите + документацию к ntfs-3g. FAT Во &os; имеется драйвер для работы с FAT в режиме чтения-записи. Для получения дополнительной информации обратитесь к странице справочника &man.mount.msdosfs.8;. - ReiserFS - - - Во &os; имеется драйвер для работы с ReiserFS в режиме - только для чтения. Для получения более полной - информации обратитесь к странице справочника &man.mount.reiserfs.8;. - - - - ZFS - На момент написания &os; включает в себя порт - драйвера для работы с &sun; ZFS. В настоящее время - рекомендуется использовать его только на платформе + &os; включает в себя портированную из &sun; + реализацию файловой системы ZFS. В настоящее время + рекомендуется использовать её только на платформе &arch.amd64; с достаточным объемом памяти. Для получения - более полной информации обратитесь к странице справочника + более полной информации обратитесь к странице Справочника &man.zfs.8;. - &os; также поддерживает такие сетевые файловые системы, как - NFS (смотрите &man.mount.nfs.8;), NetWare (смотрите - &man.mount.nwfs.8;) и файловые системы SMB в стиле Microsoft - (обратитесь к &man.mount.smbfs.8;). Вы также можете найти - полезными порты, основанные на FUSE (sysutils/fusefs-kmod), для множества - других файловых систем. + &os; включает сетевую файловую систему + NFS. В Коллекции портов &os; имеется + несколько приложений FUSE для поддержки многих других + файловых систем. Как смонтировать вторичный раздел DOS? Вторичные разделы DOS находятся после всех первичных разделов. - Например, если раздел E является вторым разделом + Например, если E является вторым разделом DOS на втором диске SCSI, то здесь будет файл устройства для - пятого слайса в каталоге /dev, - так что просто смонтируйте его: + пятого слайса в каталоге /dev. + Чтобы смонтировать: &prompt.root; mount -t msdosfs /dev/da1s5 /dos/e Существует ли криптографическая файловая система для &os;? - Да. Вы можете использовать &man.gbde.8; или &man.geli.8;. + Да, &man.gbde.8; и &man.geli.8;. Смотрите раздел Шифрование - дисковых разделов Руководства &os;. + дисковых разделов Руководства &os;. - - Как можно использовать загрузчик &windowsnt; для запуска - &os;? - - - - Идея заключается в копировании первого сектора корневого - раздела &os; в файл, находящийся в разделе DOS/&windowsnt;. - Предположим, что вы назвали этот файл - c:\bootsect.bsd (по аналогии с - c:\bootsect.dos), после чего можете - отредактировать файл c:\boot.ini, чтобы он - выглядел примерно так: - - [boot loader] -timeout=30 -default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS -[operating systems] -multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" -C:\BOOTSECT.BSD="&os;" -C:\="DOS" - - Если &os; установлена на тот же самый диск, что и - загрузочный раздел &windowsnt;, просто скопируйте - /boot/boot1 в - C:\BOOTSECT.BSD. Однако, если &os; - установлена на другой диск, то /boot/boot1 - работать не будет, нужно копировать - /boot/boot0. - - /boot/boot0 нужно устанавливать с помощью - &man.sysinstall.8;, выбрав менеджер загрузки &os; в диалоговом - окне при выборе менеджера загрузки. Это потому что - в /boot/boot0 область таблицы разделов - заполнена символами NULL, а &man.sysinstall.8; копирует сюда - таблицу разделов перед тем, как скопировать - /boot/boot0 в область MBR. - - - Не копируйте просто /boot/boot0 вместо - /boot/boot1, этим вы перезапишете таблицу - разделов винчестера и ваш компьютер перестанет - загружаться! - - - При запуске менеджер загрузки &os; задаёт ОС, которая - загружалась последний раз, устанавливая для этой операционной - системы признак активизации в таблице разделов, а затем записывает - 512 байт самого себя обратно в MBR, так что если вы просто - скопируете /boot/boot0 - в C:\BOOTSECT.BSD, то в MBR будет записана - пустая таблица разделов с флагом активности в некотором - месте. - - - - - - Как загрузить &os; и &linux; с помощью LILO? - - - - Если у вас установлены &os; и &linux; на одном и том же - диске, следуйте указаниям по установке LILO о загрузке не-&linux; - операционных систем. Они сводятся к следующему: - - Загрузите &linux; и добавьте следующие строки в файл - /etc/lilo.conf: - - other=/dev/hda2 -table=/dev/hda -label=&os; - - (здесь мы предполагаем, что слайс с &os; известен - &linux; как /dev/hda2; измените - эту строку в соответствии с вашей конфигурацией). Затем - достаточно будет запустить lilo, войдя - в систему как администратор. - - Если &os; располагается на другом диске, вам нужно - добавить строчку loader=/boot/chain.b в - конфигурационный файл LILO. Например: - - other=/dev/dab4 -table=/dev/dab -loader=/boot/chain.b -label=&os; - - В некоторых случаях для успешной загрузки со второго диска - вам может потребоваться указать номер диска BIOS загрузчику - &os;. Например, если диск SCSI с &os; определяется BIOS - как диск 1, в приглашении загрузчика &os; нужно указать: - - Boot: 1:da(0,a)/boot/kernel/kernel - - Вы можете настроить &man.boot.8; на автоматическое принятие - таких параметров во время загрузки. - - В документе - &linux;+&os; mini-HOWTO содержится много информации, - касающейся взаимодействия &os; и &linux;. - - - - - - Как загрузить &os; и &linux; с помощью GRUB? + Как загрузить &os; и &linux; с помощью + GRUB? - Настройка загрузки &os;, используя GRUB очень простой - процесс. Всего лишь добавьте следующие строки в ваш - конфигурационный файл - /boot/grub/menu.lst (в некоторых системах - /boot/grub/grub.conf, например, - Red Hat Linux и производных системах). + Для загрузки &os; с использованием + GRUB добавьте следующие строки + в /boot/grub/menu.lst или + /boot/grub/grub.conf, в зависимости + от используемого дистрибутива &linux;. - title &os; 6.1 + title &os; 9.1 root (hd0,a) kernel /boot/loader - Где hd0,a указывает на ваш - корневой раздел на первом диске. Если вам нужно указать номер - слайса, который должен использоваться, напишите что-то вроде - (hd0,2,a). По умолчанию, если номер - слайса не указан, GRUB ищет первый слайс, содержащий в себе - партицию a. + Где hd0,a указывает на + корневой раздел на первом диске. Чтобы указать номер + слайса, напишите что-то вроде + (hd0,2,a). По умолчанию, если + номер слайса не указан, GRUB + ищет первый слайс c разделом a. Как загрузить &os; и &linux; с помощью BootEasy? - Установите LILO в начало загрузочного раздела &linux;, а не в - Master Boot Record. После этого можно запустить LILO из - BootEasy. + Установите LILO в начало загрузочного раздела &linux;, + а не в Master Boot Record. После этого LILO можно будет + запустить LILO из BootEasy. - Это рекомендуется сделать в любом случае при одновременном + Это рекомендуется делать при одновременном использовании &windows; и &linux;, чтобы упростить - восстановление работоспособности &linux; после переустановки - &windows; (которая является Ревнивой Операционной - Системой и не терпит присутствия других операционных систем - в Master Boot Record). + восстановление работоспособности &linux; в случае + переустановки &windows;. Как сменить приглашение загрузчика с ??? на что-нибудь более значащее? - Вы не можете сделать это со стандартным менеджером загрузки, не - переписав его. Среди портов из категории - sysutils есть несколько - других менеджеров - загрузки, которые предоставляют такую функциональность. + Этого нельзя сделать со стандартным загрузчиком, не + переписав его. В категории sysutils + Коллекции Портов есть ряд других менеджеров + загрузки. Как использовать устройство для чтения сменных дисков? - Каким бы ни было это устройство, типа &iomegazip;, EZ (или даже обычным - дисководом, если вы хотите его использовать) или каким-то - другим, как только оно будет установлено и распознано - системой, и вы вставите в него картридж/дискету/что-там-ещё, всё - будет выглядеть примерно одинаково. + Если у вас уже есть файловая система на устройстве, + то используйте такую команду: - (этот раздел основан на материалах - FAQ по устройствам ZIP Марка Мэйо (Mark Mayo)) + &prompt.root; mount -t msdosfs /dev/da0s1 /mnt - Если это устройство ZIP или обычный дисковод, и у вас уже есть - файловая система DOS на дискетах, то вы можете использовать команду - типа: + Если это устройство будет использоваться только на + системах &os;, то разбейте его на разделы + UFS или ZFS. Это + обеспечит поддержку длинных имён файлов, увеличение + производительности и надёжность. Если устройство будет + использоваться с другими операционными системами, то лучше + сделать более совместимый выбор, например, msdosfs. - &prompt.root; mount -t msdosfs /dev/fd0c /floppy + &prompt.root; dd if=/dev/zero of=/dev/da0 count=2 +&prompt.root; gpart create -s GPT /dev/da0 +&prompt.root; gpart add -t freebsd-ufs /dev/da0 - для обычных дискет, или + Наконец, остаётся создать новую файловую систему: - &prompt.root; mount -t msdosfs /dev/da2s4 /zip + &prompt.root; newfs /dev/da0p1 - для дискет ZIP со стандартной конфигурацией. - - Для других дисков посмотрите их параметры с помощью команды - &man.fdisk.8; или &man.sysinstall.8;. - - Остальные примеры даны для привода ZIP на - da2, третьем диске SCSI. - - Если это дискета или сменный диск, который будет - использоваться для обмена информацией с другими людьми, хорошей - идеей будет помещение туда файловой системы BSD. Вы получите - поддержку длинных имён файлов, увеличение производительности по - крайней мере в два раза и гораздо большую надёжность. Первым - делом вам снова будет нужно выполнить разбиение диска на - разделы/файловые системы. Вы можете воспользоваться утилитой - &man.fdisk.8; либо &man.sysinstall.8;, а в случае небольшого - диска, на котором не нужно располагать несколько операционных - систем, просто сотрите таблицу разделов (слайсов) FAT и используйте - разбиение на разделы BSD. - - &prompt.root; dd if=/dev/zero of=/dev/rda2 count=2 -&prompt.root; disklabel -Brw da2 auto - - Вы можете использовать &man.disklabel.8; или &man.sysinstall.8; - для создания нескольких разделов BSD. - Вам наверняка придётся это сделать, если вы станете добавлять место - для раздела подкачки на винчестере, хотя это не имеет отношения к - устройствам типа ZIP. - - В итоге вы должны создать новую файловую систему (в этом примере - она занимает весь наш диск ZIP): - - &prompt.root; newfs /dev/rda2c - и смонтировать её: - &prompt.root; mount /dev/da2c /zip + &prompt.root; mount /dev/da0s1 /mnt - Хорошо ещё добавить строку типа следующей в файл + Хорошо ещё добавить строку в файл /etc/fstab (прочтите справку по &man.fstab.5;), чтобы в будущем можно было просто давать команду - mount /zip: + mount /mnt: - /dev/da2c /zip ffs rw,noauto 0 0 + /dev/da0p1 /mnt ufs rw,noauto 0 0 - При монтировании компакт-диска, выдаётся сообщение + При монтировании компакт-диска выдаётся сообщение Incorrect super block. - В параметрах команды &man.mount.8; вам нужно указать тип - устройства, который вы собираетесь смонтировать. Это описано в - разделе - Руководства об оптических носителях, а именно в разделе - - Использование CD с данными. + Необходимо указать тип монтируемого устройства. + Это описано в в разделе Руководства Использование + CD с данными. При монтировании компакт-диска выдаётся сообщение Device not configured. - Обычно это означает, что в приводе CD-ROM нет компакт-диска либо - устройство на шине не было увидено. Пожалуйста, посмотрите раздел - об - использовании CD с данными в Руководстве, где подробно + Обычно это означает, что в приводе нет компакт-диска либо + устройство не обнаружено на шине. Обратитесь к разделу + + Использование CD с данными в Руководстве, где подробно обсуждается этот вопрос. Когда я монтирую CD-ROM, все неанглийские символы в именах файлов выводятся как ?. - Скорее всего, на вашем компакт-диске для хранения информации о + Скорее всего, на компакт-диске для хранения информации о файлах и каталогах используется расширение Joliet. - Это описано в главе Руководства о создании и - использовании CD-ROM, а именно в разделе об - использовании CD-ROM с данными. + Это описано в разделе Руководства об использовании + CD с данными. - Я записал CD во &os; и теперь не могу считать его ни в какой + Записанный во &os; CD не читается ни в какой другой операционной системой. Почему? - Скорее всего, вы записали на CD непосредственно необработанный - файл без создания файловой системы ISO 9660. - Прочтите главу - Руководства о создании CD-ROM, в частности, раздел о - - записи данных непосредственно на компакт-диски. + Это означает, что на CD был записан непосредственно + необработанный файл без создания файловой системы + ISO 9660. Прочтите раздел Руководства о записи + данных непосредственно на компакт-диски. Как создать образ CD с данными? - Это описано в разделе Руководства о копировании - CD с данными. Более полную информацию о работе с - компакт-дисками можно найти в разделе о создании - компакт-дисков - главы об устройствах хранения данных Руководства. + Это описано в разделе Руководства о копировании + CD с данными. Более полную информацию о работе с + компакт-дисками можно найти в разделе о создании + компакт-дисков + в главе Руководства об устройствах хранения данных. Почему я не могу смонтировать (командой mount аудио CD? - Если вы попытаетесь смонтировать аудио CD, вы получите примерно - такое сообщение об ошибке: cd9660: /dev/acd0c: Invalid - argument. Причина этого заключается в том, что команда - mount работает только с файловыми системами. На - аудио CD файловых систем нет; они содержат только данные. Вам - нужна программа, читающая аудио CD, например, порт - audio/xmcd port. + Попытка смонтировать аудио CD приведёт к сообщению об + ошибке вида: cd9660: /dev/acd0c: Invalid + argument. Причина этого заключается в том, + что команда mount работает только с + файловыми системами. На аудио CD файловых систем нет; + они содержат только данные. Используйте вместо этого + программу, которая умеет читать аудио CD, например, порт + audio/xmcd. Как выполнить mount для многосеансового CD? По умолчанию &man.mount.8; будет пытаться смонтировать - последнюю дорожку (сеанс) CD с данными. Если вы хотите - загрузить более ранний сеанс, то должны воспользоваться опцией - командной строки . Пожалуйста, обратитесь к - справке по команде &man.mount.cd9660.8; для получения конкретных - примеров. + последнюю дорожку (сеанс) CD с данными. Для загрузки + более раннего сеанса используйте параметр командной строки + . За конкретными примерами обращайтесь + к странице Справочника &man.mount.cd9660.8;. - Как разрешить обычным пользователям монтировать дискеты, - компакт-диски и другие сменные носители? + Как разрешить обычным пользователям монтировать + компакт-диски, DVD, USB-диски и другие сменные носители? - Обычным пользователям можно позволить монтировать устройства. - Вот как это делается: + Как пользователь root, установите + системную переменную vfs.usermount в + значение 1. - - - Как пользователь root, установите - системную переменную vfs.usermount в - значение 1. + &prompt.root; sysctl vfs.usermount=1 - &prompt.root; sysctl -w vfs.usermount=1 - + Чтобы это срабатывало во время загрузки системы, + добавьте строчку vfs.usermount=1 в файл + /etc/sysctl.conf. - - Работая пользователем root, назначьте - соответствующие права на устройства с поблочным доступом, - которые соответствуют сменным носителям. + Пользователи могут монтировать только те устройства, + к которым у них имеется доступ на чтение. Чтобы разрешить + пользователям монтировать устройство, должны быть заданы + разрешения в /etc/devfs.conf. - Например, чтобы позволить пользователям монтировать дискеты - в первом дисководе, воспользуйтесь командой + Например, чтобы разрешить пользователям монтировать + первое устройство USB, добавьте такую строчку: - &prompt.root; chmod 666 /dev/fd0 + # Allow all users to mount a USB drive. + own /dev/da0 root:operator + perm /dev/da0 0666 - Чтобы разрешить пользователям из группы - operator монтировать CD-ROM, - сделайте так: + Теперь все пользователи могут монтировать устройства + с правами доступа на чтение в собственные каталоги: - &prompt.root; chgrp operator /dev/acd0c -&prompt.root; chmod 640 /dev/acd0c - - - - Вам нужно - внести изменения в файл /etc/devfs.conf, - чтобы они сохранялись между перезагрузками. - - Как пользователь root, добавьте нужные - строки в файл /etc/devfs.conf. К примеру, - чтобы разрешить пользователям монтировать диски на первом - приводе для гибких дисков, добавьте такую строчку: - - # Разрешить пользователям монтировать дискеты. -own /dev/fd0 root:operator -perm /dev/fd0 0666 - - Чтобы разрешить пользователям группы - operator монтировать диск в приводе - CD-ROM, добавьте такую строку: - - # Разрешить членам группы operator монтировать CD-ROM. -own /dev/acd0 root:operator -perm /dev/acd0 0660 - - - - Наконец, добавьте строчку - vfs.usermount=1 в файл - /etc/sysctl.conf, чтобы она срабатывала - во время загрузки системы. - - - - Теперь все пользователи могут монтировать дискету - /dev/fd0 в собственные каталоги: - &prompt.user; mkdir ~/my-mount-point -&prompt.user; mount -t msdosfs /dev/fd0 ~/my-mount-point +&prompt.user; mount -t msdosfs /dev/da0 ~/my-mount-point - Пользователи из группы operator теперь - могут монтировать CD-ROM /dev/acd0c - в собственные каталоги: - - &prompt.user; mkdir ~/my-mount-point -&prompt.user; mount -t cd9660 /dev/acd0c ~/my-mount-point - Размонтирование устройства осуществляется просто: &prompt.user; umount ~/my-mount-point Использование vfs.usermount, однако, имеет некоторые негативные стороны, связанные с вопросами безопасности. Более правильным способом работы с носителями в формате &ms-dos; является использование пакета emulators/mtools из Коллекции Портов. - Имя, использованное для обозначения устройства в предыдущих - примерах, должно быть изменено в соответствии с конфигурацией - вашей системы. + Имя устройства, использованное в предыдущих + примерах, должно быть изменено в соответствии с + конфигурацией. Команды du и df - показывают разный объем доступного дискового пространства. Что - происходит? + показывают разный объем доступного дискового пространства. + Что происходит? - Вам нужно разобраться, что на самом деле делают команды - du и df. - du проходит по дереву каталогов, замеряя, - насколько большой объем занимает каждый файл, и выдает общий объем. - df просто запрашивает файловую систему об - оставшемся объеме. Это выглядит как одно и то же, однако файл без - записи в каталоге затронет df, но не повлияет на + Это связано с тем, как эти команды на самом деле + работают. du проходит по дереву + каталогов, замеряя, насколько большой объем занимает + каждый файл, и выдает общий объем. df + просто запрашивает файловую систему об оставшемся объеме. + Это выглядит как одно и то же, однако файл без записи в + каталоге затронет df, но не повлияет на du. - Когда программа использует файл, а вы его удалили, файл на - самом деле не удаляется из файловой системы, пока программа не - прекратит его использовать. Однако файл тут же удаляется из списка - каталога. Вы можете легко это видеть при помощи такой программы, - как more. Предположим, что у вас имеется файл, - настолько большой, что его присутствие влияет на вывод команд - du и df. (Так как в - настоящее время диски могут быть настолько большими, это может быть - очень большой файл!) Если вы удалите этот - файл в процессе работы more над ним, на команду - more это не повлияет и она не сообщит, что не - может просматривать файл. Запись о файле просто удалена из - каталога, так что другие программы или пользователи не смогут к - нему обратиться. du покажет, что файл исчез - — она просматривает дерево каталогов, а файла там не будет. - df показывает, что он все еще здесь, так как - файловая система знает, что more все еще - использует это пространство. Как только вы закончите работу с + Когда программа использует файл и этот файл удаляется, + то на самом деле он не удаляется из файловой системы, пока + программа не прекратит его использовать. Однако файл тут + же удаляется из списка каталога. Представим себе файл + достаточно большого размера, чтобы его присутствие влияло + на вывод du и df. + Если файл удаляется в процессе работы с ним команды + more, команда more + не сообщает сразу же, что не может просматривать файл. + Запись о файле просто удалена из каталога, так что другие + программы или пользователи не смогут к нему обратиться. + Тем не менее, du покажет, что файл + исчез, поскольку она просматривает дерево каталогов, а + файла там нет. df показывает, что файл + всё ещё здесь, так как файловая система знает, что + more всё ещё использует это + пространство. Как только закончится работа с more, команды du и df придут в соответствие. - Заметьте, что подсистема отложенных обновлений (Soft Updates) - может задерживать освобождение дискового пространства; вам может - потребоваться подождать до 30 секунд, прежде, чем изменения будут - заметны! - Такая ситуация часта на Web-серверах. Многие устанавливают Web-сервер на &os; и забывают обновлять файлы протоколов. Журнал доступа заполняет /var. Новый администратор удаляет файл, но система все еще сообщает о том, что раздел заполнен. Остановка и перезапуск программы Web-сервера освободит файл, позволяя системе освободить дисковое пространство. Для предотвращения этого настройте &man.newsyslog.8;. + + Заметьте, что подсистема отложенных обновлений + (Soft Updates) может задерживать освобождение дискового + пространства, и может потребоваться до 30 секунд, чтобы + изменения стали заметны. Как добавить дополнительную виртуальную память? - В главе Руководства о конфигурации и тонкой - настройке вы найдёте раздел, в - котором описывается, как это сделать. + В этом разделе Руководства + описывается, как это сделать. Почему &os; считает, что размер моего диска меньше, чем заявляет его производитель? Производители дисков считают гигабайт равным миллиарду байт, а &os; приравнивает его к 1073741824 байт. Это объясняет, почему, к примеру, в сообщениях при загрузке &os; указывается, что ёмкость диска, объём которого должен быть равным 80 Гбайт, составляет 76319 Мбайт. Заметьте также, что &os; будет (по умолчанию) резервировать 8% ёмкости диска. Почему возможно заполнение раздела больше чем на 100%? Часть каждого раздела UFS (по умолчанию 8%) зарезервировано для использования операционной системой и пользователем root. Утилита &man.df.1; не учитывает это при подсчёте значения в колонке Capacity, так - что оно может превышать 100%. Также вы заметите, что колонка + что оно может превышать 100%. Обратите внимание, что колонка Blocks всегда больше, чем сумма значений в колонках Used и Avail, обычно на 8%. Для получения более подробной информации обратитесь к описанию опции в справке по &man.tunefs.8;. + + + + Почему загрузка &os; задерживается на длительное время + на системах с большим объёмом ОЗУ? + + + + &os; выполняет короткую проверку памяти на раннем + этапе загрузки. Обычно эта проверка занимает всего + несколько секунд, но если система имеет много десятков + или сотен Гбайт памяти, это можно занять до нескольких + минут. Эту проверку можно отключить, установив + hw.memtest.tests в значение + 0 в + /boot/loader.conf. + + Для получения дополнительной информации смотрите + страницу Справочника &man.loader.conf.5;. + + + + ZFS + + + + + Какой минимальный объём ОЗУ нужно иметь для ZFS? + + + + Для комфортного использования требуется 4 Гбайт + ОЗУ, но конкретная нагрузка может сильно различаться. + + + + + + Что такое ZIL и когда оно используется? + + + + ZIL ((ZFS + intent log) — это журнал записи, используемый для + фиксации операций записи. Обычно операции собираются + в группу транзакций и при заполнении группы пишутся на + диск (Transaction Group Commit). Однако + системные вызовы типа &man.fsync.2; требуют фиксацию + записи данных на устройстве перед возвратом управления. + ZIL нужен для подтверждения такой записи, но когда данные + ещё не находятся на диске. Группа транзакций помечается + временной меткой. В случае системного сбоя ищется + последняя неповреждённая метка и из ZIL извлекаются + недостающие данные. + + + + + + Нужен ли мне SSD для ZIL? + + + + По умолчанию ZFS хранит ZIL в пуле со всеми данными. + Если приложение имеет большой процент записи, вынос ZIL + на отдельное устройство с очень быстрой синхронной + последовательной записью может улучшить общую + производительность. В остальных случаях SSD вряд ли + сможет что-то сильно улучшить. + + + + + + Что такое L2ARC? + + + + L2ARC — это кеш на чтение, + хранимый на быстром устройстве, таком как + SSD. Этот кеш не сохраняется между + перезагрузками. Следует заметить, что ОЗУ выступает + как кеш первого уровня, а L2ARC задействуется только + при нехватке ОЗУ. + + Для L2ARC нужно пространство в ARC для его индексации. + Таким образом, рабочий набор, который идеально помещается + в ARC, не будет помещаться при использовании L2ARC, потому + что часть ARC будет отведена под индекс L2ARC с + вытеснением части рабочего набора в L2ARC, более + медленный, чем ОЗУ. + + + + + + Целесообразно ли включение дедупликации? + + + + В общем случае нет. + + Дедупликация занимает значительный объём ОЗУ и может + увеличить задержки операций ввода/вывода. Если данные + не являются сильно дублированными (образы виртуальных + машин или пользовательские бекапы), то, возможно, + дедупликация даст больше вреда. Другое соображение + касается невозможности отменить статус дедупликации. + Если данные записаны при включённой дедупликации, её + выключение не приведёт к обратной репликации объединённых + блоков до момента следующей перезаписи. + + Дедупликация также может приводить к некоторым + неожиданным ситуациям. В частности, удаление файлов + может сильно замедлиться. + + + + + + Я не могу создать или удалить файлы на пуле ZFS. + Как я могу это исправить? + + + + Такое может произойти при 100% заполненности пула. + ZFS требуется свободное место на диске для записи + метаданных транзакций. Для восстановления + работоспособного состояния пула обрежьте файл перед его + удалением. + + &prompt.user; truncate -s 0 unimportant-file + + Обрезание файла работает по той причине, что новая + транзакция при этом не запускается; вместо этого создаются + новые свободные блоки. + + + На системах с дополнительной настройкой ZFS dataset, + такой как дедупликация, свободное место может не быть + доступно сразу. + + + + + + + Поддерживается ли TRIM в ZFS для твердотельных + накопителей? + + + + Поддержка ZFS TRIM была добавлена во + &os; 10-CURRENT в ревизии + r240868 и стала доступна + в ветках -STABLE в r252162 и + r251419. + + ZFS TRIM включена по умолчанию и может быть отключена + посредством добавления такой строки в + /etc/sysctl.conf: + + vfs.zfs.trim_disable=1 + + + ZFS TRIM может не работать на всех конфигурациях, + в частности для файловой системы ZFS на устройствах с + использованием GELI. + + + + + + Системное администрирование Где расположены файлы конфигурации системы? - Основным настроечным файлом является - /etc/defaults/rc.conf (обратитесь к - &man.rc.conf.5;). Скрипты начального запуска системы, такие как - /etc/rc и /etc/rc.d - (обратитесь к &man.rc.8;), просто включают этот файл. Не - редактируйте этот файл! Вместо этого, если в файле - /etc/defaults/rc.conf имеется параметр, - который вы хотите изменить, то вы должны скопировать строчку с ним - в файл /etc/rc.conf и поменять его значение - именно здесь. + Основным конфигурационным файлом является + /etc/defaults/rc.conf, который описан + в &man.rc.conf.5;). Этот файл подключают системные + скрипты запуска, такие как /etc/rc и + /etc/rc.d, которые описаны в + &man.rc.8;. Не редактируйте этот + файл! Вместо изменения параметра в + /etc/defaults/rc.conf скопируйте + эту строку в /etc/rc.conf и поменяйте + значение там. - Например, если вы хотите запустить &man.named.8;, поставляемый - сервер DNS, то всё, что вам нужно сделать, это: + Пример запуска &man.named.8;, поставляемого с системой + сервера DNS: &prompt.root; echo 'named_enable="YES"' >> /etc/rc.conf Чтобы запустить местные сервисы, поместите скрипты в каталог /usr/local/etc/rc.d. У этих скриптов должен быть выставлен бит выполнимости, по умолчанию используются права доступа 555. Как проще всего добавить пользователя? Используйте команду &man.adduser.8; или &man.pw.8; в случае выполнения более сложных операций. Чтобы удалить пользователя, используйте команду &man.rmuser.8; или, если это будет необходимо, &man.pw.8;. Почему после редактирования моего файла crontab я получаю сообщения вида root: not found? - Обычно это случается при редактировании системного crontab-файла - (/etc/crontab) и последующего использования - утилиты &man.crontab.1; для его установки: + Обычно это случается при редактировании системного + файла crontab. - &prompt.root; crontab /etc/crontab + Это неправильный подход, потому что системный crontab + имеет формат, отличный от пользовательских crontab. + Системный crontab имеет дополнительное поле, указывающее, + под каким пользователем запускать команду. &man.cron.8; + полагает, что имя пользователя является первым словом в + команде на выполнение. Поскольку такой команды не + существует, отображается это сообщение об ошибке. - Это неправильно. Системный crontab-файл имеет формат, отличный - от пользовательских crontab-файлов, которые обновляет утилита - &man.crontab.1; (страница Справочника по &man.crontab.5; описывает - отличия более подробно). + Чтобы удалить лишний неправильный crontab: - Если это именно то, что вы сделали, то дополнительный - crontab-файл является просто копией файла - /etc/crontab в неправильном формате. Удалите - его такой командой: - &prompt.root; crontab -r - - В следующий раз при редактировании файла - /etc/crontab, вам не нужно делать ничего для - оповещения утилиты &man.cron.8; о сделанных изменениях, так как она - распознает их автоматически. - - Если вы хотите запускать что-то один раз в день, неделю или - месяц, то, наверное, лучше обновить скрипты - /usr/local/etc/periodic - и позволить команде - &man.periodic.8;, запускаемой системной утилитой - cron, планировать - их выполнение вместе с другими периодическими системными - задачами. - - Реальная причина ошибки заключается в том, что системный - crontab-файл имеет дополнительное поле, указывающее, какой - пользователь запускает команду. В системном crontab-файле, - поставляемом с &os; и используемом по умолчанию, это - пользователь root для всех строк. Если этот - crontab-файл используется в качестве crontab-файла пользователя - root (что не то же самое, - что системный crontab-файл), &man.cron.8; полагает, что слово - root является первым в команде на выполнение, - но такой команды не существует. - Команда su выдает, что you are - not in the correct group to su root, когда я пытаюсь - сменить привилегии на root. + Команда su выдает ошибку + you are not in the correct group to su + root, когда я пытаюсь сменить привилегии на + root. - Это особенность работы системы защиты. Для того, чтобы - изменить свои привилегии на пользователя root - (или любого другого пользователя, имеющего привилегии - администратора), вы должны быть членом группы - wheel. Если бы этого не было, любой, - имеющий доступ к системе и узнавший пароль пользователя - root, смог получить в системе - административные полномочия. С такой же защитой этого не - получится; &man.su.1; будет препятствовать попыткам даже ввести - пароль, если некто не являетесь членом группы - wheel. + Это особенность работы системы защиты. Для того, + чтобы сменить пользовательский идентификатор с помощью + su на пользователя root или любого другого + с привилегиями суперпользователя, учётная запись должна + являться членом группы wheel. Если бы этого не + было, то любой, имеющий доступ к системе и узнавший пароль + пользователя root, смог бы получить в + системе уровень доступа суперпользователя. Чтобы разрешить кому-либо менять привилегии на - root, просто включите его в группу + root, включите + его в группу wheel с помощью + pw. + + &prompt.root; pw groupmod wheel -m lisa + + В примере выше пользователь lisa будет добавлен в группу wheel. Я сделал ошибку в файле rc.conf или в каком-то другом файле начальной загрузки, и теперь не могу его отредактировать из-за того, что файловая система находится в режиме только для чтения. Что мне делать? - Перезапустите систему, используя в приглашении загрузчика - команду boot -s для входа в - однопользовательский режим. При получении приглашения на ввод - полного пути до командного - процессора просто нажмите Enter, а затем - выполните команду mount -urw / для повторного - монтирования корневой файловой системы в режиме чтения/записи. Вам - может также потребоваться выполнить команду mount -a -t - ufs для монтирования файловой системы, в которой - расположен ваш любимый редактор. Если редактор расположен на - сетевой файловой системе, то вам потребуется выполнить сетевые - настройки вручную до монтирования сетевой файловой системы, либо - воспользоваться редактором, находящимся в локальной файловой - системе, таким, как &man.ed.1;. + Перезапустите систему, используя в приглашении + загрузчика команду boot -s для + входа в однопользовательский режим. При получении + приглашения на ввод полного пути до командного процессора + нажмите Enter, а затем выполните + команду mount -urw / для повторного + монтирования корневой файловой системы в режиме + чтения/записи. Вам может также потребоваться выполнить + команду mount -a -t ufs для + монтирования файловой системы, в которой расположен ваш + любимый текстовый редактор. Если редактор расположен на + сетевой файловой системе, либо выполните сетевые настройки + вручную до монтирования сетевой файловой системы, либо + воспользоваться редактором, находящимся в локальной + файловой системе, таким, как &man.ed.1;. - Если вы собираетесь использовать полноэкранный редактор, - такой, как &man.vi.1; или &man.emacs.1;, то вам нужно будет - выполнить команду export TERM=cons25, чтобы - такие редакторы смогли корректно взять данные из базы данных - &man.termcap.5;. + Чтобы использовать полноэкранный редактор, такой как + &man.vi.1; или &man.emacs.1;, выполните команду + export TERM=xterm во &os; 9.0+ или + export TERM=cons25 во &os; 8.X, чтобы + такие редакторы смогли корректно взять данные из базы + данных &man.termcap.5;. - После выполнения этих шагов вы сможете отредактировать файл - /etc/rc.conf так, как вы это обычно делаете - для исправления ошибки. Сообщение об ошибке, выводимое сразу же - после сообщений при загрузке ядра, должно указать вам на номер - строки в файле, которая содержит ошибку. + После выполнения этих шагов отредактируйте файл + /etc/rc.conf для исправления ошибки. + Сообщение об ошибке, выводимое сразу же после сообщений + при загрузке ядра, должно указать на номер строки в файле, + которая содержит ошибку. У меня проблемы с установкой принтера. - Обратитесь к соответствующему разделу - Руководства, посвящённому печати. В нём описаны решения - большинства ваших проблем. - - Некоторые принтеры для выполнения любых операций по печати - требуют наличия на хосте драйвера. Такие так называемые - WinPrinters изначально во &os; не - поддерживаются. Если ваш принтер не работает в DOS или &windows;, - то, скорее всего, это WinPrinter. Единственное, что вам - остаётся сделать в надежде на то, что вы заставите его работать, - это проверить, поддерживает ли его порт - print/pnm2ppa. + Обратитесь к соответствующему разделу + Руководства, посвящённому печати, за советами по + разрешению проблем. Раскладка клавиатуры неверна. - Пожалуйста, обратитесь к разделу Руководства, посвящённому + Обратитесь к разделу Руководства, посвящённому использованию локализации, а именно к части, описывающей - + настройку консоли. - - У меня при загрузке появляются сообщения вида - unknown: <PNP0303> can't assign - resources - - - - Ниже следует часть письма, адресованного в &a.current;. - -
- &a.wollman.email;, 24 апреля 2001 - - Сообщение can't assign resources говорит о - том, что устройство является устаревшим ISA-устройством, для - которого в ядре присутствует драйвер, не поддерживающий PnP. К - таким устройствам относятся контроллеры клавиатуры, микросхема - контроллера программируемых прерываний, а также другие части - стандартного набора. Ресурсы не могут выделены, потому что уже - есть драйвер, использующий эти адреса. -
-
-
- - Почему не получается заставить работать дисковые квоты? - - Возможно, что ваше ядро не сконфигурировано должным образом - для работы с квотами. Если это действительно так, то вам надо - добавить следующую строчку в ваш конфигурационный файл ядра и - пересобрать его: - options QUOTA + Возможно, что ядро не сконфигурировано должным + образом для работы с квотами. В этом случае добавьте + следующую строчку в конфигурационный файл ядра и + пересоберите ядро: - Пожалуйста, прочтите главу - руководства по квотам для полной информации. + options QUOTA + + Прочтите главу + руководства по квотам для полной + информации. - Не включайте квотирование на /. + Не включайте квотирование на разделе + /. - Помещайте файл с квотами в ту файловую систему, которую - он обслуживает, то есть: + Помещайте файл с квотами в ту файловую систему, + которую он обслуживает: Файловая система Файл квот /usr /usr/admin/quotas /home /home/admin/quotas Поддерживает ли &os; вызовы IPC из System V? - Да, во &os; в ядро GENERIC включена - поддержка IPC в стиле - System V, в том числе совместно используемой памяти, сообщений и - семафоров. Для включения их поддержки в конфигурационный файл - вашего ядра нужно добавить следующие строки. + Да, во &os; в ядро GENERIC + включена поддержка IPC в стиле System V, в том числе + совместно используемой памяти, сообщений и семафоров. + В вашем собственном ядре поддержка может быть включена + посредством загрузки модулей ядра + sysvshm.ko, + sysvsem.ko и + sysvmsg.ko или добавлением в + конфигурационный файл ядра следующих строк: options SYSVSHM # enable shared memory options SYSVSEM # enable for semaphores options SYSVMSG # enable for messaging Перекомпилируйте и переустановите ядро. - Какое другое программное обеспечение для почтового сервера - можно использовать вместо sendmail? + Какое другое программное обеспечение для почтового + сервера можно использовать вместо + Sendmail? - sendmail - является - программным обеспечением для работы почтового сервера во &os;, - используемым по умолчанию, но вы можете с легкостью заменить его - другим MTA (к примеру, установленным из портов). - - В дереве портов уже имеются различные альтернативные MTA, из - которых mail/exim, - mail/postfix, - mail/qmail и - mail/zmailer являются одними - из самых популярных. - - Разнообразие хорошо, а тот факт, что у вас есть выбор из многих - различных почтовых серверов, является хорошим признаком; поэтому - попытайтесь не задавать вопросы типа - Sendmail лучше, чем - qmail? в списках рассылки. Если - вы захотите получить ответ, сначала просмотрите архивы списков - рассылки. Достоинства и недостатки каждого из имеющихся MTA уже - обсуждались неоднократно. + Сервер Sendmail + является программным обеспечением для работы почтового + сервера во &os;, используемым по умолчанию, но его можно + заменить другим MTA, установленным из Коллекции Портов. + В дереве портов имеется mail/exim, + mail/postfix и + mail/qmail. Проверьте архивы списков + рассылки на предмет обсуждения достоинств и недостатков + имеющихся MTA. - Я забыл пароль пользователя root! Что + Я забыл пароль пользователя root! Что делать? Без паники! Перезапустите систему, наберите boot -s в приглашении Boot: для входа в однопользовательский режим. На вопрос об используемой оболочке нажмите - Enter. На приглашение - &prompt.root; введите mount -urw /, чтобы - перемонтировать корневую файловую систему в режиме чтения/записи, - после чего выполните команду mount -a для - монтирования всех файловых систем. Запустите команду - passwd root, чтобы сменить - пароль пользователя root, а затем - &man.exit.1; для продолжения процесса загрузки. + Enter для получения приглашения + &prompt.root;. Введите mount -urw /, + чтобы перемонтировать корневую файловую систему в режиме + чтения/записи, после чего выполните команду mount + -a для монтирования всех файловых систем. + Запустите команду passwd root, чтобы + сменить пароль пользователя root, а затем &man.exit.1; + для продолжения процесса загрузки. - Если при входе в однопользовательский режим предлагается - ввести пароль пользователя root, то - это означает, что консоль была помечена как - insecure в /etc/ttys. - В этом случае потребуется загрузиться с установочного диска - &os;, выбрать оболочку Fixit из - меню &man.sysinstall.8; и выполнить указанные выше команды. + Если при входе в однопользовательский режим + предлагается ввести пароль пользователя root, это означает, что + консоль была помечена как insecure в + /etc/ttys. В этом случае + потребуется загрузиться с установочного диска &os;, + выбрать Live CD или + Shell в начале процесса + установки и выполнить указанные выше команды. В этом + случае смонтируйте нужный раздел и выполните туда + chroot. Например, замените команду mount + -urw / на mount /dev/ada0p1 /mnt; + chroot /mnt для системы, расположенной на + ada0p1. - Если вы не можете смонтировать корневой раздел в + Если корневой раздел не получается смонтировать в однопользовательском режиме, то возможно, что разделы - являются зашифрованными, и смонтировать их без ключей доступа - не представляется возможным. Ваши шансы зависят от выбранного - способа шифрования. За дополнительной информацией обращайтесь - к разделу Руководства, + являются зашифрованными, и смонтировать их без ключей + доступа не представляется возможным. За дополнительной + информацией обращайтесь к разделу Руководства, посвященному шифрованию дисков во &os;. - Как запретить перезагрузку по нажатию ControlAlt - Delete? + Как запретить перезагрузку по нажатию Control + Alt + Delete? - Если вы используете драйвер консоли &man.syscons.4; (который - является стандартным), перегенерируйте и установите новое ядро с - таким параметром в конфигурационном файле: + При использовании стандартного драйвера консоли + &man.syscons.4; перегенерируйте и установите новое ядро + с таким параметром в конфигурационном файле: options SC_DISABLE_REBOOT Этого также можно достичь установкой следующего &man.sysctl.8;, что не требует перезагрузки или пересборки ядра: &prompt.root; sysctl hw.syscons.kbd_reboot=0 Оба этих метода являются взаимоисключающими. Данный - &man.sysctl.8; не существует, если вы скомпилировали ядро + &man.sysctl.8; не существует, если ядро скомпилировано с параметром SC_DISABLE_REBOOT. - - Если же вы используете драйвер консоли &man.pcvt.4;, - то включите в конфигурационный файл следующую строку и - пересоберите ядро: - - options PCVT_CTRL_ALT_DEL Как преобразовать текстовые файлы DOS в формат &unix;? Воспользуйтесь следующей командой &man.perl.1;: &prompt.user; perl -i.bak -npe 's/\r\n/\n/g' file(s) где file(s) - это один или несколько файлов для обработки. Преобразование делается в том же самом файле, оригинальные файлы сохраняются с расширением .bak. - Это преобразование также можно выполнить с помощью команды - &man.tr.1;: + Либо используйте &man.tr.1;: &prompt.user; tr -d '\r' < dos-text-file > unix-file где dos-text-file - это имя файла, содержащего текст DOS, а в файл unix-file будет помещён уже преобразованный текст. Этот способ может работать гораздо быстрее, чем при использовании perl. Еще один способ отформатировать тестовые файлы DOS состоит в использовании converters/dosunix из Коллекции Портов. Для получения дополнительной информации ознакомьтесь с документацией порта. - - Как прервать процесс по имени? - - - - Используйте команду &man.killall.1;. - - - - - - Почему &man.su.1; выдаёт сообщение о том, что я - не вхожу в root ACL? - - - - Эта ошибка выдаётся распределённой системой аутентификации - Kerberos. Эта ошибка не фатальна, - однако это раздражает. Вы можете запустить su с ключом - либо деинсталлировать - Kerberos, как описано в ответе на - следующий вопрос. - - - - - - Как деинсталлировать - Kerberos? - - - - Чтобы удалить Kerberos из - системы, переустановите дистрибутив base - того релиза, который у вас запущен. Если у вас есть CD-ROM, - вы можете смонтировать компакт-диск (положим, в каталог - /cdrom) и выполнить - команду - - &prompt.root; cd /cdrom/base -&prompt.root; ./install.sh - - Либо вы можете задействовать опцию - NO_KERBEROS в файле - /etc/make.conf и выполнить полное перестроение - системы. - - - - - - Что случилось с /dev/MAKEDEV? - - - - Во &os; 5.X и выше - используется система &man.devfs.8;, работающая по принципу - "устройства по требованию". Драйверы устройств - автоматически создают новые файлы - устройств, как только в них появляется необходимость, таким образом - обходясь без /dev/MAKEDEV. - - - - - - Как добавить в систему дополнительные псевдотерминалы? - - - - Если у вас много пользователей, работающих в сеансах - telnet, ssh, X или в - screen, то вы можете столкнуться с проблемой - нехватки псевдотерминалов. По умолчанию до &os; 6.2 - включительно поддерживается 256 псевдотерминалов, а начиная с - &os; 6.3 — 512. - - - При необходимости можно добавить дополнительные - псевдотерминалы. Однако, это требует изменений в стандартной - библиотеке C, ядре и /etc/ttys. - Например, http://www.freebsd.org/~jhb/patches/pty_1152.patch - расширяет количество псевдотерминалов до 1152. Отметим, что - данный патч может быть применен без ошибок только для - &os; 6.3 или выше. - - - - - Как перечитать содержимое /etc/rc.conf и перестартовать /etc/rc без перезагрузки системы? Перейдите в однопользовательский режим, а затем возвратитесь обратно в многопользовательский. - На консоли выполните следующее: - &prompt.root; shutdown now -(Замечание: без -r или -h) - &prompt.root; return &prompt.root; exit Я пытался обновить мою систему до последней -STABLE, а получил -BETAx, -RC или -PRERELEASE! Что происходит? - Краткий ответ: это же просто название. RC - означает + Краткий ответ: это же просто название. + RC означает Release Candidate. Это значит, что вскоре произойдет выход релиза. Во &os; появление -PRERELEASE, как правило, равнозначно прекращению внесения изменений в код системы перед появлением релиза. (Для некоторых релизом метка -BETA использовалась точно так же, как и -PRERELEASE.) Подробный ответ: во &os; релизы выпускаются из одного из двух мест. Крупные релизы, точка-ноль, такие, как - 7.0-RELEASE и 8.0-RELEASE, ответвляются от основного потока + 9.0-RELEASE и 10.0-RELEASE, ответвляются от основного потока разработки, более известного как -CURRENT. Мелкие релизы, такие, как 6.3-RELEASE или 5.2-RELEASE, являлись снэпшотами активной ветки -STABLE. Начиная с 4.3-RELEASE, каждый релиз также имеет свою ветвь, которой могут следовать те, кому необходим сверхконсервативный метод обновления (как правило, внесение только тех исправлений, которые касаются вопросов обеспечения безопасности). Когда делается релиз, то ветвь, из которой он выпускается, подвергается некоторой подготовке. Частью этого процесса является замораживание кода. Когда инициируется замораживание кода, то имя ветки изменяется для того, чтобы отразить факт близости релиза. Например, если ветка называлась 6.2-STABLE, то её имя будет изменено на 6.3-PRERELEASE, чтобы обозначить момент прекращения внесения изменений в код системы и период дополнительного тестирования перед выходом релиза. В это время исправления ошибок могут быть внесены в код системы для того, чтобы быть включенными в релиз. Когда исходный код подготовлен к выпуску релиза, имя будет изменено на 6.3-RC для обозначения того, что релиз будет сделан, скорее всего, именно из этого кода. Когда код находится на этапе RC, в нём могут исправляться только самые критичные ошибки. Как только релиз (в нашем примере 6.3-RELEASE) и ветка релиза будут созданы, ветвь будет переименована в 6.3-STABLE. Для получения дополнительной информации о номерах версий и - различных ветках CVS обратитесь к статье о выпуске + различных ветках Subversion обратитесь к статье о выпуске релизов. Я попытался установить новое ядро, однако утилита &man.chflags.1; не сработала. Как это обойти? - Краткий ответ: Скорее всего, вы работаете в режиме - безопасности, большем, чем 0. Для установки ядра - перезагрузите машину и войдите в - однопользовательский режим. + Краткий ответ: Режим безопасности имеет значение + больше нуля. Для установки ядра перезагрузите машину и + войдите в однопользовательский режим. Подробный ответ: &os; запрещает менять системные флаги при работе на уровнях безопасности, превышающих 0. - Вы можете определить ваш уровень такой командой: + Чтобы проверить текущий уровень безопасности: &prompt.root; sysctl kern.securelevel - Вы не можете понизить уровень безопасности; для установки - ядра вам нужно перезагрузиться в однопользовательский режим, - или изменить уровень безопасности в - /etc/rc.conf, а затем выполнить - перезагрузку. Обратитесь к странице Справочника по &man.init.8; - за подробной информацией об securelevel и - посмотрите /etc/defaults/rc.conf и - справочную страницу по &man.rc.conf.5; для выяснения - подробностей о файле rc.conf. + Уровень безопасности нельзя понизить в + многопользовательском режиме, поэтому для установки ядра + загрузитесь в однопользовательский режим, или измените + уровень безопасности в /etc/rc.conf, + а затем выполните перезагрузку. Обратитесь к странице + Справочника по &man.init.8; за подробной информацией о + securelevel и посмотрите + /etc/defaults/rc.conf и справочную + страницу по &man.rc.conf.5; для выяснения подробностей о + файле rc.conf. Не получается изменить системное время больше чем на одну секунду! Как это обойти? - Краткий ответ: Скорее всего, вы работаете на уровне - безопасности, превышающем 1. Для смены даты перезагрузите - машину и войдите в однопользовательский режим. + Краткий ответ: Система работает на уровне безопасности + со значением выше 1. Для смены даты перезагрузите машину + и войдите в однопользовательский режим. Подробный ответ: &os; запрещает менять системное время - на больше чем одну секунду при работе на уровнях безопасности, - превышающих 1. Вы можете определить ваш уровень такой - командой: + больше чем на одну секунду на уровне безопасности выше 1. + Чтобы определить уровень безопасности: &prompt.root; sysctl kern.securelevel - Вы не можете понизить уровень безопасности; для изменения - даты вам нужно перезагрузиться в однопользовательский режим, - или изменить уровень безопасности в - /etc/rc.conf, а затем выполнить - перезагрузку. Обратитесь к странице Справочника по &man.init.8; - за подробной информацией об securelevel и - посмотрите /etc/defaults/rc.conf и - справочную страницу по &man.rc.conf.5; для выяснения - подробностей о файле rc.conf. + Уровень безопасности нельзя понизить в + многопользовательском режиме. Для изменения даты + перезагрузите систему в однопользовательский режим, + либо измените уровень безопасности в + /etc/rc.conf, а затем выполните + перезагрузку. Обратитесь к странице Справочника по + &man.init.8; за подробной информацией о + securelevel и посмотрите + /etc/defaults/rc.conf и справочную + страницу по &man.rc.conf.5; для выяснения подробностей о + файле rc.conf. В rpc.statd; есть ошибка работы с памятью! Он использует 256 Мбайт оперативной памяти! Нет, там нет ошибок и он не использует 256 Мбайт памяти. Для удобства rpc.statd отображает неприлично большой кусок памяти в своё адресное пространство. Здесь нет ничего неправильного с технической точки зрения, это просто сбивает с толку программы вроде &man.top.1; и &man.ps.1; &man.rpc.statd.8; отображает свой статусный файл (находящийся на /var) в свое адресное пространство. Для того, чтобы постоянно не беспокоиться о будущих переотражениях, когда файл вырастет в размерах, он просто отображает его с огромным размером заранее. Это просто заметить в исходных текстах, где как вы можете увидеть параметр длина к функции &man.mmap.2; имеет значение 0x10000000, или одна шестнадцатая адресного пространства для IA32, то есть 256 Мбайт. Почему я не могу снять с файла флаг schg? - Вы работаете в системе с повышенным (то есть большим, чем 0) - уровнем защиты. Понизьте уровень защиты и попробуйте еще раз. - Для получения более подробной информации обратитесь к разделу FAQ об уровне защиты и - справочной странице о &man.init.8;. + Система работает с уровнем защиты выше нуля. Понизьте + уровень защиты и попробуйте еще раз. Для получения более + подробной информации обратитесь к разделу FAQ + об уровне защиты и + справочной странице &man.init.8;. - - Почему в SSH аутентификация - посредством файла - .shosts не включена по умолчанию в - последних версиях &os;? - - - - Причиной, по которой .shosts - аутентификация не работает по умолчанию в последних версиях - &os;, является то что &man.ssh.1; не устанавливается более - с битом изменения привилегий на пользователя - root. Если вы хотите - исправить это, то вы можете сделать одно - из двух нижеприведённых действий: - - - - Как постоянную правку, установите - ENABLE_SUID_SSH в true в - файле /etc/make.conf, затем - перекомпилируйте и установите &man.ssh.1; (или выполните - команду make world). - - - - Как временную правку, измените права доступа к файлу - /usr/bin/ssh на 4555 - командой chmod 4555 /usr/bin/ssh из-под - администратора. А потом добавьте строку - ENABLE_SUID_SSH= true - в файл /etc/make.conf, чтоб это изменение - осталось в силе после очередного обновления системы с помощью - make world. - - - - - - Что такое vnlru? - vnlru сбрасывает и освобождает vnode, когда - система достигает своего ограничения по параметру - kern.maxvnodes. Этот подпроцесс ядра в основном - работает вхолостую и активируется только при наличии огромного - объема ОЗУ и обращении к десяткам или тысячам файлов маленького - размера. + vnlru сбрасывает и освобождает + vnode, когда система достигает ограничения по параметру + kern.maxvnodes. Этот поток ядра в + основном работает вхолостую и активируется только при + наличии огромного объема ОЗУ и обращении к десяткам тысяч + файлов небольшого размера. Что означают различные состояния памяти, показываемые утилитой top? Active: по статистике страницы недавно использовались. Inactive: по статистике страницы недавно не использовались. Cache: (наиболее часто) страницы, которых перемещены из числа неактивных в статус, в котором они содержат данные, но которые могут часто сразу же использоваться повторно (как с их старым содержимым, так и повторно с новым). Это может быть некоторое непосредственное перемещение из состояния active в состояние cache, если известно, что страница чиста (не модифицировалась), но такое перемещение определяется политикой, зависящей от выбора алгоритма разработчиком VM-системы. Free: страницы, не содержащие данных, и которые могут быть использованы при некоторых условиях, когда страницы кэша могут не подойти. Свободные страницы могут повторно использоваться в состояниях прерывания или процессах. Wired: страницы, зафиксированные в памяти, обычно для использования ядром, а также иногда для специального использования процессами. Страницы чаще всего записываются на диск (типа синхронизации VM), когда они находятся в неактивном состоянии, однако страницы в активном состоянии также могут сбрасываться. Это зависит от наличия и возможности отслеживания со стороны ЦП бита 'модифицированности', и в некоторых ситуациях это может быть лучше для блока синхронизируемых страниц VM, вне зависимости от их активности. В большинстве встречающихся ситуаций лучше всего представлять неактивную очередь как очередь сравнительно неиспользуемых страниц, которые могут быть, а могут и не быть в процессе записи на диск. Кэшируемые страницы уже синхронизированы, не отображаются, но доступны для непосредственного использования процессом со своей старой или новой привязкой. Свободные страницы доступны на уровне прерывания, однако кэшируемые или свободные страницы могут использоваться в процессе повторно. Кэшируемые страницы недостаточно заблокированы для того, чтобы быть доступными на уровне прерывания. Есть ещё некоторые другие флаги (например, флаг занятости или счётчик занятости), которые могут изменить некоторые описанные правила. Сколько свободной памяти доступно? Есть несколько понятий свободной памяти. В одном случае это объём памяти, непосредственно доступной в данный момент без страничной выгрузки чего-либо. Этот объём равен примерно размеру очереди кэша + размер очереди на высвобождение (с учётом допустимых отклонений, зависящих от настроек системы). В другом случае свободная память обозначает общий объём пространства VM. Он может сложно вычисляться, но зависит от объёма раздела подкачки и памяти. Другие определения свободной памяти также возможны, но они достаточно бесполезны, ведь в любом случае важно сохранять низкий уровень подкачки и избегать исчерпания раздела подкачки. - Что такое /var/empty? - Я не могу его удалить! + Что такое /var/empty? - /var/empty - представляет собой каталог, который использует программа - &man.sshd.8; при выполнении разделения полномочий. Каталог - /var/empty пуст, его - владельцем является root и на нём - установлен флаг schg. - - Хотя этот каталог удалять не рекомендуется, для выполнения этой - операции вам нужно сначала снять флаг schg. - Обратитесь к справочным страницам по &man.chflags.1; для получения - более полной информации (и помните про ответ на вопрос о снятии флага schg). + /var/empty представляет собой + каталог, который используется в программе &man.sshd.8; + при выполнении разделения полномочий. Каталог + /var/empty пуст, его владельцем + является root, + и на нём установлен флаг schg. + Этот каталог не должен удаляться. -
-
- - X Window System и виртуальные консоли - - - - Что такое X Window System? + + Я поменял /etc/newsyslog.conf. + Как проверить правильность изменений? - X Window System (обычно X11) - является самой широкодоступной оконной - системой, которая может работать на &unix; и &unix;-подобных - системах, в том числе и во &os;. Разработкой стандартов на - используемый - X-протокол занимается организация The X.Org Foundation, с - текущей эталонной реализацией version 11 release &xorg.version;, - поэтому вы будете часто встречать краткую ссылку на них в виде - сокращения X11. + Чтобы посмотреть, что будет делать &man.newsyslog.8;, + используйте следующую команду: - Для разных архитектур и операционных систем существует - множество реализаций этой системы. Реализацию кода для - серверной части называют X-сервером. + &prompt.user; newsyslog -nrvv - - Какие реализации X существуют для &os;? + + Как поправить часовой пояс? - Исторически складывалось так, что во &os; в качестве - используемой по умолчанию реализации X выступал пакет - &xfree86;, который поддерживает The XFree86 Project, - Inc. Данное программное обеспечение устанавливалось по - умолчанию в версиях &os; до 4.10 и 5.2. Хотя &xorg; поддерживала - в то время свою реализацию, в целом она позиционировалась как - ссылочная платформа, от чего долгие годы значительно - страдала. - - Однако в начале 2004 года несколько разработчиков XFree86 - покинули проект из-за разногласий по поводу темпов внесения - изменений в код, будущего направления развития и личных конфликтов. - Теперь они передают свой код непосредственно в &xorg;. - Одновременно с этим &xorg; обновила своё дерево исходных текстов до - состояния, соответствующего последнему релизу &xfree86; - перед изменением лицензионного соглашения (XFree86 - version 4.3.99.903), включила туда множество - изменений, ранее поддерживаемых отдельно, и выпустила этот набор - как X11R6.7.0. Существует отдельный, - но связанный с этим проект freedesktop.org - (для краткости fd.o), работающий над - перепроектированием оригинального кода &xfree86;, в котором больше - нагрузки должно лечь на графический адаптер (для улучшения - производительности), и который должен стать более модульным (для - улучшения поддержки и ускорения выпуска - релизов, а также упрощения настройки). &xorg; планирует включить - изменения, разработанные freedesktop.org, в - свои будущие релизы. - - С июля 2004 в &os.current; в качестве реализации, используемой - по умолчанию, &xfree86; была заменена на &xorg;. С тех пор - в качестве реализации X11 по умолчанию используется &xorg;. - - Для получения более полной информации прочтите раздел о X11 Руководства - &os;. + Используйте &man.tzsetup.8;. + + - - - Всё же почему разделились два проекта X? - + + X Window System и виртуальные консоли - - Ответ на этот вопрос находится вне круга проблем, описываемых - в FAQ. Заметим, что в Internet в архивах различных списков - рассылки хранится объёмная переписка. Для изучения истории этого - вопроса, пожалуйста, воспользуйтесь вашей любимой поисковой - системой, а не задавайте вопросы в списках рассылки &os;. Может - статься, что только непосредственные участники событий будут знать - доподлинно все произошедшее. - - - + - - Почему для установки по умолчанию во &os; были выбраны - порты &xorg;? + + Что такое X Window System? - Разработчики &xorg; заявляют, что их целями является более - частый выпуск релизов и быстрое добавление новых функций. Если - они смогут это осуществить, что их разработка будет весьма - привлекательна. Кроме того, использование их программного - обеспечение продолжает подпадать под условия стандартного для X - лицензионного соглашения, тогда как &xfree86; пользуется несколько - модифицированным её вариантом. + X Window System (обычно X11) + является наиболее общедоступной оконной системой, которая + может работать на &unix; и &unix;-подобных системах, в том + числе и во &os;. Разработкой стандартов на используемый + X-протокол + занимается организация The X.Org Foundation, + с текущей эталонной реализацией version 11 release + &xorg.version;, поэтому название часто сокращается до + X11. + + Для разных архитектур и операционных систем существует + множество реализаций этой системы. Реализацию кода для + серверной части называют X-сервером. - Я хочу запустить X, как это сделать? + Я хочу запустить &xorg;, как это сделать? - Если вы планируете установить X на уже работающую систему, то - вам необходимо использовать мета-порт x11/xorg, который построит и установит - все необходимые компоненты, либо установить &xorg; из - пакетов &os;. + Для установки &xorg; выполните одно из действий: - &prompt.root; pkg_add -r xorg + Используйте мета-порт x11/xorg, который выполняет + построение и установку всех компонентов &xorg;. - Кроме того, установить &xorg; можно из &man.sysinstall.8;, - выбрав Configure, затем - Distributions, затем - The X.Org Distribution. + Используйте x11/xorg-minimal, который + выполняет построение и установку только необходимых + компонентов &xorg;. - После того, как &xorg; был успешно установлен, следуйте - указаниям в разделе Конфигурация + Установите &xorg; из пакетов &os;. + + &prompt.root; pkg install xorg + + После установки &xorg; следуйте указаниям в разделе Конфигурация X11 Руководства &os;. Я попытался запустить X, но получил - сообщение KDENABIO failed (Operation not - permitted) после ввода команды + сообщение No devices detected. после + ввода команды startx. Что мне теперь делать? - Вероятнее всего, в вашей системе установлен повышенный уровень - безопасности (securelevel). При повышенном - уровне защиты систему X запустить - невозможно, потому что X требуются права на операции записи в - устройство &man.io.4;. Дополнительную - информацию можно найти на страницах справочной системы по - &man.init.8;. + Вероятно, в системе установлен повышенный уровень + безопасности (securelevel). При + повышенном уровне защиты систему X запустить невозможно, + потому что X требуются права на операции записи в + устройство &man.io.4;. Дополнительная информация + находится на странице Справочника &man.init.8;. - Так что вопрос сводится к тому, как вам это обойти, и у вас - здесь есть в основном два варианта: установить значение - securelevel обратно в ноль (обычно это делается в - /etc/rc.conf) или во время загрузки - запускать &man.xdm.1; (до того, как повышается значение - securelevel). + Существует два решения проблемы: установить значение + securelevel обратно в ноль или + запускать &man.xdm.1; (или любой другой оконный менеджер) + во время загрузки, до того как повышается значение + securelevel. Обратитесь к для получения более полной информации о запуске &man.xdm.1; во время загрузки. Почему моя мышь не работает с X? - Если вы используете &man.syscons.4; (стандартный драйвер - консоли), то можете настроить поддержку указателя мыши во всех - виртуальных экранах. Во избежание конфликтов с X, драйвер - &man.syscons.4; поддерживает виртуальное устройство - /dev/sysmouse. Все события, получаемые - от реальной мыши, пишутся в устройство &man.sysmouse.4; через - &man.moused.8;. Если вы хотите использовать вашу мышь на одной или - нескольких виртуальных консолях, продолжая - использовать X, посмотрите и настройте &man.moused.8;. + При использовании стандартного драйвера консоли + &man.syscons.4; во &os; можно включить поддержку указателя + мыши во всех виртуальных экранах. Во избежание конфликтов + с X, драйвер &man.syscons.4; поддерживает виртуальное + устройство /dev/sysmouse. Все события + от реального устройства мыши пишутся в устройство + &man.sysmouse.4; через &man.moused.8;. Чтобы использовать + мышь на одной и более виртуальных консолях, и при этом + продолжать использовать X, посмотрите и настройте + &man.moused.8;. - Затем отредактируйте /etc/X11/xorg.conf - так, чтобы в нём были следующие строки: + Затем отредактируйте + /etc/X11/xorg.conf, + чтобы в нём были следующие строки: Section "InputDevice" Option "Protocol" "SysMouse" Option "Device" "/dev/sysmouse" ..... Начиная с версии &xorg; 7.4 раздел InputDevice в файле xorg.conf игнорируется, и вместо него используется механизм автоматически определяемых устройств. Чтобы восстановить прежнее поведение, добавьте в раздел ServerLayout или ServerFlags такую строку: Option "AutoAddDevices" "false" Некоторые предпочитают использовать в X устройство /dev/mouse. Чтобы оно работало, файл устройства /dev/mouse должен являться ссылкой на /dev/sysmouse (посмотрите справку по &man.sysmouse.4;). Это можно сделать, добавив следующую строку в /etc/devfs.conf (посмотрите справку по &man.devfs.conf.5;): link sysmouse mouse Ссылка может быть создана путем перезапуска &man.devfs.5; с использованием следующей команды (из под пользователя root): - &prompt.root; /etc/rc.d/devfs restart + &prompt.root; service devfs restart - У моей мыши есть колёсико. Могу ли я его использовать при - работе в X? + У моей мыши есть колёсико. Могу ли я его использовать + при работе в X? - Да. + Да, если X настроена для использования 5-кнопочной + мыши. Для этого добавьте строчки Buttons + 5 и ZAxisMapping 4 5 в + раздел InputDevice файла + /etc/X11/xorg.conf как показано + в этом примере: - Вам нужно указать X, что используется 5-кнопочная мышь. Для - этого просто добавьте строчки Buttons 5 и - ZAxisMapping 4 5 в раздел - InputDevice файла - /etc/X11/xorg.conf. Например, в - вашем файле /etc/X11/xorg.conf секция - InputDevice может принять такой вид: - - - Секция <quote>InputDevice</quote> для мыши с - колёсиком в файле конфигурации &xorg; - - Section "InputDevice" + Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection - - - Пример <quote>.emacs</quote> для простой прокрутки страницы - при помощи мыши с колёсиком (опционально) + Для использования мыши в + Emacs также добавьте в + ~/.emacs следующие строки: - ;; wheel mouse + ;; wheel mouse (global-set-key [mouse-4] 'scroll-down) (global-set-key [mouse-5] 'scroll-up) - + + Как заставить работать тачпад Synaptics в X? + + + + Для его работы понадобится настроить некоторые вещи. + + Чтобы использовать драйвер synaptics из Xorg, для + начала удалите строку moused_enable из + rc.conf. + + Для включения synaptics добавьте следующую строку в + /boot/loader.conf: + + hw.psm.synaptics_support="1" + + Добавьте следующее в + /etc/X11/xorg.conf: + + Section "InputDevice" +Identifier "Touchpad0" +Driver "synaptics" +Option "Protocol" "psm" +Option "Device" "/dev/psm0" +EndSection + + И не забыть добавить следующее в раздел + ServerLayout: + + InputDevice "Touchpad0" "SendCoreEvents" + + + + Как использовать удалённые X-дисплеи? Из соображений обеспечения информационной безопасности открывать удалённые окна на машине по умолчанию запрещено. - Для включения этой возможности просто запустите + Для включения этой возможности запустите X с аргументом : &prompt.user; startx -listen_tcp Что такое виртуальные консоли и как изменить их количество? - Виртуальные консоли, упрощённо говоря, позволяют вам иметь - несколько одновременных сеансов работы с той же самой машиной без + Виртуальные консоли предоставляют несколько + одновременных сеансов работы с той же самой машиной без установки какой бы то ни было сети или запуска X. - При запуске системы после вывода сообщений этапа загрузки на - консоль выдаётся приглашение на вход в систему. Вы можете ввести - своё имя и пароль и начать работать (или играть!) на первой - виртуальной консоли. + При запуске системы после вывода сообщений этапа + загрузки на консоль выдаётся приглашение для входа в + систему. Введите своё имя и пароль, чтобы начать работу + на первой виртуальной консоли. - В какой-то момент вы можете захотеть запустить ещё одну сеанс, - скажем, чтобы заглянуть в документацию по программе, которую вы - запустили или для для чтения электронной почты во время ожидания - завершения передачи данных по FTP. Просто нажмите AltF2 - (удерживая клавишу Alt, нажмите - F2) и вы обнаружите приглашение, ждущее вас на - второй виртуальной консоли! Когда захотите - вернуться к первоначальному сеансу, нажмите Alt - F1. + Чтобы запустить ещё один сеанс, скажем, чтобы + заглянуть в документацию по программе или для чтения + электронной почты во время ожидания завершения передачи + данных по FTP, нажмите F2, удерживая + Alt. Это отобразит приглашение на + второй виртуальной консоли. Чтобы вернуться к + первоначальному сеансу, нажмите Alt + F1. - После установки по умолчанию во &os; задействованы восемь - виртуальных консолей, а комбинации клавиш + По умолчанию во &os; задействованы восемь виртуальных + консолей, а комбинации клавиш + AltF1, Alt - F1, AltF2, - Alt - F3 и так далее служат для переключения - между ними. + F2, Alt + F3 и далее служат для + переключения между ними. - Чтобы увеличить количество консолей, отредактируйте файл - /etc/ttys (посмотрите справку - по &man.ttys.5;), добавив туда записи для терминалов с именами от - ttyv8 до ttyvc - после слов Virtual terminals: + Чтобы увеличить количество виртуальных консолей, + отредактируйте /etc/ttys (смотрите + страницу Справочника &man.ttys.5;), добавив туда записи + для терминалов с именами от ttyv8 до + ttyvc после комментария про + Virtual terminals: # Edit the existing entry for ttyv8 in /etc/ttys and change # "off" to "on". -ttyv8 "/usr/libexec/getty Pc" cons25 on secure -ttyv9 "/usr/libexec/getty Pc" cons25 on secure -ttyva "/usr/libexec/getty Pc" cons25 on secure -ttyvb "/usr/libexec/getty Pc" cons25 on secure +ttyv8 "/usr/libexec/getty Pc" xterm on secure +ttyv9 "/usr/libexec/getty Pc" xterm on secure +ttyva "/usr/libexec/getty Pc" xterm on secure +ttyvb "/usr/libexec/getty Pc" xterm on secure - Используйте из них столько, сколько посчитаете нужным. Чем - больше виртуальных терминалов у вас имеется, тем больше ресурсов - они используют; это может иметь значение, если у вас меньше чем - 8 Мбайт ОЗУ. Вы можете сменить статус консолей с - secure на insecure. + Чем больше виртуальных терминалов, тем больше ресурсов + используется. Это может привести к проблемам на системах + с 8 Мбайт ОЗУ или меньше. Подумайте о смене статуса + консолей с secure на + insecure. + + Во &os; до версии 9.0 использовался тип терминала + cons25 вместо xterm. + При добавлении в /etc/ttys новых + записей используйте существующий формат. + + - Если вы хотите запустить X, вы должны - оставить для него по крайней мере один неиспользуемый (или - выключенный) виртуальный терминал. Таким образов, если вы хотите - иметь приглашения login на всех двенадцати функциональных клавиши, - то вам не повезло — вы можете это сделать только для одиннадцати - из них, если хотите на этой же машине ещё запустить - X-сервер. + Чтобы запустить сервер X, нужно зарезервировать под + него хотя бы один виртуальный терминал со значением + off. Это означает, что под + виртуальные консоли можно отвести только одиннадцать + функциональных клавиш, и ещё одна остаётся за + X-сервером. - Самым простым способом убрать консоль является просто её - выключение. Например, если вы запустили на всех 12 консолях - виртуальные терминалы, как указано выше, и ещё хотите запустить - X, то должны будете изменить параметры двенадцатого виртуального - терминала с: + Например, чтобы запустить X и 11 виртуальных консолей, + нужно настроить двенадцатый виртуальный терминал: - ttyvb "/usr/libexec/getty Pc" cons25 on secure + ttyvb "/usr/libexec/getty Pc" xterm off secure - на: - - ttyvb "/usr/libexec/getty Pc" cons25 off secure - - Если на вашей клавиатуре только десять функциональных клавиш, - то последние строки будут выглядеть так: - - ttyv9 "/usr/libexec/getty Pc" cons25 off secure -ttyva "/usr/libexec/getty Pc" cons25 off secure -ttyvb "/usr/libexec/getty Pc" cons25 off secure - - (Вы также можете просто их удалить.) - - Самым простым (и надёжным) способом активировать виртуальные - консоли является перезагрузка. Однако если вы вовсе не хотите - этого делать, просто остановите X Window System и выполните (как - пользователь root): - - &prompt.root; kill -HUP 1 - - При этом требуется, чтобы вы полностью закрыли X Window, если - она была запущена, до запуска этой команды. Если вы это не - сделаете, ваша система может повиснуть или заблокироваться после - выполнения команды kill. + Самым простым способом активировать виртуальные + консоли является перезагрузка. Как осуществляется доступ к виртуальным консолям из X? Используйте комбинацию клавиш Ctrl Alt Fn - для переключения обратно в виртуальную консоль. Нажатие + для переключения обратно в виртуальную консоль. Нажмите Ctrl Alt F1 - - вернёт вас на первую виртуальную консоль. + , + чтобы вернуться на первую виртуальную консоль. - После того, как вы оказались в текстовой консоли, можете использовать, - как обычно, комбинации + После того, как вы оказались в текстовой консоли, + используйте комбинации Alt Fn для переключения между ними. - Чтобы вернуться в сеанс работы X, вы должны переключиться - в виртуальную консоль, на которой запущена X Window. Если вы - запустили X из командной строки (например, при помощи команды - startx), то сеанс работы X будет привязан - к следующей неиспользуемой виртуальной консоли, а не к той - текстовой консоли, с которой он был запущен. Если у вас - имеется восемь активных виртуальных терминалов, то X будет - работать на девятом, и вам нужно будет воспользоваться комбинацией - - Alt - F9 - - для возврата в X. + Чтобы вернуться в сеанс работы X, переключитесь + в виртуальную консоль, на которой запущена X Window. + Если X был запущен из командной строки с использованием + команды startx, то сеанс работы X будет + привязан к следующей неиспользуемой виртуальной консоли, а + не к той текстовой консоли, с которой он был запущен. + В случае восьми активных виртуальных терминалов X будет + работать на девятом, поэтому используйте комбинацию + Alt + F9. Как запустить XDM во время загрузки? Есть две философские школы, проповедующие различные методы запуска &man.xdm.1;. Последователи одного течения запускают xdm из /etc/ttys (посмотрите &man.ttys.5;), используя приводимый пример, тогда как другие вставляют запуск xdm в скрипт rc.local (посмотрите справку по &man.rc.8;) или X, помещая последний в каталог /usr/local/etc/rc.d. Оба метода равноправны, и один из них может работать в ситуациях, с которыми не справляется другой и наоборот. В обоих случаях результат один и тот же: X выводит графическое приглашение для входа в систему. Плюсом метода с использованием &man.ttys.5; является документирование того, на каком vty будет запущен X и то, что ответственность за перезапуск X-сервера при завершении сеанса работы лежит на процессе &man.init.8;. Метод с использованием &man.rc.8; позволяет просто прекратить работу xdm командой kill xdm, если при запуске X возникли какие-нибудь проблемы. Из &man.rc.8; xdm должен быть запущен - без аргументов, (то есть как даемон). xdm + без аргументов. xdm должен быть запущен после запуска &man.getty.8;, иначе они будут конфликтовать, блокируя консоль. Лучше всего выдержать паузу секунд на 10 и потом запустить xdm. Если xdm запускается из - /etc/ttys, то есть вероятность конфликта - между xdm и &man.getty.8;. Одним из способов - избежать этого является добавление номера vt в - файл /usr/local/lib/X11/xdm/Xservers: + /etc/ttys, остаётся вероятность + конфликта между xdm и &man.getty.8;. + Одним из способов избежать этого является добавление + номера vt в файл + /usr/local/lib/X11/xdm/Xservers: :0 local /usr/local/bin/X vt4 В вышеприведённом случае X-серверу указывается работать на /dev/ttyv3. Заметьте, что номера отличаются на единицу. Дело в том, что X-сервер считает vty от единицы, когда как отсчёт vty в ядре &os; ведётся с нуля. При запуске xconsole выдаётся сообщение Couldn't open console. - Если вы запускаете X с использованием - сценария startx, права на устройство - /dev/console - не изменяются, поэтому такие программы, как - xterm -C и - xconsole, не будут работать. + Если X запускается с + помощью startx, права на + устройство /dev/console + не изменяются, поэтому такие + программы как xterm -C и + xconsole не будут работать. Это зависит от прав доступа, установленных для консоли по умолчанию. В многопользовательской системе вовсе не нужно, чтобы любой пользователь мог выводить информацию на системную консоль. Для пользователей, вошедших в систему через VTY, для решения этой проблемы существует файл &man.fbtab.5;. В общем, раскомментируйте строчку в файле /etc/fbtab (посмотрите справку по &man.fbtab.5;): /dev/ttyv0 0600 /dev/console Этого будет достаточно для того, чтобы всякий, кто вошёл в систему с терминала /dev/ttyv0, имел доступ к консоли. - - Раньше я запускал &xfree86;, работая как обычный пользователь, а - теперь при запуске выдается сообщение о том, что я должен быть - пользователем root! - - - - Все X-серверы должны запускаться пользователем - root, чтобы иметь прямой доступ к вашему - видеооборудованию. Более старые версии &xfree86; - (<= 3.3.6) устанавливали все поставляемые серверы так, что они - автоматически запускались пользователем root (с установленным битом - смены владельца запускаемого процесса). Несомненно, это рискованно, - потому что X-серверы являются большими, сложными программами. Более - новые версии &xfree86; не устанавливают на серверах бит смены - владельца на пользователя root именно по этой - причине. - - Очевидно, что запускать X-сервер, работая как - пользователь root, неправильно и небезопасно. - Есть два способа использовать X, работая как - обычный пользователь. Первый способ заключается в использовании - xdm или другого менеджера дисплеев (к - примеру, kdm); второй способ - в - использовании программы Xwrapper. - - xdm представляет собой даемон, - который обрабатывает входы в систему в графическом режиме. Обычно - он запускается во время загрузки и отвечает за аутентификацию - пользователей и запуск их сеансов; практически это графический - аналог программ &man.getty.8; и &man.login.1;. Более подробная - информация о xdm находится в документации по - &xfree86; и в соответствующем разделе - FAQ. - - Xwrapper является оболочкой для X-сервера; - это маленькая утилита, позволяющая кому-либо запускать X-сервер, и - достаточно безопасная в использовании. Она выполняет некоторую - проверку передаваемых ей в командной строке аргументов, и если всё - в порядке, запускает соответствующий X-сервер. Если по каким-либо - причинам вы не хотите запускать менеджер дисплеев, то эта утилита - вам подойдет. Если у вас установлена полная Коллекция Портов, вы - можете найти этот порт в каталоге - x11/wrapper. - - - - Моя мышь PS/2 в X работает неправильно. - Вполне может быть, что ваша мышь и её драйвер - рассинхронизировались. + Мышь и драйвер могли рассинхронизироваться. В редких + случаях драйвер может ошибочно сообщать о проблемах + синхронизации: - В редких случаях драйвер может ошибочно обнаруживать проблемы - с синхронизацией, и вы будете видеть такие сообщения ядра: - psmintr: out of sync (xxxx != yyyy) - и заметите, что мышь теперь работает неправильно. - - Если это случится, отмените проверку согласования, установив - значение флага для драйвера мыши PS/2 в 0x100. - Войдите в - конфигуратор UserConfig, задав опцию - в приглашении загрузчика: - - boot: -c - - Затем в командной строке UserConfig - наберите: - - UserConfig> flags psm0 0x100 -UserConfig> quit + Если это случилось, отмените проверку согласования, + установив значение флага для драйвера мыши PS/2 в + 0x100. Проще всего это сделать + добавлением hint.psm.0.flags="0x100" в + /boot/loader.conf с перезагрузкой. - - Почему моя мышь PS/2 от MouseSystems не работает? - - - - Было несколько сообщений, что некоторые модели мышей PS/2 от - MouseSystems работают только в режиме высокого - разрешения. В других режимах курсор мыши постоянно - прыгает в верхний левый угол экрана. - - Укажите флаг 0x04 драйверу мыши PS/2 для - перевода её в режим - высокого разрешения. Войдите в UserConfig, - задав опцию в приглашении загрузчика: - - boot: -c - - Затем в командной строке UserConfig - наберите: - - UserConfig> flags psm0 0x04 -UserConfig> quit - - В предыдущем разделе описана возможная причина проблем с - мышью. - - - - Как поменять местами кнопки мыши? - Поместите команду xmodmap - -e "pointer = 3 2 1" в один из ваших скриптов - .xinitrc или - .xsession. + Наберите + xmodmap -e "pointer = 3 2 1". + Добавьте эту команду в + ~/.xinitrc или + ~/.xsession для автоматического + запуска. Как установить экранную заставку и где такие заставки можно найти? - Подробный ответ находится в разделе Загрузочные + Подробный ответ находится в разделе Загрузочные экранные заставки Руководства &os;. - Можно ли в X использовать клавиши Windows, - которые есть на клавиатуре? + Можно ли в X использовать клавишу + Windows? - Да. Всё, что вам нужно сделать, это с помощью &man.xmodmap.1; - задать функции, которые вы хотите к этим клавишам привязать. + Да. Используйте &man.xmodmap.1; для привязки функций + к этим клавишам. - Положим, что все клавиатуры Windows стандартны и + Если все клавиатуры Windows стандартны, то эти три клавиши имеют следующие клавиатурные коды: 115 — клавиша Windows между клавишами Ctrl и Alt с левой стороны 116 — клавиша - Windows справа от клавиши + Windows справа от AltGr 117 — клавиша Menu, слева от клавиши Ctrl, находящейся справа Чтобы заставить левую клавишу Windows набирать запятую, попробуйте выполнить такую команду: &prompt.root; xmodmap -e "keycode 115 = comma" - Чтобы увидеть результат, вам нужно будет перезапустить ваш - оконный менеджер. - Для того, чтобы переопределения клавиш - Windows выполнялось автоматически - каждый раз при запуске X, можно поместить вызов команд - xmodmap в ваш ~/.xinitrc - либо, что предпочтительней, создать файл - ~/.xmodmaprc и включить в него параметры - для xmodmap, по одному на строку, и добавить - в ~/.xinitrc такую строку: + Windows выполнялось автоматически каждый + раз при запуске X, поместите команды + xmodmap в + ~/.xinitrc либо, что + предпочтительней, создайте файл + ~/.xmodmaprc и включите в него + параметры xmodmap по одному на строку, + затем добавьте в ~/.xinitrc такую + строку: xmodmap $HOME/.xmodmaprc - Например, вы можете переопределить эти 3 клавиши так, чтобы они - выполняли функции клавиш F13, F14 - и F15 соответственно. Это позволит - легко привязать их к полезным функциям в приложениях или вашем - менеджере окон, как будет показано далее. + Например, чтобы переопределить эти 3 клавиши так, + чтобы они выполняли функции клавиш F13, + F14 и F15. Это позволит + легко привязать их к полезным функциям в приложениях или + менеджере окон. - Чтобы сделать это, поместите в файл - ~/.xmodmaprc вот такие строки: + Чтобы сделать это, поместите такие строки в файл + ~/.xmodmaprc: keycode 115 = F13 keycode 116 = F14 keycode 117 = F15 - Если, к примеру, вы используете порт - x11-wm/fvwm2, то - можете переопределить клавиши таким образом, что - F13 сворачивает в иконку (или восстанавливает - предыдущие размеры) окна, на которое указывает курсор, - F14 перемещает окно с курсором на передний план - или, если оно уже впереди, возвращает обратно, а - F15 вызывает главное меню приложения - Workplace, даже если курсор находится не на рабочем - столе, что бывает полезно, если нет - ни одного видимого кусочка рабочего стола (к тому же логотип на - клавише соответствует этой функции). + При использовании оконного менеджера + x11-wm/fvwm2 клавиши можно + переопределить так, чтобы F13 сворачивал + в иконку (и восстанавливал предыдущий размер) то окно, на + которое указывает курсор, F14 перемещал + окно с курсором на передний план или, если оно уже + впереди, возвращал обратно, а F15 вызывал + главное меню Workplace, даже если курсор находится не на + рабочем столе, что бывает полезно, когда не видно ни + одного кусочка рабочего стола. - Вот строки из ~/.fvwmrc, с помощью которых - достигаются описанные выше функции: + Следующие записи в ~/.fvwmrc + позволяют достичь описанных выше функций: Key F13 FTIWS A Iconify Key F14 FTIWS A RaiseLower Key F15 A A Menu Workplace Nop Как заставить работать аппаратное ускорение 3D-графики для &opengl;? - Наличие 3D-ускорения зависит от версии используемого вами - сервера &xorg; и типа графического адаптера. Если у - вас адаптер nVidia, то вы можете использовать бинарные файлы - драйверов для &os;, установив один из следующих портов: + Наличие 3D-ускорения зависит от версии сервера &xorg; + и типа графического адаптера. Для адаптера nVidia + используйте двоичный драйвер для &os;, установив один из + нижеследующих портов: - - - Последние версии адаптеров nVidia поддерживаются - портом x11/nvidia-driver. - - - Адаптеры nVidia, такие как GeForce2 MX/3/4, - поддерживаются драйверами серии 96XX, доступными в - порте x11/nvidia-driver-96xx. - - - Более старые адаптеры, такие как GeForce and - RIVA TNT, поддерживаются драйверами серии 71XX, - доступными в порте x11/nvidia-driver-71xx. - - + Последние версии адаптеров nVidia поддерживаются + портом x11/nvidia-driver. + Более старые драйверы доступны как + x11/nvidia-driver-###. + nVidia предоставляет подробную информацию о том, какие - адаптеры поддерживаются тем или иным драйвером. Эта - информация доступна непосредственно с их сайта: http://www.nvidia.com/object/IO_32667.html. + адаптеры поддерживаются тем или иным драйвером, + на своём сайте: http://www.nvidia.com/object/IO_32667.html. - Для адаптеров Matrox G200/G400 вам следует + Для адаптеров Matrox G200/G400 следует попробовать порт x11-servers/mga_hal. Для ATI Rage 128 и Radeon посмотрите страницы Справочника &man.ati.4x;, &man.r128.4x; и &man.radeon.4x;. - - Для адаптеров 3dfx Voodoo 3, 4, 5, и Banshee есть - порт x11-servers/driglide. Работа в сети Где можно найти информацию о бездисковой загрузке? Бездисковая загрузка означает, что машина с &os; загружается по сети и читает необходимые файлы с сервера, а не со своего диска. Подробное описание есть в соответствующей главе Руководства. Может ли машина с &os; использоваться как маршрутизатор? - Да. Пожалуйста, обратитесь к разделу Руководства, + Да. Обратитесь к разделу Руководства, посвящённому сложным вопросам работы в сети, особенно в той части, что касается маршрутизации и маршрутизаторов. Можно ли подключить машину с &windows; к Internet с помощью &os;? Как правило, те, кто задают такие вопросы, имеют дома два компьютера, один с &os;, а другой с какой-то версией &windows;. Идея состоит в использовании &os; для подключения к Internet, а затем осуществлять выход в Internet из &windows; через &os;. На самом деле это просто частный случай предыдущего вопроса, который хорошо отработан. - Если для подключения к Internet вы используете - коммутируемое соединение, то &man.ppp.8; режима - пользователя имеет параметр . Если вы - запустите &man.ppp.8; с параметром , - установив в файле /etc/rc.conf переменную + Для подключения к Internet с использованием + коммутируемого соединения нужно указать параметр + и установить в файле + /etc/rc.conf переменную gateway_enable в значение - YES и правильно настроите машину с - &windows;, то всё должно прекрасно заработать. Для получения - дополнительной информации, пожалуйста, обратитесь к страницам + YES. Для получения + дополнительной информации обратитесь к страницам справочной системы по команде &man.ppp.8; или разделу Руководства о PPP режима пользователя. - Если вы используете PPP режима ядра, или у вас - Ethernet-подключение к Internet, то нужно использовать - &man.natd.8;. Пожалуйста, обратитесь к разделу о natd - Руководства для получения вводной информации. + Если подключение к Internet выполняется через + Ethernet, используйте &man.natd.8;. Вводная информация + находится в разделе Руководства natd. - Поддерживает ли &os; протоколы SLIP и PPP? + Поддерживает ли &os; протокол PPP? - Да. Обратитесь к страницам справочника по командам - &man.slattach.8;, &man.sliplogin.8;, &man.ppp.8;, и &man.pppd.8;. - &man.ppp.8; и &man.pppd.8; могут обслуживать как входящие, так и - исходящие соединения, когда как &man.sliplogin.8; имеет дело - исключительно со входящими соединениям, а &man.slattach.8; только - с исходящими. + Да. &man.ppp.8; может обслуживать как входящие, так и + исходящие соединения. Более подробная информация об их использовании находится в разделе - Руководства о протоколах PPP и SLIP. - - Если вы имеете доступ в Internet только через командную строку - оболочки, вам может подойти пакадж net/slirp. - С его помощью можно получить (ограниченный) доступ к таким - службам, как FTP и http прямо с вашей машины. + Руководства о протоколе PPP. Поддерживает ли &os; технологию NAT или Masquerading? - Да. Если вы собираетесь использовать NAT с пользовательским - соединением PPP, пожалуйста, обратитесь к разделу Руководства о - пользовательском PPP. Если же вы хотите использовать NAT - вместе с другим типом сетевого подключения, пожалуйста, взгляните - на раздел о - natd Руководства. + Да. Для получения указаний по использованию NAT через + подключение PPP обратитесь к разделу + Руководства о PPP. Чтобы использовать NAT вместе + с другим типом сетевого подключения, взгляните на раздел + Руководства natd. - - Как я могу соединить две &os; системы с помощью - параллельного соединения, используя PLIP? - - - - Пожалуйста, обратитесь к разделу Руководства о PLIP. - - - - Как настроить алиас в сети Ethernet? Если алиас находится в той же самой сети, что и уже - настроенный на интерфейсе адрес, то к команде для - &man.ifconfig.8; допишите netmask 0xffffffff - примерно следующим образом: + настроенный на интерфейсе адрес, допишите к этой команде + netmask 0xffffffff: - &prompt.root; ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff + &prompt.root; ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff - В противном случае просто задайте сетевой адрес и маску + В противном случае укажите сетевой адрес и маску обычным образом: - &prompt.root; ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00 + &prompt.root; ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00 - Для получения подробной информации обращайтесь к Руководству + Дополнительная информация находится в Руководстве &os;. - - Как заставить адаптер 3C503 использовать другой тип сетевого - разъёма? - - - - Если вы хотите задействовать другой разъём, то должны указать - дополнительный параметр при вызове команды &man.ifconfig.8;. - Разъёмом по умолчанию является link0. Чтобы - задействовать разъём AUI, а не BNC, используйте link2. - Эти флаги должны быть указаны с помощью переменных ifconfig_* - в файле /etc/rc.conf (посмотрите справку по - &man.rc.conf.5;). - - - - - - У меня проблемы при работе NFS во &os;. - - - - Некоторые сетевые адаптеры работают (мягко говоря) хуже, чем - другие, что может иногда вызывать проблемы при работе приложений - типа NFS, интенсивно использующих сеть. - - Подробности описаны в - соответствующей главе Руководства, посвящённой NFS. - - - - Почему я не могу смонтировать диск &linux; по NFS? Некоторые версии NFS для &linux; поддерживают запросы на монтирование только с привилегированного порта; попробуйте выполнить следующую команду: &prompt.root; mount -o -P linuxbox:/blah /mnt - - Почему я не могу смонтировать диск &sun; по NFS? - - - - Рабочие станции &sun; под управлением - &sunos; 4.X поддерживают - запросы на монтирование только с привилегированного порта; - попробуйте следующую команду: - - &prompt.root; mount -o -P sunbox:/blah /mnt - - - - Почему mountd продолжает выдавать сообщения can't change attributes и bad exports list на моём сервере NFS, работающем под управлением &os;? В большинстве случаев проблема заключается в недостаточном понимании корректного формата файла - /etc/exports. Пожалуйста, просмотрите ещё раз + /etc/exports. Просмотрите ещё раз справочную информацию по &man.exports.5; и раздел об NFS в Руководстве, - особенно в части настройки + особенно в части настройки NFS. - - Проблемы при связи по PPP с машинами NeXTStep. - - - - Попробуйте отменить все расширения TCP в файле - /etc/rc.conf (посмотрите справку - по &man.rc.conf.5;), изменив значение следующей переменной - в NO: - - tcp_extensions=NO - - Маршрутизаторы Annex фирмы Xylogic не работают по этой же - причине, поэтому при подключении к ним вам нужно проделать то же - самое. - - - - Как включить поддержку multicast IP? - По умолчанию &os; поддерживает работу с многоадресного - сетевого вещания. Если вы хотите использовать ваш компьютер как - маршрутизатор многоадресного трафика, вам нужно перекомпилировать - ядро с включенной опцией MROUTING и запустить - &man.mrouted.8;. Во &os; во время загрузки будет запускаться - &man.mrouted.8;, если переменная mrouted_enable - в файле /etc/rc.conf установлена в - значение YES. - - - В последних версиях &os; даемон маршрутизации multicast - &man.mrouted.8; и утилиты &man.map-mbone.8; и &man.mrinfo.8; - удалены из состава основной системы. Эти программы теперь - доступны из Коллекции Портов &os; в виде порта net/mrouted. - - - Приложения MBONE находятся в собственной категории портов, - mbone. - Если вы ищете приложения для организации конференций - vic и vat, посмотрите - там! + Установите пакет net/mrouted и + добавьте mrouted_enable="YES" в + /etc/rc.conf для запуска этого + сервиса во время загрузки. - - Какие сетевые адаптеры сделаны на наборе микросхем DEC PCI? - - - - Вот список, составленный - Гленом Фостером (Glen Foster) gfoster@driver.nsta.org, - с некоторыми незначительными добавлениями: - - - Сетевые карты созданные на основе наборе микросхем - DEC PCI - - - - - Производитель - Модель - - - - - - ASUS - PCI-L101-TB - - - - Accton - ENI1203 - - - - Cogent - EM960PCI - - - - Compex - ENET32-PCI - - - - D-Link - DE-530 - - - - Dayna - DP1203, DP2100 - - - - DEC - DE435, DE450 - - - - Danpex - EN-9400P3 - - - - JCIS - Condor JC1260 - - - - Linksys - EtherPCI - - - - Mylex - LNP101 - - - - SMC - EtherPower 10/100 (Модель 9332) - - - - SMC - EtherPower (Модель 8432) - - - - TopWare - TE-3500P - - - - Znyx (2.2.x) - ZX312, ZX314, ZX342, ZX345, ZX346, ZX348 - - - - Znyx (3.x) - ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444, - ZX474, ZX478, ZX212, ZX214 (10mbps/hd) - - - -
-
-
- - Почему я должен использовать FQDN для хостов не в моей сети? - За ответом на этот вопрос обращайтесь к Руководству + За ответом на этот вопрос обращайтесь к Руководству &os;. Permission denied для любых действий, связанных с работой сети. - Если вы компилировали ядро с опцией - IPFIREWALL, имейте в виду, что политикой по - умолчанию является запрет прохождения + Если ядро скомпилировано с параметром + IPFIREWALL, имейте в виду, что + политикой по умолчанию является запрет прохождения всех пакетов, которые явно не разрешены. - Если вы случайно неверно отконфигурировали межсетевой экран, - то для восстановления работоспособность сети дайте такую команду, - войдя суперпользователем: + Если межсетевой экран был случайно сконфигурирован + неверным образом, то для восстановления работоспособности + сети наберите такую команду из-под пользователя + root: &prompt.root; ipfw add 65534 allow all from any to any - Также вы можете задать + Рассмотрите использование firewall_type='open' в файле /etc/rc.conf. - Более подробная информация о конфигурировании межсетевого - экрана в &os; находится в соответствующей - главе Руководства. + Дополнительная информация о настройке данного + межсетевого экрана находится в соответствующей + главе Руководства. Почему моё правило fwd для ipfw по перенаправлению сервиса на другую машину не работает? - Возможно, потому что вы хотите выполнять трансляцию сетевых - адресов (NAT), а не просто перенаправлять пакеты. Правило - fwd делает точно то, что означает; оно - перенаправляет пакеты. Данные внутри пакета оно не меняет. Пусть, - скажем, у нас имеется правило такого вида: + Возможно, потому, что вместо простого перенаправления + пакетов нужна трансляция сетевых адресов (NAT). Правило + fwd только перенаправляет пакеты и данные + внутри него не меняет. Рассмотрим такое правило: 01000 fwd 10.0.0.1 from any to foo 21 - Когда пакет с адресом назначения foo - достигает машины с этим правилом, то он перенаправляется на - 10.0.0.1, но в нём остаётся адрес - назначения foo! Адрес назначения - пакета не меняется на - 10.0.0.1. Большинство машин, скорее - всего, отбросят полученный пакет, имеющий адрес назначения, им не - соответствующий. Таким образом, правило fwd не - часто работает так, как ожидает пользователь. Такое поведение - является особенностью, а не ошибкой. + Когда пакет с адресом назначения + foo достигает машины с этим + правилом, пакет перенаправляется на + 10.0.0.1, но в нём остаётся + адрес назначения foo. Адрес + назначения пакета не меняется на + 10.0.0.1. Большинство машин, + скорее всего, отбросят полученный пакет, имеющий адрес + назначения, им не соответствующий. Таким образом, правило + fwd не часто работает так, как ожидает + пользователь. Такое поведение является особенностью, а не + ошибкой. - Обратитесь к FAQ о + Обратитесь к FAQ о перенаправлении сервисов, руководству по &man.natd.8; или одной из нескольких утилит для перенаправления из Коллекции Портов для того, чтобы сделать это правильно. Как можно перенаправить запросы с одной машины на другую? - Вы можете перенаправить запрос на FTP (или другой сервис) с + Запросы FTP и других сервисов можно перенаправить с помощью порта sysutils/socket. - Просто замените командную строку запуска сервиса на вызов - socket: + Замените запись для этого сервиса в + /etc/inetd.conf на вызов + socket, как показано в этом примере для + ftpd: ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp где ftp.example.com и - ftp являются соответственно хостом и - портом для перенаправления. + ftp являются соответственно + хостом и портом для перенаправления. Где можно найти средства управления сетевым трафиком? Для &os; имеются три средства управления трафиком. &man.dummynet.4; интегрирован в систему &os; как составная часть &man.ipfw.4;. ALTQ включен во &os; как составная часть &man.pf.4;. Bandwidth Manager компании Emerging Technologies является коммерческим продуктом. Почему появляются сообщения /dev/bpf0: device not configured? - Вы запускаете программу, которой требуется Berkeley Packet - Filter (&man.bpf.4;), однако его нет в вашем ядре. - Перекомпилируйте ядро, добавив в его конфигурационный файл - следующую строку: + Для работы приложения требуется Berkeley Packet + Filter (&man.bpf.4;), однако это устройство удалено из + вашего ядра. Постройте новое ядро с добавлением в его + конфигурационный файл следующей строки: device bpf # Berkeley Packet Filter Как смонтировать диск &windows;-машины в моей локальной сети, как это делает smbmount в &linux;? Используйте пакет SMBFS. В него включён набор изменений в ядре и пользовательские программы. Программы и информация доступны как &man.mount.smbfs.8; и входят в состав базовой системы. - Что значат эти сообщения: Limiting icmp/open - port/closed port response в моих журнальных - файлах? + Что значат сообщения Limiting icmp/open + port/closed port response в файле журнала? - Это ядро сообщает вам, что имела место некоторая активность, - приводящая к посылке большего количества ответных пакетов ICMP или - сбросов TCP (RST), чем, как предполагается, это следует делать. - Ответы ICMP часто генерируются в результате попыток подключения к - незанятым портам UDP. Сбросы TCP генерируются в результате попыток - подключения к закрытым портам TCP. Кроме всяких прочих, такие - сообщения могут быть вызваны следующими действиями: + Данное сообщение ядра означает, что имеет место + некоторая активность, приводящая к отправке большого + количества ответных пакетов ICMP или сбросов TCP (RST). + Ответы ICMP часто генерируются в результате попыток + подключения к незанятым портам UDP. Сбросы TCP + генерируются в результате попыток подключения к закрытым + портам TCP. Помимо всего прочего, такие сообщения могут + быть вызваны следующими действиями: Лобовая атака типа отказ в обслуживании DoS (в отличие от атак в один пакет, которые используют конкретную брешь в защите). Сканирование портов в попытке осуществить подключение к большому количеству портов (в отличие от проб нескольких известных портов). - Первое число в сообщении указывает вам, какое количество пакетов - ядро посылало бы при отсутствии ограничений, а второе число - указывает лимит. Вы можете управлять этим ограничением при помощи - системной переменной net.inet.icmp.icmplim - приводимым ниже способом, где 300 является - ограничением на количество посылаемых пакетов в секунду: + Первое число в сообщении показывает количество пакетов, + которое ядро посылало бы при отсутствии ограничений, а + второе число указывает лимит. Этот лимит меняется при + помощи net.inet.icmp.icmplim. В этом + примере устанавливается лимит на 300 + пакетов в секунду: - &prompt.root; sysctl -w net.inet.icmp.icmplim=300 + &prompt.root; sysctl net.inet.icmp.icmplim=300 - Если вы не хотите видеть подобные сообщения в журнальных - файлах, но хотите использовать это ограничение в ядре, то можете - использовать системную переменную - net.inet.icmp.icmplim_output для подавления - вывода, как это показано здесь: + Для выключения подобных сообщений без отключения + самого ограничения используйте + net.inet.icmp.icmplim_output, чтобы + подавить вывода: - &prompt.root; sysctl -w net.inet.icmp.icmplim_output=0 + &prompt.root; sysctl net.inet.icmp.icmplim_output=0 - И наконец, если вы хотите выключить это ограничение, то можете - установить значение системной переменной - net.inet.icmp.icmplim (смотрите пример выше) - равным 0. Выключение этого лимита не - приветствуется по причинам, перечисленным выше. + И наконец, чтобы полностью выключить это ограничение, + сделайте net.inet.icmp.icmplim равным + 0. Выключение этого лимита не + приветствуется по причинам, изложенным выше. Что это за сообщения arp: unknown hardware address format? - Это означает, что какое-то устройство в вашей локальной сети - использует MAC-адрес в формате, не распознаваемом &os;. Скорее - всего, это происходит из-за того, что кто-то в сети - экспериментирует с сетевым адаптером. Чаще всего это происходит - в сетях с кабельными модемами. Это безобидно и не должно влиять на - производительность машины с &os;. + Это означает, что какое-то устройство в локальной сети + Ethernet использует MAC-адрес в формате, неизвестном &os;. + Вероятно, это происходит из-за того, что кто-то в сети + экспериментирует с сетевым адаптером. Чаще всего это + происходит в сетях с кабельными модемами. Это безобидно и + не должно влиять на производительность системы &os;. Почему я постоянно вижу сообщения вида 192.168.0.10 is on fxp1 but got reply from 00:15:17:67:cf:82 on rl0 и как мне их отключить? Это так, потому что пакет приходит извне сети, чего не должно быть. Чтобы отключить эти сообщения, установите net.link.ether.inet.log_arp_wrong_iface в значение 0. - - - - Я только что установил CVSup, - но при попытке его запустить - получил сообщения об ошибках. Что не так? - - - - Сначала посмотрите, есть ли среди получаемых вами сообщений - то, что показано ниже. - - /usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found - - Ошибки, подобные этой, возникают при установке порта - net/cvsup на машину без - пакета &xorg;. Если вы хотите - использовать GUI, имеющийся в - CVSup, то вам нужно теперь установить - &xorg;. Либо, если вы хотите - использовать CVSup только из командной - строки, то вы должны удалить ранее установленный пакадж. Затем - установите порт net/cvsup-without-gui или net/csup. Если у вас установлена одна - из последних версий &os;, то вы можете использовать &man.csup.1;. - Более подробно это описано в разделе о CVSup - Руководства. - -
Безопасность Что означает термин sandbox (песочница)? Sandbox - это термин, используемый при обеспечении безопасности. Он имеет два значения: - Процесс, помещённый внутрь некоторых виртуальных стен, - которые предназначены для того, чтобы предотвратить взлом всей - системы в результате взлома этого конкретного процесса. + Процесс, помещённый внутрь некоторых виртуальных + стен, которые предназначены для предотвращения взлома + всей системы в результате взлома этого конкретного + процесса. - Говорится, что процесс может играть в - границах этих стен. Что бы этот процесс ни делал, он эти стены - разрушить не может, поэтому вам не нужен его особый аудит, - чтобы с уверенностью сказать, насколько его работа безопасна - для системы. + Процесс может работать в границах этих стен. + Поскольку, что бы этот процесс ни делал, он эти стены + разрушить не может, особый аудит его кода не нужен для + того, чтобы с уверенностью сказать, насколько его + работа безопасна для системы. - Стеной может служить, например, идентификатор пользователя. - Вот определение, даваемое на страницах справочной системы - &man.security.7; и &man.named.8;. + Стеной может служить, например, идентификатор + пользователя. Вот определение, даваемое на страницах + Справочника &man.security.7; и &man.named.8;. Рассмотрим, например, службу ntalk (смотрите &man.inetd.8;). Раньше эта служба запускалась с идентификатором пользователя root, а сейчас — tty. Пользователь tty — это та песочница, которая осложняет взлом системы через ntalk посредством использования этого идентификатора пользователя. - Процесс, помещённый внутрь симулируемой машины. Это даёт - больший уровень безопасности. В общем это означает, что + Процесс, помещённый внутрь симулируемой машины. Это + даёт больший уровень безопасности. Это означает, что некто, взломавший процесс, может думать, что может сломать и систему в целом, однако фактически может сломать только симулятор этой машины и не может модифицировать никаких реальных данных. Самым распространённым способом достигнуть такого результата является построение имитирующего окружения в каталоге и затем запуск процессов в этом каталоге через chroot (т.е. задав этот каталог в качестве / для этого процесса, а не реальный / всей системы). Другим часто используемым методом является монтирование низлежащей файловой системы в режиме "только для чтения" и затем создание уровня файловой системы поверх неё, что даёт процессу видимость доступа по записи на ту файловую систему. Процесс будет полагать, что может записывать в те файлы, но это будет единственный процесс, который увидит результат — другие процессы не будут этого делать ни в коем случае. Попытка сделать такой тип песочницы настолько прозрачна, что пользователь (или взломщик) даже не поймёт, что он в ней находится. В &unix; реализованы два типа песочниц. Один на уровне процесса, и один на уровне идентификаторов пользователей. Каждый процесс в &unix; полностью защищён от других процессов. Никакой процесс не может модифицировать адресное пространство - другого процесса. Это отличается от &windows;, где процесс может - легко записать что-либо в адресное пространство другого процесса, - что приводит к аварийным ситуациям. + другого процесса. В &unix; каждым процессом владеет некоторый идентификатор пользователя. Если этот пользователь не root, он ограждает процесс от других, владельцами которых являются другие пользователи. Этот идентификатор используется также для защиты данных на диске. Что такое уровень защиты (securelevel)? - Уровень защиты является механизмом обеспечения безопасности, - реализованным в ядре. В общем, когда уровень защиты больше нуля, + securelevel является механизмом + обеспечения безопасности, который реализован в ядре. Когда + уровень защиты больше нуля, ядро ограничивает выполнение некоторых операций; даже - администратору (то есть пользователю root) - запрещается их выполнять. На момент написания этого текста - механизм уровня защиты может, кроме всего прочего, ограничивать + суперпользователю root + запрещается их выполнять. Механизм уровня защиты ограничивает возможности по: снятию некоторых флагов с файлов, таких, как schg (системный флаг неизменяемости), записи в память ядра через устройства /dev/mem и /dev/kmem, загрузке модулей ядра и изменению правил сетевого экрана. - Для выяснения состояния уровня защиты в работающей системе - просто выполните следующую команду: + Для выяснения состояния уровня защиты в работающей + системе: - &prompt.root; sysctl kern.securelevel + &prompt.root; sysctl -n kern.securelevel - Результат будет содержать название &man.sysctl.8;-переменной (в - нашем случае это kern.securelevel) и число. - Последнее и является текущим значением уровня защиты. Если оно - положительно (то есть больше нуля), то по крайней мере некоторые + Результат содержит текущее значение уровня защиты. + Если оно больше нуля, то по крайней мере некоторые из защит этого механизма включены. - Вы не можете понизить уровень защиты работающей системы; - возможность сделать это противоречит назначению этого механизма. - Если вам нужно выполнить работу, которая требует не положительный - уровень защиты (к примеру, выполнение - installworld или смена даты), - вам потребуется изменить настройки уровня защиты системы в файле - /etc/rc.conf (вам нужно обратить внимание на - переменные kern_securelevel и - kern_securelevel_enable) и перезагрузить + Уровень защиты работающей системы не может быть понижен, + поскольку это противоречит назначению этого механизма. + Если для задачи требуется неположительный + уровень защиты, измените значения переменных + kern_securelevel и + kern_securelevel_enable в файле + /etc/rc.conf и перезагрузите систему. Более подробная информация об уровнях защиты и о том, какие специфические действия выполняют все уровни, может быть найдена на справочных страницах о &man.init.8;. Уровень защиты не является панацеей; в нём есть много недостатков. Зачастую он даёт обманчивое чувство безопасности. Одной из самых больших проблем является то, что для его эффективной работы все файлы, используемые в процессе загрузки, должны быть защищены. Если атакующий сможет заставить систему выполнять свой код до установки уровня защиты (что происходит достаточно поздно во время процесса загрузки, так как некоторые вещи, выполняемые системой в это время, не могут быть сделаны при повышенном уровне защиты), то эта защита может быть отключена. Хотя такая задача по защите всех файлов, используемых в процессе загрузки, технически вполне осуществима, если это будет сделано, то поддержка системы станет кошмаром, так как для изменения конфигурационного файла придётся останавливать систему, переводя её по крайней мере в однопользовательский режим. Это обстоятельство, а также ряд других, часто обсуждаются в - списках рассылки, в частности, во &a.security;. Пожалуйста, - поищите в - архивах более подробное обсуждение. Некоторые надеются, - что механизм уровней защиты вскоре отомрёт, а на его смену придёт - более гибкий механизм, но пока всё это туманно. - - Считайте себя предупреждёнными. + списках рассылки, в частности, во &a.security;. + Поищите в + архивах более подробное обсуждение. Предпочтителен + более гибкий механизм. BIND (named) работает на одном из портов с большим номером. Что происходит? Для исходящих запросов BIND использует случайно выбираемый порт с большим номером. В последних версиях при каждом запросе выбирается новый случайный порт UDP. Это может вызвать проблемы в некоторых сетевых конфигурациях, особенно если фаервол блокирует входящие UDP пакеты на - определенных портах. Если вы хотите обеспечить хождение - пакетов через фаервол, то вы можете попробовать параметры + определенных портах. Чтобы обеспечить прохождение + пакетов через фаервол, попробуйте параметры avoid-v4-udp-ports и avoid-v6-udp-ports, чтобы предотвратить случайный выбор номеров портов, пересекающихся с блокируемым диапазоном. Если в /etc/namedb/named.conf указан номер порта (такой как 53) в параметре query-source или query-source-v6, то случайный выбор порта использоваться не будет. Настоятельно рекомендуется, чтобы эти параметры не использовались для указания фиксированных номеров порта. - Кстати, поздравляем. Прекрасно, что вы читаете вывод команды - &man.sockstat.1; и обращаете внимание на аномалии! + Кстати, поздравляем. Прекрасно, что вы читаете вывод + команды &man.sockstat.1; и обращаете внимание на + аномалии! - Даемон sendmail ждёт соединений как - на стандартном порту 25, так и на + Даемон Sendmail ждёт + соединений как на стандартном порту 25, так и на порту 587! Что происходит? - Последние версии sendmail - поддерживают - механизм посылки почты, который работает по порту 587. Эта - возможность пока широко не используется, но ее популярность - растет. + Последние версии Sendmail + поддерживают механизм посылки почты, который работает по + порту 587. Эта возможность пока широко не используется, + но её популярность растёт. - Что это за пользователь toor с UID 0? Я + Что это за пользователь toor с UID 0? Я подвергся взлому? - Не волнуйтесь, toor является - альтернативным административным пользователем - (toor - это root, записанный задом наперед). Раньше он создавался - при установке командного интерпретатора &man.bash.1;, однако - теперь он создается по умолчанию. Его предполагается использовать - с нестандартным командным интерпретатором, так чтобы вам не нужно - было менять используемый по умолчанию командный процессор для - пользователя root. Это важно, так как - оболочки, не являющиеся частью дистрибутива системы (например, - командный процессор, устанавливаемый из портов или пакаджей), - скорее всего, устанавливаются в каталог /usr/local/bin, который по + Не волнуйтесь, toor является + альтернативной учётной записью + суперпользователя (toor - это root, записанный задом + наперёд). Его предлагается использовать с нестандартным + командным интерпретатором, так чтобы не нужно было менять + используемый по умолчанию командный процессор для + root. Это + важно, так как оболочки, не являющиеся частью дистрибутива + системы, устанавливаются в каталог + /usr/local/bin, который по умолчанию располагается в другой файловой системе. Если - командный процессор для пользователя root - располагается в /usr/local/bin, и /usr (или другая файловая система, - содержащая /usr/local/bin) - по какой-либо причине не - смонтирована, то root не сможет войти в - систему для исправления этой проблемы (хотя если вы перезагрузите - систему в однопользовательский режим, вы сможете указать командный - процессор). + командный процессор для пользователя root располагается в + /usr/local/bin и файловая система, + содержащая /usr/local/bin, не + смонтирована, то root не сможет войти в + систему для исправления проблемы и понадобится + перезагрузиться в однопользовательском режиме, чтобы + указать командный процессор. - Некоторые используют toor для выполнения - повседневных административных работ с нестандартным командным - процессором, оставляя root со стандартной - оболочкой для работы в однопользовательском режиме или выполнения - аварийных работ. По умолчанию вы не сможете войти в систему как - пользователь toor, потому что у него нет - пароля, так что, если вы хотите его использовать, - зарегистрируйтесь в системе как root и задайте - пароль для пользователя toor. + Некоторые используют toor для выполнения + повседневных административных работ с нестандартным + командным процессором, оставляя root со стандартной + оболочкой для работы в однопользовательском режиме или + выполнения аварийных работ. По умолчанию пользователь не + сможет войти в систему как toor, потому что для него + не указан пароль, поэтому войдите из-под root и установите пароль + для toor до того + как использовать его для входа в систему. - - - - Почему suidperl работает неправильно? - - - - В целях обеспечения безопасности suidperl - по умолчанию не устанавливается. Если вы хотите, чтобы команда - suidperl была установлена во время обновления - из исходных текстов, отредактируйте - /etc/make.conf, добавив - ENABLE_SUIDPERL=true перед - сборкой perl. - - PPP Не могу заставить работать ppp. Что я делаю не так? - Первым делом прочтите страницы справочника, посвящённые - &man.ppp.8;, а также соответствующий раздел - Руководства. Включите протоколирование следующей командой: + Первым делом прочтите страницу Справочника &man.ppp.8; + и раздел + PPP Руководства. Для помощи с устранением + неполадок включите протоколирование следующей командой: set log Phase Chat Connect Carrier lcp ipcp ccp command - Эта команда может быть набрана в командной строке - &man.ppp.8; или она может находиться в конфигурационном - файле /etc/ppp/ppp.conf (начало секции - default - лучшее для неё место. - Удостоверьтесь, что файл /etc/syslog.conf - (посмотрите справку по &man.syslog.conf.5;) содержит + Эту команду можно набрать в командной строке + &man.ppp.8; или ввести в начале раздела + default в + /etc/ppp/ppp.conf. Проверьте, что + файл /etc/syslog.conf содержит указанные ниже строки и существует файл /var/log/ppp.log: !ppp *.* /var/log/ppp.log - Теперь вы сможете найти полную информацию о происходящем в - файле протокола. Не беспокойтесь, если не всё вам будет там - понятно. Если вы будете пользоваться чьей-то помощью, - протокол вам пригодится. + Полную информацию о происходящем можно найти в файле + протокола. Не беспокойтесь, если не всё будет понятно, + ведь это может быть понятно кому-то ещё. Ppp просто зависает, когда я его запускаю - Обычно это происходит, когда не может быть определено имя - вашего хоста. Наилучший способ исправить это - удостовериться, - что файл /etc/hosts используется вашим - резолвером. Отредактируйте файл - /etc/host.conf, поместив - на первое место строчку hosts. Затем просто - добавьте записи о вашей машине в файл - /etc/hosts. Если у вас нет локальной - сети, измените строку localhost: + Обычно это происходит, когда имя хоста не может быть + преобразовано в адрес. Наилучший способ исправить это - + удостовериться, что файл /etc/hosts + читается первым. Для этого нужно проверить, что в файле + /etc/host.conf на первом месте стоит + строчка hosts. Затем добавьте в файл + /etc/hosts запись о локальной машине. + Если локальная сеть отсутствует, измените строку для + localhost: 127.0.0.1 foo.example.com foo localhost - В противном случае просто добавьте ещё одну запись о вашем - хосте. Обратитесь к соответствующим страницам справочника за + В противном случае добавьте для хоста ещё одну запись. + Обратитесь к соответствующим страницам Справочника за подробным описанием. - Если вы выполнили эти указания, вы сможете успешно выполнить - команду ping -c1 `hostname`. + В конце убедитесь, что эта команда выполняется + успешно: ping -c1 `hostname`. Ppp не звонит в режиме -auto - Во-первых, проверьте, что у вас есть маршрут по умолчанию. - Выполнив команду netstat -rn (посмотрите - справку по &man.netstat.1;), вы должны увидеть две строки - такого вида: + Сначала проверьте наличие маршрута по умолчанию. + Команда netstat -rn должна показать + две строки: Destination Gateway Flags Refs Use Netif Expire default 10.0.0.2 UGSc 0 0 tun0 10.0.0.2 10.0.0.1 UH 0 0 tun0 - Здесь предполагается, что вы использовали адреса, - приведённые в Руководстве, Справочнике или файле - ppp.conf.sample. Если у вас нет маршрута - по умолчанию, это может быть из-за того, что вы забыли добавить - строку HISADDR в файл ppp.conf. + Если нет маршрута по умолчанию, убедитесь, что строка + HISADDR была добавлена в + /etc/ppp/ppp.conf. - Другая причина отсутствия маршрута по умолчанию может - крыться в том, что вы ошибочно установили маршрут по умолчанию - в вашем файле /etc/rc.conf (посмотрите - справку по &man.rc.conf.5;), и пропустили указанную ниже - строку в ppp.conf: + Другая причина отсутствия строки с маршрутом по + умолчанию может крыться в том, что маршрут по умолчанию + был добавлен в /etc/rc.conf, и эта + строка отсутствует в + /etc/ppp/ppp.conf: delete ALL - В таком случае обратитесь к соответствующему разделу + В таком случае обратитесь к соответствующему разделу Руководства. Что означает сообщение No route to host? - Эта ошибка появляется из-за того, что в файле - /etc/ppp/ppp.linkup отсутствует - следующий раздел: + Обычно эта ошибка появляется из-за отсутствия в файле + /etc/ppp/ppp.linkup следующего + раздела: MYADDR: delete ALL add 0 0 HISADDR - Он необходим, если ваш IP адрес выделяется динамически или - адрес маршрутизатора вам не известен. Если вы используете - интерактивный режим, вы можете набрать следующие команды - после входа в пакетный режим (пакетный - режим идентифицируется заглавными буквами PPP - в приглашении): + Он необходим только для динамического IP адреса или + когда адрес маршрутизатора не известен. При использовании + интерактивного режима можно набрать следующие команды + после входа в пакетный режим. Пакетный режим обозначается + заглавными буквами PPP + в приглашении: delete ALL add 0 0 HISADDR - Обратитесь к разделу PPP + Обратитесь к разделу PPP и динамические IP адреса Руководства за подробной информацией. Соединение разрывается через 3 минуты Таймаут для PPP по умолчанию равен 3 минутам. Это может быть изменено такой строкой: set timeout NNN где NNN - время неактивности в секундах, после которого соединение закрывается. Если NNN равно нулю, соединение никогда не разрывается по таймауту. Эту команду можно поместить в файл ppp.conf или набрать ее в интерактивном режиме. Изменение этого параметра также возможно при активном соединении, если подключиться к сокету ppp сервера с помощью программ &man.telnet.1; или &man.pppctl.8;. Обратитесь к страницам Справочника, посвящённым &man.ppp.8;. Соединение разрывается при большой нагрузке - Если у вас включен Link Quality Reporting (LQR), возможно, - что слишком много пакетов LQR теряется в канале. Программа - &man.ppp.8; делает вывод, - что канал плох, и разрывает соединение. В &os; до версии 2.2.5 - LQR было включено по умолчанию. Сейчас оно по умолчанию выключено. - LQR можно выключить такой строкой: + Если включен Link Quality Reporting + (LQR), то возможно слишком много + пакетов LQR теряется в канале. + &man.ppp.8; делает вывод, что канал плох, и разрывает + соединение. LQR по умолчанию выключен. + Включить LQR можно так: - disable lqr + enable lqr Соединение разрывается в случайные промежутки времени - Иногда, на шумной линии или даже на линии с включенным режимом - ожидания звонка, ваш модем может вешать трубку, думая (совершенно - напрасно), что потерял несущую. + Иногда на шумной линии или даже на линии с включенным + режимом ожидания звонка модем может вешать трубку, + ошибочно полагая, что потеряна несущая. В большинстве модемов есть параметр, определяющий - чувствительность к временной потере несущей. Например, в - модеме &usrobotics; &sportster; это определяется значением - регистра S10 в десятых долях секунды. - Чтобы сделать связь более устойчивой, добавьте следующую - последовательность посылок-ожиданий в строку набора: - - set dial "...... ATS10=10 OK ......" - - Обратитесь к руководству по вашему модему. + чувствительность к временной потере несущей. + Обратитесь к документации модема. - Соединение часто рвётся в случайные промежутки времени + Соединение часто рвётся в случайные промежутки + времени - Многие сообщают об обрывах соединений без видимой причины. - Первым делом нужно выяснить, с какой стороны соединения рвётся - связь. + Многие сообщают об обрывах соединений без видимой + причины. Первым делом нужно выяснить, с какой стороны + рвётся соединение. - Если вы используете внешний модем, можете просто попробовать - использовать утилиту &man.ping.8; и посмотреть, мигает ли - индикатор TD при передаче данных. Если он - мигает (а индикатор RD нет), проблема с той - стороны. Если индикатор TD не загорается, - проблема с вашей стороны. При использовании внутреннего модема - вам необходимо воспользоваться командой set - server, указав её в файле ppp.conf. - Когда произойдёт обрыв связи, подключитесь к &man.ppp.8; с - помощью &man.pppctl.8;. Если ваше сетевое подключение - неожиданно восстановится (PPP оживает при проявлении активности на - диагностическом сокете) или или если вы не сможете соединиться - (здесь мы полагаем, что команда set socket в - начальный момент была выполнена успешно), то проблема имеет - локальный характер. Если вы сможете подключиться, но связи всё - равно нет, включите вывод отладочной информации командой - set log local async и запустите - ping из другого окна или терминала, чтобы - проверить связь. В отладочном выводе будут показаны данные, - передаваемые и получаемые из канала связи. Если данные посылаются, - но не принимаются обратно, проблема с противоположной + При использовании внешнего модема проверьте утилитой + &man.ping.8;, + мигает ли индикатор TD при передаче + данных. Если он мигает, а индикатор RD + нет, проблема с той стороны. Если TD + не загорается, проблема является локальной. Для + внутреннего модема используйте команду set + server в ppp.conf. При + обрыве связи подключитесь к &man.ppp.8; с помощью + &man.pppctl.8;. Если сетевое подключение неожиданно + восстанавливается при проявлении активности на + диагностическом сокете или нет соединения, но команда + set socket в начальный момент была + выполнена успешно, то проблема имеет локальный характер. + Если получается подключиться, но связи всё равно нет, + включите вывод локальной отладочной информации командой + set log local async и используйте + &man.ping.8; в другом окне или терминале, чтобы проверить + связь. В отладочном выводе будут показаны данные, + передаваемые и получаемые из канала связи. Если данные + посылаются, но не принимаются обратно, то проблема с той стороны. - Выяснив, является эта проблема локальной или удалённой системы, - вы имеете два варианта действий: + Теперь, после выяснения местонахождения проблемы, + имеется два варианта действий: Если проблема на удалённой машине, то прочтите . Если проблема с вашей стороны, прочтите . Удалённая система не отвечает - Здесь вы мало что можете сделать. Большинство провайдеров - отказываются оказать помощь, если вы используете ОС не от µsoft;. - Вы можете добавить команду enable lqr в ваш - ppp.conf, что позволит &man.ppp.8; отследить ошибки в - удалённой системе и закрывать соединение, однако такое обнаружение - достаточно медленно и поэтому - не так уж полезно. Вы можете также просто не сообщать своему - провайдеру, что запускаете user-PPP. + Здесь мало что можно сделать. Большинство провайдеров + отказываются помогать пользователям, которые не используют + ОС от µsoft;. Добавьте enable lqr + в /etc/ppp/ppp.conf, чтобы позволить + &man.ppp.8; отследить ошибки в удалённой системе и закрыть + соединение. Такое обнаружение достаточно медленно и + поэтому не так уж полезно. - Первым делом попробуйте отключить всю местную компрессию, + Первым делом попробуйте отключить любое сжатие, указав в конфигурационном файле следующее: disable pred1 deflate deflate24 protocomp acfcomp shortseq vj deny pred1 deflate deflate24 protocomp acfcomp shortseq vj - Теперь попробуйте установить соединение ещё раз и удостовериться, - что ситуация не изменилась. Если качество соединения улучшилось - или проблема оказалась полностью решённой, выясните, настройка - чего приводила к проблемам методом проб и ошибок. Это даст вам - дополнительную защиту, когда вы будете разговаривать с вашим - провайдером (хотя при этом может обнаружиться, что вы работаете - не с продуктом µsoft;). + Теперь попробуйте установить соединение ещё раз и + удостоверьтесь, что ситуация не изменилась. Если качество + соединения улучшилось или проблема оказалась полностью + решённой, выясните, настройка чего приводила к проблемам + методом проб и ошибок. Это полезная информация для + провайдера, хотя при этом может обнаружиться, что вы + работаете не с продуктом µsoft;. - Перед тем, как звонить провайдеру, включите вывод отладочной - информации, как вы это делали ранее и подождите, пока соединение - снова не прервётся. Правда, для этого требуется некоторое - дисковое пространство. Интерес могут представлять последние - прочитанные из порта данные. Обычно это данные в формате ASCII - и они могут даже содержать описание проблемы (Memory - fault, Core dumped). + Перед тем, как звонить провайдеру, включите вывод + отладочной информации и подождите, пока соединение снова + не прервётся. Для этого может потребоваться некоторое + дисковое пространство. Интерес могут представлять + последние прочитанные из порта данные. Обычно это данные + в формате ASCII и они могут даже содержать описание + проблемы (Memory fault, + Core dumped). - Если ваш провайдер согласен помочь вам, нужно будет включить - режим отладки с их стороны, а потом, когда связь прервётся в - следующий раз, они могут сказать вам, почему возникли проблемы - с их стороны. Будет хорошо, если вы пришлёте детальное описание - на адрес &a.brian.email;, или даже попросите провайдера связаться - с ним напрямую. + Если провайдер согласен помочь, нужно будет включить + режим отладки с их стороны, и затем, когда связь прервётся + в следующий раз, они смогут сказать, почему с их стороны + возникли проблемы. Ppp зависает - Лучше всего в этом случае перекомпилировать &man.ppp.8; - с отладочной информацией, и затем использовать &man.gdb.1; + В этом случае перекомпилируйте &man.ppp.8; с + отладочной информацией, и затем используйте &man.gdb.1; для получения стека вызовов для зависшего процесса ppp. Чтобы откомпилировать программу ppp с отладочной информацией, наберите такие команды: &prompt.root; cd /usr/src/usr.sbin/ppp &prompt.root; env DEBUG_FLAGS='-g' make clean &prompt.root; env DEBUG_FLAGS='-g' make install - Затем следует перезапустить ppp - и дождаться следующего зависания. Когда отладочная сборка - &man.ppp.8; зависнет, запустите gdb - для зависшего процесса: + Затем перезапустите ppp + и дождитесь следующего зависания. Когда отладочная сборка + &man.ppp.8; зависнет, запустите + gdb для зависшего + процесса: &prompt.root; gdb ppp `pgrep ppp` - В приглашении gdb вы можете - использовать команду bt или + В приглашении gdb + используйте команду bt или where для получения стека вызовов. - Сохраните вывод вашей сессии gdb + Сохраните вывод сессии gdb и отключитесь от работающего процесса, выполнив команду quit в gdb. - - В завершение, отошлите результат сессии - gdb на адрес &a.brian.email;. - - Ничего не происходит после сообщения Login OK! - - - - До версии &os; 2.2.5, как только связь устанавливалась, &man.ppp.8; - ожидал начала согласования Line Control Protocol - (LCP) с противоположной стороны. Многие провайдеры Internet не - начинают согласования и предполагают, что это сделает клиент. - Чтобы заставить &man.ppp.8; инициировать согласование - параметров LCP, используйте следующую строку: - - set openmode active - - - Ничего страшного не произойдёт, если согласование начнут обе - стороны, поэтому режим инициирования сейчас по умолчанию активный. - Однако, в следующем разделе описывается ситуация, когда это - приводит к некоторым неприятностям. - - - - - В протоколе есть сообщения о том, что magic being the same. - Иногда, сразу же после установления соединения, вы можете - увидеть в журнале сообщения Magic is the - same. Иногда эти сообщения проходят безболезненно, - а иногда одна из сторон прекращает работу. Большинство реализаций - PPP не может справиться с такой ситуацией, и, даже когда связь - выглядит установившейся, вы будете видеть только бесконечно - повторяющиеся конфигурационные запросы и подтверждения в файле - протокола до тех пор, пока &man.ppp.8; - окончательно не закроет соединение. + Иногда, сразу после установления соединения, в журнале + могут возникать сообщения Magic is the + same. Иногда эти сообщения проходят + безболезненно, а иногда одна из сторон прекращает работу. + Большинство реализаций PPP не может справиться с такой + ситуацией, и даже когда связь выглядит установившейся, вы + будeт только бесконечно повторяющиеся конфигурационные + запросы и подтверждения в файле протокола до тех пор, пока + &man.ppp.8; окончательно не закроет соединение. Обычно это происходит на серверах с медленными дисками, на которых порт обслуживает программа &man.getty.8;, а &man.ppp.8; выполняется из сценария регистрации или другой программы после регистрации пользователя. Были сообщения, что такое случается постоянно при использовании slirp. Причина заключается в том, что во время, проходящее между завершением работы &man.getty.8; и запуском &man.ppp.8;, &man.ppp.8; со стороны клиента начинает посылать пакеты Line Control Protocol (LCP). Так как режим эха остаётся всё ещё включенным, &man.ppp.8; клиента получает отражения своих запросов. Частью процесса согласования параметров LCP является определение магического числа для каждой стороны соединения для обнаружения отражений. Согласно спецификации, когда одна сторона пытается использовать совпадающее "магическое" число, должен быть послан ответ NAK и должно быть выбрано новое "магическое" число. В тот момент, когда на порту сервера включен режим эха, клиент &man.ppp.8; посылает пакеты LCP, получает то же самое "магическое" число в отражённом пакете и отвечает на него NAK. Он также видит отражённый NAK (который также означает, что &man.ppp.8; должен изменить своё "магическое" число). В потенциале это может вызвать появление огромного количества процессов смен "магических" чисел, и все они накапливаются в буфере терминала. Как только запустится сервер &man.ppp.8;, он будет перегружен запросами на смену "магических", немедленно решит, что этого много для согласования LCP и прервёт соединение. В то же самое время, клиент, который больше не видит отражений, останавливается для того, чтобы увидеть, что сервер закрыл соединение. Этого можно избежать, позволив начинать согласование противоположной стороне следующей строкой в файле ppp.conf: set openmode passive - Это заставит &man.ppp.8; ожидать начала согласования LCP. Некоторые - серверы, однако, могут никогда не начать согласование. Если это тот - самый случай, вы можете сделать следующее: + Это заставит &man.ppp.8; ожидать начала согласования + LCP. Некоторые серверы, однако, могут никогда не начать + согласование. В этом случае попробуйте сделать + следующее: set openmode active 3 Это заставит &man.ppp.8; пассивно ждать 3 секунды, и только затем посылать запросы LCP. Если противоположная сторона начнёт посылать в этот момент запросы, &man.ppp.8; немедленно ответит, не ожидая истечения трёхсекундного интервала. Согласование LCP продолжается, пока не закроется соединение В настоящий момент одной из неприятных особенностей реализации &man.ppp.8; является то, что она не связывает сообщения LCP, CCP & IPCP с запросами. Как результат, если реализация PPP с одной стороны более чем на 6 секунд медленнее, чем с другой, противоположная сторона будет посылать два дополнительных запроса на согласование параметров LCP. Это фатально. Предположим, что у нас работают две реализации, на машинах A и B. A начинает посылать запросы LCP сразу же после соединения, а B требуется 7 секунд для запуска. Когда B запускается, A послало 3 LCP-запроса. Полагаем, что режим эха выключен, в противном случае мы столкнулись бы с проблемами "магического" числа, описанными в предыдущем разделе. B посылает REQ, затем ACK на первый REQ от A. Это приводит к тому, что A входит в состояние OPENED и посылает (первый) ACK обратно B. В то же самое время B посылает обратно ещё два ACK в ответ на два дополнительных REQ, посланные A до старта B. B затем получает первый ACK от A и возвращается в состояние REQ-SENT, послав ещё один (четвёртый) REQ согласно RFC. Затем он получает третий ACK и входит в состояние OPENED. В это же время B принимает четвёртый REQ от A, что возвращает его в состояние ACK-SENT и посылает ещё один (второй) REQ и (четвёртый) ACK согласно RFC. A получает REQ, переходит в состояние REQ-SENT и посылает ещё один REQ. Он немедленно принимает последующий ACK и входит в состояние OPENED. Это будет продолжаться до тех пор, пока одна из сторон не обнаружит, что это ни к чему не приводит и не закроет соединение. Лучшим способом избежать этой ситуации является конфигурация одной из сторон как passive, чтобы она ждала другую для начала согласования. Это можно сделать следующей командой: set openmode passive - С этой командой нужно быть осторожным. Вы также должны будете - использовать эту команду для ограничения периода ожидания, в - течении которого &man.ppp.8; ждёт начала согласования с + С этой командой нужно быть осторожным. Эту команду + можно также использовать для ограничения периода ожидания, + в течении которого &man.ppp.8; ждёт начала согласования с противоположной стороны: set stopped N Как вариант, может быть использована следующая команда (где N - период ожидания в секундах перед тем, как начать согласование): set openmode active N За дополнительной информацией обращайтесь к странице Справочника. Когда я выполняю команду shell для тестирования соединения, ppp блокируется - Когда вы выполняете команду shell или - !, &man.ppp.8; запускает оболочку (если были - заданы параметры, &man.ppp.8; их - использует). Программа ppp будет - ждать окончания выполнения команды, прежде - чем продолжить. Если вы попытаетесь воспользоваться связью PPP - после запуска команды, связь будет выглядеть заблокированной. Это + При использовании shell или + ! &man.ppp.8; запускает оболочку или + переданные параметры. Программа + ppp будет ждать окончания + выполнения команды, прежде чем продолжить. При любой + попытке воспользоваться связью PPP во время выполнения + команды связь будет выглядеть заблокированной. Это происходит из-за того, что &man.ppp.8; ждёт завершения - выполнения запущенной команды. + команды. - Если вам необходимо выполнять подобные команды, используйте - команду !bg. В этом случае нужная команда будет + Для выполнения подобных команд используйте вместо этого + !bg. В этом случае нужная команда будет выполняться в фоновом режиме, а &man.ppp.8; сможет продолжить обслуживание канала связи. Почему программа ppp, обслуживающая нуль-модем, никогда не закрывается? &man.ppp.8; не может определить, что соединение было закрыто. Это происходит из-за метода использования сигнальных линий нуль-модемного кабеля. При использовании такого типа соединения всегда включайте LQR: enable lqr По умолчанию LQR включается, если это было затребовано с противоположной стороны на этапе согласования параметров соединения. В режиме ppp неожиданно начинает звонить - Если &man.ppp.8; начинает неожиданно звонить, вы - должны определить причину и задать фильтры dfilters для + Если &man.ppp.8; начинает неожиданно звонить, + определите причину и настройте фильтры дозвона для предотвращения подобных звонков. Для выяснения причины такого поведения, используйте строку: set log +tcp/ip - Это включит протоколирование всего трафика через соединение. - В следующий раз, когда неожиданно будет установлено соединение, - вы установите причину по временным отметкам в файле - протокола. + Это включит протоколирование всего трафика через + соединение. В следующий раз, когда неожиданно будет + установлено соединение, в файл протокола будет следом + занесена причина с отметкой времени. - После этого вы можете запретить дозвонку при выясненных - условиях. Как правило, такие проблемы возникают из-за обращений - к DNS. Для предотвращения обращений к DNS и установления - соединения (что не запретит &man.ppp.8; - пропускать пакеты через уже - установленное соединение), используйте такую комбинацию: + Теперь отключите дозвон при данных условиях. Как + правило, такие проблемы возникают из-за обращений к DNS. + Для предотвращения обращений к DNS и установления + соединения (что не запретит + &man.ppp.8; пропускать пакеты через уже установленное + соединение), используйте такую комбинацию: set dfilter 1 deny udp src eq 53 set dfilter 2 deny udp dst eq 53 set dfilter 3 permit 0/0 0/0 - Это может вам не подойти, так как закроет возможность дозвонки - по запросу — большинству программ нужно обратиться к DNS - до того, как начать работать. + Это не всегда удобно, так как закрывает возможность + дозвона по запросу. Большинству программ нужно обратиться + к DNS до того, как начать работать. - В случае DNS, вы должны попытаться определить, кто пытается - определить имя хоста. В большинстве случаев виновным оказывается - &man.sendmail.8;. Удостоверьтесь, что вы указали программе - sendmail - не осуществлять обращений к DNS в его конфигурационном файле. - Обратитесь к разделу об - использовании электронной почты при коммутируемом соединении в - Руководстве за подробным описанием создания конфигурационного файла и что - туда нужно поместить. Вам может понадобиться добавить в файл + В случае DNS попытайтесь установить, что именно + пытается определить имя хоста. В большинстве случаев + виновным оказывается Sendmail. + Проверьте, чтобы в конфигурационном файле программы + Sendmail не было указано + обращаться к DNS. Обратитесь к разделу об использовании + электронной почты при коммутируемом соединении в + Руководстве &os; за подробным описанием. Вам может + понадобиться добавить в файл .mc строку: define(`confDELIVERY_MODE', `d')dnl - Это заставит sendmail ставить все - сообщения в очередь до тех пор, пока - не будет запущена её обработка (как правило, sendmail запускается с - параметрами , указывающими, что - обрабатывать очередь нужно каждые 30 минут) или до тех пор, пока - не будет выполнена команда sendmail - -q (может быть, из - файла ppp.linkup). + Это заставит Sendmail + добавлять все сообщения в очередь до тех пор, пока не + будет запущена её обработка, как правило, каждые 30 минут, + или пока не будет выполнена команда + sendmail -q, возможно, из файла + /etc/ppp/ppp.linkup). Что означают ошибки CCP - В файле протокола появляются такие сообщения об ошибках: + В файле протокола появляются такие сообщения об + ошибках: CCP: CcpSendConfigReq CCP: Received Terminate Ack (1) state = Req-Sent (6) - Это происходит, если &man.ppp.8; пытается установить компрессию - типа Predictor1, а противоположная сторона не хочет устанавливать - никакой компрессии. Эти сообщения безобидны, но если вы хотите - от них избавиться, вы можете запретить компрессию Predictor1 и - у себя тоже: + Это происходит, если &man.ppp.8; пытается установить + сжатие Predictor1, а противоположная сторона не хочет + устанавливать никакого сжатия. Эти сообщения безобидны, + но их можно заглушить отключением сжатия: disable pred1 Почему ppp не протоколирует скорость соединения? - Для вывода протокола взаимодействия с модемом вам нужно - включить следующее: + Для записи полного протокола взаимодействия с модемом + включите следующее: set log +connect - Это заставит &man.ppp.8; протоколировать всё, вплоть до последней - прочтённой через expect строки. + Это заставит &man.ppp.8; протоколировать всё, вплоть + до последней прочтённой через expect + строки. - Если вы хотите видеть скорость соединения и используете - PAP или CHAP (и поэтому вам не нужно определять никаких сценариев - входа через set login после получения строки - CONNECT сценарием дозвонки dial), вы должны указать &man.ppp.8;, - что нужно ожидать полную строку CONNECT, вроде следующего: + Чтобы увидеть скорость соединения при использовании + PAP или CHAP, укажите &man.ppp.8; ожидать полную строку + CONNECT: set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \ \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n" - Здесь мы получили строку CONNECT, ничего не посылаем, затем ожидаем - символа перевода строки, заставляя &man.ppp.8; принять - полный ответ модема. + Здесь мы получаем строку CONNECT, ничего не посылаем, + а затем ожидаем символа перевода строки, заставляя + &man.ppp.8; читать целиком содержимое ответа CONNECT. Ppp игнорирует символ \ в chat-скрипте - Программа ppp обрабатывает - каждую строку в ваших конфигурационных файлах, - так что он может проинтерпретировать строку вида - set phone "123 456 789" правильно и - обнаружить, что номер является на самом деле - единственным аргументом. Для того, чтобы - указать символ ", вы должны экранировать - его символом обратного слэша (\). + Программа ppp разбирает + каждую строку в конфигурационных файлах и поэтому может + правильно интерпретировать строки вида + set phone "123 456 789" и обнаруживать, + что на самом деле номер является единственным аргументом. + Для того, чтобы указать символ ", + заэкранируйте его символом обратного слэша + (\). - Когда интерпретатор chat обрабатывает каждую строку, он ещё - раз просматривает аргумент для того, чтобы найти какую-либо - специальную последовательность типа \P или - \T (обратитесь к Справочнику). В результате - этой двойной интерпретации вы должны всегда использовать - правильное число экранирующих символов. + Когда интерпретатор chat разбирает каждый параметр, он + ещё раз просматривает аргумент на предмет каких-либо + специальных последовательностей типа \P + или \T. Вследствие этой двойной + интерпретации не забывайте об использовании нужного + количества экранирующих символов. - Если вам нужно передать символ \, например, - вашему модему, вам необходимо указать что-то типа: + Чтобы передать сам символ \, + укажите что-то типа: set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" Это приведёт к такой последовательности: ATZ OK AT\X OK Или: set phone 1234567 set dial "\"\" ATZ OK ATDT\\T" Это даст такую последовательность: ATZ OK ATDT1234567 - - &man.ppp.8; получает ошибку защиты - (Segmentation fault), но я не вижу файла - ppp.core - - - - Программа ppp (или любая другая - программа такого рода) никогда не - создаёт файлов дампа памяти. Так так &man.ppp.8; запускается с - эффективным uid, равным 0, то операционная - система не будет записывать дамп памяти &man.ppp.8; на диск - перед его завершением. Однако если - &man.ppp.8; всё же прекратит работу из-за нарушения защиты, - или по другому сигналу, который вызывает создание дампа памяти, - и вы уверены, что используете самую - последнюю версию (смотрите - самое начало раздела), то вы должны установить исходный код - системы и выполнить следующее: - - &prompt.root; cd /usr/src/usr.sbin/ppp -&prompt.root; echo STRIP= >> /etc/make.conf -&prompt.root; echo CFLAGS+=-g >> /etc/make.conf -&prompt.root; make install clean - - Теперь у вас есть отладочная версия &man.ppp.8;. Вам - нужно стать суперпользователем для запуска &man.ppp.8;, так - как соответствующие биты прав были убраны. Когда запустите - &man.ppp.8;, обратите особое внимание на то, какой каталог - у вас был текущим на этот момент. - - Итак, если &man.ppp.8; получит ошибку нарушения защиты, - он сбросит дамп памяти с именем ppp.core. - Затем вам нужно сделать следующее: - - &prompt.user; su -&prompt.root; gdb /usr/sbin/ppp ppp.core -(gdb) bt -..... -(gdb) f 0 -.... -(gdb) i args -.... -(gdb) l -..... - - Вся эта информация должна быть предоставлена вместе с вашим - вопросом, чтобы проблему можно было продиагностировать. - - Если вы умеете обращаться с &man.gdb.1;, вы можете - попробовать найти причины образования дампа либо адреса и - значения относящихся к этому переменных. - - - - Процесс, вызвавший прозвонку в режиме , никогда не получает затребованного соединения Эта проблема проявлялась, когда &man.ppp.8; в режиме был настроен на динамическое согласование локального IP-адреса с противоположной стороной. Это было давно исправлено — поищите на странице справочника слово iface. Причиной было то, что когда эта программа использует системный вызов &man.connect.2;, для сокета назначается IP-адрес интерфейса &man.tun.4;. Ядро создаёт первый исходящий пакет и записывает его в устройство &man.tun.4;. Затем &man.ppp.8; читает пакет и устанавливает соединение. Если в результате согласования &man.ppp.8; динамического IP-адреса адрес интерфейса изменится, сокет будет работать некорректно. Любые IP-пакеты, передаваемые через сокет, будут отброшены. Если даже этого не произойдёт, ответные данные не будут достигать отправителя, так как этот адрес больше ему не принадлежит. Теоретически есть несколько способов решить эту проблему. Лучше всего, если противоположная сторона назначит интерфейсу тот же самый IP-адрес. Текущая версия &man.ppp.8; именно так и поступает, но большинство других реализаций этого не делают. Самым простым решением будет просто никогда не менять IP-адрес интерфейса &man.tun.4;, а вместо этого изменять на лету все исходящие пакеты так, чтобы IP-адрес источника менялся с IP-адреса интерфейса на соответствующий с противоположной стороны. Это, в сущности, то же самое, что делает опция iface-alias в самой последней версии &man.ppp.8; (с помощью библиотеки &man.libalias.3; и ключа для &man.ppp.8;) — она отслеживает все назначенные ранее интерфейсу адреса и замещает их на последний из назначенных. Другой возможный (и, наверное, самый надёжный) способ - это создать системный вызов, меняющий IP-адреса всем уже связанным сокетам. &man.ppp.8; использовал бы этот вызов для модификации сокетов всех работающих программ после согласования нового IP-адреса. Этот же самый системный вызов могли бы использовать клиенты DHCP, когда они осуществляют повторную привязку к сокету, вызывая для этого функцию bind(). Ещё одной возможностью является разрешение интерфейсу становиться активным без IP-адреса. Исходящим пакетам будет даваться IP адрес 255.255.255.255 до первого вызова &man.ioctl.2; SIOCAIFADDR, приводящего к полной привязке сокета. &man.ppp.8; нужно будет изменять исходящий IP-адрес и контрольную сумму пакета, только если он установлен в 255.255.255.255. Это, однако, является некоторым хаком, так как ядро будет посылать некорректные пакеты на не полностью сконфигурированный интерфейс, в предположении, что существует механизм исправления этих пакетов. - - Почему большинство игр не работает с опцией - ? - - - - Причиной, по которой игры и подобные программы не работают с - библиотекой &man.libalias.3; заключается в том, что внешняя - машина будет пытаться открыть соединение или посылать - (незапрошенные) UDP пакеты на машину внутренней сети. - Программное обеспечение, обеспечивающее опцию -nat, не - знает о том, что она должна пересылать эти пакеты машине во - внутренней сети. - - Чтобы это всё же заработало, удостоверьтесь, что единственной - запущенной программой является программное обеспечение, с которым - вы испытываете проблемы, затем запустите &man.tcpdump.1; на - интерфейсе &man.tun.4; маршрутизатора либо включите - протоколирование TCP/IP в &man.ppp.8; - (set log +tcp/ip) на маршрутизаторе. - - Когда вы запустите некорректно работающее программное - обеспечение, - вы должны увидеть пакеты, проходящие через маршрутизатор. Когда - что-то начнёт приходить извне, оно будет отброшено (в этом-то и - проблема). Заметьте номер порта получателя этих пакетов, затем - завершите работу вашего программного обеспечения. Выполните эту - процедуру несколько раз для того, чтобы убедиться, что номер порта - постоянен. Если это так, то следующая строчка в соответствующем - разделе /etc/ppp/ppp.conf заставит - программное обеспечение функционировать нормально: - - nat port proto internalmachine:port port - - Здесь proto - это - tcp либо udp, - internalmachine — - это машина, которой вы хотите перенаправлять пакеты, - и port - это номер порта получателя - пакетов. - - Несомненно, вы не сможете использовать программное - обеспечение на других машинах, не изменяя указанную выше - команду, а также запускать программное обеспечение на двух - машинах внутри сети одновременно — в конце концов, - внешний мир видит всю вашу сеть как единственную машину. - - Если номера портов непостоянны, есть ещё три варианта: - - - - Настройте поддержку этого в &man.libalias.3;. Примеры - особых случаев можно найти в - /usr/src/sys/netinet/libalias/alias_*.c - (alias_ftp.c — хорошее начало). - Обычно это подразумевает чтение определенных распознаваемых - исходящих пакетов, выявление команд для установления - внешней машиной обратной связи на внутреннюю машину на - конкретный (случайный) порт и настройку значения - route в таблице соответствий таким образом, - чтобы последующие пакеты проходили нормально. - - Это самое трудоёмкое решение, но оно наилучшее и позволит - программному обеспечению работать на нескольких машинах. - - - - Используйте прокси-сервер. Например, приложение может - поддерживать socks5 или (как в случае - cvsup) может иметь режим - passive, обходящийся без запросов к - противоположной стороне на открытие обратного - соединения. - - - - Переназначьте всё на внутреннюю - машину с помощью команды nat addr. - Это решение в лоб. - - - - - - - - Кто-нибудь ведёт список полезных номеров портов? - - - - Пока нет, но ниже находится список, могущий таковым стать (если - к этому будет проявлен какой-либо интерес). В каждом примере - internal нужно заменить на IP-адрес - машины, участвующей в игре. - - - - Asheron's Call - - nat port udp - internal:65000 - 65000 - - Находясь в игре, вручную смените номер порта на - 65000. Если - у вас есть несколько машин, на которых вы хотите играть, - назначьте каждой машине уникальный номер порта (то есть - 65001, 65002 и так - далее), и добавьте по строчке nat - port для каждой машины. - - - - Half Life - - nat port udp - internal:27005 - 27015 - - - - PCAnywhere 8.0 - - nat port udp - internal:5632 - 5632 - - nat port tcp - internal:5631 - 5631 - - - - Quake - - nat port udp - internal:6112 - 6112 - - - - Quake 2 - - nat port udp - internal:27901 - 27910 - - nat port udp - internal:60021 - 60021 - - nat port udp - internal:60040 - 60040 - - - - Red Alert - - nat port udp - internal:8675 - 8675 - - nat port udp - internal:5009 - 5009 - - - - - - Что такое ошибки FCS? - FCS является сокращением от Frame - Check Sequence + FCS является сокращением от Frame Check Sequence (контроль последовательности кадров). Каждый кадр PPP имеет контрольную сумму для проверки того, что принятые данные совпадают с переданными. Если FCS принятого пакета некорректна, пакет отбрасывается и счётчик FCS для HDLC увеличивается. Значения ошибок уровня HDLC можно вывести командой show hdlc. - Если у вас плохая линия (или драйвер коммуникационного адаптера - отбрасывает пакеты), ошибки FCS неизбежны. Это обычно не является - причиной для волнений, хотя это существенно замедляет протоколы - компрессии. Если у вас внешний модем, проверьте качество - экранирования соединительного кабеля — это может избавить от - проблемы. + Если линия плохого качества или драйвер + коммуникационного адаптера отбрасывает пакеты, будут + появляться случайные ошибки FCS. Это обычно не является + причиной для волнений, хотя это существенно замедляет + протоколы компрессии. - Если ваша связь замирает, как только вы соединились, и - наблюдается большое количество ошибок FCS, это может быть вызвано - не полной прозрачностью канала для 8-битовых данных. Проверьте, - чтобы модем не использовал программного управления потоком - (XON/XOFF). Если же оборудование должно - использовать программное управление потоком, то воспользуйтесь - командой set accmap 0x000a0000 для указания + Если связь замирает сразу при установлении соединения + и наблюдается большое количество ошибок FCS, убедитесь, + чтобы модем не использовал программное управление потоком + (XON/XOFF). Если же для соединения должно использоваться + программное управление потоком, то воспользуйтесь командой + set accmap 0x000a0000 для указания &man.ppp.8; экранировать символы ^Q и ^S. Другой причиной слишком большого количества ошибок FCS может быть прекращение противоположной стороной сеанса - PPP. - В этом случае Вам может понадобиться включить протоколирование - async для проверки того, не являются ли - поступаемые из линии данные на самом деле приглашениями login - или shell. Если вы получили приглашение shell с противоположной - стороны, возможно завершение &man.ppp.8; без обрыва связи - командой close lcp (последующая команда - term снова вернёт вас к приглашению - shell на удалённой машине). + PPP. В этом случае включите + протоколирование async для проверки + того, не являются ли поступаемые из линии данные на самом + деле приглашением login или shell. Если с противоположной + стороны находится приглашение shell, завершить &man.ppp.8; + без обрыва связи можно командой + close lcp и последующей командой + term, чтобы переподключиться к + приглашению shell на удалённой машине. - Если ничего в файле протокола не говорит о том, что связь - была прервана, вы должны спросить у администратора удалённой - машины (вашего провайдера), почему сеанс был закрыт. + Если ничего в файле протокола не говорит о причине + разрыва связи, спросите у администратора удалённой машины + или вашего провайдера, почему сеанс был закрыт. - - - Почему при использовании на маршрутизаторе PPPoE замирают - соединения в &macos; и &windows; 98? - - - - Мы благодарим Майкла Возняка (Michael Wozniak) - mwozniak@netcom.ca, который сообщил следующую - информацию, и Дэна Флемминга (Dan Flemming) - danflemming@mac.com за решение проблемы в случае - Mac: - - Это происходит из-за эффекта, который можно назвать - чёрной дырой на маршрутизаторе. &macos; и - &windows; 98 (и, может быть, другие операционные системы - от µsoft;), посылают пакеты TCP с запрашиваемым размером - сегмента, который слишком велик для того, чтобы быть помещённым - в кадр PPPoE (для сети Ethernet размер MTU по умолчанию равен - 1500) и с установленным - битом do not fragment (по умолчанию для TCP), а - маршрутизаторы Telco не посылает пакет ICMP must - fragment обратно на сайт WWW, который вы пытаетесь - открыть. (Либо маршрутизатор посылает пакеты ICMP правильно, а - межсетевой экран на стороне сервера WWW их сбрасывает.) Когда - Web-сервер посылает вам кадры, которые не помещаются в поток PPPoE, - то маршрутизаторы Telco их отбрасывают и странички не загружаются - (часть страниц/графики всё же видно, потому что они меньше, чем - MSS). Похоже, что такие настройки действуют по умолчанию на - большинстве конфигураций PPPoE Telco. - - Одним из способов устранения проблемы является использование - утилиты regedit на системах 95/98 для - того, чтобы добавить в реестр следующий параметр: - - HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU - - Это должна быть строка со значением 1436, - так как имеются сведения, что некоторые маршрутизаторы ADSL не - могут работать с пакетами размером, превышающим эту величину. - В &windows; 2000 этот параметр реестра переименован в - Tcpip\Parameters\Interfaces\ID - адаптера\MTU и имеет тип - DWORD. - - Обратитесь к документам из Microsoft Knowledge Base - Q158474 - Windows TCPIP Registry Entries и - Q120642 - TCPIP & NBT Configuration Parameters for - &windowsnt; для получения более полной информации по - изменению MTU в &windows; для работы с NAT-маршрутизатором. - - Другим вариантом с &windows; 2000 является установка в - регистре DWORD-параметра - Tcpip\Parameters\Interfaces\ID - адаптера\EnablePMTUBHDetect в - 1, как это - отмечено в документе Microsoft 120642, указанном выше. - - К несчастью, в &macos; нет возможности изменить настройки - TCP/IP. Однако имеется множество коммерческого программного - обеспечения, позволяющего пользователям настраивать - параметры TCP/IP. Пользователям NAT в &macos; нужно поискать - у себя настройки MTU и заменить там значение 1500 - на 1450. - - В &man.ppp.8; имеется команда enable - tcpmssfixup, которая автоматически выравнивает MSS - до подходящего значения. Эта возможность включена по умолчанию. - Если у вас возникли проблемы с более старой версией - &man.ppp.8;, то вас может заинтересовать порт - net/tcpmssd. - - - Ничего не помогает — я уже отчаялся! - Если всё уже перепробовано, и ничего не получается, пошлите - нам максимальное количество информации, ваш конфигурационный - файл, способ запуска &man.ppp.8;, соответствующие части файла - протокола, и вывод команды netstat -rn (до - и после соединения) в &a.questions; или в телеконференцию comp.unix.bsd.freebsd.misc, - и может быть, кто-нибудь укажет вам верное направление. + Если всё уже перепробовано, и ничего не получается, + пошлите подробности об ошибке, конфигурационные файлы, + способ запуска &man.ppp.8;, соответствующие части файла + протокола, и вывод команды netstat -rn + до и после соединения в &a.questions;. Коммуникационные адаптеры В этом разделе освещены вопросы о работе последовательных - адаптеров во &os;. Протоколы PPP и SLIP рассматриваются в разделе + адаптеров во &os;. Протокол PPP рассматривается в разделе Работа в сети. - - Как узнать, какие последовательные порты были обнаружены + + Какие многопортовые последовательные адаптеры поддерживаются во &os;? - В процессе своей загрузки ядро &os; будет пытаться - найти последовательные порты, с поддержкой которых оно было - откомпилировано. Вы можете повнимательней присмотреться к - выдаваемым сообщениям либо выполнить такую команду после того, - как система запустилась и работает: + Список таких устройств находится в главе Руководства + Последовательные + соединения. - &prompt.user; dmesg | grep -E "^sio[0-9]" + Большинство многопортовых PCI адаптеров на базе 16550 и их + клоны поддерживаются без дополнительных усилий. - Вот пример вывода вышеуказанной команды: + Некоторые безымянные клоны таких адаптеров тоже работают + нормально, особенно те, которые заявляют о своей совместимости + с AST. - sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 -sio0: type 16550A -sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0 -sio1: type 16550A + Прочтите страницы Справочника &man.uart.4; и &man.sio.4; для получения + подробной информации о конфигурировании таких адаптеров. + + - Здесь присутствуют два последовательных порта. Первый - находится на IRQ 4, использует порт ввода/вывода - 0x3f8 и построен на микросхеме UART типа - 16550A. Второй использует тот же тип микросхемы, но находится - на IRQ 3 и использует адрес порта ввода/вывода - 0x2f8. Внутренние модемы выглядят точно - также, как последовательные порты, за исключением того, - что модем к ним подключен всегда. + + + Как сделать, чтобы приглашение boot: выводилось на консоль на + последовательном порту? + - В ядро GENERIC встроена поддержка двух - последовательных портов, с теми же IRQ и адресами портов - ввода/вывода, как указано в примере выше. Если эти настройки - не соответствуют вашим, или если вы добавили внутренние модемы, - или у вас больше последовательных портов, чем описано в ядре, - просто переконфигурируйте ядро. За дополнительной информацией - обратитесь к разделу о построении - ядра. + + Подробная информация находится в этом + разделе Руководства. - - Как узнать, какие внутренние модемы были обнаружены &os;? + + Как узнать, обнаружила ли &os; последовательные порты + или внутренние модемы? - Посмотрите ответ на предыдущий вопрос. + В процессе своей загрузки ядро &os; будет пытаться + найти последовательные порты, с поддержкой которых ядро + сконфигурировано. Внимательно просмотрите сообщения + загрузки либо выполните такую команду после того, + как система запустилась и работает: + + &prompt.user; dmesg | grep -E "^sio[0-9]" +sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 +sio0: type 16550A +sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0 +sio1: type 16550A + + Здесь присутствуют два последовательных порта. Первый + находится на IRQ4, порт ввода/вывода + 0x3f8, и построен на микросхеме UART + типа 16550A. Второй использует тот же тип микросхемы, но + находится на IRQ3 и использует адрес порта ввода/вывода + 0x2f8. Внутренние модемы выглядят + точно также, как последовательные порты, за исключением + того, что модем к ним подключен всегда. + + В ядро GENERIC встроена поддержка + двух последовательных портов, с теми же IRQ и адресами + портов ввода/вывода, как указано в примере выше. Если эти + настройки не соответствуют системе или имеется больше + внутренних модемов или последовательных портов, чем + описано в ядре, переконфигурируйте его, следуя инструкциям + в разделе о построении + ядра. Как осуществляется доступ к последовательным портам во &os;? Третий последовательный порт, sio2 - (посмотрите справку по &man.sio.4;), который в DOS называется - COM3), обозначается как + или COM3, обозначается как /dev/cuad2 для устройств, выполняющих исходящие звонки, и /dev/ttyd2 для - устройств, принимающих входящие звонки. Какая разница между этими - двумя классами устройств? + устройств, принимающих входящие звонки. Какая разница + между этими двумя классами устройств? - Вы должны использовать - ttydX для - входящих соединений. При открытии - /dev/ttydX в - блокирующем режиме, процесс будет ожидать неактивности - соответствующего устройства - cuadX, а затем - появления сигнала о наличии несущей. При открытии устройства - cuadX он - проверяет, что последовательный порт не используется уже - устройством - ttydX. Если - порт доступен, он похищает его у устройства - ttydX. Также - устройство - cuadX не следит - за наличием несущей. С такой схемой работы и модемом, находящимся в - режиме автоответа, вы можете позволить пользователям входить в - систему и в то же время можете осуществлять исходящие звонки, а - система позаботится о возможных конфликтах. + При открытии /dev/ttydX в + блокирующем режиме процесс будет ожидать неактивности + соответствующего устройства cuadX, а + затем появления сигнала о наличии несущей. При открытии + устройства cuadX он проверяет, что + последовательный порт не занят устройством + ttydX. Если порт доступен, он + похищает его у устройства ttydX. + Также устройство cuadX не следит за + наличием несущей. С такой схемой работы и модемом + в режиме автоответа удалённые пользователи могут входить + в систему, а локальные пользователи через тот же модем + могут по прежнему осуществлять исходящие звонки, а система + позаботится о возможных конфликтах. Как включить поддержку многопортовых последовательных адаптеров? - Повторим ещё раз: информация о конфигурировании ядра - содержится в разделе, посвящённом этому вопросу. Для + Информация о конфигурировании ядра содержится в + соответствующем разделе, посвящённом этому вопросу. Для многопортовых последовательных адаптеров добавьте в файл &man.device.hints.5; по строке &man.sio.4; на каждый порт. Но IRQ должен быть указан только у одного порта. Все порты на адаптере должны использовать одно и то же значение IRQ. Для обеспечения согласованности используйте для указания IRQ последний последовательный порт. Также укажите следующую опцию в файле конфигурации ядра: COM_MULTIPORT В следующем примере указано содержимое /boot/device.hints для 4-портового последовательного адаптера AST на IRQ 12: hint.sio.4.at="isa" hint.sio.4.port="0x2a0" hint.sio.4.flags="0x701" hint.sio.5.at="isa" hint.sio.5.port="0x2a8" hint.sio.5.flags="0x701" hint.sio.6.at="isa" hint.sio.6.port="0x2b0" hint.sio.6.flags="0x701" hint.sio.7.at="isa" hint.sio.7.port="0x2b8" hint.sio.7.flags="0x701" hint.sio.7.irq="12" Флаги указывают, что управляющий порт имеет младший номер устройства 7 (0x700), и все порты совместно используют один и тот же номер IRQ (0x001). - - Может ли &os; использовать несколько многопортовых - адаптеров с одинаковым IRQ? - - - - Пока нет. Вы должны назначить уникальный IRQ для каждого - адаптера. - - - - Можно ли настроить для порта режим работы по умолчанию? - Смотрите раздел Руководства &os;, посвящённый последовательным + Смотрите раздел Руководства &os;, посвящённый последовательным соединениям. Как сделать вход через модем? - Ознакомьтесь с разделом Руководства &os;, посвящённого входящим + Ознакомьтесь с разделом Руководства &os;, посвящённым + входящим соединениям. Как подключить терминал к &os;? - Информацию по этому вопросы можно найти в разделе Терминалы + Информация по этому вопросу находится в разделе Терминалы Руководства &os;. Почему не удаётся запустить tip или cu? - Скорее всего, в вашей системе программы - &man.tip.1; и &man.cu.1; могут получить доступ к каталогу + Встроенные утилиты &man.tip.1; и &man.cu.1; могут + получить доступ к каталогу /var/spool/lock только из-под пользователя - uucp и членов группы - dialer. Вы можете использовать группу - dialer для управления доступом к вашему - модему или удалённым системам. Достаточно добавить пользователя - в группу dialer. + uucp и членов + группы dialer. + Используйте группу dialer для управления + доступом к модему или удалённым системам посредством + добавления в неё пользовательских учётных записей. - Вы можете разрешить всем пользователям вашей системы запускать - &man.tip.1; и &man.cu.1;, выполнив команды: + Либо же можно разрешить всем запускать + &man.tip.1; и &man.cu.1;: &prompt.root; chmod 4511 /usr/bin/cu &prompt.root; chmod 4511 /usr/bin/tip - - - - Мой модем Hayes не поддерживается — что можно сделать? - - - - Смотрите этот - ответ в Руководстве &os;. - - - - - - Как я должен ввести эти AT-команды? - - - - Смотрите этот ответ - в Руководстве &os;. - - - - - - Почему не срабатывает знак @ для - описания характеристики pn? - - - - Смотрите этот - ответ в Руководстве &os;. - - - - - - Как набрать телефонный номер из командной строки? - - - - Смотрите этот - ответ в Руководстве &os;. - - - - - - Нужно ли при этом каждый раз задавать скорость работы с - портом? - - - - Смотрите этот ответ - в Руководстве &os;. - - - - - - Мне нужно иметь доступ к нескольких хостам через терминальный - сервер. - - - - Смотрите этот - ответ в Руководстве &os;. - - - - - - Может ли tip использовать несколько телефонов для одного - сайта? - - - - Смотрите этот - ответ в Руководстве &os;. - - - - - - Почему нужно нажимать CtrlP - дважды для посылки одного этого символа Ctrl - P? - - - - Смотрите этот - ответ в Руководстве &os;. - - - - - - Неожиданно всё стало набираться ЗАГЛАВНЫМИ БУКВАМИ? - - - - Смотрите этот - ответ в Руководстве &os;. - - - - - - Как можно передавать файлы с помощью программы - tip? - - - - Смотрите этот - ответ в Руководстве &os;. - - - - - - Как использовать zmodem вместе с - tip? - - - - Смотрите этот - ответ в Руководстве &os;. - - Разное - Почему &os; использует гораздо больше места в разделе - подкачки, чем &linux;? + Почему &os; использует много места в разделе подкачки + даже при большом объёме свободной памяти? - Это только кажется, что для &os; требуется больше места - на разделе подкачки, чем для &linux;. На самом деле это не - так. Главное отличие &os; от &linux; в этом плане заключается - в том, что &os; активно перемещает неиспользуемые страницы + &os; активно перемещает неиспользуемые страницы памяти, к которым не было обращений, в раздел подкачки, чтобы увеличить объём доступной физической памяти для - активного использования. &linux; же перемещает страницы - памяти в раздел подкачки только в крайнем случае. Получаемое - во &os; увеличение нагрузки на раздел подкачки компенсируется - более эффективным использованием оперативной памяти. + активного использования. Такое активное использование + раздела подкачки компенсируется использованием дополнительной + свободной оперативной памяти для кеширования. - Заметьте, что, хотя &os; предпочитает использовать раздел - подкачки, она не может сбросить все неактивные страницы в - своп при полностью неактивной системе. Так что вряд ли может - возникнуть ситуация, когда, проснувшись рано утром, вы - обнаружите, что вся ваша система находится в разделе подкачки, - хотя она простаивала всю ночь. + Заметьте, что хотя &os; предпочитает использовать + раздел подкачки, страницы не перемещаются произвольно + при полностью неактивной системе. По этой причине + система не будет находиться целиком в разделе подкачки + после ночного простаивания. Почему утилита &man.top.1; показывает очень маленький объём свободной памяти, даже когда запущено всего лишь несколько приложений? Просто дело в том, что под свободной памятью подразумевается никак не используемая память. Вся память, - которая вашей программе явно не выделялась, используется + которая программам явно не выделялась, используется ядром &os; для дискового кэша. Значения, показываемые утилитой &man.top.1;, помеченные как Inact, Cache и Buf - это всё кэшированные данные разных степеней устаревания. То, что данные находятся в кэше, означает, что система не будет обращаться к медленному диску снова за теми данными, обращение к которым было недавно, повышая таким образом общую производительность. В общем случае маленькие значения в пункте Free, показываемые утилитой &man.top.1; для свободной памяти - это хорошо, если, конечно они не очень маленькие. Почему командой chmod невозможно изменить права на символические ссылки? Символические ссылки не имеют атрибутов доступа, и по умолчанию утилита &man.chmod.1; следует по символической ссылке, чтобы по возможности изменить права доступа на - исходный файл. Поэтому, если - у вас есть файл, скажем, с именем foo и - символическая ссылка bar на этот файл, - то эта команда всегда будет выполняться успешно. + исходный файл. Для файла foo с + символической ссылкой bar на этот файл + эта команда всегда будет выполняться успешно. &prompt.user; chmod g-w bar Однако права на файл bar не изменятся. Чтобы это работало, используйте опцию или вместе с опцией . Обратитесь к страницам Справочника по команде &man.chmod.1; и по &man.symlink.7;. - Опция выполняет команду &man.chmod.1; - рекурсивно. Будьте осторожны, задавая - каталоги или символические ссылки на каталоги в параметрах - &man.chmod.1;. Если вы хотите изменить права на каталог, - на который указывает символическая ссылка, используйте - &man.chmod.1; без опций и следуйте символической ссылке - с помощью лидирующего слэша (/). Например, если + Опция выполняет &man.chmod.1; + рекурсивно. Будьте внимательны, + задавая каталоги или символические ссылки на каталоги + в параметрах &man.chmod.1;. Чтобы изменить права на + каталог, на который указывает символическая ссылка, + используйте &man.chmod.1; без опций и следуйте + символической ссылке с помощью лидирующего слэша + (/). Например, если foo является символической ссылкой - на каталог bar, а - вы хотите изменить права на foo (на - самом деле bar), - вы должны выполнить команду типа следующей: + на каталог bar, то чтобы изменить + права на foo (на самом деле на + bar), выполните такую команду: &prompt.user; chmod 555 foo/ - Если задан лидирующий слэш, то &man.chmod.1; будет - следовать символической ссылке, foo, + Если задан ведущий слэш, то &man.chmod.1; будет + следовать символической ссылке foo, меняя права на каталог bar. Можно ли запускать программы для DOS во &os;? - Да, вы можете использовать программу эмуляции DOS emulators/doscmd, включённую в + Да. Программа эмуляции DOS + emulators/doscmd включена в Коллекцию Портов &os;. - Если doscmd вас не удовлетворит, - то дополнительная утилита emulators/pcemu эмулирует 8088 и набор + Если doscmd не достаточно, + emulators/pcemu эмулирует 8088 и набор сервисов BIOS, достаточный для запуска многих приложений - текстового режима DOS. Ей требуется X Window System. + текстового режима DOS. Требуется X Window System. - Также можно попробовать emulators/dosbox из Коллекции Портов - &os;. Программа в основном предназначена для эмуляции старых - игр, написанных под DOS, для хранения файлов которых используется + В Коллекции Портов &os; также имеется + emulators/dosbox. Программа в основном + предназначена для эмуляции старых игр, написанных под DOS, + для хранения файлов которых используется локальная файловая система. Что мне нужно сделать, чтобы перевести документацию &os; на родной язык? - Ознакомьтесь с - FAQ по Переводам из &os; Documentation Project + Ознакомьтесь с FAQ + по Переводам из &os; Documentation Project Primer. Почему возвращается моя электронная почта, отправленная на любой из адресов FreeBSD.org? В почтовой системе FreeBSD.org в Postfix применяются некоторые - более строгие проверки входящей почты, и отвергаются сообщения, - которые сформированы неправильно либо потенциально являются спамом. - Ваша почта может не приниматься по одной из следующих - причин: + проверки входящей почты, и отвергаются сообщения, + которые были неправильно сформированы при пересылке либо + как-то иначе похожи на спам. + Некоторые из требований: - Электронная почта была послана с домена или блока - IP-адресов, которые известны нам как спамеры. - - Почтовые серверы &os; отвергают электронную почту от - известных источников спама. Если вы пользуетесь услугами - компании или домена, рассылающего или пересылающего спам, - пожалуйста, переключитесь на другого поставщика услуг, который - этого не делает. + IP-адрес клиента SMTP должен иметь обратное + преобразование в символическое имя. - Тело сообщения электронной почты содержит только - HTML. - - Почта должна посылать только как обычный текст. - Пожалуйста, настройте ваш почтовый агент на отправку только - текста. + Полное имя хоста, указанное на этапе EHLO/HELO + в процессе обмена сообщениями SMTP, должно разрешаться + в IP-адрес клиента. + - - Почтовая программа FreeBSD.org - не может преобразовать - адрес IP подключающегося хоста в символическое имя. + Дополнительные советы по доставке письма: - Работа обратного DNS является стандартным требованием для - принятия почты от хоста. Настройте обратный DNS для IP-адреса - вашего почтового сервера. Многие способы домашнего подключения - (DSL, кабель, коммутируемое соединение и тому подобное) не - предоставляют такой возможности. В таком случае пересылайте - свою электронную почту через почтовый сервер вашего поставщика - услуг. - - + - Имя хоста, указанное на этапе EHLO/HELO процесса обмена - сообщениями SMTP не может быть преобразовано в IP-адрес. - - На этом этапе диалога SMTP, перед принятием почты, - необходим полное и преобразуемое имя хоста. Если у вас нет - имени хоста, который зарегистрирован в DNS, то для пересылки - своей почты вы должны использовать почтовый сервер вашего - поставщика услуг. + Письмо должно быть отправлено в текстовом формате. + Сообщение в почтовый список рассылки, как правило, не + должно иметь размер больше 200 Кбайт. - Ваше сообщение имеет идентификатор, оканчивающийся - строчкой localhost. - - Некоторые почтовые программы генерируют неправильные - идентификаторы сообщений, которые не могут быть приняты. Вам - нужно заставить почтовую программу пользователя генерировать - правильный идентификатор сообщения либо настроить ваш агент - передачи почты на замену этих идентификаторов. + Избегайте избыточного кросспостинга. Выберите + один список рассылки, который + кажется наиболее подходящим. + + Если у вас всё ещё остались трудности при работе + с почтовой инфраструктурой + FreeBSD.org, + отправьте сообщение с подробным описанием на адрес + postmaster@freebsd.org. Укажите в нём + временной интервал для проверки логов — + и обратите внимание, что мы держим журнал почтовых логов + всего за неделю. + (Обязательно укажите часовой пояс или разницу в UTC.) Где можно получить бесплатный доступ к &os;? Хотя &os; не предоставляет бесплатный доступ ни к одному из своих серверов, другие компании предоставляют &unix;-системы с открытым доступом. Стоимость этой услуги различна, также как и ограниченный набор услуг. Arbornet, Inc, также известный как M-Net, предоставляет свободный доступ к &unix;-системам с 1983 года. Начиная на платформе Altos с работающей System III, сайт перешёл на BSD/OS в 1991. В июне 2000 сайт сменил систему снова, теперь на &os;. M-Net может быть доступна через протоколы telnet и SSH и предоставляет доступ к полному набору программного обеспечения &os;. Однако доступ к сети ограничен для членов и спонсоров, которые поддерживают систему, которая работает как неприбыльная организация. M-Net предоставляет также услуги электронной доски объявлений (BBS) и интерактивного чата. - - Grex представляет - собой сайт, очень похожий на M-Net, - включая то же самое - программное обеспечение для электронной доски объявлений (BBS) и - интерактивного чата. Однако платформой является &sun; 4M под - управлением &sunos;. - - Что такое sup и как это можно - использовать? - - - - Сокращение SUP - означает Software Update Protocol, который был разработан в - CMU для синхронизации исходных текстов. Он использовался для - синхронизации исходных текстов на удалённых сайтах с основным - сервером разработки Проекта. - - Протокол SUP использует пропускную способность канала - неэффективно, и был отвергнут. В настоящее время рекомендуемым - методом для синхронизации исходных текстов является протокол - CVSup. - - - - Как зовут этого маленького симпатичного красного парня? У него нет определённого имени, он называется просто даемон BSD. Если вам непременно нужно имя, называйте его beastie. Заметьте, что beastie произносится как BSD. - Больше о даемоне BSD вы можете узнать из его домашней - страницы. + Больше о даемоне BSD можно узнать из его домашней + страницы. Могу ли я использовать изображение даемона BSD? - Вполне. Права на даемона BSD имеет Marshall - Kirk McKusick. Для выяснения подробностей относительно правил - его использования вы можете обратиться к странице автора - Statement on the Use of the BSD Daemon Figure. + Вполне. Права на даемона BSD имеет Marshall Kirk + McKusick. Для выяснения подробностей относительно правил + его использования обратитесь к странице автора Statement + on the Use of the BSD Daemon Figure. - В общем, вы можете свободно использовать изображение в + В общем, использовать изображение можно в высокохудожественном стиле и в личных целях, если даются - соответствующие отсылки. Если вы хотите использовать его в - коммерческих целях, вы должны обратиться к &a.mckusick.email;. - Дополнительная информация находится на домашней странице - Даемона BSD. + соответствующие отсылки. Перед использованием знака в + коммерческих целях обратитесь за разрешением к + &a.mckusick.email;. Дополнительная информация находится + на домашней + странице Даемона BSD. Не найдется ли у вас изображений даемона BSD, которые можно использовать? В каталоге /usr/share/examples/BSD_daemon/ есть рисунки в форматах eps и Xfig. При просмотре списков рассылки, я встретил акроним или другой термин, который мне не понятен. Где я должен посмотреть, что он значит? - Пожалуйста, обращайтесь к - Глоссарию &os;. + Пожалуйста, обращайтесь к Глоссарию + &os;. Почему я должен беспокоиться о цвете велосипедных навесов (bikeshed)? На самом деле, очень краткий ответ на этот вопрос заключается в том, что вы этого делать не должны. Если давать более подробный ответ, то ваше умение делать навесы не должно означать, что вы должны препятствовать другим делать их просто потому, что вам не нравится цвет, в который они собираются их окрашивать. Эта метафора означает, что вам не нужно обсуждать каждую мелочь просто потому, что вы знаете о ней достаточно много. Некоторые люди отмечают, что объём шума, генерируемый при появлении некоторого изменения, находится в обратной зависимости от сложности самого изменения. Более пространный и полный ответ заключается в том, что после очень долгого обсуждения того, должна ли утилита &man.sleep.1; обрабатывать дробное число, заданное в качестве второго аргумента, &a.phk.email; опубликовал большое сообщение, озаглавленное Велосипедный навес (подставьте здесь цвет) на зелёной траве.... Соответствующие части этого сообщения цитируются ниже.
&a.phk.email; on freebsd-hackers, October 2, 1999 Что это за история с навесом для велосипеда? Кто-то из вас задавал такой вопрос. Это долгая история, или же это старая история, но на самом деле она коротка. В начале 1960-х годов Паркинсон (C. Northcote Parkinson) написал книгу Закон Паркинсона, которая содержит много интересных взглядов на процесс управления. [немного выдержек из краткого содержания книги] В конкретном примере велосипедный навес сопоставляется с другим важным объектом - атомной электростанцией. Я полагаю, что это иллюстрирует древность книги. Паркинсон показывает, что вы можете прийти на совещание руководителей и получить добро на строительство многомиллионной или даже многомиллиардной атомной электростанции, но если вы хотите построить навес для велосипеда, то погрязнете в бесконечных обсуждениях. Паркинсон объясняет это тем, что атомная станция настолько большой, дорогой и сложный объект, что люди не могут его осознать и вместо того, чтобы попробовать это сделать, они полагаются на то, что кто-то уже проверил все мелочи до того, как всё зашло так далеко. В своей книге Ричард П. Фейнманн (Richard P. Feynmann) даёт несколько интересных и очень поучительных примеров, связанных с Лос Аламос. Велосипедный навес - это противоположный случай. Любой может построить навес за один уикэнд, и у него ещё останется время посмотреть футбол по телевизору. Так что не важно, насколько хорошо вы готовились к обсуждению, насколько убедительны будут ваши аргументы, кто-нибудь воспользуется шансом показать, что он не зря ест свой хлеб, что он обращает внимание, что он здесь. В Дании это называется оставить отпечаток своего пальца. Это касается личной гордости и престижа, это похоже на возможность указать куда-то и сказать: Вон там! Это сделал я. Это сильно выражено в политиках, но присутствует во многих людях, которые получают возможность сделать это. Просто вспомните об отпечатках ног во влажном цементе.
Юмор от &os; Насколько греется процессор при работе &os;? В. Кто-нибудь делал замеры температуры при работе &os;? Я знаю, что &linux; греется меньше, чем DOS, но никогда не видел упоминания &os;. Наверное, он сильно греется. О. Нет, но мы сделали различные вкусовые тесты у добровольцев с завязанными глазами, которые до этого приняли по 250 микрограмм LSD-25. 35% добровольцев заявило, что &os; имеет вкус апельсина, тогда как вкус &linux; расценивался как фиолетовый туман. Ни одна из групп не отметила значительной разницы в температуре. Мы хотели опубликовать полные результаты этого опроса, когда обнаружили, что слишком много добровольцев покинули помещение во время тестов, что несколько смазало результаты. Думаем, что большинство из них работают сейчас в Apple над их новым GUI чеши и нюхай. Это старый добрый бизнес! - Серьёзно, и &os;, и &linux; используют инструкцию + Если серьёзно, то &os; использует инструкцию HLT (halt), когда система простаивает, что - уменьшает потребление энергии и в свою очередь, выделение тепла. - Вдобавок, если у вас настроен APM (комплексное управление - энергопотреблением), то &os; может переводить процессор в режим - пониженного энергопотребления. + уменьшает потребление энергии и, в свою очередь, выделение тепла. + Вдобавок, если у вас настроен + ACPI (усовершенствованный интерфейс + управления конфигурацией и питанием), то &os; может переводить + процессор в режим пониженного энергопотребления. Кто там скребётся в микросхемах памяти?? В. Делает ли &os; что-нибудь эдакое при компиляции ядра, что вызывает поскрипывание микросхем памяти? При компиляции (и в короткий промежуток времени после обнаружения дисковода при старте системы) от микросхем памяти исходит странный царапающий звук. О. Да! Вы, наверное, видели частое упоминание даемонов в документации по BSD, но не многие знают, что это настоящие нематериальные существа, которые теперь завладели вашим компьютером. Царапающий звук, издаваемый микросхемами памяти - это на самом деле высокочастотное перешёптывание между даемонами, когда они решают, как лучше справиться с различными задачами по администрированию системы. Если шум достиг ваших ушей, команда DOS fdisk /mbr их спугнёт, но не удивляйтесь, если они отреагируют соответствующим образом и попытаются вас остановить. Фактически, если во время выполнения этой команды вы услышите сатанинский голос Билла Гейтса из встроенного динамика, бегите и даже не оглядывайтесь! Избавленные от противостояния с даемонами BSD, близнецы-демоны DOS и &windows; часто могут захватить полный контроль не только над вашей машиной и навлечь вечное проклятие на вашу душу. Теперь, когда вы это знаете, если бы у вас был выбор, думаем, что вы бы предпочли слышать царапающий звук, не так ли? Сколько требуется разработчиков &os;, чтобы сменить электрическую лампочку? Необходимо иметь ровно одну тысячу сто шестьдесят девять разработчиков: Двадцать три сообщат в -CURRENT о том, что не горит свет; Четыре начнут утверждать, что это проблема конфигурации и такие сообщения нужно посылать в -questions; Трое оформят PR по этому поводу, причём одно их них будет направлено в doc и будет содержать только строчку здесь темно; Один закоммитит неоттестированную лампочку, что сломает построение системы, а затем через пять минут вернёт всё назад; Восемь поругаются с авторами PR по поводу включения патчей в PR; Пять сообщат о том, что не проходит компиляция системы; Тридцать один человек ответит, что у них всё работает и - наверное, те выполняли cvsup в неподходящее время; + наверное, те обновились в неподходящее время; Один пошлёт патч для новой лампочки в -hackers; Один пожалуется, что у него имелись патчики ещё три года назад, но когда он послал их в -CURRENT, они были проигнорированы и он имел неудачный опыт работы с системой PR; кроме того предлагаемая лампочка не имеет отражателя. Тридцать семь начнут кричать, что лампочки не относятся к базовой системе, что коммиттеры не имеют права делать такие вещи без опроса общественности и ЧТО ВООБЩЕ -CORE ДЕЛАЕТ ПО ЭТОМУ ПОВОДУ? Две сотни напишут о цвете велосипедного навеса; Трое скажут, что этот патч не соответствует &man.style.9; Семнадцать возразят, что предлагаемая новая лампа подпадает под лицензию GPL; Пятьсот восемьдесят шесть раздуют флейм по поводу сравнения лицензий GPL, BSD, MIT, NPL и личных мнений о неизвестных основателей FSF; Семеро пошлют различные части этих обсуждений в -chat и -advocacy; Один закоммитит предлагаемую лампу, хотя она светит хуже, чем старая; Двое откатят эти изменения с ужасной руганью в журнале коммитта о том, что лучше &os; будет сидеть в темноте, чем с тусклой лампой. Сорок шесть громко воспротивятся этому изменению и потребуют объяснений от -core; Одиннадцать попросят уменьшить размер лампочки, чтобы она подошла к их Тамагочи на случай, если мы когда-нибудь соберёмся переносить &os; на эту платформу; Семьдесят три заявят о SNR в -hackers и -chat и в знак протеста отпишутся; Тринадцать пошлют письма unsubscribe, How do I unsubscribe? или Please remove me from the list с обычной подписью; Один закоммитит работающую лампочку в то время, как все будут слишком заняты руганью, чтобы это заметить; Тридцать один человек напишет, что новая лампочка будет светить на 0.364% ярче, если её откомпилировать с помощью TenDRA (хотя при этом она приобретёт форму куба) и что &os; должна перейти на компилятор TenDRA, а не на GCC; Один заметит, что у лампочки отсутствует цоколь; Девять (включая авторов PR) спросят что такое MFC?; Спустя две недели после смены лампочки пятьдесят семь человек сообщат о том, что света всё равно нет. &a.nik.email; добавил: Я сильно смеялся над всем этим. И тогда я подумал, Постойте-ка, найдётся ли кто-нибудь, чтобы задокументировать это? И на меня снизошло озарение :-) &a.tabthorpe.email; говорит: Нет, настоящие хакеры &os; не боятся темноты! Куда направляются данные, записываемые в /dev/null? Они отправляются в специальную сточную трубу для данных в CPU, где преобразуются в тепло, выдуваемое через охлаждающие вентиляторы. Вот почему охлаждение ЦП становится все более важным; так как люди используют все более быстрые процессоры, они все менее заботятся о данных, все большее их количество оканчивает свой путь в /dev/null, перегревая ЦП. Если вы удалите /dev/null (что соответственно отключит трубу данных в ЦП), то ваш процессор может охладиться, но система начнет переполняться излишними данными и начнет работать с ошибками. Если у вас быстрое сетевое подключение, вы можете охладить CPU, читая данные из /dev/random и посылая их куда-нибудь; однако вы рискуете перегреть ваше сетевое соединение и / или разозлить вашего провайдера, так как большинство данных преобразуется в тепло на его оборудовании, но, как правило, у него хорошее охлаждение, так что если вы не перестараетесь, все должно быть в порядке. Пол Робинсон (Paul Robinson) добавляет: Есть и другие методы. Как знает каждый хороший системный администратор, частью хорошей практики является посылка данных на экран интересным образом, чтобы феи, которые образуют картинку, были счастливы. Экранные феи (часто неправильно называемые пикселами) различаются по цвету головных уборов, которые они носят (красные, зеленые или синие), и прячутся или появляются (показывая, таким образом, цвет своих шляп), когда получают немного пищи. Видеоадаптеры преобразуют данные в еду для фей, а затем посылают ее феям — чем дороже адаптер, тем лучше еда, тем лучше ведут себя феи. Они также нуждаются в постоянной стимуляции — вот зачем нужны хранители экранов. Продолжив наше предположение, вы можете просто выдавать случайные данные на консоль, таким образом позволяя феям их потреблять. Это вовсе приводит к прекращению выделения тепла, феи постоянно счастливы, а данные быстро исчезают, даже если на вашем экране все выглядит несколько хаотично. Как бывший администратор крупного провайдера, который имел много проблем при попытке поддерживать постоянную температуру в серверной комнате, я выступаю против того, чтобы люди посылали ненужные им данные в сеть. Волшебников, которые выполняют коммутацию пакетов и маршрутизацию, это также затрудняет. Сложные темы Как можно узнать больше о внутреннем устройстве &os;? - В настоящее время существует только одна книга по внутреннему - устройству ОС, посвящённая &os;, а именно The Design and - Implementation of the &os; Operating System Маршалла - Кёрка МакКузика (Marshall Kirk McKusick) и Джорджа В. Невилле-Нейла - (George V. Neville-Neil), ISBN 0-201-70245-2. В ней - рассматривается &os; версии 5.X. - - Кроме того, большинство общих знаний о &unix; непосредственно - применимо к &os;. - Список относящихся к делу книг можно найти в разделе Руководства Библиография по внутреннему устройству операционной системы. + + Кроме того, большинство общих знаний о &unix; непосредственно + применимо к &os;. Как можно оказать помощь проекту &os;? Пожалуйста, обратитесь к соответствующей статье, в которой вы получите советы относительно того, как это сделать. Ваша помощь более чем приветствуется! Что такое снапшоты и релизы? - В Хранилище - CVS сейчас находятся четыре активно/полуактивно - развивающихся ветки &os;. (Более ранние ветки изменяются - очень редко, именно поэтому в разработке только четыре - активных ветки): + В Хранилище + Subversion сейчас находятся &rel.numbranch; + активно/полуактивно развивающихся ветки &os;. (Более + ранние ветки изменяются очень редко, именно поэтому в + разработке только &rel.numbranch; активные ветки): &rel3.releng;, также известная как &rel3.stable; &rel2.releng;, также известная как &rel2.stable; &rel.releng;, также известная как &rel.stable; &rel.head.releng;, также известная как -CURRENT и &rel.head; - HEAD - это не реальный тэг ветки, - в отличие от остальных; это просто символьная константа - для обозначения - текущего, не ветвящегося, находящегося в - разработке дерева, то есть + HEAD - это не настоящий тэг ветки. + Это символьная константа для обозначения текущего, + не ветвящегося, находящегося в разработке дерева, то есть -CURRENT. На данный момент -CURRENT является находящимся в разработке деревом &rel.head.relx;; ветка &rel.stable;, &rel.releng;, отделилась от -CURRENT &rel.relengdate; года, а ветка &rel2.stable;, &rel2.releng;, отделилась от -CURRENT &rel2.relengdate;. - - Как самому сделать релиз? - - - - Пожалуйста, обратитесь к статье о процессе выпуска - релизов. - - - - - - По команде make world - были переустановлены все программы. - - - - Да, так и должно быть; как говорит название этой команды, - make world выполняет - построение всех системных - файлов с нуля, так что в итоге можете быть уверены, что получите - чистую рабочую систему (вот почему это занимает столько - времени). - - Если в момент запуска команд make - world или make - install определена переменная - окружения - DESTDIR, то вновь создаваемые файлы будут - помещены в дерево каталогов. идентичное существующему, с корнем, - располагающимся в ${DESTDIR}. Однако некоторые - случайные комбинации модификаций совместно используемых библиотек - и версий компилируемых программ при исполнении команды - make world, могут - этому помешать. - - - - - - Почему cvsup.FreeBSD.org не - является одной DNS-записью - для нескольких машин для распределения нагрузки между - несколькими CVSup-серверами? - - - - Хотя зеркала CVSup обновляются - с основного CVSup-сервера каждый - час, это обновление может происходить в любой момент в течение - часа. Это значит, что некоторые серверы будут иметь более новый - код, чем остальные, хотя разница между версиями кода не превышает - часа. Если бы для серверов cvsup.FreeBSD.org использовалась одна - DNS-запись, то простое перенаправление пользователей на случайно - выбранный сервер CVSup, при условии, - что CVSup будет запускаться - два раза подряд, может привести к сгрузке кода, более старого, чем - тот, что присутствует в системе. - - - - Можно ли работать с -CURRENT при ограниченном доступе в Internet? Да, это можно делать без скачивания - полного дерева исходных текстов с помощью системы + полного дерева исходных текстов с помощью системы CTM. - - Как вы разделяете дистрибутив на файлы по 1392 Кбайт? - - - - Команда &man.split.1; в современных BSD-системах имеет опцию - , позволяющую разрезать файлы на части с точностью до - байта. - - Вот пример из файла - /usr/src/release/Makefile. - - ZIPNSPLIT= gzip --no-name -9 -c | split -b 1392k - - - - - Я написал некоторое добавление к ядру, кому его послать? Обратитесь к статье о том, как помочь проекту &os;, чтобы выяснить, как это сделать. И спасибо Вам за Ваши усилия! - - Как распознаются и инициализируются адаптеры ISA - Plug N Play? - - - - От: Фрэнка Дурды IV (Frank Durda IV) - uhclem@nemesis.lonestar.org - - Если рассматривать на самом низком уровне, то существует - несколько портов ввода/вывода, в которые должны выводить - информацию все адаптеры PnP, когда компьютер пытается - выполнить запрос о наличии установленных адаптеров. Так что, - когда запускается процедура определения адаптеров PnP, она - выполняет запрос о наличии каких-либо адаптеров PnP, а все - такие адаптеры выдают свой номер модели при чтении того же - порта ввода/вывода, поэтому процедура определения получит - ответ на свой запрос, состоящий из логически наложенных - номеров моделей, интерпретируемый как да. - В этом ответе по крайней мере один бит будет установлен в - единицу. Затем код определения адаптеров может - выключать адаптеры с ID (назначаемыми - µsoft;/&intel;), большими, чем X. - Потом следует попытка определить, остались ли ещё адаптеры, - отвечающие на запрос. Если ответ 0, то - адаптеров с ID, большими чем X, нет. - После этого делается попытка определить наличие адаптеров с - номерами, меньшими чем X. В заключение - происходит запрос на выключение адаптерам, большим чем - X - (limit / 4). - Запрос повторяется. Применив этот метод полудвоичного поиска - границ расположения ID достаточное количество раз, код - идентификации найдёт все адаптеры PnP, установленные в данной - машине за число итераций, гораздо меньшее, чем может занять - перебор 264 возможных вариантов - ID. - - ID представляет собой два 32-разрядные числа (отсюда число - 264) + 8 бит контрольной суммы. - Первые 32 бита являются идентификатором производителя. - Они никогда не сообщаются, однако часто бывает, что различные - типы адаптеров от одного и того же производителя имеют - различные 32-битные значения идентификатора производителя. - Необходимость в 32 разрядах только для задания - производителя адаптера выглядит несколько излишним. - - Оставшиеся 32 бита являются серийным номером или - чем-либо, делающим этот адаптер уникальным. Производитель - не должен выпускать других адаптеров, имеющих то же самое - значение этих битов, если, конечно, у них не различаются при - этом старшие биты идентификатора производителя. Так что - вы можете иметь несколько адаптеров одинакового типа; при - этом, 64-разрядные номера будут разными. - - Группы по 32 бита не могут быть нулевыми. Это - позволяет при логическом объединении OR их номеров получать - ненулевое значение во время начального поиска адаптеров. - - Как только система определила ID всех адаптеров, она - активизирует каждый адаптер, по одному за раз (через те же - порты ввода/вывода), и определяет, какие ресурсы требуются - данному адаптеру, какие возможные прерывания доступны и т.д. - Сканирование и сбор информации происходит по всем адаптерам. - - Эта информация соотносится с содержащейся в файлах ECU - на диске или в MLB BIOS. Поддержка PnP из ECU и BIOS для - аппаратуры на MLB обычно имеет синтетический характер, и - периферия не выполняет полностью процедуру настоящего PnP. - Однако, используя BIOS и информацию из ECU, процедура - инициализации может обнаружить устройства PnP, которые не - могут быть найдены другим способом. - - Затем устройства PnP опрашиваются ещё раз для назначения - им портов ввода/вывода, DMA, IRQ и адресов отображаемой памяти. - Теперь устройства должны иметь именно такие настройки и они - должны оставаться такими до следующей перезагрузки, хотя нигде - не сказано, что вы не можете их менять, когда захотите. - - Здесь сделано много упрощений, однако общую идею вы должны - уловить. - - µsoft; использовала для PnP некоторые порты статуса - первого принтера, по их логике, не существует адаптеров, - использующих эти адреса для ввода/вывода. Я обнаружил один - такой адаптер принтера от IBM, который декодирует запись в - порт статуса в момент начального опроса устройств PnP, на - что µsoft; ответила хулиган. Так что они - выполняют запись в порт статуса принтера для установки адресов, - вдобавок используют этот адрес + 0x800, и - ещё один порт ввода/вывода используют для чтения, который - может располагаться где угодно в диапазоне между - 0x200 и 0x3ff. - - - - - - Мне нужно старшее число для написанного мною драйвера - устройства. - - - - В версиях &os;, вышедших после февраля 2003 года, есть - механизм динамического и автоматического выделения старших - номеров для драйверов устройств во время выполнения (смотрите - &man.devfs.5;), поэтому в этом нет необходимости. - - - - - - Альтернативный метод размещения каталогов - - - - В ответ на вопрос о других методах размещения каталогов - могу сказать, что используемая в настоящее схема не претерпела - изменений с того момента, как я реализовал её в 1983 году. - Эти соглашения были разработаны для оригинальной файловой - системы FFS, и я никогда их не пересматривал. Эта схема хорошо - работает, позволяя избежать переполнения групп дорожек. Как - некоторые из вас заметили, она работает плохо при поиске. - Большинство файловых систем создаются из архивов, которые были - созданы с глубиной первого поиска (aka ftw). Это приводит к - тому, что их каталоги размещаются на нескольких группах дорожек, - создавая наихудший случай для последующего поиска глубиной один. - Если бы было известно общее количество каталогов, которые должны - быть созданы, выходом было бы создание каталогов в количестве - (total / fs_ncg) на каждую группу - дорожек. Очевидно, что пришлось бы придумать некоторую эвристику - для определения этого числа. Даже при использовании небольшого - фиксированного количества, скажем 10, ситуация улучшилась бы на - порядок. Чтобы различать операции восстановления от обычных - операций (для которых текущий алгоритм, вероятно, является - более разумным), вы могли бы использовать объединение в кластеры - объёмом до 10, если они помещаются в 10-секундном окне. - Как бы то ни было, я думаю, что это большое поле для - экспериментов. - - &a.mckusick.email;, сентябрь 1998 года - - - - Что делать при аварийном останове системы? Вот типичная паника ядра: Fatal trap 12: page fault while in kernel mode fault virtual address = 0x40 fault code = supervisor read, page not present instruction pointer = 0x8:0xf014a7e5 stack pointer = 0x10:0xf4ed6f24 frame pointer = 0x10:0xf4ed6f28 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 80 (mount) interrupt mask = trap number = 12 panic: page fault - Если вы видите такое сообщение, просто его воспроизвести - и послать нам не достаточно. Здесь важно значение указателя - инструкций; к сожалению, его значение зависит - от конфигурации ядра. Другими словами, его значение меняется - в зависимости от конкретного ядра, которое вы используете. - Если вы используете ядро GENERIC одного - из снэпшотов, то кто-то ещё может отследить функцию, вызвавшую - ошибку, но если вы работаете со специально отконфигурированным - ядром, то только вы можете сказать нам, + Этого сообщения не достаточно. Здесь важно значение + указателя инструкций, но оно зависит от конфигурации, + поскольку значение меняется для каждого конкретного файла + ядра. Если это ядро GENERIC из + одного из снэпшотов, то кто-то ещё может отследить + функцию, вызвавшую ошибку, но в случае со специально + сконфигурированным ядром только вы можете сказать нам, где случилась ошибка. - Вот что вы должны сделать: + Чтобы продолжить: Запишите значение указателя инструкций. Заметьте, что часть 0x8: в этом случае не важна: нам нужна часть 0xf0xxxxxx. Когда система перезагрузится, сделайте следующее: &prompt.user; nm -n kernel.that.caused.the.panic | grep f0xxxxxx где f0xxxxxx — это значение указателя инструкций. Однако неприятность заключается в том, что вы не получите точного соответствия, так как в таблице имен ядра для точек входа в функции даны адреса на начало функций, а указатель инструкций будет указывать куда-то внутрь её тела. Если вы не получили точного соответствия, опустите последнюю цифру в значении - указателя инструкций и попробуйте снова, то есть: + указателя инструкций и попробуйте снова: &prompt.user; nm -n kernel.that.caused.the.panic | grep f0xxxxx Если и это не привело ни к каким результатам, отрежьте следующую цифру. Повторяйте, пока не получите хоть что-то. Результатом будет список функций, которые, возможно, привели к аварийному останову. Этот механизм обнаружения ошибочного места довольно неточен, но это всё же лучше, чем ничего. Тем не менее, лучшим способом выяснить причину, вызвавшую аварийный останов, является получение аварийного дампа системы, а затем использование &man.kgdb.1; для получения трассировки вызовов в этом дампе. В любом случае, метод таков: Убедитесь в том, что в файле конфигурации ядра имеется - следующая строка - (/usr/src/sys/arch/conf/MYKERNEL): + следующая строка: makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols Перейдите в каталог /usr/src: &prompt.root; cd /usr/src Скомпилируйте ядро: - &prompt.root; make buildkernel KERNCONF=MYKERNEL + &prompt.root; make buildkernel KERNCONF=MYKERNEL Дождитесь завершения компиляции. &prompt.root; make installkernel KERNCONF=MYKERNEL Выполните перезагрузку. - Если вы не используете переменную make - KERNCONF, то будет собрано и + Если не указать KERNCONF, то + будет собрано и установлено ядро GENERIC. В процессе выполнения команды &man.make.1; будут построены два ядра, /usr/obj/usr/src/sys/MYKERNEL/kernel и /usr/obj/usr/src/sys/MYKERNEL/kernel.debug. kernel будет установлен как /boot/kernel/kernel, тогда как kernel.debug может быть использован в качестве источника отладочных символов для &man.kgdb.1;. - Чтобы включить сброс аварийного дампа, вам нужно - отредактировать файл /etc/rc.conf так, + Чтобы получать аварийный дамп, отредактируйте файл + /etc/rc.conf так, чтобы устройство dumpdev указывало на - раздел подкачки (или имело значение AUTO). + раздел подкачки или имело значение AUTO. В этом случае скрипты &man.rc.8; будут вызывать команду - &man.dumpon.8; для создания аварийных дампов. Также вы - можете запустить команду &man.dumpon.8; вручную. После + &man.dumpon.8; для создания аварийных дампов. Эту команду + можно также запускать вручную. После аварийной остановки аварийный дамп может быть получен с помощью программы &man.savecore.8; если значение переменной dumpdev было установлено в /etc/rc.conf, скрипты &man.rc.8; запустят &man.savecore.8; автоматически и поместят аварийный дамп в каталог /var/crash. Аварийные дампы &os; обычно имеют размер, равный - физическому объёму оперативной памяти вашей машины. Так - что если у вас установлено 512 Мбайт ОЗУ, вы получите - дамп размером 512 Мбайт. Поэтому вы должны - удостовериться, что в каталоге /var/crash - достаточно места для хранения дампа. Либо вы можете вручную - запустить &man.savecore.8; и создать аварийный дамп в другом + объёму оперативной памяти. Поэтому убедитесь в наличии + достаточного места для хранения дампа в каталоге + /var/crash. Либо запустите вручную + &man.savecore.8;, чтобы создать аварийный дамп в другом каталоге, где достаточно места. Размер аварийного дампа можно уменьшить, указав в конфигурации ядра - options MAXMEM=N, - где N — значение в Кбайт + options MAXMEM=N, где + N — значение в Кбайт для объёма памяти, которое будет использоваться ядром. - Например, если у вас 1 Гбайт ОЗУ, вы можете ограничить - использование памяти ядром 128 Мбайтами, так что - размер аварийного дампа будет равен 128 Мбайт, а не + Например, для 1 Гбайт ОЗУ установите ограничение на + использование памяти ядром в 128 Мбайт, так чтобы + размер аварийного дампа был равен 128 Мбайт, а не 1 Гбайт. - Как только вы получили аварийный дамп, вы можете выполнить - трассировку вызовов с помощью &man.kgdb.1; таким образом: + Как только аварийный дамп получен, трассировку вызовов + можно получить таким образом: &prompt.user; kgdb /usr/obj/usr/src/sys/MYKERNEL/kernel.debug /var/crash/vmcore.0 (kgdb) backtrace - Заметьте, что при этом может быть выведено несколько экранов - информации; в идеале вы должны использовать &man.script.1; для их - перехвата. При использовании необработанного образа ядра со всей - отладочной информацией может быть найдена конкретная строка исходного - текста ядра, при достижении которой случилась аварийная остановка. - Для выяснения последовательности событий, приведших к аварийному - останову, обычно читается трассировка стека снизу вверх. Вы можете - также использовать &man.kgdb.1; для вывода значений различных - переменных или структур, чтобы выяснить состояние системы во время - аварии. + Заметьте, что это может дать несколько экранов + полезной информации. Лучше всего использовать + &man.script.1; для перехвата всего вывода. При + использовании необработанного файла ядра со всей + отладочной информацией может быть найдена конкретная + строка исходного текста ядра, при достижении которой + случилась аварийная остановка. Для выяснения + последовательности событий, приведших к аварийному + останову, трассировка стека обычно читается снизу вверх. + Также можно использовать &man.kgdb.1; для вывода значений + различных переменных или структур, чтобы выяснить + состояние системы во время аварии. - Теперь, если вы в самом деле душевнобольной и у вас есть - второй компьютер, то вы можете настроить &man.kgdb.1; для - удалённой отладки, так, что сможете использовать &man.kgdb.1; - на одном компьютере, чтобы отладить ядро на другом, включая - использование точек останова, пошагового прохода по коду - ядра, всё как с обычной прикладной программой. + Если есть второй компьютер, то можно настроить + &man.kgdb.1; для удалённой отладки, включая точки + останова и пошаговый проход по коду ядра. - Если у вас включена поддержка DDB и - ядро переходит в режим отладки, вы можете намеренно вызвать - аварийный останов (и создание аварийного дампа), набрав - panic в командной строке - ddb. Этот процесс может снова вызвать - отладчик. В этом случае наберите continue - и процесс будет завершён созданием аварийного дампа. + Если включена поддержка DDB и + ядро переходит в режим отладки, можно намеренно вызвать + аварийный останов и создание аварийного дампа, набрав + panic в приглашении командной строки + ddb. Выполнение фазы аварийного + останова может снова остановиться с вызовом отладчика. + В этом случае наберите continue, и + процесс будет завершён созданием аварийного дампа. Перестала работать функция dlsym() для исполняемых файлов ELF! По умолчанию при работе с форматом ELF символы, определённые в исполняемом файле, не доступны динамическому загрузчику. Поэтому при вызове функции dlsym(), которая осуществляет поиск по дескриптору, полученному после вызова dlopen(NULL, flags), желаемый результат достигнут не будет. - Если вы хотите осуществить поиск в выполнимом файле + Чтобы осуществить поиск символов в исполняемом файле процесса с помощью функции dlsym(), - вам нужно скомпоновать выполнимый файл с опцией + выполните компоновку исполняемого файла с параметром компоновщика ELF (&man.ld.1;). Как я могу увеличить или уменьшить адресное пространство ядра в архитектуре i386? - По умолчанию размер адресного пространства ядра для i386 - равен 1 Гбайт (2 Гбайт для PAE). Если вы используете - &os; в качестве сервера с интенсивной сетевой нагрузкой (скажем, - большой FTP или HTTP сервер) или хотите использовать ZFS, то - вы можете обнаружить, что этого недостаточно. + По умолчанию размер адресного пространства ядра для + i386 равен 1 Гбайт (2 Гбайт для PAE). Для + работы сервера с интенсивной сетевой нагрузкой или при + использовании ZFS этого может быть недостаточно. - Чтобы увеличить доступное пространство, добавьте следующую - строку в файл конфигурации ядра и пересоберите его: + Чтобы увеличить доступное пространство, добавьте + следующую строку в файл конфигурации ядра и пересоберите + ядро: options KVA_PAGES=N Чтобы получить нужное значение для N, разделите желаемый размер - адресного пространства (в мегабайтах) на четыре. (Например, - для 2 Гбайт это будет 512.) + адресного пространства (в мегабайтах) на четыре (для + 2 Гбайт это будет 512). Наши благодарности Этот небольшой скромный документ с ответами на часто задаваемые вопросы создавался, переписывался, редактировался, сокращался, растягивался, уродовался, потрошился, пристально разглядывался, полностью перетряхивался, обдумывался, отвергался, перестраивался, критиковался и снова укреплялся в течение последнего десятилетия силами сотен, если не тысяч, людей. Постоянно. Мы хотим поблагодарить всех их и приглашаем вас присоединиться, - чтобы сделать этот FAQ ещё лучше. + чтобы сделать этот FAQ ещё лучше. &bibliography;