diff options
Diffstat (limited to 'documentation/content/ru')
60 files changed, 2920 insertions, 4364 deletions
diff --git a/documentation/content/ru/books/arch-handbook/book.adoc b/documentation/content/ru/books/arch-handbook/book.adoc index 02fb3a4420..02d82d2ae2 100644 --- a/documentation/content/ru/books/arch-handbook/book.adoc +++ b/documentation/content/ru/books/arch-handbook/book.adoc @@ -2,7 +2,7 @@ title: FreeBSD Architecture Handbook authors: - author: The FreeBSD Documentation Project -copyright: Copyright © 2000-2006, 2012-2013 The FreeBSD Documentation Project +copyright: 2000-2006, 2012-2013 The FreeBSD Documentation Project description: FreeBSD Architecture Handbook trademarks: ["freebsd", "apple", "microsoft", "unix", "general"] tags: ["Arch Handbook", "FreeBSD"] diff --git a/documentation/content/ru/books/faq/_index.adoc b/documentation/content/ru/books/faq/_index.adoc index 40da854402..4c7f78082d 100644 --- a/documentation/content/ru/books/faq/_index.adoc +++ b/documentation/content/ru/books/faq/_index.adoc @@ -1,12 +1,17 @@ --- -title: Часто задаваемые вопросы по FreeBSD 11.X и 12.X +title: Часто задаваемые вопросы по FreeBSD 12.X и 13.X authors: - - author: Проект документации FreeBSD -copyright: 1995-2020 The FreeBSD Documentation Project + - author: Проект документирования FreeBSD +copyright: 1995-2023 The FreeBSD Russian Documentation Project +description: Часто задаваемые вопросы и ответы по FreeBSD 11.X, 12.X и 13.X, касающиеся всех аспектов FreeBSD trademarks: ["freebsd", "ibm", "ieee", "adobe", "intel", "linux", "microsoft", "opengroup", "sun", "netbsd", "general"] -isIndex: true +bookOrder: 5 +tags: ["FAQ", "FreeBSD FAQ"] +layout: single --- +// Original EN revision (28.08.2023): 7d1e32e5138658ffb86ea5e0fb14e4740830582c + = Часто задаваемые вопросы по FreeBSD {rel2-relx} и {rel-relx} :doctype: book :toc: macro @@ -18,22 +23,18 @@ isIndex: true :source-highlighter: rouge :experimental: :images-path: books/faq/ -:rel-numbranch: 4 +:rel-numbranch: 3 :rel-head: 14-CURRENT :rel-head-relx: 14.X -:rel-head-releng: head/ +:rel-head-releng: main :rel-relx: 13.X :rel-stable: 13-STABLE -:rel-releng: stable/13/ -:rel-relengdate: December 2018 +:rel-releng: stable/13 +:rel-relengdate: January 2021 :rel2-relx: 12.X :rel2-stable: 12-STABLE -:rel2-releng: stable/12/ +:rel2-releng: stable/12 :rel2-relengdate: December 2018 -:rel3-relx: 11.X -:rel3-stable: 11-STABLE -:rel3-releng: stable/11/ -:rel3-relengdate: October 2016 ifdef::env-beastie[] ifdef::backend-html5[] @@ -57,9 +58,13 @@ endif::[] [.abstract-title] Аннотация -Этот документ является так называемым FAQ (Frequently Asked Questions), то есть списком Часто Задаваемых Вопросов по FreeBSD версий {rel3-relx}, {rel2-relx} и {rel-relx}. Мы прилагаем все усилия, чтобы сделать этот FAQ максимально информативным; если у вас есть идеи по его усовершенствованию, шлите их на адрес {freebsd-doc}. +Этот документ является так называемым FAQ (Frequently Asked Questions), то есть списком Часто Задаваемых Вопросов по FreeBSD версий {rel-relx} и {rel2-relx}. +Мы прилагаем все усилия, чтобы сделать этот FAQ максимально информативным; если у вас есть идеи по его усовершенствованию, присылайте их на адрес {freebsd-doc}. -Последняя редакция этого документа всегда доступна с extref:{faq}[Web-сервера FreeBSD]. Его также можно получить в виде одного большого link:.[ HTML-файла] по HTTP или в ряде других форматов с link:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/[FTP-сервера]. +Самая последняя редакция этого документа всегда доступна на extref:{faq}[Web-сайте FreeBSD]. +Его также можно сгрузить в виде одного +большого файла в формате link:.[HTML] по HTTP или в различных других форматах с +https://download.freebsd.org/doc/[FTP-сервера FreeBSD]. ''' @@ -69,9 +74,10 @@ toc::[] === FreeBSD - что это такое? -FreeBSD - это современная операционная система для настольных компьютеров, ноутбуков, серверов и встраиваемых систем с поддержкой большого количества http://www.FreeBSD.org/ru/platforms/[платформ]. +FreeBSD - это современная операционная система для настольных компьютеров, ноутбуков, серверов и встраиваемых систем с поддержкой большого количества https://www.FreeBSD.org/ru/platforms/[платформ]. -В основе FreeBSD лежит операционная система "4.4BSD-Lite" Калифорнийского Университета (Беркли) с некоторыми усовершенствованиями из "4.4BSD-Lite2". Также она косвенно базируется на 386BSD (BSD Net/2, перенесённой на платформу i386(TM) Уильямом Джолитцем (William Jolitz)), хотя от того первоначального кода осталось очень мало. +В основе FreeBSD лежит операционная система "4.4BSD-Lite" Калифорнийского Университета (Беркли) с некоторыми усовершенствованиями из "4.4BSD-Lite2". +Также она косвенно базируется на 386BSD (BSD Net/2, перенесённой на платформу i386(TM) Уильямом Джолитцем (William Jolitz)), хотя от того первоначального кода осталось очень мало. FreeBSD используется компаниями, Интернет-провайдерами, научными работниками, профессионалами в вычислительной технике, студентами и рядовыми пользователями по всему миру для работы, образования и отдыха. @@ -82,28 +88,53 @@ FreeBSD используется компаниями, Интернет-пров Цель проекта FreeBSD - предоставить быструю и стабильную операционную систему общего назначения, которую можно использовать в любых целях без каких-либо ограничений. +[[bsd-license-restrictions]] === Есть ли в лицензии FreeBSD какие-то ограничения? -Да. Эти ограничения не касаются аспектов использования кода, но главным образом описывают отношение к Проекту FreeBSD. Текст лицензионного соглашения доступен http://www.FreeBSD.org/ru/copyright/freebsd-license/[здесь], и вкратце он может быть изложен следующим образом: +Да. +Эти ограничения не касаются аспектов использования кода, но главным образом описывают отношение к этому коду со стороны Проекта FreeBSD. Текст лицензионного соглашения доступен https://www.FreeBSD.org/ru/copyright/freebsd-license/[здесь], и вкратце он может быть изложен следующим образом: * Не говорите, что это написано вами. * Не судитесь с нами, если что-то не работает. * Не удаляйте и не изменяйте лицензию. -Многие из нас вкладывают в проект значительные усилия и определённо были бы не против получения финансовой поддержки, но требовать её мы не будем. Мы надеемся, что наша основная и самая значительная "миссия" - предоставить код всем желающим, для любых целей, так чтобы он нашел самое широкое применение и принёс наибольшую пользу. Это, на наш взгляд, одна из самых фундаментальных целей Free Software, которую мы с энтузиазмом поддерживаем. - -Часть исходного кода нашей системы, подпадающая под действие http://www.FreeBSD.org/copyright/COPYING[GNU General Public License (GPL)] или http://www.FreeBSD.org/copyright/COPYING.LIB[GNU Library General Public License (LGPL)], имеет несколько больше ограничений, хотя и представляет собой навязывание доступа к исходным текстам, а не наоборот, как обычно. Из-за дополнительных сложностей, которые могут возникнуть в случае коммерческого использования программного обеспечения GPL, мы стараемся, где только это возможно, заменить подобное программное обеспечение аналогичным, но подпадающим под менее строгую http://www.FreeBSD.org/copyright/freebsd-license/[ лицензию FreeBSD]. - +Многие из нас вкладывают в проект значительные усилия и определённо были бы не против получения небольшой финансовой поддержки сейчас и в будущем, но мы на этом не настаиваем. +Мы надеемся, что наша основная и самая значительная "миссия" - предоставить код всем желающим, для любых целей, так чтобы он нашел самое широкое применение и принёс наибольшую пользу. Это, на наш взгляд, одна из самых фундаментальных целей Free Software, которую мы с энтузиазмом поддерживаем. + +Часть исходного кода нашей системы, подпадающая под действие +https://www.FreeBSD.org/copyright/COPYING[GNU General Public License (GPL)] или +https://www.FreeBSD.org/copyright/COPYING.LIB[GNU Library General Public +License (LGPL)], имеет несколько больше ограничений, хотя и представляет собой +навязывание доступа к исходным текстам, а не наоборот, как обычно. Из-за +дополнительных сложностей, которые могут возникнуть в случае коммерческого +использования программного обеспечения GPL, мы стараемся, где только это +возможно, заменить подобное программное обеспечение аналогичным, но подпадающим +под менее строгую https://www.FreeBSD.org/copyright/freebsd-license/[лицензию +FreeBSD]. + +[[replace-current-OS]] === Может ли FreeBSD заменить операционную систему, используемую мною сейчас? -Для большинства людей, да. Но этот ответ не так уж однозначен. +Для большинства людей это возможно. +Но этот вопрос не так уж и однозначен. -Большинство пользователей на самом деле не используют операционную систему. Они работают с приложениями. Именно прикладные программы и используют операционную систему. FreeBSD разработана для того, чтобы дать надежное и полнофункциональное окружение для приложений. Она поддерживает широкий спектр Web-браузеров, офисных пакетов, программ для работы с электронной почтой, графических пакетов, программных сред, сетевых серверов и многое другое. Большинство этих приложений могут быть получено из http://www.FreeBSD.org/ports/[Коллекции Портов]. +Большинство пользователей на самом деле не используют операционную систему. Они работают с приложениями. Именно прикладные программы и используют операционную систему. FreeBSD разработана для того, чтобы дать надежное и полнофункциональное окружение для приложений. Она поддерживает широкий спектр Web-браузеров, офисных пакетов, программ для работы с электронной почтой, графических пакетов, программных сред, сетевых серверов и многое другое. Большинство этих приложений могут +быть получено из https://www.FreeBSD.org/ports/[Коллекции Портов]. Если приложение доступно только для одной операционной системы, то нельзя всего лишь заменить эту операционную систему. Однако есть вероятность, что похожая программа существует для FreeBSD. В качестве сервера для офиса, или сервера Интернет, или надежной рабочей станции FreeBSD практически всегда справится со всем, что вам нужно. Многие пользователи по всему миру, включая как новичков, так и опытных администраторов UNIX(R), используют FreeBSD в качестве своей единственной настольной операционной системы. -Пользователи при переходе на FreeBSD с другого варианта UNIX(R) найдут для себя FreeBSD очень похожей. Пользователей Windows(R) и Mac OS(R), напротив, может заинтересовать http://www.pcbsd.org/[PC-BSD], дистрибутив на основе FreeBSD. Пользователям, которые не использовали до этого UNIX(R), понадобится затратить дополнительное время на изучение подхода UNIX(R) к работе. Этот FAQ и extref:{handbook}[Руководство по FreeBSD] являются прекрасным способом начать это изучение. - +Пользователям, переходящим на FreeBSD с другого варианта UNIX(R)-подобной +системы, FreeBSD покажется очень знакомой. Пользователей Windows(R) и Mac +OS(R), напротив, может привлечь использование одного из трёх дистрибутивов +https://www.ghostbsd.org/[GhostBSD], https://www.midnightbsd.org/[MidnightBSD] +или https://www.nomadbsd.org/[NomadBSD], предназначенных для настольных систем +и построенных на базе FreeBSD. Пользователям, которые не использовали до этого +UNIX(R), нужно понимать, что понадобится потратить дополнительное время на +изучение подхода UNIX(R) к организации работы. Этот FAQ и +extref:{handbook}[Руководство по FreeBSD] являются прекрасными отправными +точками.</para> + +[[why-called-FreeBSD]] === Почему система называется именно FreeBSD? * Она может использоваться безо всяческих выплат, даже для извлечения выгоды. @@ -112,82 +143,130 @@ FreeBSD используется компаниями, Интернет-пров Следует отметить, что слово "free" используется здесь в двух смыслах: один означает "бесплатно", а другой "делать всё, что хотите". За исключением пары вещей, которые вы _не можете_ делать с FreeBSD, например, претендовать на то, что являетесь её разработчиком, на самом деле можно делать с ней всё, что вам заблагорассудится. -=== В чём заключается разница между FreeBSD и NetBSD, OpenBSD и другими операционными системами с открытыми кодами семейства BSD? +[[differences-to-other-bsds]] +=== В чём заключается разница между FreeBSD и NetBSD, OpenBSD и другими операционными системами с открытым кодом семейства BSD? -Джеймс Ховард (James Howard) создал хорошее описание истории и различий между различными проектами под названием http://www.freebsdworld.gr/freebsd/bsd-family-tree.html[Семейное древо BSD], в котором даётся подробный ответ на этот вопрос. Некоторая информация там устарела, но историческая часть остаётся точной. +Джеймс Ховард (James Howard) создал хорошее описание истории и отличий между разными проектами под названием https://jameshoward.us/archive/bsd-family-tree/[Семейное древо BSD], в котором даётся подробный ответ на этот вопрос. +Часть информации там устарела, однако историческая часть остаётся точной. -Многие из проектов семейства BSD обмениваются изменениями и готовым кодом даже сегодня. Все они происходят от общего предка. +Многие из проектов семейства BSD обмениваются изменениями и готовым кодом даже +сегодня. Все они происходят от общего предка. -Цели проекта FreeBSD описаны выше в <<FreeBSD-goals>>. Цели других наиболее известных проектов семейства BSD можно кратко описать так: +Цели проекта FreeBSD описаны выше в <<FreeBSD-goals>>. Цели других наиболее +известных проектов семейства BSD можно кратко описать так: -* OpenBSD в первую очередь ориентируется на безопасность операционной системы. Команда OpenBSD написала man:ssh[1] и man:pf[4], которые затем были портированы во FreeBSD. +* OpenBSD ориентируется на то, что превыше всего является безопасность +операционной системы. +Команда OpenBSD написала man:ssh[1] и man:pf[4], которые были перенесены во +FreeBSD. * NetBSD ориентируется на простое портирование на другие аппаратные платформы. * DragonFly BSD отделилась от FreeBSD 4.8, и с тех пор в ней были разработаны многие интересные собственные функциональные возможности, включая файловую систему HAMMER и поддержку "vkernels" - запуска ядра в пользовательском режиме. +[[latest-version]] === Какова последняя версия FreeBSD? На любом этапе разработки FreeBSD может существовать несколько параллельных веток. Релизы {rel-relx} выполняются из ветки {rel-stable}, а релизы {rel2-relx} выполняются из {rel2-stable}. -До выпуска 9.0 линейка {rel2-relx} была известна как _-STABLE_. Однако к моменту выхода {rel-head-relx} линейка {rel2-relx} получит статус "extended support" (расширенная поддержка), и исправления будут вноситься только для серьезных проблем, к примеру исправления, связанные с безопасностью. - -Версия link:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/{rel120-current}-RELEASE/[{rel120-current}], дата выхода {rel120-current-date}, является последним релизом в ветке {rel-stable}. Версия link:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/{rel112-current}-RELEASE/[{rel112-current}], дата выхода {rel112-current-date}, является последним релизом в ветке {rel2-stable}. - -Если вкратце, то ветка _-STABLE_ предназначена поставщикам услуг Internet, корпоративным пользователям, а также всем тем, кому в первую очередь нужна надёжность и минимальное количество отличий от последнего релиза по сравнению с новыми (и, возможно, ненадёжно работающими) возможностями последнего снэпшота _-CURRENT_. Релизы можно делать из любой ветки, но _-CURRENT_ предназначен для пользователей, которые готовы к постоянным (по сравнению со _-STABLE_) изменениям в работе системы. +Вплоть до версии 12.0 ветка {rel2-relx} была известна как _-STABLE_. +Однако к моменту выхода {rel-head-relx} ветка {rel2-relx} получит статус +"extended support" (расширенная поддержка), и исправления будут вноситься +только для серьёзных проблем, к примеру, связанных с безопасностью. Релизы делаются <<release-freq,раз в несколько месяцев>>. Хотя многие стараются отслеживать актуальное состояние исходных текстов FreeBSD (обратите внимание на вопросы о <<current,FreeBSD-CURRENT>> и <<stable,FreeBSD-STABLE>>), делать это не обязательно, так как исходные тексты постоянно меняются. -Более полную информацию о релизах FreeBSD можно получить на странице http://www.FreeBSD.org/ru/releng/[Информации о подготовке релизов] и на странице Справочника man:release[7]. +Более полную информацию о релизах FreeBSD можно получить на странице +https://www.FreeBSD.org/releng/#release-build[Информации о подготовке релизов] +и на странице Справочника man:release[7]. +[[current]] === Что такое FreeBSD-CURRENT? -extref:{handbook}updating-upgrading, current[FreeBSD-CURRENT] - это версия операционной системы, находящаяся в стадии разработки, которая должна потом стать новой веткой FreeBSD-STABLE. Таким образом, она представляет реальный интерес только для разработчиков системы и её фанатов. Обратитесь к extref:{handbook}updating-upgrading[соответствующему разделу, current] extref:{handbook}[Руководства] для прояснения деталей работы с _-CURRENT_. - -Пользователям, не знакомым с FreeBSD, не следует использовать FreeBSD-CURRENT. Эта ветвь зачастую меняется очень быстро и иногда из-за ошибок может быть не работоспособна. Те, кто используют FreeBSD-CURRENT, должны быть в состоянии изучить проблему, найти причину и сообщить о этом. +extref:{handbook}cutting-edge/[FreeBSD-CURRENT, current] - это версия +операционной системы, находящаяся в стадии разработки, которая должна потом +стать новой веткой FreeBSD-STABLE. Таким образом, она представляет реальный +интерес только для разработчиков системы и её фанатов. Обратитесь к +extref:{handbook}cutting-edge/[соответствующему разделу, current] +extref:{handbook}[Руководства] для прояснения деталей работы с _-CURRENT_. -Из веток _-CURRENT_ и _-STABLE_ выпускаются link:https://www.FreeBSD.org/snapshots/[снэпшоты] FreeBSD. Их предназначение: +Пользователям, не знакомым с FreeBSD, не следует использовать FreeBSD-CURRENT. +Эта ветка зачастую меняется очень быстро и иногда из-за ошибок может быть неработоспособной. +Подразумевается, что те, кто используют FreeBSD-CURRENT, должны быть в состоянии изучить проблему, найти причину и сообщить о этом. -* Тестирование самой последней версии программы установки системы. -* Дать людям, которые хотят работать с _-CURRENT_ или _-STABLE_, но не имеют времени или возможности (пропускной способности) для отслеживания ежедневных изменений, простой способ её установки. -* Фиксация точки для последующих ссылок в случае, если позже мы что-нибудь очень сильно сломаем. (Хотя Subversion, как правило, не позволяет случиться ничему такому ужасному.) -* Все новые возможности, которым требуется тестирование, должны иметь как можно больше потенциальных тестеров. +[[stable]] +=== В чём смысл FreeBSD-STABLE? -Не утверждается, что всякий снэпшот _-CURRENT_ имеет качество "готового продукта". Если нужна стабильно работающая и полностью оттестированная система, то придерживайтесь использования полных релизов или используйте снэпшоты _-STABLE_. +_FreeBSD-STABLE_ является веткой разработки, из которой выполняются основные релизы. +В эту ветку изменения вносятся медленнее, и при этом предполагается, что до этого они были протестированы во FreeBSD-CURRENT. +Несмотря на это, исходный код FreeBSD-STABLE в любой момент времени может быть пригоден, а может быть и непригоден к широкому использованию, так как может содержать скрытые ошибки и вырожденные случаи, которые ещё не были выявлены во FreeBSD-CURRENT. +Пользователям, не имеющим возможностей для тестирования, следует работать с самым свежим релизом FreeBSD. +С другой стороны, _FreeBSD-CURRENT_ продолжает являться единой веткой, не разрываемой с момента выхода версии 2.0. + +Для получения более подробной информации о ветках обратитесь к разделу статьи "extref:{releng}[Подготовка релизов FreeBSD: Создание ветки релиза, rel-branch]", а состояние веток и расписание предстоящих релизов можно получить на странице https://www.FreeBSD.org/releng[Информация о подготовке релизов]. +Версия {u-rel123-announce}[{rel123-current}] является самым последним релизом в +ветке {rel2-stable}; она была выпущена {rel123-current-date}). Версия +{u-rel131-announce}[{rel131-current}] является самым последним релизом в +ветке {rel-stable}; она была выпущена {rel131-current-date}). + +[[release-freq]] +=== В какой момент выпускаются новые версии FreeBSD? -Снэпшот-релизы доступны непосредственно link:https://www.FreeBSD.org/snapshots/[отсюда]. +{re} выпускает новую старшую версию FreeBSD в среднем каждые 18 месяцев и младшие версии каждые 8 месяцев. Даты релизов обычно объявляются заранее, так что те, кто работает над системой, знают, когда их проекты должны быть закончены и протестированы. Период тестирования предшествует выходу каждого релиза, для того, чтобы удостовериться в том, что добавление новых возможностей не повлияло на стабильность работы релиза. Многие пользователи расценивают такую осторожность как одну из приятнейших черт FreeBSD, хотя необходимость дожидаться _-STABLE_ для получения всех этих новых возможностей может несколько разочаровывать. -Официальные снэпшоты постоянно генерируются для всех активно разрабатываемых веток. +Дополнительная информация о процессе подготовки релиза (в том числе планы выпуска последующих релизов) может быть найдена на страницах Web-сайта FreeBSD, посвящённых https://www.FreeBSD.org/releng/[выпуску релизов]. -=== В чём смысл FreeBSD-STABLE? - -После того, как была выпущена FreeBSD 2.0.5, разработка FreeBSD разделилась на две части. Одна ветка получила название extref:{handbook}updating-upgrading[-STABLE, stable], а другая extref:{handbook}updating-upgrading[-CURRENT, current]. _FreeBSD-STABLE_ предназначена для провайдеров услуг Интернет и других коммерческих пользователей, для которых неожиданные изменения или экспериментальные возможности весьма нежелательны. В неё вносятся только хорошо оттестированные исправления и другие небольшие последовательные усовершенствования. С другой стороны, _FreeBSD-CURRENT_ являлась единой веткой, не разрываемой с момента выхода версии 2.0 и ведущей к {rel120-current}-RELEASE и последующим релизам. Для получения более подробной информации по веткам обратитесь к разделу статьи "extref:{releng}[Подготовка релизов FreeBSD: Создание ветки релиза, rel-branch]". Статус веток и расписание предстоящих релизов можно получить на странице http://www.FreeBSD.org/releng[Информация о подготовке релизов]. +Для тех, кому нужно или хочется, еженедельно выпускаются бинарные снапшоты, как описано выше. -Активно разрабатываемой веткой _-STABLE_ является {rel120-current}-STABLE. Последним релизом в ветке {rel120-current}-STABLE является {rel120-current}-RELEASE, выпущенный {rel120-current-date}. +[[snapshot-freq]] +=== Когда выпускаются снэпшоты FreeBSD? -Активно разрабатываемой веткой _-CURRENT_ является ветка {rel-head}, которая движется к созданию следующего поколения FreeBSD. Прочтите ответ на вопрос <<current,Что такое FreeBSD-CURRENT?>> для получения более подробной информации об этой ветке. +link:https://www.FreeBSD.org/snapshots/[Снэпшот]-релизы FreeBSD +выпускаются исходя из актуального состояния веток _-CURRENT_ и _-STABLE_. +Цели выпуска каждого такого снэпшот-релиза таковы: -=== В какой момент выпускаются новые версии FreeBSD? +* Протестировать самую последнюю версию программы установки системы. +* Дать людям, которые хотят работать с ветками _-CURRENT_ или _-STABLE_, +но не имеют достаточно времени или пропускной способности сети +для отслеживания ежедневных изменений, простой способ их +начальной установки. +* Зафиксировать состояние определённого кода на какой-то +момент времени на случай, если позже мы что-нибудь очень сильно +сломаем. +(Хотя Git, как правило, не позволяет случиться ничему такому ужасному). +* Обеспечить все новые функции и исправления, которым +требуется тестирование, как можно большим количеством +потенциальных тестировщиков. -{re} выпускает новую старшую версию FreeBSD в среднем каждые 18 месяцев и младшие версии каждые 8 месяцев. Даты релизов обычно объявляются заранее, так что те, кто работает над системой, знают, когда их проекты должны быть закончены и протестированы. Период тестирования предшествует выходу каждого релиза, для того, чтобы удостовериться в том, что добавление новых возможностей не повлияло на стабильность работы релиза. Многие пользователи расценивают такую осторожность как одну из приятнейших черт FreeBSD, хотя необходимость дожидаться _-STABLE_ для получения всех этих новых возможностей может несколько разочаровывать. +Не утверждается, что всякий снэпшот _-CURRENT_ с любой точки зрения имеет +качество "готового продукта". Если нужна стабильно +работающая и полностью протестированная система, то +придерживайтесь политики использования полноценных релизов. -Дополнительная информация о процессе подготовки релиза (в том числе планы выпуска последующих релизов) может быть найдена на страницах Web-сайта FreeBSD, посвящённых http://www.FreeBSD.org/releng/[выпуску релизов]. +Снэпшот-релизы доступны непосредственно +link:https://www.FreeBSD.org/snapshots/[отсюда]. -Для тех, кому нужно или хочется, еженедельно выпускаются бинарные снапшоты, как описано выше. +Официальные снэпшоты регулярно выпускаются для всех активно разрабатываемых +веток. -=== Кто разрабатывает FreeBSD? +[[responsible]] +=== Кто отвечает за разработку FreeBSD? -Решения, которые касаются ключевых моментов в проекте FreeBSD, такие, как общее направление развития проекта или кто может добавлять код к дереву исходных текстов, принимаются link:https://www.FreeBSD.org/administration/#t-core[основной командой] разработчиков (Core Team), состоящей из 9 человек. Также существует многочисленная группа, состоящая из более чем 350 так называемых extref:{contributors}[коммиттеров, staff-committers] (committers), которые могут вносить изменения прямо в дерево исходных текстов FreeBSD. +Ключевые решения, касающиеся проекта FreeBSD, такие, как общее направление развития проекта или кто может добавлять код к дереву исходных текстов, принимаются link:https://www.FreeBSD.org/administration/#t-core[управляющей командой] разработчиков (Core Team), состоящей из 9 человек. +Также существует многочисленная группа, состоящая из более чем 350 так называемых extref:{contributors}[коммиттеров, staff-committers] (committers), которые могут вносить изменения прямо в дерево исходных текстов FreeBSD. Однако большинство нетривиальных изменений широко обсуждается в <<mailing,списках рассылки>>, и не существует никаких ограничений на участие в подобных дискуссиях. +[[where-get]] === Где можно найти FreeBSD? -Все основные релизы FreeBSD доступны по FTP с link:ftp://ftp.FreeBSD.org/pub/FreeBSD/[FTP-сервера FreeBSD]: +Все поддерживаемые релизы FreeBSD доступны на странице +https://www.freebsd.org/where/[поиска релизов FreeBSD]: -* Последний релиз {rel-stable}, {rel120-current}-RELEASE, можно найти в link:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/{rel120-current}-RELEASE[каталоге {rel120-current}-RELEASE]. -* link:https://www.FreeBSD.org/snapshots/[Снэпшот-релизы] для веток <<current,-CURRENT>> и <<stable,-STABLE>> выпускаются ежемесячно, но они нужны исключительно для разработчиков и тех, кто тестирует самые последние наработки. -* Последний релиз {rel2-stable}, {rel112-current}-RELEASE, можно найти в link:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/{rel112-current}-RELEASE/[каталоге {rel112-current}-RELEASE]. +* Для получения самого последнего релиза {rel-stable}, {rel132-current}-RELEASE, перейдите по ссылке для выбора link:https://www.freebsd.org/where/#download-rel132[соответствующей архитектуры и режима установки для {rel132-current}-RELEASE]. +* Для получения самого последнего релиза {rel2-stable}, {rel124-current}-RELEASE, перейдите по ссылке для выбора link:https://www.freebsd.org/where/#download-rel124[соответствующей архитектуры и режима установки для {rel124-current}-RELEASE]. +* link:https://www.FreeBSD.org/snapshots/[Снэпшот-релизы] для веток <<current,-CURRENT>> и <<stable,-STABLE>> выпускаются ежемесячно, но они нужны исключительно для разработчиков и тех, кто тестирует самые последние нововведения. -Информация о получении/приобретении FreeBSD на CD, DVD и других носителях доступна в extref:{handbook}mirrors/[Руководстве, mirrors]. +Информация о возможностях получения FreeBSD на CD, DVD и других носителях +доступна в extref:{handbook}mirrors/[Руководстве, mirrors]. === Как можно получить доступ к базе сообщений о проблемах (Problem Report)? @@ -199,18 +278,27 @@ extref:{handbook}updating-upgrading, current[FreeBSD-CURRENT] - это верс == Документация и поддержка +[[books]] === Есть ли хорошие книги по FreeBSD? -В рамках проекта создан широкий спектр документации, которая доступна on-line по следующей ссылке: http://www.FreeBSD.org/docs/[http://www.FreeBSD.org/docs/]. Кроме того, в <<bibliography,Библиографии>> в конце этого FAQ и в extref:{handbook}bibliography/[Руководстве, bibliography] имеются ссылки на другие рекомендуемые для чтения книги. +В рамках проекта создаётся обширная документация, которая доступна в онлайне по +следующей ссылке: https://www.FreeBSD.org/docs/[https://www.FreeBSD.org/docs/]. -=== Есть ли версии документации в другом формате, например, в виде обычного текста ASCII или PostScript(R)? +[[doc-formats]] +=== Можно ли получить документацию в другом формате, например, в виде PDF? -Да. Документация имеется в нескольких различных форматах и упакованная разными способами на FTP-сервере FreeBSD, и находится она в каталоге link:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/[ /pub/FreeBSD/doc/]. +Да. +link:https://download.freebsd.org/doc/[Документация доступна к сгрузке также и +в других форматах] на сайте FreeBSD. -Документация подразделяется на категории различными способами. Это включает: +Каталоги с документацией подразделяется на категории в зависимости от: + +* Имени документа, например, `faq` или `handbook`. +* Языка документа на базе наименования региональных настроек, размещаемых в +каталоге [.filename]#/usr/share/locale# системы FreeBSD, без учёта кодировки, +так как во всей документации сейчас используется UTF-8. +На данный момент доступны следующие языки: -* Имя документа, например, `faq` или `handbook`. -* Язык и кодировка документа. Они опираются на имена локализаций, которые находятся в каталоге [.filename]#/usr/shared/locale# в системе FreeBSD. На данный момент поддерживаются следующие языки и кодировки: + [.informaltable] [cols="1,1", frame="none", options="header"] @@ -218,65 +306,62 @@ extref:{handbook}updating-upgrading, current[FreeBSD-CURRENT] - это верс | Кодировка | Язык -|`en_US.ISO8859-1` -|Английский (США) +|`en` +|Английский -|`bn_BD.ISO10646-1` +|`bn-bd` |Бенгальский или Бангла (Бангладеш) -|`da_DK.ISO8859-1` -|Датский (Дания) +|`da` +|Датский -|`de_DE.ISO8859-1` -|Немецкий (Германия) +|`de` +|Немецкий -|`el_GR.ISO8859-7` -|Греческий (Греция) +|`el` +|Греческий -|`es_ES.ISO8859-1` -|Испанский (Испания) +|`es` +|Испанский -|`fr_FR.ISO8859-1` -|Французский (Франция) +|`fr` +|Французский -|`hu_HU.ISO8859-2` -|Венгерский (Венгрия) +|`hu` +|Венгерский -|`it_IT.ISO8859-15` -|Итальянский (Италия) +|`it` +|Итальянский -|`ja_JP.eucJP` -|Японский (Япония, кодировка EUC) +|`ja` +|Японский -|`mn_MN.UTF-8` -|Монгольский (Монголия, кодировка UTF-8) +|`ko` +|Корейский -|`nl_NL.ISO8859-1` -|Голландский (Нидерланды) +|`mn` +|Монгольский -|`no_NO.ISO8859-1` -|Норвежский (Норвегия) +|`nl` +|Голландский -|`pl_PL.ISO8859-2` -|Польский (Польша) +|`pl` +|Польский -|`pt_BR.ISO8859-1` +|`pt-br` |Португальский (Бразилия) -|`ru_RU.KOI8-R` -|Русский (Россия, кодировка KOI8-R) - -|`sr_YU.ISO8859-2` -|Сербский (Сербия) +|`ru` +|Русский -|`tr_TR.ISO8859-9` -|Турецкий (Турция) +|`tr` +|Турецкий -|`zh_CN.UTF-8` -|Упрощённый китайский (Китай, кодировка UTF-8) +|`zh-cn` +|Упрощённый китайский (Китай) -|`zh_TW.UTF-8` -|Традиционный китайский (Тайвань, кодировка UTF-8) +|`zh-tw` +|Традиционный китайский (Тайвань) |=== + [NOTE] @@ -284,7 +369,12 @@ extref:{handbook}updating-upgrading, current[FreeBSD-CURRENT] - это верс Некоторые документы могут иметься не на всех языках. ==== -* Формат документа. Мы создаём документацию в нескольких различных форматах. У каждого из форматов имеются свои плюсы и свои минусы. Некоторые форматы лучше подходят для чтения в on-line, когда как другие предназначены для получения эстетично выглядящей на бумаге копии. Наличие документации во всех этих форматах обеспечивает возможность прочтения нашими пользователями любой её части как с экрана монитора, так и на бумаге после вывода на печать. На данный момент поддерживаются следующие форматы; +* Формат документа. +Мы распространяем документацию в нескольких различных форматах. +У каждого из форматов имеются свои плюсы и свои минусы. +Некоторые форматы лучше подходят для чтения в on-line, тогда как другие предназначены для получения эстетично выглядящей бумажной копии. +Наличие документации во всех этих форматах обеспечивает возможность прочтения нашими пользователями любой её части как с экрана монитора, так и на бумаге после вывода на печать. +На данный момент доступны следующие форматы; + [.informaltable] [cols="1,1", frame="none", options="header"] @@ -292,76 +382,61 @@ extref:{handbook}updating-upgrading, current[FreeBSD-CURRENT] - это верс | Формат | Значение -|`html-split` -|Набор маленьких связанных друг с другом HTML-файлов. - |`html` -|Один большой HTML-файл, полностью содержащий документ. +|В зависимости от документа: Один большой HTML-файл, содержащий документ полностью, или набор небольших связанных HTML-файлов, в обоих случаях содержащих изображения, таблицы стилей и код JavaScript |`pdf` |Adobe's Portable Document Format - -|`ps` -|PostScript(R) - -|`rtf` -|Rich Text Format от Microsoft(R) - -|`txt` -|Обычный текст |=== -+ -[NOTE] -==== -Номера страниц при загрузке Rich Text Format в Word автоматически не обновляются. Для обновления нумерации нажмите kbd:[Ctrl+A], kbd:[Ctrl+End], kbd:[F9] после загрузки документа. -==== - * Способ сжатия и создания архива. -.. В случае формата `html-split`, файлы архивируются с помощью man:tar[1]. Получающийся файл [.filename]#.tar# затем подвергается сжатию по схемам, подробно описываемым далее. -.. Все другие форматы генерируют один файл. Например, [.filename]#article.pdf#, [.filename]#book.html#, и так далее. -+ -Эти файлы затем сжимаются по двум схемам сжатия, `zip` или `bz2`. Для работы с этими файлами можно использовать man:tar[1]. -+ -Таким образом, сжатая в `bzip2` версия Руководства в формате PostScript(R), будет находиться в файле с именем [.filename]#book.ps.bz2# в каталоге [.filename]#handbook/#. +.. В случае формата `html`, файлы пакетируются с помощью man:tar[1]. +Получающийся файл [.filename]#.tar# затем сжимается утилитой man:gzip[1]. +.. При использовании формата PDF создаётся один файл. К примеру, +[.filename]#explaining-bsd_en.pdf#, [.filename]#faq_en.pdf# и так далее. -После выбора формата и способа компрессии, сгрузите упакованные файлы, распакуйте их, а затем скопируйте документацию в соответствующие места. +Выбрав формат, сгрузите файлы, распакуйте их при необходимости, а затем +скопируйте документацию в соответствующие места. -Например, версия FAQ в виде отдельных HTML-файлов, упакованная при помощи man:bzip2[1], находится в файле [.filename]#doc/ru_RU.KOI8-R/books/faq/book.html-split.tar.bz2#. Для сгрузки и распаковки этого файла наберите: +Например, HTML-версию FAQ можно найти в +[.filename]#doc/en/books/faq/faq_en.tar.gz#. Для сгрузки и распаковки этого +файла выполните: [source,shell] .... -# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2 -# tar xvf book.html-split.tar.bz2 +% fetch https://download.freebsd.org/doc/en/books/faq/faq_en.tar.gz +% tar xvf faq_en.tar.gz .... -Если файл сжат, tar автоматически определит подходящий формат и корректно распакует файл в набор файлов [.filename]#.html#. Главным является [.filename]#index.html#, и в нём находится оглавление, вводный материал и ссылки на остальные части документа. +Если файл сжат, tar автоматически определит подходящий формат и корректно его распакует, в результате чего появится набор файлов. +Главным является [.filename]#index.html#, и в нём находится всё содержимое документа, начиная с оглавления, ссылающегося на остальные части документа. +[[mailing]] === Где найти информацию по спискам рассылки FreeBSD? Какие существуют телеконференции по FreeBSD? -Исчерпывающая информация содержится в extref:{handbook}eresources[разделе, eresources-mail] Руководства, который посвящён спискам рассылки, и в extref:{handbook}eresources/[разделе, eresources-news] Руководства, касающемся телеконференций. +Исчерпывающая информация содержится в extref:{handbook}eresources/[разделе +Руководства, eresources-mail], который посвящён спискам рассылки, и в +extref:{handbook}eresources/[разделе Руководства, eresources-news], касающемся +новостных конференций. +[[irc]] === Существуют ли каналы IRC (Internet Relay Chat) по FreeBSD? -Да, большинство сетей IRC имеют канал FreeBSD: - -* Канал `#FreeBSDhelp` в сети http://www.efnet.org/index.php[EFNet] предназначен для помощи пользователям FreeBSD. -* Канал `#FreeBSD` в сети http://freenode.net/[Freenode] предназначен для помощи общего характера, на нём в любое время присутствует много посетителей. Общение в течение уже некоторого времени известно своей тенденцией сводиться к разговорам не по теме, но приоритет отдается пользователям с вопросами по FreeBSD. Другие пользователи помогут разобраться в основах, отсылая к Руководству по мере возможности и предлагая ссылки для более глубокого изучения интересующих тем. Это преимущественно англоговорящий канал, но туда приходят пользователи со всего мира. Тем, для кого английский не является родным, следует сперва задать вопрос на английском и затем перейти на подходящий канал `##freebsd-lang`. -* Канал `#FreeBSD` в сети http://www.dal.net/[DALNET] доступен на сервере `irc.dal.net` в США и на `irc.eu.dal.net` в Европе. -* Канал `#FreeBSD` в сети http://www.undernet.org/[UNDERNET] доступен на серверах `us.undernet.org` в США и `eu.undernet.org` в Европе. Так как это канал взаимопомощи, приготовьтесь к чтению документации, к которой вас отошлют. -* Канал `#FreeBSD` в сети http://www.rusnet.org.ru/[RUSNET] это канал для русскоговорящих посетителей, посвящённый помощи пользователям FreeBSD. Также это хорошее место для нетехнических дискуссий. -* Канал `#bsdchat` в сети http://freenode.net/[Freenode] это канал для посетителей, говорящих на китайском традиционном языке (кодировка UTF-8), посвящённый помощи пользователям FreeBSD. Также это хорошее место для нетехнических дискуссий. +Да, в большинстве крупнейших сетей IRC имеется канал для обсуждения FreeBSD, а +на wiki-странице FreeBSD размещён актуальный +https://wiki.freebsd.org/IRC/Channels[список IRC-каналов]. -На FreeBSD wiki имеется http://wiki.freebsd.org/IrcChannels[хороший список] каналов IRC. - -Все каналы разные и не имеют отношения друг к другу. Поскольку их стили общения отличаются, попробуйте каждый, пока не найдёте подходящий вашему стилю общения. +Все эти каналы разные и не связаны друг к другом. Поскольку их манеры общения +отличаются, попробуйте каждый, пока не найдёте соответствующий вашему стилю. +[[forums]] === Есть ли какие-нибудь web-форумы для обсуждения FreeBSD? Официальные форумы FreeBSD расположены по адресу https://forums.FreeBSD.org/[https://forums.FreeBSD.org/]. +[[training]] === Где можно пройти платные курсы по FreeBSD и получить поддержку? -http://www.ixsystems.com[iXsystems, Inc.], дочерней компанией которой является http://www.freebsdmall.com/[FreeBSD Mall], предоставляет http://www.ixsystems.com/bsdsupport[поддержку] FreeBSD и программного обеспечения PC-BSD на коммерческой основе, в дополнение к разработке FreeBSD и решениям, требующим тонкой настройки. +http://www.ixsystems.com[iXsystems, Inc.], дочерней компанией которой является http://www.freebsdmall.com/[FreeBSD Mall], оказывает http://www.ixsystems.com/support[услуги поддержки] программного обеспечения FreeBSD на коммерческой основе, в дополнение к разработкам на платформе FreeBSD и решениям, требующим тонкой настройки. BSD Certification Group, Inc. предоставляет сертификацию системного администрирования DragonFly BSD, FreeBSD, NetBSD и OpenBSD. Для получения дополнительной информации посетите http://www.BSDCertification.org[их сайт]. @@ -369,13 +444,16 @@ BSD Certification Group, Inc. предоставляет сертификаци == Установка +[[which-architecture]] === Какую архитектуру нужно загрузить? У меня есть 64-разрядный процессор Intel(R), но я вижу только amd64. amd64 - это термин, применяемый во FreeBSD для обозначения 64-разрядной архитектуры x86 (также известна как "x86-64" или "x64"). На большинстве современных компьютеров следует использовать amd64. Для более старых подойдёт i386. При установке системы на отличную от x86 архитектуру, выберите платформу, наиболее подходящую для оборудования. +[[floppy-download]] === Какой файл нужно скачать для установки FreeBSD? -На странице http://www.freebsd.org/ru/where/[Получение FreeBSD] выберите `[iso]` с соответствующей оборудованию архитектурой. +На странице https://www.freebsd.org/ru/where/[Получение FreeBSD] выберите +`[iso]` с соответствующей оборудованию архитектурой. Можно использовать любой из: @@ -398,11 +476,11 @@ amd64 - это термин, применяемый во FreeBSD для обоз |Минимальный образ, требующий сетевое подключение для завершения установки FreeBSD. |=== -Пользователям pc98 нужны образы дискет: [.filename]#floppies/boot.flp#, [.filename]#floppies/kern1.flp#, [.filename]#floppies/kern2.flp# и [.filename]#floppies/mfsroot1.flp#. Эти образы нужно перенести на дискеты с помощью таких утилит, как man:dd[1]. - -Полные инструкции по этой процедуре и об установке вообще можно найти в extref:{handbook}install/[разделе, install] Руководства, посвящённом установке FreeBSD. +Полные инструкции по этой процедуре, а также более подробную информацию по +общим вопросам, возникающим при установке, можно найти в +extref:{handbook}bsdinstall[разделе Руководства об установке FreeBSD]. -=== Помогите! Установочный образ не загружается! +=== Что нужно делать, если установочный образ не запускается? Это может быть вызвано тем, что образ был загружен по FTP не в режиме _binary_. @@ -410,23 +488,24 @@ amd64 - это термин, применяемый во FreeBSD для обоз В случае использования командной строки FTP-клиента введите команду _binary_ в командной строке FTP после подключения к серверу, но перед началом передачи файла. -=== Где инструкции по установке FreeBSD? - -Инструкции по установке FreeBSD 9.0 и более поздних версий могут быть найдены в extref:{handbook}bsdinstall/[главе, bsdinstall] Руководства, посвящённой установке FreeBSD. Также имеются инструкции по установке extref:{handbook}install/[предыдущих, install] версий FreeBSD. - -=== Какие минимальные требования для запуска FreeBSD? +[[install-instructions-location]] +=== Где находятся инструкции по установке FreeBSD? -Для работы FreeBSD необходим ПК класса 486 и выше с оперативной памятью объёмом не менее 64 Мбайт и дисковым пространством не менее 1.1 Гбайт. +Инструкции по установке можно найти в extref:{handbook}bsdinstall/[главе +Руководства], посвящённой установке FreeBSD. +[[custom-boot-floppy]] === Как сделать собственный установочный диск? Индивидуальный установочный носитель FreeBSD можно создать, запустив процедуру построения индивидуального релиза. Следуйте инструкциям в статье о extref:{releng}[подготовке релизов FreeBSD]. -=== Может ли Windows(R) сосуществовать с FreeBSD? +[[windows-coexist]] +=== Может ли Windows(R) сосуществовать с FreeBSD? (специфично для x86) Да, если Windows(R) установлена первой. Загрузчик FreeBSD будет управлять процессом выбора загрузки Windows(R) или FreeBSD. Если Windows(R) устанавливается следом, то это приведёт к перезаписи загрузчика. Если такое случится, обратитесь к следующему разделу. -=== Другая операционная система уничтожила мой загрузчик операционной системы! Как мне его вернуть? +[[bootmanager-restore]] +=== Другая операционная система уничтожила мой загрузчик операционной системы! Как мне его вернуть? (специфично для x86) Способ восстановления зависит от используемого загрузчика. Меню выбора загрузки, используемое во FreeBSD, можно переустановить с помощью man:boot0cfg[8]. Пример для восстановления меню загрузки на диске _ada0_: @@ -444,24 +523,29 @@ amd64 - это термин, применяемый во FreeBSD для обоз Более сложные ситуации, включая использование дисков GPT, рассматриваются в man:gpart[8]. -=== Я загрузился с компакт-диска, однако программа установки сообщила, что CD-ROM не найден. Куда он подевался? - -Обычной причиной возникновения такой проблемы является неправильно сконфигурированный привод CD-ROM. Теперь зачастую ПК продаются с CD-ROM, установленным как ведомое устройство на втором контроллере IDE, но без ведущего устройства на этом контроллере. Согласно спецификации ATAPI, такая конфигурация неверна, однако Windows(R) в таком случае всё же работает, и BIOS игнорирует это при загрузке. Вот почему BIOS может видеть CD-ROM при загрузке, а FreeBSD для завершения установки - нет. - -Переконфигурируйте систему так, чтобы CD-ROM оказался либо основным устройством на том IDE-контроллере, на котором он установлен, либо ведомым устройством на контроллере IDE, который имеет ведущее устройство. - +[[need-complete-sources]] === Нужно ли устанавливать исходные тексты системы? В общем случае, нет. Для работы основной системы присутствие исходных текстов не требуется. Некоторые порты наподобие [.filename]#sysutils/lsof# не будут собираться без установленных исходных текстов системы. В частности, если порт собирает модуль ядра или напрямую обращается к структурам ядра, в этом случае исходные тексты должны быть установлены. +[[need-kernel]] === Нужно ли перекомпилировать ядро? -Обычно нет. Поставляемое ядро `GENERIC` содержит драйвера, необходимые для типичного компьютера. Инструмент man:freebsd-update[8] не может использоваться для обновления FreeBSD с собственным ядром. Поэтому по возможности стоит придерживаться использования ядра `GENERIC`. Для компьютеров с очень небольшим объёмом ОЗУ, таких как встраиваемые системы, может потребоваться собственное небольшое ядро, содержащее только необходимые драйверы. +Обычно нет. +Поставляемое ядро `GENERIC` содержит драйвера, необходимые для типового компьютера. +Инструмент man:freebsd-update[8] не может использоваться для обновления FreeBSD с собственным ядром, и это является ещё одной причиной для того, чтобы по возможности придерживаться использования ядра `GENERIC`. +Для компьютеров с очень небольшим объёмом ОЗУ, таких как встраиваемые системы, может потребоваться собственное небольшое ядро, содержащее только необходимые драйверы. -=== Какой из паролей DES, Blowfish или MD5 я должен использовать, и как указать, какого типа пароли используются пользователями? +[[password-encryption]] +=== Какой из методов шифрования паролей (DES, Blowfish или MD5) я должен использовать, и как указать, шифрование какого типа применяется пользователями? -Во FreeBSD 9 и выше по умолчанию используется _SHA512_. Пароли DES остаются доступны для обратной совместимости с более старыми операционными системами, в которых используется менее защищённый формат паролей. FreeBSD также поддерживает пароли в форматах Blowfish и MD5. Управление выбором используемого формата для новых паролей осуществляется через параметр входа `passwd_format` в файле [.filename]#/etc/login.conf#, принимающий значения `des`, `blf` (если они есть) или `md5`. Подробная информация о параметрах входа находится на странице Справочника man:login.conf[5]. +Во FreeBSD по умолчанию используется метод шифрования _SHA512_. +Пароли, зашифрованные методом DES, остаются доступными для обратной совместимости с операционными системами, в которых всё ещё используется менее защищённый метод шифрования паролей. +FreeBSD также поддерживает пароли в форматах Blowfish и MD5. +Управление выбором используемого метода для новых паролей осуществляется через параметр входа `passwd_format` в файле [.filename]#/etc/login.conf#, принимающий значения `des`, `blf` (если они доступны) или `md5`. +Подробная информация о параметрах входа находится на странице Справочника man:login.conf[5]. +[[ffs-limits]] === Какие существуют ограничения для файловой системы FFS? Наибольший размер файловой системы FFS ограничен практически количеством памяти, которая требуется для работы man:fsck[8]. man:fsck[8] использует 1 бит на фрагмент, и для стандартного размера фрагмента 4 Кбайт это эквивалентно использованию 32 Мбайт памяти на терабайт дискового пространства. Это означает, что на архитектурах с ограничением размера пользовательского процесса в 2 Гбайт (например, i386(TM)) максимальный размер файловой системы, доступный для man:fsck[8], составляет ~60 Тбайт. @@ -470,12 +554,14 @@ amd64 - это термин, применяемый во FreeBSD для обоз Максимальный размер файла на FFS приблизительно равен 2 петабайт со стандартным размером блока 32 Кбайт. Каждый 32 Кбайтный блок может адресовать до 4096 блоков. С использованием тройной косвенной адресации это составляет 32 Кбайт * 12 + 32 Кбайт * 4096 + 32 Кбайт * 4096^2 + 32 Кбайт * 4096^3. Увеличение размера блока до 64 Кбайт увеличит максимальный размер файла в 16 раз. +[[archsw-readin-failed-error]] === Я скомпилировал новое ядро и при загрузке получил сообщение об ошибке readin failed. Ядро и компоненты системы не синхронизированы. Такая конфигурация не поддерживается. Обязательно используйте команды `make buildworld` и `make buildkernel` для обновления ядра. Загрузите систему, непосредственно указав ядро на втором этапе загрузки, нажав любую клавишу до запуска загрузчика при появлении символов `|`. +[[general-configuration-tool]] === Существует ли инструмент для настройки системы после её установки? Да, bsdconfig предоставляет замечательный интерфейс для пост-установочной настройки FreeBSD. @@ -486,23 +572,43 @@ amd64 - это термин, применяемый во FreeBSD для обоз [[compatibility-general]] === Вопросы общего характера -==== Я хочу приобрести аппаратуру для моей системы FreeBSD. Какая модель/производитель/тип лучше всего? +[[which-hardware-to-get]] +==== Я хочу приобрести некое оборудование для моей системы FreeBSD. Какая модель/производитель/тип лучше всего? -Это постоянно обсуждается в списках рассылки FreeBSD и является ожидаемым вопросом, так как аппаратура меняется очень быстро. Обратитесь к Hardware Notes для FreeBSD link:{u-rel120-hardware}[{rel120-current}] или link:[{rel112-current}], а также http://www.FreeBSD.org/search/#mailinglists[архивам] списков рассылки перед тем, как задавать вопросы о самом последнем и лучшем оборудовании. Весьма вероятно, что обсуждение касаемо этого типа оборудования велось как раз на прошлой неделе. +Это постоянно обсуждается в списках рассылки FreeBSD и является ожидаемым вопросом, так как аппаратура меняется очень быстро. Обратитесь к Hardware Notes для +FreeBSD link:{u-rel123-hardware}[{rel123-current}] или +link:{u-rel131-hardware}[{rel131-current}], а также поищите в +https://www.FreeBSD.org/search/#mailinglists[архивах списков рассылки] перед +тем, как задавать вопросы о самом последнем и лучшем оборудовании. Весьма +вероятно, что обсуждение касаемо этого типа оборудования велось как раз на прошлой неделе. -Перед приобретением лэптопа посмотрите архивы link:{freebsd-mobile} и {freebsd-questions} или, по возможности, более специфичные списки рассылки по данному типу оборудования. +Перед приобретением лэптопа посмотрите архивы {freebsd-questions} или, возможно, более специфичные списки рассылки по данному типу оборудования. -==== Какие существуют ограничения по памяти? Поддерживает ли FreeBSD больше 4 Гбайт памяти (ОЗУ)? Больше 16 Гбайт? Больше 48 Гбайт? +[[memory-upper-limitation]] +==== Каковы ограничения на оперативную память? -FreeBSD как операционная система в целом поддерживает столько же физической памяти (ОЗУ), сколько аппаратная платформа, на которой она работает. Имейте в виду, что различные платформы имеют различные ограничения на память; например, i386(TM) без PAE поддерживает максимум 4 Гбайт памяти (и обычно еще меньше из-за адресного пространства PCI), а i386(TM) с PAE поддерживает максимум 64 Гбайт. Для FreeBSD 10 платформы AMD64 поддерживают до 4 Тбайт физической памяти. +FreeBSD как операционная система в целом поддерживает столько же физической памяти (ОЗУ), сколько аппаратная платформа, на которой она работает. +Имейте в виду, что различные платформы имеют различные ограничения на память; например, i386(TM) без PAE поддерживает максимум 4 Гбайт памяти (и обычно ещё меньше из-за адресного пространства PCI), а i386(TM) с PAE поддерживает максимум 64 Гбайт. +Во FreeBSD 10 для платформы AMD64 поддерживается до 4 Тбайт физической памяти. +[[memory-i386-over-4gb]] ==== Почему FreeBSD видит меньше 4 Гбайт памяти, когда система установлена на машину i386(TM)? -Общее адресное пространство для машин i386(TM) является 32-разрядным; это означает, что адресоваться (т.е. быть получено) может не более 4 Гбайт памяти. Более того, некоторые адреса в этом диапазоне зарезервированы для различных целей аппаратным обеспечением, например, для использования и управления устройствами PCI, для доступа к видеопамяти, и так далее. Таким образом, общий объем памяти, используемой операционной системой для ядра и приложений, ограничен размером, значительно меньшим, чем 4 Гбайт. В такой конфигурации максимально доступная физическая память составляет от 3.2 Гбайт до 3.7 Гбайт. +Общее адресное пространство для машин i386(TM) является 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]). Это означает, что все драйверы должны присутствовать статически в самом ядре. +Для преодоления ограничения в 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 - это собрать новое ядро со специальным уже подготовленным файлом конфигурации ядра, именуемым [.filename]#PAE#, который уже сконфигурирован для сборки безопасного ядра. Имейте в виду, что некоторые строки в этом файле конфигурации ядра являются слишком консервативными, и некоторые драйверы, помеченные как неготовые для использования с PAE, на самом деле являются годными. На практике, если драйвер работает на 64-разрядной архитектуре (такой как AMD64), он также работает с PAE. При создании своего собственного файла конфигурации ядра можно включить PAE, добавив следующую строку: +Самый распространённым способом включения PAE является сборка нового ядра со специальным уже подготовленным файлом конфигурации ядра, именуемым [.filename]#PAE#, который уже сконфигурирован для сборки безопасного ядра. +Имейте в виду, что некоторые строки в этом файле конфигурации ядра являются слишком консервативными, и некоторые драйверы, помеченные как неготовые для использования с PAE, на самом деле являются годными. +На практике, если драйвер работает на 64-разрядной архитектуре (такой как AMD64), он также работает с PAE. +При создании своего собственного файла конфигурации ядра можно включить PAE, добавив следующую строку: [.programlisting] .... @@ -514,23 +620,31 @@ PAE не является широко используемым в настоя [[compatibility-processors]] === Аппаратные платформы и процессоры +[[architectures]] ==== Поддерживает ли FreeBSD аппаратные платформы, отличные от x86? -Да. Поддержка FreeBSD подразделяется на множество классов. Архитектуры первого класса, такие как i386 или amd64, полностью поддерживаются. Архитектуры 2 и 3 класса поддерживаются по мере возможности. Полное описание классов доступно в extref:{committers-guide}[справочнике коммиттера, archs]. +Полноценно поддерживаются архитектуры первого класса, такие, как +i386 или amd64. Архитектуры 2 и 3 класса поддерживаются, исходя +из принципа наибольшего внимания при имеющихся возможностях. +Полное описание классов доступно в extref:{committers-guide}[Руководстве +коммиттера, archs]. -Полный список поддерживаемых архитектур находится на http://www.FreeBSD.org/ru/platforms/[странице], посвящённой платформам. +Полный список поддерживаемых архитектур находится на https://www.FreeBSD.org/ru/platforms/[странице], посвящённой платформам. +[[smp-support]] ==== Поддерживает ли FreeBSD многопроцессорные системы (SMP)? FreeBSD поддерживает симметричное мультипроцессирование (SMP) на всех невстраиваемых платформах (например, i386, amd64 и так далее). SMP также поддерживается для arm и MIPS, хотя некоторые процессоры могут это не поддерживать. В реализации SMP во FreeBSD используется мелкодисперсная синхронизация, и производительность масштабируется почти линейно с ростом количества процессоров. За подробной информацией обращайтесь к странице Справочника man:smp[4]. -==== Что такое микрокод? Как установить обновления микрокода для процессоров Intel(R)? +[[microcode]] +==== Что такое микрокод? Как установить обновление микрокода для процессоров AMD или Intel? -Микрокод - это программа, реализующая набор инструкций процессора на аппаратном уровне. Она позволяет исправлять ошибки процессора без замены микросхемы. +Микрокод является программным средством реализации аппаратных инструкций процессора. +Его использование позволяет исправлять ошибки процессора без замены микросхемы. -Установите [.filename]#sysutils/devcpu-data#, а затем добавьте: +Установите package:sysutils/cpu-microcode[], а затем добавьте: [.programlisting] .... @@ -539,34 +653,16 @@ microcode_update_enable="YES" в [.filename]#/etc/rc.conf# -[[compatibility-drives]] -=== Жёсткие диски, ленточные устройства и приводы CD и DVD - -==== Какие типы винчестеров поддерживает FreeBSD? - -FreeBSD работает с дисками стандартов EIDE, SATA, SCSI и SAS (с совместимыми контроллерами; смотрите следующий раздел), и всеми дисками, использующими оригинальный интерфейс "Western Digital" (MFM, RLL, ESDI и, конечно же, IDE). Некоторые контроллеры ESDI, использующие собственные интерфейсы, могут и не работать: к таким относятся WD1002/3/6/7 и их клоны. - -==== Какие поддерживаются контроллеры SCSI или SAS? - -Полный список приведён в Hardware Notes для FreeBSD link:{u-rel120-hardware}[{rel120-current}] или link:[{rel112-current}]. - -=== Какие типы стримеров поддерживаются? - -FreeBSD поддерживает все стандартные интерфейсы стримеров SCSI. - -==== Поддерживает ли FreeBSD роботов для смены лент? +[[compatibility-peripherals]] +=== Периферийные устройства -FreeBSD поддерживает роботизированные устройства SCSI через устройство man:ch[4] и команду man:chio[1]. Подробная информация об управлении такими роботами находится на странице Справочника man:chio[1]. +[[supported-peripherals]] +==== Какого рода периферийные устройства поддерживает FreeBSD? -В то время как AMANDA и ещё ряд программных продуктов умеют работать с роботами, другие приложения могут только переносить ленты с одного места на другое. В этом случае надо отслеживать, в каком слоте находится нужная лента, и в какой слот нужно вернуть ленту, находящуюся в стримере. - -==== Какие приводы CD-ROM и CD-RW поддерживаются во FreeBSD? - -Поддерживаются любые SCSI-устройства чтения компакт дисков, подключенные к поддерживаемому контроллеру. Поддерживается большинство ATAPI-совместимых IDE CD-ROM. - -FreeBSD поддерживает все ATAPI-совместимые IDE-приводы CD-R или CD-RW. Более полная информация находится на странице Справочника man:burncd[8]. - -FreeBSD поддерживает также все SCSI-приводы CD-R и CD-RW. Используйте команду `cdrecord` из пакета package:sysutils/cdrtools[]. +За информацией о списке оборудования, о котором известно, что оно +работоспособно, а также данными о каких бы то ни было ограничечниях, обратитесь +к Hardware Notes для FreeBSD link:{u-rel123-hardware} +[{rel123-current}] или link:{u-rel131-hardware}[{rel131-current}]. [[compatibility-kbd-mice]] === Клавиатуры и мыши @@ -574,7 +670,7 @@ FreeBSD поддерживает также все SCSI-приводы CD-R и C [[moused]] ==== Можно ли использовать мышь вне X Window? -Стандартный драйвер консоли man:syscons[4] предоставляет возможность использования указателя мыши в текстовых консолях для выделения и переноса текста. Запустите демон мыши man:moused[8] и включите отображение указателя мыши в виртуальной консоли: +Используемый по умолчанию драйвер консоли man:syscons[4] предоставляет возможность использования указателя мыши в текстовых консолях для выделения и переноса текста. Запустите демон мыши man:moused[8] и включите отображение указателя мыши в виртуальной консоли: [source,shell] .... @@ -588,54 +684,70 @@ FreeBSD поддерживает также все SCSI-приводы CD-R и C После запуска даемона мыши, доступ к мыши должен согласовываться между даемоном мыши и другими программами типа X Window. Обратитесь к вопросу из FAQ<<x-and-moused, Почему моя мышь не работает с X?>> для получения более полной информации по этому вопросу. +[[text-mode-cut-paste]] ==== Как можно вырезать и копировать текст с помощью мыши в текстовой консоли? -Удалить данные с помощью мыши нельзя. Однако их можно скопировать и вставить. После запуска даемона мыши, как описано в ответе на <<moused,предыдущий вопрос>>, нажмите кнопку 1 (левую) и двигайте мышь для выделения текста. Затем нажмите кнопку 2 (среднюю) для его вставки с позиции текстового курсора. Нажатие кнопки 3 (правой) "расширит" выбранную текстовую область. +Удалить данные с помощью мыши нельзя. +Однако их можно скопировать и вставить. +После запуска даемона мыши, как описано в ответе на <<moused,предыдущий вопрос>>, нажмите кнопку 1 (левую) и двигайте мышь для выделения текста. +Затем нажмите кнопку 2 (среднюю) для его вставки с позиции текстового курсора. +Нажатие кнопки 3 (правой) "расширит" выбранную текстовую область. Если у вашей мыши отсутствует средняя кнопка, её можно сэмулировать либо переназначить кнопки опциями даемона мыши. Обратитесь к справочным страницам по man:moused[8] для получения полной информации. +[[mouse-wheel-buttons]] ==== У моей мыши есть дополнительные колёсико и кнопочки. Можно ли их использовать во FreeBSD? Ответ, к сожалению, "в зависимости от обстоятельств". Эти мышки с дополнительными возможностями, как правило, требуют наличия специальных драйверов. До тех пор, пока драйвер мыши или прикладная программа не будут иметь отдельную поддержку такой мыши, она будет работать как стандартная двух- или трёхкнопочная мышь. Возможные способы использования колёсиков мыши при работе в X Window описаны в <<x-and-wheel,другом разделе>>. +[[keyboard-delete-key]] ==== Как использовать клавишу delete в sh и csh? Для Bourne Shell добавьте следующие строки в [.filename]#~/.shrc#. Смотрите man:sh[1] и man:editrc[5]. [.programlisting] .... -bind ^? ed-delete-next-char # для консоли -bind ^[[3~ ed-delete-next-char # для xterm +bind ^[[3~ ed-delete-next-char # for xterm .... Для C Shell добавьте следующие строки в [.filename]#~/.cshrc#. Смотрите man:csh[1]. [.programlisting] .... -bindkey ^? delete-char # для консоли -bindkey ^[[3~ delete-char # для xterm +bindkey ^[[3~ delete-char # for xterm .... -За дополнительной информацией обращайтесь к http://www.ibb.net/~anne/keyboard.html[этой странице]. - [[compatibility-other]] === Другое оборудование +[[es1370-silent-pcm]] ==== Есть ли решение проблемы отсутствия звука при использовании звуковых адаптеров man:pcm[4]? -Некоторые звуковые адаптеры при каждой загрузке сбрасывают уровень громкости в 0. Выполняйте следующую команду при каждой загрузке машины: +Некоторые звуковые адаптеры при каждой загрузке устанавливают нулевой уровень +громкости выводимого звука. При работе с FreeBSD 13 и более ранними версиями +при каждой загрузке машины выполняйте следующую команду: [source,shell] .... # mixer pcm 100 vol 100 cd 100 .... +Используйте следующую команду при работе с FreeBSD 14 и более поздними +версиями: + +[source,shell] +.... +# mixer pcm.volume=100 vol.volume=100 cd.volume=100 +.... + +[[power-management-support]] ==== Поддерживает ли FreeBSD управление энергосбережением на лэптопах? FreeBSD поддерживает функции ACPI, реализованные в современном оборудовании. Дополнительная информация находится на странице Справочника man:acpi[4]. +[[troubleshoot]] == Устранение некоторых проблем === Почему FreeBSD определяет неправильное количество памяти на аппаратуре i386(TM)? @@ -652,6 +764,7 @@ FreeBSD поддерживает функции ACPI, реализованные На 64nbsp;битной версии FreeBSD или в случае использования ядра с включённым PAE FreeBSD корректно определит и перераспределит память, так, что она станет годной к использованию. Тем не менее, во время загрузки может показаться, что FreeBSD определяет больше памяти, чем реально имеется в системе из-за описанного перераспределения. Это нормально, и информация о доступной памяти будет скорректирована по окончанию процесса загрузки. +[[signal11]] === Программы аварийно завершают работу с ошибкой Signal 11. Ошибки выполнения, связанные с сигналом 11, происходят, когда процесс пытается обратиться к области памяти, доступ к которой ему не был дан операционной системой. Если что-то подобное происходит в случайные, казалось бы, промежутки времени, следует начать поиск причины. @@ -671,45 +784,63 @@ FreeBSD поддерживает функции ACPI, реализованные Среди часто приводящих к этому причин: -. Диски могут перегреваться. Проверьте работу вентиляторов. -. Процессор перегревается. Это может произойти при разгоне процессора или при поломке процессорного вентилятора. В любом из вариантов убедитесь, что ваше оборудование работает так, как ему положено по крайней мере на момент поиска причин неисправности. В противном случае сбросьте частоту на настройки по умолчанию. -+ -Что касается разгона, дешевле обходится медленная система, чем сгоревшая система, требующая замены! Также общественность не симпатизирует проблемам на таких системах. -. Хитроумная память. Если установлены различные микросхемы SIMM/DIMM, вытащите их все и попробуйте по одной до локализации проблемы в проблематичной микросхеме DIMM/SIMM, либо их комбинации. -. Чересчур оптимистичные настройки материнской платы. Настройки BIOS и перемычки на материнской плате предоставляют возможность задавать различные частоты и задержки. Часто бывает достаточно настроек по умолчанию, но иногда установка слишком малых периодов ожидания для ОЗУ или установка параметра "RAM Speed: Turbo" вызывает странное поведение. Возможным решением может стать установка параметров BIOS по умолчанию с предварительной записью текущих значений. -. Неустойчивое или недостаточное электропитание материнской платы. Уберите неиспользуемые адаптеры ввода/вывода, винчестеры и приводы компакт-дисков или отключите их от кабеля электропитания для проверки, что блок питания может работать с меньшей нагрузкой. Или попробуйте воспользоваться другим блоком питания, желательно большей мощности. Например, если имеющийся блок питания рассчитан на 250 Ватт, попробуйте другой мощностью 300 Ватт). +. Жёсткие диски могут перегреваться. Проверьте работоспособность вентиляторов, так как жёсткие диски и другое оборудование могут перегреваться. +. Процессор перегревается. Это может произойти при разгоне процессора или при поломке процессорного вентилятора. +В любом случае убедитесь, что ваше оборудование работает в нормальном режиме, +как ему и положено, по крайней мере, на момент поиска причин неисправности. +В противном случае сбросьте частоту на настройки по умолчанию.) ++ +Что касается разгона, то медленная система обходится дешевле, чем сгоревшая система, требующая замены! +К тому же проблемы на таких системах не находят понимания общественности. +. Проблемная память. Если установлены различные микросхемы SIMM/DIMM, вытащите их все и попробуйте по одной до локализации проблемы в проблематичной микросхеме DIMM/SIMM, либо их комбинации. +. Чересчур оптимистичные настройки материнской платы. Настройки BIOS и перемычки на материнской плате предоставляют возможность задавать различные частоты и задержки. +Часто бывает достаточно настроек по умолчанию, но иногда установка слишком малых периодов ожидания для ОЗУ или установка параметра "RAM Speed: Turbo" вызывает странное поведение. +Возможным решением может стать установка параметров BIOS по умолчанию с предварительной записью текущих значений. +. Неустойчивое или недостаточное электропитание материнской платы. +Уберите неиспользуемые адаптеры ввода/вывода, жёсткие диски и приводы компакт-дисков или отключите их от кабеля электропитания для проверки, что блок питания может работать с меньшей нагрузкой. +Или попробуйте воспользоваться другим блоком питания, желательно большей мощности. +Например, если имеющийся блок питания рассчитан на 250 Ватт, попробуйте другой мощностью 300 Ватт. Прочитайте раздел про <<signal11,Signal 11>> для дальнейшего объяснения и обсуждения, как аппаратура или программное обеспечение для тестирования памяти могут пропускать сбойную память. Подробная информация по этому вопросу содержится в http://www.bitwizard.nl/sig11/[FAQ по проблеме SIG11]. Наконец, если ничего не помогает, то, возможно, это из-за ошибки во FreeBSD. Следуйте <<access-pr,этим инструкциям>> для отправки сообщения о проблеме. +[[trap-12-panic]] === Моя система аварийно завершает работу с сообщениями Fatal trap 12: page fault in kernel mode либо panic:, и выдаёт много дополнительной информации. Что мне делать? Разработчики FreeBSD интересуются такими ошибками, но им нужно больше информации, чем просто текст ошибки. Скопируйте весь текст сообщения. Затем обратитесь к разделу FAQ об <<kernel-panic-troubleshooting,аварийных завершениях работы ядра>>, постройте отладочное ядро и получите трассу вызовов. Это может звучать трудной задачей, зато не требует навыков программирования. Просто следуйте указаниям. +[[proc-table-full]] === Что означает сообщение об ошибке maxproc limit exceeded by uid %i, please see tuning(7) and login.conf(5)? Ядро FreeBSD позволяет одновременно существовать ограниченному числу процессов. Это зависит от значения переменной man:sysctl[8] `kern.maxusers`. `kern.maxusers` также влияет на другие ограничения ядра, такие как буферы работы с сетью. Если система сильно загружена, поднимите `kern.maxusers`. Кроме максимального числа процессов это также увеличит значения других параметров, ограничивающих систему. -Для корректировки значения `kern.maxusers` обратитесь к разделу extref:{handbook}config-tuning[Ограничения файлов/процессов, kern-maxfiles] Руководства. В нём говорится об открытых файлах, но те же ограничения касаются процессов. +Для корректировки значения `kern.maxusers` обратитесь к разделу +extref:{handbook}config/[Ограничения файлов/процессов, kern-maxfiles] +Руководства. В нём говорится об открытых файлах, но те же ограничения касаются +и процессов. Если система загружена слабо, но в ней запущено слишком много процессов, поправьте параметр `kern.maxproc`, определив его значение в [.filename]#/boot/loader.conf#. Изменение не вступит в силу до перезагрузки системы. За дополнительной информацией, касающейся настройки параметров, обращайтесь к странице Справочника man:loader.conf[5]. Если эти процессы запущены одним и тем же пользователем, поправьте значение `kern.maxprocperuid`, чтобы оно было на единицу меньше, чем новое значение `kern.maxproc`. Оно должно быть меньше по крайней мере на единицу, потому что системная программа man:init[8] должна работать всегда. +[[remote-fullscreen]] === Полноэкранные приложения на удалённой машине работают неправильно! На удалённой машине тип терминала может отличаться от `xterm`, который требуется для использования консоли FreeBSD. Либо же ядро может иметь неправильные значения ширины и высоты терминала. Проверьте, чтобы переменная окружения `TERM` имела значение `xterm`. Если удалённая машина его не поддерживает, попробуйте `vt100`. -Запустите `stty -a`, чтобы узнать, какие размеры терминала заданы в ядре. Если значения неправильные, их можно поменять командой `stty rows _RR_ cols _CC_`. +Запустите `stty -a`, чтобы узнать, какие размеры терминала заданы в ядре. +Если значения неправильные, их можно поменять командой `stty rows _RR_ cols _CC_`. Либо же, если на клиентской машине установлен package:x11/xterm[], запуск `resize` позволит узнать у терминала правильные размеры и применить эти значения. +[[connection-delay]] === Почему подключение через ssh или telnet к моему компьютеру занимает так долго времени? Симптом: между моментом установления TCP-соединения и выдачей клиентским программным обеспечением запроса на ввод пароля (или, в случае использования man:telnet[1], выдачей приглашения на вход) проходит большой промежуток времени. -Проблема: скорее всего, задержка вызвана программным обеспечением на стороне сервера, которое пытается преобразовать IP-адрес клиента в имя хоста. Многие серверы, включая Telnet и SSH, поставляемые с FreeBSD, делают это для того, чтобы, кроме всего прочего, записать имя хоста в файле журнала для справки администратора. +Проблема: скорее всего, задержка вызвана программным обеспечением на стороне сервера, которое пытается преобразовать IP-адрес клиента в имя хоста. +Многие серверы, включая Telnet и SSH, поставляемые с FreeBSD, делают это для того, чтобы, кроме всего прочего, записать имя хоста в файле журнала для справки администратора. Лечение: Если проблема возникает при подключении клиента к любому серверу, то причина в клиенте. Если проблема возникает только при чьей-либо попытке подключиться к серверу, то проблема в сервере. @@ -719,10 +850,15 @@ FreeBSD поддерживает функции ACPI, реализованные Из-за свежей установки FreeBSD, также возможно, что информация о домене и сервере имён отсутствует в [.filename]#/etc/resolv.conf#. Это часто будет вызывать задержку в работе SSH, так как опция `UseDNS` по умолчанию установлена в значение `yes` в [.filename]#/etc/ssh/sshd_config#. Если именно это является причиной проблемы, то добавьте недостающую информацию в [.filename]#/etc/resolv.conf#, либо в качестве временной меры установите `UseDNS` в `no` в файле [.filename]#sshd_config#. +[[file-table-full]] === Почему в man:dmesg[8] регулярно выводятся сообщения file: table is full? -Такое сообщение об ошибке сигнализирует о том, что в системе закончились доступные файловые дескрипторы. Обратитесь к разделу extref:{handbook}config-tuning[kern.maxfiles, kern-maxfiles] главы о extref:{handbook}config-tuning/[Настройке ограничений ядра, configtuning-kernel-limits] Руководства для выяснения всех подробностей и устранения этой проблемы. +Такое сообщение об ошибке сигнализирует о том, что в системе закончились +доступные файловые дескрипторы. Обратитесь к разделу +extref:{handbook}config/[kern.maxfiles, kern-maxfiles] главы о +extref:{handbook}config/[настройке ограничений ядра, configtuning-kernel-limits] Руководства для выяснения всех подробностей и поиска решения. +[[computer-clock-skew]] === Почему часы на моем компьютере показывают неправильное время? На компьютере установлено по меньшей мере два таймера, и FreeBSD выбрала не тот. @@ -753,7 +889,7 @@ kern.timecounter.hardware: ACPI-fast debug.acpi.disabled="timer" .... -Либо же BIOS может изменить частоту TSC-может, для изменения скорости работы процессора при работе от батареек или переводя в режим пониженного электропитания, но FreeBSD не отслеживает это и в результате часы начинают спешить или отставать. +Либо же BIOS может изменить частоту таймера TSC - возможно, для изменения скорости работы процессора при работе от батареи или переводя в режим пониженного электропитания, но FreeBSD не отслеживает это, и в результате часы начинают спешить или отставать. В этом примере имеется также и таймер `i8254`, и он может быть выбран записью его имени в man:sysctl[3]-переменную `kern.timecounter.hardware`. @@ -774,119 +910,146 @@ kern.timecounter.hardware=i8254 === Что означает сообщение swap_pager: indefinite wait buffer:? -Это значит, что процесс пытается сбросить страницу памяти на диск, и попытка сделать это оканчивается неудачно в течение более 20 секунд. Это может быть вызвано испорченными блоками на диске, кабелями, подключением или другим оборудованием ввода/вывода. Если диск сам по себе испорчен, вы также увидите ошибки работы с диском в [.filename]#/var/log/messages# и в выводе `dmesg`. В противном случае проверьте кабели и подключения. +Это значит, что процесс пытается считать страницу памяти с +диска, но попытки сделать это оканчиваются неудачно в течение +более 20 секунд. Это может быть вызвано повреждёнными блоками +на диске, кабелями, подключением или другим оборудованием ввода/вывода. Если диск сам по себе повреждён, вы также увидите ошибки работы с диском в [.filename]#/var/log/messages# и в выводе `dmesg`. В противном случае проверьте кабели и подключения. -=== Что означают сообщения lock order reversal? +[[lock-order-reversal]] +=== Что такое lock order reversal? -Ядро FreeBSD использует несколько блокировок для арбитража доступа к соответствующим ресурсам. Когда несколько потоков в ядре пытаются захватить несколько блокировок подряд, всегда существует возможность появления мёртвой блокировки (deadlock), где два потока захватили по одной блокировке и заблокированы в ожидании освобождения другим потоком второй блокировки. Такой проблемы синхронизации можно избежать, если все потоки захватывают блокировки в одинаковом порядке. +Ядро FreeBSD использует несколько блокировок для арбитража доступа к соответствующим ресурсам. +Когда несколько потоков в ядре пытаются захватить несколько блокировок подряд, всегда существует возможность появления мёртвой блокировки (deadlock), где два потока захватили по одной блокировке и заблокированы в ожидании освобождения другим потоком второй блокировки. +Такой проблемы синхронизации можно избежать, если все потоки получают блокировки в одинаковом порядке. -Система диагностирования блокировок man:witness[4], которая по умолчанию включена во FreeBSD-CURRENT и выключена для стабильных веток и релизов, определяет возможность появления мёртвых блокировок из-за ошибок их использования, включая захват нескольких блокировок в различном порядке в разных частях ядра. Инфраструктура man:witness[4] пытается обнаруживать эту проблему по мере её появления и сообщает о ней на системную консоль в сообщении `lock order reversal` (которое также часто называют LOR). +Система диагностирования блокировок man:witness[4], которая по умолчанию включена во FreeBSD-CURRENT и выключена для стабильных веток и релизов, определяет возможность появления мёртвых блокировок из-за ошибок их использования, включая захват нескольких блокировок в различном порядке в разных частях ядра. +Механизм man:witness[4] пытается обнаруживать эту проблему по мере её появления и сообщает о ней на системную консоль сообщением `lock order reversal` (которое также часто называют LOR). -В силу консервативности man:witness[4] возможны ложные срабатывания. При правильном срабатывании такое сообщение _не_ означает, что система находится в состоянии мёртвой блокировки; его следует рассматривать как предупреждение о том, что в этом месте могла бы произойти мёртвая блокировка. +В силу консервативности man:witness[4] возможны ложные срабатывания. +При правильном срабатывании такое сообщение _не_ означает, что система находится в состоянии мёртвой блокировки; его следует рассматривать как предупреждение о том, что в этом месте могла произойти мёртвая блокировка. [NOTE] ==== -Плохие LOR обычно быстро исправляют, поэтому перед написанием сообщения в списки рассылки следует проверить архивы link:{freebsd-current}. +Плохие LOR обычно быстро исправляют, поэтому перед написанием сообщения в списки рассылки следует проверить архивы {freebsd-current}. ==== -=== Что означают сообщения Called ... with the following non-sleepable locks held? +[[called-with-non-sleepable-locks-held]] +=== Что означают сообщения `Called ... with the following non-sleepable locks held`? Это означает, что функция, которая может находиться в "спящем" состоянии была вызвана во время использования мьютекс (или другого не "засыпающего") блокирования. -Причина этого - ошибка, потому что мьютексы не предполагают находиться в удерживаемом состоянии длительные промежутки времени, а блокировать только на короткие периоды синхронизации. Это правило позволяет драйверам устройств использовать мьютексы для синхронизации с остальной частью ядра во время прерываний. Прерывания (во FreeBSD) могут находиться не в "спящем состоянии". Следовательно необходимо, чтобы не было подсистем в ядре, которые бы занимались блокировкой длительный период, используя мьютекс. +Объяснением того, что это ошибка, является то, что мьютексы не предполагают нахождения в удерживаемом состоянии длительные промежутки времени, и блокируются только на короткие периоды синхронизации. +Это правило позволяет драйверам устройств использовать мьютексы для синхронизации с остальной частью ядра во время прерываний. +Прерывания (во FreeBSD) могут находиться не в "спящем состоянии". Следовательно необходимо, чтобы не было подсистем в ядре, которые бы занимались блокировкой длительный период, используя мьютекс. Для нахождения таких ошибок в ядро могут быть добавлены assertions, которые будут взаимодействовать с подсистемой man:witness[4] для генерирования предупреждения или фатальной ошибки (в зависимости от системной конфигурации) в случаях когда производится потенциально блокирующий вызов с удержанием мьютекса. -В общем, такие предупреждения не критичны, но тем не менее, с неудачной синхронизацией (timing) они могут вызвать нежелательные эффекты, начиная от незначительной задержки в ответной реакции системы до полной блокировки системы. +В общем, такие предупреждения не критичны, но тем не менее, с неудачной синхронизацией (timing) они могут вызвать нежелательные эффекты, начиная от незначительной задержки в ответной реакции системы до полной её блокировки. Дополнительная информация о синхронизации во FreeBSD находится на странице Справочника man:locking[9]. +[[touch-not-found]] === Почему процесс buildworld/installworld завершается с сообщением touch: not found? Эта ошибка не означает, что не найдена утилита man:touch[1]. Ошибка наверняка появляется из-за того, что даты модификации файлов установлены в будущем. Если CMOS часы установлены на локальное время, отрегулируйте часовой механизм ядра, запустив команду `adjkerntz -i` в однопользовательском режиме. +[[applications]] == Прикладные программы === Где находятся все прикладные программы? -Обратитесь на link:https://www.FreeBSD.org/ports/[страницу портов], содержащую информацию о программных продуктах, перенесённых во FreeBSD. На данный момент в этом списке находится более {numports} приложений и он ежедневно увеличивается, так что почаще туда заглядывайте или подпишитесь на {freebsd-announce}, в котором публикуется информация о появлении новых приложений. +Обратитесь на link:https://www.FreeBSD.org/ports/[страницу портов], содержащую +информацию о программных продуктах, перенесённых во FreeBSD. -Большинство портов должно нормально работать во всех поддерживаемых версиях FreeBSD. Неработающие порты специально помечаются соответствующим образом. При выходе нового релиза FreeBSD в него в каталог [.filename]#ports/# включается актуальная на момент выхода Коллекция Портов. +Большинство портов должно нормально работать во всех поддерживаемых версиях FreeBSD. Неработоспособные порты специально помечаются соответствующим образом. При выходе нового релиза FreeBSD в него в каталог [.filename]#ports/# также включается актуальная на момент выхода Коллекция Портов. FreeBSD умеет работать со сжатыми двоичными пакетами для упрощения установки и удаления портов. Используйте man:pkg[7] для управления процессом установки пакетов. -=== Как загрузить дерево Портов? Следует ли использовать SVN? - -Любым из указанных способов: - -* Используйте portsnap в большинстве случаев. Обратитесь к разделу extref:{handbook}ports/[Использование Коллекции Портов, ports-using] для получения инструкций по использованию этого инструмента. -* Используйте SVN, если нужны собственные патчи для дерева портов. Обратитесь к разделу extref:{handbook}mirrors/[Использование Subversion, svn] для получения дополнительной информации. -* Используйте CTM как это описано в разделе extref:{handbook}[Использование CTM] для получения изменений по почте при нестабильном соединении. +[[how-do-download-ports-tree]] +=== Как загрузить дерево Портов? Следует ли использовать Git? -=== Поддерживает ли FreeBSD среду Java(TM)? - -Да. Для получения дополнительной информации посетите страницу link:https://www.FreeBSD.org/java/[http://www.FreeBSD.org/java/]. +Обратитесь к разделу +extref:{handbook}ports/[Установка Коллекции Портов, ports-using-installation-methods]. +[[ports-4x]] === Почему этот порт не компилируется на моей машине с {rel2-relx} - или {rel-relx} -STABLE? -Если установленная версия FreeBSD, значительно отстаёт от _-CURRENT_ или _-STABLE_, обновите Коллекцию Портов с использованием указаний в разделе extref:{handbook}ports/[Использование Коллекции Портов, ports-using]. Если система в актуальном состоянии, значит кто-то мог внести изменение в порт, с которым он работает в _-CURRENT_, но не работает в _-STABLE_. https://bugs.FreeBSD.org/submit/[Пошлите] сообщение об ошибке, так как Коллекция Портов должна работать как в _-CURRENT_, так и в ветках _-STABLE_. +Если установленная версия FreeBSD значительно отстаёт от _-CURRENT_ или +_-STABLE_, обновите Коллекцию Портов, следуя указаниям раздела +extref:{handbook}ports/[Использование Коллекции Портов, ports-using]. Если +система находится в актуальном состоянии, то, возможно, кто-то внёс изменение в +порт, который работоспособен в _-CURRENT_, но +не работает в _-STABLE_. https://bugs.FreeBSD.org/submit/[Отправьте] +сообщение об ошибке, так как предполагается, что Коллекция Портов +работает как для ветки _-CURRENT_, так и _-STABLE_. +[[make-index]] === Я попытался сформировать файл INDEX командой make index, однако попытка окончилась неудачей. Почему? Первым делом убедитесь, что Коллекция Портов находится в актуальном состоянии. Ошибки, которые отражаются на построении файла [.filename]#INDEX# из актуальной копии Коллекции Портов, бросаются в глаза и поэтому практически всегда исправляются немедленно. -В редких случаях [.filename]#INDEX# не перестраивается из-за странных комбинаций значений переменных `WITH__*_` или `WITHOUT__*_`, заданных в файле [.filename]#make.conf#. Если вы думаете, что это ваш случай, прежде чем сообщать об этом в {freebsd-ports}, попытайтесь сформировать [.filename]#INDEX# с отключенными значениями этих переменных. +В редких случаях [.filename]#INDEX# не перестраивается из-за странных +комбинаций значений переменных `OPTIONS_SET`, заданных в +файле [.filename]#make.conf#. Если вы подозреваете, что +дело именно в этом, то, прежде чем сообщать об этом в {freebsd-ports}, +попытайтесь сформировать [.filename]#INDEX# с отключенными значениями этих +переменных. +[[ports-update]] === Я обновил исходные тексты. Как теперь обновить установленные порты? -С FreeBSD не поставляется инструмент обновления портов, но есть несколько инструментов, немного облегчающих этот процесс. Кроме того, для упрощения работы с портами доступны дополнительные инструменты; смотрите раздел Руководства FreeBSD extref:{handbook}ports/[Использование Коллекции Портов, ports-using]. +С FreeBSD не поставляется инструмент обновления портов, но есть несколько инструментов, немного облегчающих этот процесс. Кроме того, для упрощения работы с портами доступны дополнительные инструменты; смотрите раздел Руководства FreeBSD extref:{handbook}ports/[об обновлении портов, ports-using]. +[[ports-major-upgrade]] === Нужно ли мне перекомпилировать все порты каждый раз, когда я выполняю мажорное обновление (со сменой старшей версии FreeBSD)? -Да! На свежеобновленной системе программное обеспечение, скомпилированное под более старый релиз, будет по прежнему работать, но только до тех пор, пока вы не начнете устанавливать другие порты или обновлять существующие. +Да! +Хотя на новой системе программное обеспечение, скомпилированное под более старый релиз, будет работать, но только до тех пор, пока вы не начнёте устанавливать другие порты или обновлять существующие. -Когда система обновлена, различные совместно используемые библиотеки, загружаемые модули и другие части системы замещаются более новыми версиями. Приложения, скомпонованные с более старыми версиями, могут перестать запускаться либо начнут функционировать неправильно. +Когда система обновляется, различные совместно используемые библиотеки, загружаемые модули и другие части системы замещаются более новыми версиями. Приложения, скомпонованные с более старыми версиями, могут перестать запускаться либо начнут функционировать неправильно. -Для получения дополнительной информации обращайтесь к link:{handbook.en}#freebsdupdate-upgrade[разделу, посвящённому обновлениям,] руководства FreeBSD. +Для получения дополнительной информации обращайтесь к +extref:{handbook}cutting-edge/[разделу, посвящённому обновлениям, freebsdupdate-upgrade] +Руководства по FreeBSD. +[[ports-minor-upgrade]] === Нужно ли мне перекомпилировать все порты каждый раз, когда я выполняю минорное обновление (без изменения старшей версии FreeBSD)? -В общем случае, нет. Разработчики FreeBSD делают всё возможное для сохранения двоичной совместимости между всеми релизами в пределах одной старшей версии. Любые исключения из этого правила документируются в "Примечаниях к релизу", и там же даются советы, которых следует придерживаться. +В общем случае этого не требуется. +Разработчики FreeBSD делают всё возможное для сохранения двоичной совместимости между всеми релизами в пределах одной старшей версии. Любые исключения из этого правила документируются в "Примечаниях к релизу", и там же даются советы, которых следует придерживаться. +[[minimal-sh]] === Почему возможности /bin/sh так малы? Почему бы во FreeBSD не использовать bash или какой-либо другой командный процессор? Многим требуется, чтобы разрабатываемые скрипты для командного процессора были переносимы между многими системами. Именно поэтому в POSIX(R) очень подробно описан командный процессор и набор утилит. Большинство скриптов пишутся на языке процессора Bourne shell (man:sh[1]), к тому же некоторые важные программные вызовы (man:make[1], man:system[3], man:popen[3] и их аналоги на языках скриптов высокого уровня, таких как Perl или Tcl) предполагают для интерпретации команд использование именно Bourne shell. Так как Bourne shell используется столь широко и часто, то очень важно, чтобы он стартовал очень быстро, его поведение было строго регламентировано и при этом потребности в оперативной памяти были малы. В имеющейся реализации мы приложили максимум усилий для воплощения в жизнь всех этих требований одновременно. Для того, чтобы сохранить `/bin/sh` небольшим по размеру, мы не включили многие из обычных возможностей, которые имеются в других командных процессорах. Для этого имеются в наличии командные процессоры, обладающие гораздо большими возможностями, такие как `bash`, `scsh`, man:tcsh[1] и `zsh`. Сравните использование памяти этими оболочками, посмотрев в колонки "VSZ" и "RSS" вывода команды `ps -u`. -=== Как создать аудио-CD из файлов MIDI? - -Для создания аудио-CD из MIDI-файлов сначала установите из портов программу package:audio/timidity[], затем установите набор патчей GUS от Эрика Уэлша (Eric A. Welsh), доступный по адресу http://alleg.sourceforge.net/digmid.html[http://alleg.sourceforge.net/digmid.html]. После корректной установки TiMidity++ MIDI-файлы могут быть преобразованы в WAV-файлы следующей командой: - -[source,shell] -.... -% timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid -.... - -WAV-файлы затем могут быть преобразованы в другие форматы или записаны как аудио-CD, что описано в extref:{handbook}disks/[Руководстве FreeBSD, creating-cds]. - +[[kernelconfig]] == Конфигурирование ядра [[make-kernel]] === Я хочу изменить настройки ядра. Это сложно? -Вовсе нет! Обратитесь к extref:{handbook}kernelconfig/[соответствующему разделу, kernelconfig] Руководства, который посвящён этому вопросу. +Вовсе нет! +Обратитесь к extref:{handbook}kernelconfig/[разделу о настройке ядра] +Руководства, который посвящён этому вопросу. [NOTE] ==== -Новый файл [.filename]#kernel# будет установлен в каталог [.filename]#/boot/kernel# вместе со своими модулями, а старое ядро и его модули будут сдвинуты в каталог [.filename]#/boot/kernel.old#. Если сделана ошибка в конфигурации, просто загрузите предыдущую версию ядра. +Новый файл [.filename]#kernel# будет установлен в каталог [.filename]#/boot/kernel# вместе со своими модулями, а старое ядро и его модули будут перемещены в каталог [.filename]#/boot/kernel.old#. +Если сделана ошибка в конфигурации, просто загрузите предыдущую версию ядра. ==== +[[why-kernel-big]] === Почему моё ядро такое большое? -Конфигурация ядра `GENERIC`, которая содержится в дистрибутиве FreeBSD, компилируется в _отладочном режиме_. В таком режиме ядра содержат много символьной информации в разных файлах, которая используется для отладки и сильно увеличивает размер [.filename]#/boot/kernel/#. Заметьте, что уменьшения производительности при использовании отладочного ядра нет или оно незначительно, однако отладочное ядро полезно иметь под рукой на случай аварийного завершения работы системы. +Ядра `GENERIC`, поставляемые в составе FreeBSD, компилируется в _режиме отладки_. +Ядра, построенные в таком режиме, содержат отладочную информацию, которая хранится в отдельных файлах, используемых для отладки. +Файлы для отладки размещаются в [.filename]#/usr/lib/debug/boot/kernel/#. +Заметьте, что снижения производительности при использовании отладочного ядра нет или оно незначительно, и отладочное ядро полезно иметь под рукой на случай аварийного завершения работы системы. -Однако при нехватке дискового пространства существует несколько вариантов уменьшения размера [.filename]#>/boot/kernel/#. +При нехватке дискового пространства существует несколько вариантов уменьшения размера [.filename]#/boot/kernel/# и [.filename]#/usr/lib/debug/#. Чтобы не устанавливать файлы с символьной информацией, убедитесь в наличии следующей строки в [.filename]#/etc/src.conf#: @@ -897,7 +1060,8 @@ WITHOUT_KERNEL_SYMBOLS=yes Для получения дополнительной информации смотрите страницу Справочника man:src.conf[5]. -Если вы не хотите компилировать отладочное ядро, убедитесь в выполнении следующих условий: +Если вы хотите совсем избежать создания файлов для отладки, убедитесь в +выполнении следующих двух условий: * В конфигурационном файле ядра нет такой строчки: + @@ -917,22 +1081,39 @@ makeoptions DEBUG=-g MODULES_OVERRIDE= accf_http ipfw .... -Замените _accf_httpd ipfw_ на нужный список модулей. Это уменьшит размер каталога с ядром, а также время сборки. Для получения дополнительной информации почитайте [.filename]#/usr/shared/examples/etc/make.conf#. +Замените _accf_httpd ipfw_ на нужный список модулей. Это уменьшит размер +каталога с ядром, а также время сборки. Для получения дополнительной +информации почитайте [.filename]#/usr/share/examples/etc/make.conf#. Для дальнейшего уменьшения размера также можно удалить ненужные устройства из ядра. Для получения дополнительной информации смотрите <<make-kernel>>. -Для вступления любого из этих действий в силу следуйте указаниям по extref:{handbook}kernelconfig/[сборке и установке, kernelconfig-building] нового ядра. +Для вступления любого из этих действий в силу следуйте указаниям по +extref:{handbook}kernelconfig/[сборке и установке, kernelconfig-building] нового ядра. -Большинство ядер ([.filename]#/boot/kernel/kernel#), как правило, занимают от 12 до 16 Мбайт. +К вашему сведению, примерный размер ядра FreeBSD 11 amd64 +([.filename]#/boot/kernel/kernel#) составляет 25 Mбайт. === Почему мне не удаётся откомпилировать ни один вариант ядра, даже GENERIC? Есть несколько причин, приводящих к возникновению этой проблемы: -* Дерево исходных текстов отличается от того, что использовалось для построения работающей в данный момент системы. Перед обновлением прочитайте файл [.filename]#/usr/src/UPDATING#, обращая особое внимание на раздел "COMMON ITEMS" в его конце. -* Команда `make buildkernel` не завершилась успешно. Корректное выполнение цели `make buildkernel` зависит от файлов, полученных после выполнения `make buildworld`. -* Даже при построении <<stable,FreeBSD-STABLE>> возможно, что дерево исходных текстов было загружено в тот момент, когда оно модифицировалось или было неработоспособно. Построение гарантируется только для релизов, хотя в большинстве случаев <<stable,FreeBSD-STABLE>> строится без проблем. Попробуйте сгрузить дерево исходных текстов повторно и посмотрите, разрешилась ли проблема. Если с сервером есть проблемы, попробуйте другое зеркало. - +* Дерево исходных текстов отличается от того, что использовалось для построения +работающей в данный момент системы. +Перед обновлением прочитайте файл [.filename]#/usr/src/UPDATING#, обращая +особое внимание на раздел "COMMON ITEMS" в его конце. +* Выполнение команды `make buildkernel` не было успешно завершено. Корректное +исполнение задачи `make buildkernel` зависит от файлов, полученных после +выполнения `make buildworld`. +* Даже при построении <<stable,FreeBSD-STABLE>> возможно, что дерево исходных +текстов было загружено в тот момент, когда оно модифицировалось или было +неработоспособно. +Построение гарантируется только для релизов, хотя в большинстве случаев +<<stable,FreeBSD-STABLE>> строится без проблем. +Попробуйте сгрузить дерево исходных текстов повторно и посмотрите, решилась +ли проблема. Если с зеркалирующим сервером есть проблемы, попробуйте +использовать другое зеркало. + +[[scheduler-in-use]] === Какой планировщик используется в работающей системе? Название используемого планировщика доступно напрямую в виде значения sysctl-параметра `kern.sched.name`: @@ -949,10 +1130,12 @@ kern.sched.name: ULE == Диски, файловые системы и начальные загрузчики +[[adding-disks]] === Как добавить в систему новый диск? -Обратитесь к разделу extref:{handbook}disks/[Добавление дисков, disks-adding] Руководства FreeBSD. +Обратитесь к разделу extref:{handbook}disks/[Добавление дисков, disks-adding] Руководства по FreeBSD. +[[new-huge-disk]] === Как перенести систему на большой новый диск? Самый лучший способ заключается в переустановке операционной системы на новый диск с последующим переносом пользовательских данных. Это настоятельно рекомендуется при отслеживании ветки _-STABLE_ в течение более одного релиза или при обновлении релиза вместо установки нового. Установите booteasy на оба диска с помощью man:boot0cfg[8] и выполняйте загрузку с любого из них, пока не будете довольны новой конфигурацией. Пропустите следующий абзац, чтобы перейти к вопросу переноса данных после этой операции. @@ -1008,6 +1191,7 @@ kern.sched.name: ULE Для перемещения пользовательских данных также имеются программы man:cpio[1] и man:pax[1]. Известно, что они теряют информацию о флагах файлов, так что используйте их с осторожностью. +[[safe-softupdates]] === На каких разделах можно без опаски использовать механизм Soft Updates? Я слышал, что использование Soft Updates на / могут приводить к проблемам. Что насчёт журналируемых Soft Updates? Краткий ответ: обычно Soft Updates можно использовать без опаски на всех разделах. @@ -1031,13 +1215,17 @@ kern.sched.name: ULE FreeBSD поддерживает ряд других файловых систем. UFS:: -Компакт-диски с файловой системой UFS могут быть смонтированы без всяких проблем. Монтирование файловых систем Digital UNIX или других систем, поддерживающих UFS, может быть более сложным, в зависимости от особенностей разбиения диска конкретной операционной системой. +Компакт-диски с файловой системой UFS могут быть смонтированы без всяких проблем. +Монтирование файловых систем Digital UNIX или других систем, поддерживающих UFS, может быть более сложным, в зависимости от особенностей разбиения диска конкретной операционной системой. ext2/ext3:: -FreeBSD поддерживает разделы `ext2fs` и `ext3fs`. За дополнительной информацией обратитесь к странице Справочника man:ext2fs[5]. +FreeBSD поддерживает разделы `ext2fs`, `ext3fs` и `ext4fs`. За дополнительной +информацией обратитесь к странице Справочника man:ext2fs[5]. NTFS:: -Поддержка NTFS через FUSE доступна через порт package:sysutils/fusefs-ntfs[]. Для получения более полной информации смотрите документацию к http://www.tuxera.com/community/ntfs-3g-manual/[ntfs-3g]. +Поддержка NTFS, реализованная на базе FUSE, доступна в виде порта +package:sysutils/fusefs-ntfs[]. Для получения более полной информации +обратитесь к man:ntfs-3g[8]. FAT:: Во FreeBSD имеется драйвер для работы с FAT в режиме чтения-записи. Для получения дополнительной информации обратитесь к странице справочника man:mount_msdosfs[8]. @@ -1047,19 +1235,27 @@ FreeBSD включает в себя портированную из Sun(TM) р FreeBSD включает сетевую файловую систему NFS. В Коллекции портов FreeBSD имеется несколько приложений FUSE для поддержки многих других файловых систем. +[[mount-dos]] === Как смонтировать вторичный раздел DOS? -Вторичные разделы DOS находятся после _всех_ первичных разделов. Например, если "E" является вторым разделом DOS на втором диске SCSI, то здесь будет файл устройства для пятого "слайса" в каталоге [.filename]#/dev#. Чтобы смонтировать: +Вторичные разделы DOS находятся после _всех_ первичных разделов. +Например, если "E" является вторым разделом DOS на втором диске SCSI, то в +каталоге [.filename]#/dev# будет находиться файл устройства для "слайса 5". +Чтобы его смонтировать, выполните следующую команду: [source,shell] .... # mount -t msdosfs /dev/da1s5 /dos/e .... +[[crypto-file-system]] === Существует ли криптографическая файловая система для FreeBSD? -Да, man:gbde[8] и man:geli[8]. Смотрите раздел extref:{handbook}disks/[Шифрование дисковых разделов, disks-encrypting] Руководства FreeBSD. +Да, man:gbde[8] и man:geli[8]. Обратитесь к разделу +extref:{handbook}disks/[Шифрование дисковых разделов, disks-encrypting] +Руководства по FreeBSD. +[[grub-loader]] === Как загрузить FreeBSD и Linux(R) с помощью GRUB? Для загрузки FreeBSD с использованием GRUB добавьте следующие строки в [.filename]#/boot/grub/menu.lst# или [.filename]#/boot/grub/grub.conf#, в зависимости от используемого дистрибутива Linux(R). @@ -1073,16 +1269,20 @@ kernel /boot/loader Где _hd0,a_ указывает на корневой раздел на первом диске. Чтобы указать номер слайса, напишите что-то вроде _(hd0,2,a)_. По умолчанию, если номер слайса не указан, GRUB ищет первый слайс c разделом `a`. +[[booteasy-loader]] === Как загрузить FreeBSD и Linux(R) с помощью BootEasy? -Установите LILO в начало загрузочного раздела Linux(R), а не в Master Boot Record. После этого LILO можно будет запустить LILO из BootEasy. +Установите LILO в начало загрузочного раздела Linux(R), а не в Master Boot +Record. После этого загрузите LILO из BootEasy. Это рекомендуется делать при одновременном использовании Windows(R) и Linux(R), чтобы упростить восстановление работоспособности Linux(R) в случае переустановки Windows(R). +[[changing-bootprompt]] === Как сменить приглашение загрузчика с ??? на что-нибудь более значащее? Этого нельзя сделать со стандартным загрузчиком, не переписав его. В категории [.filename]#sysutils# Коллекции Портов есть ряд других менеджеров загрузки. +[[removable-drives]] === Как использовать устройство для чтения сменных дисков? Если у вас уже есть файловая система на устройстве, то используйте такую команду: @@ -1122,34 +1322,51 @@ kernel /boot/loader /dev/da0p1 /mnt ufs rw,noauto 0 0 .... -=== При монтировании компакт-диска выдаётся сообщение Incorrect super block. +[[mount-cd-superblock]] +=== Почему при монтировании компакт-диска выдаётся сообщение Incorrect super block? -Необходимо указать тип монтируемого устройства. Это описано в в разделе Руководства extref:{handbook}disks[Использование CD с данными, creating-cds]. +Необходимо указать тип монтируемого устройства. Это описано в разделе +Руководства extref:{handbook}disks/[Использование CD с данными, mounting-cd]. +[[cdrom-not-configured]] === При монтировании компакт-диска выдаётся сообщение Device not configured. -Обычно это означает, что в приводе нет компакт-диска либо устройство не обнаружено на шине. Обратитесь к разделу extref:{handbook}disks[Использование CD с данными, mounting-cd] в Руководстве, где подробно обсуждается этот вопрос. +Обычно это означает, что в приводе нет компакт-диска либо устройство не +обнаружено на шине. Обратитесь к разделу extref:{handbook}disks/[Использование +CD с данными, mounting-cd] в Руководстве, где подробно обсуждается этот вопрос. -=== Когда я монтирую CD-ROM, все неанглийские символы в именах файлов выводятся как ?. +[[cdrom-unicode-filenames]] +=== Почему при монтировании CD-ROM во FreeBSD все неанглийские символы в именах файлов отображаются как вопросительные знаки? -Скорее всего, на компакт-диске для хранения информации о файлах и каталогах используется расширение "Joliet". Это описано в разделе Руководства об extref:{handbook}disks[использовании CD с данными, mounting-cd]. +Скорее всего, на компакт-диске для хранения информации о файлах и каталогах используется расширение "Joliet". Это описано в разделе Руководства об +extref:{handbook}disks/[использовании CD с данными, mounting-cd]. +[[burncd-isofs]] === Записанный во FreeBSD CD не читается ни в какой другой операционной системой. Почему? -Это означает, что на CD был записан непосредственно необработанный файл без создания файловой системы ISO 9660. Прочтите раздел Руководства о extref:{handbook}disks[записи данных непосредственно на компакт-диски, rawdata-cd]. +Это означает, что на CD был записан непосредственно необработанный файл без создания файловой системы ISO 9660. Прочтите раздел Руководства об +extref:{handbook}disks/[использовании CD с данными]. +[[copy-cd]] === Как создать образ CD с данными? -Это описано в разделе Руководства о extref:{handbook}disks[копировании CD с данными, imaging-cd]. Более полную информацию о работе с компакт-дисками можно найти в разделе о extref:{handbook}disks/[создании компакт-дисков, creating-cds] в главе Руководства об устройствах хранения данных. +Это описано в разделе Руководства о extref:{handbook}disks/[записи данных на +файловую систему ISO, mkisofs]. Более полную информацию о работе с +компакт-дисками можно найти в разделе о extref:{handbook}disks/[создании +компакт-дисков, creating-cds] в главе Руководства об устройствах хранения +данных. -=== Почему я не могу смонтировать (командой mount аудио CD? +[[mount-audio-CD]] +=== Почему я не могу смонтировать аудио CD? -Попытка смонтировать аудио CD приведёт к сообщению об ошибке вида: `cd9660: /dev/acd0c: Invalid argument`. Причина этого заключается в том, что команда `mount` работает только с файловыми системами. На аудио CD файловых систем нет; они содержат только данные. Используйте вместо этого программу, которая умеет читать аудио CD, например, порт package:audio/xmcd[]. +Попытка смонтировать аудио CD приведёт к сообщению об ошибке вида `cd9660: /dev/acd0c: Invalid argument`. Причина этого заключается в том, что команда `mount` работает только с файловыми системами. На аудио CD файловых систем нет; они содержат только данные. Используйте вместо этого программу, которая умеет читать аудио CD, например, порт package:audio/xmcd[]. +[[multi-session-CD]] === Как выполнить mount для многосеансового CD? По умолчанию man:mount[8] будет пытаться смонтировать последнюю дорожку (сеанс) CD с данными. Для загрузки более раннего сеанса используйте параметр командной строки `-s`. За конкретными примерами обращайтесь к странице Справочника man:mount_cd9660[8]. +[[user-floppymount]] === Как разрешить обычным пользователям монтировать компакт-диски, DVD, USB-диски и другие сменные носители? Как пользователь `root`, установите системную переменную `vfs.usermount` в значение `1`. @@ -1194,66 +1411,109 @@ kernel /boot/loader Имя устройства, использованное в предыдущих примерах, должно быть изменено в соответствии с конфигурацией. ==== -=== Команды du и df показывают разный объем доступного дискового пространства. Что происходит? - -Это связано с тем, как эти команды на самом деле работают. `du` проходит по дереву каталогов, замеряя, насколько большой объем занимает каждый файл, и выдает общий объем. `df` просто запрашивает файловую систему об оставшемся объеме. Это выглядит как одно и то же, однако файл без записи в каталоге затронет `df`, но не повлияет на `du`. - -Когда программа использует файл и этот файл удаляется, то на самом деле он не удаляется из файловой системы, пока программа не прекратит его использовать. Однако файл тут же удаляется из списка каталога. Представим себе файл достаточно большого размера, чтобы его присутствие влияло на вывод `du` и `df`. Если файл удаляется в процессе работы с ним команды `more`, команда `more` не сообщает сразу же, что не может просматривать файл. Запись о файле просто удалена из каталога, так что другие программы или пользователи не смогут к нему обратиться. Тем не менее, `du` покажет, что файл исчез, поскольку она просматривает дерево каталогов, а файла там нет. `df` показывает, что файл всё ещё здесь, так как файловая система знает, что `more` всё ещё использует это пространство. Как только закончится работа с `more`, команды `du` и `df` придут в соответствие. - -Такая ситуация часта на Web-серверах. Многие устанавливают Web-сервер на FreeBSD и забывают обновлять файлы протоколов. Журнал доступа заполняет [.filename]#/var#. Новый администратор удаляет файл, но система все еще сообщает о том, что раздел заполнен. Остановка и перезапуск программы Web-сервера освободит файл, позволяя системе освободить дисковое пространство. Для предотвращения этого настройте man:newsyslog[8]. +[[du-vs-df]] +=== Команды du и df показывают разный объём доступного дискового пространства. Что происходит? + +Это связано с тем, как эти команды на самом деле работают. `du` проходит по дереву каталогов, подсчитывая, насколько большой объём занимает каждый файл, и выдает общий объем. `df` просто запрашивает файловую систему об оставшемся объеме. Это выглядит как одно и то же, однако файл без записи в каталоге затронет `df`, но не повлияет на `du`. + +Когда программа использует файл и этот файл удаляется, то на самом деле он не +удаляется из файловой системы, пока программа не прекратит его использовать. +Однако файл тут же удаляется из списка каталога. В качестве примера можно +представить файл, размер которого достаточен, чтобы повлиять на результаты +работы команд `du` и `df`. Любой файл, просматриваемый при помощи команды +`more`, может быть удалён без выдачи сообщений об ошибке. Запись о файле +просто удаляется из каталога, так что другие программы или пользователи не +смогут к нему обратиться. +Тем не менее, `du` покажет, что файл исчез, поскольку она просматривает дерево каталогов, а файла там нет. `df` показывает, что файл всё ещё здесь, так как файловая система знает, что `more` всё ещё использует это пространство. Как только закончится работа с `more`, команды `du` и `df` придут в соответствие. + +Такая ситуация часто встречается на Web-серверах. +Многие устанавливают Web-сервер на FreeBSD и забывают выполнять ротацию файлов +протоколов. +Журнал доступа заполняет [.filename]#/var#. +Новый администратор удаляет файл, но система всё ещё сообщает о том, что раздел +заполнен. +Остановка и перезапуск программы Web-сервера освободит файл, позволяя системе +освободить дисковое пространство. +Для предотвращения подобной ситуации настройте man:newsyslog[8]. Заметьте, что подсистема отложенных обновлений (Soft Updates) может задерживать освобождение дискового пространства, и может потребоваться до 30 секунд, чтобы изменения стали заметны. === Как добавить дополнительную виртуальную память? -В этом разделе extref:{handbook}config-tuning/[Руководства, adding-swap-space] описывается, как это сделать. +В этом разделе extref:{handbook}config/[Руководства, adding-swap-space] +описывается, как это сделать. +[[manufacturer-disk-size]] === Почему FreeBSD считает, что размер моего диска меньше, чем заявляет его производитель? Производители дисков считают гигабайт равным миллиарду байт, а FreeBSD приравнивает его к 1073741824 байт. Это объясняет, почему, к примеру, в сообщениях при загрузке FreeBSD указывается, что ёмкость диска, объём которого должен быть равным 80 Гбайт, составляет 76319 Мбайт. Заметьте также, что FreeBSD будет (по умолчанию) <<disk-more-than-full,резервировать>> 8% ёмкости диска. +[[disk-more-than-full]] === Почему возможно заполнение раздела больше чем на 100%? Часть каждого раздела UFS (по умолчанию 8%) зарезервировано для использования операционной системой и пользователем `root`. Утилита man:df[1] не учитывает это при подсчёте значения в колонке `Capacity`, так что оно может превышать 100%. Обратите внимание, что колонка `Blocks` всегда больше, чем сумма значений в колонках `Used` и `Avail`, обычно на 8%. Для получения более подробной информации обратитесь к описанию опции `-m` в справке по man:tunefs[8]. -=== Почему загрузка FreeBSD задерживается на длительное время на системах с большим объёмом ОЗУ? - -FreeBSD выполняет короткую проверку памяти на раннем этапе загрузки. Обычно эта проверка занимает всего несколько секунд, но если система имеет много десятков или сотен Гбайт памяти, это можно занять до нескольких минут. Эту проверку можно отключить, установив `hw.memtest.tests` в значение `0` в [.filename]#/boot/loader.conf#. - -Для получения дополнительной информации смотрите страницу Справочника man:loader.conf[5]. - == ZFS -=== Какой минимальный объём ОЗУ нужно иметь для ZFS? +=== Какой минимальный объём ОЗУ требуется для ZFS? Для комфортного использования требуется 4 Гбайт ОЗУ, но конкретная нагрузка может сильно различаться. -=== Что такое ZIL и когда оно используется? - -ZIL ((ZFS intent log) - это журнал записи, используемый для фиксации операций записи. Обычно операции собираются в группу транзакций и при заполнении группы пишутся на диск ("Transaction Group Commit"). Однако системные вызовы типа man:fsync[2] требуют фиксацию записи данных на устройстве перед возвратом управления. ZIL нужен для подтверждения такой записи, но когда данные ещё не находятся на диске. Группа транзакций помечается временной меткой. В случае системного сбоя ищется последняя неповреждённая метка и из ZIL извлекаются недостающие данные. - +[[what-is-zil]] +=== Что такое ZIL и когда он используется? + +ZIL (ZFS intent log) представляет собой журнал операций записи, используемый +для реализации логики подтверждения записи на диск в стандарте +posix, которая работает при сбоях. При нормальной работе отдельные +операции записи объединяются в группу транзакций и записываются на +диск при заполнении группы ("Transaction Group Commit"). Однако системные +вызовы типа man:fsync[2] требуют подтверждения записи данных на надёжное +устройство перед возвратом управления. ZIL нужен для работы с операциями +записи, которые были подтверждены как выполненные, но в рамках транзакции +на диск ещё не записаны. Группы транзакций помечаются меткой +времени. В случае сбоя выполняется поиск последней корректной +метки и из ZIL извлекаются недостающие данные. + +[[need-ssd-for-zil]] === Нужен ли мне SSD для ZIL? -По умолчанию ZFS хранит ZIL в пуле со всеми данными. Если приложение имеет большой процент записи, вынос ZIL на отдельное устройство с очень быстрой синхронной последовательной записью может улучшить общую производительность. В остальных случаях SSD вряд ли сможет что-то сильно улучшить. +По умолчанию ZFS хранит ZIL в пуле со всеми данными. +Если приложение интенсивно выполняет операции записи, то размещение +ZIL на отдельном устройстве, обладающем высокими показателями +скорости синхронной последовательной записи, может улучшить общую +производительность системы. При другом характере нагрузки SSD вряд +ли сможет что-то сильно улучшить. +[[what-is-l2arc]] === Что такое L2ARC? -L2ARC - это кеш на чтение, хранимый на быстром устройстве, таком как SSD. Этот кеш не сохраняется между перезагрузками. Следует заметить, что ОЗУ выступает как кеш первого уровня, а L2ARC задействуется только при нехватке ОЗУ. +L2ARC - это кэш на чтение, хранимый на быстром устройстве, таком как SSD. Этот кэш не сохраняется между перезагрузками. Следует заметить, что ОЗУ выступает +как кэширующее устройство первого уровня, а L2ARC необходим +только при нехватке оперативной памяти. -Для L2ARC нужно пространство в ARC для его индексации. Таким образом, рабочий набор, который идеально помещается в ARC, не будет помещаться при использовании L2ARC, потому что часть ARC будет отведена под индекс L2ARC с вытеснением части рабочего набора в L2ARC, более медленный, чем ОЗУ. +L2ARC требует пространства в ARC для его индексации. Таким образом, рабочий +набор, который идеально помещается в ARC, не будет там помещаться при +использовании L2ARC, поскольку часть ARC будет отведена под индекс L2ARC с +вытеснением части рабочего набора в L2ARC, более медленный, чем ОЗУ. +[[should-enable-dedup]] === Целесообразно ли включение дедупликации? В общем случае нет. -Дедупликация занимает значительный объём ОЗУ и может увеличить задержки операций ввода/вывода. Если данные не являются сильно дублированными (образы виртуальных машин или пользовательские бекапы), то, возможно, дедупликация даст больше вреда. Другое соображение касается невозможности отменить статус дедупликации. Если данные записаны при включённой дедупликации, её выключение не приведёт к обратной репликации объединённых блоков до момента следующей перезаписи. +Дедупликация занимает значительный объём ОЗУ и может увеличить задержки операций ввода/вывода. +Если только данные не являются сильно дублированными (сильно дублированными являются образы виртуальных машин или резервные копии пользовательских данных), то дедупликация может принести больше вреда, чем пользы. +Другое соображение касается невозможности отменить статус дедупликации. +Если данные записаны при включённой дедупликации, её выключение не приведёт к обратной репликации объединённых блоков до момента их модификации. -Дедупликация также может приводить к некоторым неожиданным ситуациям. В частности, удаление файлов может сильно замедлиться. +Дедупликация также может приводить к некоторым неожиданным ситуациям. +В частности, удаление файлов может сильно замедлиться. +[[zpool-fully-full]] === Я не могу создать или удалить файлы на пуле ZFS. Как я могу это исправить? Такое может произойти при 100% заполненности пула. ZFS требуется свободное место на диске для записи метаданных транзакций. Для восстановления работоспособного состояния пула обрежьте файл перед его удалением. @@ -1263,50 +1523,65 @@ L2ARC - это кеш на чтение, хранимый на быстром у % truncate -s 0 unimportant-file .... -Обрезание файла работает по той причине, что новая транзакция при этом не запускается; вместо этого создаются новые свободные блоки. +Обрезка файла работает по той причине, что новая транзакция при этом не +запускается, но вместо этого создаются новые свободные блоки. [NOTE] ==== -На системах с дополнительной настройкой ZFS dataset, такой как дедупликация, свободное место может не быть доступно сразу. +На системах с дополнительными настройками наборов данных ZFS, +такими, как дедупликация, свободное место может не быть доступно сразу. ==== +[[zfs-ssd-trim]] === Поддерживается ли TRIM в ZFS для твердотельных накопителей? -Поддержка ZFS TRIM была добавлена во FreeBSD 10-CURRENT в ревизии rlink:https://svnweb.freebsd.org/changeset/base/240868[r240868] и стала доступна в ветках -STABLE в rlink:https://svnweb.freebsd.org/changeset/base/252162[r252162] и rlink:https://svnweb.freebsd.org/changeset/base/251419[r251419]. - -ZFS TRIM включена по умолчанию и может быть отключена посредством добавления такой строки в [.filename]#/etc/sysctl.conf#: +ZFS во FreeBSD 12.3 и 12.4: TRIM включен по умолчанию. +Для отключения TRIM: добавьте строку ниже в файл +[.filename]#/etc/sysctl.conf#, затем перезапустите систему. [.programlisting] .... -vfs.zfs.trim_disable=1 +vfs.zfs.trim.enabled=0 .... -[NOTE] -==== -ZFS TRIM может не работать на всех конфигурациях, в частности для файловой системы ZFS на устройствах с использованием GELI. -==== +OpenZFS во FreeBSD 13.0 и более старших версиях: обратитесь к +man:zpool-trim[8] и изучите параметр `autotrim` в man:zpoolprops[7]. == Системное администрирование +[[startup-config-files]] === Где расположены файлы конфигурации системы? -Основным конфигурационным файлом является [.filename]#/etc/defaults/rc.conf#, который описан в man:rc.conf[5]). Этот файл подключают системные скрипты запуска, такие как [.filename]#/etc/rc# и [.filename]#/etc/rc.d#, которые описаны в man:rc[8]. _Не редактируйте этот файл!_ Вместо изменения параметра в [.filename]#/etc/defaults/rc.conf# скопируйте эту строку в [.filename]#/etc/rc.conf# и поменяйте значение там. +Основным конфигурационным файлом является [.filename]#/etc/defaults/rc.conf#, который описан в man:rc.conf[5]. +Этот файл используют скрипты запуска системы, такие как [.filename]#/etc/rc# и [.filename]#/etc/rc.d#, которые описаны в man:rc[8]. +_Не редактируйте этот файл!_ +Вместо изменения параметра в [.filename]#/etc/defaults/rc.conf# скопируйте соответствующую строку в [.filename]#/etc/rc.conf# и поменяйте значение там. -Пример запуска man:named[8], поставляемого с системой сервера DNS: +К примеру, для запуска man:sshd[8], поставляемого с системой сервера OpenSSH: [source,shell] .... -# echo 'named_enable="YES"' >> /etc/rc.conf +# echo 'sshd_enable="YES"' >> /etc/rc.conf .... -Чтобы запустить местные сервисы, поместите скрипты в каталог [.filename]#/usr/local/etc/rc.d#. У этих скриптов должен быть выставлен бит выполнимости, по умолчанию используются права доступа `555`. +Альтернативным способом является использование man:sysrc[8] для +корректировки [.filename]#/etc/rc.conf#: +[source,shell] +.... +# sysrc sshd_enable="YES" +.... + +Для запуска локальных сервисов поместите соответствующие скрипты в каталог [.filename]#/usr/local/etc/rc.d#. У этих скриптов должен быть выставлен бит выполнимости, по умолчанию используются права доступа `555`. + +[[adding-users]] === Как проще всего добавить пользователя? Используйте команду man:adduser[8] или man:pw[8] в случае выполнения более сложных операций. Чтобы удалить пользователя, используйте команду man:rmuser[8] или, если это будет необходимо, man:pw[8]. +[[root-not-found-cron-errors]] === Почему после редактирования моего файла crontab я получаю сообщения вида root: not found? Обычно это случается при редактировании системного файла crontab. @@ -1320,7 +1595,8 @@ ZFS TRIM может не работать на всех конфигурация # crontab -r .... -=== Команда su выдает ошибку you are not in the correct group to su root, когда я пытаюсь сменить привилегии на root. +[[su-wheel-group]] +=== Команда su выдаёт сообщение you are not in the correct group to su root, когда я пытаюсь сменить привилегии на root. Это особенность работы системы защиты. Для того, чтобы сменить пользовательский идентификатор с помощью `su` на пользователя `root` или любого другого с привилегиями суперпользователя, учётная запись должна являться членом группы `wheel`. Если бы этого не было, то любой, имеющий доступ к системе и узнавший пароль пользователя `root`, смог бы получить в системе уровень доступа суперпользователя. @@ -1333,22 +1609,27 @@ ZFS TRIM может не работать на всех конфигурация В примере выше пользователь `lisa` будет добавлен в группу `wheel`. +[[rcconf-readonly]] === Я сделал ошибку в файле 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=xterm` во FreeBSD 9.0+ или `export TERM=cons25` во FreeBSD 8.X, чтобы такие редакторы смогли корректно взять данные из базы данных man:termcap[5]. +Чтобы использовать полноэкранный редактор, такой как man:vi[1] или man:emacs[1], выполните команду `export TERM=xterm`, чтобы эти редакторы смогли получить корректную информацию из базы данных man:termcap[5]. После выполнения этих шагов отредактируйте файл [.filename]#/etc/rc.conf# для исправления ошибки. Сообщение об ошибке, выводимое сразу же после сообщений при загрузке ядра, должно указать на номер строки в файле, которая содержит ошибку. -=== У меня проблемы с установкой принтера. +[[printer-setup]] +=== Почему у меня возникают проблемы с установкой принтера? -Обратитесь к соответствующему extref:{handbook}printing/[разделу, printing] Руководства, посвящённому печати, за советами по разрешению проблем. +Обратитесь к соответствующему extref:{handbook}printing/[разделу] Руководства, посвящённому печати, за советами по разрешению проблем. -=== Раскладка клавиатуры неверна. +[[keyboard-mappings]] +=== Как я могу откорректировать раскладку клавиатуры для моей системы? -Обратитесь к разделу Руководства, посвящённому extref:{handbook}l10n/[использованию локализации, using-localization], а именно к части, описывающей extref:{handbook}l10n[настройку консоли, setting-console]. +Обратитесь к разделу Руководства, посвящённому extref:{handbook}l10n/[использованию локализации, using-localization], а именно к части, описывающей extref:{handbook}l10n/[настройку консоли, setting-console]. +[[user-quotas]] === Почему не получается заставить работать дисковые квоты? . Возможно, что ядро не сконфигурировано должным образом для работы с квотами. В этом случае добавьте следующую строчку в конфигурационный файл ядра и пересоберите ядро: @@ -1358,8 +1639,9 @@ ZFS TRIM может не работать на всех конфигурация options QUOTA .... -+ -Прочтитеextref:{handbook}disks/[главу руководства по квотам, quotas] для полной информации. ++ +Прочтите link:{handbook}disks/[главу Руководства по квотам, quotas] для +получения полной информации. . Не включайте квотирование на разделе [.filename]#/#. . Помещайте файл с квотами в ту файловую систему, которую он обслуживает: + @@ -1379,9 +1661,11 @@ options QUOTA |... |=== +[[sysv-ipc]] === Поддерживает ли FreeBSD вызовы IPC из System V? -Да, во FreeBSD в ядро [.filename]#GENERIC# включена поддержка IPC в стиле System V, в том числе совместно используемой памяти, сообщений и семафоров. В вашем собственном ядре поддержка может быть включена посредством загрузки модулей ядра [.filename]#sysvshm.ko#, [.filename]#sysvsem.ko# и [.filename]#sysvmsg.ko# или добавлением в конфигурационный файл ядра следующих строк: +Да, во FreeBSD в ядро [.filename]#GENERIC# включена поддержка IPC в стиле System V, в том числе совместно используемой памяти, сообщений и семафоров. +В нестандартном ядре поддержка может быть включена посредством загрузки модулей ядра [.filename]#sysvshm.ko#, [.filename]#sysvsem.ko# и [.filename]#sysvmsg.ko# или добавлением в конфигурационный файл ядра следующих строк: [.programlisting] .... @@ -1392,13 +1676,22 @@ options SYSVMSG # enable for messaging Перекомпилируйте и переустановите ядро. +[[sendmail-alternative]] === Какое другое программное обеспечение для почтового сервера можно использовать вместо Sendmail? Сервер http://www.sendmail.org/[Sendmail] является программным обеспечением для работы почтового сервера во FreeBSD, используемым по умолчанию, но его можно заменить другим MTA, установленным из Коллекции Портов. В дереве портов имеется package:mail/exim[], package:mail/postfix[] и package:mail/qmail[]. Проверьте архивы списков рассылки на предмет обсуждения достоинств и недостатков имеющихся MTA. +[[forgot-root-pw]] === Я забыл пароль пользователя root! Что делать? -Без паники! Перезапустите систему, наберите `boot -s` в приглашении `Boot:` для входа в однопользовательский режим. На вопрос об используемой оболочке нажмите kbd:[Enter] для получения приглашения # . Введите `mount -urw /`, чтобы перемонтировать корневую файловую систему в режиме чтения/записи, после чего выполните команду `mount -a` для монтирования всех файловых систем. Запустите команду `passwd root`, чтобы сменить пароль пользователя `root`, а затем man:exit[1] для продолжения процесса загрузки. +Без паники! +Перезапустите систему, наберите `boot -s` в приглашении `Boot:` для входа в +однопользовательский режим. +На вопрос об используемой оболочке нажмите kbd:[Enter] для получения # в качестве приглашения. +Выполните команду `mount -urw /`, чтобы перемонтировать корневую файловую +систему в режиме чтения/записи, после чего выполните команду `mount -a` для +монтирования всех файловых систем. +Запустите команду `passwd root`, чтобы сменить пароль пользователя `root`, а затем man:exit[1] для продолжения процесса загрузки. [NOTE] ==== @@ -1407,30 +1700,21 @@ options SYSVMSG # enable for messaging [NOTE] ==== -Если корневой раздел не получается смонтировать в однопользовательском режиме, то возможно, что разделы являются зашифрованными, и смонтировать их без ключей доступа не представляется возможным. За дополнительной информацией обращайтесь к разделу extref:{handbook}disks/[Руководства, disks-encrypting], посвященному шифрованию дисков во FreeBSD. +Если корневой раздел не получается смонтировать в однопользовательском режиме, то возможно, что разделы являются зашифрованными, и смонтировать их без ключей доступа не представляется возможным. +За дополнительной информацией обратитесь к разделу extref:{handbook}disks/[Руководства, disks-encrypting], посвящённому шифрованию дисков во FreeBSD. ==== +[[CAD-reboot]] === Как запретить перезагрузку по нажатию Control Alt Delete? -При использовании стандартного драйвера консоли man:syscons[4] перегенерируйте и установите новое ядро с таким параметром в конфигурационном файле: - -[.programlisting] -.... -options SC_DISABLE_REBOOT -.... - -Этого также можно достичь установкой следующего man:sysctl[8], что не требует перезагрузки или пересборки ядра: +При использовании стандартного драйвера консоли man:vt[4] этого можно добиться, +задав следующий системный параметр man:sysctl[8]: [source,shell] .... -# sysctl hw.syscons.kbd_reboot=0 +# sysctl kern.vt.kbd_reboot=0 .... -[NOTE] -==== -Оба этих метода являются взаимоисключающими. Данный man:sysctl[8] не существует, если ядро скомпилировано с параметром `SC_DISABLE_REBOOT`. -==== - === Как преобразовать текстовые файлы DOS в формат UNIX(R)? Воспользуйтесь следующей командой man:perl[1]: @@ -1453,6 +1737,7 @@ options SC_DISABLE_REBOOT Еще один способ отформатировать тестовые файлы DOS состоит в использовании package:converters/dosunix[] из Коллекции Портов. Для получения дополнительной информации ознакомьтесь с документацией порта. +[[reread-rc]] === Как перечитать содержимое /etc/rc.conf и перестартовать /etc/rc без перезагрузки системы? Перейдите в однопользовательский режим, а затем возвратитесь обратно в многопользовательский. @@ -1464,6 +1749,7 @@ options SC_DISABLE_REBOOT # exit .... +[[release-candidate]] === Я пытался обновить мою систему до последней -STABLE, а получил -BETAx, -RC или -PRERELEASE! Что происходит? Краткий ответ: это же просто название. _RC_ означает "Release Candidate". Это значит, что вскоре произойдет выход релиза. Во FreeBSD появление _-PRERELEASE_, как правило, равнозначно прекращению внесения изменений в код системы перед появлением релиза. (Для некоторых релизом метка _-BETA_ использовалась точно так же, как и _-PRERELEASE_.) @@ -1472,8 +1758,9 @@ options SC_DISABLE_REBOOT Когда делается релиз, то ветвь, из которой он выпускается, подвергается некоторой подготовке. Частью этого процесса является замораживание кода. Когда инициируется замораживание кода, то имя ветки изменяется для того, чтобы отразить факт близости релиза. Например, если ветка называлась 6.2-STABLE, то её имя будет изменено на 6.3-PRERELEASE, чтобы обозначить момент прекращения внесения изменений в код системы и период дополнительного тестирования перед выходом релиза. В это время исправления ошибок могут быть внесены в код системы для того, чтобы быть включенными в релиз. Когда исходный код подготовлен к выпуску релиза, имя будет изменено на 6.3-RC для обозначения того, что релиз будет сделан, скорее всего, именно из этого кода. Когда код находится на этапе RC, в нём могут исправляться только самые критичные ошибки. Как только релиз (в нашем примере 6.3-RELEASE) и ветка релиза будут созданы, ветвь будет переименована в 6.3-STABLE. -Для получения дополнительной информации о номерах версий и различных ветках Subversion обратитесь к статье о extref:{releng}[выпуске релизов]. +Для получения дополнительной информации о номерах версий и различных ветках Git обратитесь к статье о extref:{releng}[выпуске релизов]. +[[kernel-chflag-failure]] === Я попытался установить новое ядро, однако утилита man:chflags[1] не сработала. Как это обойти? Краткий ответ: Режим безопасности имеет значение больше нуля. Для установки ядра перезагрузите машину и войдите в однопользовательский режим. @@ -1487,6 +1774,7 @@ options SC_DISABLE_REBOOT Уровень безопасности нельзя понизить в многопользовательском режиме, поэтому для установки ядра загрузитесь в однопользовательский режим, или измените уровень безопасности в [.filename]#/etc/rc.conf#, а затем выполните перезагрузку. Обратитесь к странице Справочника по man:init[8] за подробной информацией о `securelevel` и посмотрите [.filename]#/etc/defaults/rc.conf# и справочную страницу по man:rc.conf[5] для выяснения подробностей о файле [.filename]#rc.conf#. +[[kernel-securelevel-time]] === Не получается изменить системное время больше чем на одну секунду! Как это обойти? Краткий ответ: Система работает на уровне безопасности со значением выше 1. Для смены даты перезагрузите машину и войдите в однопользовательский режим. @@ -1500,40 +1788,62 @@ options SC_DISABLE_REBOOT Уровень безопасности нельзя понизить в многопользовательском режиме. Для изменения даты перезагрузите систему в однопользовательский режим, либо измените уровень безопасности в [.filename]#/etc/rc.conf#, а затем выполните перезагрузку. Обратитесь к странице Справочника по man:init[8] за подробной информацией о `securelevel` и посмотрите [.filename]#/etc/defaults/rc.conf# и справочную страницу по man:rc.conf[5] для выяснения подробностей о файле [.filename]#rc.conf#. -=== В rpc.statd; есть ошибка работы с памятью! Он использует 256 Мбайт оперативной памяти! +[[statd-mem-leak]] +=== Для чего rpc.statd использует 256 Мбайт оперативной памяти? -Нет, там нет ошибок и он не использует 256 Мбайт памяти. Для удобства `rpc.statd` отображает неприлично большой кусок памяти в своё адресное пространство. Здесь нет ничего неправильного с технической точки зрения, это просто сбивает с толку программы вроде man:top[1] и man:ps[1] +Нет, это не ошибка утечки памяти и он не использует 256 Мбайт оперативной памяти. +Для удобства `rpc.statd` отображает большой объём памяти в своё адресное пространство. +Здесь нет ничего ужасно неправильного с технической точки зрения; просто это сбивает с толку программы вроде man:top[1] и man:ps[1]. -man:rpc.statd[8] отображает свой статусный файл (находящийся на [.filename]#/var#) в свое адресное пространство. Для того, чтобы постоянно не беспокоиться о будущих переотражениях, когда файл вырастет в размерах, он просто отображает его с огромным размером заранее. Это просто заметить в исходных текстах, где как вы можете увидеть параметр длина к функции man:mmap[2] имеет значение `0x10000000`, или одна шестнадцатая адресного пространства для IA32, то есть 256 Мбайт. +man:rpc.statd[8] отображает свой статусный файл ([.filename]#/var/db/statd.status#) в сообственное адресное пространство; для того, чтобы избежать последующих беспокойств о повторном отображении статусного файла в память, когда его размер нужно будет увеличить, под этот файл выделяется щедро заданный объём. +[[unsetting-schg]] === Почему я не могу снять с файла флаг schg? -Система работает с уровнем защиты выше нуля. Понизьте уровень защиты и попробуйте еще раз. Для получения более подробной информации обратитесь к <<securelevel,разделу FAQ об уровне защиты>> и справочной странице man:init[8]. +Система работает на уровне защиты выше нуля. Понизьте уровень защиты и +попробуйте ещё раз. Для получения более подробной информации обратитесь к +<<securelevel,разделу FAQ об уровне защиты>> и справочной странице man:init[8]. +[[vnlru]] === Что такое vnlru? `vnlru` сбрасывает и освобождает vnode, когда система достигает ограничения по параметру `kern.maxvnodes`. Этот поток ядра в основном работает вхолостую и активируется только при наличии огромного объема ОЗУ и обращении к десяткам тысяч файлов небольшого размера. +[[top-memory-states]] === Что означают различные состояния памяти, показываемые утилитой top? * `Active`: по статистике страницы недавно использовались. * `Inactive`: по статистике страницы недавно не использовались. -* `Cache`: (наиболее часто) страницы, которых перемещены из числа неактивных в статус, в котором они содержат данные, но которые могут часто сразу же использоваться повторно (как с их старым содержимым, так и повторно с новым). Это может быть некоторое непосредственное перемещение из состояния `active` в состояние `cache`, если известно, что страница чиста (не модифицировалась), но такое перемещение определяется политикой, зависящей от выбора алгоритма разработчиком VM-системы. -* `Free`: страницы, не содержащие данных, и которые могут быть использованы при некоторых условиях, когда страницы кэша могут не подойти. Свободные страницы могут повторно использоваться в состояниях прерывания или процессах. +* `Laundry`: страницы, которые, согласно статистике, давно не использовались, +но содержат данные, то есть их содержимое необходимо сохранить перед тем, как +повторно использовать. +* `Free`: страницы, не содержащие данных, и которые можно повторно использовать +прямо сейчас. * `Wired`: страницы, зафиксированные в памяти, обычно для использования ядром, а также иногда для специального использования процессами. -Страницы чаще всего записываются на диск (типа синхронизации VM), когда они находятся в неактивном состоянии, однако страницы в активном состоянии также могут сбрасываться. Это зависит от наличия и возможности отслеживания со стороны ЦП бита 'модифицированности', и в некоторых ситуациях это может быть лучше для блока синхронизируемых страниц VM, вне зависимости от их активности. В большинстве встречающихся ситуаций лучше всего представлять неактивную очередь как очередь сравнительно неиспользуемых страниц, которые могут быть, а могут и не быть в процессе записи на диск. Кэшируемые страницы уже синхронизированы, не отображаются, но доступны для непосредственного использования процессом со своей старой или новой привязкой. Свободные страницы доступны на уровне прерывания, однако кэшируемые или свободные страницы могут использоваться в процессе повторно. Кэшируемые страницы недостаточно заблокированы для того, чтобы быть доступными на уровне прерывания. +Страницы чаще всего записываются на диск (типа синхронизации VM), когда они находятся в состоянии Laundry, однако синхронизироваться могут также и страницы в состоянии Active и Inactive. +Это зависит от возможности отслеживания центральным процессором бита 'модифицированности', и в некоторых ситуациях это может быть лучше для блока синхронизируемых страниц VM, вне зависимости от их принадлежности к той или иной очереди. +В большинстве встречающихся ситуаций лучше всего представлять очередь Laundry как очередь условно неиспользуемых страниц, которые могут быть, а могут и не быть в процессе записи на диск. +Очередь Inactive содержит как чистые, так и грязные страницы; чистые страницы ближе к голове очереди потребляются сразу же для восполнения нехватки свободных страниц памяти, а грязные страницы перемещаются в очередь Laundry для последующей обработки. -Есть ещё некоторые другие флаги (например, флаг занятости или счётчик занятости), которые могут изменить некоторые описанные правила. +Есть ещё некоторые другие флаги (например, флаг занятости или счётчик занятости), которые могут влиять на описанные правила. +[[free-memory-amount]] === Сколько свободной памяти доступно? -Есть несколько понятий "свободной памяти". В одном случае это объём памяти, непосредственно доступной в данный момент без страничной выгрузки чего-либо. Этот объём равен примерно размеру очереди кэша + размер очереди на высвобождение (с учётом допустимых отклонений, зависящих от настроек системы). В другом случае "свободная память" обозначает общий объём пространства VM. Он может сложно вычисляться, но зависит от объёма раздела подкачки и памяти. Другие определения "свободной памяти" также возможны, но они достаточно бесполезны, ведь в любом случае важно сохранять низкий уровень подкачки и избегать исчерпания раздела подкачки. +Есть пара определений "свободной памяти". +В наиболее распространённом случае это объём памяти, доступной к немедленному потреблению без высвобождения уже используемой. +Этот объём равен объёму очереди свободных страниц вместе с некоторыми другими зарезервированными страницами. +Этот размер доступен в виде man:sysctl[8]-переменной `vm.stats.vm.v_free_count`, которая показывается, например, утилитой man:top[1]. +Во втором случае "свободная память" обозначает общий объём виртуальной памяти, доступной пользовательским процессам, который зависит от объёма раздела подкачки и доступной к использованию оперативной памяти. +Другие определения "свободной памяти" также возможны, но они достаточно бесполезны, ведь в любом случае важно сохранять низкий уровень подкачки и избегать исчерпания раздела подкачки. -=== Что такое /var/empty? +[[var-empty]] +=== Что такое [.filename]#/var/empty#? [.filename]#/var/empty# представляет собой каталог, который используется в программе man:sshd[8] при выполнении разделения полномочий. Каталог [.filename]#/var/empty# пуст, его владельцем является `root`, и на нём установлен флаг `schg`. Этот каталог не должен удаляться. +[[newsyslog-expectations]] === Я поменял /etc/newsyslog.conf. Как проверить правильность изменений? Чтобы посмотреть, что будет делать man:newsyslog[8], используйте следующую команду: @@ -1549,12 +1859,14 @@ man:rpc.statd[8] отображает свой статусный файл (на == X Window System и виртуальные консоли +[[whatis-X]] === Что такое X Window System? X Window System (обычно `X11`) является наиболее общедоступной оконной системой, которая может работать на UNIX(R) и UNIX(R)-подобных системах, в том числе и во FreeBSD. Разработкой стандартов на используемый http://en.wikipedia.org/wiki/X_Window_System_core_protocol[X-протокол] занимается организация http://www.x.org/wiki/[The X.Org Foundation], с текущей эталонной реализацией version 11 release 7.7, поэтому название часто сокращается до `X11`. Для разных архитектур и операционных систем существует множество реализаций этой системы. Реализацию кода для серверной части называют `X-сервером`. +[[running-X]] === Я хочу запустить Xorg, как это сделать? Для установки Xorg выполните одно из действий: @@ -1567,22 +1879,26 @@ X Window System (обычно `X11`) является наиболее обще [source,shell] .... -# pkg install xorg +# pkg install xorg .... -После установки Xorg следуйте указаниям в разделе extref:{handbook}x11/[Конфигурация X11, x-config] Руководства FreeBSD. +После установки Xorg следуйте указаниям в разделе +extref:{handbook}x11/[Конфигурация X11, x-config] Руководства по FreeBSD. -=== Я попытался запустить X, но получил сообщение No devices detected. после ввода команды startx. Что мне теперь делать? +[[running-X-securelevels]] +=== Я попытался запустить X, но получил сообщение 'No devices detected' после ввода команды startx. Что мне теперь делать? Вероятно, в системе установлен повышенный уровень безопасности (`securelevel`). При повышенном уровне защиты систему X запустить невозможно, потому что X требуются права на операции записи в устройство man:io[4]. Дополнительная информация находится на странице Справочника man:init[8]. -Существует два решения проблемы: установить значение `securelevel` обратно в ноль или запускать man:xdm[1] (или любой другой оконный менеджер) во время загрузки, до того как повышается значение `securelevel`. +Существует два решения проблемы: возвратить нулевое значение `securelevel` или запускать man:xdm[8] (или любой другой менеджер дисплеев) во время загрузки, до того, как будет повышено значение `securelevel`. -Обратитесь к <<xdm-boot>> для получения более полной информации о запуске man:xdm[1] во время загрузки. +Обратитесь к <<xdm-boot>> для получения более полной информации о запуске +man:xdm[8] во время загрузки. +[[x-and-moused]] === Почему моя мышь не работает с X? -При использовании стандартного драйвера консоли man:syscons[4] во FreeBSD можно включить поддержку указателя мыши во всех виртуальных экранах. Во избежание конфликтов с X, драйвер man:syscons[4] поддерживает виртуальное устройство [.filename]#/dev/sysmouse#. Все события от реального устройства мыши пишутся в устройство man:sysmouse[4] через man:moused[8]. Чтобы использовать мышь на одной и более виртуальных консолях, и при этом продолжать использовать X, посмотрите <<moused>> и настройте man:moused[8]. +При использовании стандартного драйвера консоли man:vt[4] во FreeBSD можно включить поддержку указателя мыши во всех виртуальных экранах. Во избежание конфликтов с X, драйвер man:vt[4] поддерживает виртуальное устройство [.filename]#/dev/sysmouse#. Все события от реального устройства мыши пишутся в устройство man:sysmouse[4] через man:moused[8]. Чтобы использовать мышь на одной и более виртуальных консолях, и при этом продолжать использовать X, посмотрите <<moused>> и настройте man:moused[8]. Затем отредактируйте [.filename]#/etc/X11/xorg.conf#, чтобы в нём были следующие строки: @@ -1615,6 +1931,7 @@ link sysmouse mouse # service devfs restart .... +[[x-and-wheel]] === У моей мыши есть колёсико. Могу ли я его использовать при работе в X? Да, если X настроена для использования 5-кнопочной мыши. Для этого добавьте строчки `Buttons 5` и `ZAxisMapping 4 5` в раздел "InputDevice" файла [.filename]#/etc/X11/xorg.conf# как показано в этом примере: @@ -1631,7 +1948,8 @@ Section "InputDevice" EndSection .... -Для использования мыши в Emacs также добавьте в [.filename]#~/.emacs# следующие строки: +Использование мыши может быть активировано в Emacs путём добавления в +[.filename]#~/.emacs# следующих строк: [.programlisting] .... @@ -1665,7 +1983,7 @@ Option "Device" "/dev/psm0" EndSection .... -И не забыть добавить следующее в раздел "ServerLayout": +Добавьте в раздел "ServerLayout" вот что: [.programlisting] .... @@ -1707,11 +2025,6 @@ ttyvb "/usr/libexec/getty Pc" xterm on secure Чем больше виртуальных терминалов, тем больше ресурсов используется. Это может привести к проблемам на системах с 8 Мбайт ОЗУ или меньше. Подумайте о смене статуса консолей с `secure` на `insecure`. -[NOTE] -==== -Во FreeBSD до версии 9.0 использовался тип терминала "cons25" вместо "xterm". При добавлении в [.filename]#/etc/ttys# новых записей используйте существующий формат. -==== - [IMPORTANT] ==== Чтобы запустить сервер X, нужно зарезервировать под него хотя бы один виртуальный терминал со значением `off`. Это означает, что под виртуальные консоли можно отвести только одиннадцать функциональных клавиш, и ещё одна остаётся за X-сервером. @@ -1726,32 +2039,35 @@ ttyvb "/usr/libexec/getty Pc" xterm off secure Самым простым способом активировать виртуальные консоли является перезагрузка. +[[vty-from-x]] === Как осуществляется доступ к виртуальным консолям из X? Используйте комбинацию клавиш kbd:[Ctrl+Alt+Fn] для переключения обратно в виртуальную консоль. Нажмите kbd:[Ctrl+Alt+F1], чтобы вернуться на первую виртуальную консоль. После того, как вы оказались в текстовой консоли, используйте комбинации kbd:[Alt+Fn] для переключения между ними. -Чтобы вернуться в сеанс работы X, переключитесь в виртуальную консоль, на которой запущена X Window. Если X был запущен из командной строки с использованием команды `startx`, то сеанс работы X будет привязан к следующей неиспользуемой виртуальной консоли, а не к той текстовой консоли, с которой он был запущен. В случае восьми активных виртуальных терминалов X будет работать на девятом, поэтому используйте комбинацию kbd:[Alt+F9]. +Чтобы вернуться в сеанс работы X, переключитесь в виртуальную консоль, на которой запущена X Window. +Если X была запущена из командной строки с использованием команды `startx`, то сеанс работы X будет привязан к следующей неиспользуемой виртуальной консоли, а не к той текстовой консоли, с которой она была запущен. +В случае восьми активных виртуальных терминалов X будет работать на девятом, поэтому используйте комбинацию kbd:[Alt+F9]. [[xdm-boot]] === Как запустить XDM во время загрузки? -Есть две философские школы, проповедующие различные методы запуска man:xdm[1]. Последователи одного течения запускают `xdm` из [.filename]#/etc/ttys# (посмотрите man:ttys[5]), используя приводимый пример, тогда как другие вставляют запуск `xdm` в скрипт [.filename]#rc.local# (посмотрите справку по man:rc[8]) или [.filename]#X#, помещая последний в каталог [.filename]#/usr/local/etc/rc.d#. Оба метода равноправны, и один из них может работать в ситуациях, с которыми не справляется другой и наоборот. В обоих случаях результат один и тот же: X выводит графическое приглашение для входа в систему. +Есть две философские школы, проповедующие различные методы запуска man:xdm[8]. +Последователи одного течения запускают `xdm` из [.filename]#/etc/ttys# +(посмотрите man:ttys[5]), используя приводимый там пример, тогда как другие +устанавливают значение параметра `xdm_enable=yes` в [.filename]#/etc/rc.conf#. +Оба метода равноправны, и один из них может работать в ситуациях, с которыми не +справляется другой, и наоборот. В обоих случаях результат один и тот же: X +выводит графическое приглашение для входа в систему. Плюсом метода с использованием man:ttys[5] является документирование того, на каком vty будет запущен X и то, что ответственность за перезапуск X-сервера при завершении сеанса работы лежит на процессе man:init[8]. Метод с использованием man:rc[8] позволяет просто прекратить работу xdm командой `kill xdm`, если при запуске X возникли какие-нибудь проблемы. -Из man:rc[8] `xdm` должен быть запущен без аргументов. `xdm` должен быть запущен _после_ запуска man:getty[8], иначе они будут конфликтовать, блокируя консоль. Лучше всего выдержать паузу секунд на 10 и потом запустить `xdm`. - -Если `xdm` запускается из [.filename]#/etc/ttys#, остаётся вероятность конфликта между `xdm` и man:getty[8]. Одним из способов избежать этого является добавление номера `vt` в файл [.filename]#/usr/local/lib/X11/xdm/Xservers#: - -[.programlisting] -.... -:0 local /usr/local/bin/X vt4 -.... - -В вышеприведённом случае X-серверу указывается работать на [.filename]#/dev/ttyv3#. Заметьте, что номера отличаются на единицу. Дело в том, что X-сервер считает vty от единицы, когда как отсчёт vty в ядре FreeBSD ведётся с нуля. +При использовании метода с man:rc[8] значение `xdm_tty` (которое по умолчанию +определено как `ttyv8`) может быть задано в файле [.filename]#/etc/rc.conf# +для указания виртуального терминала, на котором запускается man:xdm[8]. +[[xconsole-failure]] === При запуске xconsole выдаётся сообщение Couldn't open console. Если X запускается с помощью startx, права на устройство [.filename]#/dev/console#_не_ изменяются, поэтому такие программы как xterm -C и xconsole не будут работать. @@ -1767,6 +2083,7 @@ ttyvb "/usr/libexec/getty Pc" xterm off secure Этого будет достаточно для того, чтобы всякий, кто вошёл в систему с терминала [.filename]#/dev/ttyv0#, имел доступ к консоли. +[[ps2-x]] === Моя мышь PS/2 в X работает неправильно. Мышь и драйвер могли рассинхронизироваться. В редких случаях драйвер может ошибочно сообщать о проблемах синхронизации: @@ -1778,17 +2095,21 @@ psmintr: out of sync (xxxx != yyyy) Если это случилось, отмените проверку согласования, установив значение флага для драйвера мыши PS/2 в `0x100`. Проще всего это сделать добавлением `hint.psm.0.flags="0x100"` в [.filename]#/boot/loader.conf# с перезагрузкой. +[[mouse-button-reverse]] === Как поменять местами кнопки мыши? Наберите `xmodmap -e "pointer = 3 2 1"`. Добавьте эту команду в [.filename]#~/.xinitrc# или [.filename]#~/.xsession# для автоматического запуска. +[[install-splash]] === Как установить экранную заставку и где такие заставки можно найти? -Подробный ответ находится в разделе extref:{handbook}boot[Загрузочные экранные заставки, boot-blocks] Руководства FreeBSD. +Подробный ответ находится в разделе extref:{handbook}[Загрузочные +экранные заставки, boot-splash] Руководства FreeBSD. -=== Можно ли в X использовать клавишу Windows? +=== Можно ли в X задействовать kbd:[Windows]-клавиши на клавиатуре? -Да. Используйте man:xmodmap[1] для привязки функций к этим клавишам. +Да. +Воспользуйтесь man:xmodmap[1] для привязки функций к этим клавишам. Если все клавиатуры Windows стандартны, то эти три клавиши имеют следующие клавиатурные коды: @@ -1803,7 +2124,7 @@ psmintr: out of sync (xxxx != yyyy) # xmodmap -e "keycode 115 = comma" .... -Для того, чтобы переопределения клавиш kbd:[Windows] выполнялось автоматически каждый раз при запуске X, поместите команды `xmodmap` в [.filename]#~/.xinitrc# либо, что предпочтительней, создайте файл [.filename]#~/.xmodmaprc# и включите в него параметры `xmodmap` по одному на строку, затем добавьте в [.filename]#~/.xinitrc# такую строку: +Для того, чтобы переопределения клавиш kbd:[Windows] выполнялись автоматически каждый раз при запуске X, поместите команды `xmodmap` в [.filename]#~/.xinitrc# либо, что предпочтительней, создайте файл [.filename]#~/.xmodmaprc# и включите в него параметры `xmodmap` по одному на строку, затем добавьте в [.filename]#~/.xinitrc# такую строку: [.programlisting] .... @@ -1821,7 +2142,7 @@ keycode 116 = F14 keycode 117 = F15 .... -При использовании оконного менеджера package:x11-wm/fvwm2[] клавиши можно переопределить так, чтобы kbd:[F13] сворачивал в иконку (и восстанавливал предыдущий размер) то окно, на которое указывает курсор, kbd:[F14] перемещал окно с курсором на передний план или, если оно уже впереди, возвращал обратно, а kbd:[F15] вызывал главное меню Workplace, даже если курсор находится не на рабочем столе, что бывает полезно, когда не видно ни одного кусочка рабочего стола. +При использовании менеджера рабочего стола package:x11-wm/fvwm2[] клавиши можно переопределить так, чтобы нажатие kbd:[F13] сворачивало в иконку (и восстанавливало предыдущий размер) того окна, на которое указывает курсор, kbd:[F14] перемещало окно с курсором на передний план или, если оно уже впереди, возвращало обратно, а kbd:[F15] вызывало главное меню Workplace, даже если курсор находится не на рабочем столе, что бывает полезно, когда рабочий стол совсем не виден. Следующие записи в [.filename]#~/.fvwmrc# позволяют достичь описанных выше функций: @@ -1832,48 +2153,57 @@ Key F14 FTIWS A RaiseLower Key F15 A A Menu Workplace Nop .... -=== Как заставить работать аппаратное ускорение 3D-графики для OpenGL(R)? +[[x-3d-acceleration]] +=== Как активировать аппаратное ускорение 3D-графики для OpenGL(R)? -Наличие 3D-ускорения зависит от версии сервера Xorg и типа графического адаптера. Для адаптера nVidia используйте двоичный драйвер для FreeBSD, установив один из нижеследующих портов: +Наличие 3D-ускорения зависит от версии сервера Xorg и типа графического +адаптера. Для адаптера nVidia используйте предскомпилированный драйвер для +FreeBSD, установив один из нижеследующих портов: -Последние версии адаптеров nVidia поддерживаются портом package:x11/nvidia-driver[]. +Последние версии адаптеров nVidia поддерживаются портом +package:x11/nvidia-driver[]. -Более старые драйверы доступны как package:x11/nvidia-driver-###[]. +Более старые драйверы доступны в следующем виде: + +* package:x11/nvidia-driver-390[] +* package:x11/nvidia-driver-340[] +* package:x11/nvidia-driver-304[] nVidia предоставляет подробную информацию о том, какие адаптеры поддерживаются тем или иным драйвером, на своём сайте: http://www.nvidia.com/object/IO_32667.html[http://www.nvidia.com/object/IO_32667.html]. -Для адаптеров Matrox G200/G400 следует попробовать порт package:x11-servers/mga_hal[]. +Для адаптеров Matrox G200/G400 следует попробовать порт +package:x11-drivers/xf86-video-mga[]. Для ATI Rage 128 и Radeon посмотрите страницы Справочника man:ati[4], man:r128[4] и man:radeon[4]. == Работа в сети +[[diskless-booting]] === Где можно найти информацию о бездисковой загрузке? -"Бездисковая загрузка" означает, что машина с FreeBSD загружается по сети и читает необходимые файлы с сервера, а не со своего диска. Подробное описание есть в extref:{handbook}advanced-networking/[ соответствующей главе, network-diskless] Руководства. - -=== Может ли машина с FreeBSD использоваться как маршрутизатор? - -Да. Обратитесь к разделу Руководства, посвящённому extref:{handbook}advanced-networking/[сложным вопросам работы в сети, advanced-networking], особенно в той части, что касается extref:{handbook}advanced-networking/[маршрутизации и маршрутизаторов, network-routing]. +"Бездисковая загрузка" означает, что машина с FreeBSD загружается по сети и +читает необходимые файлы с сервера, а не со своего диска. Подробное описание +есть в extref:{handbook}advanced-networking/[соответствующей главе, +network-diskless] Руководства. -=== Можно ли подключить машину с Windows(R) к Internet с помощью FreeBSD? +[[router]] +=== Может ли машина с FreeBSD использоваться как выделенный маршрутизатор? -Как правило, те, кто задают такие вопросы, имеют дома два компьютера, один с FreeBSD, а другой с какой-то версией Windows(R). Идея состоит в использовании FreeBSD для подключения к Internet, а затем осуществлять выход в Internet из Windows(R) через FreeBSD. На самом деле это просто частный случай предыдущего вопроса, который хорошо отработан. - -Для подключения к Internet с использованием коммутируемого соединения нужно указать параметр `-nat` и установить в файле [.filename]#/etc/rc.conf# переменную `gateway_enable` в значение _YES_. Для получения дополнительной информации обратитесь к страницам справочной системы по команде man:ppp[8] или extref:{handbook}ppp-and-slip/[ разделу Руководства о PPP режима пользователя, userppp]. - -Если подключение к Internet выполняется через Ethernet, используйте man:natd[8]. Вводная информация находится в разделе Руководства extref:{handbook}/[natd, network-natd]. - -=== Поддерживает ли FreeBSD протокол PPP? - -Да. man:ppp[8] может обслуживать как входящие, так и исходящие соединения. - -Более подробная информация об их использовании находится в extref:{handbook}ppp-and-slip/[разделе Руководства о протоколе PPP, ppp-and-slip]. +Да. +Обратитесь к разделу Руководства, посвящённому +extref:{handbook}advanced-networking/[сложным вопросам работы в сети, advanced-networking], а +именно к той части, где рассказывается о extref:{handbook}advanced-networking/[маршрутизации и шлюзах маршрутизации, network-routing]. +[[natd]] === Поддерживает ли FreeBSD технологию NAT или Masquerading? -Да. Для получения указаний по использованию NAT через подключение PPP обратитесь к extref:{handbook}ppp-and-slip/[разделу Руководства о PPP, userppp]. Чтобы использовать NAT вместе с другим типом сетевого подключения, взгляните на раздел Руководства extref:{handbook}/[natd, network-natd]. +Да. +Для получения указаний по использованию NAT через подключение PPP +обратитесь к extref:{handbook}}ppp-and-slip/[разделу Руководства о PPP, userppp]. +Чтобы использовать NAT вместе с другим типом сетевого подключения, взгляните +на раздел Руководства, посвящённый extref:[natd, network-natd]. +[[ethernet-aliases]] === Как настроить алиас в сети Ethernet? Если алиас находится в той же самой сети, что и уже настроенный на интерфейсе адрес, допишите к этой команде `netmask 0xffffffff`: @@ -1890,7 +2220,8 @@ nVidia предоставляет подробную информацию о т # ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00 .... -Дополнительная информация находится в extref:{handbook}config-tuning/[Руководстве, configtuning-virtual-hosts] FreeBSD. +Дополнительная информация может быть найдена в extref:{handbook}config/[Руководстве, +configtuning-virtual-hosts] по FreeBSD. === Почему я не могу смонтировать диск Linux(R) по NFS? @@ -1901,21 +2232,27 @@ nVidia предоставляет подробную информацию о т # mount -o -P linuxbox:/blah /mnt .... +[[exports-errors]] === Почему mountd продолжает выдавать сообщения can't change attributes и bad exports list на моём сервере NFS, работающем под управлением FreeBSD? -В большинстве случаев проблема заключается в недостаточном понимании корректного формата файла [.filename]#/etc/exports#. Просмотрите ещё раз справочную информацию по man:exports[5] и раздел об extref:{handbook}network-servers/[NFS, network-nfs] в Руководстве, особенно в части extref:{handbook}[настройки NFS, configuring-nfs]. +В большинстве случаев проблема заключается в недостаточном понимании корректного формата файла [.filename]#/etc/exports#. +Просмотрите ещё раз справочную информацию по man:exports[5] и раздел об extref:{handbook}network-servers/[NFS, network-nfs] Руководства, особенно в части extref:{handbook}[настройки NFS, configuring-nfs]. +[[ip-multicast]] === Как включить поддержку multicast IP? Установите пакет package:net/mrouted[] и добавьте `mrouted_enable="YES"` в [.filename]#/etc/rc.conf# для запуска этого сервиса во время загрузки. +[[fqdn-hosts]] === Почему я должен использовать FQDN для хостов не в моей сети? -За ответом на этот вопрос обращайтесь к extref:{handbook}mail/[Руководству, mail-trouble] FreeBSD. +За ответом на этот вопрос обратитесь к extref:{handbook}mail/[Руководству, +mail-trouble] по FreeBSD. -=== Permission denied для любых действий, связанных с работой сети. +[[network-permission-denied]] +=== Почему при выполнении любых сетевых операций выдаётся сообщение Permission denied? -Если ядро скомпилировано с параметром `IPFIREWALL`, имейте в виду, что политикой по умолчанию является запрет прохождения всех пакетов, которые явно не разрешены. +Если ядро скомпилировано с параметром `IPFIREWALL`, имейте в виду, что политикой по умолчанию является запрет прохождения любых пакетов, которые не разрешены явным образом. Если межсетевой экран был случайно сконфигурирован неверным образом, то для восстановления работоспособности сети наберите такую команду из-под пользователя `root`: @@ -1926,22 +2263,30 @@ nVidia предоставляет подробную информацию о т Рассмотрите использование `firewall_type='open'` в файле [.filename]#/etc/rc.conf#. -Дополнительная информация о настройке данного межсетевого экрана находится в extref:{handbook}firewalls/[соответствующей главе, firewalls-ipfw] Руководства. +Дополнительная информация о настройке данного межсетевого экрана находится в +extref:{handbook}firewalls/[соответствующей главе, firewalls-ipfw] Руководства. -=== Почему моё правило fwd для ipfw по перенаправлению сервиса на другую машину не работает? +[[ipfw-fwd]] +=== Почему моё правило “fwd” для `ipfw` по перенаправлению сервиса на другую машину не работает? -Возможно, потому, что вместо простого перенаправления пакетов нужна трансляция сетевых адресов (NAT). Правило "fwd" только перенаправляет пакеты и данные внутри него не меняет. Рассмотрим такое правило: +Возможно, потому что вместо простого перенаправления пакетов нужна трансляция сетевых адресов (NAT). Правило "fwd" только перенаправляет пакеты и данные внутри него не меняет. +Рассмотрим такое правило: [source,shell] .... 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" часто работает не так, как ожидает пользователь. +Описанное поведение является особенностью, а не ошибкой. -Обратитесь к <<service-redirect,FAQ о перенаправлении сервисов>>, руководству по man:natd[8] или одной из нескольких утилит для перенаправления из link:https://www.FreeBSD.org/ports/[Коллекции Портов] для того, чтобы сделать это правильно. +Обратитесь к <<service-redirect,FAQ о перенаправлении сервисов>>, руководству по man:natd[8] или одной из нескольких утилит для перенаправления портов из link:https://www.FreeBSD.org/ports/[Коллекции Портов] для того, чтобы сделать это правильно. -=== Как можно перенаправить запросы с одной машины на другую? +[[service-redirect]] +=== Как можно перенаправить запросы сервисов с одной машины на другую? Запросы FTP и других сервисов можно перенаправить с помощью порта package:sysutils/socket[]. Замените запись для этого сервиса в [.filename]#/etc/inetd.conf# на вызов `socket`, как показано в этом примере для ftpd: @@ -1952,10 +2297,12 @@ ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp где _ftp.example.com_ и _ftp_ являются соответственно хостом и портом для перенаправления. +[[bandwidth-mgr-tool]] === Где можно найти средства управления сетевым трафиком? Для FreeBSD имеются три средства управления трафиком. man:dummynet[4] интегрирован в систему FreeBSD как составная часть man:ipfw[4]. http://www.sonycsl.co.jp/person/kjc/programs.html[ ALTQ] включен во FreeBSD как составная часть man:pf[4]. Bandwidth Manager компании http://www.etinc.com/[Emerging Technologies] является коммерческим продуктом. +[[bpf-not-configured]] === Почему появляются сообщения /dev/bpf0: device not configured? Для работы приложения требуется Berkeley Packet Filter (man:bpf[4]), однако это устройство удалено из вашего ядра. Постройте новое ядро с добавлением в его конфигурационный файл следующей строки: @@ -1965,10 +2312,12 @@ ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp device bpf # Berkeley Packet Filter .... +[[mount-smb-share]] === Как смонтировать диск Windows(R)-машины в моей локальной сети, как это делает smbmount в Linux(R)? Используйте пакет SMBFS. В него включён набор изменений в ядре и пользовательские программы. Программы и информация доступны как man:mount_smbfs[8] и входят в состав базовой системы. +[[icmp-response-bw-limit]] === Что значат сообщения Limiting icmp/open port/closed port response в файле журнала? Данное сообщение ядра означает, что имеет место некоторая активность, приводящая к отправке большого количества ответных пакетов ICMP или сбросов TCP (RST). Ответы ICMP часто генерируются в результате попыток подключения к незанятым портам UDP. Сбросы TCP генерируются в результате попыток подключения к закрытым портам TCP. Помимо всего прочего, такие сообщения могут быть вызваны следующими действиями: @@ -1976,7 +2325,10 @@ device bpf # Berkeley Packet Filter * Лобовая атака типа отказ в обслуживании DoS (в отличие от атак в один пакет, которые используют конкретную брешь в защите). * Сканирование портов в попытке осуществить подключение к большому количеству портов (в отличие от проб нескольких известных портов). -Первое число в сообщении показывает количество пакетов, которое ядро посылало бы при отсутствии ограничений, а второе число указывает лимит. Этот лимит меняется при помощи `net.inet.icmp.icmplim`. В этом примере устанавливается лимит на `300` пакетов в секунду: +Первое число в сообщении показывает количество пакетов, которое ядро отправило +бы при отсутствии ограничений, а второе число отражает лимит. +Этот лимит управляется при помощи переменной `net.inet.icmp.icmplim`. +В этом примере устанавливается лимит на `300` пакетов в секунду: [source,shell] .... @@ -1992,14 +2344,30 @@ device bpf # Berkeley Packet Filter И наконец, чтобы полностью выключить это ограничение, сделайте `net.inet.icmp.icmplim` равным `0`. Выключение этого лимита не приветствуется по причинам, изложенным выше. +[[unknown-hw-addr-format]] === Что это за сообщения arp: unknown hardware address format? Это означает, что какое-то устройство в локальной сети Ethernet использует MAC-адрес в формате, неизвестном FreeBSD. Вероятно, это происходит из-за того, что кто-то в сети экспериментирует с сетевым адаптером. Чаще всего это происходит в сетях с кабельными модемами. Это безобидно и не должно влиять на производительность системы FreeBSD. +[[arp-wrong-iface]] === Почему я постоянно вижу сообщения вида 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`. +[[ipv6-only]] +=== Как скомпилировать ядро, поддерживающее только IPv6? + +Выполните конфигурацию ядра со следующими параметрами: + +[source,shell] +.... +include GENERIC +ident GENERIC-IPV6ONLY +makeoptions MKMODULESENV+="WITHOUT_INET_SUPPORT=" +nooptions INET +nodevice gre +.... + == Безопасность === Что означает термин sandbox (песочница)? @@ -2007,18 +2375,27 @@ device bpf # Berkeley Packet Filter "Sandbox" - это термин, используемый при обеспечении безопасности. Он имеет два значения: * Процесс, помещённый внутрь некоторых виртуальных стен, которые предназначены для предотвращения взлома всей системы в результате взлома этого конкретного процесса. -+ -Процесс может работать в границах этих стен. Поскольку, что бы этот процесс ни делал, он эти стены разрушить не может, особый аудит его кода не нужен для того, чтобы с уверенностью сказать, насколько его работа безопасна для системы. -+ ++ +Процесс может работать только в границах этих стен. +Поскольку, что бы этот процесс ни делал, он эти стены разрушить не может, особый аудит его кода не нужен для того, чтобы с уверенностью сказать, насколько его работа безопасна для системы. ++ Стеной может служить, например, идентификатор пользователя. Вот определение, даваемое на страницах Справочника man:security[7] и man:named[8]. -+ -Рассмотрим, например, службу `ntalk` (смотрите man:inetd[8]). Раньше эта служба запускалась с идентификатором пользователя `root`, а сейчас - `tty`. Пользователь `tty` - это та песочница, которая осложняет взлом системы через `ntalk` посредством использования этого идентификатора пользователя. -* Процесс, помещённый внутрь симулируемой машины. Это даёт больший уровень безопасности. Это означает, что некто, взломавший процесс, может думать, что может сломать и систему в целом, однако фактически может сломать только симулятор этой машины и не может модифицировать никаких реальных данных. -+ ++ +Рассмотрим, например, службу `ntalk` (смотрите man:inetd[8]). +Раньше эта служба запускалась с полномочиями пользователя `root`. +Теперь она запускается с полномочиями пользователя с идентификатором `tty`. +Пользователь `tty` является песочницей, предназначенной для того, чтобы +пользователю, которому удалось проникнуть в систему через `ntalk`, было сложнее +взломать систему и получить полномочия больше, чем обладает этот идентификатор. +* Процесс, помещённый внутрь симулируемой машины. +Это означает, что некто, взломавший процесс, может думать, что может сломать и +систему в целом, однако фактически может сломать только симулятор этой машины +и не может модифицировать никаких реальных данных. ++ Самым распространённым способом достигнуть такого результата является построение имитирующего окружения в каталоге и затем запуск процессов в этом каталоге через chroot (т.е. задав этот каталог в качестве [.filename]#/# для этого процесса, а не реальный [.filename]#/# всей системы). -+ ++ Другим часто используемым методом является монтирование низлежащей файловой системы в режиме "только для чтения" и затем создание уровня файловой системы поверх неё, что даёт процессу видимость доступа по записи на ту файловую систему. Процесс будет полагать, что может записывать в те файлы, но это будет единственный процесс, который увидит результат - другие процессы не будут этого делать ни в коем случае. -+ ++ Попытка сделать такой тип песочницы настолько прозрачна, что пользователь (или взломщик) даже не поймёт, что он в ней находится. В UNIX(R) реализованы два типа "песочниц". Один на уровне процесса, и один на уровне идентификаторов пользователей. @@ -2027,7 +2404,8 @@ device bpf # Berkeley Packet Filter В UNIX(R) каждым процессом владеет некоторый идентификатор пользователя. Если этот пользователь не `root`, он ограждает процесс от других, владельцами которых являются другие пользователи. Этот идентификатор используется также для защиты данных на диске. -=== Что такое уровень защиты (securelevel)? +[[securelevel]] +=== Что такое уровень безопасности (securelevel)? `securelevel` является механизмом обеспечения безопасности, который реализован в ядре. Когда уровень защиты больше нуля, ядро ограничивает выполнение некоторых операций; даже суперпользователю `root` запрещается их выполнять. Механизм уровня защиты ограничивает возможности по: @@ -2043,9 +2421,11 @@ device bpf # Berkeley Packet Filter # sysctl -n kern.securelevel .... -Результат содержит текущее значение уровня защиты. Если оно больше нуля, то по крайней мере некоторые из защит этого механизма включены. +Результат содержит текущее значение уровня защиты. +Если оно больше нуля, то по крайней мере некоторые из защит этого механизма включены. -Уровень защиты работающей системы не может быть понижен, поскольку это противоречит назначению этого механизма. Если для задачи требуется неположительный уровень защиты, измените значения переменных `kern_securelevel` и `kern_securelevel_enable` в файле [.filename]#/etc/rc.conf# и перезагрузите систему. +Уровень защиты работающей системы не может быть понижен, поскольку это противоречит назначению этого механизма. +Если для задачи требуется неположительный уровень защиты, измените значения переменных `kern_securelevel` и `kern_securelevel_enable` в файле [.filename]#/etc/rc.conf#, а затем перезагрузите систему. Более подробная информация об уровнях защиты и о том, какие специфические действия выполняют все уровни, может быть найдена на справочных страницах о man:init[8]. @@ -2054,441 +2434,60 @@ device bpf # Berkeley Packet Filter Уровень защиты не является панацеей; в нём есть много недостатков. Зачастую он даёт обманчивое чувство безопасности. -Одной из самых больших проблем является то, что для его эффективной работы все файлы, используемые в процессе загрузки, должны быть защищены. Если атакующий сможет заставить систему выполнять свой код до установки уровня защиты (что происходит достаточно поздно во время процесса загрузки, так как некоторые вещи, выполняемые системой в это время, не могут быть сделаны при повышенном уровне защиты), то эта защита может быть отключена. Хотя такая задача по защите всех файлов, используемых в процессе загрузки, технически вполне осуществима, если это будет сделано, то поддержка системы станет кошмаром, так как для изменения конфигурационного файла придётся останавливать систему, переводя её по крайней мере в однопользовательский режим. - -Это обстоятельство, а также ряд других, часто обсуждаются в списках рассылки, в частности, во {freebsd-security}. Поищите в link:https://www.FreeBSD.org/search/[ архивах] более подробное обсуждение. Предпочтителен более гибкий механизм. -==== - -=== BIND (named) работает на одном из портов с большим номером. Что происходит? +Одной из самых больших проблем является то, что для его эффективной работы все файлы, используемые в процессе загрузки, должны быть защищены. +Если атакующий сможет заставить систему выполнять свой код до установки уровня защиты (что происходит достаточно поздно во время процесса загрузки, так как некоторые вещи, выполняемые системой в это время, не могут быть сделаны при повышенном уровне защиты), то эта защита может быть отключена. +Хотя такая задача по защите всех файлов, используемых в процессе загрузки, технически вполне осуществима, если это будет сделано, то поддержка системы станет кошмаром, так как для изменения конфигурационного файла придётся останавливать систему, переводя её по крайней мере в однопользовательский режим. -Для исходящих запросов BIND использует случайно выбираемый порт с большим номером. В последних версиях при каждом запросе выбирается новый случайный порт UDP. Это может вызвать проблемы в некоторых сетевых конфигурациях, особенно если фаервол блокирует входящие UDP пакеты на определенных портах. Чтобы обеспечить прохождение пакетов через фаервол, попробуйте параметры `avoid-v4-udp-ports` и `avoid-v6-udp-ports`, чтобы предотвратить случайный выбор номеров портов, пересекающихся с блокируемым диапазоном. - -[WARNING] -==== - -Если в [.filename]#/etc/namedb/named.conf# указан номер порта (такой как 53) в параметре `query-source` или `query-source-v6`, то случайный выбор порта использоваться не будет. Настоятельно рекомендуется, чтобы эти параметры не использовались для указания фиксированных номеров порта. +Это обстоятельство, а также ряд других, часто обсуждаются в списках рассылки, в частности, во {freebsd-security}. +Поищите в link:https://www.FreeBSD.org/search/[архивах] более подробное обсуждение. Предпочтителен более гибкий механизм. ==== -Кстати, поздравляем. Прекрасно, что вы читаете вывод команды man:sockstat[1] и обращаете внимание на аномалии! - -=== Даемон Sendmail ждёт соединений как на стандартном порту 25, так и на порту 587! Что происходит? - -Последние версии Sendmail поддерживают механизм посылки почты, который работает по порту 587. Эта возможность пока широко не используется, но её популярность растёт. - +[[toor-account]] === Что это за пользователь toor с UID 0? Я подвергся взлому? -Не волнуйтесь, `toor` является "альтернативной" учётной записью суперпользователя (toor - это root, записанный задом наперёд). Его предлагается использовать с нестандартным командным интерпретатором, так чтобы не нужно было менять используемый по умолчанию командный процессор для `root`. Это важно, так как оболочки, не являющиеся частью дистрибутива системы, устанавливаются в каталог [.filename]#/usr/local/bin#, который по умолчанию располагается в другой файловой системе. Если командный процессор для пользователя `root` располагается в [.filename]#/usr/local/bin# и файловая система, содержащая [.filename]#/usr/local/bin#, не смонтирована, то `root` не сможет войти в систему для исправления проблемы и понадобится перезагрузиться в однопользовательском режиме, чтобы указать командный процессор. - -Некоторые используют `toor` для выполнения повседневных административных работ с нестандартным командным процессором, оставляя `root` со стандартной оболочкой для работы в однопользовательском режиме или выполнения аварийных работ. По умолчанию пользователь не сможет войти в систему как `toor`, потому что для него не указан пароль, поэтому войдите из-под `root` и установите пароль для `toor` до того как использовать его для входа в систему. - -== PPP - -=== Не могу заставить работать ppp. Что я делаю не так? - -Первым делом прочтите страницу Справочника man:ppp[8] и extref:{handbook}ppp-and-slip[раздел PPP, ppp-and-slip] Руководства. Для помощи с устранением неполадок включите протоколирование следующей командой: - -[.programlisting] -.... -set log Phase Chat Connect Carrier lcp ipcp ccp command -.... - -Эту команду можно набрать в командной строке man:ppp[8] или ввести в начале раздела `default` в [.filename]#/etc/ppp/ppp.conf#. Проверьте, что файл [.filename]#/etc/syslog.conf# содержит указанные ниже строки и существует файл [.filename]#/var/log/ppp.log#: - -[.programlisting] -.... -!ppp -*.* /var/log/ppp.log -.... - -Полную информацию о происходящем можно найти в файле протокола. Не беспокойтесь, если не всё будет понятно, ведь это может быть понятно кому-то ещё. - -=== Ppp просто зависает, когда я его запускаю - -Обычно это происходит, когда имя хоста не может быть преобразовано в адрес. Наилучший способ исправить это - удостовериться, что файл [.filename]#/etc/hosts# читается первым. Для этого нужно проверить, что в файле [.filename]#/etc/host.conf# на первом месте стоит строчка `hosts`. Затем добавьте в файл [.filename]#/etc/hosts# запись о локальной машине. Если локальная сеть отсутствует, измените строку для `localhost`: - -[.programlisting] -.... -127.0.0.1 foo.example.com foo localhost -.... - -В противном случае добавьте для хоста ещё одну запись. Обратитесь к соответствующим страницам Справочника за подробным описанием. - -В конце убедитесь, что эта команда выполняется успешно: `ping -c1 hostname`. - -=== Ppp не звонит в режиме -auto - -Сначала проверьте наличие маршрута по умолчанию. Команда `netstat -rn` должна показать две строки: - -[.programlisting] -.... -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 -.... - -Если нет маршрута по умолчанию, убедитесь, что строка `HISADDR` была добавлена в [.filename]#/etc/ppp/ppp.conf#. - -Другая причина отсутствия строки с маршрутом по умолчанию может крыться в том, что маршрут по умолчанию был добавлен в [.filename]#/etc/rc.conf#, и эта строка отсутствует в [.filename]#/etc/ppp/ppp.conf#: - -[.programlisting] -.... -delete ALL -.... - -В таком случае обратитесь к соответствующему extref:{handbook}ppp-and-slip[разделу, userppp-final] Руководства. - -=== Что означает сообщение No route to host? - -Обычно эта ошибка появляется из-за отсутствия в файле [.filename]#/etc/ppp/ppp.linkup# следующего раздела: - -[.programlisting] -.... -MYADDR: - delete ALL - add 0 0 HISADDR -.... - -Он необходим только для динамического IP адреса или когда адрес маршрутизатора не известен. При использовании интерактивного режима можно набрать следующие команды после входа в пакетный режим. Пакетный режим обозначается заглавными буквами PPP в приглашении: - -[.programlisting] -.... -delete ALL -add 0 0 HISADDR -.... - -Обратитесь к разделу extref:{handbook}[PPP и динамические IP адреса, userppp-dynamicip] Руководства за подробной информацией. - -=== Соединение разрывается через 3 минуты - -Таймаут для PPP по умолчанию равен 3 минутам. Это может быть изменено такой строкой: - -[.programlisting] -.... -set timeout NNN -.... - -где _NNN_ - время неактивности в секундах, после которого соединение закрывается. Если _NNN_ равно нулю, соединение никогда не разрывается по таймауту. Эту команду можно поместить в файл [.filename]#ppp.conf# или набрать ее в интерактивном режиме. Изменение этого параметра также возможно при активном соединении, если подключиться к сокету ppp сервера с помощью программ man:telnet[1] или man:pppctl[8]. Обратитесь к страницам Справочника, посвящённым man:ppp[8]. - -=== Соединение разрывается при большой нагрузке - -Если включен Link Quality Reporting (LQR), то возможно слишком много пакетов LQR теряется в канале. man:ppp[8] делает вывод, что канал плох, и разрывает соединение. LQR по умолчанию выключен. Включить LQR можно так: - -[.programlisting] -.... -enable lqr -.... - -=== Соединение разрывается в случайные промежутки времени - -Иногда на шумной линии или даже на линии с включенным режимом ожидания звонка модем может вешать трубку, ошибочно полагая, что потеряна несущая. - -В большинстве модемов есть параметр, определяющий чувствительность к временной потере несущей. Обратитесь к документации модема. - -=== Соединение часто рвётся в случайные промежутки времени - -Многие сообщают об обрывах соединений без видимой причины. Первым делом нужно выяснить, с какой стороны рвётся соединение. - -При использовании внешнего модема проверьте утилитой man:ping[8], мигает ли индикатор TD при передаче данных. Если он мигает, а индикатор RD нет, проблема с той стороны. Если TD не загорается, проблема является локальной. Для внутреннего модема используйте команду `set server` в [.filename]#ppp.conf#. При обрыве связи подключитесь к man:ppp[8] с помощью man:pppctl[8]. Если сетевое подключение неожиданно восстанавливается при проявлении активности на диагностическом сокете или нет соединения, но команда `set socket` в начальный момент была выполнена успешно, то проблема имеет локальный характер. Если получается подключиться, но связи всё равно нет, включите вывод локальной отладочной информации командой `set log local async` и используйте man:ping[8] в другом окне или терминале, чтобы проверить связь. В отладочном выводе будут показаны данные, передаваемые и получаемые из канала связи. Если данные посылаются, но не принимаются обратно, то проблема с той стороны. - -Теперь, после выяснения местонахождения проблемы, имеется два варианта действий: - -* Если проблема на удалённой машине, то прочтите <<ppp-remote-not-responding>>. -* Если проблема с вашей стороны, прочтите <<ppp-hung>>. - -[[ppp-remote-not-responding]] -=== Удалённая система не отвечает - -Здесь мало что можно сделать. Большинство провайдеров отказываются помогать пользователям, которые не используют ОС от Microsoft(R). Добавьте `enable lqr` в [.filename]#/etc/ppp/ppp.conf#, чтобы позволить man:ppp[8] отследить ошибки в удалённой системе и закрыть соединение. Такое обнаружение достаточно медленно и поэтому не так уж полезно. - -Первым делом попробуйте отключить любое сжатие, указав в конфигурационном файле следующее: - -[.programlisting] -.... -disable pred1 deflate deflate24 protocomp acfcomp shortseq vj -deny pred1 deflate deflate24 protocomp acfcomp shortseq vj -.... - -Теперь попробуйте установить соединение ещё раз и удостоверьтесь, что ситуация не изменилась. Если качество соединения улучшилось или проблема оказалась полностью решённой, выясните, настройка чего приводила к проблемам методом проб и ошибок. Это полезная информация для провайдера, хотя при этом может обнаружиться, что вы работаете не с продуктом Microsoft(R). - -Перед тем, как звонить провайдеру, включите вывод отладочной информации и подождите, пока соединение снова не прервётся. Для этого может потребоваться некоторое дисковое пространство. Интерес могут представлять последние прочитанные из порта данные. Обычно это данные в формате ASCII и они могут даже содержать описание проблемы (`Memory fault`, `Core dumped`). - -Если провайдер согласен помочь, нужно будет включить режим отладки с их стороны, и затем, когда связь прервётся в следующий раз, они смогут сказать, почему с их стороны возникли проблемы. - -[[ppp-hung]] -=== Ppp зависает - -В этом случае перекомпилируйте man:ppp[8] с отладочной информацией, и затем используйте man:gdb[1] для получения стека вызовов для зависшего процесса ppp. Чтобы откомпилировать программу ppp с отладочной информацией, наберите такие команды: - -[source,shell] -.... -# cd /usr/src/usr.sbin/ppp -# env DEBUG_FLAGS='-g' make clean -# env DEBUG_FLAGS='-g' make install -.... - -Затем перезапустите ppp и дождитесь следующего зависания. Когда отладочная сборка man:ppp[8] зависнет, запустите gdb для зависшего процесса: - -[source,shell] -.... -# gdb ppp `pgrep ppp` -.... - -В приглашении gdb используйте команду `bt` или `where` для получения стека вызовов. Сохраните вывод сессии gdb и "отключитесь" от работающего процесса, выполнив команду `quit` в gdb. - -=== В протоколе есть сообщения о том, что magic being the same. - -Иногда, сразу после установления соединения, в журнале могут возникать сообщения `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 и прервёт соединение. В то же самое время, клиент, который больше не видит отражений, останавливается для того, чтобы увидеть, что сервер закрыл соединение. - -Этого можно избежать, позволив начинать согласование противоположной стороне следующей строкой в файле [.filename]#ppp.conf#: - -[.programlisting] -.... -set openmode passive -.... - -Это заставит man:ppp[8] ожидать начала согласования LCP. Некоторые серверы, однако, могут никогда не начать согласование. В этом случае попробуйте сделать следующее: - -[.programlisting] -.... -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`, чтобы она ждала другую для начала согласования. Это можно сделать следующей командой: - -[.programlisting] -.... -set openmode passive -.... - -С этой командой нужно быть осторожным. Эту команду можно также использовать для ограничения периода ожидания, в течении которого man:ppp[8] ждёт начала согласования с противоположной стороны: - -[.programlisting] -.... -set stopped N -.... - -Как вариант, может быть использована следующая команда (где _N_ - период ожидания в секундах перед тем, как начать согласование): - -[.programlisting] -.... -set openmode active N -.... - -За дополнительной информацией обращайтесь к странице Справочника. - -=== Когда я выполняю команду shell для тестирования соединения, ppp блокируется - -При использовании `shell` или `!` man:ppp[8] запускает оболочку или переданные параметры. Программа ppp будет ждать окончания выполнения команды, прежде чем продолжить. При любой попытке воспользоваться связью PPP во время выполнения команды связь будет выглядеть заблокированной. Это происходит из-за того, что man:ppp[8] ждёт завершения команды. - -Для выполнения подобных команд используйте вместо этого `!bg`. В этом случае нужная команда будет выполняться в фоновом режиме, а man:ppp[8] сможет продолжить обслуживание канала связи. - -=== Почему программа ppp, обслуживающая нуль-модем, никогда не закрывается? - -man:ppp[8] не может определить, что соединение было закрыто. Это происходит из-за метода использования сигнальных линий нуль-модемного кабеля. При использовании такого типа соединения всегда включайте LQR: - -[.programlisting] -.... -enable lqr -.... - -По умолчанию LQR включается, если это было затребовано с противоположной стороны на этапе согласования параметров соединения. - -=== В режиме -auto ppp неожиданно начинает звонить - -Если man:ppp[8] начинает неожиданно звонить, определите причину и настройте фильтры дозвона для предотвращения подобных звонков. - -Для выяснения причины такого поведения, используйте строку: - -[.programlisting] -.... -set log +tcp/ip -.... - -Это включит протоколирование всего трафика через соединение. В следующий раз, когда неожиданно будет установлено соединение, в файл протокола будет следом занесена причина с отметкой времени. +Не волнуйтесь, `toor` является "альтернативной" учётной записью суперпользователя (toor - это root, записанный задом наперёд). +Его предлагается использовать с нестандартным командным интерпретатором, так чтобы не нужно было менять используемый по умолчанию командный процессор для `root`. +Это важно, так как оболочки, не являющиеся частью дистрибутива системы, но установленные из портов или пакаджей, размещаются в каталоге [.filename]#/usr/local/bin#, который по умолчанию располагается в другой файловой системе. +Если командный процессор для пользователя `root` располагается в [.filename]#/usr/local/bin# и файловая система, содержащая [.filename]#/usr/local/bin#, не смонтирована, то пользователь `root` не сможет войти в систему для исправления проблемы и понадобится перезагрузиться в однопользовательском режиме, чтобы указать путь до командного процессора. -Теперь отключите дозвон при данных условиях. Как правило, такие проблемы возникают из-за обращений к DNS. Для предотвращения обращений к DNS и установления соединения (что _не_ запретит man:ppp[8] пропускать пакеты через уже установленное соединение), используйте такую комбинацию: - -[.programlisting] -.... -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 попытайтесь установить, что именно пытается определить имя хоста. В большинстве случаев виновным оказывается Sendmail. Проверьте, чтобы в конфигурационном файле программы Sendmail не было указано обращаться к DNS. Обратитесь к разделу об extref:{handbook}mail/[использовании электронной почты при коммутируемом соединении, smtp-dialup] в Руководстве FreeBSD за подробным описанием. Вам может понадобиться добавить в файл [.filename]#.mc# строку: - -[.programlisting] -.... -define(`confDELIVERY_MODE', `d')dnl -.... - -Это заставит Sendmail добавлять все сообщения в очередь до тех пор, пока не будет запущена её обработка, как правило, каждые 30 минут, или пока не будет выполнена команда `sendmail -q`, возможно, из файла [.filename]#/etc/ppp/ppp.linkup#). - -=== Что означают ошибки CCP - -В файле протокола появляются такие сообщения об ошибках: - -[.programlisting] -.... -CCP: CcpSendConfigReq -CCP: Received Terminate Ack (1) state = Req-Sent (6) -.... - -Это происходит, если man:ppp[8] пытается установить сжатие Predictor1, а противоположная сторона не хочет устанавливать никакого сжатия. Эти сообщения безобидны, но их можно заглушить отключением сжатия: - -[.programlisting] -.... -disable pred1 -.... - -=== Почему ppp не протоколирует скорость соединения? - -Для записи полного протокола взаимодействия с модемом включите следующее: - -[.programlisting] -.... -set log +connect -.... - -Это заставит man:ppp[8] протоколировать всё, вплоть до последней прочтённой через "expect" строки. - -Чтобы увидеть скорость соединения при использовании PAP или CHAP, укажите man:ppp[8] ожидать полную строку CONNECT: - -[.programlisting] -.... -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. - -=== Ppp игнорирует символ \ в chat-скрипте - -Программа ppp разбирает каждую строку в конфигурационных файлах и поэтому может правильно интерпретировать строки вида `set phone "123 456 789"` и обнаруживать, что на самом деле номер является единственным аргументом. Для того, чтобы указать символ `"`, заэкранируйте его символом обратного слэша (`\`). - -Когда интерпретатор chat разбирает каждый параметр, он ещё раз просматривает аргумент на предмет каких-либо специальных последовательностей типа `\P` или `\T`. Вследствие этой двойной интерпретации не забывайте об использовании нужного количества экранирующих символов. - -Чтобы передать сам символ `\`, укажите что-то типа: - -[.programlisting] -.... -set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK" -.... - -Это приведёт к такой последовательности: - -[.programlisting] -.... -ATZ -OK -AT\X -OK -.... - -Или: - -[.programlisting] -.... -set phone 1234567 -set dial "\"\" ATZ OK ATDT\\T" -.... - -Это даст такую последовательность: - -[.programlisting] -.... -ATZ -OK -ATDT1234567 -.... - -=== Процесс, вызвавший прозвонку в режиме -auto, никогда не получает затребованного соединения - -Эта проблема проявлялась, когда man:ppp[8] в режиме `-auto` был настроен на динамическое согласование локального 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] и ключа `-nat` для 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`. Это, однако, является некоторым хаком, так как ядро будет посылать некорректные пакеты на не полностью сконфигурированный интерфейс, в предположении, что существует механизм исправления этих пакетов. - -=== Что такое ошибки FCS? - -FCS является сокращением от Frame Check Sequence (контроль последовательности кадров). Каждый кадр PPP имеет контрольную сумму для проверки того, что принятые данные совпадают с переданными. Если FCS принятого пакета некорректна, пакет отбрасывается и счётчик FCS для HDLC увеличивается. Значения ошибок уровня HDLC можно вывести командой `show hdlc`. - -Если линия плохого качества или драйвер коммуникационного адаптера отбрасывает пакеты, будут появляться случайные ошибки FCS. Это обычно не является причиной для волнений, хотя это существенно замедляет протоколы компрессии. - -Если связь замирает сразу при установлении соединения и наблюдается большое количество ошибок FCS, убедитесь, чтобы модем не использовал программное управление потоком (XON/XOFF). Если же для соединения должно использоваться программное управление потоком, то воспользуйтесь командой `set accmap 0x000a0000` для указания man:ppp[8] экранировать символы `^Q` и `^S`. - -Другой причиной слишком большого количества ошибок FCS может быть прекращение противоположной стороной сеанса PPP. В этом случае включите протоколирование `async` для проверки того, не являются ли поступаемые из линии данные на самом деле приглашением login или shell. Если с противоположной стороны находится приглашение shell, завершить man:ppp[8] без обрыва связи можно командой `close lcp` и последующей командой `term`, чтобы переподключиться к приглашению shell на удалённой машине. - -Если ничего в файле протокола не говорит о причине разрыва связи, спросите у администратора удалённой машины или вашего провайдера, почему сеанс был закрыт. - -=== Ничего не помогает - я уже отчаялся! - -Если всё уже перепробовано, и ничего не получается, пошлите подробности об ошибке, конфигурационные файлы, способ запуска man:ppp[8], соответствующие части файла протокола, и вывод команды `netstat -rn` до и после соединения в {freebsd-questions}. +Некоторые используют `toor` для выполнения повседневных административных работ с нестандартным командным процессором, оставляя `root` со стандартной оболочкой для работы в однопользовательском режиме или выполнения аварийных работ. +По умолчанию ни один пользователь не сможет войти в систему как `toor`, потому что для этой учётной записи не указан пароль, поэтому войдите из-под `root` и установите пароль для `toor` до того, как использовать его для входа в систему. +[[serial]] == Коммуникационные адаптеры -В этом разделе освещены вопросы о работе последовательных адаптеров во FreeBSD. Протокол PPP рассматривается в разделе <<networking,Работа в сети>>. - -=== Какие многопортовые последовательные адаптеры поддерживаются во FreeBSD? - -Список таких устройств находится в главе Руководства extref:{handbook}serialcomms/[Последовательные соединения, serial]. - -Большинство многопортовых PCI адаптеров на базе 16550 и их клоны поддерживаются без дополнительных усилий. +В этом разделе освещены вопросы о работе последовательных адаптеров во FreeBSD. -Некоторые безымянные клоны таких адаптеров тоже работают нормально, особенно те, которые заявляют о своей совместимости с AST. - -Прочтите страницы Справочника man:uart[4] и man:sio[4] для получения подробной информации о конфигурировании таких адаптеров. - -=== Как сделать, чтобы приглашение boot: выводилось на консоль на последовательном порту? +[[serial-console-prompt]] +=== Как сделать так, чтобы приглашение boot: выводилось на консоль на последовательном порту? Подробная информация находится в extref:{handbook}serialcomms/[этом разделе Руководства, serialconsole-setup]. +[[found-serial]] === Как узнать, обнаружила ли FreeBSD последовательные порты или внутренние модемы? В процессе своей загрузки ядро FreeBSD будет пытаться найти последовательные порты, с поддержкой которых ядро сконфигурировано. Внимательно просмотрите сообщения загрузки либо выполните такую команду после того, как система запустилась и работает: [source,shell] .... -% 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 +% grep -E '^(sio|uart)[0-9]' < /var/run/dmesg.boot +uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 +uart0: console (115200,n,8,1) +uart1: <16550 or compatible> port 0x2f8-2x3ff irq 3 on acpi0 .... -Здесь присутствуют два последовательных порта. Первый находится на IRQ4, порт ввода/вывода `0x3f8`, и построен на микросхеме UART типа 16550A. Второй использует тот же тип микросхемы, но находится на IRQ3 и использует адрес порта ввода/вывода `0x2f8`. Внутренние модемы выглядят точно также, как последовательные порты, за исключением того, что модем к ним подключен всегда. +В этом примере присутствуют два последовательных порта. Первый находится на IRQ4, порт ввода/вывода `0x3f8`, и построен на микросхеме UART типа 16550. Второй использует тот же тип микросхемы, но находится на IRQ3 и использует адрес порта ввода/вывода `0x2f8`. Внутренние модемы выглядят точно также, как последовательные порты, за исключением того, что модем к ним подключен всегда. В ядро [.filename]#GENERIC# встроена поддержка двух последовательных портов, с теми же IRQ и адресами портов ввода/вывода, как указано в примере выше. Если эти настройки не соответствуют системе или имеется больше внутренних модемов или последовательных портов, чем описано в ядре, переконфигурируйте его, следуя инструкциям в разделе <<make-kernel,о построении ядра>>. -=== Как осуществляется доступ к последовательным портам во FreeBSD? +[[access-serial-ports]] +=== Как осуществляется доступ к последовательным портам во FreeBSD? (специфично для x86) Третий последовательный порт, [.filename]#sio2# или [.filename]#COM3#, обозначается как [.filename]#/dev/cuad2# для устройств, выполняющих исходящие звонки, и [.filename]#/dev/ttyd2# для устройств, принимающих входящие звонки. Какая разница между этими двумя классами устройств? При открытии [.filename]#/dev/ttydX# в блокирующем режиме процесс будет ожидать неактивности соответствующего устройства [.filename]#cuadX#, а затем появления сигнала о наличии несущей. При открытии устройства [.filename]#cuadX# он проверяет, что последовательный порт не занят устройством [.filename]#ttydX#. Если порт доступен, он похищает его у устройства [.filename]#ttydX#. Также устройство [.filename]#cuadX# не следит за наличием несущей. С такой схемой работы и модемом в режиме автоответа удалённые пользователи могут входить в систему, а локальные пользователи через тот же модем могут по прежнему осуществлять исходящие звонки, а система позаботится о возможных конфликтах. +[[enable-multiport-serial]] === Как включить поддержку многопортовых последовательных адаптеров? Информация о конфигурировании ядра содержится в соответствующем разделе, посвящённом этому вопросу. Для многопортовых последовательных адаптеров добавьте в файл man:device.hints[5] по строке man:sio[4] на каждый порт. Но IRQ должен быть указан только у одного порта. Все порты на адаптере должны использовать одно и то же значение IRQ. Для обеспечения согласованности используйте для указания IRQ последний последовательный порт. Также укажите следующую опцию в файле конфигурации ядра: @@ -2519,18 +2518,13 @@ hint.sio.7.irq="12" Флаги указывают, что управляющий порт имеет младший номер устройства `7` (`0x700`), и все порты совместно используют один и тот же номер IRQ (`0x001`). -=== Можно ли настроить для порта режим работы по умолчанию? - -Смотрите раздел Руководства FreeBSD, посвящённый extref:{handbook}serialcomms[последовательным соединениям, serial]. - -=== Как сделать вход через модем? +[[default-serial-params]] +=== Можно ли настроить для последовательного порта режим работы по умолчанию? -Ознакомьтесь с разделом Руководства FreeBSD, посвящённым extref:{handbook}serialcomms/[входящим соединениям, dialup]. - -=== Как подключить терминал к FreeBSD? - -Информация по этому вопросу находится в разделе extref:{handbook}serialcomms/[Терминалы, term] Руководства FreeBSD. +Смотрите раздел Руководства по FreeBSD, посвящённый +extref:{handbook}serialcomms/[последовательным соединениям, serial-hw-config]. +[[cannot-tip]] === Почему не удаётся запустить tip или cu? Встроенные утилиты man:tip[1] и man:cu[1] могут получить доступ к каталогу [.filename]#/var/spool/lock# только из-под пользователя `uucp` и членов группы `dialer`. Используйте группу `dialer` для управления доступом к модему или удалённым системам посредством добавления в неё пользовательских учётных записей. @@ -2545,16 +2539,23 @@ hint.sio.7.irq="12" == Разное +[[more-swap]] === Почему FreeBSD использует много места в разделе подкачки даже при большом объёме свободной памяти? FreeBSD активно перемещает неиспользуемые страницы памяти, к которым не было обращений, в раздел подкачки, чтобы увеличить объём доступной физической памяти для активного использования. Такое активное использование раздела подкачки компенсируется использованием дополнительной свободной оперативной памяти для кеширования. Заметьте, что хотя FreeBSD предпочитает использовать раздел подкачки, страницы не перемещаются произвольно при полностью неактивной системе. По этой причине система не будет находиться целиком в разделе подкачки после ночного простаивания. +[[top-freemem]] === Почему утилита man:top[1] показывает очень маленький объём свободной памяти, даже когда запущено всего лишь несколько приложений? -Просто дело в том, что под свободной памятью подразумевается никак не используемая память. Вся память, которая программам явно не выделялась, используется ядром FreeBSD для дискового кэша. Значения, показываемые утилитой man:top[1], помеченные как `Inact`, `Cache` и `Buf` - это всё кэшированные данные разных степеней устаревания. То, что данные находятся в кэше, означает, что система не будет обращаться к медленному диску снова за теми данными, обращение к которым было недавно, повышая таким образом общую производительность. В общем случае маленькие значения в пункте `Free`, показываемые утилитой man:top[1] для свободной памяти - это хорошо, если, конечно они не _очень_ маленькие. +Просто дело в том, что под свободной памятью подразумевается никак не +используемая память. Вся память, которая программам явно не выделялась, +используется ядром FreeBSD для дискового кэша. Значения, показываемые +утилитой &man.top.1; с метками `Inact` и `Laundry`, являются кэшированными +данными разных степеней устаревания. То, что данные находятся в кэше, означает, что система не будет обращаться к медленному диску снова за теми данными, обращение к которым было недавно, повышая таким образом общую производительность. В общем случае маленькие значения в пункте `Free`, показываемые утилитой man:top[1] для свободной памяти - это хорошо, если, конечно они не _очень_ маленькие. +[[chmod-symlinks]] === Почему командой chmod невозможно изменить права на символические ссылки? Символические ссылки не имеют атрибутов доступа, и по умолчанию утилита man:chmod[1] следует по символической ссылке, чтобы по возможности изменить права доступа на исходный файл. Для файла [.filename]#foo# с символической ссылкой [.filename]#bar# на этот файл эта команда всегда будет выполняться успешно. @@ -2581,21 +2582,26 @@ FreeBSD активно перемещает неиспользуемые стр Если задан ведущий слэш, то man:chmod[1] будет следовать символической ссылке [.filename]#foo#, меняя права на каталог [.filename]#bar#. ==== -=== Можно ли запускать программы для DOS во FreeBSD? +[[dos-binaries]] +=== Могу ли я запускать программы для DOS во FreeBSD? -Да. Программа эмуляции DOS package:emulators/doscmd[] включена в Коллекцию Портов FreeBSD. +Да. +Программа эмуляции DOS, package:emulators/doscmd[], доступна в Коллекции Портов +FreeBSD. Если doscmd не достаточно, package:emulators/pcemu[] эмулирует 8088 и набор сервисов BIOS, достаточный для запуска многих приложений текстового режима DOS. Требуется X Window System. В Коллекции Портов FreeBSD также имеется package:emulators/dosbox[]. Программа в основном предназначена для эмуляции старых игр, написанных под DOS, для хранения файлов которых используется локальная файловая система. -=== Что мне нужно сделать, чтобы перевести документацию FreeBSD на родной язык? +[[translation]] +=== Что мне нужно сделать, чтобы перевести документацию FreeBSD на мой родной язык? Ознакомьтесь с extref:{fdp-primer}[FAQ по Переводам, translations] из FreeBSD Documentation Project Primer. +[[freebsd-mail-bounces]] === Почему возвращается моя электронная почта, отправленная на любой из адресов FreeBSD.org? -В почтовой системе `FreeBSD.org` в Postfix применяются некоторые проверки входящей почты, и отвергаются сообщения, которые были неправильно сформированы при пересылке либо как-то иначе похожи на спам. Некоторые из требований: +В почтовой системе `FreeBSD.org` в Postfix применяются некоторые проверки входящей почты, и отвергаются сообщения, которые были неправильно сформированы при пересылке либо как-то иначе похожи на спам. Вот некоторые из требований: * IP-адрес клиента SMTP должен иметь обратное преобразование в символическое имя. * Полное имя хоста, указанное на этапе EHLO/HELO в процессе обмена сообщениями SMTP, должно разрешаться в IP-адрес клиента. @@ -2603,46 +2609,61 @@ FreeBSD активно перемещает неиспользуемые стр Дополнительные советы по доставке письма: * Письмо должно быть отправлено в текстовом формате. Сообщение в почтовый список рассылки, как правило, не должно иметь размер больше 200 Кбайт. -* Избегайте избыточного кросспостинга. Выберите _один_ список рассылки, который кажется наиболее подходящим. +* Избегайте избыточного кросспостинга. +Выберите _один_ список рассылки, который кажется наиболее подходящим. Если у вас всё ещё остались трудности при работе с почтовой инфраструктурой `FreeBSD.org`, отправьте сообщение с подробным описанием на адрес mailto:postmaster@freebsd.org[postmaster@freebsd.org]. Укажите в нём временной интервал для проверки логов - и обратите внимание, что мы держим журнал почтовых логов всего за неделю. (Обязательно укажите часовой пояс или разницу в UTC.) +[[free-account]] === Где можно получить бесплатный доступ к FreeBSD? Хотя FreeBSD не предоставляет бесплатный доступ ни к одному из своих серверов, другие компании предоставляют UNIX(R)-системы с открытым доступом. Стоимость этой услуги различна, также как и ограниченный набор услуг. http://www.arbornet.org/[Arbornet, Inc], также известный как _M-Net_, предоставляет свободный доступ к UNIX(R)-системам с 1983 года. Начиная на платформе Altos с работающей System III, сайт перешёл на BSD/OS в 1991. В июне 2000 сайт сменил систему снова, теперь на FreeBSD. _M-Net_ может быть доступна через протоколы telnet и SSH и предоставляет доступ к полному набору программного обеспечения FreeBSD. Однако доступ к сети ограничен для членов и спонсоров, которые поддерживают систему, которая работает как неприбыльная организация. _M-Net_ предоставляет также услуги электронной доски объявлений (BBS) и интерактивного чата. +[[daemon-name]] === Как зовут этого маленького симпатичного красного парня? -У него нет определённого имени, он называется просто "даемон BSD". Если вам непременно нужно имя, называйте его "beastie". Заметьте, что "beastie" произносится как "BSD". +У него нет определённого имени, он называется просто "даемон BSD". +Если вам непременно нужно имя, называйте его "beastie". +Заметьте, что "beastie" произносится как "BSD". Больше о даемоне BSD можно узнать из его http://www.mckusick.com/beastie/index.html[домашней страницы]. +[[use-beastie]] === Могу ли я использовать изображение даемона BSD? -Вполне. Права на даемона BSD имеет Marshall Kirk McKusick. Для выяснения подробностей относительно правил его использования обратитесь к странице автора http://www.mckusick.com/beastie/mainpage/copyright.html[Statement on the Use of the BSD Daemon Figure]. +Вполне может быть. +Правами на даемона BSD обладает Marshall Kirk McKusick. +Для выяснения подробностей относительно правил его использования обратитесь к странице автора http://www.mckusick.com/beastie/mainpage/copyright.html[Statement on the Use of the BSD Daemon Figure]. В общем, использовать изображение можно в высокохудожественном стиле и в личных целях, если даются соответствующие отсылки. Перед использованием знака в коммерческих целях обратитесь за разрешением к {mckusick}. Дополнительная информация находится на http://www.mckusick.com/beastie/index.html[домашней странице Даемона BSD]. -=== Не найдется ли у вас изображений даемона BSD, которые можно использовать? +[[daemon-images]] +=== Не найдётся ли у вас изображений даемона BSD, которые можно использовать? -В каталоге [.filename]#/usr/shared/examples/BSD_daemon/# есть рисунки в форматах eps и Xfig. +В каталоге [.filename]#/usr/share/examples/BSD_daemon/# есть рисунки в форматах +eps и Xfig. -=== При просмотре списков рассылки, я встретил акроним или другой термин, который мне не понятен. Где я должен посмотреть, что он значит? +[[glossary]] +=== При просмотре списков рассылки я встретил сокращение или другой термин, который мне не понятен. Где я должен посмотреть, что он значит? -Пожалуйста, обращайтесь к extref:{handbook}glossary/[Глоссарию FreeBSD, freebsd-glossary]. +Обратитесь к extref:{handbook}glossary/[Глоссарию FreeBSD]. +[[bikeshed-painting]] === Почему я должен беспокоиться о цвете велосипедных навесов (bikeshed)? На самом деле, очень краткий ответ на этот вопрос заключается в том, что вы этого делать не должны. Если давать более подробный ответ, то ваше умение делать навесы не должно означать, что вы должны препятствовать другим делать их просто потому, что вам не нравится цвет, в который они собираются их окрашивать. Эта метафора означает, что вам не нужно обсуждать каждую мелочь просто потому, что вы знаете о ней достаточно много. Некоторые люди отмечают, что объём шума, генерируемый при появлении некоторого изменения, находится в обратной зависимости от сложности самого изменения. -Более пространный и полный ответ заключается в том, что после очень долгого обсуждения того, должна ли утилита man:sleep[1] обрабатывать дробное число, заданное в качестве второго аргумента, {phk} опубликовал большое сообщение, озаглавленное "link:http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers[Велосипедный навес (подставьте здесь цвет) на зелёной траве...]". Соответствующие части этого сообщения цитируются ниже. +Более пространный и полный ответ заключается в том, что после очень долгого обсуждения того, должна ли утилита man:sleep[1] обрабатывать дробное число, заданное в качестве второго аргумента, {phk} опубликовал большое сообщение, +озаглавленное link:http://www.bikeshed.com[Велосипедный навес (любого цвета) на +зелёной траве...]. Соответствующие части этого сообщения цитируются ниже. {phk} on freebsd-hackers, October 2, 1999 -"Что это за история с навесом для велосипеда?" Кто-то из вас задавал такой вопрос. +"Что это за история с этим навесом для велосипеда?", кто-то из вас спрашивал меня. -Это долгая история, или же это старая история, но на самом деле она коротка. В начале 1960-х годов Паркинсон (C. Northcote Parkinson) написал книгу "Закон Паркинсона", которая содержит много интересных взглядов на процесс управления. +Это долгая история, точнее, это старая история, но на самом деле она коротка. +В начале 1960-х годов Сирил Норткот Паркинсон (C. Northcote Parkinson) написал книгу "Законы Паркинсона", которая содержит много интересных взглядов на процесс управления. _[немного выдержек из краткого содержания книги]_ @@ -2654,25 +2675,61 @@ _[немного выдержек из краткого содержания к Велосипедный навес - это противоположный случай. Любой может построить навес за один уикэнд, и у него ещё останется время посмотреть футбол по телевизору. Так что не важно, насколько хорошо вы готовились к обсуждению, насколько убедительны будут ваши аргументы, кто-нибудь воспользуется шансом показать, что он не зря ест свой хлеб, что он обращает внимание, что он _здесь_. -В Дании это называется "оставить отпечаток своего пальца". Это касается личной гордости и престижа, это похоже на возможность указать куда-то и сказать: " Вон там! Это сделал _я_." Это сильно выражено в политиках, но присутствует во многих людях, которые получают возможность сделать это. Просто вспомните об отпечатках ног во влажном цементе. +В Дании это называется “оставить отпечаток своего пальца”. +Это всё касается личной гордости и престижа, это возможность указать куда-то и сказать: “Вот! Это сделал я”. +Это сильно выражено в политиках, но присутствует во многих людях, которые получают возможность сделать это. +Просто вспомните об отпечатках ног во влажном цементе. == Юмор от FreeBSD -=== Насколько греется процессор при работе FreeBSD? - -В. Кто-нибудь делал замеры температуры при работе FreeBSD? Я знаю, что Linux(R) греется меньше, чем DOS, но никогда не видел упоминания FreeBSD. Наверное, он сильно греется. - -О. Нет, но мы сделали различные вкусовые тесты у добровольцев с завязанными глазами, которые до этого приняли по 250 микрограмм LSD-25. 35% добровольцев заявило, что FreeBSD имеет вкус апельсина, тогда как вкус Linux(R) расценивался как фиолетовый туман. Ни одна из групп не отметила значительной разницы в температуре. Мы хотели опубликовать полные результаты этого опроса, когда обнаружили, что слишком много добровольцев покинули помещение во время тестов, что несколько смазало результаты. Думаем, что большинство из них работают сейчас в Apple над их новым GUI "чеши и нюхай". Это старый добрый бизнес! - -Если серьёзно, то FreeBSD использует инструкцию HLT (halt), когда система простаивает, что уменьшает потребление энергии и, в свою очередь, выделение тепла. Вдобавок, если у вас настроен ACPI (усовершенствованный интерфейс управления конфигурацией и питанием), то FreeBSD может переводить процессор в режим пониженного энергопотребления. - +[[very-very-cool]] +=== Насколько FreeBSD горяча? + +_В._ Кто-нибудь делал замеры температуры при работе FreeBSD? +Я знаю, что Linux(R) греется меньше, чем DOS, но никогда не видел упоминания FreeBSD. +Наверное, эта система - горячая штучка. + +_О._ Нет, но мы сделали различные вкусовые тесты у добровольцев с завязанными +глазами, которые до этого приняли по 250 микрограмм LSD-25. 35% участников +заявили, что FreeBSD имеет вкус апельсина, тогда как вкус Linux(R) был похож на +фиолетовый туман. Ни одна из групп не отметила значительной разницы в +температуре. Мы уже собирались опубликовать полные результаты этого опроса, +когда обнаружили, что слишком много добровольцев покинули помещение во время +тестов, что несколько смазало результаты. Думаем, что большинство добровольцев +работают сейчас в Apple над их новым GUI "чеши и нюхай". Это ведь старый +добрый бизнес! + +Если серьёзно, то FreeBSD использует инструкцию HLT (halt), когда система +простаивает, что уменьшает потребление энергии и, в свою очередь, выделение +тепла. +Вдобавок, если у вас настроен ACPI (усовершенствованный интерфейс +управления конфигурацией и питанием), то FreeBSD может переводить процессор в +режим пониженного энергопотребления. + +[[letmeoutofhere]] === Кто там скребётся в микросхемах памяти?? -В. Делает ли FreeBSD что-нибудь "эдакое" при компиляции ядра, что вызывает поскрипывание микросхем памяти? При компиляции (и в короткий промежуток времени после обнаружения дисковода при старте системы) от микросхем памяти исходит странный царапающий звук. - -О. Да! Вы, наверное, видели частое упоминание "даемонов" в документации по BSD, но не многие знают, что это настоящие нематериальные существа, которые теперь завладели вашим компьютером. Царапающий звук, издаваемый микросхемами памяти - это на самом деле высокочастотное перешёптывание между даемонами, когда они решают, как лучше справиться с различными задачами по администрированию системы. - -Если шум достиг ваших ушей, команда DOS `fdisk /mbr` их спугнёт, но не удивляйтесь, если они отреагируют соответствующим образом и попытаются вас остановить. Фактически, если во время выполнения этой команды вы услышите сатанинский голос Билла Гейтса из встроенного динамика, бегите и даже не оглядывайтесь! Избавленные от противостояния с даемонами BSD, близнецы-демоны DOS и Windows(R) часто могут захватить полный контроль не только над вашей машиной и навлечь вечное проклятие на вашу душу. Теперь, когда вы это знаете, если бы у вас был выбор, думаем, что вы бы предпочли слышать царапающий звук, не так ли? +_В._ Делает ли FreeBSD что-нибудь "эдакое" при компиляции ядра, что вызывает поскрипывание микросхем памяти? +При компиляции (и в короткий промежуток времени после обнаружения дисковода при старте системы) от, видимо, микросхем памяти исходит странный царапающий звук. + +_О._ Да! +Вы встретите частое упоминание "даемонов" в документации по BSD, но +не все знают, что речь идёт о настоящих нематериальных существах, которые +теперь завладели и вашим компьютером. Царапающий звук, издаваемый микросхемами +памяти - это на самом деле высокочастотное перешёптывание между даемонами, +когда они решают, как лучше справиться с различными задачами по +администрированию системы. + +Если шум достиг ваших ушей, команда DOS `fdisk /mbr` их спугнёт, но не +удивляйтесь, если они отреагируют соответствующим образом и попытаются вас +остановить. +Фактически, если во время выполнения этой команды вы услышите сатанинский голос +Билла Гейтса из встроенного динамика, бегите и даже не оглядывайтесь! +Избавленные от противостояния с даемонами BSD, близнецы-демоны DOS и Windows(R) +часто могут захватить полный контроль над вашей машиной, чтобы навлечь +вечное проклятие на вашу душу. +Теперь, когда вы это знаете, если бы у вас был выбор, думаем, что вы бы +предпочли привыкнуть к царапающему звуку, не так ли? === Сколько требуется разработчиков FreeBSD, чтобы сменить электрическую лампочку? @@ -2740,6 +2797,7 @@ _И на меня снизошло озарение :-)_ _{tabthorpe}_ говорит: "Нет, _настоящие_ хакеры FreeBSD не боятся темноты!" +[[dev-null]] === Куда направляются данные, записываемые в /dev/null? Они отправляются в специальную сточную трубу для данных в CPU, где преобразуются в тепло, выдуваемое через охлаждающие вентиляторы. Вот почему охлаждение ЦП становится все более важным; так как люди используют все более быстрые процессоры, они все менее заботятся о данных, все большее их количество оканчивает свой путь в [.filename]#/dev/null#, перегревая ЦП. Если вы удалите [.filename]#/dev/null# (что соответственно отключит трубу данных в ЦП), то ваш процессор может охладиться, но система начнет переполняться излишними данными и начнет работать с ошибками. Если у вас быстрое сетевое подключение, вы можете охладить CPU, читая данные из [.filename]#/dev/random# и посылая их куда-нибудь; однако вы рискуете перегреть ваше сетевое соединение и [.filename]#/# или разозлить вашего провайдера, так как большинство данных преобразуется в тепло на его оборудовании, но, как правило, у него хорошее охлаждение, так что если вы не перестараетесь, все должно быть в порядке. @@ -2752,40 +2810,46 @@ _Пол Робинсон (Paul Robinson) добавляет:_ Как бывший администратор крупного провайдера, который имел много проблем при попытке поддерживать постоянную температуру в серверной комнате, я выступаю против того, чтобы люди посылали ненужные им данные в сеть. Волшебников, которые выполняют коммутацию пакетов и маршрутизацию, это также затрудняет. +[[punk-my-friend]] +=== Мой коллега проводит слишком много времени за компьютером. +Как я могу отвадить его от этого? + +Установите пакет package:games/sl[] и дождитесь момента, когда коллега ошибочно +введёт `sl` вместо `ls`. + == Сложные темы +[[learn-advanced]] === Как можно узнать больше о внутреннем устройстве FreeBSD? -Список относящихся к делу книг можно найти в разделе Руководства extref:{handbook}bibliography/[ Библиография по внутреннему устройству операционной системы, bibliography-osinternals]. +Обратитесь к extref:{arch-handbook}[Руководству по архитектуре FreeBSD]. Кроме того, большинство общих знаний о UNIX(R) непосредственно применимо к FreeBSD. -=== Как можно оказать помощь проекту FreeBSD? +[[how-to-contribute]] +=== Как внести свой вклад в проект FreeBSD? Что можно сделать в качестве помощи? -Пожалуйста, обратитесь к соответствующей extref:{contributing}[статье], в которой вы получите советы относительно того, как это сделать. Ваша помощь более чем приветствуется! +Мы принимаем помощь в любой форме: документации, кода и даже +художественной графики. Обратитесь к соответствующей статье +extref:{contributing}[Участие в проекте FreeBSD], в которой вы найдёте советы +относительно того, как это сделать.</para> +И спасибо вам за то, что вы об этом подумали! + +[[define-snap-release]] === Что такое снапшоты и релизы? -В http://svnweb.FreeBSD.org/base/[Хранилище Subversion] сейчас находятся {rel-numbranch} активно/полуактивно развивающихся ветки FreeBSD. (Более ранние ветки изменяются очень редко, именно поэтому в разработке только {rel-numbranch} активные ветки): +В http://cgit.FreeBSD.org/src/[хранилище Git] сейчас находятся {rel-numbranch} активно/полуактивно развивающихся ветки FreeBSD. +(Более ранние ветки изменяются очень редко, именно поэтому в разработке только {rel-numbranch} активные ветки): -* {rel3-releng}, также известная как {rel3-stable} * {rel2-releng}, также известная как {rel2-stable} * {rel-releng}, также известная как {rel-stable} * {rel-head-releng}, также известная как _-CURRENT_ и {rel-head} -`HEAD` - это не настоящий тэг ветки. Это символьная константа для обозначения текущего, не ветвящегося, находящегося в разработке дерева, то есть _-CURRENT_. - -На данный момент _-CURRENT_ является находящимся в разработке деревом {rel-head-relx}; ветка {rel-stable}, {rel-releng}, отделилась от _-CURRENT_ {rel-relengdate} года, а ветка {rel2-stable}, {rel2-releng}, отделилась от _-CURRENT_ {rel2-relengdate}. - -=== Можно ли работать с -CURRENT при ограниченном доступе в Internet? - -Да, это можно делать _без_ скачивания полного дерева исходных текстов с помощью extref:{handbook}[системы CTM]. - -=== Я написал некоторое добавление к ядру, кому его послать? - -Обратитесь к статье о том, как extref:{contributing}[помочь проекту FreeBSD], чтобы выяснить, как это сделать. - -И спасибо Вам за Ваши усилия! +На данный момент _-CURRENT_ является находящимся в разработке деревом +{rel-head-relx}; ветка {rel-stable}, {rel-releng}, отделилась от _-CURRENT_ +{rel-relengdate}, а ветка {rel2-stable}, {rel2-releng}, отделилась от +_-CURRENT_ {rel2-relengdate}. === Что делать при аварийном останове системы? @@ -2808,27 +2872,30 @@ trap number = 12 panic: page fault .... -Этого сообщения не достаточно. Здесь важно значение указателя инструкций, но оно зависит от конфигурации, поскольку значение меняется для каждого конкретного файла ядра. Если это ядро [.filename]#GENERIC# из одного из снэпшотов, то кто-то ещё может отследить функцию, вызвавшую ошибку, но в случае со специально сконфигурированным ядром только вы можете сказать нам, где случилась ошибка. +Этого сообщения не достаточно. +Хотя значение указателя инструкций важно, но оно зависит от конфигурации, поскольку значение меняется для каждого конкретного файла ядра. +Если это ядро [.filename]#GENERIC# из одного из снэпшотов, то кто-то ещё может отследить функцию, вызвавшую ошибку, но в случае со специально сконфигурированным ядром только вы можете сказать нам, где случилась ошибка. Чтобы продолжить: [.procedure] ==== -. Запишите значение указателя инструкций. Заметьте, что часть `0x8:` в этом случае не важна: нам нужна часть `0xf0xxxxxx`. +. Запишите значение указателя инструкций. +Заметьте, что часть `0x8:` в этом случае не важна: нам нужна часть `0xf0xxxxxx`. . Когда система перезагрузится, сделайте следующее: + [source,shell] .... % nm -n kernel.that.caused.the.panic | grep f0xxxxxx .... -+ ++ где `f0xxxxxx` - это значение указателя инструкций. Однако неприятность заключается в том, что вы не получите точного соответствия, так как в таблице имен ядра для точек входа в функции даны адреса на начало функций, а указатель инструкций будет указывать куда-то внутрь её тела. Если вы не получили точного соответствия, опустите последнюю цифру в значении указателя инструкций и попробуйте снова: + [source,shell] .... % nm -n kernel.that.caused.the.panic | grep f0xxxxx .... -+ ++ Если и это не привело ни к каким результатам, отрежьте следующую цифру. Повторяйте, пока не получите хоть что-то. Результатом будет список функций, которые, возможно, привели к аварийному останову. Этот механизм обнаружения ошибочного места довольно неточен, но это всё же лучше, чем ничего. ==== @@ -2874,9 +2941,11 @@ makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols Если не указать `KERNCONF`, то будет собрано и установлено ядро [.filename]#GENERIC#. ==== -В процессе выполнения команды man:make[1] будут построены два ядра, [.filename]#/usr/obj/usr/src/sys/MYKERNEL/kernel# и [.filename]#/usr/obj/usr/src/sys/MYKERNEL/kernel.debug#. [.filename]#kernel# будет установлен как [.filename]#/boot/kernel/kernel#, тогда как [.filename]#kernel.debug# может быть использован в качестве источника отладочных символов для man:kgdb[1]. +В процессе выполнения команды man:make[1] будут построены два ядра, [.filename]#/usr/obj/usr/src/sys/MYKERNEL/kernel# и [.filename]#/usr/obj/usr/src/sys/MYKERNEL/kernel.debug#. +[.filename]#kernel# будет установлен как [.filename]#/boot/kernel/kernel#, тогда как [.filename]#kernel.debug# может быть использован в качестве источника отладочной информации для man:kgdb[1]. -Чтобы получать аварийный дамп, отредактируйте файл [.filename]#/etc/rc.conf# так, чтобы устройство `dumpdev` указывало на раздел подкачки или имело значение `AUTO`. В этом случае скрипты man:rc[8] будут вызывать команду man:dumpon[8] для создания аварийных дампов. Эту команду можно также запускать вручную. После аварийной остановки аварийный дамп может быть получен с помощью программы man:savecore[8] если значение переменной `dumpdev` было установлено в [.filename]#/etc/rc.conf#, скрипты man:rc[8] запустят man:savecore[8] автоматически и поместят аварийный дамп в каталог [.filename]#/var/crash#. +Чтобы получать аварийный дамп, отредактируйте файл [.filename]#/etc/rc.conf# так, чтобы устройство `dumpdev` указывало на раздел подкачки или имело значение `AUTO`. В этом случае скрипты man:rc[8] будут вызывать команду man:dumpon[8] для создания аварийных дампов. Эту команду можно также запускать вручную. +После аварийной остановки аварийный дамп может быть получен с помощью программы man:savecore[8]; если значение переменной `dumpdev` было задано в [.filename]#/etc/rc.conf#, то скрипты man:rc[8] запустят man:savecore[8] автоматически и поместят аварийный дамп в каталог [.filename]#/var/crash#. [NOTE] ==== @@ -2896,7 +2965,7 @@ makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols [TIP] ==== -Если есть второй компьютер, то можно настроить man:kgdb[1] для удалённой отладки, включая точки останова и пошаговый проход по коду ядра. +Если есть второй компьютер, то можно настроить man:kgdb[1] на режим удалённой отладки, включая определение точек останова и пошаговый проход по коду ядра. ==== [NOTE] @@ -2904,12 +2973,14 @@ makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols Если включена поддержка `DDB` и ядро переходит в режим отладки, можно намеренно вызвать аварийный останов и создание аварийного дампа, набрав `panic` в приглашении командной строки `ddb`. Выполнение фазы аварийного останова может снова остановиться с вызовом отладчика. В этом случае наберите `continue`, и процесс будет завершён созданием аварийного дампа. ==== +[[dlsym-failure]] === Перестала работать функция dlsym() для исполняемых файлов ELF! По умолчанию при работе с форматом ELF символы, определённые в исполняемом файле, не доступны динамическому загрузчику. Поэтому при вызове функции `dlsym()`, которая осуществляет поиск по дескриптору, полученному после вызова `dlopen(NULL, flags)`, желаемый результат достигнут не будет. Чтобы осуществить поиск символов в исполняемом файле процесса с помощью функции `dlsym()`, выполните компоновку исполняемого файла с параметром `--export-dynamic` компоновщика ELF (man:ld[1]). +[[change-kernel-address-space]] === Как я могу увеличить или уменьшить адресное пространство ядра в архитектуре i386? По умолчанию размер адресного пространства ядра для i386 равен 1 Гбайт (2 Гбайт для PAE). Для работы сервера с интенсивной сетевой нагрузкой или при использовании ZFS этого может быть недостаточно. @@ -2923,140 +2994,11 @@ options KVA_PAGES=N Чтобы получить нужное значение для _N_, разделите желаемый размер адресного пространства (в мегабайтах) на четыре (для 2 Гбайт это будет `512`). +[[acknowledgments]] == Наши благодарности -Этот небольшой скромный документ с ответами на часто задаваемые вопросы создавался, переписывался, редактировался, сокращался, растягивался, уродовался, потрошился, пристально разглядывался, полностью перетряхивался, обдумывался, отвергался, перестраивался, критиковался и снова укреплялся в течение последнего десятилетия силами сотен, если не тысяч, людей. Постоянно. - -Мы хотим поблагодарить всех их и приглашаем вас extref:{contributing}[присоединиться], чтобы сделать этот FAQ ещё лучше. - -[bibliography] -[[bibliography]] -== Bibliographie - -[biblio-unleashed] FreeBSD Unleashed. Michael Urban und Brian Tiemann. Sams. Erste Ausgabe. 992 Seiten. Oktober 2001. ISBN 0-67232-206-4. - -[biblio-44sysman] 4.4BSD System Manager's Manual. Computer Systems Research Group, University of California, Berkeley. O'Reilly and Associates. Erste Ausgabe. Juni 1994. 804 Seiten. ISBN 1-56592-080-5. - -[biblio-44userman] 4.4BSD User's Reference Manual. Computer Systems Research Group, University of California, Berkeley. O'Reilly and Associates. Erste Ausgabe. Juni 1994. 905 Seiten. ISBN 1-56592-075-9. - -[biblio-44suppman] 4.4BSD User's Supplementary Documents. Computer Systems Research Group, University of California, Berkeley. O'Reilly and Associates. Erste Ausgabe. Juni 1994. 712 Seiten. ISBN 1-56592-076-7. - -[biblio-44progman] 4.4BSD Programmer's Reference Manual. Computer Systems Research Group, University of California, Berkeley. O'Reilly and Associates. Erste Ausgabe. Juni 1994. 866 Seiten. ISBN 1-56592-078-3. - -[biblio-44progsupp] 4.4BSD Programmer's Supplementary Documents. Computer Systems Research Group, University of California, Berkeley. O'Reilly and Associates. Erste Ausgabe. Juni 1994. 596 Seiten. ISBN 1-56592-079-1. - -[biblio-44kernel] The Design and Implementation of the 4.4BSD Operating System. M. K. McKusick, Kirk Marshall, Keith Bostic, Michael J Karels und John Quarterman. Addison-Wesley. Reading MA . 1996. ISBN 0-201-54979-4. - -[biblio-freebsdkernel] The Design and Implementation of the FreeBSD Operating System. M. K. McKusick und George V. Neville-Neil. Addison-Wesley. Boston MA . 2004. ISBN 0-201-70245-2. - -[biblio-nemeth3rd] Unix System Administration Handbook. Evi Nemeth, Garth Snyder, Scott Seebass, Trent R. Hein und John Quarterman. Prentice-Hall. Dritte Ausgabe. 2000. ISBN 0-13-020601-6. - -[lehey3rd] The Complete FreeBSD. Greg Lehey. Walnut Creek. Dritte Ausgabe. Juni 1999. 773 Seiten. ISBN 1-57176-246-9. - -[McKusick et al, 1994] Berkeley Software Architecture Manual, 4.4BSD Edition. M. K. McKusick, M. J. Karels, S. J. Leffler, W. N. Joy und R. S. Faber. 5:1-42. - -[biblio-ja-fbsdpc98] FreeBSD for PC 98'ers (in Japanisch). SHUWA System Co, LTD.. ISBN 4-87966-468-5 C3055 P2900E. - -[biblio-ja-fbsd] FreeBSD (in Japanisch). CUTT. ISBN 4-906391-22-2. - -[biblio-ja-compintro] Complete Introduction to FreeBSD (in Japanisch). Shoeisha Co., Ltd. ISBN 4-88135-473-6 P3600E. - -[biblio-ja-unixstarterkit] Personal UNIX Starter Kit FreeBSD (in Japanisch). ASCII. ISBN 4-7561-1733-3 P3000E. - -[biblio-ja-fbsdhb] FreeBSD Handbook (Japanische Übersetzung). ASCII. ISBN 4-7561-1580-2 P3800E. - -[biblio-ge-fbsdmitmeth] FreeBSD mit Methode (in Deutsch). Computer und Literature Verlag/Vertrieb Hanser. 1998. ISBN 3-932311-31-0. - -[biblio-ja-fbsdinstandutil] FreeBSD install and Utilization Manual (in Japanisch). Mainichi Communications Inc.. - -[biblio-indo-intserv] Building Internet Server with FreeBSD (in Indonesisch). Elex Media Komputindo. Onno W Purbo, Dodi Maryanto, Syahrial Hubbany und Widjil Widodo. - -[biblio-fbsdcorpnetguide] The FreeBSD Corporate Networker's Guide. Addison-Wesley. - -[biblio-unixnutshell] UNIX in a Nutshell. O'Reilly & Associates, Inc.. 1990. ISBN 093717520X. - -[biblio-cantfindadmin] What You Need To Know When You Can't Find Your Unix System Administrator. O'Reilly & Associates, Inc.. 1995. Linda Mui. ISBN 1-56592-104-6. - -[biblio-ja-fbsdusrrefman] FreeBSD User's Reference Manual (Japanische Übersetzung). Mainichi Communications Inc.. Jpman Project, Japan FreeBSD Users Group. 1998. ISBN 4-8399-0088-4 P3800E. - -[biblio-newcomeunix] http://unixhelp.ed.ac.uk/[Online Guide for newcomers to the UNIX environment]“. http://www.ed.ac.uk/[Edinburgh University]. - -[biblio-dnsandbind] DNS and BIND. O'Reilly & Associates, Inc. ISBN 1-56592-512-2. Paul Albitz Albitz und Cricket Liu. 1998. Dritte Ausgabe. - -[biblio-sendmail] Sendmail. O'Reilly & Associates, Inc. 1997. Zweite Auflage. Brian Costales. ISBN 1-56592-222-0. - -[biblio-esssysadmin] Essential System Administration. Æleen Frisch. Zweite Auflage. O'Reilly & Associates. 1995. ISBN 1-56592-127-5. - -[biblio-tcpipnetworkadministration] TCP/IP Network Administration. Craig Hunt. Zweite Auflage. O'Reilly & Associates, Inc. 1997. ISBN 1-56592-322-7. - -[biblio-managingnfsandnis] Managing NFS and NIS. Hal Stern. O'Reilly & Associates, Inc. 1991. ISBN 0-937175-75-7. - -[biblio-jpmanprojectjfug] http://www.pc.mycom.co.jp/FreeBSD/sam.html[FreeBSD System Administration's Manual]. http://www.jp.freebsd.org/[Jpman Project, Japan FreeBSD Users Group]. http://www.pc.mycom.co.jp/[Mainichi Communications Inc.]. 1998. ISBN 4-8399-0109-0 P3300E. - -[biblio-xwinsystoolkit] X Window System Toolkit. Digital Press. Paul Asente. ISBN 1-55558-051-3. - -[biblio-carefman] C: A Reference Manual. Prentice Hall. 1995. Vierte Auflage. Samuel P. Harbison und Guy L. Jr. Steele. ISBN 0-13-326224-3. - -[biblio-thecproglang] The C Programming Language. Prentice Hall. 1998. Brian Kernighan und Dennis Ritchie. ISBN 0-13-110362-9. - -[biblio-portingunixsoft] Porting UNIX Software. Greg Lehey. O'Reilly & Associates, Inc.. 1995. ISBN 1-56592-126-7. - -[biblio-thestandardclibrary] The Standard C Library. Prentice Hall. 1992. P. J. Plauger. ISBN 0-13-131509-9. - -[biblio-advprogintheunixenv] Advanced Programming in the UNIX Environment. Addison-Wesley. 1992. W. Richard Stevens. ISBN 0-201-56317-7. - -[biblio-unixnetprog] UNIX Network Programming. W. Richard Stevens. Prentice Hall. 1998. Zweite Auflage. ISBN 0-13-490012-X. - -[biblio-writeserialdriverforunix] Writing Serial Drivers for UNIX. Bill Wells. Dezember 1994. Dr. Dobb's Journal. pp68-71, pp97-99. - -[biblio-unixsysarch] UNIX System Architecture. Prentice-Hall, Inc. 1990. Prabhat K. Andleigh. ISBN 0-13-949843-5. - -[biblio-portingunixtothe386] Porting UNIX to the 386. William Jolitz. Dr. Dobb's Journal. Januar 1991 - Juli 1992. - -[biblio-tcpipillv1theprotocols] TCP/IP Illustrated, Volume 1: The Protocols. W. Richard Stevens. Addison-Wesley. 1996. ISBN 0-201-63346-9. - -[biblio-unixsysformodrnarch] Unix Systems for Modern Architectures. Addison-Wesley. Curt Schimmel. 1994. ISBN 0-201-63338-8. - -[biblio-tcpipillvol3] TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols. Addison-Wesley. 1996. W. Richard Stevens. ISBN 0-201-63495-3. - -[biblio-unixinternthenewfrontiers] UNIX Internals -- The New Frontiers. Uresh Vahalia. Prentice Hall. 1996. ISBN 0-13-101908-2. - -[biblio-tcpipillvol2theimplementation] TCP/IP Illustrated, Volume 2: The Implementation. Gary R. Wright und W. Richard Stevens. 1995. Addison-Wesley. ISBN 0-201-63354-X. - -[biblio-firewallsandinternetsecurity] Firewalls and Internet Security: Repelling the Wily Hacker. William R. CHeswick und Steven M. Bellovin. Addison-Wesley. 1995. ISBN 0-201-63357-4. - -[biblio-practicalunixsecurity] Practical UNIX Security. Simson Garfinkel und Gene Spafford. 1996. Zweite Auflage. O'Reilly & Associates, Inc. ISBN 1-56592-148-8. - -[biblio-pgpprettygoodprivacy] PGP Pretty Good Privacy. Simson Garfinkel. O'Reilly & Associates, Inc. 1995. ISBN 1-56592-098-8. - -[biblio-pentiumprocarch] Pentium Processor System Architecture. Don Anderson und Tom Shanley. Addison-Wesley. 1995. Zweite Auflage. ISBN 0-201-40992-5. - -[biblio-progguidetothesvgacards] Programmer's Guide to the EGA, VGA, and Super VGA Cards. Richard F. Ferraro. Dritte Ausgabe. Addison-Wesley. 1995. ISBN 0-201-62490-7. - -[biblio-80486] 80486 System Architecture. Tom Shanley. Addison-Wesley. 1995. Dritte Ausgabe. ISBN 0-201-40994-1. - -[biblio-isasysarch] ISA System Architecture. Tom Shanley. Addison-Wesley. Dritte Ausgabe. 1995. ISBN 0-201-40996-8. - -[biblio-pcisysarch] PCI System Architecture. Tom Shanley. Addison-Wesley. 1995. Dritte Ausgabe. ISBN 0-201-40993-3. - -[biblio-theundocumentedpc] The Undocumented PC. Frank Van Gilluwe. Addison-Wesley. 1994. ISBN 0-201-62277-7. - -[biblio-bellsystemtechnicaljournal] Bell System Technical Journal, Unix Time-Sharing System. American Telephone & Telegraph Company. Juli - August 1978. Vol 57, No 6, Part 2. ISSN0005-8580. - -[biblio-commentaryonunix] Lion's Commentary on UNIX. John Lion. ITP Media Group. 1996. Sechste Ausgabe. ISBN 1573980137. - -[biblio-newhackerdict] The New Hacker's Dictionary. Eric S. Raymond. MIT Press. 1996. Dritte Ausgabe. ISBN 0-262-68092-0. - -[biblio-aqtrcentofunix] A quarter century of UNIX. Peter H. Salus. Addison-Wesley. 1994. ISBN 0-201-54777-5. - -[biblio-unixhatershandbook] The UNIX-HATERS Handbook. Steven Strassman, Daniel Weise und Simon Garfinkel. IDG Books Worldwide, Inc. 1994. ISBN 1-56884-203-1. - -[biblio-lifewithunix] Life with UNIX - special edition. Don Libes und Sandy Ressler. Prentice-Hall. 1989. ISBN 0-13-536657-7. - -[biblio-bsdfamilytree] https://svnweb.freebsd.org/base/head/shared/misc/bsd-family-tree?view=co[The BSD Family Tree]. 1997. - -[absolutebsd] Absolute BSD. Michael Lucas. No Starch Press. Juni 2002. ISBN 1-886411-74-3. - -[biblio-ccppusersjournal] The C/C++ Users Journal. R&D Publications Inc.. ISSN 1075-2838. +Этот небольшой скромный документ с ответами на часто задаваемые вопросы создавался, переписывался, редактировался, сокращался, растягивался, уродовался, потрошился, пристально разглядывался, полностью перетряхивался, обдумывался, отвергался, перестраивался, критиковался и снова укреплялся в течение последнего десятилетия силами сотен, если не тысяч, людей. +Постоянно. -[biblio-sysadminthejournalforunixsysadmins] Sys Admin - The Journal for UNIX System Administrators. Miller Freeman, Inc. ISSN 1061-2688. +Мы хотим поблагодарить каждого из них и приглашаем вас +extref:{contributing}[присоединиться к ним], чтобы сделать этот FAQ ещё лучше. diff --git a/documentation/content/ru/books/handbook/_index.adoc b/documentation/content/ru/books/handbook/_index.adoc index 684389ee27..7fba62817b 100644 --- a/documentation/content/ru/books/handbook/_index.adoc +++ b/documentation/content/ru/books/handbook/_index.adoc @@ -2,12 +2,17 @@ title: Руководство FreeBSD authors: - author: Проект Документации FreeBSD -copyright: 1995-2020 The FreeBSD Documentation Project -trademarks: ["freebsd", "ibm", "ieee", "redhat", "3com", "adobe", "apple", "intel", "linux", "microsoft", "opengroup", "sun", "realnetworks", "oracle", "3ware", "arm", "adaptec", "heidelberger", "intuit", "lsilogic", "themathworks", "thomson", "vmware", "wolframresearch", "xiph", "xfree86", "general"] +copyright: 1995-2025 The FreeBSD Documentation Project +description: A constantly evolving, comprehensive resource for FreeBSD users +trademarks: ["freebsd", "ibm", "ieee", "redhat", "3com", "adobe", "apple", "intel", "linux", "microsoft", "opengroup", "sun", "realnetworks", "oracle", "3ware", "arm", "adaptec", "google", "heidelberger", "intuit", "lsilogic", "themathworks", "thomson", "vmware", "wolframresearch", "xiph", "xfree86", "general"] +tags: ["FreeBSD Handbook", "Handbook"] next: books/handbook/preface +add_single_page_link: true showBookMenu: true weight: 0 -path: "/books/handbook/" +params: + path: "/books/handbook/" +bookOrder: 1 --- = FreeBSD Handbook @@ -31,19 +36,19 @@ include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] +:chapters-path: content/{{% lang %}}/books/handbook/ endif::[] ifdef::backend-pdf,backend-epub3[] +:chapters-path: include::../../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] +:chapters-path: include::../../../../../shared/asciidoctor.adoc[] endif::[] -[.abstract-title] -Аннотация - -Добро пожаловать в FreeBSD! Это Руководство охватывает процесс установки и ежедневного использования _FreeBSD {rel112-current}-RELEASE_ и _FreeBSD {rel120-current}-RELEASE_. Оно находится _в процессе разработки_ и являет собой результат работы множества людей. Многие из разделов до сих пор не существуют, а некоторые из существующих требуют обновления. Если вы заинтересованы в помощи этому проекту, отправьте письмо в {freebsd-doc}. Обновленная версия этого документа постоянно доступна с http://www.FreeBSD.org/ru/index.html[Основного Web сервера FreeBSD]. Он также может быть загружен из интернет в одном из наиболее распространенных форматов с link:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/[FTP сервера Проекта FreeBSD] или с одного из многочисленных <<mirrors-ftp,зеркал>>. Если вы предпочитаете иметь напечатанный (английский) вариант Руководства, то можете приобрести его на http://www.freebsdmall.com/[FreeBSD Mall]. Вы также можете воспользоваться link:https://www.FreeBSD.org/ru/search/[Поиском в Руководстве FreeBSD]. +include::{chapters-path}introduction.adoc[] ''' diff --git a/documentation/content/ru/books/handbook/advanced-networking/_index.adoc b/documentation/content/ru/books/handbook/advanced-networking/_index.adoc index aa794aaac5..4687e8358c 100644 --- a/documentation/content/ru/books/handbook/advanced-networking/_index.adoc +++ b/documentation/content/ru/books/handbook/advanced-networking/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/firewalls next: books/handbook/partv showBookMenu: true weight: 32 -path: "/books/handbook/" +params: + path: "/books/handbook/advanced-networking/" --- [[advanced-networking]] diff --git a/documentation/content/ru/books/handbook/audit/_index.adoc b/documentation/content/ru/books/handbook/audit/_index.adoc index 5c8d4a143c..05808c0bd7 100644 --- a/documentation/content/ru/books/handbook/audit/_index.adoc +++ b/documentation/content/ru/books/handbook/audit/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/mac next: books/handbook/disks showBookMenu: true weight: 20 -path: "/books/handbook/" +params: + path: "/books/handbook/audit/" --- [[audit]] diff --git a/documentation/content/ru/books/handbook/basics/_index.adoc b/documentation/content/ru/books/handbook/basics/_index.adoc index df487b3c91..aae7ea47cb 100644 --- a/documentation/content/ru/books/handbook/basics/_index.adoc +++ b/documentation/content/ru/books/handbook/basics/_index.adoc @@ -1,22 +1,25 @@ --- -title: Глава 4. Основы UNIX -part: Часть I. В начале +title: Глава 3. Основы FreeBSD +part: Часть I. Начало работы prev: books/handbook/bsdinstall next: books/handbook/ports +description: Основные команды и функциональность операционной системы FreeBSD +tags: ["основы", "виртуальные консоли", "пользователи", "управление", "полномочия", "структура каталогов", "организация диска", "монтирование", "процессы", "даемоны", "оболочка", "редактор", "страницы справочника", "устройства"] showBookMenu: true -weight: 6 -path: "/books/handbook/" +weight: 5 +params: + path: "/books/handbook/basics/" --- [[basics]] -= Основы UNIX += Основы FreeBSD :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 4 +:sectnumoffset: 3 :partnums: :source-highlighter: rouge :experimental: @@ -46,177 +49,166 @@ toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] +// +// The FreeBSD Russian Documentation Project +// +// Original EN revision (23.09.2024): c6f45f005306d23f396e1ec9ddff165312aad867 +// + [[basics-synopsis]] == Краткий обзор -В этой главе мы попытаемcя раскрыть основные принципы и команды операционной системы FreeBSD. Большая часть нижеизложенного материала в более или менее равной степени применима к любой UNIX(R)-подобной операционной системе. Если вы уверены, что не найдете здесь ничего нового для себя, можете смело пропустить эту главу. Если же вы новичок, мы настоятельно рекомендуем внимательно прочесть это главу. +Эта глава посвящена основным командам и функциональности операционной системы FreeBSD. +Большая часть нижеизложенного материала применима к любой UNIX(R)-подобной операционной системе. +Новые пользователи FreeBSD призываются к внимательному чтению всей главы. -Прочитав эту главу, вы узнаете: +Прочитав эту главу, вы будете знать: -* Как использовать "виртуальные консоли" FreeBSD. -* Как работают права доступа на файлы в UNIX(R) и как следует интерпретировать флаги файлов в ОС FreeBSD. -* Иерархия каталогов FreeBSD. -* Организация дисков FreeBSD. +* Как использовать и настраивать виртуальные консоли. +* Как создавать пользователей и группы пользователей во FreeBSD и управлять ими. +* Как работают права доступа на файлы в UNIX(R) и файловые флаги во FreeBSD. +* Иерархию каталогов FreeBSD. +* Организацию дисков FreeBSD. * Как монтировать и размонтировать файловые системы. * Что такое процессы, даемоны и сигналы. -* Что такое командная оболочка (или интерпретатор команд) и как настроить личное рабочее окружение. +* Что такое командный процессор и как изменить используемые по умолчанию параметры рабочего окружения. * Как пользоваться стандартными текстовыми редакторами. * Что такое устройства и файлы устройств. -* Какие бинарные форматы используются в FreeBSD. * Как пользоваться справочным руководством для получения дополнительной информации. [[consoles]] == Виртуальные консоли и терминалы -FreeBSD можно использовать разными способами. Один из них - набор команд в текстовом терминале. Используйте этот способ, и вся гибкость и мощь систем UNIX(R) будет в ваших руках. Этот раздел рассказывает о "терминалах", "консолях" и их использовании в FreeBSD. - -[[consoles-intro]] -=== Консоль - -Если во время установки вы не настроили FreeBSD для автоматического запуска графической среды при загрузке, система запросит ввод логина сразу после завершения стартовых скриптов. Вы увидите примерно следующее: - -[source,shell] -.... -Additional ABI support:. -Local package initialization:. -Additional TCP options:. - -Fri Sep 20 13:01:06 EEST 2002 - -FreeBSD/i386 (pc3.example.org) (ttyv0) - -login: -.... - -В вашей системе сообщение может быть другим, но очень похожим на это. В данный момент нас интересуют последние две строки. Вторая с конца строка: - -[.programlisting] -.... -FreeBSD/i386 (pc3.example.org) (ttyv0) -.... - -В этой строке содержится немного информации о только что загруженной системе. Это консоль "FreeBSD", работающей на Intel или совместимом процессоре x86 архитектуры. Имя этого компьютера (у каждого компьютера UNIX(R) есть имя) `pc3.example.org`, и в данный момент вы видите системную консоль - терминал [.filename]#ttyv0#. - -Наконец, последняя строка всегда: +Если только FreeBSD не была настроена на автоматический запуск графической среды при загрузке, система будет запускаться в режиме запроса ввода имени учётной записи в командной строке, как в этом примере: [.programlisting] .... login: .... -Здесь вам предлагается ввести "имя пользователя", чтобы войти в FreeBSD. Следующий раздел описывает способ, которым вы можете сделать это. +Первая строка содержит определённую информацию о системе. +`amd64` указывает на то, что FreeBSD работает в 64-разрядной системе x86. +`pc3.example.org` является именем хоста, а `ttyv0` указывает на то, что это "системная консоль". +Вторая строка является приглашением к входу в систему. -[[consoles-login]] -=== Вход в FreeBSD +Поскольку FreeBSD является многопользовательской системой, она должна каким-то образом отличать различных пользователей. +Это достигается за счёт того, что каждый пользователь перед получением доступа к программам системы должен в эту систему войти. +Каждый пользователь имеет уникальное "имя пользователя" и персональный "пароль". -FreeBSD это многопользовательская, многопроцессорная система. Это формальное описание системы, которая может быть использована множеством разных людей, одновременно запускающих большое количество программ на одном компьютере. +Для входа в системную консоль наберите имя пользователя, которое было настроено во время установки системы, описанной в разделе <<bsdinstall-addusers>>, и нажмите kbd:[Enter]. +Затем введите пароль, соответствующий этому имени пользователя и нажмите kbd:[Enter]. +Пароль _не отображается_ по соображениям безопасности. -Любой многопользовательской системе нужен способ отличать каждого "пользователя" от остальных. В FreeBSD (и всех UNIX(R)-подобных операционных системах), эта задача решается путем "входа" пользователя в систему перед запуском каких-либо программ. У каждого пользователя есть уникальное имя ("имя пользователя") и персональный, секретный ключ ("пароль"). Перед тем, как разрешить пользователю выполнять какие-либо программы, FreeBSD запрашивает их оба. - -Сразу после загрузки FreeBSD и завершения работы стартовых скриптов, система предложит вам ввести имя пользователя: - -[source,shell] -.... -login: -.... - -В этом примере, предположим что ваше имя пользователя `john`. Введите `john` в этом приглашении и нажмите kbd:[Enter]. Далее должно появиться приглашение ввести "пароль": - -[source,shell] -.... -login: john -Password: -.... - -Введите соответствующий имени `john` пароль и нажмите kbd:[Enter]. Пароль _не виден_! Не беспокойтесь об этом. Это сделано по соображениям безопасности. - -Если вы ввели пароль правильно, то сразу же войдете в FreeBSD и можете начать выполнять команды. - -Вы увидите сообщение дня (MOTD, или message of the day) за которым последует командная строка (с символом `#`, `$`, или `%`). Это означает, что вы успешно вошли в FreeBSD. +После ввода корректного пароля будет выдано сообщение дня (MOTD, Message Of The Day), за которым последует приглашение командной строки. +В зависимости от командного процессора, который был выбран при создании пользователя, таким приглашением будет символ `+#+`, `$` или `%`. +Это приглашение указывает на то, что теперь пользователь вошёл в системную консоль FreeBSD и может попытаться использовать имеющиеся команды. [[consoles-virtual]] -=== Множественные консоли +=== Виртуальные консоли -Запуск команд UNIX(R) из консоли - это конечно хорошо, но FreeBSD может выполнять множество программ одновременно, поэтому наличие одной консоли может быть недостатком. В таком случае очень полезны "виртуальные консоли". +Хотя системная консоль может использоваться для взаимодействия с системой, пользователь, работающий в режиме командной строки за клавиатурой системы FreeBSD, как правило, будет входить в систему через виртуальную консоль. +Это так, потому что по умолчанию выдача системных сообщений настроена на их отображение на системной консоли. +Эти сообщения будут выдаваться поверх команд или файлов, с коорым работает пользователь, что мешает сосредоточиться на текущей работе. -FreeBSD может быть настроена для работы с несколькими виртуальными консолями. Вы можете переключаться с одной виртуальной консоли на другую, нажимая соответствующие сочетания клавиш на клавиатуре. У каждой консоли есть свой канал вывода и FreeBSD заботится о том, чтобы правильно перенаправить ввод с клавиатуры и вывод на монитор, как только вы переключитесь с одной консоли на другую. +По умолчанию FreeBSD настроена так, что она предоставляет несколько виртуальных консолей для ввода команд. +Каждая виртуальная консоль обладает собственным приглашением к входу в систему и командным процессором, а переключение между виртуальными консолями выполняется легко. +В итоге это равнозначно предоставлению нескольких одновременно открытых окон в графической среде, но в режиме командной строки. -Для переключения между консолями зарезервированы специальные комбинации клавиш. Вы можете использовать сочетания kbd:[Alt+F1], kbd:[Alt+F2], до kbd:[Alt+F8] чтобы переключаться между различными виртуальными консолями в FreeBSD. +Для переключения между виртуальными консолями во FreeBSD зарезервированы комбинации клавиш от kbd:[Alt+F1] до kbd:[Alt+F8]. +Используйте kbd:[Alt+F1] для переключения на системную консоль (`ttyv0`), kbd:[Alt+F2] для доступа к первой виртуальной консоли (`ttyv1`), kbd:[Alt+F3] для доступа ко второй виртуальной консоли (`ttyv2`) и так далее. +При использовании Xorg в качестве графической консоли для переключения на текстовую виртуальную консоль используется комбинация kbd:[Ctrl+Alt+F1]. -При переключении от одной консоли к другой, FreeBSD заботится о сохранении и восстановлении вывода на экран. Результатом является "иллюзия" наличия множества "виртуальных" экранов и клавиатур, которые могут быть использованы для ввода и запуска команд FreeBSD. Программы, которые вы запускаете на одной виртуальной консоли, не прекращают выполнение, когда консоль становится невидимой. Они продолжают выполняться, когда вы переключаетесь на другую виртуальную консоль. +При переключении от одной консоли к другой FreeBSD берёт на себя управление изображением на экране. +В результате создаётся видимость наличия множества виртуальных экранов и клавиатур, которые могут быть использованы при наборе команд для их запуска во FreeBSD. +Программы, запущенные на одной из виртуальных консолей, не прекращают своей работы, когда пользователь переключается на другую виртуальную консоль. -[[consoles-ttys]] -=== Файл [.filename]#/etc/ttys# +Обратитесь к man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4] и man:vt[4] для получения дополнительных технических описаний консоли FreeBSD и драйверов её клавиатуры. -В конфигурации по умолчанию FreeBSD запускает восемь виртуальных консолей. Тем не менее, это не ограничение оборудования, и вы можете легко настроить систему для загрузки большего или меньшего числа виртуальных консолей. Число и параметры виртуальных консолей задаются в файле [.filename]#/etc/ttys#. - -Вы можете использовать это файл для настройки виртуальных консолей FreeBSD. Любая не закомментированная строка в этом файле (строка, не начинающаяся с символа `#`), содержит настройки для одного терминала или виртуальной консоли. Версия этого файла по умолчанию, поставляемая с FreeBSD, содержит настройки для девяти виртуальных консолей и включает восемь терминалов. Это строки, начинающиеся с `ttyv`: +Во FreeBSD количество доступных виртуальных консолей настраивается в следующем разделе файла `/etc/ttys`. [.programlisting] .... -# name getty type status comments +# name getty type status comments # -ttyv0 "/usr/libexec/getty Pc" cons25 on secure +ttyv0 "/usr/libexec/getty Pc" xterm on secure # Virtual terminals -ttyv1 "/usr/libexec/getty Pc" cons25 on secure -ttyv2 "/usr/libexec/getty Pc" cons25 on secure -ttyv3 "/usr/libexec/getty Pc" cons25 on secure -ttyv4 "/usr/libexec/getty Pc" cons25 on secure -ttyv5 "/usr/libexec/getty Pc" cons25 on secure -ttyv6 "/usr/libexec/getty Pc" cons25 on secure -ttyv7 "/usr/libexec/getty Pc" cons25 on secure +ttyv1 "/usr/libexec/getty Pc" xterm on secure +ttyv2 "/usr/libexec/getty Pc" xterm on secure +ttyv3 "/usr/libexec/getty Pc" xterm on secure +ttyv4 "/usr/libexec/getty Pc" xterm on secure +ttyv5 "/usr/libexec/getty Pc" xterm on secure +ttyv6 "/usr/libexec/getty Pc" xterm on secure +ttyv7 "/usr/libexec/getty Pc" xterm on secure ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure .... -За детальным описанием каждой колонки этого файла и всех опций, которые можно указать для настройки виртуальных консолей, обращайтесь к man:ttys[5]. +Для отключения какой-либо виртуальной консоли поместите символ комментария (`+#+`) в начале строки, соответствующей этой виртуальной консоли. +К примеру, для уменьшения количества доступных виртуальных консолей с восьми до четырёх поместите `+#+` в начале последних четырёх строк, представляющих виртуальные консоли с `ttyv5` по `ttyv8`. +_Не комментируйте_ строку системной консоли `ttyv0`. +Заметьте, что последняя виртуальная консоль (`ttyv8`) используется для доступа к графическому окружению, если был установлен пакет Xorg, как это описано в главе crossref:x11[x11,X Window System]. ++ +За детальным описанием каждой колонки этого файла и доступных параметров виртуальных консолей обратитесь к man:ttys[5]. [[consoles-singleuser]] -=== Консоль в однопользовательском режиме - -Детальное описание "однопользовательского режима" можно найти в crossref:boot[boot-singleuser,Однопользовательский режим]. Стоит отметить, что при работе FreeBSD в однопользовательском режиме есть только одна консоль. Виртуальных консолей нет. Установки консоли в однопользовательском режиме можно найти в файле [.filename]#/etc/ttys#. Обратите внимание на строку, начинающуюся с `console`: +=== Однопользовательский режим + +В загрузочном меню FreeBSD имеется пункт, который называется "Boot Single User". +При его выборе система загрузится в специальном режиме, который называется "однопользовательским". +Этот режим обычно используется для восстановления работоспособности системы, которая не загружается, или для сброса пароля пользователя `root`, когда он неизвестен. +В однопользовательском режиме недоступны сетевые функции и дополнительные виртуальные консоли. +При всём при этом имеется полный доступ к системе с полномочиями пользователя `root`, и по умолчанию пароль пользователя `root` не требуется. +По этим причинам для загрузки в таком режиме требуется физический доступ к клавиатуре, а решение о том, кто имеет физический доступ к клавиатуре, стоит рассматривать в контексте обеспечения безопасности системы FreeBSD. ++ +Настройки, управляющие однопользовательским режимом, находятся в следующем разделе файла `/etc/ttys`: [.programlisting] .... -# name getty type status comments +# name getty type status comments # -# If console is marked "insecure", then init will ask for the root password -# when going to single-user mode. -console none unknown off secure +# Если консоль помечена как "insecure", то init будет запрашивать пароль +# пользователя root при переходе в однопользовательский режим +console none unknown off secure .... +По умолчанию столбец status установлен в значение `secure`. +Это предполагает, что физический доступ к клавиатуре либо не важен, либо контролируется политикой физической безопасности. +Если изменить этот параметр на `insecure`, то это будет означать, что само по себе окружение не является безопасным, так как любой может получить доступ к клавиатуре. +Когда в этой строке значение меняется на `insecure`, то FreeBSD будет запрашивать пароль пользователя `root` в случае, когда пользователь выберет загрузку в однопользовательском режиме. + [NOTE] ==== -Как сказано в комментариях выше строки `console`, можно отредактировать эту строку и изменить `secure` на `insecure`. Если вы сделаете это, FreeBSD даже при загрузке в однопользовательском режиме будет запрашивать пароль `root`. - -__Будьте осторожны при изменении этого значения на ``insecure``__. Если вы забудете пароль `root`, загрузка в однопользовательский режим сильно усложнится. Это все еще возможно, но несколько более сложно для тех, кто еще не очень освоился с процессом загрузки FreeBSD и вызова программ. +_Будьте осторожны при изменении этого параметра на `insecure`!_ +Если пароль пользователя `root` забыт, то загрузка в однопользовательском режиме всё ещё будет возможна, но может быть затруднена для тех, кто незнаком с процессом загрузки FreeBSD. ==== [[consoles-vidcontrol]] === Изменение видеорежимов консоли -Установленный по умолчанию размер изображения для консоли FreeBSD может быть изменен до значения 1024x768, 1280x1024, или любого другого, который поддерживается вашим монитором и видеокартой. Для того, чтобы задействовать иной видеорежим, вам прежде всего необходимо будет пересобрать ядро вашей системы, добавив в файл конфигурации две дополнительные опции: +Установленный по умолчанию режим видео для консоли FreeBSD может быть изменён до значения 1024x768, 1280x1024 или любого другого, который поддерживается вашим монитором и видеокартой. +Для использования другого видеорежима загрузите модуль `VESA`: -[.programlisting] +[source,shell] .... -options VESA -options SC_PIXEL_MODE +# kldload vesa .... -После пересборки и установки ядра воспользуйтесь утилитой man:vidcontrol[1] для определения видеорежимов, поддерживаемых вашим оборудованием. Чтобы получить перечень видеорежимов, выполните следующую команду: +Для определения того, какие видеорежимы поддерживаются вашим оборудованием, воспользуйтесь man:vidcontrol[1]. +Чтобы получить список поддерживаемых видеорежимов, выполните следующую команду: [source,shell] .... # vidcontrol -i mode .... -Команда отобразит список поддерживаемых видеорежимов. Теперь вы можете выбрать один из них и установить его на консоли при помощи man:vidcontrol[1]: +Выдача этой команды отобразит список видеорежимов, поддерживаемых оборудованием. +Для выбора нового видеорежима укажите его при помощи man:vidcontrol[1], работая как пользователь `root`. [source,shell] .... # vidcontrol MODE_279 .... -Если новый видеорежим вас устраивает, то его можно определить устанавливаемым автоматически во время старта системы, для чего добавьте в [.filename]#/etc/rc.conf# следующую строку: +Если новый видеорежим приемлем, то его можно определить постоянно устанавливаемым при загрузке, добавив его в `/etc/rc.conf`: [.programlisting] .... @@ -224,88 +216,118 @@ allscreens_flags="MODE_279" .... [[users-synopsis]] -== Пользователи и основы управления учетными записями +== Пользователи и основы управления учётными записями -FreeBSD допускает одновременную работу множества пользователей на одном компьютере. В то время, как только один пользователь может сидеть за клавиатурой и перед экраном в один момент времени, любое количество пользователей может войти в систему через сеть. Для использования системы у каждого пользователя должна быть учетная запись. +FreeBSD позволяет одновременное использование компьютера множеством пользователей. +В то время, как в одно и то же время только один пользователь может сидеть перед экраном и использовать клавиатуру, войти в систему по сети может любое количество пользователей. +Для того, чтобы использовать систему, каждый пользователь должен иметь собственную учётную запись. -В этом разделе описаны: +В этом разделе описывается вот что: -* Разные типы учетных записей в системе FreeBSD. -* Как добавлять, удалять и изменять учетные записи пользователей. -* Как устанавливать ограничения на использование ресурсов для учетных записей или групп учетных записей. -* Как использовать группы для упрощения управлением учетными записями. +* Различные виды пользовательских учётных записей в системе FreeBSD. +* Как добавлять, удалять и изменять учётные записи пользователей. +* Как устанавливать ограничения для управления ресурсами, к которым имеют доступ пользователи и группы пользователей. +* Как создавать группы и добавлять пользователей в качестве их членов. [[users-introduction]] -=== Разновидности учетных записей +=== Виды учётных записей -Так как доступ к системе FreeBSD осуществляется через учетные записи, и все процессы запускаются пользователями, то управление пользователями и учетными записями является важным аспектом администрирования. +Так как все доступы к системе FreeBSD осуществляются через учётные записи, и все процессы запускаются пользователями, то управление пользователями и учётными записями является важным вопросом. -Существует три разновидности учетных записей: системные учетные записи, учетные записи пользователей и суперпользователь. +Существуют три основных вида учётных записей: системные учётные записи, пользовательские учётные записи и учётная запись суперпользователя. [[users-system]] -==== Системные учетные записи +==== Системные учётные записи -Системные учетные записи предназначены для запуска сервисов, таких как DNS, почта, веб серверы. Это необходимо по соображениям безопасности; если бы все сервисы работали от суперпользователя, они могли бы действовать без ограничений. +Системные учётные записи используются для запуска таких сервисов, как DNS, электронная почта и веб-серверы. +Причиной этого является безопасность; если бы все сервисы работали с полномочиями суперпользователя, то они могли бы действовать без ограничений. -Примеры системных учетных записей: `daemon`, `operator`, `bind`, `news` и `www`. +Примерами системных учётных записей являются `daemon`, `operator`, `bind`, `news` и `www`. -`nobody` это общепринятая непривилегированная системная учетная запись. Однако, чем больше сервисов используют `nobody`, тем больше файлов и процессов связано с этим пользователем, и следовательно тем больше привилегий появляется у этого пользователя. +`nobody` является обобщённой непривилегированной системной учётной записью. +Несмотря на это, чем больше сервисов используют `nobody`, тем больше файлов и процессов становятся связанными с этим пользователем, и, соответственно, тем болеепривилегированным становится этот пользователь. [[users-user]] -==== Учетные записи пользователей +==== Учётные записи пользователей -Учетные записи пользователей служат для предоставления доступа к системе обычным людям. Каждый человек, имеющий доступ к системе, должен иметь уникальную учетную запись пользователя. Это позволяет администратору выяснять кто что делает и предотвращает сбивание одним пользователем настроек других пользователей. +Учётные записи пользователей назначаются реальным людям и используются для входа в систему и её использования. +Каждый человек, имеющий доступ к системе, должен иметь уникальную пользовательскую учётную запись. +Это позволяет администратору понимать, кто и что делает, а также предотвращать затирание настроек одних пользователей другими пользователями. -Каждый пользователь посредством выбора оболочки, редактора, привязок клавиш и настроек языка может настраивать свою собственную рабочую среду для приспособления системы под свои нужды. +Каждый пользователь может настроить свою собственную рабочую среду, приспособленную к использованию системы, при помощи выбора оболочки, используемой по умолчанию, редактора, привязок комбинаций клавиш и настроек языкового окружения. -С каждой учетной записью в системе FreeBSD связана определенная идентификационная информация: +С каждой пользовательской учётной записью в системе FreeBSD связана определенная информация: Имя пользователя:: -Имя пользователя вводится в приглашение `login:`. Имена пользователей должны быть уникальны. Существует множество правил для создания допустимых имен пользователей, документированных в man:passwd[5]. Рекомендуется составлять имена пользователей из восьми или меньшего количества символов в нижнем регистре, чтобы поддерживать обратную совместимость с приложениями. +Имя пользователя вводится в строке приглашения `login:`. +У каждого пользователя обязательно должно быть уникальное имя пользователя. +Существует определённый набор правил для создания допустимых имен пользователей, документированных в man:passwd[5]. +Для того, чтобы поддерживать обратную совместимость с приложениями, рекомендуется использовать имена пользователей, состоящие из восьми или меньшего количества символов в нижнем регистре. Пароль:: -С каждой учетной записью связан пароль. +У каждой учётной записи имеется связанный с ней пароль. -ID пользователя (User ID, UID):: -Идентификатор пользователя (UID) - это номер, используемый для однозначной идентификации пользователя в системе FreeBSD. Любая команда, принимающая в качестве аргумента имя пользователя, первым делом преобразует его к UID. Рекомендуется выбирать значения UID, не превышающие 65535, так как большие значения могут вызывать проблемы совместимости для некоторых пользовательских программ. +Идентификатор пользователя (UID):: +Идентификатор пользователя (UID) является числом, используемым для однозначной идентификации этого пользователя в системе FreeBSD. +Команды, позволяющие указывать имя пользователя, сначала будут преобразовывать его в UID. +Рекомендуется использовать UID меньше 65535, так как более высокие значения могут вызвать проблемы совместимости с некоторым программным обеспечением. -Идентификатор группы (Group ID, GID):: -Идентификатор группы (GID) - это номер, используемый для однозначной идентификации главной группы, к которой принадлежит пользователь. Группы это механизм для контроля доступа к ресурсам на основе GID пользователя вместо его UID. Это может значительно уменьшить размер некоторых файлов настройки. Кроме того, пользователь может быть включен более чем в одну группу. Рекомендуется использовать значения GID, не превышающие 65535, так как большие значения могут стать проблемой для некоторых программ. +Идентификатор группы (GID):: +Идентификатор группы (GID) является числом, используемым для однозначной идентификации основной группы, которой принадлежит пользователь. +Группы являются механизмом контроля доступа к ресурсам на основе GID пользователя, а не его UID. +Это может значительно уменьшить размер некоторых конфигурационных файлов, а также позволяет пользователям быть членами более чем одной группы. +Рекомендуется использовать значения GID, не превышающие 65535, так как превышение может вызвать сбои некоторого программного обеспечения. Класс доступа (login class):: -Классы доступа это расширение к механизму групп, позволяющее более гибко приспосабливать систему для различных пользователей. Классы доступа описаны в <<users-limiting>>. +Классы доступа являются расширением механизма групп, дающим дополнительную гибкость при адаптации системы к различным пользователям. +Классы доступа описываются в разделе crossref:security[users-limiting,Настройка классов доступа]. -Срок действия пароля:: -По умолчанию пароли не устаревают. Однако, есть возможность ограничить срок действия текущего пароля пользователя, и тем самым обязать его обновить пароль. +Периодичность смены пароля:: +По умолчанию пароли не устаревают. +Однако устаревание пароля может быть включено по отдельности у каждого пользователя, принуждая всех или некоторых пользователей менять свои пароли по истечении определённого периода времени. -Срок действия учетной записи:: -По умолчанию во FreeBSD время действия учетных записей не ограничено. При создании учетных записей ограниченного срока действия, например для студентов в учебном заведении, при помощи man:pw[8] укажите дату истечения действия учетной записи. После наступления указанной даты учетная запись становится непригодной для входа в систему, хотя каталоги и файлы этой учетной записи останутся нетронутыми. +Время действия учётной записи:: +По умолчанию во FreeBSD время действия учётных записей не ограничено. +При создании учётных записей с ограниченным сроком действия, например, учётных записей студентов учебного заведения, укажите дату истечения действия учетной записи при помощи man:pw[8]. +После наступления указанной даты учётная запись не может быть использована для входа в систему, хотя каталоги и файлы, соответствующие этой учётной записи, не исчезнут. Полное имя пользователя:: -Имя пользователя является уникальным идентификатором учетной записи в FreeBSD, однако оно не обязано соответствовать реальному имени пользователя. Это поле может содержать реальное имя пользователя. Здесь допустимы пробелы, символы подчеркивания, строка не ограничена до 8 символов. +Имя пользователя является уникальным идентификатором учётной записи для FreeBSD, однако оно не обязательно соответствует реальному имени пользователя. +Подобно комментариям, эта информация может содержать пробелы, заглавные буквы и иметь длину более 8 символов. Домашний каталог:: -Домашний каталог определяется полным путем в системе. С него пользователь начнет работу после входа в систему. По общепринятому соглашению все домашние каталоги пользователей помещаются в [.filename]#/home/username# или [.filename]#/usr/home/username#. Пользователи хранят личные файлы и подкаталоги в своих домашних каталогах. +Домашний каталог является полным путём к некоторому каталогу в системе. +Это начальный каталог пользователя после его входа в систему. +По общепринятому соглашению все домашние каталоги пользователей размещаются в `/home/username` или `/usr/home/username`. +Пользователи хранят свои личные файлы и подкаталоги в своих домашних каталогах. Оболочка пользователя:: -Оболочка необходима пользователям как средство взаимодействия с системой. Существует множество различных видов оболочек, опытные пользователи работают с собственными настройками, которые могут быть отражены в установках их учетных записей. +Оболочка обеспечивает стандартное пользовательское окружение для взаимодействия с системой. +Существует множество различных видов оболочек, и у опытных пользователей будут свои предпочтения, которые могут быть отражены в настройках их учётных записей. [[users-superuser]] -==== Учетная запись суперпользователя +==== Учётная запись суперпользователя -Учетная запись суперпользователя, обычно называемая `root`, используется для управления системой без ограничения привилегий. Поэтому она не должна использоваться для повседневных задач, таких как получение и отправка почты, общее исследование системы или программирование. +Учётная запись суперпользователя, обычно называемая `root`, используется для управления системой без ограничения полномочий. +По этой причине она не должна использоваться для таких повседневных задач, как отправка и получение почты, общий анализ системы или программирование. -Суперпользователь, в отличие от обычных пользователей, может работать без ограничений и поэтому неправильное использование учетной записи суперпользователя может привести к полному уничтожению системы. Учетные записи пользователей не способны уничтожить систему вследствие ошибки, поэтому если нет необходимости в привилегиях суперпользователя, то лучше использовать учетные записи обычных пользователей везде, где это возможно. +В отличие от других пользовательских учётных записей, может работать без ограничений, и некорректное использование учётной записи суперпользователя может привести к грандиозным авариям. +Учётные записи пользователей не способны уничтожить систему по ошибке, поэтому рекомендуется входить в систему как пользователь, и переключаться в режим суперпользователя только в случае, когда запускаемой команде требуются дополнительные полномочия. -Всегда перепроверяйте и переперепроверяйте команды, выполняемые под учетной записью суперпользователя, поскольку даже один лишний пробел или отсутствующий символ может привести к безвозвратной потере данных. +Всегда проверяйте и перепроверяйте любые команды, запускаемые учётной записью суперпользователя, поскольку любой дополнительный пробел или отсутствующий символ может привести к безвозвратной потере данных. -Есть несколько способов получения привилегий суперпользователя. Наименее удобный способ - войти в систему под учетной записью `root`. +Имеется несколько способов получения полномочий суперпользователя. +Хотя можно входить как пользователь `root`, это крайне не рекомендуется. -Вместо этого можно воспользоваться man:su[1]. Если при запуске этой команды указывается ключ `-`, пользователь получит настройки окружения учетной записи `root`. Пользователь, запускающий эту команду, обязан входить в группу `wheel`, в противном случае команда не выполнится. Пользователь также должен знать пароль учетной записи `root`. +Для того, чтобы стать суперпользователем, вместо этого используйте man:su[1]. +Если при запуске этой команды указывается параметр `-`, то пользователь также получит настройки окружения учётной записи `root`. +Пользователь, запускающий эту команду, должен входить в группу `wheel`, в противном случае команда не будет выполнена. +Пользователь также должен знать пароль для учётной записи пользователя `root`. -В следующем примере пользователь повышает привилегии для запуска команды `make install`, так как этот шаг требует прав суперпользователя. По завершении работы команды пользователь набирает `exit`, тем самым выходя из учетной записи суперпользователя и возвращая привилегии собственной учетной записи. +В этом примере пользователь становится суперпользователем только для запуска команды `make install`, так как этот шаг требует полномочий суперпользователя. +После завершения работы команды пользователь набирает `exit` для того, чтобы выйтих из учётной записи суперпользователя и возвратиться к полномочиям собственной пользовательской учётной записи. -.Установка программы с привилегиями суперпользователя +.Установка программы с полномочиями суперпользователя [example] ==== @@ -322,15 +344,20 @@ Password: ==== -Утилита man:su[1] прекрасно подходит для одиночных систем или небольших сетей с единственным системным администратором. В качестве альтернативы ей следует упомянуть порт или пакет package:security/sudo[]. Эта утилита предоставляет журналирование активности, а также позволяет администратору указывать перечень утилит, доступных пользователю для запуска с правами суперпользователя. +Стандартный механизм man:su[1] хорошо работает для отдельных инсталляций или небольших сетей с единственным системным администратором. +Альтернативой является установка пакета или порта package:security/sudo[]. +Данное программное обеспечение обеспечивает протоколирование активностей и позволяет администратору настраивать, какие команды и какими пользователями могут запускаться с полномочиями суперпользователя. [[users-modifying]] -=== Изменение учетных записей +=== Управление учётными записями + +FreeBSD предоставляет набор различных команд для управления учётными записями пользователей. +Наиболее часто используемые команды перечислены в разделе crossref:basics[users-modifying-utilities,Инструменты для управления учётными записями], атем даны некоторые примеры их использования. +Обратитесь к страницам Справочника каждой утилиты для получения дополнительной информации и примеров использования. -FreeBSD располагает набором различных команд для работы с учетными записями пользователей. <<users-modifying-utilities>> перечисляет наиболее часто используемые команды, ниже находятся примеры их использования. За исчерпывающей информацией по каждой утилите следует обратиться к соответствующим страницам справочников. [[users-modifying-utilities]] -.Утилиты для управления учетными записями -[cols="1,1", frame="none", options="header"] +.Инструменты для управления учётными записями +[cols="25h,~"] |=== | Команда | Краткое описание @@ -348,24 +375,39 @@ FreeBSD располагает набором различных команд д |Инструмент командной строки для изменения паролей пользователей. |man:pw[8] -|Мощный и гибкий инструмент для изменения любой информации, связанной с учетными записями пользователей. +|Мощный и гибкий инструмент для изменения всех параметров пользовательских учётных записей. + +|man:bsdconfig[8] +|Инструмент настройки системы с поддержкой управления учётными записями. |=== [[users-adduser]] -==== `adduser` +==== Добавление пользователя -Для добавления новых пользователей рекомендуется использовать man:adduser[8]. При добавлении нового пользователя программа автоматически обновляет [.filename]#/etc/passwd# и [.filename]#/etc/group#. Она также создает домашний каталог для нового пользователя, копируя файлы настройки по умолчанию из [.filename]#/usr/shared/skel#, и может отправлять новому пользователю приветственное сообщение электронной почтой. Эту утилиту необходимо запускать с правами суперпользователя. +Рекомендуемой программой для добавления новых пользователей является man:adduser[8]. +При добавлении нового пользователя эта программа автоматически обновляет `/etc/passwd` и `/etc/group`. +Она также создаёт домашний каталог для этого пользователя, копирует стандартные конфигурационные файлы из `/usr/share/skel` и опционально может отправить новому пользователю по электронной почте приветственное сообщение. +Эта утилита должна запускаться с полномочиями суперпользователя. -Утилита man:adduser[8] является интерактивной. Для создания новой учетной записи потребуется ответить на несколько вопросов. Как показано в <<users-modifying-adduser>>, ответом считается либо ввод необходимой информации, либо нажатие клавиши kbd:[Return] для принятия значения по умолчанию, которое показано в квадратных скобках. В этом примере пользователь включен в группу `wheel`, что дает возможность ему повышать привилегии до суперпользователя при помощи man:su[1]. На последнем шаге утилита предложит создать еще одну учетную запись или завершить работу. +Утилита man:adduser[8] является интерактивной и следует шагам создания новой учётной записи пользователя. +Как показано в разделе crossref:basics[users-modifying-adduser, Добавление пользователя во FreeBSD], вводите запрашиваемую информацию либо нажимайте kbd:[Return] для принятия значения по умолчанию, отображаемого в квадратных скобках. +В этом примере пользователь был приглашён в группу `wheel`, позволяющей работать с полномочиями суперпользователя при помощи man:su[1]. +По окончании утилита выдаст запрос на создание ещё одного пользователя или завершение работы. [[users-modifying-adduser]] -.Добавление пользователя в FreeBSD +.Добавление пользователя во FreeBSD [example] ==== [source,shell] .... # adduser +.... + +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... Username: jru Full name: J. Random User Uid (Leave empty for default): @@ -394,75 +436,92 @@ OK? (yes/no): yes adduser: INFO: Successfully added (jru) to the user database. Add another user? (yes/no): no Goodbye! -# .... ==== [NOTE] ==== -При наборе пароля текст не отображается, поэтому постарайтесь не допускать опечаток в пароле при создании учетной записи. +Так как при наборе пароля он не отображается, будьте внимательны к опечаткам при его вводе при создании пользовательской учётной записи. ==== [[users-rmuser]] -==== `rmuser` +==== Удаление пользователя -Для полного удаления пользователя из системы запустите man:rmuser[8] с правами суперпользователя. Эта программа выполняет следующие действия: +Для полного удаления пользователя из системы запустите man:rmuser[8] с полномочиями суперпользователя. +Эта команда выполняет следующие шаги: [.procedure] ==== -. Если в man:crontab[1] существуют записи пользователя, то они удаляются. -. Удаляются принадлежащие пользователю задачи man:at[1]. -. Уничтожаются все процессы, принадлежащие пользователю. -. Удаляется запись пользователя из локального файла паролей. -. Если домашний каталог принадлежит пользователю, то каталог удаляется. -. Удаляется принадлежащая пользователю входящая почта из [.filename]#/var/mail#. -. Удаляются все файлы, принадлежащие пользователю, из каталогов с временными файлами, например из [.filename]#/tmp#. -. Наконец, в [.filename]#/etc/group# из всех групп удаляется имя пользователя. Если после этого удаления группа остается пустой и имя группы совпадает с именем пользователя, она удаляется. Это необходимо для удаления пользовательских уникальных групп, создаваемых man:adduser[8]. +. Удаляет пользовательскую информацию в man:crontab[1], если она имеется. +. Удаляет все задания man:at[1], принадлежащие этому пользователю. +. Отправляет сигнал SIGKILL всем процессам, владельцем которых является данный пользователь. +. Удаляет пользователя из локального файла паролей системы. +. Удаляет домашний каталог пользователя (если владельцем этого каталога является данный пользователь), включая обработку символических ссылок в маршруте к реальному домашнему каталогу. +. Удаляет файлы входящей почты, принадлежащие этому пользователю, из `/var/mail`. +. Удаляет все файлы, владельцем которых является этот пользователь, из /tmp`, `/var/tmp` и `/var/tmp/vi.recover`. +. Удаляет имя пользователя из всех групп, в которых он состоит, в `/etc/group`. Если какая-то группа становится пустой, а её название совпадает с именем пользователя, то эта группа удаляется; эта группа соответствует уникальной пользовательской группе, создаваемой man:adduser[8]. +. Удаляет все очереди сообщений, сегменты совместно используемой памяти и семафоры, владельцем которых является данный пользователь. ==== -man:rmuser[8] не может использоваться для удаления учетной записи суперпользователя, поскольку это почти всегда означает разрушение системы. +man:rmuser[8] не может использоваться для удаления учётной записи суперпользователя, поскольку это практически гарантированно означает массовые сбои системы. -По умолчанию используется интерактивный режим, это показано в следующем примере. +По умолчанию используется интерактивный режим, как показано в следующем примере. -.Интерактивное удаление учетной записи с помощью `rmuser` +.Интерактивное удаление учётной записи с помощью `rmuser` [example] ==== [source,shell] .... # rmuser jru +.... + +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... Matching password entry: jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh Is this the entry you wish to remove? y Remove user's home directory (/home/jru)? y Removing user (jru): mailspool home passwd. -# .... ==== [[users-chpass]] -==== `chpass` +==== Изменение информации о пользователе -При помощи man:chpass[1] любой пользователь может изменять информацию, связанную с его учетной записью. И только суперпользователю разрешено менять информацию других пользователей. +Любой пользователь может воспользоваться man:chpass[1] для изменения своего используемого по умолчанию командного процессора и персональной информации, связанной с его пользовательской учётной записью. +Суперпользователь может использовать данную утилиту для изменения дополнительной информации об учётной записи любого пользователя. -При запуске без параметров (кроме необязательного имени пользователя), man:chpass[1] вызывает редактор, содержащий информацию о пользователе. Когда пользователь выходит из редактора, база данных пользователей обновляется новой информацией. +При запуске без указания параметров, за исключением необязательного имени пользователя, man:chpass[1] отображает редактор, содержащий информацию пользователя. +Когда пользователь завершает работу с редактором, база данных пользователей обновляется новой информацией. [NOTE] ==== -Если утилита не была запущена с правами суперпользователя, то после выхода из редактора будет запрошен пароль пользователя. +Если утилита запущена не с полномочиями суперпользователя, то после выхода из редактора она запросит пароль пользователя. ==== -В <<users-modifying-chpass-su>> суперпользователь, выполнив команду `chpass jru`, просматривает доступные для изменения поля. Если `jru` запустит эту команду, то лишь последние шесть строк будут доступны ему для редактирования. Это показано в <<users-modifying-chpass-ru>>. +В разделе crossref:basics[users-modifying-chpass-su,Использование `chpass` с полномочиями суперпользователя] суперпользователь набрал `chpass jru` и просматривал поля, которые могут быть изменены для данного пользователя. +Если вместо этого эта команда будет запущена пользователем `jru`, то будут отображены и доступны для редактирования только шесть последних полей. +Это показано в разделе crossref:basics[users-modifying-chpass-ru,Использование `chpass` с полномочиями обычного пользователя]. [[users-modifying-chpass-su]] -.Работа с `chpass` с правами суперпользователя +.Использование `chpass` с полномочиями суперпользователя [example] ==== [source,shell] .... +# chpass +.... + +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... #Changing user database information for jru. Login: jru Password: * @@ -479,14 +538,12 @@ Office Phone: Home Phone: Other information: .... - ==== [[users-modifying-chpass-ru]] -.Работа с `chpass` с правами обычного пользователя +.Использование `chpass` с полномочиями обычного пользователя [example] ==== - [source,shell] .... #Changing user database information for jru. @@ -497,26 +554,33 @@ Office Phone: Home Phone: Other information: .... - ==== [NOTE] ==== -man:chfn[1] и man:chsh[1] это ссылки на man:chpass[1], как и man:ypchpass[1], man:ypchfn[1] и man:ypchsh[1]. Так как NIS поддерживается автоматически, указание `yp` перед командой не обязательно. Настройка NIS будет рассмотрена в crossref:network-servers[network-servers, Сетевые серверы]. +Команды man:chfn[1] и man:chsh[1] являются ссылками на man:chpass[1], так же, как и man:ypchpass[1], man:ypchfn[1] и man:ypchsh[1]. +Так как NIS поддерживается автоматически, указание `yp` перед командой не обязательно. +Настройка NIS рассматривается в <<network-servers>>. ==== [[users-passwd]] -==== `passwd` +==== Изменение пароля пользователя -Любой пользователь может изменить собственный пароль при помощи man:passwd[1]. Для предотвращения случайного или несанкционированного изменения, команда запрашивает текущий пароль пользователя перед установкой нового: +Любой пользователь может легко сменить собственный пароль при помощи man:passwd[1]. +Для предотвращения случайных или неавторизованных изменений перед установкой нового пароля эта команду будут запрашивать первоначальный пароль пользователя: -.Изменение пароля +.Изменение собственного пароля [example] ==== - [source,shell] .... % passwd +.... + +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... Changing local password for jru. Old password: New password: @@ -527,180 +591,167 @@ passwd: done ==== -Суперпользователь может изменить пароль любого пользователя, указав его имя при запуске man:passwd[1]. Утилита, запущенная с правами суперпользователя, не запрашивает текущий пароль пользователя. Благодаря этому возможно устанавливать новые пароли забывчивым пользователям. +Суперпользователь может сменить пароль любого пользователя, указав имя пользователя при запуске man:passwd[1]. +В тех случаях, когда эта утилита работает с полномочиями суперпользователя, она не будет запрашивать текущий пароль пользователя. +Это позвляет менять пароль в случае, когда пользователь не может вспомнить первоначальный пароль. .Изменение пароля другого пользователя суперпользователем [example] ==== - [source,shell] .... # passwd jru +.... + +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... Changing local password for jru. New password: Retype new password: passwd: updating the database... passwd: done .... - ==== [NOTE] ==== -Как и в случае с man:chpass[1], man:yppasswd[1] это всего лишь ссылка на man:passwd[1], так что NIS работает с обеими командами. +Как и в случае с man:chpass[1], man:yppasswd[1] является ссылкой на man:passwd[1], так что NIS работает с любой из команд. ==== [[users-pw]] -==== `pw` - -man:pw[8] это утилита командной строки для создания, удаления, модифицирования и отображения пользователей и групп. Она функционирует как внешний интерфейс к системным файлам пользователей и групп. У man:pw[8] очень мощный набор параметров командной строки, что делает это программу подходящей для использования в shell скриптах, но новым пользователям она может показаться более сложной, чем другие представленные здесь команды. +==== Создание, удаление, изменение и просмотр пользователей и групп в системе -[[users-limiting]] -=== Ограничение пользователей +Утилита man:pw[8] может создавать, удалять, изменять и отображать пользователей и группы. +Она функционирует как пользовательский интерфейс к системным файлам пользователей и групп. +man:pw[8] обладает очень мощным набором параметров командной строки, что делает её подходящей для использования в скриптах командного процессора, однако новым пользователям она может показаться более сложной, чем другие команды, представленные в этом разделе. -FreeBSD предоставляет администратору несколько способов ограничения количества занимаемых пользователями системных ресурсов. Дисковые квоты, как один из видов ограничения ресурсов, обсуждаются в отдельном разделе, остальные ограничения перечислены далее в тексте. - -Дисковые квоты ограничивают объем дискового пространства, занимаемого пользователями, а также предоставляют способ быстрой проверки занимаемого объема без пересчета его каждый раз. Квоты обсуждаются в crossref:disks[quotas,Квотирование файловых систем]. - -Другие ограничения ресурсов включают способы ограничения использования CPU, памяти и других ресурсов, которые могут потребляться пользователем. Ограничения накладываются с помощью классов учетных записей и обсуждаются в этом разделе. - -Классы учетных записей определяются в [.filename]#/etc/login.conf#, они детально описаны на странице справочника man:login.conf[5]. Каждой учетной записи присвоен класс (`default` по умолчанию), и каждому классу присвоен набор характеристик. Характеристика определяется в виде пары `имя=значение`, где _имя_ это определенный идентификатор, а _значение_ это произвольная строка, обрабатываемая в зависимости от _имени_. Настройка классов и характеристик довольно проста, и также описана в man:login.conf[5]. - -[NOTE] -==== -FreeBSD, как правило, не читает настройки в [.filename]#/etc/login.conf# непосредственно, вместо этого она обращается к файлу базы данных [.filename]#/etc/login.conf.db# для ускорения доступа к данным. Всякий раз после редактирования [.filename]#/etc/login.conf# необходимо обновить [.filename]#/etc/login.conf.db# при помощи следующей команды: - -[source,shell] -.... -# cap_mkdb /etc/login.conf -.... - -==== +[[users-groups]] +=== Управление группами -Ограничения на ресурсы отличаются от обычных характеристик: во-первых, для каждого ограничения существует "мягкое" (текущее) и "жесткое" ограничение. Мягкое ограничение может настраиваться пользователем или приложением, но не может превышать жесткое ограничение. Последнее может быть уменьшено пользователем, а увеличено - лишь суперпользователем. Во-вторых, большинство ограничений ресурсов накладываются на каждый процесс определенного пользователя, а не к пользователю вообще. Эти различия диктуются особенностями обработки ограничений, а не реализацией структуры характеристик учетных записей. +Группа представляет собой список пользователей. +Группа идентифицируется по её имени и GID. +Во FreeBSD для определения того, что имеет право делать процесс, ядро использует UID процесса и список групп, которым он принадлежит. +В большинстве случаев GID пользователя или процесса соотносится с первой группой из списка. -Ниже приведен список наиболее часто используемых ограничений на ресурсы. Остальные, вместе с другими характеристиками, можно найти в man:login.conf[5]. +Соответствия имени группы и GID перечислены в `/etc/group`. +Это обычный текстовый файл с четырьмя полями, разделёнными двоеточиями. +Первое поле соответствует имени группы, второе является зашифрованным паролем, третье содержит GID, а четвёртое является списком членов группы, разделённых запятыми. +За полным описанием синтаксиса обратитесь к man:group[5]. -`coredumpsize`:: -Ограничение на размер файла дампа памяти , генерируемого программой, подчиняющееся другим ограничениям на используемое дисковое пространство, таким как `filesize`, или дисковым квотам. Это ограничение часто используется как менее строгий метод контролирования потребления дискового пространства. Поскольку пользователь не создает файлы дампов памяти самостоятельно, и зачастую не удаляет их, установка этого параметра может предохранить пользователя от выхода за пределы ограничений на дисковое пространство, в случае если большая программа создаст файл аварийного дампа памяти. +Суперпользователь может изменять `/etc/group` при помощи какого-либо текстового редактора, однако предпочтительным способом является редактирование файла с группами при помощи утилиты man:vigr[8], так как она может отловить некоторые распространённые ошибки. -`cputime`:: -Это максимальное количество времени ЦПУ, потребляемого пользователем. Превысившие это время процессы будут уничтожены ядром. -+ +В качестве альтернативы для добавления и редактирования групп можно использовать man:pw[8]. +Например, для добавления группы с именем `teamtwo` и последующей проверки её существования: -[NOTE] +[WARNING] ==== -Это ограничение потребляемого _времени_ ЦПУ, а не процентов использования ЦПУ, которые отображаются в некоторых полях man:top[1] и man:ps[1]. +При использовании группы operator следует соблюдать осторожность, так как при этом могут быть ненамеренно даны полномочия этой группы, близкие к полномочиям суперпользователя, включая, но не ограничиваясь, правами на завершение работы системы и её перезапуск, а также на доступ ко всем объектам в `/dev`. ==== -`filesize`:: -Это максимальный размер файла , которым может владеть пользователь. В отличие от crossref:disks[quotas,дисковых квот], это ограничение применяется к отдельным файлам, а не ко всему набору принадлежащих пользователю файлов. - -`maxproc`:: -Это максимальное число процессов , которые могут быть запущены пользователем. В это число включаются и консольные, и фоновые процессы. Это ограничение не может превышать системный лимит, указываемый через переменную man:sysctl[8] `kern.maxproc`. Установка слишком жестких ограничений может стать помехой работе пользователя: зачастую ему удобно входить в систему с нескольких консолей или использовать каналы. Некоторые задачи, такие как компиляция большой программы, порождают множество процессов. - -`memorylocked`:: -Это максимальный объем памяти , блокировка которого может быть запрошена процессом при помощи man:mlock[2]. Некоторые критически важные для системы программы, такие как man:amd[8], блокируют отведенную процессу память так, что в случае "пробуксовывания" системы (system thrashing) они не усугубляют проблему. - -`memoryuse`:: -Это максимальный объем памяти , которая может быть занята процессом в любой момент времени. Сюда входит основная память и использование подкачки. Это ограничение не снимает все вопросы, связанные с использованием памяти, но для начала это подходящее ограничение. - -`openfiles`:: -Это максимальное количество файлов, которые могут быть открыты процессом. В FreeBSD файлы также используются для представления сокетов и каналов IPC, поэтому не устанавливайте слишком маленькое значение. Ограничение этого параметра, устанавливаемое для всей системы, определяется переменной man:sysctl[8] `kern.maxfiles`. - -`sbsize`:: -Это ограничение на объем сетевой памяти, т.е. mbufs , которую может занять пользователь. В общем, это ограничение может быть использовано для ограничения сетевых взаимодействий. - -`stacksize`:: -Это максимальный размер сегмента стека процесса. Сам по себе этот параметр не может ограничить размер используемой программой памяти, следовательно, его необходимо использовать вместе с другими ограничениями. - -Существуют несколько других аспектов, которые необходимо учитывать при установке ограничений ресурсов. Ниже приведены некоторые общие подсказки, советы и различные комментарии. - -* Процессам, загружаемым при старте системы скриптами [.filename]#/etc/rc# присваивается класс `daemon`. -* Хотя поставляемый с системой [.filename]#/etc/login.conf# - это хороший источник корректных значений для большинства ограничений, сами ограничения могут не подходить для конкретной системы. Установка слишком слабых ограничений может повлечь злоупотребления системой, а установка слишком сильных ограничений может стать помехой производительности. -* Пользователи Xorg возможно должны получить больше ресурсов, чем другие пользователи. Xorg сама по себе потребляет много ресурсов, а также провоцирует пользователей на одновременный запуск большего количества программ. -* Многие ограничения применяются к отдельным процессам, а не к пользователю вообще. Например, установка `openfiles` в 50 означает, что каждый процесс, запущенный пользователем, может открывать до 50 файлов. Общее количество файлов, которые могут быть открыты пользователем, вычисляется как `openfiles`, умноженное на `maxproc`. Это также применимо к потребляемой памяти. - -За дальнейшей информацией по ограничениям на ресурсы, классам учетных записей и характеристикам, обращайтесь к man:cap.mkdb[1], man:getrlimit[2], и man:login.conf[5]. - -[[users-groups]] -=== Группы - -Группа это список пользователей. Группа идентифицируется по имени и GID (Group ID). В FreeBSD для определения прав процесса ядро использует UID процесса, а также список групп, которым он принадлежит. В большинстве случаев, GID пользователя означает первую группу из списка. - -Имена групп связываются с GID в файле [.filename]#/etc/group#. Это текстовый файл с четырьмя разделенными двоеточием полями. Первое поле это имя группы, второе это зашифрованный пароль, третье это GID, а четвертое это разделенный запятыми список членов группы. За более полным описанием синтаксиса обратитесь к man:group[5]. - -Суперпользователь может редактировать [.filename]#/etc/group# при помощи текстового редактора. Как вариант, можно задействовать man:pw[8] для добавления и редактирования групп. Например, для добавления группы, называемой `teamtwo`, и проверки ее существования вы можете использовать: - .Добавление группы с использованием man:pw[8] [example] ==== - [source,shell] .... # pw groupadd teamtwo # pw groupshow teamtwo -teamtwo:*:1100: .... +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... +teamtwo:*:1100: +.... ==== -В этом примере число `1100` это GID группы `teamtwo`. На данный момент в `teamtwo` нет членов. Следующая команда добавит `jru` в группу `teamtwo`. +В этом примере `1100` является GID группы `teamtwo`. +На данный момент в `teamtwo` нет участников. +Эта команда добавит `jru` в группу `teamtwo` в качестве участника. -.Добавление пользователей в новую группу при помощи man:pw[8] +.Добавление учётных записей пользователей в новую группу при помощи man:pw[8] [example] ==== - [source,shell] .... # pw groupmod teamtwo -M jru # pw groupshow teamtwo -teamtwo:*:1100:jru .... +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... +teamtwo:*:1100:jru +.... ==== -Аргумент к параметру `-M` это разделенный запятыми список пользователей, которые добавляются в новую (пустую) группу или заменяют существующих членов группы. Что касается пользователя - это членство в группе отличается от первичной группы пользователя, указанного в файле паролей. Это значит, что пользователь не будет показан как член группы при использовании man:pw[8] `groupshow`, но будет отображен при использовании man:id[1] или похожего инструмента. Когда программа man:pw[8] задействована для добавления пользователя в группу, то она работает только с файлом [.filename]#/etc/group# и не ищет дополнительную информацию в файле [.filename]#/etc/passwd#. +Аргументом к параметру `-M` является разделённый запятыми список пользователей, которых нужно добавить в новую (пустую) группу или заменить участников существующей группы. +С точки зрения пользователя такое членство в группе отличается от основной группы, указанной в файле паролей (и является дополнительным к ней). +Это значит, что пользователь не будет отображаться как участник группы при использовании параметра `groupshow` с man:pw[8], но будет отображаться при запросе информации с помощью man:id[1] или аналогичного инструмента. +При использовании man:pw[8] для добавления пользователя в группу она работает только с `/etc/group` и не пытается считывать дополнительные сведения из `/etc/passwd`. -.Добавление нового члена группы с использованием man:pw[8] +.Добавление нового участника в группу с помощью man:pw[8] [example] ==== - [source,shell] .... # pw groupmod teamtwo -m db # pw groupshow teamtwo -teamtwo:*:1100:jru,db .... +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... +teamtwo:*:1100:jru,db +.... ==== -В этом примере аргументом к опции `-m` является разделенный запятыми список пользователей, добавляемых в группу. В отличие от предыдущего примера, пользователи добавляются в группу, а не замещают имеющийся список пользователей группы. +В этом примере аргументом к параметру `-m` является разделённый запятыми список пользователей, которые должны быть добавлены в группу. +В отличие от предыдущего примера, эти пользователи присоединяются к группе, а не замещают существующих в группе пользователей. -.Использование man:id[1] для определения принадлежности к группам +.Использование man:id[1] для определения принадлежности к группе [example] ==== - [source,shell] .... % id jru -uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) .... +Выводимый текст должен быть похож на следующее: + +[.programlisting] +.... +uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) +.... ==== В этом примере `jru` является членом групп `jru` и `teamtwo`. -За дальнейшей информацией об этой команде и о формате файла [.filename]#/etc/group# обратитесь к man:pw[8] и man:group[5]. +За дополнительной информацией об этой команде и о формате `/etc/group` обратитесь к man:pw[8] и man:group[5]. [[permissions]] == Права доступа -FreeBSD является прямым потомком BSD UNIX(R) и основывается на некоторых ключевых концепциях UNIX(R). В первую очередь это, конечно, тот факт, что FreeBSD - многопользовательская операционная система. Это означает, что несколько пользователей могут работать одновременно, решая различные задачи и совершенно не мешая друг другу. На системе лежит ответственность за правильное разделение и управление такими ресурсами как память, процессорное время, периферийные устройства и прочее. +Во FreeBSD с каждым файлом и каталогом связан набор прав доступа, для просмотра и изменения которых доступны несколько утилит. +Понимание того, как работают эти права доступа, необходимо для обеспечения того, чтобы пользователи могли получать доступ к файлам, которые им нужны, и не могли некорректно обращаться к файлам, используемым операционной системой или владельцами которых является другие пользователи. -Многопользовательская среда предполагает наличие механизма регулирования прав доступа к любому ресурсу в системе. Существует три типа прав доступа: на чтение, запись и исполнение. Права сгруппированы три по три, соответственно чтение/запись/выполнение для владельца/группы/всех остальных. Численное представление: +В этом разделе описываются традиционные полномочия UNIX(R), используемые во FreeBSD. +Для более тонкого управления доступом в файловой системе обратитесь к разделу crossref:fs-acl[fs-acl,Списки управления доступом]. -[.informaltable] +В UNIX(R) базовые права доступа назначаются с использованием трёх типов доступа: чтение, запись и исполнение. +Эти типы доступа используются для определения доступа к файлу для владельца файла, для группы и для прочих пользователей (всех остальных). +Полномочия на чтение, запись и исполнение могут быть представлены в виде букв `r`, `w` и `x`. +Также они могут быть представлены в виде двоичных чисел, так как каждое полномочие либо включено, либо выключено (`0`). +При представлении в виде числа порядок прочтения всегда имеет вид `rwx`, где `r` имеет значение `4`, `w` имеет значение `2` и `x` равно `1`. + +В Таблице 4.1 сведены возможные цифровые и символьные комбинации. +В столбце "Список файлов каталога" символ `-` используется для отражения отсутствующего права доступа. + +.Права доступа UNIX(R) [cols="1,1,1", frame="none", options="header"] |=== | Значение @@ -740,38 +791,53 @@ FreeBSD является прямым потомком BSD UNIX(R) и основ |`rwx` |=== -Вы можете использовать опцию `-l` команды man:ls[1] для получения подробного листинга каталога, включающего колонку с информацией о правах на файл для владельца, группы и всех остальных. Например, команда `ls -l` в произвольном каталоге может вывести следующее: +Используйте параметр `-l` с командой man:ls[1] для получения подробного списка содержимого каталога, включающего столбец с информацией о полномочиях на файл для владельца, группы и всех остальных. +Например, `ls -l` в произвольно выбранном каталоге может выдать следующее: [source,shell] .... % ls -l -total 530 --rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile --rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile --rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt -... .... -Вот как выглядит первая колонка вывода `ls -l`: +Выводимый текст должен быть похож на следующее: -[source,shell] +[.programlisting] .... --rw-r--r-- +total 530 +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile +-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile +-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt .... -Первый (считая слева) символ говорит обычный ли это файл, каталог, символьное устройство, сокет или любое другое псевдо-файловое устройство. В нашем случае `-` указывает на обычный файл. Следующие три символа (в данном случае это `rw-`) задают права доступа владельца файла. Затем идут права группы, которой принадлежит файл (`r--`). Последняя тройка (`r--`) определяет права для всех остальных. Минус означает отсутствие каких-либо прав (т.е. нельзя ни читать, ни писать, ни выполнять). В данном случае права установлены таким образом, что владелец может читать и писать в файл, а группа и другие могут только читать. Таким образом, численное представление прав `644`, где каждая цифра представляет три части прав на файл. +В строке, соответствующей `myfile`, первый (самый левый) символ в первом столбце указывает на то, обычный ли это файл, каталог, специальное символьное устройство, сокет или какое-то другое специальное псевдофайловое устройство. +В данном примере `-` указывает на то, что это обычный файл. +Следующие три символа (в данном примере это `rw-`) определяют полномочия владельца файла. +Последующие три символа, `r--`, определяют полномочия группы, которой принадлежит файл. +Последние три символа, `r--`, определяют полномочия для всего остального мира. +Дефис означает, что полномочия отсутствуют. +В этом примере полномочия установлены таким образом, что владелец может выполнять операции чтения и записи в файл, группа может читать файл, а весь остальной мир может только читать файл. +В соответствии с таблицей выше, полномочия для этого файлы могли бы быть представлены как `644`, где каждая цифра представляет три части полномочий на файл. -Права на устройства контролируются аналогичным образом. В FreeBSD все устройства представлены в виде файлов, которые можно открывать, читать и писать в них. Эти специальные файлы содержатся в каталоге [.filename]#/dev#. +Как система управляет полномочиями на устройства? +Во FreeBSD большинство устройств представлено в виде файлов, которые программы могут открывать, читать и записывать в них данные. +Эти специальные файлы устройств размещаются в каталоге `/dev`. -Каталоги также являются файлами. К ним применимы те же права на чтение, запись и выполнение. Правда, в данном случае "выполнение" имеет несколько другой смысл. Когда каталог помечен как "исполнимый", это означает, что можно "зайти" в него (с помощью команды `cd`, change directory). Это также означает, что в данном каталоге можно получить доступ к файлам, имена которых известны (конечно, если собственные права на файл разрешают такой доступ). +Каталоги обрабатываются так же, как и файлы. +У них также имеются полномочия на чтение, запись и выполнение. +Бит исполнимости для каталога имеет несколько другой, отличающийся от файлов, смысл. +Когда каталог помечен как исполняемый, это означает, что в него можно перейти с помощью команды man:cd[1]. +Это также означает, что можно получить доступ к файлам в данном каталоге с учётом полномочий, установленных для этих файлов. -Если же требуется получить список файлов в некотором каталоге, права доступа на него должные включать доступ на чтение. Для того, чтобы удалить из каталога какой-либо файл, имя которого известно, на этот каталог должны быть даны права на запись _и_ на исполнение. +Для того, чтобы получить список файлов в каталоге, на него должны быть установлены полномочия на чтение. +Для того, чтобы удалить из каталога какой-либо файл, имя которого известно, необходимо иметь полномочия на запись _и_ исполнение каталога, содержащего соответствующий файл. -Существуют и другие права доступа, но они как правило используются в особых случаях, например, setuid-бит на выполняемые файлы и sticky-бит на каталоги. За дополнительными сведениями по этому вопросу обращайтесь к man:chmod[1]. +Существуют и другие права доступа, но они как правило используются в особых случаях, например, setuid-бит на выполняемые файлы и sticky-бит на каталоги. +За дополнительной информацией о файловых полномочиях и о том, как их устанавливать, обратитесь к man:chmod[1]. -=== Символические обозначения прав +=== Символическое обозначение полномочий -Символические обозначения, иногда называемые символическими выражениями, используют буквы вместо восьмеричных значений для назначения прав на файлы и каталоги. Символические выражения используют синтаксис (кто) (действие) (права), где существуют следующие значения: +Символическое обозначение полномочий использует буквы вместо восьмеричных значений для назначения прав на файлы или каталоги. +Символическое обозначение использует формат (кто) (действие) (полномочия), при этом доступны следующие значения: [.informaltable] [cols="1,1,1", frame="none", options="header"] @@ -829,14 +895,16 @@ total 530 |SUID или SGID |=== -Эти значения используются командой man:chmod[1] так же как и раньше, но с буквами. Например, вы можете использовать следующую команду для запрета доступа других пользователей к _FILE_: +Эти значения используются с командой man:chmod[1], но с буквами вместо цифр. +Например, следующая команда блокирует доступ к _FILE_ как для членов группы, соответствующей _FILE_, так и для всех прочих пользователей: [source,shell] .... % chmod go= FILE .... -Для изменения более чем одного набора прав можно применить список, разделенный запятыми. Например, следующая команда удалит права группы и "всех остальных" на запись в _FILE_, а затем добавит права на выполнение для всех: +Для изменения более чем одного набора прав можно применить список значений, разделённых запятыми. +Например, следующая команда удаляет права группы и "всех остальных" на запись в _FILE_ и добавляет права на выполнение любым пользователям: [source,shell] .... @@ -845,70 +913,87 @@ total 530 === Флаги файлов в FreeBSD -Кроме уже описанных прав доступа к файлам, FreeBSD поддерживает использование "флагов файлов". Эти флаги обеспечивают дополнительный уровень защиты и контроля над файлами, но не могут применяться к каталогам. - -Эти флаги добавляют дополнительные возможности контроля над файлами, обеспечивая (при определенных условиях) невозможность их удаления или изменения даже пользователю `root`. +Кроме прав доступа к файлам, FreeBSD поддерживает использование "файловых флагов". +Эти флаги привносят дополнительный уровень защиты и контроля над файлами, но не каталогами. +При помощи этих флагов даже пользователь `root` может быть ограничен в удалении или изменении файлов. -Файловые флаги изменяются при помощи утилиты man:chflags[1] посредством простого интерфейса. К примеру, чтобы установить системный признак неудаляемости на файл [.filename]#file1#, выполните следующую команду: +Файловые флаги изменяются при помощи man:chflags[1]. +К примеру, для установки системного флага неудаляемости на файл `file1`, выполните следующую команду: [source,shell] .... # chflags sunlink file1 .... -Чтобы отключить флаг неудаляемости, просто выполните предыдущую команду с ключом "no" перед параметром `sunlink`. Вот так: +Чтобы отключить системный флаг неудаляемости, укажите "no" перед `sunlink`: [source,shell] .... # chflags nosunlink file1 .... -Чтобы просмотреть флаги этого файла, воспользуйтесь командой man:ls[1] с параметрами `-lo`: +Чтобы просмотреть флаги какого-либо файла, используйте команду man:ls[1] с параметрами `-lo`: [source,shell] .... # ls -lo file1 .... -Результат выполнения команды должен выглядеть примерно так: - [.programlisting] .... -rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1 .... -Некоторые флаги могут быть установлены или сняты с файлов только пользователем `root`. В остальных случаях эти флаги может установить владелец файла. Для получения дополнительной информации мы рекомендуем изучить содержимое справки по командам man:chflags[1] и man:chflags[2]. +Некоторые файловые флаги могут быть установлены или сняты только пользователем `root`. +В остальных случаях флаги файла может устанавливать его владелец. +Обратитесь к man:chflags[1] и man:chflags[2] для получения дополнительной информации. -=== setuid, setgid и sticky-биты в правах доступа +=== Права доступа setuid, setgid и sticky -В дополнение к рассмотренным выше правам доступа и флагам файлов необходимо также упомянуть еще три бита прав доступа, о которых должны знать все системные администраторы. Это такие биты, как `setuid`, `setgid` и `sticky`. +В дополнение к рассмотренным выше правам доступа и флагам файлов необходимо также упомянуть еще три вида прав доступа, о которых должны знать все системные администраторы. +Это полномочия `setuid`, `setgid` и `sticky`. -Эти биты играют важную роль в определённых моментах работы UNIX(R), так как они предоставляют функциональность, расширяющую права обычного пользователя. Чтобы понять как они работают, необходимо определить различие между реальным идентификатором пользователя (UID) и действующим идентификатором пользователя (effective UID, EUID). +Эти биты играют важную роль в определённых моментах работы UNIX(R), так как они предоставляют функциональность, расширяющую права обычного пользователя. +Чтобы понять, как они работают, необходимо отметить различия между реальным идентификатором пользователя (UID) и действующим идентификатором пользователя (effective UID, EUID). -Реальный UID - это идентификатор пользователя, запустившего процесс на выполнение. Действующий UID (EUID) - это идентификатор пользователя, с которым на самом деле выполняется процесс. Например, утилита man:passwd[1] во время смены пароля пользователем запускается с реальным ID пользователя; однако, чтобы внести изменения в базу данных пользователей, ей необходимо работать с действующим ID пользователя `root`. Это тот механизм, который позволяет обычным пользователям изменять свои пароли и при этом не наблюдать ошибку `Permission Denied`. +Реальный UID - это идентификатор пользователя, запустившего процесс на выполнение. Действующий UID (EUID) - это идентификатор пользователя, с которым на самом деле выполняется процесс. +Например, утилита man:passwd[1] во время смены пароля пользователем запускается с реальным ID пользователя. +Однако для того, чтобы актуализировать базу данных паролей, команда работает с действующим ID пользователя `root`. +Это позволяет пользователям изменять их пароли и не наблюдать ошибку `Permission Denied`. -[NOTE] -==== -Опция `nosuid`, указанная при монтировании файловой системы, отменяет действие битов `setuid` и `setgid`. То есть, утилиты, использующие эти биты прав, откажутся выполняться, даже не выдав пользователю никакого предостережения. К тому же, (с точки зрения обеспечения безопасности) эта опция монтирования не является абсолютно надежной, так как, согласно странице справочника man:mount[8], накладываемые ею ограничения могут быть обойдены при помощи "обертки" `nosuid` (`nosuid` wrapper). -==== +Полномочие setuid может быть задано в символьном виде добавлением права доступа `s` для пользователя, как в следующем примере: -Бит setuid устанавливается добавлением цифры четыре (4) перед численным представлением прав доступа, например: +[source,shell] +.... +# chmod u+s suidexample.sh +.... + +Полномочие setuid также можно задать, добавив число четыре (4) перед численным представлением набора полномочий, как показано в следующем примере: [source,shell] .... # chmod 4755 suidexample.sh .... -Теперь права доступа на файл [.filename]#suidexample.sh# выглядят подобно следующему: +Теперь права доступа на `suidexample.sh` выглядят подобно следующему: [.programlisting] .... -rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh .... -В вышеприведенной строке приметно то, что в перечне прав доступа для владельца файла присутствует символ `s`, который заменил собой бит выполнения. +Заметьте, что `s` теперь является частью набора полномочий, относящихся к владельцу файла, и заменяет бит выполнимости. +Это позволяет работать утилитам, которым требуется повышенный уровень полномочий, таким как man:passwd[1]. -Чтобы посмотреть `setuid` в действии, откройте два терминала. На одном из них запустите команду `passwd` с правами обычного пользователя. Пока утилита ждет ввода нового пароля, просмотрите таблицу процессов и найдите в ней запись о процессе `passwd`. +[NOTE] +==== +Указание параметра `nosuid` при запуске команды man:mount[8] приводит к тому, что такие программы перестают работать без выдачи предупреждений пользователям. +Указанная возможность не является абсолютно надёжно работающей, так как обработчик `nosuid` может её обойти. +==== + +Чтобы увидеть, как это работает, откройте два терминала. +В одном из них наберите `passwd`, работая как обычный пользователь. +Пока утилита ждёт ввода нового пароля, просмотрите таблицу процессов и обратите внимание на информацию о пользователе процесса man.passwd[1]. В терминале А: @@ -931,18 +1016,26 @@ trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd .... -Как уже было сказано, утилита `passwd` запущена с правами обычного пользователя, но ее действующий UID - `root`. +Хотя man.passwd[1] запущена от обычного пользователя, она использует действующий UID пользователя `root`. -Действие бита `setgid` подобно действию `setuid`; отличие заключается в том, что изменяются настройки прав для группы. Когда выполняется приложение (или утилита) с установленным битом `setgid`, то ему (ей) будут обеспечены права в соответствии с группой владельца файла, а не с группой пользователя, запустившего процесс. +Полномочие `setgid` выполняет ту же функцию, что и `setuid`; отличие заключается в том, что изменяются настройки прав для группы. +Когда выполняются приложение или утилита с этой настройкой, то им назначаются полномочия на основании группы, владеющей файлом, а не пользователя, запустившего процесс. -Чтобы установить на файл бит `setgid`, выполните команду `chmod`, добавив цифру два (2) перед численным представлением прав доступа, например: +Чтобы установить на какой-либо файл полномочие `setgid` в символическом виде, добавьте право доступа для группы при помощи man:chmod[1]: + +[source,shell] +.... +# chmod g+s sgidexample.sh +.... + +Альтернативным способом является выполнение команды man:chmod[1] с добавленным в начале числом два (2): [source,shell] .... # chmod 2755 sgidexample.sh .... -Новый бит отображается подобно предыдущему случаю: обратите внимание на наличие `s` в перечне прав доступа для группы: +В следующей выдаче обратите внимание на наличие `s` в перечне прав доступа для группы: [source,shell] .... @@ -954,16 +1047,26 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd В этих примерах, несмотря на то, что сценарий оболочки является исполняемым файлом, он не будет выполняться с другим действующим идентификатором пользователя (EUID). Так происходит потому, что сценариям командного интерпретатора недоступен системный вызов man:setuid[2]. ==== -Позволяя расширять права пользователя, оба бита прав доступа (`setuid` и `setgid`) могут привести к снижению безопасности системы. Третий обсуждаемый здесь бит - `sticky` - способствует повышению безопасности системы. +Позволяя повышать права доступа, биты полномочий `setuid` и `setgid` могут снижать безопасность системы. +Третье специальное полномочие, `sticky bit`, может усиливать безопасность системы. + +`Sticky bit`, будучи установленным на каталог, позволяет производить удаление файла только его владельцем. +Это полезно для предотвращения удаления файлов в общедоступных каталогах, таких как `/tmp`, пользователями, которые не являются владельцами файлов. +Чтобы использовать это полномочие, добавьте файлу режим `t`: + +[source,shell] +.... +# chmod +t /tmp +.... -Бит `sticky`, будучи установленным на каталог, позволяет производить удаление файла только владельцу файла. Этот бит применяется для предотвращения удаления файлов в публичных каталогах, таких как [.filename]#/tmp#, пользователями, не владеющими файлом. Чтобы задействовать этот бит, добавьте единицу (1) перед численным представлением прав доступа. Например: +Альтернативным способов является добавление единицы (1) перед набором прав доступа: [source,shell] .... # chmod 1777 /tmp .... -Проверить результат можно при помощи команды `ls`: +Полномочие `sticky bit` будет отображаться как `t` в самом конце набора прав доступа: [source,shell] .... @@ -975,258 +1078,304 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp .... -Отличительной особенностью бита `sticky` является наличие символа `t` в самом конце перечня прав. - [[dirstructure]] == Структура каталогов -Файловая система FreeBSD является ключевым моментом в понимании устройства всей системы. Самым важным понятием является, несомненно, корневой каталог, обозначаемый символом "/". Корневой каталог монтируется самым первым на этапе загрузки и содержит все необходимое, чтобы подготовить систему к загрузке в многопользовательский режим. Корневой каталог также содержит точки монтирования для остальных файловых систем, которые монтируются во время перехода в многопользовательский режим. +Структура каталогов FreeBSD является фундаментальным вопросом в достижении общего понимания устройства всей системы. +Самым важным понятием является, несомненно, корневой каталог, или "/". +Этот каталог является самым первым, монтируемым на этапе загрузки и содержащим базовую систему, необходимую для подготовки операционной системы к работе в многопользовательском режиме. +Корневой каталог также содержит точки монтирования для других файловых систем, которые монтируются во время перехода к функционированию в многопользовательском режиме. -Точкой монтирования называется каталог, находящийся в родительской (обычно - корневой) файловой системе, к которому может быть подсоединена другая файловая система. Более детально это описывается в <<disk-organization>>. Стандартные точки монтирования включают [.filename]#/usr#, [.filename]#/var#, [.filename]#/tmp#, [.filename]#/mnt# и [.filename]#/cdrom#. Эти каталоги обычно перечислены в файле [.filename]#/etc/fstab#, в котором указаны файловые системы и их точки монтирования. Большинство файловых систем, описанных в [.filename]#/etc/fstab# монтируются автоматически из скрипта man:rc[8], если только для них не указана опция `noauto`. Более детальная информация находится в <<disks-fstab>>. +Точкой монтирования называется каталог, находящийся в родительской (обычно - корневой) файловой системе, к которому может быть подсоединена другая файловая система. +Более глубоко это описывается в разделе crossref:basics[disk-organization,Организация дисков]. +К стандартным точкам монтирования относятся `/usr/`, `/var/`, `/tmp/`, `/mnt/` и `/cdrom/`. +Эти каталоги обычно перечислены как отдельные записи в файле `/etc/fstab`. +Этот файл является таблицей с различными файловыми системами и точками монтирования, которая считывается системой. +Большинство файловых систем в `/etc/fstab` монтируются во время загрузки автоматически из скрипта man:rc[8], если только в соответствующей записи для них не указано `noauto`. +Более подробную информацию можно найти в разделе crossref:basics[disks-fstab,Файл fstab]. -Полное описание иерархии файловой системы есть в man:hier[7]. Здесь же мы упомянем лишь наиболее важные каталоги. +Полное описание иерархии файловой системы есть в man:hier[7]. +Таблица ниже содержит краткое описание наиболее часто упоминаемых каталогов. -[.informaltable] -[cols="1,1", frame="none", options="header"] +[cols="25h,~"] |=== | Каталог | Описание -|[.filename]#/# +|`/` |Корневой каталог файловой системы. -|[.filename]#/bin/# +|`/bin/` |Основные утилиты, необходимые для работы как в однопользовательском, так и в многопользовательском режимах. -|[.filename]#/boot/# +|`/boot/` |Программы и конфигурационные файлы, необходимые для нормальной загрузки операционной системы. -|[.filename]#/boot/defaults/# -|Конфигурационные файлы с настройками по умолчанию, используемые в процессе загрузки операционной системы (см. man:loader.conf[5]). +|`/boot/defaults/` +|Конфигурационные файлы, используемые в процессе загрузки операционной системы, со стандарными настройками. Обратитесь к man:loader.conf[5] для получения более подробной информации. -|[.filename]#/dev/# -|Файлы устройств (см. man:intro[4]). +|`/dev/` +|Специальные файлы устройств, управляемые при помощи man:devfs[5] -|[.filename]#/etc/# +|`/etc/` |Основные конфигурационные файлы системы и скрипты. -|[.filename]#/etc/defaults/# -|Основные конфигурационные файлы системы с настройками по умолчанию (см. man:rc[8]). +|`/etc/defaults/` +|Конфигурационные файлы системы со стандартными настройками. Обратитесь к man:rc[8] для получения более подробной информации. -|[.filename]#/etc/mail/# -|Конфигурационные файлы для систем обработки почты (например, man:sendmail[8]). +|`/etc/periodic/` +|Файлы сценариев, выполняемые ежедневно, еженедельно и ежемесячно при помощи man:cron[8]. Обратитесь к man:periodic[8] для получения более подробной информации. -|[.filename]#/etc/namedb/# -|Конфигурационные файлы для утилиты `named` (см. man:named[8]). +|`/lib/` +|Критически важные системные библиотеки, необходимые для выполнимых файлов в `/bin` и `/sbin` -|[.filename]#/etc/periodic/# -|Файлы сценариев, выполняемые ежедневно, еженедельно и ежемесячно (см. man:cron[8] и man:periodic[8]). +|`/libexec/` +|Критически важные системные файлы -|[.filename]#/etc/ppp/# -|Конфигурационные файлы для утилиты `ppp` (см. man:ppp[8]). +|`/media/` +|Содержит подкаталоги для использования в качестве точек монтирования для сменных носителей, таких как CD, накопители USB и гибкие диски -|[.filename]#/mnt/# +|`/mnt/` |Пустой каталог, часто используемый системными администраторами как временная точка монтирования. -|[.filename]#/proc/# -|Виртуальная файловая система, отображающая текущие процессы (см. man:procfs[5], man:mount_procfs[8]). +|`/net/` +|Автоматически монтируемые совместно используемые ресурсы NFS; обратитесь к man:auto_master[5] + +|`/proc/` +|Файловая система процессов. Обратитесь к man:procfs[5] и man:mount_procfs[8] для получения более подробной информации. -|[.filename]#/rescue/# -|Статически собранные программы для восстановления после сбоев. Обратитесь к man:rescue[8]. +|`/rescue/` +|Статически скомпилированные программы для восстановления после сбоев, как описано в man:rescue[8]. -|[.filename]#/root/# +|`/root/` |Домашний каталог пользователя `root`. -|[.filename]#/sbin/# +|`/sbin/` |Системные утилиты и утилиты администрирования, необходимые для работы как в однопользовательском, так и в многопользовательском режимах. -|[.filename]#/tmp/# -|Временные файлы. Содержимое [.filename]#/tmp# обычно теряется во время перезагрузки системы. Файловая система в памяти часто монтируется в [.filename]#/tmp#. Это может быть автоматизированно с помощью переменных относительно tmpmfs из man:rc.conf[5] (или же с помощью записи в [.filename]#/etc/fstab#; обращайтесь к man:mdmfs[8]). +|`/tmp/` +|Временные файлы, которые обычно _не_ сохраняются при перезапуске системы. Размещаемая в оперативной памяти файловая система часто монтируется в `/tmp`. Это может быть автоматизировано с помощью переменных, относящихся к tmpmfs, в man:rc.conf[5] или с помощью записи в `/etc/fstab`; обратитесь к man:mdmfs[8] для получения более подробной информации. -|[.filename]#/usr/# -|Большинство пользовательских утилит и приложений. +|`/usr/` +|Основной набор пользовательских утилит и приложений. -|[.filename]#/usr/bin/# +|`/usr/bin/` |Пользовательские утилиты и приложения общего назначения. -|[.filename]#/usr/include/# +|`/usr/include/` |Стандартные заголовочные файлы для языка C. -|[.filename]#/usr/lib/# -|Файлы стандартных библиотек. +|`/usr/lib/` +|Архивные библиотеки. -|[.filename]#/usr/libdata/# +|`/usr/libdata/` |Файлы данных для различных утилит. -|[.filename]#/usr/libexec/# -|Системные даемоны и утилиты (выполняемые другими программами). +|`/usr/libexec/` +|Системные даемоны и системные утилиты, вызываемые другими программами. -|[.filename]#/usr/local/# -|Локальные пользовательские приложения, библиотеки, и т.д. Также используется по умолчанию коллекцией портов. Внутри [.filename]#/usr/local# иерархия каталогов должна следовать man:hier[7] для [.filename]#/usr#. Исключение составляют каталог [.filename]#man#, который расположен непосредственно в [.filename]#/usr/local#, а не в [.filename]#/usr/local/share#, и документация портов, которая расположена в [.filename]#share/doc/port#. +|`/usr/local/` +|Локальные исполнимые файлы и библиотеки. Также используется в качестве стандартного целевого каталога в рамках инструментария портов FreeBSD. Внутри `/usr/local` общая структура каталогов должна следовать принципам, отражённым в man:hier[7] для `/usr`. Исключениями являются каталоги man, который расположен непосредственно в `/usr/local`, а не в `/usr/local/share`, и документация портов, которая располагается в `share/doc/port`. -|[.filename]#/usr/obj/# -|Архитектурно-зависимые файлы и каталоги, образующиеся в процессе сборки системы из исходных текстов в [.filename]#/usr/src#. - -|[.filename]#/usr/ports/# +|`/usr/ports/` |Коллекция портов FreeBSD (опционально). -|[.filename]#/usr/sbin/# -|Системные утилиты и утилиты администрирования (исполняемые пользователем). - -|[.filename]#/usr/shared/# -|Архитектурно-независимые файлы. +|`/usr/sbin/` +|Системные даемоны и системные утилиты, запускаемые пользователями. -|[.filename]#/usr/src/# -|Исходные тексты BSD и/или программ. +|`/usr/share/` +|Файлы, не зависящие от архитектуры. -|[.filename]#/usr/X11R6/# -|Утилиты, приложения и библиотеки X11R6 (X Window System; необязательно). +|`/usr/src/` +|Исходные тексты BSD и/или локальных программ. -|[.filename]#/var/# -|Файлы журналов общего назначения, временные, перемещаемые файлы и файлы очередей. Файловая система в памяти иногда монтируется в [.filename]#/var#. Это может быть автоматизированно с помощью переменных относительно varmfs из man:rc.conf[5] (или же с помощью записи в [.filename]#/etc/fstab#; обращайтесь к man:mdmfs[8]). +|`/var/` +|Файлы журналов общего назначения, временные, перемещаемые файлы и файлы очередей печати. -|[.filename]#/var/log/# -|Различные файлы системных журналов. +|`/var/log/` +|Файлы различных системных журналов. -|[.filename]#/var/mail/# -|Почтовые ящики пользователей. - -|[.filename]#/var/spool/# -|Файлы очередей печати, почты, и пр. - -|[.filename]#/var/tmp/# -|Временные файлы, которые обычно сохраняются во время перезагрузки системы, если только [.filename]#/var# не является файловой системой в памяти. - -|[.filename]#/var/yp/# -|Карты (maps) NIS. +|`/var/tmp/` +|Временные файлы, которые обычно сохраняются после перезапуска системы. |=== [[disk-organization]] == Организация дисков -Наименьшая единица, которую FreeBSD использует для обращения к файлам, это имя файла. Имена файлов чувствительны к регистру, поэтому [.filename]#readme.txt# и [.filename]#README.TXT# - два разных файла. FreeBSD не использует расширение файла ([.filename]#.txt#) для определения программа это, документ или другой тип данных. - -Файлы хранятся в каталогах. Каталоги могут не содержать файлов, или могут содержать много сотен файлов. Каталоги также могут содержать другие каталоги, что позволяет создавать иерархию каталогов один в другом. Это упрощает организацию данных. +Наименьшей единицей, которую FreeBSD использует для поиска файлов, является имя файла. +Имена файлов чувствительны к регистру, поэтому `readme.txt` и `README.TXT` являются двумя отдельными файлами. +FreeBSD не использует расширение файла для определения того, является ли файл программой, документом или какой-то иной формой данных. -Обращение к файлам происходит путем задания имени файла или каталога, дополняемого прямым слэшем `/`, за которым может следовать имя другого каталога. Если есть каталог [.filename]#foo#, содержащий каталог [.filename]#bar#, который содержит файл [.filename]#readme.txt#, полное имя, или _путь_ к файлу будет [.filename]#foo/bar/readme.txt#. +Файлы хранятся в каталогах. +Каталоги могут не содержать файлов, либо могут содержать многие сотни файлов. +Каталог также может содержать другие каталоги, что позволяет иметь иерархию вложенных друг в друга каталогов для организации данных. -Каталоги и файлы хранятся в файловой системе. Каждая файловая система содержит один каталог на верхнем уровне, называемый _корневым каталогом_ этой файловой системы. Этот корневой каталог может содержать другие каталоги. +Обращение к файлам и каталогам осуществляется указанием имени файла или каталога, дополняемого прямым слэшем `/`, за которым при необходимости могут следовать имена других каталогов. +К примеру, если каталог `foo` содержит каталог `bar`, который содержит файл `readme.txt`, то полным именем, или _путём_ файла является `foo/bar/readme.txt`. +Заметьте, что это отличается от Windows(R), в которой для отделения имён файлов и каталогов используется `\`. +FreeBSD не использует символьных или каких-либо других именований устройств в пути. +К примеру, набирать `c:\foo\bar\readme.txt` во FreeBSD не имеет смысла. -Внешне это может быть похоже на те операционные системы, которые вы возможно использовали. Есть несколько отличий: например, MS-DOS(R) использует `\` для разделения имен файлов и каталогов, а Mac OS(R) использует `:`. +[[disks-file-systems]] +=== Файловые системы -FreeBSD не использует букв дисков, или других имен дисков в пути. Вам не нужно писать [.filename]#c:/foo/bar/readme.txt# в FreeBSD. +Каталоги и файлы хранятся в файловой системе. +Каждая файловая система на самом верхнем уровне содержит ровно один каталог, называемый _корневым каталогом_ этой файловой системы. +Этот корневой каталог может содержать другие каталоги. +Одна из файловых систем назначается _корневой файловой системой_, или `/`. +Любая другая файловая система _монтируется_ в корневой файловой системе. +Вне зависимости от того, сколько дисков присутствует в системе FreeBSD, каждый каталог выглядит как часть одного диска. -Вместо этого, одна файловая система назначается _корневой файловой системой_. Обращение к корневому каталогу корневой файловой системы происходит через `/`. Любая другая файловая система _монтируется_ к корневой файловой системе. Неважно как много дисков есть в вашей системе FreeBSD, каждый каталог будет выглядеть как расположенный на том же диске. +Рассмотрим три файловых системы, называющиеся `A`, `B`, и `C`. +Каждая файловая система имеет один корневой каталог, в котором содержатся два других каталоги с именами `A1`, `A2` (и, соответственно, `B1`, `B2` и `C1`, `C2`). -Предположим, у вас есть три файловых системы: `A`, `B`, и `C`. Каждая файловая система имеет один корневой каталог, в котором содержатся другие каталоги, называемые `A1`, `A2` (и аналогично `B1`, `B2` и `C1`, `C2`). +Назовём `A` корневой файловой системой. +Если для просмотра содержимого этого каталога использовать команду man:ls[1], то она покажет два подкаталога, `A1` и `A2`. +Дерево каталогов выглядит вот так: -Назовем `A` корневой файловой системой. Если вы используете команду `ls` для просмотра содержимого каталога, вы увидите два подкаталога, `A1` и `A2`. Дерево каталогов выглядит так: +image::example-dir1.png[Дерево каталогов с корневым каталогом и двумя подкаталогами, A1 и A2] -image::example-dir1.png[] +Файловая система должна быть смонтирована в каталог другой файловой системы. +При монтировании файловой системы `B` в каталог `A1`, корневой каталог `B` заменяет `A1`, а каталоги в `B` отображаются в соответствии с этим: -Файловая система должна быть подмонтирована к каталогу другой файловой системы. Предположим, что вы монтируете файловую систему `B` на каталог `A1`. Корневой каталог `B` замещается `A1`, а каталоги в `B` отображаются соответственно: +image::example-dir2.png[Дерево каталогов с корневым каталогом и двумя подкаталогами, A1 и A2. А также дополнительные подкаталоги, B1 и B2, подвешенные к A1] -image::example-dir2.png[] +При необходимости к любым файлам, находящимся в каталогах `B1` или `B2`, можно обратиться по маршруту `/A1/B1` или `/A1/B2`. +Все файлы, находившиеся в `/A1`, временно скрыты. +Они появятся снова, если `B` будет _размонтирована_ с `A`. -Если потребуется, любые файлы из каталогов `B1` или `B2` могут быть получены через путь [.filename]#/A1/B1# или [.filename]#/A1/B2#. Все файлы, бывшие в [.filename]#/A1#, временно скрыты. Они появятся, если `B` будет _размонтирована_ с A. +Если `B` была смонтирована в `A2`, диаграмма будет выглядеть так: -Если `B` была смонтирована на `A2,` диаграмма будет выглядеть так: +image::example-dir3.png[Дерево каталогов с корневым каталогом и двумя подкаталогами, A1 и A2. А также дополнительные подкаталоги, B1 и B2, подвешенные к A2] -image::example-dir3.png[] - -а пути будут [.filename]#/A2/B1# и [.filename]#/A2/B2# соответственно. +а пути будут `/A2/B1` и `/A2/B2`, соответственно. Файловые системы могут быть смонтированы одна на другую. Продолжая предыдущий пример, файловая система `C` может быть смонтирована на каталог `B1` файловой системы `B` в таком порядке: -image::example-dir4.png[] +image::example-dir4.png[Сложное дерево каталогов. Различные каталоги подвешены к корню.] Или `C` может быть смонтирована прямо на файловую систему `A`, на каталог `A1`: -image::example-dir5.png[] - -Если вы знакомы с MS-DOS(R), это похоже, хотя и не идентично, команде `join`. +image::example-dir5.png[Сложное дерево каталогов. Различные каталоги подвешены к корню.] -Как правило, это не должно вас интересовать. Обычно вы создаете файловые системы во время установки FreeBSD, решаете куда их монтировать, и ничего не меняете, пока не понадобится добавить новый диск. - -Можно создать одну большую корневую файловую систему и не создавать других. У такого подхода есть несколько недостатков и одно преимущество. +Вполне возможно иметь одну большую корневую файловую систему и не иметь потребности в создании других. +У такого подхода есть несколько недостатков и одно преимущество. .Преимущества нескольких файловых систем -* Различные файловые системы могут иметь различные _опции монтирования_. Например, в целях безопасности корневая файловая система может быть смонтирована только для чтения, что делает невозможным случайное удаление или редактирование критически важного файла. Отделение файловых систем, используемых пользователями для записи, таких как [.filename]#/home#, от других файловых систем позволяет также монтировать их с параметром _nosuid_; этот параметр отменяет действие битов _suid_/ _guid_ на исполняемых файлах, в этой файловой системе, что потенциально повышает безопасность. +* Различные файловые системы могут иметь различные _параметры монтирования_. Например, корневая файловая система может быть смонтирована в режиме доступности только для чтения, что делает невозможным случайное удаление или редактирование какого-то критически важного файла. Отделение файловых систем, доступных пользователям для записи, таких как `/home`, от других файловых систем позволяет монтировать их с параметром _nosuid_. Этот параметр отменяет действие битов _suid_/ _guid_ на исполняемых файлах в этой файловой системе, что потенциально повышает безопасность. * FreeBSD автоматически оптимизирует расположение файлов на файловой системе в зависимости от того, как файловая система используется. Файловая система, содержащая множество мелких часто записываемых файлов, будет иметь оптимизацию, отличную от таковой для файловой системы, содержащей несколько больших файлов. На одной большой файловой системе эта оптимизация не работает. -* Файловые системы FreeBSD очень устойчивы к внезапному отключению. Тем не менее, потеря питания в критический момент все же может повредить структуру файловой системы. Разделение данных на несколько файловых систем повышает шансы, что система все-таки будет работать и делает более легким восстановление с резервной копии. +* Файловые системы FreeBSD устойчивы к отключению электропитания. Тем не менее, потеря питания в критический момент все же может повредить структуру файловой системы. Разделение данных на несколько файловых систем повышает шансы, что система все-таки будет работать и делает более легким восстановление с резервной копии. .Преимущество одной файловой системы * Размер файловых систем фиксирован. Если вы создаете файловую систему при установке FreeBSD и задаете определенный размер, позднее вы можете обнаружить что нужен раздел большего размера. Это не так легко сделать без резервного копирования, создания файловых систем нового размера и последующего восстановления сохраненных данных. + [IMPORTANT] ==== -В FreeBSD представлена команда man:growfs[8], которая позволяет увеличивать размер файловой системы на лету, устраняя это ограничение. +Во FreeBSD имеется команда man:growfs[8], которая позволяет увеличивать размер файловой системы на лету, устраняя это ограничение. +Файловая системы может быть расширена только на свободное пространство раздела, в котором она находится. +Если имеется пространство за границей раздела, то раздел может быть увеличен при помощи man:gpart[8]. +Если раздел является последним на виртуальном диске, и диск был увеличен, то и раздел может быть увеличен. ==== -Файловые системы содержатся в разделах. Этот термин не имеет того же смысла, что и при более раннем его использовании в этой главе, из-за наследия UNIX(R) в FreeBSD. Каждый раздел обозначается буквой от `a` до `h`. Каждый раздел может содержать только одну файловую систему, это значит что файловая система может быть описана ее точкой монтирования в файловой иерархии, или буквой раздела, в котором она содержится. +[[disks-partitions]] +=== Дисковые разделы -FreeBSD также использует дисковое пространство под _раздел подкачки (swap space)_. Подкачка позволяет FreeBSD работать с _виртуальной памятью_. Ваш компьютер может работать так, как если бы у него было больше памяти, чем есть на самом деле. Когда у FreeBSD кончается память, она перемещает часть данных, не используемых в данный момент, в раздел подкачки и возвращает их обратно (перемещая в подкачку что-то другое), когда они нужны. +Файловые системы размещаются в _разделах_. +Диски разбиваются на разделы в соответствии с одной из схем разбиения на разделы; обратитесь к разделу crossref:basics[bsdinstall-part-manual, Разметка в неавтоматизированном режиме]. +Более новой схемой является GPT; более старые компьютеры, применяющие BIOS, используют MBR. +GPT поддерживает разбиение диска на разделы, имеющие определённый размер, смещение и тип. +Она поддерживает большое количество разделов и типов разделов, и рекомендуется к использованию во всех случаях, где это возможно. +Разделы GPT используют имя диска с суффиксом, при этом суффикс `p1` обозначает первый раздел, `p2` второй раздел и так далее. +Однако MBR поддерживает лишь небольшое количество разделов. +Разделы MBR во FreeBSD называют `слайсами`. +Слайсы могут быть использованы для разных операционных систем. +Слайсы FreeBSD, в свою очередь, разбиваются на разделы при помощи меток BSD (обратитесь к man:bsdlabel[8]). -По некоторым разделам есть определенные соглашения. +Номера слайсов начинаются с 1, следуют за именем устройства и предваряются `s`. +Таким образом, "da0__s1__" является первым слайсом первого накопителя SCSI. +На диске может быть только четыре физических слайса, но внутри физических слайсов подходящего типа могут размещаться логические слайсы. +Эти расширенные слайсы нумеруются начиная с 5, так что "ada0__s5__" является первым расширенным слайсом на первом диске SATA. +Эти устройства используются файловыми системами, занимающими весь слайс. -[.informaltable] -[cols="1,1", frame="none", options="header"] +Каждый раздел GPT или BSD может содержать только одну файловую систему, и это значит, что файловые системы описываются либо при помощи их типичных точек монтирования в иерархии файловой системы, либо по имени раздела, в котором они размещены. + +FreeBSD также использует дисковое пространство для _раздела подкачки_, обеспечивающего работу _виртуальной памяти_. Это позволяет вашему компьютеру работать так, как если бы у него было больше памяти, чем есть на самом деле. Когда у FreeBSD кончается память, она перемещает часть данных, не используемых в данный момент, в раздел подкачки и возвращает их обратно (перемещая в подкачку что-то другое), когда они нужны. +Это явление называется _подкачкой_. + +Для некоторых разделов BSD существуют определённые связанные с ними соглашения. + +[cols="25h,~"] |=== | Раздел | Соглашение |`a` -|Как правило, содержит корневую файловую систему +|Как правило, содержит корневую файловую систему. |`b` -|Как правило, содержит раздел подкачки +|Как правило, содержит пространство подкачки. |`c` -|Как правило, такого же размера, что и весь слайс (slice). Это позволяет утилитам, которым нужно работать над всем слайсом (например, сканер плохих блоков), работать с разделом `c`. В обычной ситуации не нужно создавать файловую систему на этом разделе. +|В обычном случае имеет такой же размер, что и окружающий слайс. Это позволяет утилитам, которым нужно обрабатывать весь слайс, таким, как сканер плохих блоков, использовать раздел `c`. В обычном случае создавать файловую систему в этом разделе не требуется. |`d` |Раздел `d` создавался для специальных целей, хотя сейчас они не актуальны и `d` может быть задействован как обычный раздел. |=== -Каждый раздел-содержащий-файловую-систему хранится на том, что во FreeBSD называется _слайс (slice)_. Слайс - это термин FreeBSD, то, что обычно называют разделом, и опять же это из-за UNIX(R) основы FreeBSD. Слайсы нумеруются с 1 по 4. +Слайсы и "опасно размеченные" физические устройства содержат разделы BSD, обозначаемые буквами от `a` до `h`. +Эта буква добавляется к имени устройства, и, таким образом, "da0__a__" является разделом `a` на первом устройстве `da`, являющемся "эксклюзивно выделенным". +"ada1s3__e__" является пятым разделом третьего слайса второго диска SATA. -Номера слайсов следуют за именем устройства, предваряемые строчной `s`, начиная с 1. Так "da0__s1__" это первый слайс первого SCSI устройства. Может быть только четыре физических слайса на диске, но могут быть логические слайсы нужного типа внутри физических слайсов. Эти дополнительные слайсы нумеруются начиная с 5, так что "ad0__s5__" это первый дополнительный слайс на первом IDE диске. Эти устройства используются файловыми системами, занимающими весь слайс. +Наконец, каждый диск идентифицирован. Имя диска начинается с кода, обозначающего тип диска, затем идет номер диска. +В отличие от разделов и слайсов, нумерация дисков начинается с 0. +Часто встречающиеся коды перечислены в разделе crossref:basics[disks-naming,Имена дисковых устройств]. -Слайсы, "эксклюзивно выделенные (dangerously dedicated)" физические устройства и другие устройства содержат _разделы_, представляемые буквами от `a` до `h`. Эти буквы добавляются к имени устройства. "da0__a__" это раздел a на первом устройстве da, который "эксклюзивно выделен". "ad1s3__e__" это пятый раздел в третьем слайсе второго IDE диска. - -Наконец, каждый диск идентифицирован. Имя диска начинается с кода, обозначающего тип диска, затем идет номер диска. В отличие от слайсов, нумерация дисков начинается с 0. Основные коды, которые вам могут встретиться, есть в <<basics-dev-codes>>. - -В то время, как ссылка на раздел FreeBSD требует также указания слайса и диска, содержащего раздел, ссылка на слайс требует также указания имени диска. Другими словами, ссылаясь на раздел, указывайте имя диска, `s`, номер слайса, и затем букву раздела. Примеры показаны в <<basics-disk-slice-part>>. +Для ссылки на раздел внутри слайса указывайте имя диска, `s`, номер слайса, а затем букву раздела. +Примеры показаны в crossref:basics[basics-disk-slice-part,Примеры именований диска, слайса и раздела]. +В обозначение разделов GPT включается имя диска, `p`, а затем номер раздела. +crossref:basics[basics-concept-disk-model,Концептуальная модель диска] отражает концептуальную модель рабиения диска с использованием слайсов MBR. <<basics-concept-disk-model>> показывает концептуальную модель диска, которая должна помочь прояснить ситуацию. -Для установки FreeBSD вы должны сначала настроить слайсы дисков, затем создать разделы внутри слайсов, которые будут использованы для FreeBSD, а затем создать файловую систему (или подкачку) в каждом разделе и решить, куда файловая система будет смонтирована. +При установке FreeBSD с использованием MBR настройте дисковые слайсы и создайте разделы внутри слайса для использования во FreeBSD. +При использовании GPT, настройте разделы для каждой файловой системы. +В любом случае создайте файловую систему или раздел подкачки в каждом разделе, а также решите, где будет монтироваться каждая из файловых систем. +Обратитесь к man:gpart[8] для получения информации о работе с разделами. -[[basics-dev-codes]] -.Коды дисковых устройств +[[disks-naming]] +.Имена дисковых устройств [cols="1,1", frame="none", options="header"] |=== -| Код -| Значение +| Тип дискового устройства +| Имя дискового устройства + +|Приводы жёстких дисков SATA и IDE +|`ada` + +|Приводы жёстких дисков SCSI и устройства хранения USB +|`da` -|[.filename]#ad# -|ATAPI (IDE) диск +|Устройства хранения с интерфейсом NVMe +|`nvd` или `nda` -|[.filename]#da# -|SCSI direct access диск +|Приводы CD-ROM с интерфейсом SATA и IDE +|`cd` -|[.filename]#acd# -|ATAPI (IDE) CDROM +|Приводы CD-ROM с интерфейсом SCSI +|`cd` -|[.filename]#cd# -|SCSI CDROM +|Приводы гибких дисков +|`fd` -|[.filename]#fd# -|Floppy disk +|Ленточные накопители с интерфейсом SCSI +|`sa` + +|Устройства хранения RAID +|Например, `aacd` для Adaptec AdvancedRAID, `mlxd` и `mlyd` для Mylex, `amrd` для AMI MegaRAID, `idad` для Compaq Smart RAID и `twed` для 3ware RAID. |=== [[basics-disk-slice-part]] -.Пример имен диска, слайса, и раздела +.Примеры именований диска, слайса и раздела [example] ==== [.informaltable] @@ -1235,8 +1384,8 @@ FreeBSD также использует дисковое пространств | Имя | Значение -|`ad0s1a` -|Первый раздел (`a`) на первом слайсе (`s1`) первого IDE диска (`ad0`). +|`ada0s1a` +|Первый раздел (`a`) на первом слайсе (`s1`) первого диска SATA (`ada0`). |`da1s2e` |Пятый раздел (`e`) на втором слайсе (`s2`) второго SCSI диска (`da1`). @@ -1247,92 +1396,96 @@ FreeBSD также использует дисковое пространств .Концептуальная модель диска [example] ==== -Эта диаграмма показывает первый подключенный к системе IDE диск с точки зрения FreeBSD. Предположим, что размер диска 4 GB, и он содержит два 2 GB слайса (MS-DOS(R) разделы). Первый слайс содержит MS-DOS(R) диск, [.filename]#C:#, а второй слайс содержит установленную FreeBSD. В этом примере у установленной FreeBSD есть три раздела с данными и раздел подкачки. - -В каждом из трех разделов есть файловая система. Раздел `a` используется для корневой файловой системы, `e` для иерархии каталогов [.filename]#/var#, а `f` для иерархии каталогов [.filename]#/usr#. +Эта диаграмма изображает первый подключенный к системе диск SATA с точки зрения FreeBSD. +Предположим, что объём диска составляет 250 ГБ, и он содержит слайс размером 80 ГБ и слайс размером 170 ГБ (разделы MS-DOS(R)). +Первый слайс содержит файловую систему Windows(R) NTFS, `C:`, а второй слайс содержит установленную FreeBSD. +В этом примере установленная FreeBSD имеет четыре раздела с данными и раздел подкачки. -image::disk-layout.png[] +Каждый из четырёх разделов содержит файловую систему. +Раздел `a` будет используется для корневой файловой системы, `d` для `/var/`, `e` для `/tmp/` и `f` для `/usr/`. +Раздел, обозначенный буквой `c`, соответствует всему слайсу и поэтому не используется как обычный раздел. +image::disk-layout.png[Разметка диска, разделённого между Windows и FreeBSD] ==== [[mount-unmount]] == Монтирование и размонтирование файловых систем -Файловая система лучше всего представима в виде дерева, с корнем в [.filename]#/#. Каталоги, [.filename]#/dev#, [.filename]#/usr# и прочие - это ветви дерева, которые, в свою очередь, являются корнями для поддеревьев, также имеющих ветви ([.filename]#/usr/local#), и т.д. +Файловая система лучше всего представима в виде дерева, которое, если можно так выразиться, растёт из `/`. +Каталоги `/dev`, `/usr` и прочие, находящиеся в корневом каталоге, являются ветвями и, в свою очередь, могут иметь собственные ветви, такие как `/usr/local`, и так далее. -Хорошей практикой является разнесение некоторых особо важных каталогов на разные файловые системы. Например, [.filename]#/var#, содержит [.filename]#log/#, [.filename]#spool/#, а также всевозможные временные файлы и нередко может занять все свободное место на диске. Поэтому лучше смонтировать [.filename]#/var# отдельно, чтобы избежать переполнения [.filename]#/#. +Имеются разные основания для того, чтобы размещать некоторые из этих каталогов в отдельных файловых системах. +`/var` содержит каталоги `log/`, `spool/` и разные виды временных файлов и, таким образом, может полностью заполнить свободное дисковое пространство. +Заполнение корневой файловой системы нежелательно, поэтому часто предпочитают отделить `/var` от `/`. -Часто бывает так, что некоторые разделы файловой системы расположены на разных физических носителях (дисках, CDROM), виртуальных или сетевых (например, crossref:network-servers[network-nfs,"сетевая файловая система (Network File System, NFS)"]). В этом случае узлы файловой иерархии будут расположены на разных файловых системах. +Другой частой причиной для размещения определённых веток каталогов в отдельных файловых системах является их расположение на отдельных физических дисках, отдельных виртуальных дисках, например, в Network File System, описанной в отдельном crossref:network-servers[network-nfs,разделе], или на CDROM. [[disks-fstab]] -=== Файл [.filename]#fstab# +=== Файл fstab -Файловые системы, перечисленные в [.filename]#/etc/fstab#, монтируются автоматически в crossref:boot[boot,процессе загрузки] (если, конечно, для них не указана опция `noauto`). - -Формат файла [.filename]#/etc/fstab# следующий (файловые системы перечисляются построчно): +В процессе загрузки (crossref:boot[boot,Процесс загрузки FreeBSD]) файловые системы, перечисленные в `/etc/fstab`, монтируются автоматически, за исключением тех, для которых указан параметр `noauto`. +Этот файл содержит записи в следующем формате: [.programlisting] .... - - устройство /точка-монтирования тип файловой системы опции частота дампов порядок проверки +устройство /точка-монтирования тип файловой системы опции частота дампов passno .... `устройство`:: -Имя устройства (которое должно присутствовать), как описано в crossref:disks[disks-naming,Имена устройств]. +Имя существующего устройства, соответствующее описанному в разделе crossref:basics[disks-naming,Имена дисковых устройств]. `точка монтирования`:: -Каталог (существующий), куда следует смонтировать файловую систему. +Существующий каталог, предназначенный для монтирования файловой системы. `тип файловой системы`:: Тип файловой системы, который передается программе man:mount[8]. По умолчанию FreeBSD использует `ufs`. `опции`:: -Например, `rw`, для монтирования файловой системы в режиме "чтение-запись", или `ro`, для режима "только чтение", за которыми могут следовать и другие опции. Довольно часто используется опция `noauto`, чтобы не монтировать автоматически файловые системы в процессе загрузки. Об остальных опциях можно прочитать в man:mount[8]. +Либо `rw` для монтирования файловой системы в режиме чтения и записи, либо `ro` для файловых систем, доступных только в режиме чтения, за которыми могут следовать и другие нужные параметры. Довольно часто используется опция `noauto`, чтобы не монтировать автоматически файловые системы в процессе загрузки. Остальные параметры перечислены в man:mount[8]. `частота дампов`:: -Используется утилитой man:dump[8] для определения файловых систем, с которых необходимо периодически снимать специальные архивные копии. При отсутствии этого параметра принимается равным нулю. +Используется утилитой man:dump[8] для указания файловых систем, с которых требуется снимать копии. При отсутствии этого параметра он принимает нулевое значение. -`порядок проверки`:: -Определяет порядок, в котором следует проверять файловые системы (чаще всего, в случае некорректного размонтирования или внезапной перезагрузки системы). Если файловую системы не нужно проверять, этот параметр должен быть установлен в ноль. Для корневой файловой системы (которая должна быть проверена в первую очередь) установите его в 1. Для всех остальных - 2 или больше. Если две или более файловые системы имеют одинаковое значение `passno`, man:fsck[8] попытается проверять их параллельно (если, конечно, это возможно физически). +`passno`:: +Определяет порядок, в котором файловые системы формата UFS должны проверяться при помощи man:fsck[8] после перезагрузки. +Для файловых систем, которые должны быть пропущены при проверке, параметр `passno` должен быть установлен в нулевое значение. Корневая файловая система должна проверяться в первую очередь и иметь значение `passno`, установленное равным единице. Для других файловых систем значение этого параметра должно превышать единицу. Если две и более файловые системы имеют одинаковое значение `passno`, то man:fsck[8] будет пытаться проверять файловые системы параллельно, если это возможно. -Обратитесь к man:fstab[5] за дополнительной информацией о формате файла [.filename]#/etc/fstab# и различных опциях монтирования. +Обратитесь к man:fstab[5] для получения дополнительной информацией о формате файла `/etc/fstab` и его параметрах. [[disks-mount]] -=== Команда `mount` +=== Использование man:mount[8] -Команда man:mount[8] используется, как следует из ее имени, для монтирования файловых систем. - -Пример использования (простейший случай): +Файловые системы монтируются при помощи man:mount[8]. +Самый простой формат имеет следующий вид: [example] ==== - [source,shell] .... -# mount устройство точка-монтирования +# mount __device__ __mountpoint__ .... - ==== -Перечислим основные опции, которые может принимать команда man:mount[8] (полный список смотрите на странице справочника): +Файловая система, включённая в `/etc/fstab`, также может быть смонтирована с указанием только лишь точки монтирования. + +Эта команда имеет много параметров, описанных в man:mount[8]. +Самые часто используемые параметры таковы: -.Опции монтирования +.Параметры монтирования `-a`:: -Смонтировать все файловые системы, перечисленные в файле [.filename]#/etc/fstab#. Исключение составляют помеченные как "noauto", перечисленные после опции `-t` и уже смонтированные. +Смонтировать все файловые системы, перечисленные в файле `/etc/fstab`, за исключением тех, что помечены как "noauto", исключены параметром `-t` или уже смонтированы. `-d`:: Сделать все, кроме самого системного вызова mount. Эта опция полезна вместе с флагом `-v` для определения того, что на самом деле пытается сделать man:mount[8]. `-f`:: -Монтировать поврежденный раздел (опасно!), или форсировать отмену всех запросов на запись при изменении режима монтирования с "чтение-запись" на "только чтение". +Принудительное монтирование непроверенного раздела (опасно) или аннулирование полномочий на операции записи данных при понижении статуса монтирования файловой системы с доступной на чтение-запись на доступной только для операций чтения. `-r`:: -Монтировать файловую систему в режиме "только для чтения". То же самое, что и указание аргумента `ro` для опции `-o`. +Монтировать файловую систему в режиме только для чтения. Идентично использованию параметра `-o ro`. `-t` _fstype_:: -Монтировать файловую систему как систему указанного типа, или, в случае опции `-a`, только файловые системы данного типа. -+ -По умолчанию, тип файловой системы - "ufs". +Смонтировать указанный тип файловой системы или, в случае указания `-a`, монтировать файловые системы только данного типа. По умолчанию применяется тип файловой системы "ufs". `-u`:: Обновить опции монтирования для файловой системы. @@ -1343,168 +1496,206 @@ image::disk-layout.png[] `-w`:: Монтировать файловую систему в режиме "чтение-запись". -Опция `-o` принимает разделенные запятыми аргументы, включая нижеперечисленные: - -noexec:: -Запрет на исполнение бинарных файлов на файловой системе (тоже полезная опция для повышения безопасности системы). +Следующие значения могут быть переданы в качестве аргументов `-o` в виде списка значений, разделённых запятыми: nosuid:: Игнорировать setuid и setgid биты на файловой системе (еще одна полезная опция для повышения безопасности системы). [[disks-umount]] -=== Команда `umount` +=== Использование man:umount[8] -Команда man:umount[8] принимает в качестве параметра точку монтирования какой-либо файловой системы, имя устройства, опцию `-a` или `-A`. +Для размонтирования файловой системы используйте man:umount[8]. +Эта команда принимает один параметр, который может соответствовать точке монтирования, имени устройства либо принимать значение `-a` или `-A`. -Кроме того, вы можете дополнительно указать опцию `-f` для форсированного размонтирования файловой системы, и `-v` для получения более подробной информации. Имейте ввиду, что это в общем случае опасно и потому не рекомендуется, так как тем самым вы можете нарушить работу компьютера или повредить данные на файловой системе. +Во всех вариантах принимается параметр `-f` для принудительного размонтирования и `-v` для выдачи подробной информации. +Имейте в виду, что применение `-f` в целом не рекомендутся, так как может привести к аварийному завершению работы компьютера или повредить данные в файловой системе. -Опции `-a` и `-A` используются для размонтирования всех файловых систем (разве что вы укажете опцию `-t`). Разница состоит в том, что `-A` не пытается размонтировать корневую файловую систему. +Для размонтирования всех смонтированных файловых систем или только тех типов файловых систем, что перечислены после параметра `-t`, воспользуйтесь параметрами `-a` и `-A`. +Заметьте, что при использовании `-A` попытка размонтирования корневой файловой системы не предпринимается. [[basics-processes]] -== Процессы +== Процессы и даемоны -FreeBSD является многозадачной операционной системой. Это означает, что одновременно может быть запущена более чем одна программа. Каждая программа, работающая в некоторый момент времени, называется _процессом_. Каждая команда, которую вы запускаете, порождает хотя бы один процесс. Есть несколько системных процессов, запущенных все время и поддерживающих функциональность системы. +FreeBSD является многозадачной операционной системой. +Каждая программа, выполняющаяся в некоторый выбранный момент времени, называется _процессом_. +Каждая запускаемая команда порождает хотя бы один новый процесс, и имеется определённое количество системных процессов, которые запускает FreeBSD. -У каждого процесса есть уникальный номер, называемый _process ID_, или _PID_, и, как и у файлов, у каждого процесса есть владелец и группа. Информация о владельце и группе процесса используется для определения того, какие файлы и устройства могут быть открыты процессом с учетом прав на файлы, о которых говорилось ранее. Также у большинства процессов есть родительский процесс. Например, при запуске команд из оболочки, оболочка является процессом и любая запущенная команда также является процессом. Для каждого запущенного таким путем процесса оболочка будет являться родительским процессом. Исключением из этого правила является специальный процесс, называемый man:init[8]. `init` всегда первый процесс, его PID всегда 1. `init` запускается автоматически ядром во время загрузки FreeBSD. +Каждый процесс идентифицируется уникальным номером, называемым _идентификатором процесса_ (_process ID_) или _PID_. +Подобно файлам, у каждого процесса имеется один владелец и группа, при этом полномочия владельца и группы используются для определения того, какие файлы и устройства могут быть открыты процессом. +У большинства процессов также есть родительский процесс, которых их запустил. +Например, командная оболочка является процессом, и любая команда, запущенная из командной оболочки, является процессом, для которого командная оболочка является родительским процессом. +Исключением из этого правила является специальный процесс, который называется man:init[8], который всегда является первым процессом, запускаемым во время загрузки, и который всегда имеет PID, равный `1`. -Две команды очень полезны для просмотра работающих в системе процессов, это man:ps[1] и man:top[1]. Команда `ps` используется для получения списка запущенных процессов и может показать их PID, сколько памяти они используют, команду, которой они были запущены и т.д. Команда `top` показывает запущенные процессы и обновляет экран каждые несколько секунд, что позволяет наблюдать за работой компьютера в реальном времени. +Некоторые программы спроектированы не для того, чтобы работать в режиме ввода команд пользователя, и отключаются от терминала при первой возможности. +К примеру, веб-сервер отвечает на веб-запросы, а не на команды пользователя. +Другим примером такого типа приложений являются почтовые серверы. +Программы такого типа известны под названием _даемоны_. +Понятие даемона пришло из греческой мифологии и обозначает сущность, которая не является ни хорошей, ни плохой, и которая невидимо выполняет полезные дела. +Это объясняет тот факт, что талисманом BSD является дружелюбно выглядящий даемон в кедах и с вилами. -По умолчанию, `ps` показывает только принадлежащие вам процессы. Например: +Имеется соглашение, по которому программы, обычно работающие в режиме даемона, именуются с "d" в конце названия. +К примеру, BIND означает Berkeley Internet Name Domain, но на самом деле исполняемой программой является `named`. +Программой веб-сервера Apache является `httpd`, а даемоном очереди принтера является `lpd`. +Это всего лишь соглашение об именовании. +К примеру, основной почтовый даемон для приложения Sendmail называется `sendmail`, а не `maild`. -[source,shell] -.... -% ps - PID TT STAT TIME COMMAND - 298 p0 Ss 0:01.10 tcsh - 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) -37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14) -48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi -48730 p0 IW 0:00.00 (dns helper) (navigator-linux-) -72210 p0 R+ 0:00.00 ps - 390 p1 Is 0:01.14 tcsh - 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y - 6688 p3 IWs 0:00.00 tcsh -10735 p4 IWs 0:00.00 tcsh -20256 p5 IWs 0:00.00 tcsh - 262 v0 IWs 0:00.00 -tcsh (tcsh) - 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16 - 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16 - 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc - 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish -.... - -Как вы можете видеть в данном примере, вывод man:ps[1] организован в несколько колонок. Идентификатор процесса `PID` обсуждался ранее. PID назначаются с 1 до 99999 и опять с начала, если последнее число будет превышено (однажды выданный и используемый PID не может быть назначен повторно). Колонка `TT` показывает терминал (tty), на котором запущена программа (можете пока забыть про это). `STAT` показывает состояние программы и опять же может быть пока проигнорирован. `TIME` это количество времени центрального процессора, использованное программой - это обычно не время, прошедшее с запуска программы, поскольку большинство программы проводят много времени в ожидании некоторого события перед тем, как занять время процессора. Наконец, `COMMAND` это команда, которой программа была запущена. - -У man:ps[1] есть множество различных опций, влияющих на выводимую информацию. Один из наиболее полезных наборов опций это `auxww`. `a` позволяет показать информацию о всех запущенных процессах, а не только тех, которыми вы владеете. `u` показывает имя пользователя, владеющего процессом, и информацию об используемой памяти. `x` показывает информацию о процессах-даемонах и `ww` указывает man:ps[1] показать всю командную строку для каждого процесса, вместо обрезания ее, когда она станет слишком длинной, чтобы уместиться на экран. - -Вывод man:top[1] похож на только что описанный. Обычно он выглядит так: +=== Просмотр процессов + +Для просмотра процессов, работающих в системе, воспользуйтесь man:ps[1] или man:top[1]. +Для выдачи статичного списка выполняемых в данный момент процессов, их PID, объёма используемой ими памяти и команды, которой они были запущены, используйте man:ps[1]. +Для отображения всех выполняющихся процессов и обновления этого списка каждые несколько секунд в целях интерактивного наблюдения за тем, что делает компьютер, используйте man:top[1]. + +По умолчанию man:ps[1] показывает пользователю только те команды, которые запущены пользователем и владельцем которых он является. +К примеру: [source,shell] .... -% top -last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10 -47 processes: 1 running, 46 sleeping -CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle -Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free -Swap: 256M Total, 38M Used, 217M Free, 15% Inuse - - PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND -72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top - 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 - 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA - 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm -48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu - 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd - 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt -... +% ps .... -Вывод разбит на два раздела. Заголовок (первые пять строк) показывает PID последнего запущенного процесса, среднее значение загрузки системы (которое показывает насколько система занята), время работы системы с последней перезагрузки и текущее время. Другие цифры заголовка относятся к количеству запущенных процессов (в данном примере 47), количеству занятой памяти и подкачки и время, занимаемое различными состояниями процессора. - -Ниже идут несколько колонок, содержащих похожую на вывод man:ps[1] информацию. Как и раньше, это PID, время процессора, командная строка. man:top[1] показывает также величину занятой процессом памяти. Это значение разбито на две колонки, одна для общего объема, а другая для резидентного - общий объем показывает сколько всего памяти нужно приложению, а резидентный показывает количество памяти, используемой в данный момент. Из этого примера видно, что man:getenv[3] требует почти 30 MB памяти, но в данный момент использует только 9 MB. - -man:top[1] автоматически обновляет экран каждые две секунды; это значение можно изменить опцией `s`. - -[[basics-daemons]] -== Даемоны, сигналы, уничтожение процессов +Выводимый текст должен быть похож на следующее: -Если вы запускаете редактор, им можно легко управлять, открывать в нем файлы и т.д. Вы можете делать это, поскольку редактор предоставляет такие возможности и потому, что редактор присоединен к _терминалу_. Некоторые программы разработаны без поддержки интерфейса пользователя, поэтому они отсоединяются от терминала при первой возможности. Например, веб-сервер целый день отвечает на запросы из сети, и ему как правило не требуется ваше вмешательство. Программы, передающие почту от сервера к серверу - другой пример приложений этого класса. +[.programlisting] +.... + PID TT STAT TIME COMMAND +8203 0 Ss 0:00.59 /bin/csh +8895 0 R+ 0:00.00 ps +.... -Мы называем эти программы _даемонами_. Даемоны это персонажи греческой мифологии: хорошие или плохие, они были спутниками человека и, вообще говоря, выполняли полезную работу для людей, почти как веб- и почтовые серверы выполняют полезную работу сегодня. Это причина, по которой талисманом BSD долгое время является веселый даемон в кедах и с вилами. +Выдача команды man:ps[1] организована в несколько столбцов. +Столбец `PID` отображает идентификатор процесса. +PID назначаются начиная с 1 и увеличиваются до 99999, а затем отсчёт начинается с начала. +Однако PID не назначается повторно, если он уже используется. +Столбец `TT` показывает терминал (tty), на котором выполняется программа, а `STAT` показывает состояние программы. +`TIME` соответствует количеству времени, которое программа выполняется на центральном процессоре. +Обычно это не то же самое время, что прошло с момента запуска программы, поскольку большинство программ проводят много времени в ожидании некоторого события, прежде чем занять время процессора. +Наконец, `COMMAND` содержит команду, которая использовалась для запуска программы. -Есть соглашение, по которому имя программы, которая обычно запускается как даемон, заканчивается на "d". BIND это Berkeley Internet Name Domain, а выполняемая программа называется `named`; программа веб сервера Apache называется `httpd`; даемон очереди печати это `lpd` и так далее. Это соглашение, а не жесткое правило; например, главный почтовый даемон для Sendmail называется `sendmail`, а не `maild`, как вы могли бы предположить. +Имеется множество различных опций для изменения выводимой информации. +Один из наиболее полезных наборов опций это `auxww`, при этом `a` отображает информацию о всех запущенных процессах всех пользователей, `u` показывает имя и объём используемой памяти пользователя, владеющего процессом, `x` отображает информацию о процессах-даемонах, а `ww` указывает man:ps[1] на отображение всей командной строки для каждого процесса, вместо её обрезания в случае, если она слишком длинная, чтобы уместиться на экран. -Иногда может потребоваться взаимодействие с процессом даемона. Один из способов взаимодействия с процессом даемона (или с любым другим запущенным процессом) - это посылка ему так называемого _сигнала_. Есть множество различных сигналов - некоторые из них имеют специальное значение, другие обрабатываются приложением, реакция которого на эти сигналы должна быть описана в документации. Вы можете посылать сигналы только тем процессам, владельцем которых являетесь. Если вы отправите сигнал какому-то другому процессу с помощью man:kill[1] или man:kill[2], доступ будет запрещен. Исключением из правил является пользователь `root`, который может отправлять сигналы любому процессу. +Вывод man:top[1] выглядит похожим образом: -В некоторых случаях FreeBSD тоже посылает сигналы приложениям. Если приложение плохо написано и пробует обратиться к области памяти, к которой оно не должно обращаться, FreeBSD посылает процессу сигнал _нарушение сегментации_ (`SIGSEGV`). Если приложение использует системный вызов man:alarm[3], чтобы получить уведомление по истечении определенного периода времени, будет отправлен сигнал Alarm (`SIGALRM`) и т.д. +[source,shell] +.... +% top +.... -Два сигнала могут быть использованы для завершения процесса, `SIGTERM` и `SIGKILL`. `SIGTERM` это корректный способ завершить процесс; процесс может _поймать_ сигнал, определить, что его хотят завершить, закрыть любые файлы, которые он мог открыть, и закончить то, что он делал в момент перед закрытием. В некоторых случаях процесс может даже игнорировать `SIGTERM`, если выполняет задачу, которая не может быть прервана. +Выводимый текст должен быть похож на следующее: -`SIGKILL` не может быть проигнорирован процессом. Этот сигнал говорит "Меня не волнует что ты делаешь - остановись немедленно". Если вы посылаете процессу `SIGKILL`, FreeBSD сразу же остановит этот процесс. +[.programlisting] +.... +last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46 +107 processes: 2 running, 104 sleeping, 1 zombie +CPU: 6.2% user, 0.1% nice, 8.2% system, 0.4% interrupt, 85.1% idle +Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free +ARC: 992M Total, 377M MFU, 589M MRU, 250K Anon, 5280K Header, 21M Other +Swap: 2048M Total, 2048M Free + + PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND + 557 root 1 -21 r31 136M 42296K select 0 2:20 9.96% Xorg + 8198 dru 2 52 0 449M 82736K select 3 0:08 5.96% kdeinit4 + 8311 dru 27 30 0 1150M 187M uwait 1 1:37 0.98% firefox + 431 root 1 20 0 14268K 1728K select 0 0:06 0.98% moused + 9551 dru 1 21 0 16600K 2660K CPU3 3 0:01 0.98% top + 2357 dru 4 37 0 718M 141M select 0 0:21 0.00% kdeinit4 + 8705 dru 4 35 0 480M 98M select 2 0:20 0.00% kdeinit4 + 8076 dru 6 20 0 552M 113M uwait 0 0:12 0.00% soffice.bin + 2623 root 1 30 10 12088K 1636K select 3 0:09 0.00% powerd + 2338 dru 1 20 0 440M 84532K select 1 0:06 0.00% kwin + 1427 dru 5 22 0 605M 86412K select 1 0:05 0.00% kdeinit4 +.... + +Вывод разбит на два раздела. +Заголовок (первые пять или шесть строк) показывает PID последнего запущенного процесса, среднее значение загрузки системы (которое показывает насколько система занята), время работы системы с последней перезагрузки и текущее время. +Остальные числа в заголовке относятся к количеству работающих процессов, объёму использования оперативной памяти и пространства подкачки, а также количеству времени, проводимого системой в различных состояниях центрального процессора. +Если был загружен модуль файловой системы ZFS, то строка `ARC` содержит информацию о том, какой объём данных был считан из кэша оперативной памяти, а не с диска. + +Под заголовком размещены несколько столбцов, содержащих информацию, похожую на результат работы man:ps[1], такую как PID, имя пользователя, объём времени ЦПУ и команда, которая запустила процесс. +По умолчанию man:top[1] показывает также объём памяти, занятой процессом. +Эта информация разделена на два столбца: один для суммарного объёма и один для занимаемого. +Суммарный объём соответствует тому, что требовался приложению, а занимаемый соответствует объёму, фактически используемому сейчас. + +man:top[1] автоматически обновляет экран каждые две секунды. +Другое значение этого временного интервала может быть задано при помощи параметра `-s`. -Другие сигналы, которые возможно вам понадобятся, `SIGHUP`, `SIGUSR1`, и `SIGUSR2`. Это сигналы общего назначения, различные приложения могут по-разному реагировать на них. +[[basics-daemons]] +=== Прекращение процессов -Предположим, что вы изменили файл конфигурации веб сервера - теперь нужно указать ему перечитать конфигурацию. Можно остановить и запустить `httpd`, но это приведет к кратковременной остановке сервера, которая может быть нежелательна. Большинство даемонов написаны так, чтобы при получении сигнала `SIGHUP` перечитывать файлы конфигурации. Поэтому вместо уничтожения и запуска `httpd` можно послать сигнал `SIGHUP`. Поскольку нет стандартного способа реагирования на этот сигнал, различные даемоны будут вести себя по разному; прочитайте документацию на даемон по этому вопросу. +Одним из способов взаимодействия с любым работающим процессом или даемоном является отправка ему _сигнала_ при помощи команды man:kill[1]. +Имеется множество различных сигналов; некоторые из них имеют специальное значение, тогда как другие описаны в документации приложения. +Пользователь может посылать какой-либо сигнал только тем процессам, владельцем которых он является, а отправка сигнала процессу какого-то другого пользователя приведёт к ошибке запрета доступа. +Исключением является пользователь `root`, который может отправлять сигналы чьим угодно процессам. -Сигналы посылаются с помощью команды man:kill[1], как показано в этом примере. +Операционная система также может отправлять сигнал процессу. +Если приложение написано некорректно и пытается обратиться к области памяти, к которой оно не должно обращаться, FreeBSD посылает процессу сигнал "Segmentation Violation" (`SIGSEGV`). +Если приложение было написано с учётом использования системного вызова man:alarm[3] для получения уведомления по истечении определённого периода времени, то ему будет отправлен сигнал "Alarm" (`SIGALRM`). -[.procedure] -==== -*Procedure: Отправка сигнала процессу* +Для остановки процесса могут использоваться два сигнала: `SIGTERM` и `SIGKILL`. +`SIGTERM` является вежливым способом завершить процесс, так как процесс может считать сигнал, закрыть какие-либо протоколирующие файлы, которые он мог открыть, и завершить то, что он делал до завершения работы. +В некоторых случаях процесс может даже игнорировать `SIGTERM`, если выполняет задачу, которая не может быть прервана. -Этот пример показывает как послать сигнал man:inetd[8]. Файл конфигурации `inetd`[.filename]#/etc/inetd.conf#, `inetd` перечитает этот файл, если ему отправить сигнал `SIGHUP`. +`SIGKILL` не может быть проигнорирован процессом. +Отправка процессу `SIGKILL` обычно остановит этот процесс тотчас же. -. Нужно определить PID процесса, которому вы хотите отправить сигнал. Сделайте это с помощью man:ps[1] и man:grep[1]. Команда man:grep[1] используется для поиска по заданной строке в выходном потоке. Эта команда запускается под обычным пользователем, а man:inetd[8] под `root`, поэтому man:ps[1] должна быть запущена с параметром `ax`. -+ -[source,shell] -.... -% ps -ax | grep inetd - 198 ?? IWs 0:00.00 inetd -wW -.... -+ -Итак, PID man:inetd[8] 198. В некоторых случаях в выводе команды может также появиться `grep inetd`. Это из-за способа, которым man:ps[1] получает список запущенных процессов. -. Используйте man:kill[1] для отправки сигнала. Поскольку man:inetd[8] запускается из под `root`, нужно сначала использовать man:su[1] для получения прав `root`. -+ -[source,shell] -.... -% su -Password: -# /bin/kill -s HUP 198 -.... -+ -Как и большинство команд UNIX(R), man:kill[1] ничего не выведет, если отработает нормально. Если вы посылаете сигнал процессу, которым не владеете, на экране появится `kill: _PID_: Operation not permitted`. При неправильно набранном PID вы или отправите сигнал другому процессу, что может привести к неприятностям, или, если повезет, сигнал будет отправлен на PID, который в данный момент не используется - на экране появится `kill: _PID_: No such process`. -+ [NOTE] -.Зачем использовать `/bin/kill`? -====== -Во многих оболочках команда `kill` встроена; таким образом, оболочка вместо вызова [.filename]#/bin/kill# сама посылает сигнал. Это может быть очень полезно, но в разных оболочках имя сигнала указывается по-разному. Чем пытаться выучить их все, гораздо проще использовать `/bin/kill _..._` непосредственно. -====== +==== +Существует несколько задач, которые не могут быть прерваны. +К примеру, если процесс пытается выполнить чтение файла, находящегося на другом компьютере в сети, а другой компьютер недоступен, то такой процесс называют "непрерываемым". +В конце концов время процесса истечёт, обычно после двух минут ожидания. +Как только такой таймаут случится, процесс будет прекращён. ==== -Отправка других сигналов очень похожа, просто замените `TERM` или `KILL` в командной строке на имя другого сигнала. +Другими часто используемыми сигналами являются `SIGHUP`, `SIGUSR1` и `SIGUSR2`. +Так как эти сигналы являются сигналами общего назначения, различные приложения будут реагировать на них по-разному. + +Например, после внесения изменений в конфигурационный файл веб-сервера ему нужно указать на повторное считывание настроек. +Перезапуск `httpd` привёл бы к краткосрочной недоступности веб-сервера. +Вместо этого отправьте даемону сигнал `SIGHUP`. +Имейте в виду, что разные даемоны будут вести себя по-разному, поэтому обратитесь к документации по даемону для определения того, достигнет ли `SIGHUP` желаемых результатов. [IMPORTANT] ==== -Уничтожение процессов наугад может быть плохой идеей. В частности, man:init[8], чей PID 1, имеет особое значение. Выполнение `/bin/kill -s KILL 1` - быстрый способ перегрузить систему. _Всегда_ дважды проверяйте параметры запуска man:kill[1] _перед_ тем, как нажать kbd:[Enter]. +Прекращение случайного процесса в системе является плохой затеей. +В частности, man:init[8], чей PID равен 1, является особенным процессом. +Выполнение `/bin/kill -s KILL 1` является быстрым и нерекомендуемым способом завершить работу системы. +_Всегда_ дважды проверяйте параметры запуска man:kill[1] _перед_ тем, как нажать на kbd:[Return]. ==== [[shells]] -== Интерпретатор команд - -При работе с FreeBSD, в большинстве случаев для выполнения повседневных задач используется командный интерфейс (так называемая "оболочка", "shell"). Основная задача интерпретатора - принимать вводимые команды и выполнять их. Многие командные интерпретаторы имеют встроенные средства для выполнения повседневной работы, например, операции над файлами и каталогами, редактирование командной строки, командные макросы и переменные окружения. Вместе с FreeBSD поставляется несколько командных интерпретаторов, например, `sh`, или Bourne Shell, и `tcsh`, расширенная версия C-shell. Многие другие интерпретаторы доступны из коллекции портов FreeBSD, например `zsh` и `bash`. - -Какой из командных интерпретаторов использовать? Это дело вкуса. Если вы программируете на C, то вам, возможно, понравится `tcsh`. Если вы работали с Linux, или только начинаете работать с интерфейсом командной строки UNIX(R), попробуйте `bash`. Каждый из названных интерпретаторов имеет свои особенности, которые отличат его от других, и, возможно, повлияют на ваш выбор. - -Одна из наиболее часто используемых функций командного интерпретатора - дополнение частичного имени файла до полного. Вы можете набрать только первые несколько символов имени файла, нажать клавишу табуляции (TAB), и командный интерпретатор автоматически завершит имя. Например, у нас есть два файла, названные [.filename]#foobar# и [.filename]#foo.bar#. Допустим, мы хотим удалить файл [.filename]#foo.bar#. Для этого, наберем на клавиатуре `rm fo[Tab].[Tab]`. - -Вы увидите следующее: `rm foo[BEEP].bar`. - -Здесь [BEEP] - это так называемый консольный сигнал, оповещающий о том, что интерпретатор не в состоянии закончить имя файла, так как по введенным вами символам невозможно однозначно идентифицировать файл. Например, имена файлов [.filename]#foobar# и [.filename]#foo.bar# оба начинаются с `fo`, но после нажатия TAB можно однозначно дополнить только до `foo`. Если же теперь ввести точку (`.`) и вновь нажать TAB, интерпретатор достроит имя файла целиком. - -Дополнительные возможности при работе с интерпретатором дает использование переменных окружения. Переменные окружения это пары переменная/значение, хранящиеся в памяти интерпретатора. Значение переменных окружения может быть прочитано любой программой, запущенной из командного интерпретатора, и часто содержит настройки для многих приложений и утилит. Ниже приведены некоторые наиболее часто встречающиеся переменные окружения и их значения: - -[.informaltable] -[cols="1,1", frame="none", options="header"] +== Командные процессоры + +_Командный процессор_ (или оболочка) предоставляет интерфейс командной строки для взаимодействия с операционной системой. +Командный процессор получает команды из канала ввода и исполняет их. +Многие командные интерпретаторы имеют встроенные функции, помогающие выполнять такие повседневной задачи, как управление файлами, включая их массовую обработку, редактирование командной строки, работа с макрокомандами и переменными окружения. +FreeBSD поставляется вместе с несколькими командными процессорами, среди которых Bourne Shell (man:sh[1]) и расширенная версия C-shell (man:tcsh[1]), +Другие командные процессоры, такие как `zsh` и `bash`, доступны в Коллекции портов FreeBSD. + +Выбор используемого интерпретатора командной строки на самом деле является делом вкуса. +Программист на языке C может чувствовать себя более комфортно с C-подобной оболочкой типа man:tcsh[1]. +Пользователь Linux(R) может предпочесть `bash`. +Каждый командный процессор имеет свои уникальные особенности, которые могут работать, а могут и не работать в рабочем окружении, которое предпочитает пользователь, и именно поэтому имеются варианты выбора используемой оболочки. + +Одной из распространённых функций оболочки командной строки является дополнение частичного имени файла до полного. +После того, как пользователь набирает несколько первых символов команды или имени файла и нажимает клавишу kbd:[Tab], командный процессор дополняет имя команды или файла до полного наименования. +Рассмотрим случай с двумя файлами, которые называются `foobar` и `football`. +Для удаления `foobar` пользователь может набрать `rm foo` и нажать kbd:[Tab] для формирования полного имени файла. + +Однако оболочка только лишь отобразит `rm foo`. +Сформировать полное имя файла невозможно, так как и `foobar`, и `football` начинаются с `foo`. +Некоторые командные процессоры издадут звуковой сигнал или отобразят все варианты, если имеются совпадения более чем у одного имени. +Тогда пользователь должен набрать дополнительные символы для идентификации желаемого имени файла. +Набор `t` и повторное нажатие kbd:[Tab] достаточно для того, чтобы командный процессор определил желаемый файл и дополнил остаток его имени. + +Дополнительные возможности при работе с интерпретатором дает использование переменных окружения. +Переменные окружения представляют собой пары переменная/значение, сохраняемые в рабочем окружении интерпретатора. +Это рабочее окружение может быть прочитано любой программой, запущенной из командного интерпретатора, и, таким образом, содержит много информации для настройки приложения. +crossref:basics[shell-env-vars,Часто используемые переменные окружения] содержит список часто используемых переменных окружения и их значений. +Заметьте, что имена переменных окружения всегда пишутся заглавными буквами. + +[[shell-env-vars]] +.Часто используемые переменные окружения +[cols="25h,~"] |=== | Переменная | Описание @@ -1516,7 +1707,7 @@ Password: |Каталоги, разделенные двоеточием, для поиска исполняемых файлов. |`DISPLAY` -|Сетевое имя виртуального дисплея X11, доступного для подключения. +|Сетевое имя дисплея Xorg для подключения при его доступности. |`SHELL` |Текущий командный интерпретатор. @@ -1528,149 +1719,187 @@ Password: |Список escape-последовательностей для управления различными функциями терминала. |`OSTYPE` -|Название (тип) операционной системы. Например, FreeBSD. +|Вид операционной системы. |`MACHTYPE` -|Архитектура машины (процессора). +|Процессорная архитектура системы. |`EDITOR` |Выбранный пользователем текстовый редактор. |`PAGER` -|Выбранная пользователем утилита просмотра файлов. +|Предпочитаемая пользователем утилита для постраничного просмотра текста. |`MANPATH` |Каталоги, разделенные двоеточием, для поиска файлов системного справочника. |=== -Установка значений переменных окружения различна для разных оболочек. Например, в интерпретаторах C-стиля, таких как `tcsh` и `csh`, это `setenv`. В интерпретаторах Bourne, таких как `sh` и `bash`, это `export`. Например, чтобы установить или изменить значение переменной `EDITOR` к значению [.filename]#/usr/local/bin/emacs# в `csh` или `tcsh`, выполните команду: +Порядок установки значения переменной окружения различна для разных оболочек. +В командных процессорах man:tcsh[1] и man:csh[1] для задания переменных окружения используется `setenv`. +В интерпретаторах man:sh[1] и `bash` для задания актуального значения переменных окружения используется `export`. +В этом примере для man:tcsh[1] значение по умолчанию для переменной `EDITOR` устанавливается равным `/usr/local/bin/emacs`: [source,shell] .... % setenv EDITOR /usr/local/bin/emacs .... -В оболочках Bourne: +Аналогичная команда для `bash` была бы следующей: [source,shell] .... % export EDITOR="/usr/local/bin/emacs" .... -Чтобы получить значение переменной, например, в командной строке, поместите символ `$` перед именем переменной. Например, команда `echo $TERM` выведет значение переменной `$TERM`. +Чтобы раскрыть значение переменной окружения для того, чтобы посмотреть её текущее значение, в командной строке наберите символ `$` перед именем переменной. +Например, `echo $TERM` выведет актуальное значение для `$TERM`. -Командный интерпретатор воспринимает некоторые символы, называемые метасимволами, в качестве управляющих. Один из наиболее часто используемых - символ `\*`, который заменяет любое количество символов в имени файла. Метасимволы используются для поиска файлов по маске, например, команда `echo *` делает практически тоже самое, что и команда `ls`, поскольку интерпретатор вызывает команду `echo`, передавая ей имена всех файлов, попадающих под маску `*`. +Командные процессоры обрабатывают специальные символы, называемые метасимволами, как особое обозначение данных. +Самым общеупотребительным метасимволом является `\*`, который обозначает любое количество символов в имени файла. +Метасимволы могут использоваться для выполнения массовых операций с именами файлов. +Например, команда `echo *` равнозначна команде `ls`, поскольку оболочка выбирает все файлы, соответствующие `*`, а `echo` выдаёт их список в командной строке. -В некоторых ситуациях требуется, чтобы интерпретатор воспринимал метасимволы как обычные, не несущие специальной смысловой нагрузки. Этого можно достичь, поставив перед символом обратную косую черту (`\`). Например, команда `echo $TERM` выведет тип вашего терминала, в то же время команда `echo \$TERM` выведет именно слово `$TERM`, а не значение переменной `$TERM`. +Чтобы предотвратить обработку специального символа командным процессором, экранируйте его, предварив наклонной чертой влево `\` (обратным слэшем). +Например, `echo $TERM` выведет значение настройки терминала, тогда как `echo \$TERM` выведет в буквальном смысле строку `$TERM`. [[changing-shells]] -=== Как изменить командный интерпретатор по умолчанию +=== Смена командного процессора -Самым простым способом, пожалуй, будет воспользоваться командой `chsh`. Если переменная `EDITOR` определена, то будет загружен соответствующий текстовый редактор, иначе vi. Вам нужно будет изменить значение поля "Shell:" и выйти из редактора с сохранением результатов. +Самым простым способом замены командного процессора, используемого по умолчанию, на постоянной основе является использование команды `chsh`. +При запуске этой команды открывается редактор, настроенный в переменной окружения `EDITOR`, значение которой по умолчанию равно man:vi[1]. +Измените строку `Shell:`, указав полный путь для нового командного процессора. -Можно также воспользоваться опцией `-s` команды `chsh`. Например, если вы хотите изменить интерпретатор на `bash`, выполните: +Альтернативным способом является использование команды `chsh -s`, которая настроит указанную оболочку без открытия редактора. +Например, для замены командного процессора на `bash`: [source,shell] .... % chsh -s /usr/local/bin/bash .... +Введите ваш пароль в строке приглашения и нажмите kbd:[Return] для смены вашего командного процессора. +Для того, чтобы начать использовать новую оболочку, выйдите из системы и войдите в неё снова. + [NOTE] ==== -Интерпретатор, который вы будете использовать, _обязательно_ должен быть в файле [.filename]#/etc/shells#. Обычно, при установке интерпретаторов из crossref:ports[ports,коллекции портов], это делается автоматически. Если же это не так, вам нужно будет самостоятельно добавить соответствующую строчку в этот файл. - -Например, если вы установили `bash` вручную и поместили его в каталог [.filename]#/usr/local/bin#, нужно набрать: +Новая оболочка _обязательно_ должна присутствовать в файле `/etc/shells`. +Если командный процессор был установлен из Коллекции портов FreeBSD, как это описано в главе <<ports>>, то он должен быть добавлен в этот файл автоматически. +Если его там нет, добавьте его при помощи следующей команды, заменив путь на маршрут соответствующей оболочки: [source,shell] .... -# echo "/usr/local/bin/bash" >> /etc/shells +# echo /usr/local/bin/bash >> /etc/shells .... -Теперь можно смело использовать команду `chsh`. +После этого запустите man:chsh[1] повторно. ==== -[[editors]] -== Текстовые редакторы - -Большинство настроек в FreeBSD производится путем редактирования текстовых файлов. Соответственно, вам нужно будет освоиться с каким-либо текстовым редактором. Вместе с FreeBSD поставляются лишь некоторые из них, гораздо больше редакторов доступно из Коллекции портов. +=== Расширенные функции оболочки -Самым простым в изучении и использовании, по-видимому, можно назвать ee, что расшифровывается как "easy editor", т.е. "простой редактор". Чтобы начать редактировать какой-либо файл, наберите в командной строке `ee _filename_`, где _filename_ имя редактируемого файла. Например, для редактирования файла [.filename]#/etc/rc.conf#, наберите `ee /etc/rc.conf`. В верхней части экрана вы увидите список основных команд редактора. Символ каретки (`^`) означает клавишу kbd:[Ctrl], таким образом, `^e` означает комбинацию клавиш kbd:[Ctrl+e]. Чтобы выйти из редактора, нажмите клавишу kbd:[Esc], затем kbd:[Enter]. Если остались какие-либо не сохраненные данные, вам потребуется подтвердить выход, сохранив результат работы или оставив файл без изменения. +Оболочка UNIX(R) является не только лишь интерпретатором команд, она также выступает в роли мощного инструмента, позволяющего пользователям выполнять команды, перенаправлять их результирующий и входной потоки, а также выстраивать последовательность команд для улучшения выдачи финализирующей команды. +Когда такая функциональность объединяется со встроенными командами, пользователь получает окружение, которое может дать максимальный эффект. -В FreeBSD присутствует также более мощный текстовый редактор vi, а редакторы emacs и vim можно найти в коллекции портов (package:editors/emacs[] и package:editors/vim[]). Эти редакторы обладают еще большей функциональностью и мощью, но они также и более сложны в изучении. Однако, если в будущем вам потребуется часто редактировать большие объемы текстов, то время, потраченное на изучение более мощного редактора, такого как vim или Emacs, окупится с лихвой. +Перенаправление на уровне оболочки представляет собой действие по отправке результата работы или входного потока какой-либо команды в другую команду или в файл. +Для записи результата работы команды man:ls[1], например, в файл, перенаправьте выходной поток: -Многие приложения, модифицирующие файлы или требующие текстового ввода, автоматически открывают текстовый редактор. Чтобы сменить используемый по умолчанию редактор, установите переменную окружения `EDITOR`. За деталями обратитесь к разделу <<shells,интерпретатор команд>>. - -[[basics-devices]] -== Устройства и файлы устройств +[source,shell] +.... +% ls > directory_listing.txt +.... -Термин "устройство" используется в основном по отношению к аппаратному обеспечению системы, такому как диски, принтеры, графические адаптеры, устройства ввода текста. При загрузке FreeBSD главным образом выводит на экран информацию об обнаруженных устройствах. Вы можете найти эти сообщения в файле [.filename]#/var/run/dmesg.boot#. +Список содержимого каталога теперь будет находиться в `directory_listing.txt`. +Некоторые команды, подобные man:sort[1], могут использоваться для чтения входного потока. +Для сортировки этого списка перенаправьте входной поток: -Например, [.filename]#acd0# это первый диск IDE CDROM, а [.filename]#kbd0# - клавиатура. +[source,shell] +.... +% sort < directory_listing.txt +.... -В UNIX(R) доступ к большинству этих устройств можно получить через специальные файлы устройств, расположенные в каталоге [.filename]#/dev#. +Входной поток будет отсортирован и размещён на экране. +Для перенаправления этого ввода в другой файл можно перенаправить выходной поток man:sort[1], объединив направление: -=== Создание файлов устройств +[source,shell] +.... +% sort < directory_listing.txt > sorted.txt +.... -При добавлении в систему нового устройства, или добавлении поддержки дополнительных устройств, потребуется создать один или несколько файлов устройств для нового оборудования. +Во всех примерах выше команды выполняют перенаправление при помощи файловых дескрипторов. +В каждой системе UNIX(R) имеются файловые дескрипторы, среди которых имеются стандартный ввод (stdin), стандартный вывод (stdout) и стандартная диагностика (stderr). +У каждого из них имеется своё назначение, и здесь вводом может быть клавиатура или мышь, что-то, формирующее входной поток. +Выводом может быть экран или бумага в принтере. +А диагностикой может быть что угодно, используемое для диагностических сообщений или сообщений об ошибках. +Все три рассматриваются как файловые дескрипторы ввода-вывода и иногда рассматриваются как потоки. -==== `DEVFS` (DEVice File System) +Посредством использования этих дескрипторов командный процессор обеспечивает прохождение ввода и вывода через различные команды и их перенаправление в файл или из файла. +Ещё одним методом перенаправления является оператор конвейера. -Device filesystem, или `DEVFS`, предоставляет доступ к пространству устройств ядра через общую файловую систему. Вместо создания и модификации файлов устройств, `DEVFS` создает специальную файловую систему. +Оператор конвейера UNIX(R), "|", позволяет прямую передачу или перенаправление вывода одной команды в другую программу. +Проще говоря, конвейер позволяет передавать стандартный вывод какой-либо команды в качестве стандартного ввода другой команде, к примеру: -Обращайтесь к man:devfs[5] за дополнительной информацией. +[source,shell] +.... +% cat directory_listing.txt | sort | less +.... -[[binary-formats]] -== Бинарные форматы +В этом примере содержимое `directory_listing.txt` будет отсортировано, а вывод передан в man:less[1]. +Это позволяет пользователю просматривать результат в собственном темпе и не позволяет выходить за рамки экрана. -Для понимания того, почему FreeBSD использует формат man:elf[5], вам потребуется сначала немного узнать о трех "доминирующих" исполняемых форматах для UNIX(R): +[[editors]] +== Текстовые редакторы -* man:a.out[5] -+ -Старейший и "классический" объектный формат UNIX(R). Он использует короткий и компактный заголовок с магическим числом в начале, которое часто используется для описания формата (смотрите man:a.out[5] с более подробной информацией). Он содержит три загружаемых сегмента: .text, .data и .bss плюс таблицу символов и таблицу строк. -* COFF -+ -Объектный формат SVR3. Заголовок включает таблицу разделов, так что могут быть сегменты кроме .text, .data и .bss. -* man:elf[5] -+ -Наследник формата COFF, поддерживающий множественные сегменты и 32-битные или 64-битные значения. Одно важное замечание: ELF был разработан в предположении что есть только по одному ABI на одну архитектуру. Это предположение совершенно неверно, и не только в мире коммерческих SYSV (в котором есть как минимум три ABI: SVR4, Solaris, SCO). -+ -FreeBSD пытается обойти эту проблему, в частности предоставляя утилиту для _оглавления_ известного исполняемого файла ELF информацией об ABI с которым он совместим. Обратитесь к странице справочника man:brandelf[1] за более подробной информацией. +Большинство настроек FreeBSD осуществляется редактированием текстовых файлов. +В силу этого обстоятельства хорошей идеей является освоение текстового редактора. +Несколько редакторов поставляются с FreeBSD в составе базового комплекта системы, и гораздо больше доступно в Коллекции портов. -FreeBSD имеет произошла из "классического" лагеря и использовала формат man:a.out[5], технологию опробованную и проверенную на многих поколениях релизов BSD, до начала ветки 3.X. Хотя собирать и запускать родные бинарные файлы ELF (и ядро) в системе FreeBSD можно было несколько раньше, FreeBSD вначале сопротивлялась "проталкиванию"ELF как формата по умолчанию. Почему? Когда лагерь Linux производил болезненный переход к ELF, у него не было большого преимущества перед исполняемым форматом [.filename]#a.out#, из-за негибкого, основанного на таблице переходов механизма разделяемых библиотек, что делало создание разделяемых библиотек очень трудным для поставщиков и разработчиков. Когда доступные инструменты ELF предоставили решение проблемы разделяемых библиотек, и появилась некоторая перспектива, цена перехода была признана допустимой и он был сделан. Механизм разделяемых библиотек FreeBSD близок по стилю к механизму разделяемых библиотек SunOS(TM) от Sun, и поэтому очень прост в использовании. +Простым в освоении редактором является man:ee[1], что означает "easy editor" ("лёгкий редактор"). +Чтобы запустить его, наберите `ee _filename_`, где _filename_ является именем редактируемого файла. +Внутри редактора все команды для управления его функциями перечислены вверху экрана. +Карет (`^`) обозначает клавишу kbd:[Ctrl], таким образом, `^e` означает комбинацию клавиш kbd:[Ctrl+e]. +Чтобы выйти из man:ee[1], нажмите клавишу kbd:[Esc], затем выберите пункт "leave editor" в главном меню. +Редактор запросит сохранение изменений, если файл был изменён. -Итак, почему так много разных форматов? +Во FreeBSD также имеются более мощные текстовые редакторы типа man:vi[1], поставляемого как часть базового системного комплекта. +Другие редакторы, подобные package:editors/emacs[] и package:editors/vim[], являются частью Коллекции портов FreeBSD. +Эти редакторы обладают большей функциональностью, но также они более сложны в изучении. +Изучение более мощных редакторов типа vim или Emacs может сэкономить вам больше времени в долгосрочной перспективе. -Давно, в темном далеком прошлом, оборудование было простым. Это простое оборудование поддерживало простые, маленькие системы. [.filename]#a.out# был совершенно адекватен задаче представления бинарных файлов на таких простых системах (PDP-11). Люди, портировавшие UNIX(R) с этих простых систем, оставили [.filename]#a.out# формат потому, что он был достаточен для ранних портов UNIX(R) на архитектуры, подобные Motorola 68k, VAXen, etc. +Многие приложения, модифицирующие файлы или требующие текстового ввода, автоматически открывают текстовый редактор. +Чтобы сменить редактор, заданный по умолчанию, определите значение переменной окружения `EDITOR`, как это описано в разделе crossref:basics[shells, Командные процессоры]. -Затем какой-то смышленый инженер по оборудованию решил, что если он сможет заставить программы исполнять некоторые трюки, то сможет несколько упростить дизайн и заставить ядро CPU работать быстрее. Хотя это было сделано с новым типом оборудования (известного сейчас как RISC), формат [.filename]#a.out# не подходил для него, и было разработано множество форматов, чтобы получить лучшую производительность на таком оборудовании по сравнению с той, которую мог предоставить простой формат [.filename]#a.out#. Были изобретены форматы COFF, ECOFF и некоторые другие малоизвестные форматы, и их ограничения были учтены, когда все похоже остановились на ELF. +[[basics-devices]] +== Устройства и файлы устройств -Кроме того, размеры программ стали огромны, а диски (и оперативная память) остались относительно малы, поэтому появилась концепция разделяемых библиотек. Система VM также стала более сложной. Хотя все эти усовершенствования были выполнены с форматом [.filename]#a.out#, его полезность все больше и больше уменьшалась с каждым нововведением. К тому же потребовалась динамическая загрузка во время выполнения, или выгрузка частей программы после выполнения стартового кода для экономии памяти или места на диске. Языки усложнялись, и потребовался автоматический вызов кода перед главной программой. Множество изменений было внесено в формат [.filename]#a.out#, чтобы все это появилось, и в основном работало некоторое время. Настал момент, когда [.filename]#a.out# не смог решить все эти проблемы без чрезмерного увеличения размера и сложности. В то время, как ELF решил многие из этих проблем, перевод этого формата с системы на систему болезнен. Поэтому формату ELF пришлось подождать, пока не стало более болезненным оставаться с [.filename]#a.out#, чем перейти на ELF. +Термин "устройство" используется в основном по отношению к аппаратному обеспечению системы, такому как диски, принтеры, графические адаптеры и клавиатуры. +При загрузке FreeBSD основной объём выдаваемых сообщений относится к обнаруживаемым устройствам. +Копии сообщений, выдаваемых при загрузке, сохраняются в `/var/run/dmesg.boot`. -Тем временем, инструменты разработки, от которых произошли инструменты разработки FreeBSD (особенно ассемблер и загрузчик), развивались в двух параллельных направлениях. Направление FreeBSD добавило разделяемые библиотеки и устранило некоторые ошибки. Люди из GNU, написавшие эти программы, переписали их и добавили простую поддержку сборки кросс-компиляторов, подключения различных форматов в будущем и так далее. Многим требовалось собрать кросс-компиляторы для FreeBSD, и это не удалось, поскольку устаревшие исходные тексты FreeBSD для as и ld не подходили для этой задачи. Новый набор инструментов GNU (binutils) поддерживает кросс-компилирование, ELF, разделяемые библиотеки, C++, расширения и т.д. В дополнение, многие поставщики выпустили программы в формате ELF и они хорошо подходят для запуска в FreeBSD. +Каждое устройство имеет имя и номер. +Например, `ada0` соответствует первому приводу жёстких дисков с интерфейсом SATA, а `kbd0` представляет собой клавиатуру. -ELF более выразителен, чем [.filename]#a.out#, позволяет базовой системе быть более гибкой. ELF лучше поддерживается, и предоставляет поддержку кросс-компиляторов, что важно для многих людей. ELF может быть немного медленнее, чем [.filename]#a.out#, но замерить это сложно. Есть также множество деталей, отличающихся для этих двух форматов, в том как они отображают страницы, обрабатывают начальный код, и т.д. В этом нет ничего очень важного, но они различаются. В настоящее время поддержка [.filename]#a.out# убрана из ядра [.filename]#GENERIC#, и со временем будет убрана из ядра, как только потребность в запуске старых программ [.filename]#a.out# останется в прошлом. +Во FreeBSD доступ к большинству устройств обязательно должен осуществляться через специальные файлы, называемые узлами устройств, которые размещаются в `/dev`. [[basics-more-information]] -== Дополнительная информация ++== Страницы Справочника -[[basics-man]] -=== Системный справочник (man) - -Пожалуй, самым полным руководством по FreeBSD является системный справочник (man). Практически каждое приложение или утилита имеют соответствующую страницу (часто не одну), описывающую тот или иной аспект работы программы, всевозможные опции и настройки. Для просмотра этих страниц существует команда `man`: +Пожалуй, самая полная документация по FreeBSD имеет форму страниц справочной системы. Практически каждое приложение или утилита имеют соответствующую страницу (часто не одну), описывающую основы работы и различные параметры. +Эти справочники можно просматривать при помощи `man`: [source,shell] .... % man command .... -Здесь `command` - это команда, о которой вы хотите получить информацию. Например, чтобы узнать побольше о команде `ls`, наберите: +Здесь _command_ является названием команды, информацию о которой нужно получить. +Например, чтобы узнать больше о команде man:ls[1], наберите: [source,shell] .... % man ls .... -Содержимое системного справочника для удобства разделено на несколько разделов: +Страницы Справочника разделены на разделы, соответствующие различному типу содержимого. +Во FreeBSD имеются следующие разделы: . Пользовательские команды. . Системные вызовы и коды ошибок. @@ -1680,54 +1909,59 @@ ELF более выразителен, чем [.filename]#a.out#, позволя . Развлечения и игры. . Дополнительная информация. . Команды системного администрирования. -. Для разработчиков ядра. +. Интерфейсы ядра системы. -В некоторых случаях (не так уж редко), страницы, относящиеся к одной и той же команде, находятся в различных разделах справочника. Например, есть команда `chmod` и системный вызов `chmod()`. В этом случае, необходимо явно указать раздел `man`, в котором нужно искать соответствующую страницу: +В некоторых случаях одна и та же тема может появиться в различных разделах справочника. +Например, существуют пользовательская команда `chmod` и системный вызов `chmod()`. +Для указания команде man:man[1] искомого раздела задайте его номер: [source,shell] .... % man 1 chmod .... -Эта команда выведет справку об утилите `chmod`. По традиции, конкретный раздел справочника указывается в скобках после команды, например, man:chmod[1] относится к утилите `chmod`, а man:chmod[2] - к соответствующему системному вызову. +При этом будет выведена справка о пользовательской команде man:chmod[1]. +По традиции документирования ссылки на конкретный раздел онлайного справочника указываются в скобках, так что man:chmod[1] относится к пользовательской команде, man:chmod[2] указывает на соответствующий системный вызов. -Часто бывает так, что вы не знаете название команды, но имеете представление о том, что она должна делать. В этом случае можно попытаться найти нужную команду по ключевым словам, встречающимся в ее описании, используя опцию `-k` программы `man`: +Если название страницы Справочника неизвестно, воспользуйтесь `man -k` для поиска по ключевым словам, встречающимся в описаниях страниц Справочника: [source,shell] .... % man -k mail .... -Вы получите список команд, имеющих слово "mail" в своих описаниях. Это эквивалентно использованию команды `apropos`. +Эта команда выдаёт список команд, имеющих ключевое слово "mail" в своих описаниях. +Это равнозначно использованию команды man:apropos[1]. -Или например, вы видите список файлов в каталоге [.filename]#/usr/bin#, при этом не имея ни малейшего представления о том, какие функции выполняет каждый их них? Просто наберите: +Чтобы прочитать описания всех команд из `/usr/sbin`, наберите: [source,shell] .... -% cd /usr/bin -% man -f * +% cd /usr/sbin +% man -f * | more .... или [source,shell] .... -% cd /usr/bin -% whatis * +% cd /usr/sbin +% whatis * |more .... -что фактически одно и то же. - [[basics-info]] === Файлы GNU Info -FreeBSD поставляется с многочисленными приложениями и утилитами от Фонда Свободного Программного Обеспечения, Free Software Foundation (FSF). В дополнение к страницам справочника, с этими программами поставляется обширная гипертекстовая документация в виде так называемых `info` файлов, которые могут быть просмотрены с помощью команды `info`, или, если установлен emacs, в info режиме этого редактора. +FreeBSD поставляется с некоторым количеством приложений и утилит, выпущенных Free Software Foundation (FSF). +В дополнение к страницам справочника, с этими программами могут поставляться гипертекстовые документы в виде так называемых файлов `info`. +Они могут быть просмотрены с помощью команды man:info[1] или, если установлен пакет package:editors/emacs[], в режиме info редактора emacs. -Чтобы воспользоваться командой man:info[1], просто наберите в командной строке: +Чтобы использовать man:info[1], наберите: [source,shell] .... % info .... -Вызвать на экран краткое введение можно набрав `h`. Краткий список команд можно получить набрав `?`. +Вызвать на экран краткое введение можно набрав `h`. +Краткий список команд можно получить, набрав `?`. diff --git a/documentation/content/ru/books/handbook/bibliography/_index.adoc b/documentation/content/ru/books/handbook/bibliography/_index.adoc index f56b24b8de..e277ef39a3 100644 --- a/documentation/content/ru/books/handbook/bibliography/_index.adoc +++ b/documentation/content/ru/books/handbook/bibliography/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/mirrors next: books/handbook/eresources showBookMenu: true weight: 35 -path: "/books/handbook/" +params: + path: "/books/handbook/bibliography/" --- [appendix] diff --git a/documentation/content/ru/books/handbook/book.adoc b/documentation/content/ru/books/handbook/book.adoc index 30e2b03e61..1ef9b14091 100644 --- a/documentation/content/ru/books/handbook/book.adoc +++ b/documentation/content/ru/books/handbook/book.adoc @@ -2,8 +2,8 @@ title: Руководство FreeBSD authors: - author: Проект Документации FreeBSD -copyright: 1995-2020 The FreeBSD Documentation Project -trademarks: ["freebsd", "ibm", "ieee", "redhat", "3com", "adobe", "apple", "intel", "linux", "microsoft", "opengroup", "sun", "realnetworks", "oracle", "3ware", "arm", "adaptec", "heidelberger", "intuit", "lsilogic", "themathworks", "thomson", "vmware", "wolframresearch", "xiph", "xfree86", "general"] +copyright: 1995-2025 The FreeBSD Documentation Project +trademarks: ["freebsd", "ibm", "ieee", "redhat", "3com", "adobe", "apple", "intel", "linux", "microsoft", "opengroup", "sun", "realnetworks", "oracle", "3ware", "arm", "adaptec", "google", "heidelberger", "intuit", "lsilogic", "themathworks", "thomson", "vmware", "wolframresearch", "xiph", "xfree86", "general"] --- = Руководство FreeBSD @@ -42,11 +42,7 @@ ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] -[.abstract-title] -[abstract] -Аннотация - -Добро пожаловать в FreeBSD! Это Руководство охватывает процесс установки и ежедневного использования _FreeBSD {rel112-current}-RELEASE_ и _FreeBSD {rel120-current}-RELEASE_. Оно находится _в процессе разработки_ и являет собой результат работы множества людей. Многие из разделов до сих пор не существуют, а некоторые из существующих требуют обновления. Если вы заинтересованы в помощи этому проекту, отправьте письмо в {freebsd-doc}. Обновленная версия этого документа постоянно доступна с http://www.FreeBSD.org/ru/index.html[Основного Web сервера FreeBSD]. Он также может быть загружен из интернет в одном из наиболее распространенных форматов с link:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/[FTP сервера Проекта FreeBSD] или с одного из многочисленных <<mirrors-ftp,зеркал>>. Если вы предпочитаете иметь напечатанный (английский) вариант Руководства, то можете приобрести его на http://www.freebsdmall.com/[FreeBSD Mall]. Вы также можете воспользоваться link:https://www.FreeBSD.org/ru/search/[Поиском в Руководстве FreeBSD]. +include::{chapters-path}introduction.adoc[] ''' @@ -63,8 +59,6 @@ include::{chapters-path}parti.adoc[] include::{chapters-path}introduction/_index.adoc[leveloffset=+1] -include::{chapters-path}install/_index.adoc[leveloffset=+1] - include::{chapters-path}bsdinstall/_index.adoc[leveloffset=+1] include::{chapters-path}basics/_index.adoc[leveloffset=+1] diff --git a/documentation/content/ru/books/handbook/boot/_index.adoc b/documentation/content/ru/books/handbook/boot/_index.adoc index 38d73b6e43..837de2defe 100644 --- a/documentation/content/ru/books/handbook/boot/_index.adoc +++ b/documentation/content/ru/books/handbook/boot/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/config next: books/handbook/security showBookMenu: true weight: 17 -path: "/books/handbook/" +params: + path: "/books/handbook/boot/" --- [[boot]] diff --git a/documentation/content/ru/books/handbook/bsdinstall/_index.adoc b/documentation/content/ru/books/handbook/bsdinstall/_index.adoc index b9ca7b96d4..8cd7fd9604 100644 --- a/documentation/content/ru/books/handbook/bsdinstall/_index.adoc +++ b/documentation/content/ru/books/handbook/bsdinstall/_index.adoc @@ -1,11 +1,12 @@ --- title: Глава 3. Установка FreeBSD версий 9.X и более поздних part: Часть I. В начале -prev: books/handbook/install +prev: books/handbook/introduction next: books/handbook/basics showBookMenu: true weight: 5 -path: "/books/handbook/" +params: + path: "/books/handbook/bsdinstall/" --- [[bsdinstall]] @@ -781,6 +782,8 @@ image::bsdinstall-part-manual-addpart.png[] |`freebsd-boot` |`512K` +| +| |`freebsd-ufs` |`2G` diff --git a/documentation/content/ru/books/handbook/config/_index.adoc b/documentation/content/ru/books/handbook/config/_index.adoc index 2ca8b8ac76..294582080a 100644 --- a/documentation/content/ru/books/handbook/config/_index.adoc +++ b/documentation/content/ru/books/handbook/config/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/partiii next: books/handbook/boot showBookMenu: true weight: 16 -path: "/books/handbook/" +params: + path: "/books/handbook/config/" --- [[config-tuning]] @@ -1293,6 +1294,6 @@ debug.acpi.level="ACPI_LV_ERROR" * {freebsd-acpi} * Архивы списка рассылки ACPI http://lists.freebsd.org/pipermail/freebsd-acpi/[http://lists.freebsd.org/pipermail/freebsd-acpi/] * Старые архивы списка рассылки ACPI http://home.jp.FreeBSD.org/mail-list/acpi-jp/[http://home.jp.FreeBSD.org/mail-list/acpi-jp/] -* Спецификация ACPI 2.0 http://acpi.info/spec.htm[http://acpi.info/spec.htm] +* https://uefi.org/specifications#ACPI[Спецификация ACPI] * Страницы справочника FreeBSD: man:acpi[4], man:acpi_thermal[4], man:acpidump[8], man:iasl[8], man:acpidb[8] * http://www.cpqlinux.com/acpi-howto.html#fix_broken_dsdt[ Ресурс по отладке DSDT]. (Использует в качестве примера Compaq, но обычно полезен.) diff --git a/documentation/content/ru/books/handbook/cutting-edge/_index.adoc b/documentation/content/ru/books/handbook/cutting-edge/_index.adoc index 8866e97fc4..b7dc4fb8ba 100644 --- a/documentation/content/ru/books/handbook/cutting-edge/_index.adoc +++ b/documentation/content/ru/books/handbook/cutting-edge/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/l10n next: books/handbook/partiv showBookMenu: true weight: 25 -path: "/books/handbook/" +params: + path: "/books/handbook/cutting-edge/" --- [[updating-upgrading]] diff --git a/documentation/content/ru/books/handbook/desktop/_index.adoc b/documentation/content/ru/books/handbook/desktop/_index.adoc index 6cd99943e0..9d12b94bb9 100644 --- a/documentation/content/ru/books/handbook/desktop/_index.adoc +++ b/documentation/content/ru/books/handbook/desktop/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/partii next: books/handbook/multimedia showBookMenu: true weight: 10 -path: "/books/handbook/" +params: + path: "/books/handbook/desktop/" --- [[desktop]] diff --git a/documentation/content/ru/books/handbook/disks/_index.adoc b/documentation/content/ru/books/handbook/disks/_index.adoc index 2447a7a97d..3948191349 100644 --- a/documentation/content/ru/books/handbook/disks/_index.adoc +++ b/documentation/content/ru/books/handbook/disks/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/audit next: books/handbook/geom showBookMenu: true weight: 21 -path: "/books/handbook/" +params: + path: "/books/handbook/disks/" --- [[disks]] @@ -69,7 +70,7 @@ endif::[] * Узнать как настраивать и устанавливать новое ядро FreeBSD (crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]). -[[disks-naming]] +[[disk-naming]] == Имена устройств Далее приводится список физических устройств хранения информации, которые поддерживаются во FreeBSD, и имена устройств, которые им соответствуют. diff --git a/documentation/content/ru/books/handbook/eresources/_index.adoc b/documentation/content/ru/books/handbook/eresources/_index.adoc index d99e6f8d71..98b46c6bfc 100644 --- a/documentation/content/ru/books/handbook/eresources/_index.adoc +++ b/documentation/content/ru/books/handbook/eresources/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/bibliography next: books/handbook/pgpkeys showBookMenu: true weight: 36 -path: "/books/handbook/" +params: + path: "/books/handbook/eresources/" --- [appendix] diff --git a/documentation/content/ru/books/handbook/filesystems/_index.adoc b/documentation/content/ru/books/handbook/filesystems/_index.adoc index 60b7610988..ea5bc04056 100644 --- a/documentation/content/ru/books/handbook/filesystems/_index.adoc +++ b/documentation/content/ru/books/handbook/filesystems/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/geom next: books/handbook/l10n showBookMenu: true weight: 23 -path: "/books/handbook/" +params: + path: "/books/handbook/filesystems/" --- [[filesystems]] diff --git a/documentation/content/ru/books/handbook/firewalls/_index.adoc b/documentation/content/ru/books/handbook/firewalls/_index.adoc index 35afb65282..9e9714ec44 100644 --- a/documentation/content/ru/books/handbook/firewalls/_index.adoc +++ b/documentation/content/ru/books/handbook/firewalls/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/network-servers next: books/handbook/advanced-networking showBookMenu: true weight: 31 -path: "/books/handbook/" +params: + path: "/books/handbook/firewalls/" --- [[firewalls]] diff --git a/documentation/content/ru/books/handbook/geom/_index.adoc b/documentation/content/ru/books/handbook/geom/_index.adoc index 009f644fa7..b9462c1782 100644 --- a/documentation/content/ru/books/handbook/geom/_index.adoc +++ b/documentation/content/ru/books/handbook/geom/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/disks next: books/handbook/filesystems showBookMenu: true weight: 22 -path: "/books/handbook/" +params: + path: "/books/handbook/geom/" --- [[geom]] diff --git a/documentation/content/ru/books/handbook/install/_index.adoc b/documentation/content/ru/books/handbook/install/_index.adoc deleted file mode 100644 index 14411ac545..0000000000 --- a/documentation/content/ru/books/handbook/install/_index.adoc +++ /dev/null @@ -1,2456 +0,0 @@ ---- -title: Глава 2. Установка FreeBSD версий 8.X и более ранних -part: Часть I. В начале -prev: books/handbook/introduction -next: books/handbook/bsdinstall -showBookMenu: true -weight: 4 -path: "/books/handbook/" ---- - -[[install]] -= Установка FreeBSD версий 8.X и более ранних -:doctype: book -:toc: macro -:toclevels: 1 -:icons: font -:sectnums: -:sectnumlevels: 6 -:sectnumoffset: 2 -:partnums: -:source-highlighter: rouge -:experimental: -:images-path: books/handbook/install/ - -ifdef::env-beastie[] -ifdef::backend-html5[] -:imagesdir: ../../../../images/{images-path} -endif::[] -ifndef::book[] -include::shared/authors.adoc[] -include::shared/mirrors.adoc[] -include::shared/releases.adoc[] -include::shared/attributes/attributes-{{% lang %}}.adoc[] -include::shared/{{% lang %}}/teams.adoc[] -include::shared/{{% lang %}}/mailing-lists.adoc[] -include::shared/{{% lang %}}/urls.adoc[] -toc::[] -endif::[] -ifdef::backend-pdf,backend-epub3[] -include::../../../../../shared/asciidoctor.adoc[] -endif::[] -endif::[] - -ifndef::env-beastie[] -toc::[] -include::../../../../../shared/asciidoctor.adoc[] -endif::[] - -[[install-synopsis]] -== Краткий обзор - -FreeBSD поставляется простой в использовании текстовой программой установки. FreeBSD 9.0-RELEASE и более поздние укомплектованы установщиком, называемым bsdinstall, в то время как в релизах, предшествующих 9.0-RELEASE, для установки применяется sysinstall. В этой главе описывается использование sysinstall для установки FreeBSD. Работа с установщиком bsdinstall описана в crossref:bsdinstall[bsdinstall,Установка FreeBSD версий 9.X и более поздних]. - -Прочтя эту главу, вы узнаете: - -* Как создать дискеты для установки FreeBSD. -* Как FreeBSD видит и делит на разделы жесткие диски. -* Как запустить sysinstall. -* Вопросы, которые sysinstall задаст вам, что имеется ввиду, и как ответить на эти вопросы. - -Перед прочтением этой главы вам потребуется: - -* Прочитать информацию о поддерживаемом оборудовании, поставляемую с устанавливаемой версией FreeBSD, и убедиться, что ваше оборудование поддерживается. - -[NOTE] -==== -Как правило, эти инструкции по установке написаны для i386(TM) ("PC совместимых") компьютеров. Когда это возможно, приводятся инструкции, специфичные для других платформ. Хотя это руководство поддерживается в актуальном состоянии настолько, насколько это возможно, вы можете обнаружить небольшие различия между программой установки и тем, что показано здесь. Предполагается, что вы будете использовать эту главу в качестве общего руководства, а не как пошаговую инструкцию по установке. -==== - -[[install-hardware]] -== Аппаратные требования - -[[install-hardware-minimal]] -=== Минимальная конфигурация - -Минимальная конфигурация для установки FreeBSD зависит от версии FreeBSD и аппаратной архитектуры. - -Краткое изложение этой информации дается в последующих разделах. В зависимости от метода, выбранного для установки FreeBSD, вам может потребоваться поддерживаемый дисковод или привод CDROM, а в некоторых случаях и сетевой адаптер. Эта ситуация будет описана в <<install-boot-media>>. - -==== Архитектуры FreeBSD/i386 и FreeBSD/pc98 - -Для версий FreeBSD/i386 и FreeBSD/pc98 требуется 486 процессор или выше, а также как минимум 24 MB памяти. Вам потребуется как минимум 150 MB свободного места на диске для самой минимальной установки. - -[NOTE] -==== -Для старых конфигураций, как правило, больший объем памяти и больший объем диска более важен, чем более быстрый процессор. -==== - -==== FreeBSD/amd64 - -Существует два класса процессоров, на которых может работать FreeBSD/amd64. К первому принадлежат процессоры AMD64, включая AMD Athlon(TM)64, AMD Athlon(TM)64-FX, AMD Opteron(TM) и более новые. - -Ко второму классу принадлежат процессоры архитектуры Intel(R) EM64T. Среди них можно назвать семейства Intel(R) Core(TM) 2 Duo, Quad, Extreme, а также Intel(R) Xeon(TM) 3000, 5000 и 7000 серии. - -Если ваша система основана на nVidia nForce3 Pro-150, _необходимо_ отключить IO APIC в BIOS. Если для этого нет необходимой опции, отключите ACPI в операционной системе. В чипсете Pro-150 содержатся ошибки, для которых пока не существует исправлений. - -==== FreeBSD/sparc64 - -Для установки FreeBSD/sparc64, вам потребуется поддерживаемая платформа (обратитесь к <<install-hardware-supported>>). - -Для FreeBSD/sparc64 потребуется отдельный диск. В настоящее время диск невозможно совместно использовать с другой операционной системой. - -[[install-hardware-supported]] -=== Поддерживаемое оборудование - -Список поддерживаемого оборудования поставляется с каждым релизом в FreeBSD в информации о релизе. Этот документ обычно находится в файле [.filename]#HARDWARE.TXT#, в корневом каталоге CDROM или FTP дистрибутива, или меню документации sysinstall. Для данной архитектуры в нем перечислены аппаратные устройства, поддерживаемые данным релизом FreeBSD. Копии списков поддерживаемого оборудования для различных релизов и архитектур также можно просмотреть на странице http://www.FreeBSD.org/ru/releases/[Информации о релизе] веб сайта FreeBSD. - -[[install-pre]] -== Перед установкой - -[[install-inventory]] -=== Соберите информацию о компьютере - -Перед установкой FreeBSD попытайтесь собрать информацию об устройствах компьютера. Во время установки FreeBSD покажет информацию об устройствах (жестких дисках, сетевых картах, CDROM и т.д.) с номером модели и производителем. FreeBSD также попытается определить правильную конфигурацию для этих устройств, включая информацию об IRQ и портах ввода-вывода. Из-за возможных проблем с оборудованием этот процесс не всегда завершается успешно, и возможно вам придется исправлять определенную FreeBSD конфигурацию. - -Если у вас уже есть установленная операционная система, например Windows(R) или Linux, неплохо будет использовать ее возможности для просмотра настроек оборудования. Если вы не уверены, какие настройки карты расширения использовать, можете найти их на самой карте. Часто используемые номера прерываний 3, 5 и 7, порты ввода- вывода обычно пишутся в шестнадцатеричном виде, например 0x330. - -Мы рекомендуем распечатать эту информацию перед установкой FreeBSD. Вам может помочь использование таблицы вроде этой: - -.Пример сведений об оборудовании -[cols="1,1,1,1", frame="none", options="header"] -|=== -| Название устройства -| IRQ -| Порт ввода-вывода -| Примечания - -|Первый жесткий диск -|нет -|нет -|40 GB, Seagate, первый IDE master - -|CDROM -|нет -|нет -|Первый IDE slave - -|Второй жесткий диск -|нет -|нет -|20 GB, IBM, второй IDE master - -|Первый IDE контроллер -|14 -|0x1f0 -| - -|Сетевая карта -|нет -|нет -|Intel(R) 10/100 - -|Модем -|нет -|нет -|3Com(R) 56K факс-модем, COM1 - -|... -|=== - -После сбора информации о компонентах компьютера, вы можете проверить их соответствие аппаратным требованиям устанавливаемого релиза FreeBSD. - -=== Сделайте резервное копирование данных - -Если компьютер, на который вы устанавливаете FreeBSD, содержит важные данные, убедитесь в наличии резервных копий и проверьте их сохранность перед установкой операционной системы. Во время установки FreeBSD запросит подтверждение перед тем, как записать данные на диск, но, если процесс запущен, изменения нельзя отменить. - -[[install-where]] -=== Решите куда установить FreeBSD - -Если вы хотите, чтобы FreeBSD использовала весь жесткий диск, не о чем беспокоиться - можете пропустить этот раздел. - -Однако, если нужно совмещать FreeBSD с другими операционными системами, необходимо иметь представление как данные размещаются на диске и как это касается вас. - -[[install-where-i386]] -==== Разделы диска для FreeBSD/i386 - -Диск ПК может быть поделен на отдельные части. Эти части называют _разделами_. Поскольку в FreeBSD также есть разделы, терминология становится запутанной, и поэтому эти части дисков называются дисковыми слайсами, или просто слайсами в FreeBSD. Например, утилита FreeBSD `fdisk`, имеющая дело с дисковыми разделами PC, обращается со слайсами а не с разделами. Первоначально PC поддерживал только четыре раздела на диск. Эти разделы называются _главными разделами_. Чтобы обойти это ограничение и дать возможность создавать более чем четыре раздела, был создан новый тип раздела, _расширенный раздел_. Диск может содержать только один расширенный раздел. Специальные разделы, называемые _логическими разделами_, могут быть созданы внутри расширенного раздела. - -Каждый раздел имеет _ID раздела_ - номер, который используется для определения типа данных на разделе. FreeBSD использует ID раздела `165`. - -Как правило, каждая операционная система, которую вы используете, определяет разделы своим способом. Например, MS-DOS(R) и ее потомки, такие как Windows(R), присваивают каждому главному и логическому разделу _букву диска_, начиная с [.filename]#C:#. - -FreeBSD нужно устанавливать в главный раздел. FreeBSD может хранить все свои данные, включая создаваемые вами файлы, на этом одном разделе. Тем не менее, если дисков много, вы можете создать разделы FreeBSD на всех дисках или на некоторых из них. При установке FreeBSD должен быть доступен по крайней мере один раздел. Это может быть чистый, подготовленный для установки раздел, или раздел с данными, которые больше не нужны. - -Если все разделы на диске уже используются, вы должны освободить один из них для FreeBSD, используя программы, поставляемые с имеющейся операционной системой (например, `fdisk` для MS-DOS(R) или Windows(R)). - -Если есть резервный раздел, используйте его. Однако, возможно сначала придется ужать один или несколько существующих разделов. - -FreeBSD для установки нужен диск не менее 100 MB. Однако, это _очень_минимальная установка, при которой не останется места для ваших личных файлов. Более реальный объем - 250 MB без графической оболочки, и более 350 MB с графической оболочкой. Если вы собираетесь устанавливать большое количество дополнительного ПО, понадобится еще больше дискового пространства. - -Для изменения размера разделов и освобождения места под FreeBSD вы можете использовать программу GParted. GParted способна работать с разделами NTFS. Утилита GParted доступна на некоторых Live CD дистрибутивах Linux, например: http://www.sysresccd.org/[SystemRescueCD]. - -Пользователи неоднократно сталкивались с проблемами при изменении размеров разделов, содержащих Microsoft(R) Vista. Поэтому рекомендуется держать под рукой инсталляционный диск с Microsoft(R) Vista во время выполнения подобных операций. Как и при любых других задачах обслуживания жестких дисков, настоятельно рекомендуется заранее сделать резервные копии данных. - -[WARNING] -==== - -Неправильное использование этих утилит может привести к уничтожению данных на диске. Удостоверьтесь в наличии свежих и исправных резервных копий данных перед их использованием. -==== - -.Использование существующего раздела без изменения -[example] -==== -Представьте что в компьютере один 4 GB диск, на котором уже установлена Windows(R), и диск разбит на два логических диска [.filename]#C:# и [.filename]#D:#, каждый по 2 GB. 1 GB данных на [.filename]#C:#, и 0.5 GB данных на [.filename]#D:#. - -Это означает, что диск состоит из двух разделов, по одному на каждую букву. Вы можете скопировать все данные с [.filename]#D:# на [.filename]#C:#, это освободит второй раздел для FreeBSD. -==== - -.Сжатие существующих разделов -[example] -==== -Представьте, что в компьютере один 4 GB диск, на котором уже установлена Windows(R). При установке Windows(R) вы создали один большой раздел, получив при этом диск [.filename]#C:# размером 4 GB. Вы используете 1.5 GB, и хотите выделить 2 GB для FreeBSD. - -Для установки FreeBSD нужно выбрать: - -. Сделать резервную копию Windows(R), затем переустановить Windows(R), выделив 2 GB под ее раздел. -. Использовать для сжатия раздела Windows(R) одну из вышеописанных утилит. - -==== - -=== Соберите информацию о конфигурации сети - -Если вы хотите подключиться к сети в процессе установки FreeBSD (например, при установке с FTP или NFS сервера), нужно знать конфигурацию сети. Вам будет предложено ввести эту информацию, чтобы FreeBSD смогла подключиться к сети для продолжения установки. - -==== Подключение к сети Ethernet, или через кабельный/DSL модем - -Если вы подключаетесь к сети Ethernet, или соединение с интернет подключено к Ethernet через кабельный или DSL модем, понадобится следующая информация: - -. IP адрес -. IP адрес шлюза по умолчанию -. Имя хоста -. IP адрес DNS сервера -. Маска подсети - -Если у вас нет этой информации, спросите системного администратора или провайдера интернет. Они могут сказать, что данные присваиваются автоматически, с использованием _DHCP_. Если это так, запомните это. - -==== Подсоединение с помощью модема - -Если вы дозваниваетесь до провайдера с помощью обычного модема, вы все же сможете установить FreeBSD через интернет, но это займет очень много времени. - -Вам нужно знать: - -. Номер телефона провайдера -. COM порт, к которому подключен модем -. Имя пользователя и пароль учетной записи для доступа в интернет - -=== Проверьте сведения об обнаруженных ошибках FreeBSD - -Хотя проект FreeBSD борется за то, чтобы каждый релиз FreeBSD был настолько стабильным, насколько это возможно, ошибки порой вкрадываются в процесс разработки. В очень редких случаях эти ошибки влияют на процесс установки. Как только эти проблемы обнаруживаются и исправляются, они попадают в http://www.FreeBSD.org/ru/releases/{rel120-current}r/errata/[сообщения об ошибках FreeBSD], находящиеся на сайте FreeBSD. Вы можете проверить сообщения об ошибках перед установкой, чтобы убедиться, что не существует проблем, о которых стоит беспокоиться. - -Информация о релизах, включая сообщения об ошибках каждого релиза, находится на странице link:https://www.FreeBSD.org/ru/releases/[информации о релизах] link:https://www.FreeBSD.org/ru/[сайта FreeBSD]. - -=== Получение установочных файлов FreeBSD - -Программа установки FreeBSD может установить FreeBSD из файлов, расположенных в одном из следующих мест: - -.Локальный диск -* CDROM или DVD -* USB-накопитель -* Раздел MS-DOS(R) на вашем компьютере -* Лента SCSI или QIC -* Гибкие диски - -.Сеть -* FTP сервер (через файрволл или HTTP прокси, если потребуется) -* NFS сервер -* Соединение через параллельный или последовательный порт - -Если вы купили FreeBSD на CD или DVD, у вас уже есть все, что нужно, переходите к следующему разделу (<<install-boot-media>>). - -Если у вас нет установочных файлов FreeBSD, перейдите к <<install-diff-media>>, который описывает, как подготовиться к установке FreeBSD любым указанным выше способом. После прочтения этого раздела, вернитесь сюда и прочтите <<install-boot-media>>. - -[[install-boot-media]] -=== Подготовка загрузочных дисков - -Процесс установки FreeBSD начинается с загрузки в ваш компьютер программы установки FreeBSD - эта программа не запускается из других операционных систем. Компьютер обычно загружает операционную систему, установленную на жестком диске, но также может быть настроен на загрузку с привода CDROM или с USB-накопителя. - -[TIP] -==== - -Если у вас есть FreeBSD на CDROM или DVD (купленный или записанный самостоятельно), и компьютер позволяет загрузку с CDROM или DVD (обычно этот пункт в BIOS называется "Boot Order" или что-то вроде), можете пропустить этот раздел. Образы FreeBSD CDROM и DVD являются загрузочными и могут быть использованы для установки FreeBSD без какой-либо специальной подготовки. -==== - -Для создания загрузочного USB-диска выполните следующие шаги: - -[.procedure] -==== -. Получение образов для USB-накопителя -+ -Загрузочные образы для USB-накопителя для FreeBSD 8._X_-RELEASE и более ранних можно найти в каталоге [.filename]#ISO-IMAGES/# по адресу `ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/_arch_/ISO-IMAGES/_version_/FreeBSD-_version_-RELEASE-_arch_-memstick.img`. Замените _arch_ и _version_ именем архитектуры и номером версии операционной системы, которую вы планируете установить. Например, образы USB-накопителя для FreeBSD/i386 {rel112-current}-RELEASE находятся в link:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/{rel112-current}/FreeBSD-{rel112-current}-RELEASE-i386-memstick.img[ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/{rel112-current}/FreeBSD-{rel112-current}-RELEASE-i386-memstick.img]. -+ -[TIP] -====== - -Для FreeBSD версий 9.0-RELEASE и более поздних путь каталогов отличается от приведенных выше. Детали загрузки образов и установки FreeBSD 9.0-RELEASE и более поздних описаны в crossref:bsdinstall[bsdinstall,Установка FreeBSD версий 9.X и более поздних]. -====== -+ -Название файла образа заканчивается на [.filename]#.img#. Каталог [.filename]#ISO-IMAGES/# содержит набор образов, среди которых вам необходимо выбрать один. Выбор зависит от версии устанавливаемой FreeBSD и, в некоторых случаях, от архитектуры оборудования, на которое будет выполняться установка. -+ -[IMPORTANT] -====== -Перед продолжением сделайте _резервную копию_ данных, находящихся на вашем USB-накопителе, так как последующие действия _сотрут_ все старые данные. -====== - -. Запись файла-образа на USB-накопитель - -[.procedure] -====== -*Procedure: Использование FreeBSD для записи файла-образа* - -[WARNING] -**** - -В данном примере подразумевается, что устройство [.filename]#/dev/da0# является нашим целевым устройством, на которое будет производиться запись образа. Будьте предельно внимательны, так как, указав неверное устройство, вы уничтожите существующие данные. -**** -.. Запись файла-образа при помощи man:dd[1] -+ -Файл [.filename]#.img#_не_ является обыкновенным файлом, копируемым на накопитель. Это образ содержимого диска. Это значит, что вы _не можете_ просто скопировать файлы с диска на диск. Вместо копирования вы должны использовать man:dd[1] для записи образа непосредственно на накопитель: -+ -[source,shell,subs="attributes"] -.... -# dd if=FreeBSD-{rel112-current}-RELEASE-i386-memstick.img of=/dev/da0 bs=64k -.... -+ -Если отображается ошибка `Operation not permitted`, убедитесь, что целевое устройство не используется и не примонтировано вручную или автоматически какой-либо полезной утилитой. Далее, повторите попытку еще раз. -====== - -[.procedure] -====== -*Procedure: Использование Windows(R) для записи файла-образа* -[WARNING] -**** - -Удостоверьтесь в том, что вы используете соответствующую целевому устройству букву диска, иначе вы уничтожите существующие данные. -**** -.. Получение приложения Image Writer for Windows -+ -Приложение Image Writer for Windows является свободно распространяемым ПО, которым можно корректно записать файл-образ на USB-накопитель. Посетите страницу https://launchpad.net/win32-image-writer/[https://launchpad.net/win32-image-writer/], скачайте и распакуйте приложение. -.. Запись файла-образа при помощи приложения Image Writer -+ -Для запуска приложения дважды щелкните мышей иконку Win32DiskImager. Убедитесь, что буква диска, отображаемая в выпадающем списке `Device` соответствует USB-накопителю. Щелкните мышей на иконку с изображением папки и выберите необходимый файл-образ. Для подтверждения выбора имени файла нажмите кнопку btn:[Save]. Убедитесь, что все введённые данные корректны, и что в других приложениях нет открытых папок или файлов, находящихся на целевом USB-накопителе. И в заключение, щелкните кнопку btn:[Write] для записи файла-образа на накопитель. -====== -==== - -Для создания загрузочных дискет для установки FreeBSD/pc98 сделайте следующее: - -[.procedure] -==== - -. Получение образов загрузочных дискет -+ -Загрузочные дискеты FreeBSD/pc98 могут быть закачаны из каталога floppies по адресу `ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/pc98/_version_-RELEASE/floppies/`. Замените _version_ номером версии, которую вы хотите установить. -+ -Расширение файла образа дискеты - [.filename]#.flp#. Каталог [.filename]#floppies/# содержит множество разных образов. Скачайте [.filename]#boot.flp#, а также несколько файлов согласно типу установки, таких как [.filename]#kern.small*# или [.filename]#kern*#. -+ -[IMPORTANT] -====== -FTP клиент должен использовать _бинарный режим_ для загрузки образов дискет. Некоторые Web-браузеры используют _текстовый_ (_ASCII_) режим, который точно не позволит загрузиться с этих дискет. -====== -+ -. Подготовка дискет -+ -Необходимо подготовить по одной дискете на каждый загруженный образ. Эти дискеты должны быть без дефектов. Лучший способ проверить это - отформатировать дискеты самостоятельно. Не доверяйте заводскому форматированию дискет. Утилита форматирования в Windows(R) не сообщит о наличии плохих секторов, она просто пометит их как "плохие" и проигнорирует. Советуем использовать новые дискеты если вы выбрали этот способ установки. -+ -[IMPORTANT] -====== -Если при попытке установки FreeBSD программа установки рушится, зависает, или делает что-то не так, сразу проверьте дискеты. Запишите образы на новые дискеты и попытайтесь еще раз. -====== -+ -. Запись образов на дискеты -+ -Файлы с расширением [.filename]#.flp# это _не_ обычные файлы, которые можно записать на дискету. Это образы всего содержимого дискеты. Это означает, что вы _не можете_ просто скопировать их с одной дискеты на другую. Вместо этого, нужно использовать специальные утилиты для записи образов на диск. -+ -Если вы записываете дискеты на компьютере под MS-DOS(R) / Windows(R), используйте утилиту `fdimage`. -+ -Если вы используете образы с CDROM, и буква вашего CDROM [.filename]#E:#, запустите ее так: -+ -[source,shell] -.... -E:\> tools\fdimage floppies\boot.flp A: -.... -+ -Повторите эту команду для каждого файла [.filename]#.flp#, вставляя новую дискету каждый раз, пометьте каждую дискету именем файла, который вы скопировали на него. Измените команду если потребуется, в зависимости от места, куда вы поместили файлы [.filename]#.flp#. Если у вас нет CDROM, `fdimage` может быть загружена из каталога link:ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/[tools] FTP сервера FreeBSD. -+ -Если вы записываете дискеты на UNIX(R) (например, на другой системе FreeBSD), используйте утилиту man:dd[1] для записи образов непосредственно на дискеты. Находясь в FreeBSD, запустите: -+ -[source,shell] -.... -# dd if=boot.flp of=/dev/fd0 -.... -+ -Под FreeBSD, [.filename]#/dev/fd0# означает первый гибкий диск (диск [.filename]#A:#). [.filename]#/dev/fd1# будет диском [.filename]#B:#, и так далее. Другие UNIX(R) системы могут по-другому именовать устройства гибких дисков, вам возможно понадобится прочитать документацию по соответствующей системе. -==== - -Теперь вы готовы к установке FreeBSD. - -[[install-start]] -== Начало установки - -[IMPORTANT] -==== -Как правило, программа установки не будет производить никаких изменений на дисках, пока не выдаст следующее сообщение: - -[.programlisting] -.... -Last Chance: Are you SURE you want continue the installation? - -If you're running this on a disk with data you wish to save then WE -STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! - -We can take no responsibility for lost disk contents! -.... - -Установка может быть прервана в любой момент до этого предупреждения без каких-либо изменений на жестком диске. Если вы считаете, что что-то настроили неправильно, можете просто выключить компьютер без риска что-либо повредить. -==== - -[[install-starting]] -=== Загрузка - -[[install-starting-i386]] -==== Загрузка i386(TM) - -[.procedure] -==== - -. Компьютер выключен. -. Включите компьютер. После включения он должен показать способ входа в меню установки BIOS, как правило это клавиши kbd:[F2], kbd:[F10], kbd:[Del], или kbd:[Alt+S]. Используете те клавиши, которые показаны на экране. В некоторых случаях компьютер может показывать картинку после запуска. Как правило, нажатие kbd:[Esc] уберет картинку и позволит вам увидеть необходимую информацию. -. Найдите установки системы, указывающие ей с какого устройства загружаться. Обычно они обозначаются как "Boot Order", и там как правило отображен список устройств, таких как `Floppy`, `CDROM`, `First Hard Disk`, и так далее. -+ -Если вы загружаетесь с CDROM, убедитесь, что он выбран. Если вы загружаетесь с USB-носителя или с дискеты, убедитесь, что выбрано соответствующее устройство. Если вы не уверены, посмотрите руководство к компьютеру и/или к его материнской плате. -+ -Сделайте изменения, затем сохраните их и выйдите. Компьютер должен перезагрузиться. -. Если вы подготовили "загрузочный" USB-носитель, как описано в <<install-boot-media>>, вставьте его в USB порт перед включением компьютера. -+ -Если вы загружаетесь с CDROM, потребуется сначала включить компьютер и вставить компакт-диск, как только это станет возможно. -+ -[NOTE] -====== -Для FreeBSD/pc98 существуют образы загрузочных дискет, подготовка которых описана в <<install-boot-media>>. Первая дискета будет содержать [.filename]#boot.flp#. Для загрузки в программу установки вставьте эту дискету в дисковод. -====== -+ -Если компьютер запускается как обычно, и загружает существующую операционную систему, возможны следующие причины: - -.. Диск был вставлен недостаточно рано в процессе загрузки. Оставьте его внутри и перегрузите компьютер. -.. Установки BIOS, измененные ранее, действуют неправильно. Надо изменять их, пока они не заработают. -.. BIOS вашего компьютера не поддерживает загрузку с выбранного типа носителя. - -. FreeBSD начнет загрузку. Если загрузка происходит с CDROM, вы увидите что-то вроде этого (информация о версии удалена): -+ -[source,shell] -.... -Booting from CD-Rom... -645MB medium detected -CD Loader 1.2 - -Building the boot loader arguments -Looking up /BOOT/LOADER... Found -Relocating the loader and the BTX -Starting the BTX loader - -BTX loader 1.00 BTX version is 1.02 -Consoles: internal video/keyboard -BIOS CD is cd0 -BIOS drive C: is disk0 -BIOS drive D: is disk1 -BIOS 636kB/261056kB available memory - -FreeBSD/i386 bootstrap loader, Revision 1.1 - -Loading /boot/defaults/loader.conf -/boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d] -\ -.... -+ -Если происходит загрузка с дискеты, вы увидите что-то вроде этого (информация о версии удалена): -+ -[source,shell] -.... -Booting from Floppy... -Uncompressing ... done - -BTX loader 1.00 BTX version is 1.01 -Console: internal video/keyboard -BIOS drive A: is disk0 -BIOS drive C: is disk1 -BIOS 639kB/261120kB available memory - -FreeBSD/i386 bootstrap loader, Revision 1.1 - -Loading /boot/defaults/loader.conf -/kernel text=0x277391 data=0x3268c+0x332a8 | - -Insert disk labelled "Kernel floppy 1" and press any key... -.... -+ -Следуя инструкциям, уберите дискету с [.filename]#boot.flp#, вставьте дискету с [.filename]#kern1.flp# и нажмите kbd:[Enter]. Загрузитесь с первой дискеты; последовательно вставляйте остальные диски при появлении соответствующего приглашения. -. Идет ли загрузка с CDROM, или с USB-носителя, или с дискеты в процессе загрузки появится меню загрузчика FreeBSD: -+ -[[boot-loader-menu]] -.FreeBSD Boot Loader Menu -image::boot-loader-menu.png[] -+ -Подождите десять секунд или нажмите kbd:[Enter]. -==== - -==== Загрузка sparc64 - -Большинство систем sparc64 настроены на автоматическую загрузку с жесткого диска. Для того, чтобы установить FreeBSD, вам потребуется выполнить загрузку по сети или с компакт-диска, что в свою очередь требует получения доступа к PROM (OpenFirmware). - -Чтобы получить доступ к PROM, перезагрузите систему и дождитесь появления сообщений загрузчика. Последние зависят от модели оборудования, но, в общем, выглядят подобно следующим: - -[source,shell] -.... -Sun Blade 100 (UltraSPARC-IIe), Keyboard Present -Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved. -OpenBoot 4.2, 128 MB memory installed, Serial #51090132. -Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4. -.... - -Если на данном этапе ваша система продолжает загружаться с диска, то для доступа к PROM вам потребуется нажать на клавиатуре сочетания клавиш kbd:[L1+A] или kbd:[Stop+A], или же - послать `BREAK` на последовательной консоли (например, набрав `~#` в man:tip[1] или man:cu[1]). Приглашение PROM выглядит подобно следующему: - -[source,shell] -.... -ok <.> -ok {0} <.> -.... - -<.> Однопроцессорные системы выдают такое приглашение. -<.> Приглашение, используемое многопроцессорными системами: цифра обозначает номер активного процессора. - -На этой стадии необходимо вставить CDROM в привод и набрать `boot cdrom` в приглашении PROM. - -[[view-probe]] -=== Просмотр результатов тестирования устройств - -Последние несколько сотен линий, отображенные на экране, сохраняются и могут быть просмотрены. - -Для просмотра буфера нажмите kbd:[Scroll Lock]. Это включит прокрутку экрана. Вы можете использовать клавиши навигации или kbd:[PageUp] и kbd:[PageDown] для просмотра результатов. Нажмите kbd:[Scroll Lock] еще раз для отключения прокрутки. - -Сделайте это сейчас для просмотра текста, ушедшего за экран, когда ядро закончило тестирование устройств. Вы увидите текст вроде <<install-dev-probe>>, хотя в деталях он будет отличаться в зависимости от устройств, имеющихся в вашем компьютере. - -[[install-dev-probe]] -.Типичный вывод Device Probe -[source,shell] -.... -avail memory = 253050880 (247120K bytes) -Preloaded elf kernel "kernel" at 0xc0817000. -Preloaded mfs_root "/mfsroot" at 0xc0817084. -md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4 - -md1: Malloc disk -Using $PIR table, 4 entries at 0xc00fde60 -npx0: <math processor> on motherboard -npx0: INT 16 interface -pcib0: <Host to PCI bridge> on motherboard -pci0: <PCI bus> on pcib0 -pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 -pci1: <PCI bus> on pcib1 -pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 -isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 -isa0: <iSA bus> on isab0 -atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 -ata0: at 0x1f0 irq 14 on atapci0 -ata1: at 0x170 irq 15 on atapci0 -uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci -0 -usb0: <VIA 83572 USB controller> on uhci0 -usb0: USB revision 1.0 -uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1 -uhub0: 2 ports with 2 removable, self powered -pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3 -dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir -q 11 at device 8.0 on pci0 -dc0: Ethernet address: 00:04:5a:74:6b:b5 -miibus0: <MII bus> on dc0 -ukphy0: <Generic IEEE 802.3u media interface> on miibus0 -ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto -ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10. -0 on pci0 -ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit) -isa0: too many dependant configs (8) -isa0: unexpected small tag 14 -orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 -fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0 -fdc0: FIFO enabled, 8 bytes threshold -fd0: <1440-KB 3.5" drive> on fdc0 drive 0 -atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 -atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0 -kbd0 at atkbd0 -psm0: <PS/2 Mouse> irq 12 on atkbdc0 -psm0: model Generic PS/@ mouse, device ID 0 -vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 -sc0: <System console> at flags 0x100 on isa0 -sc0: VGA <16 virtual consoles, flags=0x300> -sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 -sio0: type 16550A -sio1 at port 0x2f8-0x2ff irq 3 on isa0 -sio1: type 16550A -ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 -pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode -ppc0: FIFO with 16/16/15 bytes threshold -plip0: <PLIP network interface> on ppbus0 -ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33 -acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4 -Mounting root from ufs:/dev/md0c -/stand/sysinstall running as init on vty0 -.... - -Внимательно проверьте результаты тестирования устройств и убедитесь, что FreeBSD обнаружила все устройства, какие нужно. Если устройство не найдено, его не будет в списке. crossref:kernelconfig[kernelconfig,Собственное ядро] позволяет добавлять поддержку устройств, отсутствующих в ядре [.filename]#GENERIC#, например звуковых карт. - -После проверки аппаратных устройств, появится <<config-country>>. Используйте клавиши навигации для выбора страны, региона или группы. Затем нажмите kbd:[Enter], произойдет выбор страны. - -[[config-country]] -.Меню выбора страны -image::config-country.png[] - -Если вы выбрали страну [.guimenuitem]#United States#, то будет использована стандартная американская раскладка клавиатуры, если же была выбрана другая страна, то отобразится следующее меню. Используя клавиши навигации, выберите необходимую раскладку и нажмите kbd:[Enter]. - -[[config-keymap]] -.Меню выбора раскладки клавиатуры -image::config-keymap.png[] - -После меню выбора страны будет отображено главное меню sysinstall. - -[[using-sysinstall]] -== Введение в Sysinstall - -Утилита sysinstall это программа установки, предоставляемая проектом FreeBSD. Это консольное приложение, разделенное на несколько меню и экранов, которые вы можете использовать для настройки и управления процессом установки. - -Меню sysinstall управляется клавишами навигации, kbd:[Enter], kbd:[Tab], пробелом, и другими. Подробное описание клавиш и их функций содержится в информации по использованию sysinstall. - -Для просмотра этой информации убедитесь, что выбраны пункт [.guimenuitem]#Usage# и кнопка btn:[Select], как показано на <<sysinstall-main3>>, затем нажмите kbd:[Enter]. - -Будут показаны инструкции по использованию меню. После просмотра инструкций, нажмите kbd:[Enter] для возврата в главное меню. - -[[sysinstall-main3]] -.Выбор Usage в главном меню Sysinstall -image::main1.png[] - -[[select-doc]] -=== Выбор меню документации (Doc) - -Из главного меню выберите клавишами навигации [.guimenuitem]#Doc# и нажмите kbd:[Enter]. - -[[main-doc]] -.Выбор меню документации -image::main-doc.png[] - -Будет отображено меню документации. - -[[docmenu1]] -.Меню документации Sysinstall -image::docmenu1.png[] - -Рекомендуется прочитать предоставляемую документацию. - -Для просмотра документа выберите его с помощью клавиш навигации и нажмите kbd:[Enter]. После прочтения документа нажмите kbd:[Enter] для возврата в меню документации. - -Для возврата в главное меню выберите [.guimenuitem]#Exit# с помощью клавиш навигации и нажмите kbd:[Enter]. - -[[keymap]] -=== Выбор меню раскладки клавиатуры (Keymap) - -Для изменения раскладки клавиатуры выберите из меню с помощью клавиш навигации [.guimenuitem]#Keymap# и нажмите kbd:[Enter]. Это потребуется только при использовании нестандартной или не-US клавиатуры. - -[[sysinstall-keymap]] -.Выбор меню раскладки клавиатуры -image::main-keymap.png[] - -Различные раскладки клавиатуры могут быть выбраны из меню с использованием клавиш навигации, затем следует нажать kbd:[Space]. Нажатие kbd:[Space] еще раз приведет к отмене выбора. Когда необходимые раскладки будут выбраны, перейдите на btn:[OK] с помощью клавиш навигации и нажмите kbd:[Enter]. - -На экран выведена только часть списка. Нажав kbd:[Tab], можно выбрать btn:[Cancel], вернуться к раскладке по умолчанию и перейти к главному меню. - -[[sysinstall-keymap-menu]] -.Меню раскладки клавиатуры -image::keymap.png[] - -[[viewsetoptions]] -=== Параметры установки (Options) - -Выберите пункт [.guimenuitem]#Options# и нажмите kbd:[Enter]. - -[[sysinstall-options]] -.Выбор параметров установки -image::main-options.png[] - -[[options]] -.Параметры Sysinstall -image::options.png[] - -Параметры по умолчанию обычно устраивают большинство пользователей и не нуждаются в изменении. Имя релиза зависит от устанавливаемой версии. - -Описание выбранного пункта будет появляться внизу экрана с синей подсветкой. Обратите внимание, что один из параметров - [.guimenuitem]#Use Defaults#, означает сброс всех параметров к значениям по умолчанию. - -Нажатие kbd:[F1] отобразит справку по различным параметрам. - -Нажатием kbd:[Q] можно перейти к главному меню. - -[[start-install]] -=== Начало стандартной установки (Standard) - -Пункт [.guimenuitem]#Standard# рекомендуется для новых пользователей UNIX(R) или FreeBSD. Используйте клавиши навигации для выбора пункта [.guimenuitem]#Standard#, а затем нажмите kbd:[Enter] для запуска установки. - -[[sysinstall-standard]] -.Начало стандартной установки -image::main-std.png[] - -[[install-steps]] -== Выделение дискового пространства - -Ваша первая задача - выделить дисковое пространство под FreeBSD и разметить его, чтобы sysinstall могла его подготовить. Для этого вам нужно знать, как FreeBSD ищет информацию на диске. - -[[install-drive-bios-numbering]] -=== Нумерация дисков в BIOS - -Перед установкой и настройкой операционной системы необходимо знать, как FreeBSD трактует предоставляемую системой BIOS информацию о дисках и их именовении. - -В PC, работающем под BIOS-зависимой операционной системой, такой как MS-DOS(R) или Microsoft(R) Windows(R), BIOS может отходить от обычного порядка нумерации дисков. Это позволяет пользователю загружаться не только с так называемого "primary master" диска. Это особенно удобно для тех пользователей, которые покупают второй идентичный первому жесткий диск и регулярно делают копии первого диска на второй. Затем, если первый диск выйдет из строя, будет заражен вирусом или поврежден из-за сбоя операционной системы, он может быть легко восстановлен путем логической перестановки дисков в BIOS. Это все равно что переключить кабели дисков, но без вскрытия корпуса. - -Более дорогостоящие системы со SCSI контроллерами зачастую имеют расширения BIOS, позволяющие сходным путем менять порядок до семи SCSI дисков. - -Пользователи, привыкшие пользоваться этими полезными функциями, могут быть удивлены, что во FreeBSD результаты не совпадают с ожидаемыми. FreeBSD не использует BIOS, и не знает о "логическом отображении дисков в BIOS". Это может привести к очень сложным ситуациям, особенно когда диски имеют одинаковую геометрию и содержат точную копию данных друг друга. - -При использовании FreeBSD всегда восстанавливайте настройки BIOS к первоначальной нумерации перед установкой системы и оставляйте их в таком виде. Если вам понадобится переключить диски, сделайте это, но путем физического переконфигурирования, вскрыв корпус, переключив перемычки и кабели. - -**** -Билл разобрал старый Wintel компьютер, чтобы сделать еще один компьютер под FreeBSD для Фреда. Билл установил один SCSI диск как нулевое устройство SCSI и поставил на него FreeBSD. - -Фред начал использовать систему, но через несколько дней обнаружил, что старый SCSI диск сообщает о множестве сбоев и сказал об этом Биллу. - -Еще через несколько дней Билл решил, что настало время решить проблему, и достал такой же SCSI диск из "заначки" в кладовке. Первая проверка поверхности показала, что диск работает нормально; Билл установил этот диск как четвертое устройство SCSI и скопировал образ диска с нулевого устройства на четвертое. Теперь, когда новый диск был установлен и отлично работал, Билл решил что неплохо бы начать использовать его, и с помощью функции SCSI BIOS поменял порядок дисков, чтобы система могла грузиться с четвертого устройства SCSI. FreeBSD загрузилась и работала без проблем. - -Фред поработал еще несколько дней, и скоро они с Биллом решили, что настало время для нового приключения - время обновить версию FreeBSD. Билл удалил нулевое устройство SCSI, потому что оно "подглючивало", и установил на его место такой же диск из "заначки". Затем Билл установил новую версию FreeBSD на новое нулевое устройство SCSI используя дискеты Фреда с интернет сервера FTP. Установка прошла отлично. - -Фред использовал новую версию FreeBSD несколько дней и удостоверился, что она вполне подходит для работы в инженерном отделе. Настало время скопировать все архивы со старого диска. Фред смонтировал четвертое устройство SCSI (последнюю копию старой версии FreeBSD) и обнаружил, что ни одного из его драгоценных файлов на четвертом устройстве SCSI нет. - -Куда делись данные? - -Когда Билл сделал копию с нулевого устройства SCSI на четвертое устройство SCSI, оно стало "клоном". Когда Билл поменял настройки SCSI BIOS, чтобы загрузиться с четвертого устройства SCSI, он всего лишь обманул сам себя. FreeBSD все еще работала с нулевого устройства SCSI. Изменение этих настроек BIOS привело к загрузке части кода Boot и Loader с выбранного в BIOS диска, но после загрузки драйверов FreeBSD настройки BIOS были проигнорированы, и FreeBSD вернулась к нормальной нумерации. Как показано "на пальцах", система продолжила работать с нулевым устройством SCSI, и все данные Фреда остались там, а не на четвертом устройстве SCSI. То, что система грузилась с четвертого устройства SCSI, было всего лишь обманутыми ожиданиями. - -Мы рады упомянуть, что данные не были уничтожены или повреждены при нашем исследовании этого феномена. Старое нулевое устройство SCSI было вытащено из груды железа, и все файлы Фреда вернулись к нему. - -Хотя в этом рассказе были использованы SCSI диски, с IDE дисками все точно так же. -**** - -[[main-fdisk]] -=== Создание слайсов с использованием FDisk - -[NOTE] -==== -Внесенные вами изменения не будут записываться на диск сразу. Если вы думаете, что сделали ошибку, и хотите начать сначала, можете использовать меню для выхода из sysinstall и попробовать еще раз или нажатием kbd:[U] вызвать опцию [.guimenuitem]#Undo# (отмена). Если вы запутались и не можете выйти, просто выключите компьютер. -==== - -После начала стандартной установки в sysinstall будет показано это сообщение: - -[source,shell] -.... - Message - In the next menu, you will need to set up a DOS-style ("fdisk") - partitioning scheme for your hard disk. If you simply wish to devote - all disk space to FreeBSD (overwriting anything else that might be on - the disk(s) selected) then use the (A)ll command to select the default - partitioning scheme followed by a (Q)uit. If you wish to allocate only - free space to FreeBSD, move to a partition marked "unused" and use the - (C)reate command. - [ OK ] - - [ Press enter or space ] -.... - -Нажмите kbd:[Enter] как предлагается. Будет показан список всех жестких дисков, обнаруженных ядром во время тестирования устройств. <<sysinstall-fdisk-drive1>> показывает пример системы с двумя IDE дисками. Они были названы [.filename]#ad0# и [.filename]#ad2#. - -[[sysinstall-fdisk-drive1]] -.Выберите диск для FDisk -image::fdisk-drive1.png[] - -Вы можете быть удивлены, почему устройства [.filename]#ad1# здесь нет. Почему оно было пропущено? - -Предположим, что у вас есть два жестких диска IDE, один master на первом контроллере IDE, а второй master на втором контроллере IDE. Если FreeBSD пронумерует их в том порядке, в котором нашла, [.filename]#ad0# и [.filename]#ad1#, все будет работать. - -Но если вы добавите третий диск, как slave устройство на первый контроллер IDE, он станет [.filename]#ad1#, а предыдущий [.filename]#ad1# станет [.filename]#ad2#. Поскольку имена устройств (таких как [.filename]#ad1s1a#) используются для обращения к файловым системам, вы можете вдруг обнаружить, что некоторые из ваших файловых систем больше не отображаются правильно и вам потребуется изменить конфигурацию FreeBSD. - -Для обхода этой проблемы, ядро может быть настроено так, чтобы именовать IDE диски на основе их местоположения, а не порядка, в котором они были найдены. С этой схемой master диск на втором контроллере IDE будет _всегда_ устройством [.filename]#ad2#, если даже нет устройств [.filename]#ad0# или [.filename]#ad1#. - -Это конфигурация ядра FreeBSD по умолчанию, поэтому на экране показаны [.filename]#ad0# и [.filename]#ad2#. У компьютера, с которого был взят этот снимок экрана, есть по одному IDE диску на обеих master каналах IDE контроллеров и ни одного диска на каналах slave. - -Вы должны выбрать диск, на который хотите установить FreeBSD, и нажать btn:[OK]. Запустившийся FDisk будет выглядеть примерно как <<sysinstall-fdisk1>>. - -Экран FDisk разбит на три раздела. - -Первый раздел, занимающая первые две линии экрана, показывает подробную информацию о выбранном в данный момент диске, включая его имя во FreeBSD, геометрию и общий размер диска. - -Второй раздел показывает имеющиеся в данный момент на диске слайсы, где они начинаются и заканчиваются, их размер, имя, которое им дала FreeBSD, описание и подтип. На этом примере показаны два маленьких неиспользованных слайса, которые являются артефактами схемы разметки диска на PC. Также показан один большой FAT слайс, который почти всегда является диском [.filename]#C:# в MS-DOS(R) / Windows(R), и дополнительный слайс, который может содержать диски с другими буквами для MS-DOS(R) / Windows(R). - -Третий раздел показывает команды, доступные в FDisk. - -[[sysinstall-fdisk1]] -.Типичные разделы `fdisk` перед редактированием -image::fdisk-edit1.png[] - -Ваши действия теперь будут зависеть от того, как вы хотите разбить диск на слайсы. - -Если вы хотите использовать для FreeBSD весь диск (это приведет к удалению всех других данных на этом диске когда вы подтвердите sysinstall продолжение процесса установки), нажмите kbd:[A], что соответствует опции [.guimenuitem]#Использовать весь диск (Use Entire Disk)#. Существующие слайсы будут удалены, и заменены на небольшую область, помеченную как `неиспользуемая (unused)` (это опять же артефакт разметки диска ПК), и один большой слайс для FreeBSD. Когда вы сделаете это, нужно выбрать вновь созданный слайс FreeBSD используя клавиши навигации, а затем нажать kbd:[S], чтобы сделать слайс загрузочным. Экран будет похож на <<sysinstall-fdisk2>>. Обратите внимание, что `A` в колонке `Flags` означает, что слайс _активен_ и с него будет происходить загрузка. - -Если вы будете удалять существующий слайс для освобождения места под FreeBSD, выберите слайс, используя клавиши навигации, и нажмите kbd:[D]. Затем можете нажать kbd:[C], и получить приглашение на ввод размера слайса, который вы хотите создать. Введите соответствующее значение и нажмите kbd:[Enter]. Значение по умолчанию в этом поле означает наибольший размер слайса, который может быть выбран; это может быть наибольший непрерывный блок неразмеченного пространства или размер всего жесткого диска. - -Если вы уже освободили место для FreeBSD, то можете нажать kbd:[C] для создания нового слайса. Будет также предложено ввести размер слайса, который вы хотите создать. - -[[sysinstall-fdisk2]] -.Разбиение в Fdisk с использованием всего диска -image::fdisk-edit2.png[] - -Когда закончите, нажмите kbd:[Q]. Изменения будут сохранены в sysinstall, но еще не записаны на диск. - -[[bootmgr]] -=== Установка менеджера загрузки (Boot Manager) - -Теперь вам предлагается установить менеджер загрузки. Как правило, нужно выбрать установку менеджера загрузки если: - -* У вас больше чем один диск и вы устанавливаете FreeBSD не на первый диск. -* Вы устанавливаете FreeBSD вместе с другой операционной на один и тот же диск, и хотите выбирать при загрузке FreeBSD или другую операционную систему. - -Если FreeBSD единственная операционная система, установленная на этом компьютере, и находится на первом жестком диске, подойдет менеджер загрузки [.guimenuitem]#Standard#. Выберите [.guimenuitem]#None# если вы используете менеджер загрузки сторонних разработчиков, способный загрузить FreeBSD. - -Сделайте выбор и нажмите kbd:[Enter]. - -[[sysinstall-bootmgr]] -.Меню менеджера загрузки Sysinstall -image::boot-mgr.png[] - -Экран подсказки, вызываемый по нажатию kbd:[F1], описывает проблемы, которые могут быть встречены при попытке совместного использования диска операционными системами. - -=== Создание слайсов на другом диске - -Если дисков больше чем один, вернитесь к экрану выбора дисков (Select Drives) после выбора менеджера загрузки. Если вы собираетесь устанавливать FreeBSD более чем на один диск, можете выбрать другой диск и повторить процесс разбиения на слайсы с использованием FDisk. - -[IMPORTANT] -==== -Если вы устанавливаете FreeBSD не на первый жесткий диск, потребуется установить менеджер загрузки FreeBSD на оба диска. -==== - -[[sysinstall-fdisk-drive2]] -.Выход из выбора диска -image::fdisk-drive2.png[] - -Клавиша kbd:[Tab] переключает между последним выбранным диском, btn:[OK], и btn:[Cancel]. - -Нажмите kbd:[Tab] один раз для выбора btn:[OK], затем нажмите kbd:[Enter] для продолжения установки. - -[[bsdlabeleditor]] -=== Создание разделов с помощью Disklabel - -Теперь вы должны создать несколько разделов внутри каждого только что созданного слайса. Запомните, что у каждого раздела есть буква с `a` до `h`, а разделы `b`, `c`, и `d` имеют соглашения, которых вы должны придерживаться. - -Некоторые приложения могут выигрывать от определенных схем разделов, особенно если у вас разделы на более чем одном диске. Тем не менее, для вашей первой установки FreeBSD не нужно слишком углубляться в принципы разбиения диска. Более важно установить FreeBSD и начать ее использовать. Вы всегда можете переустановить FreeBSD для изменения схемы разделов, когда поближе познакомитесь с операционной системой. - -Эта схема показывает четыре раздела - один для подкачки и три для файловых систем. - -.Планирование разделов для первого диска -[cols="1,1,1,1", frame="none", options="header"] -|=== -| Раздел -| Файловая система -| Размер -| Описание - -|`a` -|[.filename]#/# -|1 GB -|Корневая файловая система. Любая другая файловая система будет смонтирована на эту. 1 GB это подходящий размер для этой файловой системы. Вы не будете хранить на ней слишком много данных, а обычная установка FreeBSD разместит здесь около 128 MB данных. Оставшееся пространство используется для временных файлов, а также оставляет возможность расширения для будущих версий FreeBSD, которым может понадобится больше места в [.filename]#/#. - -|`b` -|N/A -|2-3 x RAM -| - -Раздел подкачки находится на разделе `b`. Выбор правильного размера раздела подкачки это немного искусство. Хороший практический способ выбрать размер подкачки это установить его равным двум или трем размерам доступной физической памяти (RAM). Должно быть хотя бы 64 MB подкачки; если в компьютере меньше чем 32 MB памяти - установите размер подкачки равным 64 MB. - -Если у вас больше одного диска, можно расположить подкачку на каждом диске. FreeBSD будет использовать каждый диск, что серьезно увеличит скорость подкачки. В этом случае, определите общий размер подкачки, который вам нужен (например, 128 MB), и поделите его на число имеющихся дисков (например, два) для определения размера разделов подкачки, которые нужно разместить на каждом вашем диске, в этом примере 64 MB на диск. - -|`e` -|[.filename]#/var# -|512 MB -|Каталог [.filename]#/var# содержит файлы, которые постоянно меняются; логи и другие административные файлы. Многие из этих файлов интенсивно читаются и записываются в процессе ежедневной работы FreeBSD. Размещение их на отдельной файловой системе позволяет FreeBSD оптимизировать доступ к этим файлам без затрагивания других каталогов, не имеющих такой же модели доступа. - -|`f` -|[.filename]#/usr# -|Остальная часть диска (по крайней мере - 8 GB) -|Все другие файлы как правило хранятся в каталоге [.filename]#/usr# и его подкаталогах. -|=== - -[WARNING] -==== - -Значения, приведённые выше, являются примерными и уместны к использованию лишь опытными пользователями. Остальным - рекомендуется применять опцию автоматического разбиения, называемую `Auto Defaults` в редакторе разделов FreeBSD. -==== - -Если вы устанавливаете FreeBSD более чем на один диск, вы должны также создать разделы в других слайсах, которые настроили. Простейший путь сделать это - создать два раздела на каждом диске, один для подкачки, а другой для файловой системы. - -.Разметка разделов для остальных дисков -[cols="1,1,1,1", frame="none", options="header"] -|=== -| Раздел -| Файловая система -| Размер -| Описание - -|`b` -|N/A -|Смотрите описание -|Как уже обсуждалось, вы можете распространить подкачку на каждый диск. Даже если раздел `a` свободен, соглашение говорит о том, что подкачка находится на разделе `b`. - -|`e` -|/disk_n_ -|Остальная часть диска -|Остальная часть диска занята одним большим разделом. Он легко может быть помещен на раздел `a` вместо раздела `e`. Однако, соглашение говорит, что раздел `a` зарезервирован на слайсе для корневой ([.filename]#/#) файловой системы. вы можете не следовать этому соглашению, но программа sysinstall будет ему следовать, поэтому приняв его, вы сделаете установку несколько проще. Вы можете монтировать эти файловые системы к любой точке; в этом примере предлагается смонтировать их как каталоги [.filename]#/diskn#, где _n_ это номер, который уникален для каждого диска. Но вы можете использовать другую схему, если захотите. -|=== - -Теперь, выбрав разметку разделов, можете приступить к их созданию в sysinstall. Вы увидите это сообщение: - -[source,shell] -.... - Message - Now, you need to create BSD partitions inside of the fdisk - partition(s) just created. If you have a reasonable amount of disk - space (1 GB or more) and don't have any special requirements, simply - use the (A)uto command to allocate space automatically. If you have - more specific needs or just don't care for the layout chosen by - (A)uto, press F1 for more information on manual layout. - - [ OK ] - [ Press enter or space ] -.... - -Нажмите kbd:[Enter] для запуска редактора разделов FreeBSD, называемого Disklabel. - -<<sysinstall-label>> показывает экран только что запущенного Disklabel. Экран поделен на три раздела. - -Первые несколько линий показывают имя диска, с которым вы сейчас работаете и слайс, содержащий раздел, который вы создаете (здесь Disklabel называет это `именем раздела (Partition name)` вместо имени слайса). Этот экран также показывает объем свободного пространства на слайсе, т.е. пространство, выделенное под слайс, но еще не отданное под раздел. - -В центре экрана показаны уже созданные разделы, имена файловых систем, содержащихся в разделах, их размер и некоторые опции, применяемые при создания файловых систем. - -Нижняя треть экрана показывает управляющие клавиши, работающие в Disklabel. - -[[sysinstall-label]] -.Редактор Sysinstall Disklabel -image::disklabel-ed1.png[] - -Disklabel может автоматически создать разделы и присвоить им размеры по умолчанию. Значения размеров по умолчанию вычисляются с помощью внутреннего алгоритма, исходя из емкости диска. Попробуйте это, нажав kbd:[A]. Вы увидите экран как на <<sysinstall-label2>>. В зависимости от размера диска, значения по умолчанию могут подходить или не подходить вам. Это не имеет значения, если вы не принимаете их. - -[NOTE] -==== -По умолчанию под каталог [.filename]#/tmp# выделяется собственный раздел вместо использования части раздела [.filename]#/#. Это помогает избежать заполнения раздела [.filename]#/# временными файлами. -==== - -[[sysinstall-label2]] -.Редактор Sysinstall Disklabel с установками по умолчанию -image::disklabel-auto.png[] - -Если вы решили не использовать разделы по умолчанию и заменить их на свои, используйте клавиши навигации для выбора первого раздела, затем нажмите kbd:[D] для его удаления. Повторите это для удаления всех предложенных разделов. - -Для создания первого раздела (`a`, монтируемого как [.filename]#/# - root), убедитесь, что выбран соответствующий слайс вверху экрана и нажмите kbd:[C]. Появится диалог, предлагающий выбрать размер нового раздела (как показано на <<sysinstall-label-add>>). Вы можете ввести количество блоков диска, или количество мегабайт с `M` после номера, или гигабайт с `G`, или цилиндров с `C`. - -[[sysinstall-label-add]] -.Свободное место для корневого раздела -image::disklabel-root1.png[] - -Размер по умолчанию задан для создания корневого раздела на весь слайс. Если вы используете размеры разделов, описанные ранее в примере, удалите это значение используя kbd:[Backspace], а затем введите `512M`, как показано на <<sysinstall-label-add2>>. Затем нажмите btn:[OK]. - -[[sysinstall-label-add2]] -.Редактирование размера корневого раздела -image::disklabel-root2.png[] - -После указания размера раздела вам будет задан вопрос, должен ли этот раздел содержать файловую систему или раздел подкачки. Диалог показан на <<sysinstall-label-type>>. Первый раздел будет содержать файловую систему, поэтому проверьте, что выбрана [.guimenuitem]#FS# и нажмите kbd:[Enter]. - -[[sysinstall-label-type]] -.Выбор типа корневого раздела -image::disklabel-fs.png[] - -Наконец, поскольку вы создаете файловую систему, нужно сказать Disklabel где файловая система будет смонтирована. Диалог показан на <<sysinstall-label-mount>>. Точка монтирования корневой файловой системы [.filename]#/#, поэтому введите `/`, и нажмите kbd:[Enter]. - -[[sysinstall-label-mount]] -.Выбор точки монтирования корневой файловой системы -image::disklabel-root3.png[] - -На экране будет показан вновь созданный раздел. Вам нужно повторить эту процедуру для других разделов. При создании раздела подкачки вопроса про точку монтирования не будет, поскольку раздел подкачки никогда не монтируется. Когда будете создавать последний раздел, [.filename]#/usr#, можете оставить предложенный размер как есть, чтобы использовать весь остаток слайса. - -Последний экран FreeBSD редактора DiskLabel будет похож на <<sysinstall-label4>>, хотя ваш выбор значений может быть другим. Нажмите kbd:[Q], чтобы выйти. - -[[sysinstall-label4]] -.Редактор Sysinstall Disklabel -image::disklabel-ed2.png[] - -[[install-choosing]] -== Выбор устанавливаемых компонентов - -[[distset]] -=== Выбор дистрибутивного набора (Distribution Set) - -Выбор дистрибутивного набора зависит в основном от направления будущего использования системы и от доступного дискового пространства. Предустановленные опции варьируются от наименьшей возможной конфигурации до полной установки. Для новичков в UNIX(R) и/или FreeBSD лучшим выбором будет одна из этих предустановленных опций. Настройка дистрибутивного набора как правило нужна более опытным пользователям. - -Нажмите kbd:[F1] для получения информации о дистрибутивных наборах и их содержимом. После просмотра помощи нажмите kbd:[Enter] для возврата к меню выбора дистрибутивного набора. - -Если желательно наличие графического интерфейса пользователя, то задачи настройки X сервера и выбора десктопа по умолчанию должны быть выполнены после установки FreeBSD. Более подробная информация по установке и настройке X сервера находится в crossref:x11[x11, X Window System]. - -Если планируется пересборка ядра, выберите опцию, включающую исходные тексты. Информация о том, зачем пересобирать ядро и как это сделать, находится на crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]. - -Ясно, что наиболее универсальная система включает все. Если места на диске достаточно, выберите [.guimenuitem]#All#, как показано на <<distribution-set1>> и нажмите kbd:[Enter]. Если есть сомнения относительно того, хватит ли диска, используйте наиболее подходящую опцию. Не беспокойтесь о том, какой выбор будет наилучшим, другие части дистрибутива могут быть добавлены после установки. - -[[distribution-set1]] -.Выбор дистрибутивных наборов -image::dist-set.png[] - -[[portscol]] -=== Установка Коллекции Портов - -После выбора подходящего дистрибутива можно будет выбрать установку Коллекции Портов FreeBSD. Коллекция Портов - лёгкий и удобный путь установки программ. Коллекция Портов не содержит исходных кодов программ. Это набор файлов, который автоматизирует загрузку, компилирование и установку пакетов программного обеспечения сторонних разработчиков. crossref:ports[ports, Установка приложений. порты и пакеты] показывает, как использовать Коллекцию Портов. - -Программа установки не проверяет, есть ли достаточно места. Выберите эту опцию только в том случае, если его достаточно. В FreeBSD {rel120-current}, Коллекция Портов занимает около {ports-size}. В более современных релизах это значение всегда больше. - -[source,shell] -.... - User Confirmation Requested - Would you like to install the FreeBSD ports collection? - - This will give you ready access to over 24,000 ported software packages, - at a cost of around 500 MB of disk space when "clean" and possibly much - more than that if a lot of the distribution tarballs are loaded - (unless you have the extra CDs from a FreeBSD CD/DVD distribution - available and can mount it on /cdrom, in which case this is far less - of a problem). - - The ports collection is a very valuable resource and well worth having - on your /usr partition, so it is advisable to say Yes to this option. - - For more information on the ports collection & the latest ports, - visit: - http://www.FreeBSD.org/ports - - [ Yes ] No -.... - -Выберите btn:[yes] для установки Коллекции Портов, или btn:[no], чтобы пропустить установку. Нажмите kbd:[Enter], чтобы продолжить. Меню выбора дистрибутивных наборов появится опять. - -[[distribution-set2]] -.Подтверждение выбора дистрибутивного набора -image::dist-set2.png[] - -Если вы согласны с выбранными опциями, переместитесь на [.guimenuitem]#Exit#, убедитесь, что выбран btn:[OK] и нажмите kbd:[Enter], чтобы продолжить. - -[[install-media]] -== Выбор источника для установки - -При установке с CDROM или DVD используйте клавиши навигации, для перехода к пункту [.guimenuitem]#Install from a FreeBSD CD/DVD#. Убедитесь, что выбран btn:[OK], и нажмите kbd:[Enter] для запуска установки. - -При других методах установки выберите соответствующую опцию и следуйте инструкциям. - -Нажмите kbd:[F1] для просмотра справки по источникам установки. Нажмите kbd:[Enter] для возврата к меню выбора источника установки. - -[[choose-media]] -.Выбор источника установки -image::media.png[] - -[NOTE] -.Режимы установки с FTP -==== -Есть три режима установки через FTP, которые вы можете выбрать: активный FTP, пассивный FTP, или через HTTP прокси. - -Активный FTP: [.guimenuitem]#Install from an FTP server#:: -С этой опцией все закачки по FTP будут выполнены в "активном" режиме. Этот режим не позволяет работать через файрволл, но зачастую позволяет работать со старыми серверами FTP, не поддерживающими пассивный режим. Если соединение прерывается в пассивном режиме (по умолчанию), попробуйте активный! - -Пассивный FTP: [.guimenuitem]#Install from an FTP server through a firewall#:: -Эта опция говорит sysinstall использовать "пассивный" режим для работы с FTP. Он позволяет работать через файрволл, не разрешающий входящие соединения на случайных TCP портах. - -FTP через HTTP прокси: [.guimenuitem]#Install from an FTP server through a http proxy#:: -Эта опция говорит sysinstall использовать HTTP протокол (как Web-браузер) для работы с FTP через прокси. Прокси будет транслировать все запросы и посылать их на FTP сервер. Это позволяет проходить через файрволл, на котором FTP запрещен, но есть HTTP прокси. В этом случае потребуется указать прокси и FTP сервер. - -Для работы с FTP через прокси, необходимо поместить имя сервера как часть имени пользователя после знака "@". Прокси сервер "обманет" настоящий сервер. Например, предположим что вы хотите провести установку с `ftp.FreeBSD.org`, используя FTP через прокси `foo.example.com`, прослушивающем порт 1234. - -В этом случае, войдите в меню параметров, установите имя пользователя FTP `ftp@ftp.FreeBSD.org`, а вместо пароля введите свой адрес email. В качестве источника установки выберите FTP (или пассивный FTP, если прокси его поддерживает), и URL `ftp://foo.example.com:1234/pub/FreeBSD`. - -Так как [.filename]#/pub/FreeBSD# с сервера `ftp.FreeBSD.org` идет через прокси `foo.example.com`, вы сможете провести установку с _этого_ компьютера (файлы будут загружены с `ftp.FreeBSD.org` как требуется для установки). -==== - -[[install-final-warning]] -== Подтверждение установки - -Теперь можно начинать установку. Это последний шанс отменить установку, и таким образом избежать изменений на жестком диске. - -[source,shell] -.... - User Confirmation Requested - Last Chance! Are you SURE you want to continue the installation? - - If you're running this on a disk with data you wish to save then WE - STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! - - We can take no responsibility for lost disk contents! - - [ Yes ] No -.... - -Выберите btn:[yes] и нажмите kbd:[Enter], чтобы начать. - -Время установки сильно зависит от выбранного дистрибутивного набора, источника установки и скорости компьютера. Появится несколько сообщений о статусе процесса установки. - -Установка будет завершена, когда отобразится следующее сообщение: - -[source,shell] -.... - Message - -Congratulations! You now have FreeBSD installed on your system. - -We will now move on to the final configuration questions. -For any option you do not wish to configure, simply select No. - -If you wish to re-enter this utility after the system is up, you may -do so by typing: /usr/sbin/sysinstall. - - [ OK ] - - [ Press enter or space ] -.... - -Нажмите kbd:[Enter] для начала послеустановочной настройки. - -Выбор btn:[no] и нажатие kbd:[Enter] прервет процесс установки, изменения в систему внесены не будут. Появится следующее сообщение: - -[source,shell] -.... - Message -Installation complete with some errors. You may wish to scroll -through the debugging messages on VTY1 with the scroll-lock feature. -You can also choose "No" at the next prompt and go back into the -installation menus to retry whichever operations have failed. - - [ OK ] -.... - -Это сообщение появилось, поскольку ничего не было установлено. Нажатие kbd:[Enter] вернет вас в главное меню установки, чтобы выйти из нее. - -[[install-post]] -== После установки - -После успешной установки необходимо настроить множество параметров. Некоторые параметры могут быть заданы из меню параметров после установки, перед загрузкой установленной FreeBSD, или после нее с использованием `sysinstall`, где надо выбрать пункт [.guimenuitem]#Configure#. - -[[inst-network-dev]] -=== Настройка сетевых устройств (Network Device Configuration) - -Если вы настраивали PPP для установки через FTP, этот экран не появится, и настройку можно будет произвести позже как описано выше. - -Чтобы лучше узнать о локальных сетях и настройке FreeBSD в качестве шлюза/маршрутизатора, обратитесь к главе crossref:advanced-networking[advanced-networking,Сложные вопросы работы в сети]. - -[source,shell] -.... - User Confirmation Requested - Would you like to configure any Ethernet or PPP network devices? - - [ Yes ] No -.... - -Для настройки сетевого устройства выберите btn:[yes] и нажмите kbd:[Enter]. Или нажмите btn:[no], чтобы продолжить. - -[[ed-config1]] -.Выбор Ethernet устройства -image::ed0-conf.png[] - -Выберите интерфейс для настройки с помощью клавиш навигации и нажмите kbd:[Enter]. - -[source,shell] -.... - User Confirmation Requested - Do you want to try IPv6 configuration of the interface? - - Yes [ No ] -.... - -Для частной локальной сети обычный протокол интернет (IPv4) вполне достаточен, поэтому выбрана кнопка btn:[no] и нажат kbd:[Enter]. - -Если вы хотите подсоединиться к существующей сети IPv6 через сервер RA, выберите btn:[yes] и нажмите kbd:[Enter]. Поиск RA серверов займет несколько секунд. - -[source,shell] -.... - User Confirmation Requested - Do you want to try DHCP configuration of the interface? - - Yes [ No ] -.... - -Если DHCP (Dynamic Host Configuration Protocol) не нужен, выберите btn:[no] с помощью клавиш навигации и нажмите kbd:[Enter]. - -Выбор btn:[yes] запустит dhclient, и, если все пройдет нормально, заполнит информацию о конфигурации сети автоматически. Обратитесь к crossref:network-servers[network-dhcp,Автоматическая настройка сети (DHCP)] за более подробными сведениями. - -Следующий экран конфигурации сети показывает настройку устройства Ethernet системы, которая будет работать шлюзом для локальной сети. - -[[ed-config2]] -.Настройка сети для _ed0_ -image::ed0-conf2.png[] - -Используйте kbd:[Tab] для выбора полей и заполнения их соответствующими данными: - -Host:: -Полное имя хоста, в этом примере `k6-2.example.com`. - -Domain:: -Имя домена, в котором находится ваш компьютер, в этом примере `example.com`. - -IPv4 Gateway:: -IP хоста, пересылающего пакеты наружу локальной сети. Вам потребуется заполнить его, если это компьютер, подключенный к сети. _Оставьте это поле пустым_, если компьютер является шлюзом в интернет для сети. Шлюз IPv4 известен также как шлюз по умолчанию или маршрут по умолчанию. - -Name server:: -IP адрес местного сервера DNS. В этой локальной сети нет DNS сервера, поэтому использован IP адрес DNS сервера провайдера (`208.163.10.2`). - -IPv4 address:: -IP адрес, использованный для этого интерфейса, `192.168.0.1` - -Netmask:: -Адрес блока, использованного для этой локальной сети, это `192.168.0.0` - `192.168.0.255`. с маской сети `255.255.255.0`. - -Дополнительные параметры для ifconfig:: -Любые специфичные для интерфейса опции к `ifconfig`, которые вы хотите добавить. В данном случае ничего. - -Используйте kbd:[Tab] для выбора btn:[OK] после окончания настройки и нажмите kbd:[Enter]. - -[source,shell] -.... - User Confirmation Requested - Would you like to bring the ed0 interface up right now? - - [ Yes ] No -.... - -Выбор btn:[yes] и нажатие kbd:[Enter] введет компьютер в сеть. Тем не менее, компьютеру все еще требуется перезагрузка. - -[[gateway]] -=== Настройка шлюза (Configure Gateway) - -[source,shell] -.... - User Confirmation Requested - Do you want this machine to function as a network gateway? - - [ Yes ] No -.... - -Если компьютер будет шлюзом для локальной сети, пересылая пакеты между другими компьютерами, выберите btn:[yes] и нажмите kbd:[Enter]. Если это обычный компьютер, выберите btn:[no] и нажмите kbd:[Enter] для продолжения. - -[[inetd-services]] -=== Настройка сервисов интернет (Configure Internet Services) - -[source,shell] -.... - User Confirmation Requested -Do you want to configure inetd and the network services that it provides? - - Yes [ No ] -.... - -Если выбрана btn:[no], различные сервисы, такие как telnetd не будут запущены. Это означает, что удаленные пользователи не смогут зайти по telnet на этот компьютер. Локальные пользователи все же смогут заходит на удаленные компьютеры по telnet. - -Эти сервисы могут быть включены после установки путем редактирования [.filename]#/etc/inetd.conf# с помощью вашего любимого текстового редактора. Обращайтесь к crossref:network-servers[network-inetd-overview,Обзор] за более подробной информацией. - -Выберите btn:[yes] если хотите настроить эти сервисы во время установки. Появится дополнительный запрос подтверждения: - -[source,shell] -.... - User Confirmation Requested -The Internet Super Server (inetd) allows a number of simple Internet -services to be enabled, including finger, ftp and telnetd. Enabling -these services may increase risk of security problems by increasing -the exposure of your system. - -With this in mind, do you wish to enable inetd? - - [ Yes ] No -.... - -Нажмите btn:[yes], чтобы продолжить. - -[source,shell] -.... - User Confirmation Requested -inetd(8) relies on its configuration file, /etc/inetd.conf, to determine -which of its Internet services will be available. The default FreeBSD -inetd.conf(5) leaves all services disabled by default, so they must be -specifically enabled in the configuration file before they will -function, even once inetd(8) is enabled. Note that services for -IPv6 must be separately enabled from IPv4 services. - -Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to -use the current settings. - - [ Yes ] No -.... - -Выбор btn:[yes] позволит добавить сервисы путем удаления `#` перед началом строки. - -[[inetd-edit]] -.Редактирование [.filename]#inetd.conf# -image::edit-inetd-conf.png[] - -После добавления нужных сервисов нажатие kbd:[Esc] отобразит меню, позволяющее выйти с сохранением изменений. - -[[ssh-login]] -=== Настройка входа по SSH - -[source,shell] -.... - User Confirmation Requested - Would you like to enable SSH login? - Yes [ No ] -.... - -Выбор btn:[yes] активирует запуск man:sshd[8] - демона для приложения OpenSSH, что в свою очередь позволит создавать безопасные удалённые соединения c вашей машиной. За более детальной информацией о OpenSSH обратитесь к crossref:security[openssh,OpenSSH]. - -[[ftpanon]] -=== Анонимный (Anonymous) FTP - -[source,shell] -.... - User Confirmation Requested - Do you want to have anonymous FTP access to this machine? - - Yes [ No ] -.... - -[[deny-anon]] -==== Запрещение анонимного FTP - -Выбор кнопки по умолчанию btn:[no] и нажатие kbd:[Enter] все же позволит пользователям, имеющим учетные записи с паролями, использовать FTP для доступа к компьютеру. - -[[ftpallow]] -==== Разрешение анонимного FTP - -Кто угодно сможет получить доступ к компьютеру, если вы разрешите анонимные соединения FTP. Предварительно должны быть рассмотрены возможные проблемы с безопасностью. Более подробная информация о безопасности находится в crossref:security[security, Безопасность]. - -Чтобы разрешить анонимный FTP, выберите btn:[yes], используя клавиши навигации, и нажмите kbd:[Enter]. От вас потребуется дополнительное подтверждение: - -[source,shell] -.... - User Confirmation Requested - Anonymous FTP permits un-authenticated users to connect to the system - FTP server, if FTP service is enabled. Anonymous users are - restricted to a specific subset of the file system, and the default - configuration provides a drop-box incoming directory to which uploads - are permitted. You must separately enable both inetd(8), and enable - ftpd(8) in inetd.conf(5) for FTP services to be available. If you - did not do so earlier, you will have the opportunity to enable inetd(8) - again later. - - If you want the server to be read-only you should leave the upload - directory option empty and add the -r command-line option to ftpd(8) - in inetd.conf(5) - - Do you wish to continue configuring anonymous FTP? - - [ Yes ] No -.... - -В этом сообщении сказано: если вы хотите разрешить анонимный FTP доступ, то вам также придется активировать (см. <<inetd-services>>) сам сервис FTP в [.filename]#/etc/inetd.conf#. Выберите btn:[yes], нажмите kbd:[Enter], далее отобразится следующий экран: - -[[anon-ftp2]] -.Настройка по анонимного FTP по умолчанию -image::ftp-anon1.png[] - -Используя kbd:[Tab] для выбора полей ввода, заполните соответствующую информацию: - -UID:: -Идентификатор, который вы намереваетесь присвоить анонимному пользователю FTP. Файлам, загруженным на FTP, будет присвоен этот идентификатор. - -Group:: -В эту группу будет входить анонимный пользователь FTP. - -Comment:: -Строка с описанием анонимного пользователя; она будет внесена в [.filename]#/etc/passwd#. - -FTP Root Directory:: -Часть иерархии файловой системы, в которой будут храниться файлы, доступные анонимному пользователю FTP. - -Upload Subdirectory:: -Подкаталог, доступный на запись анонимному пользователю FTP. - -Корневой каталог FTP по умолчанию будет размещен в [.filename]#/var#. Если в нем предположительно не хватает места для для нужд FTP, можно использовать каталог [.filename]#/usr#, выбрав корневой каталог FTP (FTP root directory) [.filename]#/usr/ftp#. - -Когда будут выбраны подходящие значения, нажмите kbd:[Enter], чтобы продолжить. - -[source,shell] -.... - User Confirmation Requested - Create a welcome message file for anonymous FTP users? - - [ Yes ] No -.... - -Если вы выберете btn:[yes] и нажмете kbd:[Enter], запустится редактор, позволяющий отредактировать сообщение FTP. - -[[anon-ftp4]] -.Редактирование FTP Welcome Message -image::ftp-anon2.png[] - -Этот текстовый редактор называется `ee`. Используйте инструкции, чтобы изменить сообщение, или измените сообщение позже, используя выбранный вами редактор. Обратите внимание, что имя/расположение файла показаны внизу окна редактора. - -Нажмите kbd:[Esc] и появится меню с пунктом по умолчанию [.guimenuitem]#a) leave editor# (выйти из редактора). Нажмите kbd:[Enter], чтобы выйти и продолжить. Нажмите kbd:[Enter] еще раз, чтобы сохранить изменения, если они были сделаны. - -[[nfsconf]] -=== Настройка сетевой файловой системы (Configure Network File System) - -Сетевая файловая система (Network File System, NFS) позволяет совместно использовать файлы в сети. Компьютер может быть настроен как сервер, клиент, или как то и другое. Обратитесь к crossref:network-servers[network-nfs,Network File System (NFS)] за более подробной информацией. - -[[nsf-server-options]] -==== Сервер NFS (NFS Server) - -[source,shell] -.... - User Confirmation Requested - Do you want to configure this machine as an NFS server? - - Yes [ No ] -.... - -Если вам не нужен NFS сервер, выберите btn:[no] и нажмите kbd:[Enter]. - -Если выбран пункт btn:[yes], появится сообщение, говорящее о том, что должен быть создан файл [.filename]#exports#. - -[source,shell] -.... - Message -Operating as an NFS server means that you must first configure an -/etc/exports file to indicate which hosts are allowed certain kinds of -access to your local filesystems. -Press [Enter] now to invoke an editor on /etc/exports - [ OK ] -.... - -Нажмите kbd:[Enter], чтобы продолжить. Запустится текстовый редактор, позволяющий создать и отредактировать файл [.filename]#exports#. - -[[nfs-server-edit]] -.Редактирование [.filename]#exports# -image::nfs-server-edit.png[] - -Используйте инструкции для добавления экспортируемых файловых систем сейчас, или позднее с помощью выбранного вами текстового редактора. Обратите внимание, что имя/расположение файла показаны внизу окна редактора. - -Нажмите kbd:[Esc] и появится меню с пунктом по умолчанию [.guimenuitem]#a) leave editor#. Нажмите kbd:[Enter], чтобы выйти и продолжить. - -[[nfs-client-options]] -==== Клиент NFS (NFS Client) - -NFS клиент позволяет организовать доступ к серверам NFS. - -[source,shell] -.... - User Confirmation Requested - Do you want to configure this machine as an NFS client? - - Yes [ No ] -.... - -С помощью клавиш навигации выберите btn:[yes] или btn:[no], как потребуется, и нажмите kbd:[Enter]. - -[[console]] -=== Настройки системной консоли (System Console Settings) - -Есть несколько параметров для настройки системной консоли. - -[source,shell] -.... - User Confirmation Requested - Would you like to customize your system console settings? - - [ Yes ] No -.... - -Для просмотра и настройки параметров выберите btn:[yes] и нажмите kbd:[Enter]. - -[[saver-options]] -.Параметры настройки системной консоли -image::console-saver1.png[] - -Часто используемая опция это хранитель экрана (screen saver). Используйте клавиши навигации для выбора [.guimenuitem]#Saver# и нажмите kbd:[Enter]. - -[[saver-select]] -.Параметры хранителя экрана -image::console-saver2.png[] - -Выберите подходящий хранитель экрана с помощью клавиш навигации и нажмите kbd:[Enter]. Опять появится меню настройки системной консоли. - -Время по умолчанию 300 секунд. Для изменения временного интервала выберите [.guimenuitem]#Saver# еще раз. В меню настроек хранителя экрана выберите [.guimenuitem]#Timeout# с помощью клавиш навигации и нажмите kbd:[Enter]. Появится меню: - -[[saver-timeout]] -.Временной интервал хранителя экрана -image::console-saver3.png[] - -Значение может быть изменено, затем выберите btn:[OK] и нажмите kbd:[Enter] для возврата в меню настройки системной консоли. - -[[saver-exit]] -.Выход из меню конфигурации консоли -image::console-saver4.png[] - -Выбор [.guimenuitem]#Exit# и нажатие kbd:[Enter] вернет вас к послеустановочной настройке. - -[[timezone]] -=== Установка часового пояса (Setting The Time Zone) - -Установка часового пояса на компьютере позволит ему автоматически вносить поправки к местному времени и правильно выполнять другие, связанные с часовым поясом функции. - -Пример приведен для компьютера, расположенного в восточном часовом поясе Соединенных Штатов. Ваш выбор будет зависеть от вашего географического положения. - -[source,shell] -.... - User Confirmation Requested - Would you like to set this machine's time zone now? - - [ Yes ] No -.... - -Выберите btn:[yes] и нажмите kbd:[Enter] для установки часового пояса. - -[source,shell] -.... - User Confirmation Requested - Is this machine's CMOS clock set to UTC? If it is set to local time - or you don't know, please choose NO here! - - Yes [ No ] -.... - -Выберите btn:[yes] или btn:[no] в зависимости от настроек часов компьютера и нажмите kbd:[Enter]. - -[[set-timezone-region]] -.Выбор региона -image::timezone1.png[] - -Соответствующий регион выбран с помощью клавиш навигации и нажат kbd:[Enter]. - -[[set-timezone-country]] -.Выбор страны -image::timezone2.png[] - -Выберите соответствующую страну с помощью клавиш навигации и нажмите kbd:[Enter]. - -[[set-timezone-locality]] -.Выбор часового пояса -image::timezone3.png[] - -Выбран соответствующий часовой пояс с помощью клавиш навигации и нажат kbd:[Enter]. - -[source,shell] -.... - Confirmation - Does the abbreviation 'EDT' look reasonable? - - [ Yes ] No -.... - -Правильно будет согласиться с назначением аббревиатуры временного пояса. Если она подходит, нажмите kbd:[Enter], чтобы продолжить послеустановочную настройку. - -[[mouse]] -=== Настройка мыши (Mouse Settings) - -Эти настройки позволят вырезать и вставлять текст в консоли и пользовательских программах с помощью трехкнопочной мыши. Если используется двухкнопочная мышь, обратитесь к странице справочника man:moused[8] после установки, чтобы узнать подробности об эмуляции трехкнопочной мыши. Этот пример приведен для настройки не-USB мыши (например мыши для порта PS/2 или COM): - -[source,shell] -.... - User Confirmation Requested - Does this system have a PS/2, serial, or bus mouse? - - [ Yes ] No -.... - -Выберите btn:[yes] для PS/2 мыши, последовательной мыши или мыши типа bus mouse. Выберите btn:[no] для USB мыши и нажмите kbd:[Enter]. - -[[mouse-protocol]] -.Выбор протокола мыши -image::mouse1.png[] - -Используйте клавиши навигации для выбора [.guimenuitem]#Type# и нажмите kbd:[Enter]. - -[[set-mouse-protocol]] -.Установка протокола мыши -image::mouse2.png[] - -В этом примере использована PS/2 мышь, поэтому подойдет протокол по умолчанию [.guimenuitem]#Auto#. Чтобы изменить протокол, используйте клавиши навигации для выбора другого пункта. Убедитесь, что выбран btn:[OK], и нажмите kbd:[Enter] для выхода из меню. - -[[config-mouse-port]] -.Настройка порта мыши -image::mouse3.png[] - -Используйте клавиши навигации для выбора [.guimenuitem]#Port# и нажмите kbd:[Enter]. - -[[set-mouse-port]] -.Установка порта мыши -image::mouse4.png[] - -К этой системе подключена мышь PS/2, поэтому подходит значение по умолчанию [.guimenuitem]#PS/2#. Чтобы изменить порт, используйте клавиши навигации и нажмите kbd:[Enter]. - -[[test-daemon]] -.Запуск даемона мыши -image::mouse5.png[] - -Наконец, используйте клавиши навигации для выбора [.guimenuitem]#Enable#, затем нажмите kbd:[Enter] для запуска и тестирования даемона мыши. - -[[test-mouse-daemon]] -.Проверка даемона мыши -image::mouse6.png[] - -Подвигайте курсор по экрану и убедитесь, что он движется правильно. Если это так, выберите btn:[yes] и нажмите kbd:[Enter]. Если нет, мышь не была правильно настроена - выберите btn:[no] и попробуйте использовать другие опции настройки. - -Выберите [.guimenuitem]#Exit# с помощью клавиш навигации и нажмите kbd:[Enter] для возврата к послеустановочной настройке. - -[[packages]] -=== Установка пакетов (Install Packages) - -Пакеты - это прекомпилированные бинарные файлы и это удобный способ установки программ. - -В качестве примера показана установка одного пакета. Если потребуется, можно установить дополнительные пакеты. После установки для добавления пакетов может быть использована команда `sysinstall`. - -[source,shell] -.... - User Confirmation Requested - The FreeBSD package collection is a collection of hundreds of - ready-to-run applications, from text editors to games to WEB servers - and more. Would you like to browse the collection now? - - [ Yes ] No -.... - -Выбор [.guimenuitem]#[ Yes ]# и нажатие kbd:[Enter] приведет к появлению экрана выбора пакетов: - -[[package-category]] -.Выбор категории пакетов -image::pkg-cat.png[] - -Только пакеты с текущего носителя доступны для установки в любое время. - -Все доступные пакеты будут показаны если выбрать категорию [.guimenuitem]#All#, можно также выбирать отдельные категории. Перейдите к выбранной категории с помощью клавиш навигации и нажмите kbd:[Enter]. - -Появится меню, содержащее доступные в данной категории пакеты. - -[[package-select]] -.Выбор пакетов -image::pkg-sel.png[] - -Выбрана оболочка bash. Выберите все необходимые пакеты, перемещаясь по меню и нажимая клавишу пробела на выбираемых пакетах. Краткое описание пакета будет появляться в нижней левой части экрана. - -Нажатие kbd:[Tab] переключает между последним выбранным пакетом, btn:[OK], и btn:[Cancel]. - -После того, как будет закончена отметка пакетов для установки, нажмите kbd:[Tab] один раз для переключения на btn:[OK] и нажмите kbd:[Enter] для переключения на меню выбора пакетов. - -Нажимая клавиши навигации влево или вправо, можно переключаться между btn:[OK] и btn:[Cancel]. Этот метод может быть применен также для выбора btn:[OK] и возврата к меню выбора пакетов нажатием kbd:[Enter]. - -[[package-install]] -.Установка пакетов -image::pkg-install.png[] - -Используйте kbd:[Tab] и клавиши навигации для выбора btn:[Install] и нажмите kbd:[Enter]. вам потребуется подтвердить установку пакетов: - -[[package-install-confirm]] -.Подтверждение установки пакетов -image::pkg-confirm.png[] - -Выбор btn:[OK] и нажатие kbd:[Enter] запустит установку пакетов. Во время установки будут выдаваться сообщения. Обратите внимание на возможные сообщения об ошибках. - -После установки пакетов настройка продолжится. Если вы не выбрали ни один из пакетов и хотите вернуться к завершению настройки, выберите btn:[Install] в любом случае. - -[[addusers]] -=== Добавление пользователей/групп (Add Users/Groups) - -В процессе установки нужно добавить хотя бы одного пользователя, чтобы использовать систему без входа под `root`. Корневой каталог обычно мал и запуск приложений под `root` быстро заполнит его. Ниже показано предупреждение: - -[source,shell] -.... - User Confirmation Requested - Would you like to add any initial user accounts to the system? Adding - at least one account for yourself at this stage is suggested since - working as the "root" user is dangerous (it is easy to do things which - adversely affect the entire system). - - [ Yes ] No -.... - -Выберите btn:[yes] и нажмите kbd:[Enter], чтобы продолжить добавление пользователя. - -[[add-user2]] -.Выбор User (пользователь) -image::adduser1.png[] - -Выберите [.guimenuitem]#User# с помощью клавиш навигации и нажмите kbd:[Enter]. - -[[add-user3]] -.Вод информации о пользователе -image::adduser2.png[] - -При выборе полей с помощью kbd:[Tab] в нижней части экрана будет появляться описание, помогающее ввести необходимую информацию: - -Логин (Login ID):: -Имя нового пользователя (обязательно). - -UID:: -Числовой ID (идентификатор) для этого пользователя (оставьте пустым для автоматического выбора). - -Группа (Group):: -Имя группы этого пользователя (оставьте пустым для автоматического выбора). - -Пароль (Password):: -Пароль этого пользователя (заполняйте это поле с осторожностью!). - -Полное имя:: -Полное имя пользователя (комментарий). - -Член групп (Member groups):: -Группы, к которым принадлежит пользователь (т.е. имеет права доступа). - -Домашний каталог (Home directory):: -Домашний каталог пользователя (оставьте пустым для выбора по умолчанию). - -Оболочка (Login shell):: -Оболочка пользователя, запускаемая при входе в систему (оставьте пустым для оболочки по умолчанию, например [.filename]#/bin/sh#). - -Оболочка была изменена с [.filename]#/bin/sh# на [.filename]#/usr/local/bin/bash# для использования bash, которая была перед этим установлена из пакета. Не пытайтесь использовать несуществующую оболочку, вы не сможете войти в систему. Наиболее часто используемая в мире BSD оболочка это C shell, которую можно обозначить как [.filename]#/bin/tcsh#. - -Пользователь был добавлен в группу `wheel`, чтобы иметь возможность стать суперпользователем с привилегиями `root`. - -Когда все будет введено, нажмите btn:[OK] и меню управления пользователями и группами (User and Group Management) появится снова: - -[[add-user4]] -.Выход из меню управления пользователями и группами -image::adduser3.png[] - -Сейчас также можно добавить группы, если известно, для чего они потребуются. Иначе в это меню можно войти, запустив `sysinstall` после окончания установки. - -После завершения добавления пользователей, выберите [.guimenuitem]#Exit# с помощью клавиш навигации и нажмите kbd:[Enter] для продолжения установки. - -[[rootpass]] -=== Установка пароля `root` - -[source,shell] -.... - Message - Now you must set the system manager's password. - This is the password you'll use to log in as "root". - - [ OK ] - - [ Press enter or space ] -.... - -Нажмите kbd:[Enter] для установки пароля `root`. - -Необходимо два раза правильно ввести пароль. Излишне упоминать, что должна быть возможность восстановления пароля, если вы его забудете. Обратите внимание, что ни набираемый пароль, ни звездочки на экран не выдаются. - -[source,shell] -.... -New password: -Retype new password : -.... - -Установка продолжится после успешного ввода пароля. - -[[exit-inst]] -=== Выход из установки (Exiting Install) - -Если нужно настроить <<network-services,дополнительные сетевые устройства>>, или произвести другие настройки, вы можете сделать это сейчас или после установки с помощью `sysinstall`. - -[source,shell] -.... - User Confirmation Requested - Visit the general configuration menu for a chance to set any last - options? - - Yes [ No ] -.... - -Выберите btn:[no] с помощью клавиш навигации и нажмите kbd:[Enter] для возврата к главному меню установки. - -[[final-main]] -.Выход из установки -image::mainexit.png[] - -Выберите btn:[X Exit Install] с помощью клавиш навигации и нажмите kbd:[Enter]. Будет задан вопрос о подтверждении выхода из установки: - -[source,shell] -.... - User Confirmation Requested - Are you sure you wish to exit? The system will reboot. - - [ Yes ] No -.... - -Выберите btn:[yes]. Если вы загружались с привода CDROM, следующее сообщение напомнит вам о необходимости извлечь диск: - -[source,shell] -.... - Message - Be sure to remove the media from the drive. - - [ OK ] - [ Press enter or space ] -.... - -CDROM заблокирован, пока компьютер не начнет перегружаться. CDROM будет разблокирован и диск нужно будет извлечь из привода (быстро). Выберите btn:[OK]. - -Система начнет перезагрузку, смотрите за сообщениями об ошибках, которые могут появиться. За подробностями по процессу загрузки обратитесь к <<freebsdboot>>. - -[[network-services]] -=== Настройка дополнительных сетевых сервисов - -Настройка сетевых сервисов может быть пугающей задачей для новых пользователей, если у них нет опыта в этой области. Работа в сети, включая интернет, критична для многих современных операционных систем, включая FreeBSD; очень важно иметь некоторые знания о дополнительных сетевых возможностях FreeBSD. Настраивая их во время установки, пользователь получает некоторую информацию о различных доступных сервисах. - -Сетевые сервисы - это программы, принимающие данные из любой точки сети. Чтобы убедиться, что эти программы не делают ничего "вредного", требуется особое внимание. К сожалению, программисты не совершенны и время от времени допускают ошибки в сетевых сервисах; эти ошибки позволяют атакующим взломать их и использовать в собственных целях. Важно, чтобы вы включали сетевые сервисы только в том случае, если знаете, какие сервисы нужны. В случае сомнений лучше не включать сервис, пока он не понадобится. Вы всегда можете включить его позже, запустив sysinstall еще раз, или используя возможности, предоставляемые файлом [.filename]#/etc/rc.conf#. - -Выбор опции menu:Networking[] отобразит меню, похожее на это: - -[[network-configuration]] -.Верхняя часть меню настройки сети (Network Configuration) -image::net-config-menu1.png[] - -Первая опция, [.guimenuitem]#Interfaces# (интерфейсы), была ранее описана в <<inst-network-dev>>, эту опцию можно проигнорировать. - -Выбор опции [.guimenuitem]#AMD# добавит поддержку BSD утилиты автоматического монтирования. Она обычно используется вместе с протоколом NFS (смотрите ниже) для автоматического монтирования удаленных файловых систем. Здесь не требуется специальной конфигурации. - -Следующая линия это опция флаги [.guimenuitem]#AMD# (flags). Когда эта опция выбрана, появится меню для ввода специфичных флагов AMD. Меню уже содержит набор различных опций: - -[source,shell] -.... --a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map -.... - -Опция `-a` указывает месторасположение монтирования систем по умолчанию, в этом примере [.filename]#/.amd_mnt#. Опция `-l` указывает [.filename]#log# файл по умолчанию; тем не менее, если для ведения логов используется `syslogd`, все логи отправляются даемону системных логов. Каталог [.filename]#/host# используется для монтирования экспортированных файловых систем с удаленного хоста, а [.filename]#/net# для монтирования экспортированных файловых систем с IP адреса. Файл [.filename]#/etc/amd.map# определяет опции по умолчанию для монтируемых AMD каталогов. - -Опция [.guimenuitem]#Anon FTP# позволяет получить анонимный доступ к FTP. Выберите ее, чтобы сделать этот компьютер анонимным FTP сервером. Помните о риске безопасности, создаваемом этой опцией. Будет отображено еще одно меню для разъяснения риска безопасности и для более тонкой настройки. - -Опция [.guimenuitem]#Gateway# сделает компьютер шлюзом, как было объяснено ранее. Этот пункт может быть использован для отмены опции [.guimenuitem]#Gateway#, если она была ошибочно установлена в процессе установки. - -Опцию [.guimenuitem]#Inetd# можно использовать для настройки или полного отключения даемона man:inetd[8], как было описано выше. - -Опция [.guimenuitem]#Mail# используется для настройки системного MTA по умолчанию (Mail Transfer Agent, агент передачи почты). Выбор этой опции приведет к появлению следующего меню: - -[[mta-selection]] -.Выбор MTA по умолчанию -image::mta-main.png[] - -Здесь предоставляется выбор MTA для установки по умолчанию. MTA это почтовый сервер, доставляющий почту пользователям системы или интернет. - -Выбор [.guimenuitem]#Sendmail# приведет к установке популярного сервера sendmail, MTA по умолчанию для FreeBSD. Опция [.guimenuitem]#Sendmail local# настроит sendmail в качестве MTA по умолчанию, но отключит возможность получения входящей почты из интернет. Другие MTA, представленные здесь, [.guimenuitem]#Postfix# и [.guimenuitem]#Exim#, действуют подобно [.guimenuitem]#Sendmail#. Оба они доставляют почту; тем не менее, некоторые пользователи предпочитают эти альтернативы sendmail. - -После выбора MTA или пропуска этого пункта появится меню настройки сети со следующей опцией, клиент [.guimenuitem]#NFS#. - -Клиент [.guimenuitem]#NFS# позволяет настроить систему для соединения с сервером через NFS. Сервер NFS дает другим машинам доступ к файловой системе через протокол NFS. Если это отдельно стоящий компьютер, опцию можно не выбирать. NFS может потребовать дополнительной настройки позже; обращайтесь к crossref:network-servers[network-nfs,Network File System (NFS)] за более подробной информацией о настройке сервера и клиента. - -Ниже находится опция [.guimenuitem]#NFS# сервер, позволяющая вам настроить систему для работы в качестве NFS сервера. Она добавляет требуемую информацию для запуска процедуры вызова удаленных сервисов RPC (remote procedure call services). RPC используется для организации соединения между хостами и программами. - -Следующая строка это [.guimenuitem]#Ntpdate#, которая отвечает за синхронизацию времени. Когда эта опция выбрана, появится приблизительно такое меню: - -[[Ntpdate-config]] -.Настройка Ntpdate -image::ntp-config.png[] - -Выберите из этого меню ближайший к вашему местонахождению сервер. Выбор ближайшего сервера сделает синхронизацию времени более точной, поскольку у более дальнего сервера может быть более длинная задержка соединения. - -Следующая опция это выбор PCNFSD. Эта опция устанавливает пакет package:net/pcnfsd[] из Коллекции Портов. Это полезная утилита, предоставляющая сервисы авторизации NFS для систем, в которых собственная отсутствует, таких как Microsoft MS-DOS(R). - -Теперь вы можете прокрутить меню немного вниз, чтобы увидеть другие опции: - -[[Network-configuration-cont]] -.Нижняя часть меню настройки сети -image::net-config-menu2.png[] - -Утилиты man:rpcbind[8], man:rpc.statd[8] и man:rpc.lockd[8] для удаленного вызова процедур (Remote Procedure Calls, RPC). Утилита `rpcbind` управляет соединением между NFS серверами и клиентами, она требуется серверу NFS для корректной работы. Даемон rpc.statd взаимодействует с даемонами rpc.statd на других хостах для обеспечения мониторинга статуса. Полученный статус обычно хранится в файле [.filename]#/var/db/statd.status#. Последняя опция это [.guimenuitem]#rpc.lockd#, которая, будучи выбранной, предоставляет сервисы блокировки файлов. Она обычно используется с rpc.statd для отслеживания хостов, запрашивающих блокировки и частоты этих запросов. Хотя две последние опции прекрасно подходят для отладки, они не требуются серверам и клиентам NFS для корректной работы. - -Ниже в списке опций находится [.guimenuitem]#Routed#, даемон маршрутизации. Утилита man:routed[8] управляет сетевыми таблицами маршрутизации, обнаруживает широковещательные маршрутизаторы, и предоставляет копию таблиц маршрутизации любому физически подключенному к сети хосту по запросу. Это обычно используется компьютерами, являющимися шлюзом для локальной сети. Когда эта опция выбрана, появится меню выбора местоположения утилиты по умолчанию. Значение по умолчанию уже выбрано, чтобы подтвердить его нажмите kbd:[Enter]. Появится следующее меню, запрашивающее флаги для routed. По умолчанию это флаг `-q`, он должен уже быть на экране. - -На следующей линии находится опция [.guimenuitem]#Rwhod#, выбор которой приведет к запуску даемона man:rwhod[8] при старте системы. Утилита `rwhod` периодически рассылает широковещательные системные сообщения по сети или собирает их в режиме "потребителя". Дополнительную информацию можно найти на страницах справочника man:ruptime[1] и man:rwho[1]. - -Следующая перед последней опцией в списке это даемон man:sshd[8]. Это сервер безопасной оболочки (secure shell) из OpenSSH и он настоятельно рекомендуется для использования вместо стандартных серверов telnet и FTP. Сервер sshd используется для создания безопасных соединений от одного хоста к другому с использованием шифрования. - -И наконец, опция [.guimenuitem]#TCP# Extensions. Она включает расширения TCP, определенные в RFC 1323 и RFC 1644. Хотя для многих хостов они могут повысить скорость соединения, с другими соединение может быть оборвано. Для серверов эти расширения не рекомендуются, но клиентским компьютерам могут дать некоторые преимущества. - -Теперь, после настройки сетевых сервисов, вы можете прокрутить меню к верхнему пункту, [.guimenuitem]#X Exit#, и перейти к следующему шагу, или же просто покинуть sysinstall, дважды нажав [.guimenuitem]#X Exit#, а после - btn:[X Exit Install]. - -[[freebsdboot]] -=== Загрузочный процесс FreeBSD (FreeBSD Bootup) - -[[freebsdboot-i386]] -==== Загрузка FreeBSD/i386 - -Если все пройдет нормально, вы увидите прокручивающиеся за экран сообщения, затем приглашение ко входу в систему. Вы может просмотреть сообщения, нажав kbd:[Scroll-Lock] и используя kbd:[PgUp] и kbd:[PgDn]. Нажатие kbd:[Scroll-Lock] еще раз вернет вас к приглашению. - -Все сообщение может не отобразиться (ограничение буфера), но может быть просмотрено путем ввода команды `dmesg` в командной строке. - -Войдите, используя имя пользователя/пароль, добавленные во время установки (`rpratt` в этом примере). Избегайте входа под `root`, если это не требуется. - -Типичные сообщения при загрузке (информация о версии удалена): - -[source,shell] -.... -Copyright (c) 1992-2002 The FreeBSD Project. -Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 - The Regents of the University of California. All rights reserved. - -Timecounter "i8254" frequency 1193182 Hz -CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU) - Origin = "AuthenticAMD" Id = 0x580 Stepping = 0 - Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX> - AMD Features=0x80000800<SYSCALL,3DNow!> -real memory = 268435456 (262144K bytes) -config> di sn0 -config> di lnc0 -config> di le0 -config> di ie0 -config> di fe0 -config> di cs0 -config> di bt0 -config> di aic0 -config> di aha0 -config> di adv0 -config> q -avail memory = 256311296 (250304K bytes) -Preloaded elf kernel "kernel" at 0xc0491000. -Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c. -md0: Malloc disk -Using $PIR table, 4 entries at 0xc00fde60 -npx0: <math processor> on motherboard -npx0: INT 16 interface -pcib0: <Host to PCI bridge> on motherboard -pci0: <PCI bus> on pcib0 -pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 -pci1: <PCI bus> on pcib1 -pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 -isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 -isa0: <ISA bus> on isab0 -atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 -ata0: at 0x1f0 irq 14 on atapci0 -ata1: at 0x170 irq 15 on atapci0 -uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0 -usb0: <VIA 83C572 USB controller> on uhci0 -usb0: USB revision 1.0 -uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 -uhub0: 2 ports with 2 removable, self powered -chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0 -ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at -device 10.0 on pci0 -ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit) -isa0: too many dependant configs (8) -isa0: unexpected small tag 14 -fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 -fdc0: FIFO enabled, 8 bytes threshold -fd0: <1440-KB 3.5" drive> on fdc0 drive 0 -atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0 -atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 -kbd0 at atkbd0 -psm0: <PS/2 Mouse> irq 12 on atkbdc0 -psm0: model Generic PS/2 mouse, device ID 0 -vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 -sc0: <System console> at flags 0x1 on isa0 -sc0: VGA <16 virtual consoles, flags=0x300> -sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 -sio0: type 16550A -sio1 at port 0x2f8-0x2ff irq 3 on isa0 -sio1: type 16550A -ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 -ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode -ppc0: FIFO with 16/16/15 bytes threshold -ppbus0: IEEE1284 device found /NIBBLE -Probing for PnP devices on ppbus0: -plip0: <PLIP network interface> on ppbus0 -lpt0: <Printer> on ppbus0 -lpt0: Interrupt-driven port -ppi0: <Parallel I/O> on ppbus0 -ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33 -ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33 -acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4 -Mounting root from ufs:/dev/ad0s1a -swapon: adding /dev/ad0s1b as swap device -Automatic boot in progress... -/dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS -/dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation) -/dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS -/dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation) -/dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS -/dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation) -/dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS -/dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation) -Doing initial network setup: hostname. -ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 - inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1 - ether 52:54:05:de:73:1b -lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 - inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 - inet6 ::1 prefixlen 128 - inet 127.0.0.1 netmask 0xff000000 -Additional routing options: IP gateway=YES TCP keepalive=YES -routing daemons:. -additional daemons: syslogd. -Doing additional network setup:. -Starting final network daemons: creating ssh RSA host key -Generating public/private rsa1 key pair. -Your identification has been saved in /etc/ssh/ssh_host_key. -Your public key has been saved in /etc/ssh/ssh_host_key.pub. -The key fingerprint is: -cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com - creating ssh DSA host key -Generating public/private dsa key pair. -Your identification has been saved in /etc/ssh/ssh_host_dsa_key. -Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. -The key fingerprint is: -f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com. -setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib -/usr/local/lib -a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout -starting standard daemons: inetd cron sshd usbd sendmail. -Initial rc.i386 initialization:. -rc.i386 configuring syscons: blank_time screensaver moused. -Additional ABI support: linux. -Local package initialization:. -Additional TCP options:. - -FreeBSD/i386 (k6-2.example.com) (ttyv0) - -login: rpratt -Password: -.... - -Генерирование ключей RSA и DSA может занять некоторое время на медленных компьютерах. Это может случиться только при первой загрузке свежеустановленной системы. Последующие загрузки будут быстрее. - -Если X сервер был настроен и был выбран десктоп по умолчанию, он может быть запущен из командной строки командой `startx`. - -[[shutdown]] -=== Завершение работы FreeBSD (FreeBSD Shutdown) - -Важно правильно завершать работу операционной системы. Нельзя просто выключать питание. Сначала нужно стать суперпользователем, введя в командной строке `su` и пароль `root`. Это сработает только если пользователь является членом группы `wheel`. Или зайдите под `root` и используйте команду `shutdown -h now`. - -[source,shell] -.... -The operating system has halted. -Please press any key to reboot. -.... - -Можно безопасно выключать питание после того, как будет выполнена команда shutdown и появится сообщение "Please press any key to reboot". Если вместо выключения питания будет нажата любая клавиша, система перезагрузится. - -Вы также можете использовать комбинацию клавиш kbd:[Ctrl+Alt+Del] для перезагрузки системы, хотя это не рекомендуется в обычной ситуации. - -[[install-trouble]] -== Решение проблем - -Следующий раздел описывает основные проблемы при установке, о которых обычно сообщают пользователи. Здесь также несколько вопросов и ответов от тех, кто хочет настроить двойную загрузку FreeBSD и MS-DOS(R) или Windows(R). - -=== Что делать, если что-то идет не так - -По причине различных ограничений архитектуры PC, невозможно протестировать устройства достоверно на 100%, тем не менее, есть несколько вещей, которые вы можете сделать, если тестирование завершится неудачно. - -Сверьтесь с http://www.FreeBSD.org/releases/[Информацией об оборудовании] для вашей версии FreeBSD, чтобы убедиться, что ваше оборудование поддерживается. - -Если оборудование поддерживается, но все же происходят зависания или вы встретились с другими проблемами, потребуется собрать crossref:kernelconfig[kernelconfig,собственное ядро]. Это позволит вам добавить поддержку аппаратных устройств, отсутствующих в ядре [.filename]#GENERIC#. Ядро на загрузочном диске настроено в предположении, что у большинства аппаратных устройств IRQ, адреса ввода-вывода и каналы DMA установлены производителем к значениям по умолчанию. Если оборудование было перенастроено, вам скорее всего потребуется отредактировать конфигурацию ядра и перекомпилировать его, чтобы сообщить FreeBSD, где что искать. - -Возможно также, что тестирование устройства, которого нет, приведет позже к ошибке тестирования существующего устройства. В этом случае тестирование конфликтующего драйвера (драйверов) должно быть запрещено. - -[NOTE] -==== -Некоторые проблемы установки можно обойти или уменьшить, обновив встроенное программное обеспечение различных компонент оборудования, особенно материнской платы. Встроенное программное обеспечение также называют BIOS и у большинства производителей компьютеров или материнских плат есть Web-сайты, где можно найти обновления и информацию об обновлениях. - -Большинство производителей настоятельно советуют не обновлять BIOS пока не возникнет серьезной необходимости, например появление критически важных обновлений. Процесс обновления _может_ пойти неверно, что приведет к неустранимому повреждению микросхемы BIOS. -==== - -=== Использование файловых систем MS-DOS(R) и Windows(R) - -В настоящее время, FreeBSD не поддерживает файловые системы, сжатые с помощью программы Double Space(TM). Поэтому файловая система должна быть разжата, чтобы FreeBSD смогла получить доступ к данным. Это может быть сделано с помощью приложения Compression Agent, находящегося в меню [.guimenuitem]#Пуск#> [.guimenuitem]#Программы# > [.guimenuitem]#Системные#. - -FreeBSD поддерживает файловые системы MS-DOS(R) (иногда называемые файловыми системами FAT). Команда man:mount_msdosfs[8] включает такие файловые системы в существующую иерархию, тем самым обеспечивая доступ к их содержимому. Как правило, утилита man:mount_msdosfs[8] непосредственно не вызывается; вместо этого она выполняется системой при наличии соответствующей записи в [.filename]#/etc/fstab# или же вызывается утилитой man:mount[8], запущенной с соответствующими параметрами. - -Ниже приведен пример записи в [.filename]#/etc/fstab# для файловой системы MS-DOS(R): - -[.programlisting] -.... -/dev/ad0sN /dos msdosfs rw 0 0 -.... - -[NOTE] -==== -Каталог [.filename]#/dos# должен быть создан заранее. Формат файла [.filename]#/etc/fstab# подробно описан в man:fstab[5]. -==== - -Также приведем пример монтирования файловой системы MS-DOS(R) посредством man:mount[8]: - -[source,shell] -.... -# mount -t msdosfs /dev/ad0s1 /mnt -.... - -В этом примере файловая система MS-DOS(R) расположена на первом разделе первого жесткого диска. Ваша конфигурация может быть другой, проверьте вывод команд `dmesg` и `mount`. Они должны предоставить достаточно информации для определения названий разделов. - -[NOTE] -==== -Способ нумерации дисковых слайсов (то есть, "разделов" в терминах MS-DOS(R)) может отличаться от способа, принятого в других операционных системах. В частности, расширенным разделам MS-DOS(R) присваиваются номера, следующие за первичными разделами MS-DOS(R). Утилита man:fdisk[8] поможет определить, какие слайсы принадлежат FreeBSD, а какие - другим операционным системам. -==== - -Разделы NTFS также можно смонтировать похожим способом, используя команду man:mount_ntfs[8]. - -=== Решение проблем: вопросы и ответы - -==== Моя система зависает на этапе определения оборудования во время загрузки, или система ведет себя странно во время установки, или же не определяется привод гибкого диска. - -На архитектурах i386, amd64 и ia64 при конфигурировании оборудования, обнаруженного во время загрузки, FreeBSD повсеместно использует систему ACPI. К сожалению, до сих пор находятся неполадки как в драйвере ACPI, так и в материнских платах, так и в их BIOS. Использование ACPI можно отключить установив переменную `hint.acpi.0.disabled` на третьем этапе загрузки: - -[source,shell] -.... - set hint.acpi.0.disabled="1" -.... - -Эта настройка сбрасывается каждый раз при перезагрузке системы, поэтому необходимо добавить строку `hint.acpi.0.disabled="1"` в файл [.filename]#/boot/loader.conf#. Информация о загрузчике приведена в crossref:boot[boot-synopsis,Описание]. - -==== Выполняется первая загрузка после установки FreeBSD, ядро загружается и определяет аппаратное обеспечение, но загрузка останавливается с сообщением типа: - -Это древняя проблема, проявляющаяся в случаях, когда загрузочный диск не является первым диском в системе. BIOS использует свою схему нумерации дисков по сравнению с FreeBSD, и сложно правильно решить, как соответствуют эти нумерации. - -В случае, если загрузочный диск не является первым диском в системе, то FreeBSD потребуется некоторая помощь. Есть два возможных случая, и в обоих вам придется сообщить FreeBSD где находится корневая файловая система. Это делается указанием вручную следующих данных: номера диска (согласно нумерации BIOS), типа диска и номера диска (согласно определениям FreeBSD). - -Первый случай: у вас имеется два IDE диска, каждый из них сконфигурирован как мастер на соответствующей шине IDE, и вы намереваетесь загрузить FreeBSD с второго диска. BIOS определяет эти диски как `disk 0` и `disk 1`, в то время как FreeBSD определяет их как [.filename]#ad0# и [.filename]#ad2#. - -FreeBSD находится на `disk 1` (BIOS-нумерация), его тип - `ad` и номер - 2 (по данным FreeBSD), следовательно, необходимо указать: - -[source,shell] -.... - 1:ad(2,a)kernel -.... - -Заметьте, если второй диск настроен как подчиненный (slave) на первой шине IDE, то указание вышеприведённого необязательно (а по существу, еще и неверно). - -Второй случай подразумевает загрузку с диска SCSI при существующих в системе дисках IDE. В этом случае, согласно определениям FreeBSD номер диска меньше, чем номер по представлениям BIOS. Если у вас есть два диска IDE и диск SCSI, то, согласно BIOS, номер SCSI диска - 2, а согласно FreeBSD, тип - `da` и номер - 0, следовательно, вам необходимо указать следующее: - -[source,shell] -.... - 2:da(0,a)kernel -.... - -чтобы сообщить FreeBSD, что вы намереваетесь загрузить систему с диска 2 по нумерации BIOS, который является первым диском в системе. Если бы у вас был один диск IDE, вам бы пришлось использовать `1:` (по нумерации BIOS). - -Определив верные параметры, внесите их в том виде, как вы их набирали, в файл [.filename]#/boot.config#. Если не указывается иначе, то FreeBSD будет использовать содержимое этого файла как значение по умолчанию в приглашении `boot:`. - -==== Я перехожу к загрузке с жесткого диска впервые после установки FreeBSD, но приглашение Boot Manager всякий раз выводит только F? в меню загрузчика, и на этом загрузка прерывается. - -При установке FreeBSD в редакторе разделов была указана неверная геометрия жесткого диска. Вернитесь в редактор разделов и укажите действительную геометрию вашего жесткого диска. Вам придется переустановить заново FreeBSD. - -Если вы затрудняетесь определить верную геометрию для вашей машины, то сделайте следующее: установите небольшой раздел MS-DOS(R) вначале диска, а FreeBSD разместите после него. Установочная программа обнаружит раздел MS-DOS(R) и попробует определить значение геометрии по этому разделу, что, как правило, завершается успехом. - -Следующий способ не рекомендуется, он оставлен здесь для справки: - -[.blockquote] -Если вы устанавливаете выделенный сервер FreeBSD или рабочую станцию, в которых вопросы совместного существования MS-DOS(R), Linux или иной операционной системы в будущем не возникнут, то у вас есть возможность использовать весь диск (опция [.guimenuitem]#A# в редакторе разделов), после выбора которой FreeBSD займет весь диск от самого первого до самого последнего сектора. При этом, все вопросы геометрии диска станут неактуальными. - -==== Система определяет мою сетевую карту man:ed[4], но я постоянно получаю сообщения device timeout. - -Возможно ваша сетевая карта находится не на том IRQ, которое указано в файле [.filename]#/boot/device.hints#. Драйвер man:ed[4] по умолчанию не использует "программную" конфигурацию (значения, вводимые утилитой EZSETUP в MS-DOS(R)), но ситуация изменится, если вы укажете `-1` в значении хинт-переменной для этого интерфейса. - -Либо осуществите ручное конфигурирование устройства переключением джамперов на карте (также может потребоваться изменение конфигурации ядра), либо же смените значение IRQ на `-1`, установив переменную `hint.ed.0.irq="-1"`. Это укажет ядру использовать программное конфигурирование. - -Также вероятно, что ваша карта находится на IRQ номер 9, которое используется совместно с IRQ номер 2, и которое часто является причиной проблем (особенно, если ваш VGA адаптер занимает IRQ номер 2!). Постарайтесь избежать использования IRQ номер 2 или 9 вообще. - -==== Когда sysinstall запущен в терминале X11, то желтый шрифт на светло сером фоне практически не различим. Есть ли способ обеспечить лучший контраст colorcontrast для этого приложения? - -Если вы уже установили X11, а цвета, выбираемые по умолчанию утилитой sysinstall, делают текст неразборчивым в man:xterm[1] или man:rxvt[1], то добавьте следующую строку `XTerm*color7: #c0c0c0` в ваш [.filename]##~/.Xdefaults## и вы получите более тёмный фоновый серый цвет. - -[[install-advanced]] -== Расширенное руководство по установке - -Этот раздел описывает особые случаи установки FreeBSD. - -[[headless-install]] -=== Установка FreeBSD на систему без монитора или клавиатуры - -Этот тип установки называется "установка без монитора", потому что на компьютере, на который вы пробуете установить FreeBSD или не подсоединен монитор, или даже нет VGA выхода. Вы спросите, как это возможно? Используя последовательную консоль. Последовательная консоль в своей основе имеет другой компьютер, который служит дисплеем и клавиатурой для системы. Чтобы сделать это, создайте инсталляционный USB-накопитель, как описано в <<install-boot-media>>, или скачайте надлежащий установочный образ ISO (описано в <<install-cdrom>>). - -Чтобы модифицировать настройки источника установки для загрузки с последовательной консоли, следуйте этой инструкции: - -[.procedure] -==== -. Загрузка с USB-накопителя с выводом на последовательную консоль -+ -Если вы произведете загрузку с только что созданного USB-накопителя, FreeBSD загрузится в нормальный режим установки. Мы хотим, чтобы FreeBSD загрузилась на последовательную консоль для нашей установки. Чтобы сделать это, смонтируйте USB-накопитель на вашу систему FreeBSD используя команду man:mount[8]. -+ -[source,shell] -.... -# mount /dev/da0a /mnt -.... -+ -[NOTE] -====== -Измените названия файла устройства и точки монтирования в соответствии со значениями для вашей конфигурации. -====== -+ -Теперь необходимо настроить USB-накопитель для загрузки на последовательную консоль. В файл [.filename]#loader.conf#, находящийся на файловой системе USB-накопителя, добавьте запись, устанавливающую в качестве системной консоли последовательную консоль. -+ -[source,shell] -.... -# echo 'console="comconsole"' >> /mnt/boot/loader.conf -.... -+ -Далее, когда ваш USB-накопитель правильно настроен, размонтируйте его с помощью команды man:umount[8]: -+ -[source,shell] -.... -# umount /mnt -.... -+ -Теперь извлеките USB-накопитель и перейдите к третьему пункту этой инструкции. -. Загрузка с CD с выводом на последовательную консоль -+ -Если вы произведете загрузку с только что записанного установочного CD диска (подробности создания которого описаны в <<install-cdrom>>), FreeBSD загрузится в нормальный режим установки. Однако, вам необходимо, чтобы FreeBSD загрузилась на последовательную консоль. Для этого придется исправить ISO образ заранее, до его записи на диск CD-R. -+ -В приведённом далее примере подразумевается, что подготовку образа вы выполняете на вашем втором компьютере, работающем под управлением FreeBSD. Также подразумевается, что на нём есть файл загрузочного ISO образа, например [.filename]#FreeBSD-{rel120-current}-RELEASE-i386-disc1.iso#. Извлеките из образа все файлы утилитой man:tar[1]: -+ -[source,shell,subs="attributes"] -.... -# mkdir /path/to/headless-iso -# tar -C /path/to/headless-iso -pxvf FreeBSD-{rel120-current}-RELEASE-i386-disc1.iso -.... -+ -Теперь необходимо внести некоторые изменения в набор файлов и каталогов, полученных из образа. Добавьте в файл [.filename]#loader.conf# запись, устанавливающую в качестве системной консоли последовательную консоль. -+ -[source,shell] -.... -# echo 'console="comconsole"' >> /path/to/headless-iso/boot/loader.conf -.... -+ -Далее необходимо создать новый образ ISO из извлеченного и исправленного старого образа. Для этого воспользуйтесь утилитой man:mkisofs[8] (порт package:sysutils/cdrtools[]): -+ -[source,shell,subs="attributes"] -.... -# mkisofs -v -b boot/cdboot -no-emul-boot -r -J -V "Headless_install" \ - -o Headless-FreeBSD-{rel120-current}-RELEASE-i386-disc1.iso /path/to/headless-iso -.... -+ -А теперь, имея в распоряжении модифицированный новый образ ISO, самое время записать его на диск CD-R при помощи вашей любимой программы для записи дисков. -. Подсоединение нуль-модемного кабеля -+ -Теперь нужно соединить два компьютера crossref:serialcomms[term-cables-null,нуль-модемным кабелем]. Просто подсоедините этот кабель к последовательным портам двух компьютеров. _Обычный последовательный кабель не будет работать_, вам потребуется нуль-модемный кабель, поскольку в нем некоторые линии соединены накрест. -. Загрузка для установки -+ -Настало время начать установку. Вставьте USB-накопитель в компьютер, на который вы будете производить установку без монитора и включите его. Если же вы используете загрузочный CD диск, вставьте его в привод после того, как включите машину. -. Подключение к компьютеру без монитора -+ -Теперь вы можете подключиться к этому компьютеру с помощью man:cu[1]: -+ -[source,shell] -.... -# cu -l /dev/cuau0 -.... -==== - -Это все! Теперь вы можете управлять компьютером без монитора через сессию `cu`. Машина загрузит ядро, а затем появится выбор типа терминала. Выберите цветную консоль FreeBSD и проводите установку! - -[[install-diff-media]] -== Подготовка собственного источника установки - -[NOTE] -==== -Чтобы не повторяться, "диск FreeBSD" в данном случае означает FreeBSD CDROM или DVD, который вы купили или подготовили самостоятельно. -==== - -Может быть несколько ситуаций, в которых вам потребуется подготовить собственный диск и/или источник для установки FreeBSD. Это может быть физический носитель, такой как лента, или источник, с которого sysinstall сможет взять файлы, такой как локальный сервер FTP, или раздел MS-DOS(R). - -Например: - -* У вас есть много компьютеров, подсоединенных к локальной сети, и один диск с FreeBSD. Вы хотите создать локальный сервер FTP, используя содержимое диска FreeBSD, а затем использовать с ваших компьютеров этот локальный сервер FTP вместо подсоединения к интернет. -* У вас есть диск с FreeBSD, и FreeBSD не распознает ваш CD/DVD привод, а MS-DOS(R) / Windows(R) распознает. Вы хотите скопировать файлы установки FreeBSD на раздел MS-DOS(R) этого же компьютера и установить FreeBSD, используя эти файлы. -* На компьютере, на который вы хотите провести установку, нет ни привода CD/DVD, ни сетевой карты, но вы можете подсоединиться в "Laplink-стиле" последовательным или параллельным кабелем к другому компьютеру, на котором они есть. -* Вы хотите создать ленту, которую можно использовать для установки FreeBSD. - -[[install-cdrom]] -=== Создание установочного CDROM - -В составе каждого релиза проект FreeBSD предоставляет доступ как минимум к двум образам CDROM ("ISO images") для каждой поддерживаемой архитектуры. Эти образы могут быть записаны ("прожжены") на CD если у вас есть CD-рекордер, а затем использованы для установки FreeBSD. Если у вас есть CD-рекордер и дешевый канал интернет, это простейший путь установить FreeBSD. - -[.procedure] -==== - -. Скачайте соответствующие ISO образы -+ -ISO образы для каждого релиза могут быть загружены с [.filename]#ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-архитектура/версия# или с ближайшего зеркала. Замените _архитектура_ и _версия_ в соответствии архитектурой и номером релиза соответственно. -+ -Этот каталог обычно содержит следующие образы: -+ -.Названия ISO-образов дисков FreeBSD и их значения -[cols="1,1", frame="none", options="header"] -|=== -| Имя файла -| Содержимое - -|[.filename]#FreeBSD-version-RELEASE-arch-bootonly.iso# -|Этот образ CD предоставляет возможность начать процесс установки, загрузившись с диска в приводе CD-ROM. Однако, в нём отсутствуют архивы, необходимые для установки FreeBSD с этого же диска. Подразумевается, что необходимые файлы будут скачаны из доступных в сети источников (например, c сервера FTP). - -|[.filename]#FreeBSD-version-RELEASE-arch-dvd1.iso.gz# -|Этот образ DVD содержит всё необходимое для установки базовой системы FreeBSD, а также - документацию и набор прекомпилированных пакетов. Также образ поддерживает возможность загрузки в режим "livefs". - -|[.filename]#FreeBSD-version-RELEASE-arch-memstick.img# -|Этот образ предназначен для создания загрузочных USB-накопителей. Такой накопитель может использоваться для установки операционной системы на машины, поддерживающие загрузку с USB дисков. USB-накопитель также может использоваться для аварийного восстановления системы (содержит "livefs"). В образе также имеются пакеты с документацией. - -|[.filename]#FreeBSD-version-RELEASE-arch-disc1.iso# -|Этот образ CD содержит базовую систему FreeBSD и набор пакетов с документацией. - -|[.filename]#FreeBSD-version-RELEASE-arch-disc2.iso# -|Этот образ CD содержит пакеты сторонних разработчиков, которые смогли поместиться на диск. Для FreeBSD 9._X_ подобные образы не создавались. - -|[.filename]#FreeBSD-version-RELEASE-arch-disc3.iso# -|Еще один образ CD, заполненный пакетами сторонних разработчиков. Этот образ не создавался для FreeBSD 9._X_. - -|[.filename]#FreeBSD-version-RELEASE-arch-livefs.iso# -|Данный образ CD поддерживает загрузку в режим аварийного восстановления системы (содержит "livefs") и не предназначен для выполнения установки операционной системы с самого диска. -|=== -+ -Вы _должны_ загрузить либо ISO-образ `bootonly`, либо образ `disc1`. Не загружайте их оба, так как образ `disc1` содержит всё, что есть на ISO-образе bootonly. -+ -Используйте ISO-образ `bootonly`, если доступ в Internet для вас обходится недорого. Он позволит вам установить FreeBSD, и вы сможете установить впоследствии программы сторонних производителей используя систему портов/пакетов (смотрите crossref:ports[ports, Установка приложений. порты и пакеты]) если необходимо. -+ -Используйте образ `dvd1`, если вы хотите установить релиз FreeBSD и получить достаточный набор программ сторонних производителей, расположенных на этом диске. -+ -Дополнительные образы дисков полезны, но не необходимы, особенно если у вас есть высокоскоростной доступ к интернет. -. Запись CD -+ -Затем вам нужно записать образы CD на диски. Если вы делаете это из другой системы FreeBSD, обратитесь к crossref:disks[creating-cds,Запись и использование оптических носителей (CD)] за более подробной информацией (в частности, crossref:disks[burncd,burncd] и crossref:disks[cdrecord,cdrecord]). -+ -Если вы делаете это в другой системе, потребуется использовать те утилиты для управления CD-рекордером, которые есть в этой системе. Образы дисков предоставляются в стандартном формате ISO, который поддерживается многими программами. -==== - -[NOTE] -==== -Если вы интересуетесь созданием собственных вариантов релизов FreeBSD, пожалуйста, прочтите статью о extref:{releng}[Процессе подготовки релизов]. -==== - -[[install-ftp]] -=== Создание локального сервера FTP с FreeBSD - -Диск FreeBSD сформирован так же, как и сервер FTP. Это сильно упрощает создание локального сервера FTP, который может быть использован другими компьютерами вашей сети для установки FreeBSD. - -[.procedure] -==== - -. Убедитесь, что на компьютере FreeBSD, на котором будет установлен сервер FTP, CDROM находится в приводе и смонтируйте [.filename]#/cdrom#. -+ -[source,shell] -.... -# mount /cdrom -.... -+ -. Создайте учетную запись для anonymous FTP в [.filename]#/etc/passwd#. Сделайте это, отредактировав [.filename]#/etc/passwd# с помощью man:vipw[8] и добавив эту строку: -+ -[.programlisting] -.... -ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent -.... -+ -. Убедитесь что сервис FTP включен в [.filename]#/etc/inetd.conf#. -==== - -Всякий, кто может подсоединиться по сети к вашему компьютеру, может выбрать тип носителя FTP и набрать `ftp://_ваш компьютер_` после выбора "Other" в меню серверов FTP во время установки. - -[NOTE] -==== -Если загрузочный носитель (обычно это дискеты) для ваших FTP-клиентов в точности не соответствует версии, находящейся на локальном сервере FTP, то sysinstall не позволит вам завершить установку. Если версии похожи и вы хотите это явно указать, то перейдите в меню Options и замените название дистрибутива на [.guimenuitem]#any#. -==== - -[WARNING] -==== - -Этот подход хорош для компьютера в вашей локальной сети, защищенного с помощью файрволла. Предоставление сервиса FTP другим компьютерам через интернет (а не через локальную сеть) привлекает к вашему компьютеру внимание кракеров и других лиц, чье внимание нежелательно. Мы настоятельно рекомендуем придерживаться правильной политики безопасности, если вы делаете это. -==== - -=== Создание дискет для установки - -Если вам требуется выполнить установку с дискет (чего мы _не_ рекомендуем делать) или по причине не поддерживаемого оборудования, или просто потому, что вы не любите простых путей, потребуется сначала подготовить несколько дискет для установки. - -Как минимум, вам потребуется столько 1.44 MB дискет, сколько нужно, чтобы вместить все файлы из каталога [.filename]#base# (base distribution). Если вы подготавливаете эти дискеты из MS-DOS(R), они _должны_ быть отформатированы с помощью команды MS-DOS(R) `FORMAT`. Если вы используете Windows(R), используйте Explorer для форматирования дисков (кликните правой кнопкой мыши на диске [.filename]#A:# и выберите "Format"). - -_Не_ доверяйте заводскому форматированию дискет. Отформатируйте их еще раз самостоятельно, просто для уверенности. Множество проблем, о которых сообщали наши пользователи, были результатом использования неправильно отформатированных дисков, поэтому мы сейчас обращаем на это внимание. - -Если вы создаете образы на другом компьютере FreeBSD, форматирование все еще не лишне, хотя вам не потребуется создавать файловую систему MS-DOS(R) на каждой дискете. Вы можете использовать `bsdlabel` и `newfs` для создания на них файловых систем UFS, в следующей последовательности (для 3.5" 1.44 MB дискет): - -[source,shell] -.... -# fdformat -f 1440 fd0.1440 -# bsdlabel -w fd0.1440 floppy3 -# newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0 -.... - -Затем вы можете смонтировать их и писать на них как на любую другую файловую систему. - -После форматирования дискет вам потребуется скопировать на них файлы. Файлы дистрибутива разделены на части, размер которых позволяет легко разместить пять частей на обычной 1.44 MB дискете. Заполните все дискеты файлами, помещая столько файлов на одну дискету, сколько уместится, пока у вас не будет всех необходимых компонент дистрибутива. Каждый компонент должен располагаться в подкаталоге на дискете, например [.filename]#a:\base\base.aa#, [.filename]#a:\base\base.ab#, и так далее. - -[IMPORTANT] -==== -Файл [.filename]#base.inf# также необходимо поместить на первую дискету набора [.filename]#base#. Прочитав этот файл, установочная программа определяет, сколько частей необходимо скопировать и соединить для сборки дистрибутива. -==== - -Как только в процессе установки появится экран Media, выберите [.guimenuitem]#Floppy# и установка продолжится. - -[[install-msdos]] -=== Установка с раздела MS-DOS(R) - -Чтобы подготовиться к установке с раздела MS-DOS(R), скопируйте файлы с дистрибутива в каталог [.filename]#freebsd# корневого каталога раздела. Например, [.filename]#c:\freebsd#. Структура каталога CDROM или сервера FTP должна быть в точности воспроизведена в этом каталоге, мы предлагаем использовать команду MS-DOS(R) `xcopy` если вы копируете дистрибутив с CD. Например, чтобы подготовить минимальную установку FreeBSD: - -[source,shell] -.... -C:\> md c:\freebsd -C:\> xcopy e:\bin c:\freebsd\bin\ /s -C:\> xcopy e:\manpages c:\freebsd\manpages\ /s -.... - -Предполагается, что на [.filename]#C:# есть свободное место, а на [.filename]#E:# смонтирован CDROM. - -Если у вас нет CDROM, можно загрузить дистрибутив с link:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/{rel120-current}-RELEASE/[ftp.FreeBSD.org]. Каждый компонент находится в своем собственном каталоге, например компонент _base_ можно найти в каталоге link:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/{rel120-current}-RELEASE/base/[{rel120-current}/base/]. - -Все компоненты, которые вы будете устанавливать с раздела MS-DOS(R) (и для которых у вас есть место), нужно расположить в [.filename]#c:\freebsd# - для минимальной установки нужна только компонента `BIN`. - -=== Создание ленты для установки - -Установка с ленты это возможно самый простой метод, уступающий только установке с FTP или CDROM. Программа установки может найти на ленте файлы, которые записаны на нее с помощью tar. После получения всех файлов дистрибутива, которые вам нужны, запишите их на ленту с помощью tar: - -[source,shell] -.... -# cd /freebsd/distdir -# tar cvf /dev/rwt0 dist1 ... dist2 -.... - -Когда вы приступите к установке, нужно убедиться в наличии достаточного места во временном каталоге (который будет предложено выбрать), чтобы поместилось _все_ содержимое записанной ленты. Поскольку лента - устройство не-произвольного доступа, этот метод установки требует некоторого места во временном хранилище. - -[NOTE] -==== -При начале установки лента должна быть в приводе _до_ загрузки с дискеты. В ином случае она может быть не найдена при тестировании устройств. -==== - -=== Перед установкой по сети - -Есть три возможных типа установки по сети. Ethernet (стандартный Ethernet контроллер), последовательный порт (PPP), или параллельный порт (PLIP (laplink кабель)). - -Для самой быстрой установки по сети хорошим выбором будет Ethernet адаптер! FreeBSD поддерживает большинство PC Ethernet карт; список поддерживаемых карт (и требуемых для них установок) предоставляется в информации об оборудовании для каждого релиза FreeBSD. Если вы используете одну из поддерживаемых PCMCIA Ethernet карт, убедитесь также, что она подключена _перед_ тем, как ноутбук будет включен! К сожалению, FreeBSD в настоящее время не поддерживает горячее подключение PCMCIA карт во время установки. - -Вам также потребуется знать IP адрес в сети, сетевую маску для класса подсети, и имя компьютера. Если вы делаете установку через соединение PPP и у вас нет статического IP, не бойтесь, IP адрес будет динамически выделен вам провайдером. Системный администратор может подсказать вам, какие значения использовать для данной установки по сети. Если вы будете обращаться к другим хостам по имени, а не по IP адресу, понадобится также сервер DNS и, возможно, адрес шлюза (если вы используете PPP, это IP адрес вашего провайдера), чтобы связаться с ним. Если вы хотите производить установку с FTP через HTTP прокси, потребуется также адрес прокси. Если вы не знаете ответов на все или большинство этих вопросов, свяжитесь с системным администратором или ISP _перед_ тем, как начать этот тип установки. - -Если вы используете модем, PPP это конечно почти единственный выбор. Убедитесь что у вас есть информация о провайдере, так как она понадобится на довольно ранней стадии процесса установки. - -Если вы используете PAP или CHAP для соединения с провайдером (другими словами, вы можете соединяться с провайдером из Windows(R) без использования скрипта), все что вам понадобится это ввести `dial` в приглашении ppp. Иначе вам нужно знать, как дозвониться до провайдера с помощью "AT команд", специфичных для вашего модема, так как программа дозвона PPP предоставляет только очень простой эмулятор терминала. Обратитесь к crossref:ppp-and-slip[userppp,руководству] user-ppp и extref:{faq}[FAQ, ppp] для получения более подробных сведений. Если у вас проблемы, логи могут быть выведены на экран с помощью команды `set log local ...`. - -Если доступно постоянное соединение с другой машиной FreeBSD, вы можете также подумать об установке через параллельный порт "laplink" кабелем. Скорость соединения через параллельный порт значительно выше, чем обычно возможно через последовательную линию (до 50 кбайт/с), это приведет к ускорению установки. - -==== Перед установкой через NFS - -Установка через NFS очень проста. Просто скопируйте компоненты FreeBSD, которые вам нужны, на NFS сервер, а затем укажите на него при выборе источника установки NFS. - -Если этот сервер поддерживает только "привилегированные порты" (это как правило так для рабочих станций Sun), потребуется установить параметр `NFS Secure` в меню menu:Options[] перед тем, как начать установку. - -Если у вас Ethernet карта плохого качества с низкой скоростью передачи данных, вы возможно захотите переключить флаг `NFS Slow` в Options. - -Чтобы установка по NFS работала, сервер должен поддерживать монтирование подкаталогов, например, если установочный каталог дистрибутива FreeBSD {rel120-current} находится на: [.filename]#ziggy:/usr/archive/stuff/FreeBSD#, `ziggy` должен позволять непосредственное монтирование [.filename]#/usr/archive/stuff/FreeBSD#, а не только [.filename]#/usr# или [.filename]#/usr/archive/stuff#. - -В файле FreeBSD [.filename]#/etc/exports# это управляется параметром `-alldirs`. Другие NFS серверы могут иметь другие соглашения. Если вы получаете сообщения сервера `permission denied`, это может означать, что соответствующая опция не включена. diff --git a/documentation/content/ru/books/handbook/introduction.adoc b/documentation/content/ru/books/handbook/introduction.adoc new file mode 100644 index 0000000000..c4c51d4e11 --- /dev/null +++ b/documentation/content/ru/books/handbook/introduction.adoc @@ -0,0 +1,12 @@ +[.abstract-title] +Аннотация + +Добро пожаловать в FreeBSD! Это руководство охватывает установку и повседневное использование FreeBSD {rel142-current}-RELEASE и {rel134-current}-RELEASE. +Эта книга является результатом совместной работы многих людей. +Некоторые разделы могут быть устаревшими. +Те, кто хочет помочь обновить и расширить этот документ, могут отправить электронное письмо на {freebsd-doc}. + +Последняя версия этой книги доступна на https://www.FreeBSD.org/[веб-сайте FreeBSD]. +Предыдущие версии можно получить по адресу https://docs.FreeBSD.org/doc/[https://docs.FreeBSD.org/doc/]. +Книгу можно скачать в различных форматах и с различными опциями сжатия с https://download.freebsd.org/doc/[сервера загрузки FreeBSD] или с одного из многочисленных link:./mirrors#mirrors[зеркальных сайтов]. +Поиск можно выполнить по этому руководству и другим документам на link:https://www.FreeBSD.org/search/[странице поиска]. diff --git a/documentation/content/ru/books/handbook/introduction/_index.adoc b/documentation/content/ru/books/handbook/introduction/_index.adoc index 3345976593..ce96bf491f 100644 --- a/documentation/content/ru/books/handbook/introduction/_index.adoc +++ b/documentation/content/ru/books/handbook/introduction/_index.adoc @@ -2,10 +2,11 @@ title: Глава 1. Введение part: Часть I. В начале prev: books/handbook/parti -next: books/handbook/install +next: books/handbook/bsdinstall showBookMenu: true weight: 3 -path: "/books/handbook/" +params: + path: "/books/handbook/introduction/" --- [[introduction]] diff --git a/documentation/content/ru/books/handbook/kernelconfig/_index.adoc b/documentation/content/ru/books/handbook/kernelconfig/_index.adoc index 68ce2c76e7..94f7ec7cd3 100644 --- a/documentation/content/ru/books/handbook/kernelconfig/_index.adoc +++ b/documentation/content/ru/books/handbook/kernelconfig/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/multimedia next: books/handbook/printing showBookMenu: true weight: 12 -path: "/books/handbook/" +params: + path: "/books/handbook/kernelconfig/" --- [[kernelconfig]] diff --git a/documentation/content/ru/books/handbook/l10n/_index.adoc b/documentation/content/ru/books/handbook/l10n/_index.adoc index 471fca6689..eb254f739c 100644 --- a/documentation/content/ru/books/handbook/l10n/_index.adoc +++ b/documentation/content/ru/books/handbook/l10n/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/filesystems next: books/handbook/cutting-edge showBookMenu: true weight: 24 -path: "/books/handbook/" +params: + path: "/books/handbook/l10n/" --- [[l10n]] diff --git a/documentation/content/ru/books/handbook/linuxemu/_index.adoc b/documentation/content/ru/books/handbook/linuxemu/_index.adoc index c872b425a8..21d16c01ea 100644 --- a/documentation/content/ru/books/handbook/linuxemu/_index.adoc +++ b/documentation/content/ru/books/handbook/linuxemu/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/printing next: books/handbook/partiii showBookMenu: true weight: 14 -path: "/books/handbook/" +params: + path: "/books/handbook/linuxemu/" --- [[linuxemu]] diff --git a/documentation/content/ru/books/handbook/mac/_index.adoc b/documentation/content/ru/books/handbook/mac/_index.adoc index 3d51a7aea0..e7626c311e 100644 --- a/documentation/content/ru/books/handbook/mac/_index.adoc +++ b/documentation/content/ru/books/handbook/mac/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/security next: books/handbook/audit showBookMenu: true weight: 19 -path: "/books/handbook/" +params: + path: "/books/handbook/mac/" --- [[mac]] diff --git a/documentation/content/ru/books/handbook/mail/_index.adoc b/documentation/content/ru/books/handbook/mail/_index.adoc index 6be113ff21..df79712f7a 100644 --- a/documentation/content/ru/books/handbook/mail/_index.adoc +++ b/documentation/content/ru/books/handbook/mail/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/ppp-and-slip next: books/handbook/network-servers showBookMenu: true weight: 29 -path: "/books/handbook/" +params: + path: "/books/handbook/mail/" --- [[mail]] diff --git a/documentation/content/ru/books/handbook/mirrors/_index.adoc b/documentation/content/ru/books/handbook/mirrors/_index.adoc index 19550754da..4aa0da75e3 100644 --- a/documentation/content/ru/books/handbook/mirrors/_index.adoc +++ b/documentation/content/ru/books/handbook/mirrors/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/partv next: books/handbook/bibliography showBookMenu: true weight: 34 -path: "/books/handbook/" +params: + path: "/books/handbook/mirrors/" --- [appendix] diff --git a/documentation/content/ru/books/handbook/multimedia/_index.adoc b/documentation/content/ru/books/handbook/multimedia/_index.adoc index 2cbacd9059..78c1bc2932 100644 --- a/documentation/content/ru/books/handbook/multimedia/_index.adoc +++ b/documentation/content/ru/books/handbook/multimedia/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/desktop next: books/handbook/kernelconfig showBookMenu: true weight: 11 -path: "/books/handbook/" +params: + path: "/books/handbook/multimedia/" --- [[multimedia]] diff --git a/documentation/content/ru/books/handbook/network-servers/_index.adoc b/documentation/content/ru/books/handbook/network-servers/_index.adoc index dd28fe42f6..1ff6cd167e 100644 --- a/documentation/content/ru/books/handbook/network-servers/_index.adoc +++ b/documentation/content/ru/books/handbook/network-servers/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/mail next: books/handbook/firewalls showBookMenu: true weight: 30 -path: "/books/handbook/" +params: + path: "/books/handbook/network-servers/" --- [[network-servers]] diff --git a/documentation/content/ru/books/handbook/parti.adoc b/documentation/content/ru/books/handbook/parti.adoc index 568acfe495..b5bfd3fb8a 100644 --- a/documentation/content/ru/books/handbook/parti.adoc +++ b/documentation/content/ru/books/handbook/parti.adoc @@ -4,7 +4,8 @@ prev: books/handbook/preface next: books/handbook/introduction showBookMenu: true weight: 2 -path: "/books/handbook/" +params: + path: "/books/handbook/parti/" --- [[getting-started]] diff --git a/documentation/content/ru/books/handbook/partii.adoc b/documentation/content/ru/books/handbook/partii.adoc index bb09439e48..685b2cddc2 100644 --- a/documentation/content/ru/books/handbook/partii.adoc +++ b/documentation/content/ru/books/handbook/partii.adoc @@ -4,7 +4,8 @@ prev: books/handbook/x11 next: books/handbook/desktop showBookMenu: true weight: 9 -path: "/books/handbook/" +params: + path: "/books/handbook/partii/" --- [[common-tasks]] diff --git a/documentation/content/ru/books/handbook/partiii.adoc b/documentation/content/ru/books/handbook/partiii.adoc index 212d750cfd..12ebcb431a 100644 --- a/documentation/content/ru/books/handbook/partiii.adoc +++ b/documentation/content/ru/books/handbook/partiii.adoc @@ -4,7 +4,8 @@ prev: books/handbook/linuxemu next: books/handbook/config showBookMenu: true weight: 15 -path: "/books/handbook/" +params: + path: "/books/handbook/partiii/" --- [[system-administration]] diff --git a/documentation/content/ru/books/handbook/partiv.adoc b/documentation/content/ru/books/handbook/partiv.adoc index 43c872845a..7d944bbcc9 100644 --- a/documentation/content/ru/books/handbook/partiv.adoc +++ b/documentation/content/ru/books/handbook/partiv.adoc @@ -4,7 +4,8 @@ prev: books/handbook/cutting-edge next: books/handbook/serialcomms showBookMenu: true weight: 26 -path: "/books/handbook/" +params: + path: "/books/handbook/partiv/" --- [[network-communication]] diff --git a/documentation/content/ru/books/handbook/partv.adoc b/documentation/content/ru/books/handbook/partv.adoc index 18f3bab7ba..0763ee5781 100644 --- a/documentation/content/ru/books/handbook/partv.adoc +++ b/documentation/content/ru/books/handbook/partv.adoc @@ -4,7 +4,8 @@ prev: books/handbook/advanced-networking next: books/handbook/mirrors showBookMenu: true weight: 33 -path: "/books/handbook/" +params: + path: "/books/handbook/partv/" --- [[appendices]] diff --git a/documentation/content/ru/books/handbook/pgpkeys/_index.adoc b/documentation/content/ru/books/handbook/pgpkeys/_index.adoc index f7825bfd00..b2db0fc0da 100644 --- a/documentation/content/ru/books/handbook/pgpkeys/_index.adoc +++ b/documentation/content/ru/books/handbook/pgpkeys/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/eresources next: books/handbook/freebsd-glossary showBookMenu: true weight: 37 -path: "/books/handbook/" +params: + path: "/books/handbook/pgpkeys/" --- [appendix] @@ -59,9 +60,6 @@ endif::[] === {security-officer-name} `<{security-officer-email}>` include::{pgpkeys-path}static/pgpkeys/security-officer.key[] -=== {secteam-secretary-name} `<{secteam-secretary-email}>` -include::{pgpkeys-path}static/pgpkeys/secteam-secretary.key[] - === {core-secretary-name} `<{core-secretary-email}>` include::{pgpkeys-path}static/pgpkeys/core-secretary.key[] diff --git a/documentation/content/ru/books/handbook/ports/_index.adoc b/documentation/content/ru/books/handbook/ports/_index.adoc index af8725ca87..9b44a169bd 100644 --- a/documentation/content/ru/books/handbook/ports/_index.adoc +++ b/documentation/content/ru/books/handbook/ports/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/basics next: books/handbook/x11 showBookMenu: true weight: 7 -path: "/books/handbook/" +params: + path: "/books/handbook/ports/" --- [[ports]] diff --git a/documentation/content/ru/books/handbook/ppp-and-slip/_index.adoc b/documentation/content/ru/books/handbook/ppp-and-slip/_index.adoc index 22b08e605c..07d14e3525 100644 --- a/documentation/content/ru/books/handbook/ppp-and-slip/_index.adoc +++ b/documentation/content/ru/books/handbook/ppp-and-slip/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/serialcomms next: books/handbook/mail showBookMenu: true weight: 28 -path: "/books/handbook/" +params: + path: "/books/handbook/ppp-and-slip/" --- [[ppp-and-slip]] diff --git a/documentation/content/ru/books/handbook/preface/_index.adoc b/documentation/content/ru/books/handbook/preface/_index.adoc index a0403a97d4..e79b7d7a69 100644 --- a/documentation/content/ru/books/handbook/preface/_index.adoc +++ b/documentation/content/ru/books/handbook/preface/_index.adoc @@ -1,10 +1,13 @@ --- title: Предисловие -prev: books/handbook/ +prev: books/handbook next: books/handbook/parti +description: Начинающий пользователь FreeBSD увидит, что первая часть этой книги помогает пройти процесс установки FreeBSD и ненавязчиво объясняет концепции и соглашения, лежащие в основе UNIX +tags: ["предисловие", "аудитория", "организация", "соглашения", "благодарности"] showBookMenu: true weight: 1 -path: "/books/handbook/" +params: + path: "/books/handbook/preface/" --- [preface] @@ -42,149 +45,210 @@ toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] +// +// The FreeBSD Russian Documentation Project +// +// Original EN revision (08.01.2023): d17f5a8e61630f4514fdc93d113e4173234b1395 +// + [[preface-audience]] == Целевая аудитория -Люди, которые используют FreeBSD с недавнего времени, найдут, что первая часть этой книги проводит читателя через процесс установки FreeBSD и кратко освещает идеи и традиции, на которых базируется UNIX(R). Работа с этой частью требует несколько большего, чем просто желание исследовать - необходима возможность принимать к сведению новые идеи. +Начинающим пользователям FreeBSD будет полезна первая часть этой книги, которая проводит читателя через процесс установки FreeBSD и ненавязчиво объясняет концепции и соглашения, на которых базируется UNIX(R). +Работа с этой частью требует несколько большего, чем желания исследовать и способности принятия новых концепций по мере их описания. + +Если вы преодолеете все сложности, то вас будет ждать вторая, много большая часть Руководства, которая является всеобъемлющим справочником обо всех темах, которые могут интересовать администраторов FreeBSD. +Некоторые из глав этой части могут рекомендовать вам предварительное изучение других материалов, о чём упоминается в кратком обзоре в начале каждой главы. + +Список рекомендуемой дополнительной литературы вы можете найти в crossref:bibliography[bibliography,Библиографии]. + +[[preface-changes-from4]] +== Четвёртое издание -Вторая, много большая часть Руководства, является всеобъемлющим справочником о всех темах, которые могут интересовать администраторов FreeBSD. Некоторые из глав этой части могут рекомендовать вам предварительное чтение других документов, о чём упоминается в кратком обзоре в начале каждой главы. +Актуальная версия Руководства является результатом усилий рабочей группы, которая занималась рецензированием и обновлением содержимого документа. +Вот те ключевые изменения, появившиеся после выхода четвёртого издания Руководства: -Список рекомендуемой дополнительной литературы вы можете найти в crossref:bibliography[bibliography,Библиография]. +* Выполнен перевод формата Руководства с link:https://docbook.org/[Docbook] на link:https://gohugo.io/[Hugo] и link:https://asciidoctor.org/[AsciiDoctor] +* Создан link:https://docs.FreeBSD.org[Портал документации FreeBSD]. +* Добавлена глава crossref:wayland[wayland,Wayland], описывающая установку и настройку Wayland во FreeBSD. +* Существенно дополнена crossref:bibliography[bibliography,Библиография]. + +[[preface-changes-from3]] +== Третье издание + +Текущая онлайновая версия Руководства является результатом совместных усилий многих сотен добровольных участников за последние 10 лет. +Ниже перечисляются некоторые значимые изменения, появившиеся после публикации двухтомного третьего издания в 2004 году: + +* Добавлена глава crossref:wine[wine,WINE], описывающая порядок запуска приложений Windows(R) во FreeBSD. +* Добавлена глава crossref:dtrace[dtrace,DTrace], содержащая информацию о мощном инструменте анализа производительности DTrace. +* Добавлена глава crossref:filesystems[filesystems,Другие файловые системы], содержащая информацию о поддержке прочих файловых систем во FreeBSD, таких как ZFS от компании Sun(TM). +* Добавлена глава crossref:audit[audit,Аудит Событий Безопасности], посвящённая новым возможностям аудита во FreeBSD и описывающая его использование. +* Добавлена глава crossref:virtualization[virtualization,Виртуализация] с информацией об установке FreeBSD в виртуализированном программном окружении. +* Добавлена глава crossref:bsdinstall[bsdinstall,Установка FreeBSD], описывающая установку FreeBSD при помощи новой установочной утилиты bsdinstall. [[preface-changes-from2]] -== Изменения по сравнению со второй редакцией - -Третья редакция является кульминацией более чем двух лет работы отдельных членов проекта документации FreeBSD. Вот основные изменения в новой редакции: - -* crossref:config[config-tuning, Настройка и оптимизация], Настройка и оптимизация, была расширена новой информацией о ACPI управлении питанием и ресурсами, системной утилите cron и дополнительных параметрах оптимизации ядра. -* crossref:security[security, Безопасность], Безопасность, была расширена новой информацией о виртуальных частных сетях (VPN), списках контроля доступа файловой системы (ACL), и сообщениях безопасности. -* crossref:mac[mac, Принудительный контроль доступа (MAC)], Принудительный контроль доступа (MAC), новая глава этой редакции. Она описывает, что такое MAC и как этот механизм может быть использован для защиты системы FreeBSD. -* crossref:disks[disks, Устройства хранения], Устройства хранения, была расширена новой информацией о устройствах хранения USB, образах файловой системы, квотах файловой системы, файловых системах в файлах и в сети, зашифрованных дисковых разделах. -* К crossref:ppp-and-slip[ppp-and-slip, PPP и SLIP], PPP и SLIP, был добавлен раздел о решении проблем. -* crossref:mail[mail, Электронная почта], Электронная почта, была расширена новой информацией об использовании альтернативных транспортных агентов, SMTP аутентификации, UUCP, fetchmail, procmail, и другими разделами повышенной сложности. -* crossref:network-servers[network-servers, Сетевые серверы], Сетевые серверы, появилась в этой редакции. Эта главы включает информацию о установке Apache HTTP Server, FTPd, и настройке Samba сервера для клиентов Microsoft Windows. Некоторые разделы были перемещены сюда из crossref:advanced-networking[advanced-networking, Сложные вопросы работы в сети], Сложные вопросы работы в сети. -* crossref:advanced-networking[advanced-networking, Сложные вопросы работы в сети], Сложные вопросы работы в сети, была расширена новой информацией об использовании устройств Bluetooth в FreeBSD, настройке беспроводных сетей, и сетях Asynchronous Transfer Mode (ATM). +== Второе издание (2004) + +Третье Издание являлось кульминацией более чем двух лет работы отдельных членов проекта документации FreeBSD. +Печатная версия выросла до размера, потребовавшего публикации в виде двух отдельных томов. +Вот основные изменения в новой редакции: + +* Глава crossref:config[config-tuning,Настройка и оптимизация] была расширена новой информацией о стандарте ACPI управления электропитанием и ресурсами, системной утилите `cron` и дополнительных параметрах оптимизации ядра. +* Глава crossref:security[security,Безопасность] была дополнена новой информацией о виртуальных частных сетях (VPN), списках контроля доступа файловой системы (ACL) и бюллетенях безопасности. +* Глава crossref:mac[mac,Принудительный контроль доступа (MAC)] является новой главой этого Издания. Она описывает, что такое MAC и как этот механизм может быть использован для защиты системы FreeBSD. +* Глава crossref:disks[disks,Устройства хранения] была расширена новой информацией об устройствах хранения USB, образах файловой системы, квотах файловой системы, файловых системах в файлах и в сети, а также зашифрованных дисковых разделах. +* К главе crossref:ppp-and-slip[ppp-and-slip, PPP и SLIP] был добавлен раздел об устранении неполадок. +* Глава crossref:mail[mail,Электронная почта] была дополнена новой информацией об использовании альтернативных транспортных агентов, аутентификации SMTP, UUCP, fetchmail, procmail и другими темами повышенной сложности. +* Глава crossref:network-servers[network-servers,Сетевые серверы] появилась в этой редакции. В неё включена информация о настройке Apache HTTP Server и ftpd, а также настройке сервера Samba для работы с клиентами Microsoft(R) Windows(R). Некоторые разделы были перемещены сюда из главы crossref:advanced-networking[advanced-networking,Сложные вопросы работы в сети]. +* Глава crossref:advanced-networking[advanced-networking,Сложные вопросы работы в сети] была расширена новой информацией об использовании устройств Bluetooth(R) во FreeBSD, настройке беспроводных сетей, и сетях Asynchronous Transfer Mode (ATM). * Был добавлен глоссарий, объединяющий информацию о технических терминах, используемых в книге. * Множество эстетических улучшений были внесены в таблицы и иллюстрации этой книги. [[preface-changes]] -== Изменения во второй редакции +== Первое издание (2001) -Вторая редакция является кульминацией более чем двухлетней работы членов Проекта документации FreeBSD. Нижеследующий список перечисляет все значительные изменения, внесенные в эту редакцию: +Вторая редакция стала кульминацией более чем двухлетней работы членов Проекта документации FreeBSD. +Нижеследующий список перечисляет все значительные изменения, внесённые в эту редакцию: * Был добавлен полный указатель тем. * Все ASCII-иллюстрации были заменены на графические. * Был добавлен стандартный краткий обзор к каждому разделу для того, чтобы читатель мог получить представление о содержании раздела и о том, что необходимо знать для его изучения. * Содержимое было логически реорганизовано на три части: "В Начале", "Системное администрирование" и "Приложения". -* crossref:install[install, Установка FreeBSD версий 8.X и более ранних] ("Установка FreeBSD") была полностью переписана, добавлено большое количество снимков экрана, чтобы облегчить понимание текста для новых пользователей. -* crossref:basics[basics, Основы UNIX] ("Основы UNIX(R)") была расширена и содержит дополнительную информацию о процессах, даемонах и сигналах. -* crossref:ports[ports, Установка приложений. порты и пакеты] ("Установка приложений: порты и пакеты") была расширена и содержит дополнительную информации об управлении бинарными пакетами. -* crossref:x11[x11, X Window System] ("X Window System") была полностью переписана и обращает больше внимания на современные технологии для рабочего стола, такие, как KDE и GNOME на XFree86(TM) 4.X. -* crossref:boot[boot, Процесс загрузки FreeBSD] ("Процесс загрузки FreeBSD") была расширена. -* crossref:disks[disks, Устройства хранения] ("Устройства хранения") была составлена из того, что раньше было двумя различными главами: "Диски" и "Резервное копирование". Мы считаем, что данные темы будут проще и более полно описаны как одна глава. Был добавлен раздел о программном и аппаратном RAID. -* crossref:serialcomms[serialcomms, Последовательные соединения] ("Последовательные коммуникации") была полностью реорганизована и обновлена для FreeBSD 4.X/5.X. -* crossref:ppp-and-slip[ppp-and-slip, PPP и SLIP] ("PPP и SLIP") была существенно обновлена. -* Было добавлено множество новых разделов в crossref:advanced-networking[advanced-networking, Сложные вопросы работы в сети] ("Сложные вопросы работы в сети"). -* crossref:mail[mail, Электронная почта] ("Электронная почта") была расширена, теперь она включает больше информации о настройке sendmail. -* crossref:linuxemu[linuxemu, Двоичная совместимость с Linux] ("Работа с приложениями, написанными для Linux(R)") была дополнена включением информации об установке Oracle(R) и SAP(R) R/3(R). +* Глава crossref:basics[basics,Основы FreeBSD] была расширена и содержит дополнительную информацию о процессах, даемонах и сигналах. +* Глава crossref:ports[ports,Установка приложений] была расширена и содержит дополнительную информации об управлении бинарными пакетами. +* Глава crossref:x11[x11,X Window System] была полностью переписана и обращает больше внимания на современные технологии для рабочего стола, такие, как KDE и GNOME на XFree86(TM) 4.X. +* Глава crossref:boot[boot,Процесс загрузки FreeBSD] была расширена. +* Глава crossref:disks[disks,Устройства хранения] была составлена из того, что раньше было двумя различными главами: "Диски" и "Резервное копирование". Мы считаем, что данные темы будут проще и более полно описаны как одна глава. Был добавлен раздел о программном и аппаратном RAID. +* Глава crossref:serialcomms[serialcomms,Последовательные соединения] была полностью реорганизована и обновлена для FreeBSD 4.X/5.X. +* Глава crossref:ppp-and-slip[ppp-and-slip,PPP и SLIP] была существенно обновлена. +* Было добавлено множество новых разделов в главу crossref:advanced-networking[advanced-networking,Сложные вопросы работы в сети]. +* Глава crossref:mail[mail,Электронная почта] была расширена, теперь она включает больше информации о настройке sendmail. +* Глава crossref:linuxemu[linuxemu,Двоичная совместимость с Linux] была дополнена включением информации об установке Oracle(R) и SAP(R) R/3(R). * Следующие новые темы были рассмотрены в этой, второй, редакции: -** Настройка и оптимизация (crossref:config[config-tuning, Настройка и оптимизация]). -** Мультимедиа (crossref:multimedia[multimedia, Мультимедиа]) +** crossref:config[config-tuning,Настройка и оптимизация]. +** crossref:multimedia[multimedia, Мультимедиа]. [[preface-overview]] == Структура этой книги -Эта книга разбита на пять частей. В первой части, _В начале_, рассматривается установка и основные навыки использования FreeBSD. Предполагается, что читатель освоит эти разделы последовательно, возможно пропуская разделы, в которых обсуждаются уже знакомые для него темы. Вторая часть, _Общие задачи_, рассказывает о некоторых наиболее часто используемых возможностях FreeBSD. Этот раздел и все последующие могут быть прочитаны не по порядку. Каждая глава начинается с краткого обзора, который описывает, о чём говорится в ней и что читатель должен будет знать для прочтения этой главы. Это сделано для того, чтобы случайно встретивший этот материал читатель мог найти разделы, которые его интересуют. В третьей части, _Системное администрирование_, рассмотрены вопросы администрирования. В четвертой части, _Сетевые коммуникации_, охвачены темы, связанные с серверами и сетью. Пятая часть содержит приложения и справочную информацию. - -_crossref:introduction[introduction, Введение], Введение_:: +Эта книга разбита на пять частей. +В первой части, _В начале_, рассматривается установка и основные навыки использования FreeBSD. +Предполагается, что читатель освоит эти разделы последовательно, возможно пропуская разделы, в которых обсуждаются уже знакомые для него темы. +Вторая часть, _Общие задачи_, рассказывает о некоторых наиболее часто используемых возможностях FreeBSD. +Этот раздел и все последующие могут быть прочитаны не по порядку. +Каждая глава начинается с краткого обзора, который описывает, о чём говорится в ней и что читатель должен будет знать для прочтения этой главы. +Это сделано для того, чтобы случайно встретивший этот материал читатель мог найти разделы, которые его интересуют. +В третьей части, _Системное администрирование_, рассмотрены вопросы администрирования. +В четвертой части, _Сетевые коммуникации_, охвачены темы, связанные с серверами и сетью. +Пятая часть содержит приложения и справочную информацию. + +_crossref:introduction[introduction,Введение]_:: Знакомит пользователя с FreeBSD. Рассказывает об истории проекта FreeBSD, его задачах и модели разработки. -_crossref:install[install, Установка FreeBSD версий 8.X и более ранних], Установка_:: -Проводит пользователя через весь процесс установки. Обсуждаются также некоторые более сложные вопросы установки, такие как установка по последовательной консоли. +_crossref:bsdinstall[bsdinstall,Установка FreeBSD]_:: +Проводит пользователя через весь процесс установки FreeBSD 9.x и более поздних версий с использованием sysinstall. -_crossref:basics[basics, Основы UNIX], Основы UNIX(R)_:: +_crossref:basics[basics,Основы FreeBSD]_:: Рассказывает об основных командах и функциональности операционной системы FreeBSD. Если вы знакомы с Linux(R) или другой UNIX(R)-подобной операционной системой, возможно, вы пропустите эту главу. -_crossref:ports[ports, Установка приложений. порты и пакеты], Установка приложений: порты и пакеты_:: +_crossref:ports[ports,Установка приложений]_:: Рассказывает о процессе установки программного обеспечения сторонних производителей с использованием "Коллекции Портов FreeBSD" и стандартных бинарных пакетов. -_crossref:x11[x11, X Window System], X Window System_:: +_crossref:x11[x11,X Window System]_:: Описывает X Window System вообще и использование X11 под управлением FreeBSD в частности. Также описывает популярные окружения рабочего стола, такие как KDE и GNOME. -_crossref:desktop[desktop, Приложения для настольного компьютера], Приложения для настольного компьютера_:: +_crossref:wayland[wayland,Wayland]_:: +Описывает сервер дисплеев Wayland в целом и использование Wayland во FreeBSD в частности. Также рассказывает о популярных композитных менеджерах, таких как Wayfire, Hikari и Sway. + +_crossref:desktop[desktop,Приложения для настольного компьютера]_:: Перечисляет некоторые популярные приложения для рабочей станции, такие как веб-браузеры и офисные пакеты и описывает процесс их установки на FreeBSD. -_crossref:multimedia[multimedia, Мультимедиа], Мультимедиа_:: +_crossref:multimedia[multimedia,Мультимедиа]_:: Показывает, как настроить поддержку воспроизведения звука и видео на вашей системе. Также описывает некоторые примеры приложений для воспроизведения звука и видео. -_crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD], Настройка ядра FreeBSD_:: +_crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]_:: Объясняет, почему вам может понадобиться перенастроить ядро и детально описывает процесс настройки, сборки и установки нового ядра. -_crossref:printing[printing, Печать], Печать_:: +_crossref:printing[printing,Печать]_:: Рассказывает об управлении принтерами в FreeBSD, включая информацию об титульных страницах, учёте использования принтеров и первоначальной настройке. -_crossref:linuxemu[linuxemu, Двоичная совместимость с Linux], Двоичная совместимость с Linux(R)_:: -Описывает возможности Linux(R)-совместимости в FreeBSD. Также предоставляет детальные инструкции по установке многих популярных приложений для Linux(R), таких как: Oracle(R), SAP(R) R/3(R) и Mathematica(R). +_crossref:linuxemu[linuxemu,Двоичная совместимость с Linux®]_:: +Описывает возможности Linux(R)-совместимости во FreeBSD. Также содержит подробные инструкции по установке многих популярных приложений для Linux(R), таких как Oracle(R) и Mathematica(R). + +_crossref:wine[wine,WINE]_:: +Описывает WINE и содержит подробные инструкции по установке. Также рассказывает о том, как работает WINE, как установить вспомогательный модуль для GUI, как запускать приложения Windows(R) во FreeBSD, и содержит другие советы и решения. -_crossref:config[config-tuning, Настройка и оптимизация], Настройка и оптимизация_:: +_crossref:config[config-tuning,Настройка и оптимизация]_:: Описывает всевозможные параметры настройки FreeBSD, которые может использовать системный администратор для оптимальной настройки системы. Также описывает различные конфигурационные файлы, используемые в FreeBSD и расположение этих файлов на диске. -_crossref:boot[boot, Процесс загрузки FreeBSD], Процесс загрузки FreeBSD_:: +_crossref:boot[boot,Процесс загрузки FreeBSD]_:: Рассказывает о процессе загрузки FreeBSD и объясняет, как управлять этим процессом при помощи различных настроек. -_crossref:users[users-synopsis, Пользователи и основы управления учётными записями], Пользователи и основы управления учётными записями_:: -Рассказывает о создании и управлении пользовательскими учётными записями. Также обсуждает установку ограничений ресурсов для пользователей и другие задачи управления пользователями. - -_crossref:security[security, Безопасность], Безопасность_:: +_crossref:security[security,Безопасность]_:: Описывает множество различных утилит, которые помогут вам поддерживать FreeBSD в безопасном, надёжном состоянии, включая Kerberos, IPsec и OpenSSH. -_crossref:mac[mac, Принудительный контроль доступа (MAC)], Принудительный контроль доступа (MAC)_:: +_crossref:jail[jails,Изоляторы]_:: +Описывает технологию изоляции и преимущества изоляторов перед традиционной технологией chroot, поддерживаемой во FreeBSD. + +_crossref:mac[mac,Принудительный контроль доступа (MAC)]_:: Описывает что такое принудительный контроль доступа (Mandatory Access Control, MAC) и как этот механизм может быть использован для защиты системы FreeBSD. -_crossref:disks[disks, Устройства хранения], Устройства хранения_:: +_crossref:audit[audit,Аудит Событий Безопасности]_:: +Описывает, что представляет из себя Аудит Событий FreeBSD, как его можно установить и настроить, а также то, как можно анализировать или отслеживать аудиторские следы. + +_crossref:disks[disks,Устройства хранения]_:: Описывает как управлять накопителями информации и файловыми системами в FreeBSD, включая физические диски, массивы RAID, оптические и ленточные носители, диски в оперативной памяти и сетевые файловые системы. -_crossref:geom[GEOM, GEOM. Модульная инфраструктура преобразования дисковых запросов], GEOM_:: +_crossref:geom[geom,GEOM]_:: Рассказывает о подсистеме GEOM в FreeBSD и описывает различные поддерживаемые уровни RAID. -_crossref:filesystems[filesystems, Поддержка файловых систем], Поддержка файловых систем_:: -Исследует поддержку неосновных файловых систем во FreeBSD, таких как, например, Sun(TM) Z File System. +_crossref:zfs[zfs,Платформа хранения OpenZFS]_:: +Описывает платформу хранения OpenZFS и содержит руководство по её быстрому запуску, а также информацию о сложных вопросах эксплуатации OpenZFS под управлением FreeBSD. + +_crossref:filesystems[filesystems,Поддержка файловых систем]_:: +Рассматривает поддержку дополнительных файловых систем во FreeBSD, таких как ext2, ext3 и ext4. -_crossref:l10n[l10n, Локализация - использование и настройка i18n/L10n], Локализация - I18N/L10N использование и настройка_:: +_crossref:virtualization[virtualization,Виртуализация]_:: +Описывает возможности систем виртуализации и то, как они могут использоваться с FreeBSD. + +_crossref:l10n[l10n,Локализация - использование и настройка i18n/L10n]_:: Описывает использование FreeBSD с языками, отличными от английского. Рассказывает о локализации на уровне системы и отдельных приложений. -_crossref:cutting-edge[updating-upgrading, Обновление системы и смена версии FreeBSD], Обновление системы и смена версии_:: -Объясняет различия между FreeBSD-STABLE, FreeBSD-CURRENT и FreeBSD-RELEASE. Рассказывает, кому из пользователей будет полезно отслеживать версию системы в разработке и вкратце описывает этот процесс. +_crossref:updating-upgrading[updating-upgrading,Обновление системы и смена версии FreeBSD]_:: +Объясняет различия между FreeBSD-STABLE, FreeBSD-CURRENT и FreeBSD-RELEASE. Рассказывает, кому из пользователей будет полезно отслеживать версию системы в разработке и вкратце описывает этот процесс. Описывает методы, которык могут быть применены пользователями для обновления их систем до самой последнего безопасного релиза. + +_crossref:dtrace[dtrace,DTrace]_:: +Описывает порядок настройки и использования инструмента DTrace компании Sun(TM) во FreeBSD. Динамическая трассировка может помочь в локализации проблем с производительностью за счёт выполнения анализа системы в реальном режиме времени. -_crossref:serialcomms[serialcomms, Последовательные соединения], Последовательные соединения_:: -Объясняет, как подключать терминалы и модемы к вашей системе FreeBSD, как в серверном, так и в клиентском режиме. +_crossref:usb-device-mode[usb-device-mode,USB Device Mode / USB OTG]_:: +Описывает использование USB Device Mode и USB On The Go (USB OTG) во FreeBSD. -_crossref:ppp-and-slip[ppp-and-slip, PPP и SLIP], PPP и SLIP_:: -Описывает использование PPP, SLIP или PPP через Ethernet для соединения с удалёнными системами при помощи FreeBSD. +_crossref:ppp-and-slip[ppp-and-slip,PPP и SLIP]_:: +Описывает использование PPP для соединения с удалёнными системами во FreeBSD. -_crossref:mail[mail, Электронная почта], Электронная почта_:: +_crossref:mail[mail,Электронная почта]_:: Описывает использование различных компонентов почтового сервера и более углублённо рассматривает простые вопросы конфигурации для наиболее популярного программного обеспечения почтовых серверов: sendmail. -_crossref:network-servers[network-servers, Сетевые серверы], Сетевые серверы_:: +_crossref:network-servers[network-servers,Сетевые серверы]_:: Предоставляет детальные инструкции и примеры файлов настройки для использования компьютера с FreeBSD в качестве файлового сервера (NFS), сервера доменных имен (DNS), сервера сетевой информационной системы (NIS), или сервера точного времени (ntpd). -_crossref:firewalls[firewalls, Межсетевые экраны], Брандмауэры_:: +_crossref:firewalls[firewalls,Межсетевые экраны]_:: Описывает принципы, на которых основаны программные брандмауэры, и содержит детали конфигурирования различных брандмауэров, доступных в FreeBSD. -_crossref:advanced-networking[advanced-networking, Сложные вопросы работы в сети], Сложные вопросы работы в сети_:: -Рассматривает множество вопросов работы с сетью, включая совместный доступ компьютеров вашей локальной сети к интернет, расширенные вопросы маршрутизации, беспроводные соединения, bluetooth, ATM, IPv6 и многое другое. +_crossref:advanced-networking[advanced-networking,Сложные вопросы работы в сети]_:: +Рассматривает множество вопросов работы с сетью, включая совместный доступ компьютеров вашей локальной сети к интернет, расширенные вопросы маршрутизации, беспроводные соединения, Bluetooth(R), ATM, IPv6 и многое другое. -_crossref:mirrors[mirrors, Получение FreeBSD], Получение FreeBSD_:: +_crossref:mirrors[mirrors,Получение FreeBSD]_:: Перечисляет различные источники, из которых можно получить FreeBSD на CDROM или DVD, равно как и различные сайты в интернет, с которых можно скачать и установить FreeBSD. -_crossref:bibliography[bibliography, Библиография], Библиография_:: +_crossref:bibliography[bibliography,Библиография]_:: Эта книга касается многих различных тем, которые могут сподвигнуть вас на более детальное изучение. Библиография перечисляет множество отличных книг, упоминаемых в тексте. -_crossref:eresources[eresources, Ресурсы в интернет], Ресурсы в интернет_:: +_crossref:eresources[eresources,Ресурсы в Интернет]_:: Описывает множество форумов, доступных для пользователей FreeBSD, где можно задать вопросы и поучаствовать в технических обсуждениях FreeBSD. -_crossref:pgpkeys[pgpkeys, Ключи PGP], Ключи PGP_:: +_crossref:pgpkeys[pgpkeys,Ключи PGP]_:: Содержит ключи PGP некоторых разработчиков FreeBSD. [[preface-conv]] @@ -202,12 +266,13 @@ _Наклонный шрифт_ используется для имен фай `Моноширинных шрифт` используется для сообщений об ошибках, команд, имен пользователей, названий групп, названий устройств, переменных и фрагментов кода. Полужирный шрифт:: -Полужирный шрифт используется для обозначения приложений, команд и параметров. +*Полужирный* шрифт используется для обозначения приложений, команд и комбинаций клавиш. [[preface-conv-commands]] === Пользовательский ввод -Клавиши представляются в виде *полужирного текста* для того, чтобы выделяться среди остального текста. Комбинации клавиш, которые должны вводиться одновременно, разделяются символом `+`, например: +Клавиши представляются в виде *полужирного текста* для того, чтобы выделяться среди остального текста. +Комбинации клавиш, которые должны вводиться одновременно, разделяются символом `+`, например: kbd:[Ctrl+Alt+Del] @@ -222,21 +287,24 @@ kbd:[Ctrl+X], kbd:[Ctrl+S] [[preface-conv-examples]] === Примеры -Примеры, которые начинаются с [.filename]#E:\># обозначают команды MS-DOS(R). Если не указано обратного, эти команды могут вводиться из окна "Сеанс MS-DOS(R)" в современных системах Microsoft(R) Windows(R). +Примеры, которые начинаются с [.filename]#C:\>#, обозначают команды MS-DOS(R). +Если не указано обратного, эти команды могут вводиться из окна "Командная строка" в современных системах Microsoft(R) Windows(R). [source,shell] .... -E:\> tools\fdimage floppies\kern.flp A: +C:\> tools\fdimage floppies\kern.flp A: .... -Примеры, которые начинаются с # обозначают команды, которые должны быть запущены с правами суперпользователя в FreeBSD. Вы можете войти в систему как пользователь `root` для того, чтобы ввести эти команды или войти в систему обычным пользователем и использовать man:su[1] для того, чтобы получить привилегии суперпользователя. +Примеры, которые начинаются с # обозначают команды, которые должны быть запущены с правами суперпользователя в FreeBSD. +Вы можете войти в систему как пользователь `root` для того, чтобы ввести эти команды или войти в систему обычным пользователем и использовать man:su[1] для того, чтобы получить привилегии суперпользователя. [source,shell] .... # dd if=kern.flp of=/dev/fd0 .... -Примеры, начинающиеся с %, указывают, что команда должна быть исполнена с правами обычного пользователя. Если не указано обратного, используется синтаксис C-shell для установки переменных окружения и других команд. +Примеры, начинающиеся с %, указывают, что команда должна быть исполнена с правами обычного пользователя. +Если не указано обратного, используется синтаксис C-shell для установки переменных окружения и других команд. [source,shell] .... @@ -246,6 +314,13 @@ E:\> tools\fdimage floppies\kern.flp A: [[preface-acknowledgements]] == Благодарности -Книга, которую вы держите в руках являет собой результат труда многих сотен людей по всему миру. Не имеет значения, присылали ли они исправления опечаток или предоставляли целые главы, их труд был полезен. +Книга, которую вы держите в руках являет собой результат труда многих сотен людей по всему миру. +Не имеет значения, присылали ли они исправления опечаток или предоставляли целые главы, их труд был полезен. -Несколько компаний поддерживали разработку этого документа, оплачивая авторам их труд, оплачивая публикацию и т.д. В частности, BSDi (в последствии приобретённая компанией http://www.windriver.com[Wind River Systems]) оплачивала труд по улучшению этой книги участникам Проекта Документации FreeBSD, что в итоге сделало возможным выпуск первой печатной версии в марте 2000 года (ISBN 1-57176-241-8). Впоследствии компания Wind River Systems оплатила работу нескольких авторов по улучшению генерации книги в удобном для печати виде и добавлению нескольких глав. Кульминация этой работы являла собой публикацию второй печатной версии в ноябре 2001 года (ISBN 1-57176-303-1). В 2003-2004 годах http://www.freebsdmall.com[FreeBSD Mall, Inc] заплатила нескольким контрибьюторам за улучшение Handbook при подготовке к третьей редакции. +Несколько компаний поддерживали разработку этого документа, оплачивая авторам их труд, оплачивая публикацию и т.д. +В частности, BSDi (в последствии приобретённая компанией http://www.windriver.com[Wind River Systems]) оплачивала труд по улучшению этой книги участникам Проекта Документации FreeBSD, что в итоге сделало возможным выпуск первой печатной версии в марте 2000 года (ISBN 1-57176-241-8). +Впоследствии компания Wind River Systems оплатила работу нескольких авторов по улучшению генерации книги в удобном для печати виде и добавлению нескольких глав. +Кульминация этой работы являла собой публикацию второй печатной версии в ноябре 2001 года (ISBN 1-57176-303-1). +В 2003-2004 годах http://www.freebsdmall.com[FreeBSD Mall, Inc] заплатила нескольким контрибьюторам за улучшение Handbook при подготовке к третьей редакции. +Третье печатное издание было разделено на два тома. +Оба тома были опубликованы и получили названия The FreeBSD Handbook 3rd Edition Volume 1:User Guide (ISBN 1-57176-327-9) и The FreeBSD Handbook 3rd Edition Volume 2: Administrators Guide (ISBN 1-57176-328-7). diff --git a/documentation/content/ru/books/handbook/printing/_index.adoc b/documentation/content/ru/books/handbook/printing/_index.adoc index 3ffb621e37..e994c03150 100644 --- a/documentation/content/ru/books/handbook/printing/_index.adoc +++ b/documentation/content/ru/books/handbook/printing/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/kernelconfig next: books/handbook/linuxemu showBookMenu: true weight: 13 -path: "/books/handbook/" +params: + path: "/books/handbook/printing/" --- [[printing]] diff --git a/documentation/content/ru/books/handbook/security/_index.adoc b/documentation/content/ru/books/handbook/security/_index.adoc index ac31affb33..f295d8c0be 100644 --- a/documentation/content/ru/books/handbook/security/_index.adoc +++ b/documentation/content/ru/books/handbook/security/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/boot next: books/handbook/mac showBookMenu: true weight: 18 -path: "/books/handbook/" +params: + path: "/books/handbook/security/" --- [[security]] diff --git a/documentation/content/ru/books/handbook/serialcomms/_index.adoc b/documentation/content/ru/books/handbook/serialcomms/_index.adoc index ad06bdd613..e379d5db88 100644 --- a/documentation/content/ru/books/handbook/serialcomms/_index.adoc +++ b/documentation/content/ru/books/handbook/serialcomms/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/partiv next: books/handbook/ppp-and-slip showBookMenu: true weight: 27 -path: "/books/handbook/" +params: + path: "/books/handbook/serialcomms/" --- [[serialcomms]] diff --git a/documentation/content/ru/books/handbook/wayland/_index.adoc b/documentation/content/ru/books/handbook/wayland/_index.adoc new file mode 100644 index 0000000000..e7a5843fcf --- /dev/null +++ b/documentation/content/ru/books/handbook/wayland/_index.adoc @@ -0,0 +1,700 @@ +--- +title: Глава 6. Wayland +part: Часть I. Начало работы +prev: books/handbook/x11 +next: books/handbook/network +description: Эта глава описывает установку и настройку Wayland и композитных менеджеров во FreeBSD, обеспечивающих пользовательскую графическую оболочку +tags: ["Wayland", "XWayland", "KDE", "Plasma", "Xfce", "Gnome", "Intel", "AMD", "NVIDIA", "Wayfire", "Sway", "Hikari"] +showBookMenu: true +weight: 8 +params: + path: "/books/handbook/wayland/" +--- + +[[wayland]] += Wayland во FreeBSD +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:sectnumoffset: 6 +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/handbook/wayland/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +:imagesdir: ../../../../images/{images-path} +endif::[] +ifndef::book[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +toc::[] +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +toc::[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +[[wayland-synopsis]] +== Общие сведения о Wayland +Wayland представляет собой новый сервер дисплеев, однако он отличается от Xorg в нескольких важных аспектах. +Во-первых, Wayland является всего лишь протоколом, который выступает в качестве промежуточного слоя между клиентами и использует для этого альтернативный механизм, исключающий зависимость от X-сервера. +Xorg включает как протокол X11, используемый для управления удалёнными дисплеями, так и X-сервер, который будет принимать соединения и отображать окна. +В случае Wayland композитный менеджер или оконный менеджер вместо традиционного X-сервера предоставляет сервер дисплея. + +Так как Wayland не является X-сервером, то традиционные подключения к экранам X будут требовать использования других методов, таких, как VNC или RDP, для управления удалёнными рабочими столами. +Во-вторых, Wayland может управлять композитными соединениями между клиентами и композитным менеджером как отдельной сущностью, которой не нужно поддерживать протоколы X. + +Wayland относительно нов, и не всё программное обеспечение обновлено для работы без дополнительной поддержки `Xwayland`. +Так как Wayland не обеспечивает функцию X-сервера и ожидает, что эту поддержку обеспечивают композитные менеджеры, то оконным менеджерам X11, которые ещё не поддерживают Wayland, будет требоваться запуск `Xwayland` без параметра `-rootless`. +При исключении параметра `-rootless` обеспечивается поддержка оконного менеджера X11. + +[NOTE] +==== +Актуальный драйвер NVidia должен работать с большинством композитных менеджеров, основанных на wl-roots, но в настоящее время может быть несколько нестабильным и поддерживать не все возможности. +Требуются добровольцы для помощи в работе над NVidia DRM. +==== + +В настоящее время большое количество программного обеспечения, включая Firefox, будет работать с Wayland с минимальными проблемами. +Также доступно несколько оболочек рабочего стола, таких, как замена Compiz Fusion, известная как Wayfire, а также Sway, замена для оконного менеджера i3. + +[NOTE] +==== +С мая 2021 года plasma5-kwin поддерживает Wayland во FreeBSD. +Для использования Plasma вместе с Wayland используйте параметр `startplasma-wayland` для `ck-launch-session` в связке с dbus при помощи команды `ck-launch-session dbus-run-session startplasma-wayland`, чтобы это заработало. +==== + +Чтобы использовать функциональность определения клавиатурных комбинаций в композитных менеджерах, ядро системы должно поддерживать драйвер man:evdev[4]. +По умолчанию он включён в ядро [.filename]#GENERIC#, однако, если оно было кастомизировано и поддержка man:evdev[4] была исключена, то будет требоваться загрузка модуля ядра man:evdev[4]. +Кроме того, пользователи `Wayland` должны быть членами группы `video`. +Для того, чтобы быстро выполнить это изменение, воспользуйтесь командой `pw`: + +[source,shell] +---- +pw groupmod video -m user +---- + +Установка Wayland проста; нет ничего сложного в собственно настройке протокола. +Основной объём действий будет зависеть от выбранного композитного менеджера. +Приступим к установке `seatd` прямо сейчас и пропустим один шаг, являющийся частью установки и настройки композитного менеджера, так как для работы `seatd` необходимо предоставить пользовательский доступ к определённым устройствам. + +Все композитные менеджеры, описанные здесь, должны работать с драйверами с открытым кодом package:graphics/drm-kmod[]; однако графические адаптеры NVidia могут иметь проблемы при использовании проприетарных драйверов. +Начнём с установки следующих пакетов: + +[source,shell] +---- +# pkg install wayland seatd +---- + +Как только протокол и поддерживающие пакеты будут установлены, композитный менеджер должен создать пользовательский интерфейс. +В следующих разделах будут рассмотрены несколько композитных менеджеров. +Всем композитным менеджерам, использующим Wayland, для работы потребуется каталог, заданный в переменной окружения, что может быть выполнено следующей командой интерпретатора командной строки bourne shell: + +[source,shell] +---- +% export XDG_RUNTIME_DIR=/var/run/user/`id -u` +---- + +Важно отметить, что большинство композитных менеджеров будут выполнять поиск конфигурационных файлов в каталоге XDG_RUNTIME_DIR. +В показываемых здесь примерах будет использоваться параметр для указания конфигурационного файла в [.filename]#~/.config#, чтобы разделить хранение временных и конфигурационных файлов. +Для каждого композитного менеджера рекомендуется настроить алиас для загрузки соответствующего конфигурационного файла. + +[WARNING] +==== +Сообщается, что пользователи ZFS могут сталкиваться с трудностями с некоторыми клиентами Wayland, потому что им требуется доступ к возможности выполнить `posix_fallocate()` в рабочем каталоге. +Хотя автор не смог воспроизвести эту проблему на системе ZFS, рекомендуемым обходным решением является отказ от использования ZFS для рабочего каталога и использование вместо него `tmpfs` для каталога [.filename]#/var/run#. +В таком случае файловая система `tmpfs` используется для [.filename]#/var/run# и монтируется при помощи команды `mount -t tmpfs tmpfs /var/run`, при этом для сохранения такого изменения между перезагрузками используется [.filename]#/etc/fstab#. +Во избежание потенциальных подводных камней с ZFS переменная окружения XDG_RUNTIME_DIR может быть настроена на использование [.filename]#/var/run/user/$UID#. +Имейте в виду такую возможность при рассмотрении примеров конфигураций в последующих разделах. +==== + +Даемон seatd помогает композитным менеджерам управлять доступом к совместно используемым системным устройствам, в том числе графическим адаптерам, для непривилегированных пользователей. +Для традиционных менеджеров X11, таких как Plasma и GNOME, необходимости в `seatd` нет, однако для композитных менеджеров Wayland, обсуждаемых здесь, его необходимо будет активировать на уровне системы, и он должен быть запущен до начала работы в окружении композитного менеджера. +Для активации и запуска даемона `seatd` прямо сейчас, а также на этапе инициализации системы: + +[source,shell] +---- +# sysrc seatd_enable=”YES” +# service seatd start +---- + +После этого для получения GUI необходимо будет установить композитный менеджер, который похож на оболочку X11. +Здесь рассматриваются три из них, а также базовые параметры настройки, настройки блокировки экрана и рекомендации по получению дополнительной информации. + +[[wayland-wayfire]] +== Композитный менеджер Wayfire + +Wayfire является композитным менеджером, нацеленным на простоту и широкие возможности настройки. +Доступно несколько функций, и он возвращает несколько элементов из ранее выпущенной графической оболочки Compiz Fusion. +Все его компоненты на современном оборудовании выглядят прекрасно. +Для запуска и работы Wayfire начните с установки требуемых пакетов: + +[source,shell] +---- +# pkg install wayfire wf-shell alacritty swaylock-effects swayidle wlogout kanshi mako wlsunset +---- + +Пакет `alacritty` представляет собой эмулятор терминала. +Однако он не совсем обязателен, так как другие эмуляторы терминала, такие как `kitty` и `Terminal` из XFCE-4, были протестированы и проверены на предмет работоспособности под управлением композитного менеджера Wayfire. +Настройка Wayfire относительно проста; он использует файл, который нужно адаптировать при проведении любых настроек. +Для начала скопируйте файл с примером в каталог с настройками среды исполнения, а затем отредактируйте его: + +[source,shell] +---- +% mkdir ~/.config/wayfire +% cp /usr/local/share/examples/wayfire/wayfire.ini ~/.config/wayfire +---- + +Значения по умолчания должны удовлетворить большинство пользователей. +Внутри конфигурационного файла уже настроены такие пункты, как знаменитый `cube`, и имеются инструкции, помогающие с доступными настройками. +Несколько ключевых настроек включают в себя: + +[.programlisting] +.... +[output] +mode = 1920x1080@60000 +position = 0,0 +transform = normal +scale = 1.000000 +.... + +В этом примере из конфигурационного файла подразумевается работа монитора в указанном режиме с указанной частотой в герцах. +К примеру, режим должен задаваться как `widthxheight@refresh_rate`. +Параметр position указывает на выдачу в заданную точку экрана. +Значения по умолчанию должно подойти большинству пользователей. +Наконец, параметр transform определяет преобразование фона, а scale будет масштабировать выдачу с заданным коэффициентом. +Значения по умолчанию для этих параметров должно подойти большинству пользователей; для получения дополнительной информации обратитесь к документации. + +Как отмечалось, Wayland является новой технологией, и ещё не все приложения работают с этим протоколом. +На данный момент `sddm`, видимо, не поддерживает запуск и управление композитными менеджерами в Wayland. +Вместо него в этих примерах использовалась утилита `swaylock`. +Конфигурационный файл содержит параметры для запуска `swayidle` и `swaylock` для режимов простоя и блокировки экрана. + +Параметр, который служит для определения действия, выполняемого тогда, когда система находится в режиме простоя, задаётся следующим образом: + +[.programlisting] +.... +idle = swaylock +.... + +А таймаут для блокировки определяется при помощи следующих строк: + +[.programlisting] +.... +[idle] +toggle = <super> KEY_Z +screensaver_timeout = 300 +dpms_timeout = 600 +.... + +Первый параметр заблокирует экран по истечении 300 секунд, а после ещё 300 экран выключится в соответствии с опцией `dpms_timeout`. + +И, наконец, следует описать клавишу <super>. +В большинстве конфигураций используется этот параметр, и он соответствует обычной клавише `Windows` на клавиатуре. +Эта клавиша присутствует на большинстве клавиатур; в случае её отсутствия она должна быть переопределена в этом конфигурационном файле. +К примеру, чтобы блокировать экран, нажмите и удерживайте клавишу super, клавишу kbd:[shift] и нажмите kbd:[escape]. +Если определения не были изменены, это приведёт к вызову приложения swaylock. +В соответствии с настройками по умолчанию `swaylock` будет демонстрировать серый экран; однако приложение имеет массу настроек и хорошо документировано. +Кроме того, так как установливалась версия swaylock-effects, имеется несколько доступных опций, таких как эффект размытия, который можно увидеть при помощи следующей команды: + +[source,shell] +---- +% swaylock --effect-blur 7x5 +---- + +Имеется также параметр `--clock`, который на экране блокировки будет отображать часы с датой и временем. +При установке пакета package:x11/swaylock-effects[] также была установлена используемая по умолчанию конфигурация [.filename]#pam.d#. +В ней заданы параметры, которые должны подойти большинству пользователей. +Имеются и более сложные опции; обратитесь к документации по PAM для получения дополнительной информации. + +Подошло время протестировать Wayfire и посмотреть, сможет ли он запуститься на системе. +Просто наберите следующую команду: + +[source,shell] +---- +% wayfire -c ~/.config/wayfire/wayfire.ini +---- + +Композитный менеджер должен запуститься и отобразить фоновое изображение с полоской меню вверху экрана. +Wayfire попытается выдать список установленных совместимых приложений для оболочки рабочего стола и представить их в этом выпадающем меню; к примеру, если установлен файловый менеджер XFCE-4, то он отобразится в этом выпадающем меню. +Если какое-то конкретное приложение совместимо и имеет определённую ценность для назначения комбинации клавиш для его вызова, то это может быть сделано определением клавиатурной последовательности при помощи конфгурационного файла [.filename]#wayfire.ini#. +В Wayfire также имеется инструмент настройки под названием Wayfire Config Manager. +Он имеется в выпадающем меню, но также может быть запущен из терминала выдачей следующей команды: + +[source,shell] +---- +% wcm +---- + +В этом приложении могут быть активированы, отключены или настроены различные конфигурационные параметры Wayfire, включая специальные эффекты. +Кроме того, для организации более удобного пользовательского интерфейса в конфигурационном файле могут быть активированы менеджер фоновых изображений, панель и инструмент запуска приложений. + +[.programlisting] +.... +panel = wf-panel +dock = wf-dock +background = wf-background +.... + +[WARNING] +==== +Изменения, выполненные при помощи `wcm`, будут перезаписывать пользовательские изменения в конфигурационной файле [.filename]#wayfire.ini#. +Для того, чтобы любые важные изменения могли быть восстановлены, настоятельно рекомендуется сделать резервкную копию файла [.filename]#wayfire.ini#. +==== + +Наконец, диспетчер задач, используемый по умолчанию и указанный в файле [.filename]#wayfire.ini#, является пакетом package:x11/wf-shell[], и может быть заменён другими панелями, если этого захочет пользователь. + +[[wayland-hikari]] +== Композитный менеджер Hikari + +Композитный менеджер Hikari использует несколько концепций, направленных на организацию работы, таких как листы, рабочие пространства и так далее. +В этом смысле он подобен панельному оконному менеджеру. +Если описывать подробнее, то работа композитного менеджера начинается с одного рабочего простанства, что похоже на виртуальные рабочие столы. +Hikari использует одно рабочее пространство или виртуальный рабочий стол для взаиодействия с пользователем. +Рабочее пространство состоит из нескольких ракурсов, которые являются рабочими окнами в композитном менеджере, сгруппированными в виде листов или групп. +Как листы, так и группы формируются из набора ракурсов; повторимся, что это окна, которые группируются вместе. +При переключении между листами или группами активный лист или группа становится рабочим пространством. +Страница справки содержит больше подробностей о функциях каждого объекта, однако для целей этого документа просто считайте, что одно рабочее пространство использует один лист. +Установка Hikari состоит из одного пакета, package:x11-wm/hikari[], и эмулятора терминала `alacritty`: + +[source,shell] +---- +# pkg install hikari alacritty +---- + +[NOTE] +==== +Другие интерпретаторы командной строки, такие как `kitty` или `Terminal` среды Plasma, будут функционировать под управлением Wayland. +Пользователям следут поэкспериментировать с предпочитаемыми терминальными редакторами, чтобы удостовериться в совместимости. +==== + +Hikari использует конфигурационный файл [.filename]#hikari.conf#, который может быть размещён в XDG_RUNTIME_DIR либо указан при запуске при помощи параметра `-c`. +Конфигурационный файл автозапуска не является обязательным, однако может несколько упростить миграцию на этот композитный менеджер. +Настройка начинается с создания конфигурационного каталога Hikari и копирования в него конфигурационного файла для редактирования: + +[source,shell] +---- +% mkdir ~/.config/hikari +% cp /usr/local/etc/hikari/hikari.conf ~/.config/hikari +---- + +Настройка структурирована в несколько различных разделов, таких как ui, outputs, layouts и так далее. +Для большинства пользователей значения по умолчанию будут работать достаточно хорошо; однако понадобится сделать несколько важных изменений. +К примеру, переменная $TERMINAL в пользовательском окружении обычно не задаётся. +Изменение этой переменной или корректировка файла [.filename]#hikari.conf# таким образом: + +[.programlisting] +.... +terminal = "/usr/local/bin/alacritty" +.... + +Приведёт к запуску терминала `alacritty` при нажатии привязанной клавиатурной комбинации. +Проходя по конфигурационному файлу, следует отметить, что заглавные буквы используются для обозначения клавиш для пользователя. +К примеру, клавиша kbd:[L], используемая для запуска терминала по нажатию kbd:[L+Return], на самом деле является ранее обсуждённой супер клавишей, или клавишей с логотипом Windows. +Таким образом, при настройках по умолчанию удержание клавиши kbd:[L/super/Windows] и нажатие kbd:[Enter] откроет заданный эмулятор терминала. +Переопределение других клавиш для запуска приложений требует создания определений для действий. +Для этого действие должно быть указано в разделе с действиями, к примеру: + +[.programlisting] +.... +actions { + terminal = "/usr/local/bin/alacritty" + browser = "/usr/local/bin/firefox" +} +.... + +После этого действие может быть назначено в разделе keyboard, который определён внутри раздела bindings: + +[.programlisting] +.... +bindings { + keyboard { +ФРАГМЕНТ + "L+Return" = action-terminal + "L+b" = action-browser +ФРАГМЕНТ +.... + +После перезапуска Hikari удерживание клавиши с логотипом Windows и нажатие клавиши kbd:[b] запустит веб-браузер. +У этого композитного менеджера отсутствует полоска меню, и пользователям рекомендуется как минимум настроить эмулятор терминала перед миграцией. +Страница справки содержит большой объём документации, с которой необходимо ознакомиться перед выполнением полной миграции +Ещё одной положительной стороной Hikari является то, что при миграции на этот композитный менеджер он может быть запущен в окружении рабочего стола Plasma и GNOME, позволяя апробировать его до полного перехода. + +Блокировка экрана в Hikari проста, так как стандартный конфигурационный файл [.filename]#pam.d# и утилита разблокировки включены в пакет. +Функция блокировки экрана привязана к клавишам kbd:[L] (клавиша с логотипом Windows)+ kbd:[Shift] + kbd:[Backspace]. +Следует отметить, что все ракурсы, не помеченные как публичные, будут скрыты. +Эти ракурсы никогда не будут принимать ввод в режиме блокировки, однако следует озаботиться о том, что может быть показаны чувствительные данные. +Для некоторых пользователей может оказаться проще перейти на другой инструмент блокировки, такой как swaylock-effects, рассмотренный в этом разделе. +Для запуска Hikari используйте следующую команду: + +[source,shell] +---- +% hikari -c ~/.config/hikari/hikari.conf +---- + +[[wayland-sway]] +== Композитный менеджер Sway + +Sway является плиточным композитным менеджером, который пытается быть заменой оконному менеджеру i3. +Он должен работать с актуальной пользовательской конфигурацией i3; однако новые возможности могут потребовать некоторой дополнительной настройки. +В последующих примерах предполагается новая установка без какой-либо миграции конфигураций i3. +Для того, чтобы установить Sway и важные компоненты, выполните следующую команду пользователем root: + +[source,shell] +---- +# pkg install sway swayidle swaylock-effects alacritty dmenu-wayland dmenu +---- + +Для получения базового конфигурационного файла выполните следующие команды, а затем отредактируйте конфигурационный файл после его копирования: + +[source,shell] +---- +% mkdir ~/.config/sway +% cp /usr/local/etc/sway/config ~/.config/sway +---- + +Базовый конфигурационный файл имеет много настроек по умолчанию, которые подойдут большинству пользователей. +Необходимо сделать несколько важных изменений, как показано ниже: + +[.programlisting] +.... +# Клавиша с логотипом. Используйте Mod1 для указания на Alt. +input * xkb_rules evdev +set $mod Mod4 +# Предпочитаемый вами эмулятор терминала +set $term alacritty +set $lock swaylock -f -c 000000 +output "My Workstation" mode 1366x786@60Hz position 1366 0 +output * bg ~/wallpapers/mywallpaper.png stretch +### Настройка простоя +exec swayidle -w \ + timeout 300 'swaylock -f -c 000000' \ + timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ + before-sleep 'swaylock -f -c 000000' +.... + +В предыдущем примере загружаются правила `xkb` для man:evdev[4], а клавиша $mod настроена на клавишу с логотипом Windows для определения клавиш быстрого вызова. +Затем эмулятор терминала был настроен на `alacritty` и была определена команда для блокирования экрана; подробности об этом следуют позже. +Ключевое слово output указало Sway на режим, позицию, рисунок фона, а также на растяжение этого фонового рисунка для заполнения всего экрана. +Наконец, `swaylock` настроен на работу в фоновом режиме и блокировку экрана после таймаута в 300 секунд, с переводом экрана или монитора в спящий режжим после 600 секунд. +Цвет экрана блокировки задан как 000000, что соответствует чёрному цвету, что также определено здесь. +При использовании swaylock-effects с параметром `--clock` могут также отображаться часы. +Обратитесь к странице справки для получения информации о дополнительных опциях. +Также следует изучить страницу справки о man:sway-output[5]; в ней содержится большой объём информации о доступных настройках параметров отображения. + +При работе в Sway для вызова меню приложения удерживайте клавишу с логотипом Windows (mod) и нажмите клавишу kbd:[d]. +Навигация по меню может осуществляться при помощи клавиш со стрелками на клавиатуре. +Есть также возможности по созданию панели инструментов и добавлению панели задач; прочтите страницу справки по man:sway-bar[5] для получения дополнительной информации. +Конфигурация, применяемая по умолчанию, добавляет дату и время в правый верхний угол. +Пример можно найти в разделе `Bar` конфигурационного файла. +По умолчанию в конфигурацию на включена блокировка экрана, кроме примера выше, активирующего таймер блокировки. +Для создания клавиатурной комбинации для блокировки экрана требуется следующая строка в разделе `Key bindings`: + +[.programlising] +.... +# Ручная блокировка экрана +bindsym $mod+Shift+Return exec $lock +.... + +Теперь экран может быть заблокирован при помощи комбинации, заключающейся в удержании клавиши с логотипом Windows, нажатии и удержании клавиши shift и затем нажатия клавиши ввода. +При установке Sway, как из пакета, так и из Коллекции Портов FreeBSD, устанавливается файл по умолчанию для [.filename]#pam.d#. +Конфигурация по умолчанию должна подойти большинству пользователей, однако также доступны и более сложные настройки. +Прочтите документацию по PAM для получения дополнительной информации. + +Наконец, для выхода из Sway и возвращения в интерпретатор командной строки удерживайте клавишу с логотипом Windows, клавишу shift, и нажмите клавишу kbd:[e]. +Будет выдано сообщение с вариантом выхода из Sway. +Во время миграции Sway может быть запущен из эмулятора терминала на рабочем столе X11, таком как Plasma. +Это несколько упрощает тестирование различных изменений и клавиатурных комбинаций до момента полной миграции на этот композитный менеджер. +Для запуска Sway выполните следующую команду: + +[source,shell] +---- +% sway -c ~/.config/sway/config +---- + +[[wayland-xwayland]] +== Использование Xwayland + +При установке Wayland должен быть установлен двоичный файл `Xwayland`, если только Wayland не строился без поддержки X11. +Если файл [.filename]#/usr/local/bin/Xwayland# не существует, установите его при помощи следующей команды: + +[source,shell] +---- +# pkg install xwayland-devel +---- + +[NOTE] +==== +Рекомендуется использовать версию Xwayland для разработчиков, и, скорее всего, она и устанавливается с пакетом Wayland. +В каждом композитном менеджере имеется метод активации или отключения такой функции. +==== + +После того, как `Xwayland` будет установлен, настройте его при помощи выбранного композитного менеджера. +Для Wayfire в файле [.filename]#wayfire.ini# требуется следующая строка: + +[.programlisting] +.... +xwayland = true +.... + +В композитном менеджере Sway по умолчанию `Xwayland` должен быть включён. +Несмотря на это, рекомендуется вручную добавить конфигурационную строку в файл [.filename]#~/.config/sway/config#, подобно следующему: + +[.programlisting] +..... +xwayland enable +..... + +Наконец, для Hikari изменения не требуются. +Поддержка `Xwayland` встроена по умолчанию. +Для отключения такой поддержки перестройте пакет из коллекции портов и отключите поддержку Xwayland на этом этапе. + +После внесения этих изменений запустите композитный менеджер из командной строки и вызовите терминал при помощи комбинации клавиш. +Работая в этом терминале, выполните команду `env` и поищите переменные `DISPLAY`. +Если композитному менеджеру удалось полноценно запустить X-сервер Xwayland, то эти переменные окружения должны иметь вид, подобный следующему: + +[source,shell] +---- +% env | grep DISPLAY +---- + +[.programlisting] +.... +WAYLAND_DISPLAY=wayland-1 +DISPLAY=:0 +.... + +В этой выдаче присутствует дисплей Wayland, используемый по умолчанию, а также дисплей, заданный для сервера Xwayland. +Другим способом удостовериться в том, что `Xwayland` функционирует корректно, является установка и проверка работы небольшого пакета package:[x11/eyes]. +Если приложение `xeyes` запускается, и глаза следят за указателем мыши, то Xwayland функционирует корректно. +Если выдаётся сообщение об ошибке, подобное тому, что ниже, то что-то произошло при инициализации `Xwayland`, и может потребоваться переустановка: + +[.programlisting] +.... +Error: Cannot open display wayland-0 +.... + +[WARNING] +==== +Особенностью Wayland, имеющей отношение к информационной безопасности, является то, что без запуска X-сервера отсутствует дополнительный сервис, ожидающий сетевое подключение к нему. +После активации `Xwayland` это утверждение становится нерелевантным для конкретной системы. +==== + +В случае использования некоторых композитных менеджеров, таких как Wayfire, `Xwayland` может не запускаться корректно. +В таких случаях `env` будет выдавать следующую информацию о переменных окружения `DISPLAY`: + +[source,shell] +---- +% env | grep DISPLAY +---- + +[.programlisting] +.... +DISPLAY=wayland-1 +WAYLAND_DISPLAY=wayland-1 +.... + +Несмотря на то, что `Xwayfire` был установлен и настроен, приложения X11 не будут запускаться ввиду проблемы с дисплеем. +Для обхода этой ситуации удостоверьтесь, что уже имеется экземпляр `Xwayland`, использующий UNIX-сокет, следующими двумя методами. +Во-первых, проверьте выдачу команды `sockstat` и поищите X11-unix: + +[source,shell] +---- +% sockstat | grep x11 +---- + +Должно выдаваться что-то, подобное следующим данным: + +[.programlisting] +.... +trhodes Xwayland 2734 8 stream /tmp/.X11-unix/X0 +trhodes Xwayland 2734 9 stream /tmp/.X11-unix/X0 +trhodes Xwayland 2734 10 stream /tmp/.X11-unix/X0 +trhodes Xwayland 2734 27 stream /tmp/.X11-unix/X0_ +trhodes Xwayland 2734 28 stream /tmp/.X11-unix/X0 +.... + +Это предполагает существование сокета X11. +Затем это может быть верифицировано попыткой выполнения команды `Xwayland` в ручном режиме из эмулятора терминала, работающего под управлением композитного менеджера: + +[source,shell] +---- +% Xwayland +---- + +Если сокет X11 уже доступен, то пользователю должно быть выдано следующее сообщение об ошибке: + +[.programlisting] +.... +(EE) +Fatal server error: +(EE) Server is already active for display 0 + If this server is no longer running, remove /tmp/.X0-lock + and start again. +(EE) +.... + +Так как имеется активный X-дисплей, использующий нулевой номер, переменная окружения была просто некорректно задана, для исправления чего измените значение переменной окружения `DISPLAY` на `:0` и попробуйте запустить приложение ещё раз. +В следующем примере используется пакет package:mail/claws-mail[] в качестве приложения, которому требуется сервис `Xwayland`: + +[source,shell] +---- +export DISPLAY=:0 +---- + +После этого изменения приложение package:mail/claws-mail[] должно теперь использовать `Xwayland` и работать так, как ожидалось. + +[[wayland-remotedesktop]] +== Организация Удалённого Рабочего Стола при помощи VNC + +Ранее в этом документе отмечалось, что Wayland не предоставляет доступ в стиле X-сервера, как это делает Xorg. +Вместо этого пользователи свободны в выборе протокола доступа к удалённому рабочему столу, такого как RDP или VNC. +В Коллекцию Портов FreeBSD включён `wayvnc`, который будет поддерживать композитные менеджеры, основанные на wlroots, вроде тех, что описываются здесь. +Это приложение может быть установлено при помощи: + +[source,shell] +---- +# pkg install wayvnc +---- + +В отличие от некоторых других пакетов, `wayvnc` поставляется без конфигурационного файла. +К счастью, страница справки описывает важные параметры, и они могут быть перенесены в простой конфигурационный файл: + +[.programlisting] +.... +address=0.0.0.0 +enable_auth=true +username=username +password=password +private_key_file=/path/to/key.pem +certificate_file=/path/to/cert.pem +.... + +Потребуется сформировать файлы с ключами безопасности, а их использование настоятельно рекомендуется для обеспечения повышенного уровня безопасности соединений. +При запуске wayvnc будет искать конфигурационный файл в [.filename]#~/.config/wayvnc/config#. +Такое поведение может быть переопределено опцией `-C конфигурационный_файл` при запуске сервера. +Таким образом, для запуска сервера `wayvnc` выполните следующую команду: + +[source,shell] +---- +% wayvnc -C ~/.config/wayvnc/config +---- + +[NOTE] +==== +На момент написания данного текста скрипт rc.d для запуска `wayvnc` при инициализации системы отсутствовал. +Если такая функциональность нужна, то необходимо будет создать локальный файл запуска. +Можно считать это запросом на добавление такой возможности для майнтайнера данного порта. +==== + +[[wayland-ly]] +== Менеджер регистраций Wayland +Хотя существует несколько менеджеров регистраций, которые постепенно переходят на использование Wayland, одним из вариантов является менеджер package:x11/ly[] с текстовым пользовательским интерфейсом (TUI). +Обходясь минимальными настройками, `ly` будет запускать Sway, Wayfire и другие менеджеры, выдавая окно регистрации в процессе инициализации системы. +Для установки `ly` запустите следующую команду: + +[source,shell] +---- +# pkg install ly +---- + +Будет выдано несколько советов по настройке, при этом шагами по активации является добавление следующих строк в файл [.filename]#/etc/gettytab#: + +[programlisting] +.... +Ly:\ + :lo=/usr/local/bin/ly:\ + :al=root: +.... + +Затем откорректируйте строку ttyv1 в файле [.filename]#/etc/ttys# так, чтобы она соответствовала следующей: + +[programlisting] +.... +ttyv1 "/usr/libexec/getty Ly" xterm onifexists secure +.... + +После перезагрузки системы должно появиться приглашение ко входу в систему. +Для настройки специфичных параметров, таких как используемый язык, отредактируйте [.filename]#/usr/local/etc/ly/config.ini#. +Как минимум, этот файл должен указывать на выделенный tty, заданный ранее в [.filename]#/etc/ttys#. + +[NOTE] +==== +При указании ttyv0 в качестве терминала входа в систему может потребоваться нажать клавиши kbd:[alt] и kbd:[F1] для того, чтобы увидеть регистрационное окно. +==== + +Когда отобразится окно входа в систему, нажатие клавиш со стрелками влево и вправо будет изменять выбор оконного менеджера из списка различных поддерживаемых. + +[[wayland-utilities]] +== Полезные Инструменты + +Одной полезной утилитой Wayland, которую могут использовать любые композитные менеджеры, является waybar. +Хотя Wayfire поставляется с меню запуска, лёгкая в использовании и быстрая панель задач является хорошим инструментом для любого композитного менеджера или оболочки рабочего стола. +Панелью задач, совместимой с Wayland, быстрой и лёгкой в настройке, и является waybar. +Для установки пакета и утилиты, поддерживающей управление аудио, запустите следующую команду: + +[source,shell] +---- +# pkg install pavucontrol waybar +---- + +Для создания конфигурационного каталога и копирования конфигурационного файла по умолчанию выполните следующие команды: + +[source,shell] +---- +% mkdir ~/.config/waybar +% cp /usr/local/etc/xdg/waybar/config ~/.config/waybar +---- + +Утилита `lavalauncher` обеспечивает панель запуска для различных приложений. +С пакетом не поставляется пример конфигурационного файла, поэтому должны быть выполнены следующие действия: + +[source,shell] +---- +mkdir ~/.config/lavalauncher +---- + +Пример конфигурационного файла, который включает только Firefox и предполагает размещение на экране справа, приводится ниже: + +[.programlising] +.... +global-settings { + watch-config-file = true; +} + +bar { + output = eDP-1; + position = bottom; + background-colour = "#202020"; + + # Условие для конфигурационного набора, используемого по умолчанию. + condition-resolution = wider-than-high; + + config { + position = right; + } + + button { + image-path = /usr/local/lib/firefox/browser/chrome/icons/default/default48.png; + command[mouse-left] = /usr/local/bin/firefox; + } + button { + image-path = /usr/local/share/pixmaps/thunderbird.png; + command[mouse-left] = /usr/local/bin/thunderbird; +} +.... + diff --git a/documentation/content/ru/books/handbook/x11/_index.adoc b/documentation/content/ru/books/handbook/x11/_index.adoc index 75510a62ab..1040b226dd 100644 --- a/documentation/content/ru/books/handbook/x11/_index.adoc +++ b/documentation/content/ru/books/handbook/x11/_index.adoc @@ -5,7 +5,8 @@ prev: books/handbook/ports next: books/handbook/partii showBookMenu: true weight: 8 -path: "/books/handbook/" +params: + path: "/books/handbook/x11/" --- [[x11]] diff --git a/documentation/content/ru/books/porters-handbook/_index.adoc b/documentation/content/ru/books/porters-handbook/_index.adoc index 3cc828722b..5b066cb5b0 100644 --- a/documentation/content/ru/books/porters-handbook/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/_index.adoc @@ -8,7 +8,8 @@ next: books/porters-handbook/porting-why add_single_page_link: true showBookMenu: true weight: 0 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/" --- = Руководство FreeBSD по созданию портов diff --git a/documentation/content/ru/books/porters-handbook/keeping-up/_index.adoc b/documentation/content/ru/books/porters-handbook/keeping-up/_index.adoc index 62f822875d..af916f13c6 100644 --- a/documentation/content/ru/books/porters-handbook/keeping-up/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/keeping-up/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/porting-samplem next: books/porters-handbook/uses showBookMenu: true weight: 14 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/keeping-up/" --- [[keeping-up]] diff --git a/documentation/content/ru/books/porters-handbook/makefiles/_index.adoc b/documentation/content/ru/books/porters-handbook/makefiles/_index.adoc index d75341c2c4..f831873e56 100644 --- a/documentation/content/ru/books/porters-handbook/makefiles/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/makefiles/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/slow-porting next: books/porters-handbook/special showBookMenu: true weight: 5 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/makefiles/" --- [[makefiles]] diff --git a/documentation/content/ru/books/porters-handbook/new-port/_index.adoc b/documentation/content/ru/books/porters-handbook/new-port/_index.adoc index cceee1d790..fc44c12e37 100644 --- a/documentation/content/ru/books/porters-handbook/new-port/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/new-port/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/porting-why next: books/porters-handbook/quick-porting showBookMenu: true weight: 2 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/new-port/" --- [[own-port]] diff --git a/documentation/content/ru/books/porters-handbook/pkg-files/_index.adoc b/documentation/content/ru/books/porters-handbook/pkg-files/_index.adoc index a9aeadd3df..f68daf0dd9 100644 --- a/documentation/content/ru/books/porters-handbook/pkg-files/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/pkg-files/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/plist next: books/porters-handbook/testing showBookMenu: true weight: 8 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/pkg-files/" --- [[pkg-files]] diff --git a/documentation/content/ru/books/porters-handbook/plist/_index.adoc b/documentation/content/ru/books/porters-handbook/plist/_index.adoc index 4acc9600e3..3bd999822b 100644 --- a/documentation/content/ru/books/porters-handbook/plist/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/plist/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/special next: books/porters-handbook/pkg-files showBookMenu: true weight: 7 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/plist/" --- [[plist]] diff --git a/documentation/content/ru/books/porters-handbook/porting-dads/_index.adoc b/documentation/content/ru/books/porters-handbook/porting-dads/_index.adoc index 5978b3924e..bb5a06d72a 100644 --- a/documentation/content/ru/books/porters-handbook/porting-dads/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/porting-dads/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/security next: books/porters-handbook/porting-samplem showBookMenu: true weight: 12 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/porting-dads/" --- [[porting-dads]] diff --git a/documentation/content/ru/books/porters-handbook/porting-samplem/_index.adoc b/documentation/content/ru/books/porters-handbook/porting-samplem/_index.adoc index 6a7ac649c4..c5c89e657d 100644 --- a/documentation/content/ru/books/porters-handbook/porting-samplem/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/porting-samplem/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/porting-dads next: books/porters-handbook/keeping-up showBookMenu: true weight: 13 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/porting-samplem/" --- [[porting-samplem]] diff --git a/documentation/content/ru/books/porters-handbook/porting-why/_index.adoc b/documentation/content/ru/books/porters-handbook/porting-why/_index.adoc index 7a024c6800..9b04d921da 100644 --- a/documentation/content/ru/books/porters-handbook/porting-why/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/porting-why/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/ next: books/porters-handbook/new-port showBookMenu: true weight: 1 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/porting-why/" --- [[why-port]] diff --git a/documentation/content/ru/books/porters-handbook/quick-porting/_index.adoc b/documentation/content/ru/books/porters-handbook/quick-porting/_index.adoc index 788e93925f..ea91baf3f8 100644 --- a/documentation/content/ru/books/porters-handbook/quick-porting/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/quick-porting/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/new-port next: books/porters-handbook/slow-porting showBookMenu: true weight: 3 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/quick-porting/" --- [[quick-porting]] diff --git a/documentation/content/ru/books/porters-handbook/security/_index.adoc b/documentation/content/ru/books/porters-handbook/security/_index.adoc index 475cc1a3a3..6f75400cd0 100644 --- a/documentation/content/ru/books/porters-handbook/security/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/security/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/upgrading next: books/porters-handbook/porting-dads showBookMenu: true weight: 11 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/security/" --- [[security]] diff --git a/documentation/content/ru/books/porters-handbook/slow-porting/_index.adoc b/documentation/content/ru/books/porters-handbook/slow-porting/_index.adoc index 08419fa83e..59e22915d2 100644 --- a/documentation/content/ru/books/porters-handbook/slow-porting/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/slow-porting/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/quick-porting next: books/porters-handbook/makefiles showBookMenu: true weight: 4 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/slow-porting/" --- [[slow-porting]] diff --git a/documentation/content/ru/books/porters-handbook/special/_index.adoc b/documentation/content/ru/books/porters-handbook/special/_index.adoc index ae42403d78..9bfdfcc275 100644 --- a/documentation/content/ru/books/porters-handbook/special/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/special/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/makefiles next: books/porters-handbook/plist showBookMenu: true weight: 6 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/special/" --- [[special]] diff --git a/documentation/content/ru/books/porters-handbook/testing/_index.adoc b/documentation/content/ru/books/porters-handbook/testing/_index.adoc index 908d299ab0..57676e2f64 100644 --- a/documentation/content/ru/books/porters-handbook/testing/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/testing/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/pkg-files next: books/porters-handbook/upgrading showBookMenu: true weight: 9 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/testing/" --- [[testing]] diff --git a/documentation/content/ru/books/porters-handbook/upgrading/_index.adoc b/documentation/content/ru/books/porters-handbook/upgrading/_index.adoc index cf016a1117..863bd4ad3b 100644 --- a/documentation/content/ru/books/porters-handbook/upgrading/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/upgrading/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/testing next: books/porters-handbook/security showBookMenu: true weight: 10 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/upgrading/" --- [[port-upgrading]] diff --git a/documentation/content/ru/books/porters-handbook/uses/_index.adoc b/documentation/content/ru/books/porters-handbook/uses/_index.adoc index f12e37b321..3e441f697e 100644 --- a/documentation/content/ru/books/porters-handbook/uses/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/uses/_index.adoc @@ -4,7 +4,8 @@ prev: books/porters-handbook/keeping-up next: books/porters-handbook/versions showBookMenu: true weight: 15 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/uses/" --- [[uses]] diff --git a/documentation/content/ru/books/porters-handbook/versions/_index.adoc b/documentation/content/ru/books/porters-handbook/versions/_index.adoc index f15256b9f5..26bc8c466e 100644 --- a/documentation/content/ru/books/porters-handbook/versions/_index.adoc +++ b/documentation/content/ru/books/porters-handbook/versions/_index.adoc @@ -3,7 +3,8 @@ title: Глава 16. Значения __FreeBSD_version prev: books/porters-handbook/uses showBookMenu: true weight: 16 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/versions/" --- [[versions]] |