diff options
| author | Vladlen Popolitov <vladlen@FreeBSD.org> | 2025-10-20 08:11:35 +0000 |
|---|---|---|
| committer | Vladlen Popolitov <vladlen@FreeBSD.org> | 2025-10-20 08:11:35 +0000 |
| commit | 0ab84b3952512726d55fdffa6f13319bbae3a5db (patch) | |
| tree | bc7b17b24153cc9ca4a597c6687b36301e4c953f | |
| parent | a620acececae272de4c48b5bbb5075a9104dc314 (diff) | |
update translation of books/handbook to Russian
Reviewed by: mizhka
Differential Revision: https://reviews.freebsd.org/D52052
98 files changed, 146333 insertions, 24414 deletions
diff --git a/documentation/content/ru/books/handbook/_index.adoc b/documentation/content/ru/books/handbook/_index.adoc index 7fba62817b..9c818377bb 100644 --- a/documentation/content/ru/books/handbook/_index.adoc +++ b/documentation/content/ru/books/handbook/_index.adoc @@ -1,21 +1,22 @@ --- -title: Руководство FreeBSD +add_single_page_link: true authors: - - author: Проект Документации FreeBSD -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"] + - + author: 'The FreeBSD Documentation Project' +bookOrder: 1 +copyright: '1995-2025 The FreeBSD Documentation Project' +description: 'Постоянно развивающийся и всеобъемлющий ресурс для пользователей FreeBSD' next: books/handbook/preface -add_single_page_link: true +params: + path: /books/handbook/ showBookMenu: true +tags: ["FreeBSD Handbook", "Handbook"] +title: 'Руководство FreeBSD' +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"] weight: 0 -params: - path: "/books/handbook/" -bookOrder: 1 --- -= FreeBSD Handbook += Руководство FreeBSD :doctype: book :toc: macro :toclevels: 1 diff --git a/documentation/content/ru/books/handbook/_index.po b/documentation/content/ru/books/handbook/_index.po new file mode 100644 index 0000000000..7b7ee75796 --- /dev/null +++ b/documentation/content/ru/books/handbook/_index.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-05-26 08:57+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbook_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/_index.adoc:1 +#, no-wrap +msgid "A constantly evolving, comprehensive resource for FreeBSD users" +msgstr "Постоянно развивающийся и всеобъемлющий ресурс для пользователей FreeBSD" + +#. type: Title = +#: documentation/content/en/books/handbook/_index.adoc:1 +#: documentation/content/en/books/handbook/_index.adoc:18 +#, no-wrap +msgid "FreeBSD Handbook" +msgstr "Руководство FreeBSD" + +#. type: Plain text +#: documentation/content/en/books/handbook/_index.adoc:54 +msgid "'''" +msgstr "'''" diff --git a/documentation/content/ru/books/handbook/advanced-networking/_index.adoc b/documentation/content/ru/books/handbook/advanced-networking/_index.adoc index 4687e8358c..1ccb828049 100644 --- a/documentation/content/ru/books/handbook/advanced-networking/_index.adoc +++ b/documentation/content/ru/books/handbook/advanced-networking/_index.adoc @@ -1,12 +1,14 @@ --- -title: Глава 27. Сложные вопросы работы в сети -part: Часть IV. Сетевые коммуникации -prev: books/handbook/firewalls +description: 'Сложные вопросы работы в сети в FreeBSD: основы шлюзов и маршрутов, CARP, настройка нескольких VLAN в FreeBSD и так далее' next: books/handbook/partv -showBookMenu: true -weight: 32 params: - path: "/books/handbook/advanced-networking/" + path: /books/handbook/advanced-networking/ +part: 'IV. Сетевое взаимодействие' +prev: books/handbook/firewalls +showBookMenu: true +tags: ["Advanced Networking", "Handbook", "gateway", "routes", "wireless", "tethering", "bluetooth", "bridging", "CARP", "VLAN"] +title: 'Глава 34. Сложные вопросы работы в сети' +weight: 39 --- [[advanced-networking]] @@ -17,7 +19,7 @@ params: :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 27 +:sectnumoffset: 34 :partnums: :source-highlighter: rouge :experimental: @@ -48,204 +50,164 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] [[advanced-networking-synopsis]] -== Краткий обзор +== Обзор -Эта глава охватывает множество различных сетевых тематик повышенной сложности. +Эта глава охватывает ряд сложных тем, связанных с сетями. -После чтения этой главы вы будете знать: +Прочитав эту главу, вы будете знать: -* Основные понятия о маршрутизации и маршрутах. -* Как настроить IEEE 802.11 и Bluetooth(R). -* Как заставить FreeBSD работать в качестве сетевого моста. -* Как настроить загрузку по сети для бездисковой машины. -* Как настроить трансляцию сетевых адресов. -* Как соединить два компьютера посредством PLIP. -* Как настроить IPv6 на машине FreeBSD. -* Как настроить ATM. +* Основы шлюзов и маршрутов. +* Как настроить USB-тетеринг. +* Как настроить устройства IEEE(R) 802.11 и Bluetooth(R). +* Как сделать так, чтобы система FreeBSD работала как мост. +* Как настроить загрузку системы из сети с помощью PXE. +* Как включить и использовать возможности протокола Common Address Redundancy Protocol (CARP) в FreeBSD. +* Как настроить несколько VLAN в FreeBSD. +* Как настроить гарнитуру Bluetooth. -Перед чтением этой главы вы должны: +Прежде чем читать эту главу, вы должны: -* Понимать основы работы скриптов [.filename]#/etc/rc#. -* Свободно владеть основными сетевыми терминами. -* Знать как настраивать и устанавливать новое ядро FreeBSD (crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]). -* Знать как устанавливать дополнительное программное обеспечение сторонних разработчиков (crossref:ports[ports, Установка приложений. порты и пакеты]). +* Понимать основы скриптов [.filename]#/etc/rc#. +* Знать основные термины и понятия сетевых технологий. +* Понимать базовые настройки сети в FreeBSD (crossref:network[network,Сеть FreeBSD]). +* Знать, как настроить и установить новое ядро FreeBSD (crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]). +* Знать, как устанавливать дополнительное стороннее программное обеспечение (crossref:ports[ports,Установка приложений: Пакеты и Порты]). [[network-routing]] -== Сетевые шлюзы и маршруты +== Шлюзы и Маршруты + +_Маршрутизация_ — это механизм, позволяющий системе находить сетевой путь к другой системе. _Маршрут_ — это определенная пара адресов, представляющих "назначение" и "шлюз". Маршрут указывает, что при попытке достичь указанного назначения пакеты должны отправляться через указанный шлюз. Существует три типа назначений: отдельные хосты, подсети и "маршрут по умолчанию". "Маршрут по умолчанию" используется, если не подходит ни один другой маршрут. Также существует три типа шлюзов: отдельные хосты, интерфейсы (также называемые линками) и аппаратные (MAC) адреса Ethernet. Известные маршруты хранятся в таблице маршрутизации. -Чтобы некоторая машина могла найти в сети другую, должен иметься механизм описания того, как добраться от одной машине к другой. Такой механизм называется _маршрутизацией_. "Маршрут" задаётся парой адресов: "адресом назначения" (destination) и "сетевым шлюзом" (gateway). Эта пара указывает на то, что если Вы пытаетесь соединиться с _адресом назначения_, то вам нужно устанавливать связь через "сетевой шлюз". Существует три типа адресов назначения: отдельные хосты, подсети и "маршрут по умолчанию" (default). "Маршрут по умолчанию" (default route) используется, если не подходит ни один из других маршрутов. Мы поговорим немного подробнее о маршрутах по умолчанию позже. Также имеется и три типа сетевых шлюзов: отдельные хосты, интерфейсы (также называемые "подключениями" (links)) и аппаратные адреса Ethernet (MAC-адреса). +В этом разделе представлен обзор основ маршрутизации. Затем показано, как настроить систему FreeBSD в качестве маршрутизатора, и даны некоторые советы по устранению неполадок. -=== Пример +[[network-routing-default]] +=== Основы маршрутизации -Для иллюстрации различных аспектов маршрутизации мы будем использовать следующий пример использования команды `netstat`: +Для просмотра таблицы маршрутизации системы FreeBSD используйте man:netstat[1]: -[source,shell] +[source, shell] .... % netstat -r Routing tables +Internet: Destination Gateway Flags Refs Use Netif Expire - -default outside-gw UGSc 37 418 ppp0 -localhost localhost UH 0 181 lo0 -test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77 -10.20.30.255 link#1 UHLW 1 2421 -example.com link#1 UC 0 0 -host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 -host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => -host2.example.com link#1 UC 0 0 -224 link#1 UC 0 0 +default outside-gw UGS 37 418 em0 +localhost localhost UH 0 181 lo0 +test0 0:e0:b5:36:cf:4f UHLW 5 63288 re0 77 +10.20.30.255 link#1 UHLW 1 2421 +example.com link#1 UC 0 0 +host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 +host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => +host2.example.com link#1 UC 0 0 +224 link#1 UC 0 0 .... -В первых двух строках задаются маршрут по умолчанию (который будет описан в <<network-routing-default,следующем разделе>>) и маршрут на `localhost`. - -Интерфейс (колонка `Netif`), который указан в этой таблице маршрутов для использования с `localhost` и который назван [.filename]#lo0#, имеет также второе название, устройство loopback. Это значит сохранение всего трафика для указанного адреса назначения внутри, без посылки его по сети, так как он все равно будет направлен туда, где был создан. +Записи в этом примере следующие: -Следующими выделяющимися адресами являются адреса, начинающиеся с `0:e0:...`. Это аппаратные адреса Ethernet, или MAC-адреса. FreeBSD будет автоматически распознавать любой хост (в нашем примере это `test0`) в локальной сети Ethernet и добавит маршрут для этого хоста, указывающий непосредственно на интерфейс Ethernet, [.filename]#ed0#. С этим типом маршрута также связан параметр таймаута (колонка `Expire`), используемый в случае неудачной попытки услышать этот хост в течении некоторого периода времени. Если такое происходит, то маршрут до этого хоста будет автоматически удалён. Такие хосты поддерживаются при помощи механизма, известного как RIP (Routing Information Protocol), который вычисляет маршруты к хостам локальной сети при помощи определения кратчайшего расстояния. +default:: +Первый маршрут в этой таблице указывает маршрут по умолчанию (`default`). Когда локальной системе требуется установить соединение с удалённым узлом, она проверяет таблицу маршрутизации, чтобы определить, существует ли известный путь. Если удалённый узел соответствует записи в таблице, система проверяет, может ли она подключиться, используя интерфейс, указанный в этой записи. ++ +Если назначение не соответствует ни одной записи или если все известные пути недоступны, система использует запись для маршрута по умолчанию. Для хостов в локальной сети поле `Gateway` в маршруте по умолчанию указывает на систему, имеющую прямое подключение к Интернету. При чтении этой записи убедитесь, что столбец `Flags` указывает на то, что шлюз доступен (`UG`). ++ +Маршрут по умолчанию для машины, которая сама функционирует как шлюз во внешний мир, будет шлюзом провайдера интернет-услуг (ISP). -FreeBSD добавит также все маршруты к подсетям для локальных подсетей (`10.20.30.255` является широковещательным адресом для подсети `10.20.30`, а имя `example.com` является именем домена, связанным с этой подсетью). Назначение `link#1` соответствует первому адаптеру Ethernet в машине. Отметьте отсутствие дополнительного интерфейса для этих строк. +localhost:: +Второй маршрут — это маршрут `localhost`. Интерфейс, указанный в столбце `Netif` для `localhost`, — это [.filename]#lo0#, также известное как loopback-устройство. Это означает, что весь трафик для этого назначения должен быть внутренним, а не отправляться через сеть. -В обеих этих группах (хосты и подсети локальной сети) маршруты конфигурируются автоматически даемоном, который называется routed. Если он не запущен, то будут существовать только статически заданные (то есть введенные явно) маршруты. +MAC адрес:: +Адреса, начинающиеся с `0:e0:`, являются MAC-адресами. FreeBSD автоматически определит любые хосты, например `test0`, в локальной сети Ethernet и добавит маршрут для этого хоста через интерфейс Ethernet [.filename]#re0#. Такой маршрут имеет время жизни, указанное в столбце `Expire`, которое используется, если хост не отвечает в течение определённого времени. В этом случае маршрут к этому хосту будет автоматически удалён. Эти хосты определяются с помощью Протокола маршрутной информации (RIP — Routing Information Protocol), который вычисляет маршруты к локальным хостам на основе определения кратчайшего пути. -Строка `host1` относится к нашему хосту, который известен по адресу Ethernet. Так как мы являемся посылающим хостом, FreeBSD знает, что нужно использовать loopback-интерфейс ([.filename]#lo0#) вместо того, чтобы осуществлять посылку в интерфейс Ethernet. +subnet:: +FreeBSD автоматически добавит маршруты для локальной подсети. В этом примере `10.20.30.255` — это широковещательный адрес для подсети `10.20.30`, а `example.com` — доменное имя, связанное с этой подсетью. Обозначение `link#1` относится к первой Ethernet-карте в машине. ++ +Локальные хосты сети и локальные подсети автоматически получают маршруты через демон man:routed[8]. Если он не запущен, будут существовать только маршруты, статически определённые администратором. -Две строки `host2` являются примером того, что происходит при использовании алиасов в команде man:ifconfig[8] (обратитесь к разделу об Ethernet для объяснения того, почему мы это делаем). Символ `=>` после интерфейса [.filename]#lo0# указывает на то, что мы используем не просто интерфейс loopback (так как это адрес, обозначающий локальный хост), но к тому же это алиас. Такие маршруты появляются только на хосте, поддерживающем алиасы; для всех остальных хостов в локальной сети для таких маршрутов будут показаны просто строчки `link#1`. +host:: +Строка `host1` ссылается на хост по его Ethernet-адресу. Поскольку это отправляющий хост, FreeBSD использует loopback-интерфейс ([.filename]#lo0#) вместо Ethernet-интерфейса. ++ +Две строки `host2` представляют собой псевдонимы, созданные с помощью man:ifconfig[8]. Символ `=>` после интерфейса [.filename]#lo0# указывает, что помимо loopback-адреса был установлен псевдоним. Такие маршруты отображаются только на хосте, поддерживающем псевдоним, а все остальные хосты в локальной сети будут иметь строку `link#1` для таких маршрутов. -Последняя строчка (подсеть назначения `224`) имеет отношение к многоадресной посылке, которая будет рассмотрена в другом разделе. +224:: +Последняя строка (подсеть назначения `224`) относится к многоадресной рассылке. -И наконец, различные атрибуты каждого маршрута перечисляются в колонке `Flags`. Ниже приводится краткая таблица некоторых из этих флагов и их значений: +Различные атрибуты каждого маршрута можно увидеть в столбце `Flags`. crossref:advanced-networking[routeflags,Часто встречающиеся флаги таблицы маршрутизации] содержит сводку некоторых из этих флагов и их значений: -[.informaltable] -[cols="1,1", frame="none"] +[[routeflags]] +.Часто встречающиеся флаги таблицы маршрутизации +[cols="1,1", frame="none", options="header"] |=== +| Flag +| Назначение |U -|Up: Маршрут актуален. +|Маршрут активен (поднят). |H -|Host: Адресом назначения является отдельный хост. +|Целью маршрута является отдельный хост. |G -|Gateway: Посылать все для этого адреса назначения на указанную удаленную систему, которая будет сама определять дальнейший путь прохождения информации. +|Отправляйте всё для этого назначения на этот шлюз, который разберётся, куда это нужно отправить. |S -|Static: Маршрут был настроен вручную, а не автоматически сгенерирован системой. +|Этот маршрут был настроен статически. |C -|Clone: Новый маршрут сгенерирован на основе указанного для машин, к которым мы подключены. Такой тип маршрута обычно используется для локальных сетей. +|Клонирует новый маршрут на основе данного для подключения машин. Такой тип маршрута обычно используется для локальных сетей. |W -|WasCloned: Указывает на то, что маршрут был автоматически сконфигурирован на основе маршрута в локальной сети (Clone). +|Маршрут был автоматически настроен на основе локальной сети (клон) маршрута. |L -|Link: Маршрут включает ссылку на аппаратный адрес Ethernet. +|Маршрут включает ссылки на оборудование Ethernet (link). |=== -[[network-routing-default]] -=== Маршруты по умолчанию - -Когда локальной системе нужно установить соединение с удаленным хостом, она обращается к таблице маршрутов для того, чтобы определить, существует ли такой маршрут. Если удаленный хост попадает в подсеть, для которой известен способ ее достижения (маршруты типа Cloned), то система определяет возможность подключиться к ней по этому интерфейсу. - -Если все известные маршруты не подходят, у системы имеется последняя возможность: маршрут "default". Это маршрут с особым типом сетевого шлюза (обычно единственным, присутствующим в системе), и в поле флагов он всегда помечен как `c`. Для хостов в локальной сети этот сетевой шлюз указывает на машину, имеющую прямое подключение к внешнему миру (неважно, используется ли связь по протоколу PPP, канал DSL, кабельный модем, T1 или какой-то другой сетевой интерфейс). - -Если вы настраиваете маршрут по умолчанию на машине, которая сама является сетевым шлюзом во внешний мир, то маршрутом по умолчанию будет являться сетевой шлюз у Вашего провайдера Интернет (ISP). - -Давайте взглянем на примеры маршрутов по умолчанию. Вот типичная конфигурация: - -image::net-routing.png[] - -Хосты `Local1` и `Local2` находятся в нашей сети. `Local1` подключён к ISP через коммутируемое соединение по протоколу PPP. Этот компьютер с сервером PPP подключён посредством локальной сети к другому шлюзовому компьютеру через внешний интерфейс самого ISP к Интернет. - -Маршруты по умолчанию для каждой из ваших машин будут следующими: - -[.informaltable] -[cols="1,1,1", frame="none", options="header"] -|=== -| Хост -| Маршрут по умолчанию -| Интерфейс - -|Local2 -|Local1 -|Ethernet - -|Local1 -|T1-GW -|PPP -|=== - -Часто задаётся вопрос "Почему (или каким образом) в качестве шлюза по умолчанию для машины `Local1` мы указываем `T1-GW`, а не сервер провайдера, к которому подключаемся?". - -Запомните, что из-за использования PPP-интерфейсом адреса в сети провайдера Интернет с вашей стороны соединения, маршруты для всех других машин в локальной сети провайдера будут сгенерированы автоматически. Таким образом, вы уже будете знать, как достичь машины `T1-GW`, так что нет нужды в промежуточной точке при посылке трафика к серверу ISP. - -В локальных сетях адрес `X.X.X.1` часто используется в качестве адреса сетевого шлюза. Тогда (при использовании того же самого примера) если пространство адресов класса C вашей локальной сети было задано как `10.20.30`, а ваш провайдер использует `10.9.9`, то маршруты по умолчанию будут такие: - -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| Хост -| Маршрут по умолчанию - -|Local2 (10.20.30.2) -|Local1 (10.20.30.1) - -|Local1 (10.20.30.1, 10.9.9.30) -|T1-GW (10.9.9.1) -|=== - -Вы можете легко задать используемый по умолчанию маршрутизатор посредством файла [.filename]#/etc/rc.conf#. В нашем примере на машине `Local2` мы добавили такую строку в файл [.filename]#/etc/rc.conf#: +На системе FreeBSD маршрут по умолчанию может быть определён в [.filename]#/etc/rc.conf# путём указания IP-адреса шлюза по умолчанию: [.programlisting] .... defaultrouter="10.20.30.1" .... -Это также возможно сделать и непосредственно из командной строки при помощи команды man:route[8]: +Также можно вручную добавить маршрут с помощью `route`: -[source,shell] +[source, shell] .... # route add default 10.20.30.1 .... -Для получения дополнительной информации об управлении таблицами маршрутизации обратитесь к справочной странице по команде man:route[8]. - -=== Хосты с двойным подключением - -Есть еще один тип подключения, который мы должны рассмотреть, и это случай, когда хост находится в двух различных сетях. Технически, любая машина, работающая как сетевой шлюз (в примере выше использовалось PPP-соединение), считается хостом с двойным подключением. Однако этот термин реально используется для описания машины, находящейся в двух локальных сетях. - -В одном случае у машины имеется два адаптера Ethernet, каждый имеющий адрес в разделенных подсетях. Как альтернативу можно рассмотреть вариант с одним Ethernet-адаптером и использованием алиасов в команде man:ifconfig[8]. В первом случае используются два физически разделённые сети Ethernet, в последнем имеется один физический сегмент сети, но две логически разделённые подсети. - -В любом случае таблицы маршрутизации настраиваются так, что для каждой подсети эта машина определена как шлюз (входной маршрут) в другую подсеть. Такая конфигурация, при которой машина выступает в роли маршрутизатора между двумя подсетями, часто используется, если нужно реализовать систему безопасности на основе фильтрации пакетов или функций брандмауэра в одном или обоих направлениях. +Обратите внимание, что вручную добавленные маршруты не сохранятся после перезагрузки. Для получения дополнительной информации о ручном управлении таблицами сетевой маршрутизации обратитесь к man:route[8]. -Если вы хотите, чтобы эта машина действительно перемещала пакеты между двумя интерфейсами, то вам нужно указать FreeBSD на включение этой функции. Обратитесь к следующей главе, чтобы узнать, как это сделать. +[[network-static-routes]] +=== Настройка маршрутизатора со статическими маршрутами -[[network-dedicated-router]] -=== Построение маршрутизатора +Система FreeBSD может быть настроена как шлюз по умолчанию или маршрутизатор для сети, если она является двухдоменной системой. Двухдоменная система — это хост, который находится как минимум в двух разных сетях. Обычно каждая сеть подключена к отдельному сетевому интерфейсу, хотя IP-алиасинг может использоваться для привязки нескольких адресов, каждый в своей подсети, к одному физическому интерфейсу. -Сетевой маршрутизатор является обычной системой, которая пересылает пакеты с одного интерфейса на другой. Стандарты Интернет и хорошая инженерная практика не позволяют Проекту FreeBSD включать эту функцию по умолчанию во FreeBSD. Вы можете включить эту возможность, изменив значение следующей переменной в `YES` в файле man:rc.conf[5]: +Для того чтобы система могла пересылать пакеты между интерфейсами, FreeBSD должна быть настроена как маршрутизатор. Интернет-стандарты и лучшие инженерные практики не позволяют проекту FreeBSD включать эту функцию по умолчанию, но её можно настроить для запуска при загрузке, добавив следующую строку в [.filename]#/etc/rc.conf#: [.programlisting] .... -gateway_enable=YES # Set to YES if this host will be a gateway +gateway_enable="YES" # Set to YES if this host will be a gateway .... -Этот параметр изменит значение man:sysctl[8]-переменной `net.inet.ip.forwarding` в `1`. Если вам временно нужно выключить маршрутизацию, вы можете на время сбросить это значение в `0`. +Чтобы теперь включить маршрутизацию, установите переменную man:sysctl[8] `net.inet.ip.forwarding` в значение `1`. Для отключения маршрутизации сбросьте эту переменную в `0`. -Вашему новому маршрутизатору нужна информация о маршрутах для того, чтобы знать, куда пересылать трафик. Если ваша сеть достаточно проста, то вы можете использовать статические маршруты. С FreeBSD также поставляется стандартный даемон BSD для маршрутизации man:routed[8], который умеет работать с RIP (как версии 1, так и версии 2) и IRDP. Поддержка BGP v4, OSPF v2 и других сложных протоколов маршрутизации имеется в пакете package:net/zebra[]. Также существуют и коммерческие продукты, применяемые как более комплексное решение проблемы маршрутизации в сети, такие как GateD(R). +Таблица маршрутизации маршрутизатора требует дополнительных маршрутов, чтобы он знал, как достичь других сетей. Маршруты могут быть добавлены вручную с использованием статических маршрутов или могут быть автоматически созданы обучением с помощью протокола маршрутизации. Статические маршруты подходят для небольших сетей, и в этом разделе описывается, как добавить запись статической маршрутизации для небольшой сети. -=== Настройка статических маршрутов - -==== Ручная настройка +[NOTE] +==== +Для больших сетей статические маршруты быстро становятся неэффективными. FreeBSD включает стандартный демон маршрутизации man:routed[8], который поддерживает протоколы RIP версий 1 и 2, а также IRDP. Поддержка протоколов маршрутизации BGP и OSPF может быть установлена с помощью пакета package:net/quagga[] или порта. +==== -Предположим, что у нас есть следующая сеть: +Рассмотрим следующую сеть: image::static-routes.png[] -В этом сценарии, `RouterA` это наш компьютер с FreeBSD, который выступает в качестве маршрутизатора в сеть Интернет. Его маршрут по умолчанию настроен на `10.0.0.1`, что позволяет ему соединяться с внешним миром. Мы будем предполагать, что `RouterB` уже правильно настроен и знает все необходимые маршруты (на этом рисунке все просто; добавьте на `RouterB` маршрут по умолчанию, используя `192.168.1.1` в качестве шлюза). +В этом сценарии `RouterA` — это машина FreeBSD, которая выступает в качестве маршрутизатора для остальной части Интернета. У нее установлен маршрут по умолчанию на `10.0.0.1`, что позволяет ей соединяться с внешним миром. `RouterB` уже настроен на использование `192.168.1.1` в качестве шлюза по умолчанию. -Если мы посмотрим на таблицу маршрутизации `RouterA`, то увидим примерно следующее: +Прежде чем добавлять статические маршруты, таблица маршрутизации на `RouterA` выглядит следующим образом: -[source,shell] +[source, shell] .... % netstat -nr Routing tables @@ -254,40 +216,29 @@ Internet: Destination Gateway Flags Refs Use Netif Expire default 10.0.0.1 UGS 0 49378 xl0 127.0.0.1 127.0.0.1 UH 0 6 lo0 -10.0.0/24 link#1 UC 0 0 xl0 -192.168.1/24 link#2 UC 0 0 xl1 +10.0.0.0/24 link#1 UC 0 0 xl0 +192.168.1.0/24 link#2 UC 0 0 xl1 .... -С текущей таблицей маршрутизации `RouterA` не сможет достичь внутренней сети 2 (Internal Net 2). Один из способов обхода этой проблемы - добавление маршрута вручную. Следующая команда добавляет внутреннюю сеть 2 к таблице маршрутизации `RouterA` с `192.168.1.2` в качестве следующего узла: +С текущей таблицей маршрутизации `RouterA` не имеет маршрута к сети `192.168.2.0/24`. Следующая команда добавляет сеть `Internal Net 2` в таблицу маршрутизации ``RouterA``, используя `192.168.1.2` в качестве следующего прыжка: -[source,shell] +[source, shell] .... # route add -net 192.168.2.0/24 192.168.1.2 .... -Теперь `RouterA` сможет достичь любого хоста в сети `192.168.2.0/24`. - -==== Постоянная конфигурация - -Предыдущий пример прекрасно подходит для настройки статического маршрута в работающей системе. Однако, проблема заключается в том, что маршрутная информация не сохранится после перезагрузки FreeBSD. Способ сохранения добавленного маршрута заключается в добавлении его в файл [.filename]#/etc/rc.conf#: +Теперь `RouterA` может достигать любого узла в сети `192.168.2.0/24`. Однако информация о маршрутизации не сохранится после перезагрузки системы FreeBSD. Если требуется, чтобы статический маршрут был постоянным, добавьте его в [.filename]#/etc/rc.conf#: [.programlisting] .... -# Добавление статического маршрута в Internal Net 2 +# Add Internal Net 2 as a persistent static route static_routes="internalnet2" route_internalnet2="-net 192.168.2.0/24 192.168.1.2" .... -В переменной `static_routes` находятся строки, разделенные пробелами. Каждая строка означает имя маршрута. В примере выше в `static_routes` есть только одна строка, это _internalnet2_. Затем мы добавили переменную `route__internalnet2_`, куда помещены все параметры, которые необходимо передать команде man:route[8]. В примере выше была использована команда: - -[source,shell] -.... -# route add -net 192.168.2.0/24 192.168.1.2 -.... - -поэтому нам потребуется `"-net 192.168.2.0/24 192.168.1.2"`. +Переменная конфигурации `static_routes` представляет собой список строк, разделённых пробелом, где каждая строка ссылается на имя маршрута. Переменная `route_internalnet2` содержит статический маршрут для этого имени маршрута. -Как было сказано выше, мы можем добавить в `static_routes` более чем одну строку. Это позволит создать несколько статических маршрутов. В следующем примере показано добавление маршрутов для сетей `192.168.0.0/24` и `192.168.1.0/24` (этот маршрутизатор не показан на рисунке выше: +Использование более одной строки в `static_routes` создает несколько статических маршрутов. Ниже приведен пример добавления статических маршрутов для сетей `192.168.0.0/24` и `192.168.1.0/24`: [.programlisting] .... @@ -296,381 +247,555 @@ route_net1="-net 192.168.0.0/24 192.168.0.1" route_net2="-net 192.168.1.0/24 192.168.1.1" .... -=== Распространение маршрутов - -Мы уже говорили о том, как мы задаем наши маршруты во внешний мир, но не упоминали о том, как внешний мир находит нас. - -Мы уже знаем, что таблицы маршрутизации могут быть настроены так, что весь трафик для некоторого диапазона адресов (в нашем примере это подсеть класса C) может быть направлен заданному хосту в той сети, которая будет перенаправлять входящие пакеты дальше. - -При получении адресного пространства, выделенного Вашей сети, Ваш провайдер настроит свои таблицы маршрутизации так, что весь трафик для Вашей подсети будет пересылаться по PPP-соединению к Вашей сети. Но как серверы по всей стране узнают, что Ваш трафик нужно посылать Вашему ISP? - -Существует система (подобная распределению информации DNS), которая отслеживает все назначенные пространства адресов и определяет точку подключения к магистрали Интернет. "Магистралью" называют главные каналы, по которым идет трафик Интернет внутри страны и по всему миру. Каждая магистральная машина имеет копию основного набора таблиц, согласно которой трафик для конкретной сети направляется по конкретному магистральному каналу, и затем, передаваясь по цепочке провайдеров, он достигает вашей сети. +[[network-routing-troubleshooting]] +=== Устранение неполадок -Задачей вашего провайдера является объявить на магистрали о том, что он отвечает за подключение (и поэтому на него указывает маршрут) вашей сети. Этот процесс называется распространением маршрута. +Когда адресное пространство назначается сети, поставщик услуг настраивает свои таблицы маршрутизации так, чтобы весь трафик для сети отправлялся по каналу связи к сайту. Но как внешние сайты узнают, что их пакеты нужно отправлять к межсетевому экрану провайдера сети? -=== Устранение неполадок +Существует система, которая отслеживает все выделенные адресные пространства и определяет их точку подключения к магистрали Интернета или основным магистральным линиям, передающим интернет-трафик по стране и по всему миру. Каждая машина магистрали имеет копию главного набора таблиц, которые направляют трафик для определённой сети к конкретному магистральному оператору, а оттуда по цепочке поставщиков услуг, пока он не достигнет конкретной сети. -Иногда с распространением маршрута возникают проблемы, и некоторые сайты не могут к вам подключиться. Наверное, самой полезной командой для определения точки неверной работы маршрутизации является man:traceroute[8]. Она также полезна и когда вы сами не можете подключиться к удаленной машине (то есть команда man:ping[8] не срабатывает). +Это задача поставщика услуг — сообщить магистральным узлам, что они являются точкой подключения и, следовательно, путем внутрь для сайта. Это известно как распространение маршрутов. -Команда man:traceroute[8] запускается с именем удаленного хоста, с которым вы хотите установить соединение, в качестве параметра. Она показывает промежуточные сетевые шлюзы по пути следования, в конце концов достигая адрес назначения или прерывая свою работу из-за отсутствия соединения. +Иногда возникают проблемы с распространением маршрутов, и некоторые сайты не могут подключиться. Возможно, наиболее полезная команда для выяснения, где происходит разрыв маршрутизации, — это `traceroute`. Она полезна, когда `ping` не срабатывает. -За дополнительной информацией обратитесь к странице Справочника по man:traceroute[8]. +При использовании `traceroute` укажите адрес удаленного хоста для подключения. В выводе будут показаны шлюзы на пути попытки соединения, в конечном итоге достигая целевого хоста или прерываясь из-за отсутствия соединения. Для получения дополнительной информации обратитесь к man:traceroute[8]. -=== Маршрутизация многоадресного трафика +[[network-routing-multicast]] +=== Аспекты многоадресной рассылки (multicast) -FreeBSD изначально поддерживает как приложения, работающие с многоадресным трафиком, так и его маршрутизацию. Такие приложения не требуют особой настройки FreeBSD; обычно они работают сразу. Для маршрутизации многоадресного трафика требуется, чтобы поддержка этого была включена в ядро: +FreeBSD изначально поддерживает как приложения с многоадресной рассылкой, так и маршрутизацию многоадресной рассылки. Для работы приложений с многоадресной рассылкой на FreeBSD не требуется специальной настройки. Для поддержки маршрутизации многоадресной рассылки необходимо включить следующую опцию в собственном ядре: [.programlisting] .... options MROUTING .... -Кроме того, даемон многоадресной маршрутизации, man:mrouted[8], должен быть настроен посредством файла [.filename]#/etc/mrouted.conf# на использование туннелей и DVMRP. Дополнительную информацию о настройки многоадресного трафика можно найти на страницах справочной системы, посвящённых даемону man:mrouted[8]. - -[[network-wireless]] -== Беспроводные сети +Демон маршрутизации многоадресной рассылки, mrouted, может быть установлен с помощью пакета package:net/mrouted[] или порта. Этот демон реализует протокол маршрутизации многоадресной рассылки DVMRP и настраивается путём редактирования файла [.filename]#/usr/local/etc/mrouted.conf# для настройки туннелей и DVMRP. Установка mrouted также устанавливает map-mbone и mrinfo, а также связанные с ними man-страницы. Обратитесь к ним за примерами конфигурации. -=== Введение +[NOTE] +==== +DVMRP во многом заменён протоколом PIM во многих инсталляциях с использованием многоадресной рассылки. Дополнительную информацию можно найти в man:pim[4]. +==== -Было бы весьма полезным иметь возможность использовать компьютер без хлопот, связанных с постоянно подключенным сетевым кабелем. FreeBSD может использоваться как клиент беспроводной сети, и даже в качестве "точки доступа" к ней. +[[configtuning-virtual-hosts]] +== Виртуальные узлы -=== Режимы работы беспроводной связи +Распространённое использование FreeBSD — это виртуальный хостинг сайтов, когда один сервер представляется в сети как множество серверов. Это достигается путём назначения нескольких сетевых адресов одному интерфейсу. -Существуют два варианта конфигурации устройств беспроводного доступа 802.11: BSS и IBSS. +Указанный сетевой интерфейс имеет один "реальный" адрес и может иметь любое количество "псевдонимных" адресов. Эти псевдонимы обычно добавляются путём размещения записей alias в [.filename]#/etc/rc.conf#, как показано в этом примере: -==== Режим BSS +[source, shell] +.... +# sysrc ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx" +.... -Режим BSS является наиболее часто используемым. Режим BSS также называют режимом инфраструктуры. В этом режиме несколько точек доступа беспроводной сети подключаются к проводной сети передачи данных. Каждое беспроводная сеть имеет собственное имя. Это имя является идентификатором SSID сети. +Записи псевдонимов должны начинаться с `alias__0__`, используя последовательные числа, такие как `alias0`, `alias1` и так далее. Процесс настройки остановится при первом пропущенном числе. -Клиенты беспроводной сети подключаются к этим точкам доступа беспроводной сети. Стандарт IEEE 802.11 определяет протокол, используемый для связи в беспроводных сетях. Клиент сети беспроводного доступа может подключаться к некоторой сети, если задан её SSID. Клиент может также подключаться к любой сети, если SSID не задан. +Расчёт масок подсети для псевдонимов важен. Для заданного интерфейса должен быть один адрес, который корректно представляет маску подсети сети. Любые другие адреса, попадающие в эту сеть, должны иметь маску подсети, состоящую из всех ``1``, выраженную как `255.255.255.255` или `0xffffffff`. -==== Режим IBSS +Например, рассмотрим случай, когда интерфейс `fxp0` подключён к двум сетям: `10.1.1.0` с маской сети `255.255.255.0` и `202.0.75.16` с маской сети `255.255.255.240`. Система должна быть настроена так, чтобы находиться в диапазонах `10.1.1.1`–`10.1.1.5` и `202.0.75.17`–`202.0.75.20`. Только первый адрес в каждом диапазоне должен иметь реальную маску сети. Все остальные (`10.1.1.2`–`10.1.1.5` и `202.0.75.18`–`202.0.75.20`) должны быть настроены с маской `255.255.255.255`. -Режим IBSS, также называемый ad-hoc, предназначен для соединений точка-точка. На самом деле существуют два типа режима ad-hoc. Один из них является режимом IBSS, называемый также режимом ad-hoc или IEEE ad-hoc. Этот режим определён стандартами IEEE 802.11. Второй режим называется демонстрационным режимом ad-hoc, или Lucent ad-hoc (или, иногда неправильно, режимом ad-hoc). Это старый, существовавший до появления 802.11, режим ad-hoc, и он должен использоваться только для старых сетей. В дальнейшем мы не будем рассматривать ни один из режимов ad-hoc. +Для данного сценария правильно настраивают адаптер следующие записи в [.filename]#/etc/rc.conf# : -=== Режим инфраструктуры +[source, shell] +.... +# sysrc ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" +# sysrc ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" +# sysrc ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" +# sysrc ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" +# sysrc ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" +# sysrc ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" +# sysrc ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" +# sysrc ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" +# sysrc ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" +.... -==== Точки доступа +Более простой способ выразить это — использовать список диапазонов IP-адресов, разделённых пробелами. Первому адресу будет назначена указанная маска подсети, а дополнительным адресам — маска подсети `255.255.255.255`. -Точки доступа представляют собой беспроводные сетевые устройства, позволяющие одному или большему количеству клиентов беспроводной сети использовать эти устройства в качестве центрального сетевого концентратора. При использовании точки доступа все клиенты работают через неё. Зачастую используются несколько точек доступа для полного покрытия беспроводной сетью некоторой зоны, такой, как дом, офис или парк. +[source, shell] +.... +# sysrc ifconfig_fxp0_aliases="inet 10.1.1.1-5/24 inet 202.0.75.17-20/28" +.... -Точки доступа обычно имеют несколько подключений к сети: адаптер беспроводной связи и один или большее количество сетевых ethernet-адаптеров для подключения к остальной части сети. +[[network-advanced-wireless]] +== Расширенная аутентификация в беспроводной сети -Точки доступа могут быть либо приобретены уже настроенными, либо вы можете создать собственную при помощи FreeBSD и поддерживаемого адаптера беспроводной связи. Несколько производителей выпускают точки беспроводного доступа и адаптеры беспроводной связи с различными возможностями. +FreeBSD поддерживает различные способы подключения к беспроводной сети. В этом разделе описано, как выполнить расширенную аутентификацию в беспроводной сети. -==== Построение точки доступа с FreeBSD +Для подключения и базовой аутентификации в беспроводной сети раздел crossref:network[wireless-authentication,Подключение и аутентификация в беспроводной сети] в главе "Сеть" описывает, как это сделать. -===== Требования +[[network-wireless-wpa-eap-tls]] +=== WPA с EAP-TLS -Для того, чтобы создать беспроводную точку доступа на FreeBSD, вам нужно иметь совместимый адаптер беспроводной связи. На данный момент поддерживаются адаптеры только на основе набора микросхем Prism. Вам также потребуется поддерживаемый FreeBSD адаптер проводной сети (найти такой будет нетрудно, FreeBSD поддерживает множество различных устройств). В этом руководстве мы будем полагать, что вы будете строить сетевой мост (man:bridge[4]) для пропуска всего трафика между устройством беспроводной связи и сетью, подключенной к обычному Ethernet-адаптеру. +Второй способ использования WPA — с сервером аутентификации 802.1X. В этом случае WPA называется WPA Enterprise, чтобы отличать его от менее безопасного WPA Personal. Аутентификация в WPA Enterprise основана на расширяемом протоколе аутентификации (EAP). -Функциональность hostap, которая используется FreeBSD для организации точки доступа, работает лучше всего с некоторыми версиями микрокода. Адаптеры Prism 2 должны использовать микрокод версии 1.3.4 или более новый. Адаптеры Prism 2.5 и Prism 3 должны использовать микрокод версии 1.4.9. Более старые версии микрокода могут работать нормально, а могут и некорректно. В настоящее время единственным способом обновления адаптеров является использование утилит обновления для Windows(R), которые можно получить у производителя ваших адаптеров. +EAP не включает в себя метод шифрования. Вместо этого EAP встраивается в зашифрованный туннель. Существует множество методов аутентификации EAP, но наиболее распространены EAP-TLS, EAP-TTLS и EAP-PEAP. -===== Настройка +EAP с защитой на транспортном уровне (EAP-TLS) — это широко поддерживаемый протокол аутентификации беспроводных сетей, так как он был первым методом EAP, сертифицированным http://www.wi-fi.org/[Альянсом Wi-Fi]. Для работы EAP-TLS требуется три сертификата: сертификат центра сертификации (CA), установленный на всех машинах, сертификат сервера для сервера аутентификации и один клиентский сертификат для каждого беспроводного клиента. В этом методе EAP и сервер аутентификации, и беспроводной клиент аутентифицируют друг друга, предоставляя свои соответствующие сертификаты, а затем проверяют, что эти сертификаты были подписаны CA организации. -Первым делом убедитесь, что ваша система распознаёт адаптер беспроводной связи: +Как и ранее, настройка выполняется через [.filename]#/etc/wpa_supplicant.conf#: -[source,shell] +[.programlisting] .... -# ifconfig -a -wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7 - inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 - ether 00:09:2d:2d:c9:50 - media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps) - status: no carrier - ssid "" - stationname "FreeBSD Wireless node" - channel 10 authmode OPEN powersavemode OFF powersavesleep 100 - wepmode OFF weptxkey 1 +network={ + ssid="freebsdap" <.> + proto=RSN <.> + key_mgmt=WPA-EAP <.> + eap=TLS <.> + identity="loader" <.> + ca_cert="/etc/certs/cacert.pem" <.> + client_cert="/etc/certs/clientcert.pem" <.> + private_key="/etc/certs/clientkey.pem" <.> + private_key_passwd="freebsdmallclient" <.> +} .... -На данном этапе не беспокойтесь о деталях, просто убедитесь, что выдаётся нечто, указывающее на установленный адаптер беспроводной связи. Если при этом у вас есть проблемы с недоступностью интерфейса беспроводной связи, и вы используете PC Card, то обратитесь к страницам справочной системы, описывающим man:pccardc[8] и man:pccardd[8] для получения более полной информации. +<.> Это поле указывает имя сети (SSID). +<.> Этот пример использует протокол RSN IEEE(R) 802.11i, также известный как WPA2. +<.> Строка `key_mgmt` указывает на используемый протокол управления ключами. В данном примере это WPA с аутентификацией EAP. +<.> Это поле указывает метод EAP для подключения. +<.> Поле `identity` содержит строку идентификации для EAP. +<.> Поле `ca_cert` указывает путь к файлу сертификата CA. Этот файл необходим для проверки сертификата сервера. +<.> Строка `client_cert` указывает путь к файлу сертификата клиента. Этот сертификат уникален для каждого беспроводного клиента в сети. +<.> Поле `private_key` содержит путь к файлу закрытого ключа клиентского сертификата. +<.> Поле `private_key_passwd` содержит парольную фразу для закрытого ключа. -Теперь вам нужно загрузить модуль для подготовки той части FreeBSD, что отвечает за организацию сетевых мостов, для работы с точкой доступа. Для загрузки модуля man:bridge[4] просто выполните следующую команду: +Затем добавьте следующие строки в [.filename]#/etc/rc.conf#: -[source,shell] +[.programlisting] .... -# kldload bridge +wlans_ath0="wlan0" +ifconfig_wlan0="WPA DHCP" .... -При загрузке модуля никаких сообщений об ошибках быть не должно. Если это всё же произошло, вам может потребоваться вкомпилировать код для модуля man:bridge[4] в ядро. В этом вам должен помочь раздел этого Руководства об <<network-bridging,организации сетевых мостов>>. +Следующий шаг — поднять интерфейс: -Теперь, когда вы завершили с той частью, что касается организации сетевого моста, нам нужно указать ядру FreeBSD, какие интерфейсы должны объединяться в сетевом мосте. Это мы делаем при помощи man:sysctl[8]: - -[source,shell] +[source, shell] .... -# sysctl net.link.ether.bridge.enable=1 -# sysctl net.link.ether.bridge.config="wi0 xl0" -# sysctl net.inet.ip.forwarding=1 +# service netif start +Starting wpa_supplicant. +DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7 +DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15 +DHCPACK from 192.168.0.20 +bound to 192.168.0.254 -- renewal in 300 seconds. +wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + ether 00:11:95:d5:43:62 + inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 + media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g + status: associated + ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac + country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF + AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan + bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS + wme burst roaming MANUAL .... -В версиях FreeBSD, предшествующих 5.2, вместо указанных нужно использовать следующие параметры: +Также можно поднять интерфейс вручную с помощью man:wpa_supplicant[8] и man:ifconfig[8]. -[source,shell] -.... -# sysctl net.link.ether.bridge=1 -# sysctl net.link.ether.bridge_cfg="wi0,xl0" -# sysctl net.inet.ip.forwarding=1 -.... +[[network-wireless-wpa-eap-ttls]] +=== WPA с EAP-TTLS -Теперь необходимо настроить адаптер беспроводной сети. Следующая команда заставит адаптер работать в режиме точки доступа: +С EAP-TLS и сервер аутентификации, и клиент нуждаются в сертификате. С EAP-TTLS сертификат клиента необязателен. Этот метод аналогичен веб-серверу, который создает защищенный SSL-туннель, даже если у посетителей нет клиентских сертификатов. EAP-TTLS использует зашифрованный TLS-туннель для безопасной передачи данных аутентификации. -[source,shell] -.... -# ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP" +Требуемая конфигурация может быть добавлена в [.filename]#/etc/wpa_supplicant.conf#: +[.programlisting] +.... +network={ + ssid="freebsdap" + proto=RSN + key_mgmt=WPA-EAP + eap=TTLS <.> + identity="test" <.> + password="test" <.> + ca_cert="/etc/certs/cacert.pem" <.> + phase2="auth=MD5" <.> +} .... -Строчка man:ifconfig[8] активизирует интерфейс [.filename]#wi0#, конфигурирует его SSID как _my_net_, а имя станции как _FreeBSD AP_. `media DS/11Mbps` переводит адаптер в режим 11Mbps и нужен только для того, чтобы сработал параметр `mediaopt`. Параметр `mediaopt hostap` переводит интерфейс в режим точки доступа. Параметр `channel 11` задаёт использование канала 802.11b. Страница справки по команде man:wicontrol[8] перечисляет корректные значения каналов для ваших нужд. - -Теперь у вас должна получиться полнофункциональная работающая точка доступа. Настоятельно советуем прочесть страницы справочной по man:wicontrol[8], man:ifconfig[8], и man:wi[4] для получения дополнительной информации. - -Также полагаем, что вы прочтёте следующий раздел о шифровании. - -===== Информация о состоянии +<.> Это поле определяет метод EAP для подключения. +<.> Поле `identity` содержит строку идентификации для аутентификации EAP внутри зашифрованного TLS-туннеля. +<.> Поле `password` содержит парольную фразу для аутентификации EAP. +<.> Поле `ca_cert` указывает путь к файлу сертификата CA. Этот файл необходим для проверки сертификата сервера. +<.> Это поле определяет метод аутентификации, используемый в зашифрованном TLS-туннеле. В данном примере используется EAP с MD5-Challenge. Фаза "внутренней аутентификации" часто называется "phase2". -После того, как точка доступа сконфигурирована и начала свою работу, операторам может понадобиться видеть клиентов, связанных с этой точкой. В любой момент оператор может набрать: +Далее добавьте следующие строки в [.filename]#/etc/rc.conf#: -[source,shell] +[.programlisting] .... -# wicontrol -l -1 station: -00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15 +wlans_ath0="wlan0" +ifconfig_wlan0="WPA DHCP" .... -Это показывает, что имеется одна связанная станция с перечисленными характеристиками. Выдаваемое значение сигнала должно использоваться только как сравнительный индикатор его силы. Его перевод в dBm или другие единицы измерения различаются в разных версиях микрокода. +Следующий шаг — поднять интерфейс: -==== Клиенты +[source, shell] +.... +# service netif start +Starting wpa_supplicant. +DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7 +DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15 +DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21 +DHCPACK from 192.168.0.20 +bound to 192.168.0.254 -- renewal in 300 seconds. +wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + ether 00:11:95:d5:43:62 + inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 + media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g + status: associated + ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac + country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF + AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan + bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS + wme burst roaming MANUAL +.... -Клиент в беспроводной сети представляет собой систему, которая обращается к точке доступа или непосредственно к другому клиенту. +[[network-wireless-wpa-eap-peap]] +=== WPA с EAP-PEAP -Как правило, клиенты беспроводной сети имеют только один сетевой адаптер, а именно адаптер беспроводной сети. +[NOTE] +==== +PEAPv0/EAP-MSCHAPv2 является наиболее распространенным методом PEAP. В этой главе термин PEAP используется для обозначения данного метода. +==== -Существует несколько различных способов конфигурации клиента беспроводной сети. Они основаны на различных режимах работы в беспроводной сети, обычно BSS (режим инфраструктуры, который требует точки доступа) или IBSS (ad-hoc или режим одноранговой сети). В нашем примере мы будем использовать самый популярный их них, режим BSS, для связи с точкой доступа. +Защищенный EAP (PEAP) разработан как альтернатива EAP-TTLS и является наиболее используемым стандартом EAP после EAP-TLS. В сети с разными операционными системами PEAP должен быть наиболее поддерживаемым стандартом после EAP-TLS. -===== Требования +PEAP аналогичен EAP-TTLS, так как использует сертификат на стороне сервера для аутентификации клиентов путем создания зашифрованного TLS-туннеля между клиентом и сервером аутентификации, что защищает последующий обмен аутентификационной информацией. Аутентификация PEAP отличается от EAP-TTLS тем, что передает имя пользователя в открытом виде, и только пароль отправляется в зашифрованном TLS-туннеле. EAP-TTLS использует TLS-туннель как для имени пользователя, так и для пароля. -Существует только одно жёсткое условие для настройки FreeBSD в качестве клиента беспроводной сети. Вам нужен адаптер беспроводной связи, поддерживаемый FreeBSD. +Добавьте следующие строки в [.filename]#/etc/wpa_supplicant.conf# для настройки параметров, связанных с EAP-PEAP: -===== Конфигурация FreeBSD как клиента беспроводной сети +[.programlisting] +.... +network={ + ssid="freebsdap" + proto=RSN + key_mgmt=WPA-EAP + eap=PEAP <.> + identity="test" <.> + password="test" <.> + ca_cert="/etc/certs/cacert.pem" <.> + phase1="peaplabel=0" <.> + phase2="auth=MSCHAPV2" <.> +} +.... -Перед тем, как подключиться к беспроводной сети, вам нужно будет узнать о ней несколько вещей. В этом примере мы подключаемся к сети, которая называется _my_net_, и шифрование в ней отключено. +<.> Это поле определяет метод EAP для подключения. +<.> Поле `identity` содержит строку идентификации для аутентификации EAP внутри зашифрованного TLS-туннеля. +<.> Поле `password` содержит парольную фразу для аутентификации EAP. +<.> Поле `ca_cert` указывает путь к файлу сертификата CA. Этот файл необходим для проверки сертификата сервера. +<.> Это поле содержит параметры для первой фазы аутентификации, TLS-туннеля. В зависимости от используемого сервера аутентификации укажите конкретную метку для аутентификации. В большинстве случаев меткой будет "client EAP encryption", которая устанавливается с помощью `peaplabel=0`. Дополнительную информацию можно найти в man:wpa_supplicant.conf[5]. +<.> Это поле определяет протокол аутентификации, используемый в зашифрованном TLS-туннеле. В случае PEAP, это `auth=MSCHAPV2`. -[NOTE] -==== -В этом примере мы не используем шифрование, но это небезопасно. В следующем разделе вы узнаете, как её включить, почему это так важно, и почему некоторые технологии шифрования всё же не могут полностью обеспечить вашу информационную безопасность. -==== - -Удостоверьтесь, что ваш адаптер распознаётся во FreeBSD: +Добавьте следующее в [.filename]#/etc/rc.conf#: -[source,shell] +[.programlisting] .... -# ifconfig -a -wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7 - inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 - ether 00:09:2d:2d:c9:50 - media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps) - status: no carrier - ssid "" - stationname "FreeBSD Wireless node" - channel 10 authmode OPEN powersavemode OFF powersavesleep 100 - wepmode OFF weptxkey 1 +wlans_ath0="wlan0" +ifconfig_wlan0="WPA DHCP" .... -Теперь мы можем изменить настройки адаптера на те, что соответствуют нашей сети: +Затем поднимите интерфейс: -[source,shell] +[source, shell] .... -# ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net +# service netif start +Starting wpa_supplicant. +DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7 +DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15 +DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21 +DHCPACK from 192.168.0.20 +bound to 192.168.0.254 -- renewal in 300 seconds. +wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + ether 00:11:95:d5:43:62 + inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255 + media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g + status: associated + ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac + country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF + AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan + bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS + wme burst roaming MANUAL .... -Замените `192.168.0.20` и `255.255.255.0` на правильные IP-адрес и сетевую маску в вашей проводной сети. Запомните, что наша точка доступа выступает в роли моста для данных между беспроводной и проводной сетями, так что они будут доступны для других устройств, находящихся в сети, как будто они тоже находятся в проводной сети. +[[wireless-ad-hoc-mode]] +== Беспроводное соединение в режиме Ad-hoc -Как только вы это выполнили, то сможете получить ping от хостов в проводной сети, как будто вы подключены посредством обычных проводов. +Режим IBSS, также называемый ad-hoc режимом, предназначен для соединений точка-точка. Например, чтобы создать ad-hoc сеть между машинами `A` и `B`, выберите два IP-адреса и SSID. -Если вы столкнулись с проблемами при работе в беспроводной сети, удостоверьтесь, что вы ассоциированы (подключены) с точкой доступа: +На `A`: -[source,shell] +[source, shell] .... -# ifconfig wi0 +# ifconfig wlan0 create wlandev ath0 wlanmode adhoc +# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap +# ifconfig wlan0 + wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether 00:11:95:c3:0d:ac + inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 + media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc> + status: running + ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac + country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60 + protmode CTS wme burst .... -должна выдать некоторую информацию, и вы должны увидеть: +Параметр `adhoc` указывает, что интерфейс работает в режиме IBSS. + +`B` теперь должен иметь возможность обнаруживать `A`: -[source,shell] +[source, shell] .... -status: associated +# ifconfig wlan0 create wlandev ath0 wlanmode adhoc +# ifconfig wlan0 up scan + SSID/MESH ID BSSID CHAN RATE S:N INT CAPS + freebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WME .... -Если статус не будет соответствовать `associated`, это может значить, что вы оказались вне зоны досягаемости точки доступа, включили шифрование или, возможно, имеются проблемы с конфигурацией. +`I` в выводе подтверждает, что `A` находится в режиме ad-hoc. Теперь настройте `B` с другим IP-адресом: -==== Шифрование +[source, shell] +.... +# ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap +# ifconfig wlan0 + wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether 00:11:95:d5:43:62 + inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 + media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc> + status: running + ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac + country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60 + protmode CTS wme burst +.... -Шифрование в беспроводной сети имеет важное значение, потому что у вас нет больше возможности ограничить сеть хорошо защищённой областью. Данные вашей беспроводной сети вещаются по всей окрестности, так что любой заинтересовавшийся может их считать. Вот здесь используется шифрование. Шифруя данные, посылаемые в эфир, вы делаете их прямой перехват гораздо более сложным для всех любопытных. +Оба `A` и `B` теперь готовы обмениваться информацией. -Двумя наиболее широко применяемыми способами шифрования данных между вашим клиентом и точкой доступа являются WEP и man:ipsec[4]. +[[network-wireless-ap]] +=== Хост FreeBSD в роли точки доступа -===== WEP +FreeBSD может функционировать как точка доступа (AP), что устраняет необходимость покупки аппаратной точки доступа или организации ad-hoc сети. Это может быть особенно полезно, когда машина FreeBSD выступает в качестве шлюза к другой сети, например, к Интернету. -WEP является сокращением от Wired Equivalency Protocol (Протокол Соответствия Проводной сети). WEP является попыткой сделать беспроводные сети такими же надёжными и безопасными, как проводные. К сожалению, он был взломан и сравнительно легко поддаётся вскрытию. Это означает также, что он не тот протокол, на который следует опираться, когда речь идёт о шифровании критически важных данных. +[[network-wireless-ap-basic]] +==== Основные настройки -Он лучше, чем ничего, так что используйте следующую команду для включения WEP в вашей новой точке доступа FreeBSD: +Прежде чем настраивать машину FreeBSD в качестве точки доступа, ядро должно быть сконфигурировано с соответствующей поддержкой сети для беспроводной карты, а также используемых протоколов безопасности. Для получения дополнительной информации см. crossref:advanced-networking[network-wireless-ap-basic, Базовые настройки]. -[source,shell] -.... -# ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostap -.... +[NOTE] +==== +Драйвер-оболочка NDIS для драйверов Windows(R) в настоящее время не поддерживает работу в режиме точки доступа. Только родные беспроводные драйверы FreeBSD поддерживают режим AP. +==== -Вы можете включить WEP на клиенте следующей командой: +После загрузки поддержки беспроводной сети проверьте, поддерживает ли беспроводное устройство режим точки доступа на основе хоста, также известный как режим hostap: -[source,shell] +[source, shell] .... -# ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890 +# ifconfig wlan0 create wlandev ath0 +# ifconfig wlan0 list caps +drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG> +cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC> .... -Отметьте, что вы должны заменить _0x1234567890_ на более уникальный ключ. - -===== IPsec +Этот вывод показывает возможности карты. Слово `HOSTAP` подтверждает, что эта беспроводная карта может работать как точка доступа. Также перечислены различные поддерживаемые алгоритмы шифрования: WEP, TKIP и AES. Эта информация указывает, какие протоколы безопасности можно использовать на точке доступа. -man:ipsec[4] является гораздо более надёжным и мощным средством шифрования данных в сети. Этот метод определённо является предпочтительным для шифрования данных в беспроводной сети. Более детально ознакомиться с безопасностью и применением man:ipsec[4] вы можете в разделе об crossref:security[ipsec,IPsec] этого Руководства. +Беспроводное устройство можно перевести в режим hostap только во время создания сетевого псевдоустройства, поэтому ранее созданное устройство необходимо сначала удалить: -==== Утилиты +[source, shell] +.... +# ifconfig wlan0 destroy +.... -Имеется несколько утилит, которые можно использовать для настройки и отладки вашей беспроводной сети, и здесь мы попытаемся описать некоторые из них и что они могут делать. +затем повторно создать с правильной опцией перед установкой остальных параметров: -===== Пакет bsd-airtools +[source, shell] +.... +# ifconfig wlan0 create wlandev ath0 wlanmode hostap +# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1 +.... -Пакет bsd-airtools представляет собой полный набор инструментов, включая инструменты для проверки беспроводной сети на предмет взлома WEP-ключа, обнаружения точки доступа и тому подобное. +Используйте man:ifconfig[8] снова, чтобы посмотреть состояние интерфейса [.filename]#wlan0#: -Утилиты bsd-airtools можно установить из порта package:net-mgmt/bsd-airtools[]. Информацию об установке портов можно найти в Главе crossref:ports[ports, Установка приложений. порты и пакеты] этого Руководства. +[source, shell] +.... +# ifconfig wlan0 + wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether 00:11:95:c3:0d:ac + inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 + media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap> + status: running + ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac + country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60 + protmode CTS wme burst dtimperiod 1 -dfs +.... -Программа `dstumbler` является инструментом, предназначенным для обнаружения точки доступа и выдачи отношения уровня сигнала к шуму. Если у вас с трудом получается запустить точку доступа, `dstumbler` может помочь вам начать. +Параметр `hostap` указывает, что интерфейс работает в режиме точки доступа на основе хоста. -Для тестирования информационной безопасности вашей беспроводной сети, вы можете воспользоваться набором "dweputils" (`dwepcrack`, `dwepdump` и `dwepkeygen`), который может помочь понять, является ли WEP подходящим решением для обеспечения ваших потребностей в информационной безопасности. +Настройка интерфейса может быть выполнена автоматически при загрузке, если добавить следующие строки в [.filename]#/etc/rc.conf#: -===== Утилиты `wicontrol`, `ancontrol` и `raycontrol` +[.programlisting] +.... +wlans_ath0="wlan0" +create_args_wlan0="wlanmode hostap" +ifconfig_wlan0="inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1" +.... -Это инструменты, которые могут быть использованы для управления поведением адаптера беспроводной связи в сети. В примере выше мы выбирали man:wicontrol[8], так как нашим адаптером беспроводной сети был интерфейс [.filename]#wi0#. Если у вас установлено устройство беспроводного доступа от Cisco, этим интерфейсом будет [.filename]#an0#, и тогда вы будете использовать man:ancontrol[8]. +==== Точка доступа на основе хоста без аутентификации или шифрования -===== Команда `ifconfig` +Хотя не рекомендуется запускать точку доступа без какой-либо аутентификации или шифрования, это простой способ проверить, работает ли точка доступа. Такая конфигурация также важна для отладки проблем с клиентами. -Команда man:ifconfig[8] может использоваться для установки многих из тех параметров, что задаёт man:wicontrol[8], однако работа с некоторыми параметрами в ней отсутствует. Обратитесь к man:ifconfig[8] для выяснения параметров и опций командной строки. +После настройки точки доступа выполните сканирование с другого беспроводного устройства для её обнаружения: -==== Поддерживаемые адаптеры +[source, shell] +.... +# ifconfig wlan0 create wlandev ath0 +# ifconfig wlan0 up scan +SSID/MESH ID BSSID CHAN RATE S:N INT CAPS +freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WME +.... -===== Точки доступа +Клиентская машина обнаружила точку доступа и может быть ассоциирована с ней: -Единственными адаптерами, которые на данный момент поддерживаются в режиме BSS (как точка доступа), являются те устройства, что сделаны на основе набора микросхем Prism 2, 2.5 или 3). Полный список можно увидеть в man:wi[4]. +[source, shell] +.... +# ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap +# ifconfig wlan0 + wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether 00:11:95:d5:43:62 + inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 + media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g + status: associated + ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac + country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7 + scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 + roam:rate 5 protmode CTS wme burst +.... -===== Клиенты 802.11b +[[network-wireless-ap-wpa]] +==== WPA2 Точка доступа на основе хоста -Практически все адаптеры беспроводной связи 802.11b на данный момент во FreeBSD поддерживаются. Большинство адаптеров, построенных на основе Prism, Spectrum24, Hermes, Aironet и Raylink, будут работать в качестве адаптера беспроводной сети в режиме IBSS (ad-hoc, одноранговая сеть и BSS). +Этот раздел посвящён настройке точки доступа на хосте FreeBSD с использованием протокола безопасности WPA2. Подробнее о WPA и настройке беспроводных клиентов на основе WPA можно узнать в crossref:advanced-networking[network-wireless-wpa, WPA с EAP-TLS]. -===== Клиенты 802.11a и 802.11g +Демон man:hostapd[8] используется для обработки аутентификации клиентов и управления ключами на точке доступа с поддержкой WPA2. -Драйвер устройства man:ath[4] поддерживает 802.11a и 802.11g. Если ваша карта основана на чипсете Atheros, вы можете использовать этот драйвер. +В следующих операциях конфигурации выполняются на машине FreeBSD, выступающей в качестве точки доступа (AP). После того как точка доступа работает корректно, man:hostapd[8] можно автоматически запускать при загрузке, добавив эту строку в [.filename]#/etc/rc.conf#: -К сожалению, все еще много производителей, не предоставляющих схематику своих драйверов сообществу open source, поскольку эта информация считается торговым секретом. Следовательно, у разработчиков FreeBSD и других операционных систем остается два варианта: разработать драйверы долгим и сложным методом обратного инжиниринга, или использовать существующие драйверы для платформ Microsoft(R) Windows(R). Большинство разработчиков FreeBSD выбрали второй способ. +[.programlisting] +.... +hostapd_enable="YES" +.... -Благодаря усилиям Билла Пола (wpaul), начиная с FreeBSD 5.3-RELEASE существует "прозрачная" поддержка Network Driver Interface Specification (NDIS). FreeBSD NDISulator (известный также как Project Evil) преобразует бинарный драйвер Windows(R) так, что он работает так же как и в Windows(R). Эта возможность всё ещё относительно нова, но в большинстве тестов она работает адекватно. +Прежде чем пытаться настроить man:hostapd[8], сначала настройте основные параметры, описанные в crossref:advanced-networking[network-wireless-ap-basic, Основные настройки]. -Для использования NDISulator потребуются три вещи: +===== WPA2-PSK -. Исходные тексты ядра -. Бинарный драйвер Windows(R) XP (расширение [.filename]#.SYS#) -. Файл конфигурации бинарного драйвера Windows(R) XP (расширение [.filename]#.INF#) +WPA2-PSK предназначен для небольших сетей, где использование сервера аутентификации невозможно или нежелательно. -Вам может потребоваться компиляция драйвера оболочки мини порта man:ndis[4]. Под `root`: +Конфигурация выполняется в [.filename]#/etc/hostapd.conf#: -[source,shell] +[.programlisting] .... -# cd /usr/src/sys/modules/ndis -# make && make install +interface=wlan0 <.> +debug=1 <.> +ctrl_interface=/var/run/hostapd <.> +ctrl_interface_group=wheel <.> +ssid=freebsdap <.> +wpa=2 <.> +wpa_passphrase=freebsdmall <.> +wpa_key_mgmt=WPA-PSK <.> +wpa_pairwise=CCMP <.> .... -Определите местоположение файлов для вашей карты. Обычно их можно найти на входящем в комплект CD или на Web-сайте поставщика. В нашем примере используются файлы [.filename]#W32DRIVER.SYS# и [.filename]#W32DRIVER.INF#. +<.> Беспроводной интерфейс, используемый для точки доступа. +<.> Уровень детализации, используемый во время выполнения man:hostapd[8]. Значение `1` представляет минимальный уровень. +<.> Путь к каталогу, используемому man:hostapd[8] для хранения файлов доменных сокетов для взаимодействия с внешними программами, такими как man:hostapd_cli[8]. В этом примере используется значение по умолчанию. +<.> Группа, которой разрешён доступ к файлам управляющего интерфейса. +<.> Имя беспроводной сети, или SSID, которое будет отображаться при сканировании беспроводных сетей. +<.> Включает WPA и указывает, какой протокол аутентификации WPA будет использоваться. Значение `2` настраивает точку доступа на WPA2 и является рекомендуемым. Установите значение `1` только если требуется устаревший WPA. +<.> ASCII-пароль для аутентификации WPA. +<.> Протокол управления ключами для использования. В этом примере установлен WPA-PSK. +<.> Алгоритмы шифрования, принимаемые точкой доступа. В этом примере принимается только шифр CCMP (AES). CCMP является альтернативой TKIP и настоятельно рекомендуется к использованию, когда это возможно. TKIP следует разрешать только в случае наличия станций, не способных использовать CCMP. -Следующий шаг это компиляция бинарного драйвера в загружаемый модуль ядра. Чтобы сделать это, сначала зайдите в каталог модуля [.filename]#if_ndis# и с правами `root` скопируйте туда драйверы Windows(R): +Следующий шаг — запустить man:hostapd[8]: -[source,shell] +[source, shell] .... -# cd /usr/src/sys/modules/if_ndis -# cp /path/to/driver/W32DRIVER.SYS ./ -# cp /path/to/driver/W32DRIVER.INF ./ +# service hostapd forcestart .... -Теперь используйте утилиту `ndiscvt` для создания заголовка определения драйвера [.filename]#ndis_driver_data.h# перед сборкой модуля: - -[source,shell] +[source, shell] .... -# ndiscvt -i W32DRIVER.INF -s W32DRIVER.SYS -o ndis_driver_data.h +# ifconfig wlan0 +wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether 04:f0:21:16:8e:10 + inet6 fe80::6f0:21ff:fe16:8e10%wlan0 prefixlen 64 scopeid 0x9 + nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> + media: IEEE 802.11 Wireless Ethernet autoselect mode 11na <hostap> + status: running + ssid No5ignal channel 36 (5180 MHz 11a ht/40+) bssid 04:f0:21:16:8e:10 + country US ecm authmode WPA2/802.11i privacy MIXED deftxkey 2 + AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 17 mcastrate 6 mgmtrate 6 + scanvalid 60 ampdulimit 64k ampdudensity 8 shortgi wme burst + dtimperiod 1 -dfs + groups: wlan .... -Параметры `-i` и `-s` задают соответственно файл настройки и бинарный файл. Мы используем параметр `-o ndis_driver_data.h`, поскольку [.filename]#Makefile# при создании модуля будет обращаться именно к этому файлу. +После запуска точки доступа клиенты могут подключиться к ней. Подробнее см. в разделе crossref:advanced-networking[network-wireless-ap-basic, Основные настройки]. Список станций, подключённых к точке доступа, можно просмотреть с помощью команды `ifconfig _wlan0_ list sta`. -[NOTE] -==== -Некоторым драйверам Windows(R) для работы требуются дополнительные файлы. Вы можете включить их параметром `ndiscvt -f`. Обратитесь к странице справочной системы man:ndiscvt[8] за дополнительной информацией. -==== +[[network-usb-tethering]] +== Раздача интернета через USB -Наконец, соберите и установите модуль драйвера: +Многие мобильные телефоны предоставляют возможность совместного использования своего интернет-подключения через USB (часто называемую "тетеринг, раздача Интернета или режим модема"). Эта функция использует один из протоколов: RNDIS, CDC или проприетарный протокол Apple(R) iPhone(R)/iPad(R). -[source,shell] -.... -# make && make install -.... +* Устройства Android(TM) обычно используют драйвер man:urndis[4]. +* Устройства Apple(R) используют драйвер man:ipheth[4]. +* Старые устройства часто используют драйвер man:cdce[4]. -Для использования драйвера необходимо загрузить соответствующие модули: +Перед подключением устройства загрузите соответствующий драйвер в ядро: -[source,shell] +[source, shell] .... -# kldload ndis -# kldload if_ndis +# kldload if_urndis +# kldload if_cdce +# kldload if_ipheth .... -Первая команда загружает оболочку драйвера мини-порта NDIS, вторая загружает собственно сетевой интерфейс. Проверьте man:dmesg[8] на предмет ошибок загрузки. Если все прошло хорошо, вывод должен быть примерно таким: +После подключения устройства ``ue``_0_ будет доступен для использования как обычное сетевое устройство. Убедитесь, что на устройстве включена опция "USB-тетеринг". + +Чтобы сделать это изменение постоянным и загружать драйвер как модуль при загрузке, добавьте соответствующую строку из следующих в [.filename]#/boot/loader.conf#: -[source,shell] +[source, shell] .... -ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1 -ndis0: NDIS API version: 5.0 -ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5 -ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps -ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps +if_urndis_load="YES" +if_cdce_load="YES" +if_ipheth_load="YES" .... -Начиная с этого момента вы можете использовать устройство [.filename]#ndis0# как любое другое беспроводное устройство (например, [.filename]#wi0#); в этой ситуации применима информация, приведенная в начале этой главы. - [[network-bluetooth]] == Bluetooth -=== Введение +Bluetooth — это беспроводная технология для создания персональных сетей, работающих в нелицензируемом диапазоне 2.4 ГГц, с радиусом действия до 10 метров. Сети обычно формируются на лету из портативных устройств, таких как мобильные телефоны, карманные компьютеры и ноутбуки. В отличие от технологии Wi-Fi, Bluetooth предоставляет сервисы более высокого уровня, такие как FTP-подобные файловые серверы, передача файлов, передача голоса, эмуляция последовательной линии и многое другое. -Bluetooth является беспроводной технологией для создания персональных сетей на расстоянии не более 10 метров, работающей на частоте 2.4 ГГц, которая не подлежит лицензированию. Обычно такие сети формируются из портативных устройств, таких, как сотовые телефоны, КПК и лэптопы. В отличие от Wi-Fi, другой популярной беспроводной технологии, Bluetooth предоставляет более высокий уровень сервиса, например, файловые серверы типа FTP, передачу файлов, голоса, эмуляцию последовательного порта и другие. +Этот раздел описывает использование USB Bluetooth адаптера в системе FreeBSD. Затем рассматриваются различные протоколы и утилиты Bluetooth. -Стек протоколов Bluetooth во FreeBSD реализован на основе технологии Netgraph (обратитесь к man:netgraph[4]). Широкий спектр USB-устройств Bluetooth поддерживается драйвером man:ng_ubt[4]. Устройства Bluetooth на основе набора микросхем Broadcom BCM2033 поддерживается драйвером man:ng_bt3c[4]. Устройства Bluetooth, работающие через последовательные и UART-порты, поддерживаются драйверами man:sio[4], man:ng_h4[4] и man:hcseriald[8]. В этом разделе описывается использование Bluetooth-устройств, подключаемых через USB. +=== Загрузка поддержки Bluetooth -=== Подключение устройства +Стек Bluetooth в FreeBSD реализован с использованием фреймворка man:netgraph[4]. Широкий спектр Bluetooth USB-адаптеров поддерживается драйвером man:ng_ubt[4]. Устройства Bluetooth на базе Broadcom BCM2033 поддерживаются драйверами man:ubtbcmfw[4] и man:ng_ubt[4]. Карта Bluetooth PC Card 3CRWB60-A от 3Com поддерживается драйвером man:ng_bt3c[4]. Bluetooth-устройства на основе последовательного порта и UART поддерживаются драйверами man:sio[4], man:ng_h4[4] и утилитой man:hcseriald[8]. -По умолчанию драйверы устройств Bluetooth поставляются в виде модулей ядра. Перед подключением устройства вам необходимо подгрузить драйвер в ядро: +Прежде чем подключить устройство, определите, какой из вышеуказанных драйверов оно использует, затем загрузите драйвер. Например, если устройство использует драйвер man:ng_ubt[4]: -[source,shell] +[source, shell] .... # kldload ng_ubt .... -Если Bluetooth-устройство в момент запуска системы подключено, то загружайте модуль из файла [.filename]#/boot/loader.conf#: +Если устройство Bluetooth будет подключено к системе во время её загрузки, можно настроить систему на автоматическую загрузку модуля, добавив драйвер в [.filename]#/boot/loader.conf#: [.programlisting] .... ng_ubt_load="YES" .... -Подключите ваше USB-устройство. На консоли (или в журнале syslog) появится примерно такое сообщение: +После загрузки драйвера подключите USB-адаптер. Если загрузка драйвера прошла успешно, на консоли и в [.filename]#/var/log/messages# появится вывод, похожий на следующий: -[source,shell] +[source, shell] .... ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2 ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2 @@ -678,15 +803,11 @@ ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3, wMaxPacketSize=49, nframes=6, buffer size=294 .... -[NOTE] -==== -Стек протоколов Bluetooth запускается вручную во FreeBSD 6.0, и во FreeBSD 5.X, перед 5.5. Это делается автоматически через man:devd[8] во FreeBSD 5.5, 6.1 и в более новых версиях. - -Скопируйте файл [.filename]#/usr/shared/examples/netgraph/bluetooth/rc.bluetooth# в какое-нибудь подходящее место, например, в файл [.filename]#/etc/rc.bluetooth#. Этот скрипт используется для запуска и остановки работы Bluetooth-стека. Перед отключением устройства рекомендуется остановить его работы, хотя (обычно) это не фатально. При запуске стека вы получите сообщения, подобные следующим: +Для запуска и остановки стека Bluetooth используйте его стартовый скрипт. Рекомендуется остановить стек перед отключением устройства. Запуск стека Bluetooth может потребовать запуска man:hcsecd[8]. При запуске стека вывод должен быть похож на следующий: -[source,shell] +[source, shell] .... -# /etc/rc.bluetooth start ubt0 +# service bluetooth start ubt0 BD_ADDR: 00:02:72:00:d4:1a Features: 0xff 0xff 0xf 00 00 00 00 00 <3-Slot> <5-Slot> <Encryption> <Slot offset> @@ -700,17 +821,13 @@ Max. SCO packet size: 64 bytes Number of SCO packets: 8 .... -==== - -=== Host Controller Interface (HCI) +=== Поиск других устройств Bluetooth -Host Controller Interface (HCI) предоставляет интерфейс для управления контроллером передатчика и менеджером соединений, а также доступ к данным о состоянии оборудования и его управляющим регистрам. Этот интерфейс предоставляет унифицированный метод доступа к передающим возможностям Bluetooth. Уровень HCI на управляющей машине обменивается данными и командами с микрокодом HCI в оборудовании Bluetooth. Драйвер для Host Controller Transport Layer (то есть физической шины) предоставляет обоим слоям HCI возможность обмениваться данными друг с другом. +Интерфейс Host Controller Interface (HCI) предоставляет единый метод доступа к базовым возможностям Bluetooth. В FreeBSD узел netgraph HCI создается для каждого устройства Bluetooth. Подробнее см. man:ng_hci[4]. -Для одного Bluetooth-устройства создаётся один узел Netgraph типа _hci_. HCI-узел обычно подключается к узлу драйвера устройства Bluetooth (входящий поток) и к узлу L2CAP (исходящий поток). Все операции с HCI должны выполняться на узле HCI, но не на узле драйвера устройства. В качестве имени по умолчанию для узла HCI используется "devicehci". Дополнительные подробности можно найти на справочной странице man:ng_hci[4]. +Одной из наиболее распространённых задач является обнаружение Bluetooth-устройств в радиусе действия. Эта операция называется _ сканирование (inquiry)_. Запрос и другие операции, связанные с HCI, выполняются с помощью man:hccontrol[8]. В приведённом ниже примере показано, как выяснить, какие Bluetooth-устройства находятся в зоне действия. Список устройств должен отобразиться через несколько секунд. Обратите внимание, что удалённое устройство ответит на запрос только в том случае, если оно находится в режиме _ обнаруживаемое (discoverable)_. -Одной из самой часто выполняемой задач является обнаружение Bluetooth-устройств в радиусе RF-доступности. Эта операция называется _опросом_ (inquiry). Опрос и другие операции, связанные с HCI, выполняются при помощи утилиты man:hccontrol[8]. Пример ниже показывает, как найти доступные устройства Bluetooth. Список таких устройств должен быть получен в течение нескольких секунд. Заметьте, что удалённые устройства будут отвечать на опрос, если только они находятся в режиме _обнаруживаемости_ (discoverable). - -[source,shell] +[source, shell] .... % hccontrol -n ubt0hci inquiry Inquiry result, num_responses=1 @@ -724,48 +841,124 @@ Inquiry result #0 Inquiry complete. Status: No error [00] .... -`BD_ADDR` является уникальным адресом устройства Bluetooth, вроде MAC-адресов сетевых адаптеров. Этот адрес необходим для дальнейшей работы с устройством. Адресу BD_ADDR можно присвоить удобное для чтения имя. Файл [.filename]#/etc/bluetooth/hosts# содержит информацию об известных хостах Bluetooth. В следующем примере показано, как получить имя, назначенное удалённому устройству: +`BD_ADDR` — это уникальный адрес Bluetooth-устройства, аналогичный MAC-адресу сетевой карты. Этот адрес необходим для дальнейшего взаимодействия с устройством, и ему можно присвоить удобочитаемое имя. Информация об известных Bluetooth-хостах содержится в файле [.filename]#/etc/bluetooth/hosts#. В следующем примере показано, как получить удобочитаемое имя, присвоенное удалённому устройству: -[source,shell] +[source, shell] .... % hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4 BD_ADDR: 00:80:37:29:19:a4 Name: Pav's T39 .... -Если вы выполните опрос на другом Bluetooth-устройстве, но ваш компьютер будет опознан как "your.host.name (ubt0)". Имя, назначаемое локальному устройству, может быть в любой момент изменено. +Если выполняется запрос к удалённому устройству Bluetooth, компьютер будет обнаружен как "your.host.name (ubt0)". Имя, назначенное локальному устройству, можно изменить в любое время. + +Удаленным устройствам могут быть назначены псевдонимы в [.filename]#/etc/bluetooth/hosts#. Дополнительная информация о файле [.filename]#/etc/bluetooth/hosts# может быть найдена в man:bluetooth.hosts[5]. + +Система Bluetooth обеспечивает соединение точка-точка между двумя устройствами Bluetooth или соединение точка-многоточка, разделяемое между несколькими устройствами Bluetooth. В следующем примере показано, как создать соединение с удалённым устройством: + +[source, shell] +.... +% hccontrol -n ubt0hci create_connection BT_ADDR +.... + +`create_connection` принимает `BT_ADDR`, а также псевдонимы хостов в файле [.filename]#/etc/bluetooth/hosts#. -Система Bluetooth предоставляет услуги по соединениям типа точка-точка (при этом задействованы только два устройства Bluetooth) или точка-ко-многим-точкам. В последнем случае соединение используется совместно несколькими устройствам Bluetooth. В следующем примере показывается, как получить список активных для локального устройства соединений: +Следующий пример показывает, как получить список активных базовых соединений для локального устройства: -[source,shell] +[source, shell] .... % hccontrol -n ubt0hci read_connection_list Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State 00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN .... -Идентификатор соединения (_connection handle_) полезен, когда необходимо прекратить соединение. Заметьте, что обычно нет нужды делать это вручную. Стек будет автоматически разрывать неактивные соединения. +_Дескриптор соединения (connection handle)_ полезен, когда требуется разрыв базового соединения, хотя обычно это не нужно делать вручную. Стек автоматически разрывает неактивные базовые соединения. -[source,shell] +[source, shell] .... # hccontrol -n ubt0hci disconnect 41 Connection handle: 41 Reason: Connection terminated by local host [0x16] .... -Обратитесь к помощи посредством `hccontrol help` для получения полного списка доступных HCI-команд. Большинство команд HCI для выполнения не требуют прав администратора системы. +Введите `hccontrol help` для получения полного списка доступных команд HCI. Большинство команд HCI не требуют прав суперпользователя. + +=== Сопряжение устройств + +По умолчанию Bluetooth-связь не требует аутентификации, и любое устройство может взаимодействовать с любым другим устройством. Устройство Bluetooth, такое как сотовый телефон, может потребовать аутентификацию для предоставления определенной услуги. Аутентификация Bluetooth обычно выполняется с помощью _PIN-кода_ — строки ASCII длиной до 16 символов. Пользователь должен ввести один и тот же PIN-код на обоих устройствах. После ввода PIN-кода оба устройства сгенерируют _ключ связи_. Затем ключ связи может быть сохранен либо в самих устройствах, либо в постоянном хранилище. В следующий раз оба устройства будут использовать ранее сгенерированный ключ связи. Эта процедура называется _сопряжением (pairing)_. Обратите внимание, что если ключ связи будет утерян одним из устройств, спаривание необходимо повторить. + +Демон man:hcsecd[8] отвечает за обработку запросов аутентификации Bluetooth. Конфигурационный файл по умолчанию — [.filename]#/etc/bluetooth/hcsecd.conf#. Пример раздела для мобильного телефона с PIN-кодом `1234` приведён ниже: + +[.programlisting] +.... +device { + bdaddr 00:80:37:29:19:a4; + name "Pav's T39"; + key nokey; + pin "1234"; + } +.... + +Единственное ограничение PIN-кодов — их длина. Некоторые устройства, например Bluetooth-гарнитуры, могут иметь встроенный фиксированный PIN-код. Ключ `-d` заставляет man:hcsecd[8] оставаться на переднем плане, что упрощает отслеживание происходящего. Настройте удалённое устройство на приём сопряжения и инициируйте Bluetooth-соединение с ним. Удалённое устройство должно подтвердить принятие сопряжения и запросить PIN-код. Введите тот же PIN-код, который указан в [.filename]#hcsecd.conf#. Теперь компьютер и удалённое устройство сопряжены. Также сопряжение можно инициировать с удалённого устройства. + +Следующую строку можно добавить в [.filename]#/etc/rc.conf#, чтобы настроить автоматический запуск man:hcsecd[8] при загрузке системы: + +[.programlisting] +.... +hcsecd_enable="YES" +.... + +Вот пример вывода демона man:hcsecd[8]: + +[.programlisting] +.... +hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist +hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists +hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 +.... -=== Logical Link Control and Adaptation Protocol (L2CAP) +=== Доступ в сеть с профилями PPP -Протокол L2CAP (Logical Link Control and Adaptation Protocol) предоставляет услуги по работе с данными, как ориентированные на соединения, так и без ориентации на них, протоколам более высокого уровня с возможностями мультиплексирования и обеспечением операций по сегментации и обратной сборке. L2CAP позволяет протоколам более высокого уровня и приложениям передавать и получать пакеты данных L2CAP длиной до 64 Кбайт. +Профиль Dial-Up Networking (DUN) может использоваться для настройки сотового телефона в качестве беспроводного модема для подключения к серверу доступа в Интернет через коммутируемое соединение. Он также может применяться для настройки компьютера для приёма входящих вызовов передачи данных с сотового телефона. -L2CAP основан на концепции _каналов_. Каналом является логическое соединение поверх соединения по радиоканалу. Каждый канал привязан к некоторому протоколу по принципу многие-к-одному. Несколько каналов могут быть привязаны к одному и тому же протоколу, но канал не может быть привязан к нескольким протоколам. Каждый пакет L2CAP, получаемый каналом, перенаправляется к соответствующему протоколу более высокого уровня. Несколько каналов могут совместно использовать одно и то же радиосоединение. +Доступ к сети с профилем PPP может использоваться для предоставления доступа к LAN для одного устройства Bluetooth или нескольких устройств Bluetooth. Также он может обеспечить соединение между компьютерами с использованием PPP-сетей через эмуляцию последовательного кабеля. -Для одного Bluetooth-устройства создается один узел Netgraph типа _l2cap_. Узел L2CAP обычно подключается к узлу Bluetooth HCI (нижестоящий) и узлам Bluetooth-сокетов (вышестоящие). По умолчанию для узла L2CAP используется имя "devicel2cap". Для получения дополнительной информации обратитесь к справочной странице по man:ng_l2cap[4]. +В FreeBSD эти профили реализованы с помощью man:ppp[8] и обёртки man:rfcomm_pppd[8], которая преобразует Bluetooth-соединение в форму, пригодную для использования PPP. Перед использованием профиля необходимо создать новую метку PPP в [.filename]#/etc/ppp/ppp.conf#. Примеры можно найти в man:rfcomm_pppd[8]. -Полезной является программа man:l2ping[8], которая может использоваться для проверки связи с другими устройствами. Некоторые реализации Bluetooth могут не возвращать все данные, посылаемые им, так что `0 bytes` в следующем примере - это нормально. +В этом примере man:rfcomm_pppd[8] используется для открытия соединения с удалённым устройством с `BD_ADDR` `00:80:37:29:19:a4` на DUNRFCOMM канале: -[source,shell] +[source, shell] +.... +# rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup +.... + +Фактический номер канала будет получен с удаленного устройства с использованием протокола SDP. Можно указать канал RFCOMM вручную, и в этом случае man:rfcomm_pppd[8] не будет выполнять запрос SDP. Используйте man:sdpcontrol[8], чтобы узнать канал RFCOMM на удаленном устройстве. + +Для предоставления сетевого доступа через службу PPPLAN необходимо, чтобы работал man:sdpd[8], и была создана новая запись для клиентов LAN в файле [.filename]#/etc/ppp/ppp.conf#. Примеры можно найти в man:rfcomm_pppd[8]. Наконец, запустите сервер RFCOMMPPP на допустимом номере канала RFCOMM. Сервер RFCOMMPPP автоматически зарегистрирует службу Bluetooth LAN в локальном демоне SDP. В приведенном ниже примере показано, как запустить сервер RFCOMMPPP. + +[source, shell] +.... +# rfcomm_pppd -s -C 7 -l rfcomm-server +.... + +=== Протоколы Bluetooth + +Этот раздел предоставляет обзор различных протоколов Bluetooth, их функций и связанных с ними утилит. + +==== Logical Link Control and Adaptation Protocol (L2CAP) + +Протокол управления логическим соединением и адаптации (L2CAP) предоставляет сервисы передачи данных с установлением соединения и без него для протоколов верхнего уровня. L2CAP позволяет протоколам более высокого уровня и приложениям передавать и принимать пакеты данных L2CAP размером до 64 килобайт. + +L2CAP основан на концепции _каналов_. Канал — это логическое соединение поверх базового соединения, где каждый канал связан с одним протоколом по принципу "многие к одному". Несколько каналов могут быть связаны с одним и тем же протоколом, но канал не может быть связан с несколькими протоколами. Каждый полученный L2CAP-пакет на канале направляется соответствующему протоколу более высокого уровня. Несколько каналов могут совместно использовать одно и то же базовое соединение. + +В FreeBSD для каждого устройства Bluetooth создается узел netgraph типа L2CAP. Этот узел обычно соединен с нижестоящим узлом Bluetooth HCI и вышестоящими узлами Bluetooth-сокет. По умолчанию узел L2CAP имеет имя "devicel2cap". Для получения дополнительной информации обратитесь к man:ng_l2cap[4]. + +Полезной командой является man:l2ping[8], которую можно использовать для проверки связи с другими устройствами. Некоторые реализации Bluetooth могут не возвращать все отправленные им данные, поэтому `0 байт` в следующем примере является нормой. + +[source, shell] .... # l2ping -a 00:80:37:29:19:a4 0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0 @@ -774,9 +967,9 @@ L2CAP основан на концепции _каналов_. Каналом я 0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0 .... -Утилита man:l2control[8] используется для выполнения различных операций с узлами L2CAP. В этом примере показано, как получить список логических соединений (каналов) и перечень радиосоединений локального устройства: +Утилита man:l2control[8] используется для выполнения различных операций с узлами L2CAP. Этот пример показывает, как получить список логических соединений (каналов) и список базовых соединений для локального устройства: -[source,shell] +[source, shell] .... % l2control -a 00:02:72:00:d4:1a read_channel_list L2CAP channels: @@ -788,9 +981,9 @@ Remote BD_ADDR Handle Flags Pending State 00:07:e0:00:0b:ca 41 O 0 OPEN .... -Ещё одним диагностическим инструментом является man:btsockstat[1]. Она выполняет действия, подобные тем, что обычно выполняет man:netstat[1], но со структурами данных, связанных с работой в сети Bluetooth. В примере ниже описывается то же самое логическое соединение, что и с man:l2control[8] выше. +Еще один инструмент диагностики — man:btsockstat[1]. Он похож на man:netstat[1], но предназначен для структур данных, связанных с Bluetooth-сетями. В примере ниже показано то же логическое соединение, что и в man:l2control[8] выше. -[source,shell] +[source, shell] .... % btsockstat Active L2CAP sockets @@ -804,64 +997,27 @@ PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN .... -=== Протокол RFCOMM - -Протокол RFCOMM эмулирует последовательные порты поверх протокола L2CAP. Он основан на ETSI-стандарте TS 07.10. RFCOMM представляет собой простой транспортный протокол, с дополнительными возможностями по эмуляции 9 цепей последовательных портов RS-232 (EIATIA-232-E). Протокол RFCOMM поддерживает одновременно до 60 соединений (каналов RFCOMM) между двумя устройствами Bluetooth. +==== Радиочастотная связь (RFCOMM) -В рамках RFCOMM полный коммуникационный маршрут включает два приложения, работающие на разных устройствах (конечные коммуникационные точки) с коммуникационным сегментом между ними. RFCOMM предназначен для сокрытия приложений, использующих последовательные порты устройств, в которых они расположены. Коммуникационный сегмент по сути является Bluetooth-связью от одного устройства к другому (прямое соединение). +Протокол RFCOMM обеспечивает эмуляцию последовательных портов поверх протокола L2CAP. RFCOMM — это простой транспортный протокол с дополнительными возможностями для эмуляции 9 последовательных портов RS-232 (EIATIA-232-E). Он поддерживает до 60 одновременных соединений (каналов RFCOMM) между двумя устройствами Bluetooth. -RFCOMM имеет дело с соединением между устройствами в случае прямого соединения, или между устройством и модемом в сетевом случае. RFCOMM может поддерживать и другие конфигурации, такие, как модули, работающие через беспроводную технологию Bluetooth с одной стороны и предоставляющие проводное соединение с другой стороны. +Для целей RFCOMM полный путь передачи данных включает два приложения, работающие на конечных точках соединения, и сегмент передачи данных между ними. RFCOMM предназначен для приложений, использующих последовательные порты устройств, в которых они работают. Сегмент передачи данных представляет собой прямое Bluetooth-соединение между устройствами. -Во FreeBSD протокол RFCOMM реализован на уровне сокетов Bluetooth. +RFCOMM занимается только соединением между устройствами в случае прямого подключения или между устройством и модемом в случае сетевого подключения. RFCOMM может поддерживать другие конфигурации, такие как модули, которые обмениваются данными через технологию беспроводной связи Bluetooth с одной стороны и предоставляют проводной интерфейс с другой стороны. -=== Pairing of Devices +В FreeBSD RFCOMM реализован на уровне сокетов Bluetooth. -По умолчанию связь Bluetooth не аутентифицируется, поэтому любое устройство может общаться с любым другим. Устройство Bluetooth (например, сотовый телефон) может задать обязательность аутентификации для предоставления определённого сервиса (в частности, услугу доступа по коммутируемой линии). Bluetooth-аутентификация обычно выполняется через _PIN-коды_. PIN-код представляет из себя ASCII-строку длиной до 16 символов. Пользователь обязан ввести один и тот же PIN-код на обоих устройствах. Как только он введёт PIN-код, оба устройства сгенерируют _ключ связи_. После этого ключ может быть сохранён либо в самом устройстве, либо на постоянном носителе. В следующий раз оба устройства будут использовать ранее сгенерированный ключ соединения. Процедура, описанная выше, носит название _подгонки пары_ (pairing). Заметьте, что если ключ связи потерян любой из сторон, то подбор пары должен быть повторен. +==== Протокол обнаружения служб (SDP) -За обработку всех запросов на Bluetooth-аутентификацию отвечает даемон man:hcsecd[8]. По умолчанию файл конфигурации называется [.filename]#/etc/bluetooth/hcsecd.conf#. Пример раздела, содержащего информацию о сотовом телефоне с явно заданным PIN-кодом "1234" приведен ниже: +Протокол обнаружения служб (SDP) предоставляет клиентским приложениям возможность обнаруживать существование служб, предоставляемых серверными приложениями, а также атрибуты этих служб. Атрибуты службы включают тип или класс предоставляемой службы, а также информацию о механизме или протоколе, необходимую для использования службы. -[.programlisting] -.... -device { - bdaddr 00:80:37:29:19:a4; - name "Pav's T39"; - key nokey; - pin "1234"; - } -.... +SDP включает взаимодействие между сервером SDP и клиентом SDP. Сервер хранит список записей служб, которые описывают характеристики служб, связанных с сервером. Каждая запись службы содержит информацию об отдельной службе. Клиент может получить информацию из записи службы, хранящейся на сервере SDP, отправив запрос SDP. Если клиент или приложение, связанное с клиентом, решает использовать службу, он должен установить отдельное соединение с провайдером службы для её использования. SDP предоставляет механизм для обнаружения служб и их атрибутов, но не предоставляет механизма для использования этих служб. -Кроме длины, на PIN-коды не накладывается никаких ограничений. Некоторые устройства (например, Bluetooth-гарнитуры) могут иметь фиксированный встроенный PIN-код. Параметр `-d` позволяет запустить man:hcsecd[8] как нефоновый процесс, что облегчает просмотр происходящих событий. Задайте получение парного ключа на удалённом устройстве и инициируйте Bluetooth-соединение с этим устройством. Удалённое устройство должно подтвердить получение пары и запросить PIN-код. Введите тот же самый код, что находится в [.filename]#hcsecd.conf#. Теперь ваш ПК и удалённое устройство спарены. Альтернативным способом является инициация процесса создания пары на удалённом устройстве. +Обычно клиент SDP ищет услуги на основе определённых желаемых характеристик. Однако бывают случаи, когда необходимо обнаружить, какие типы услуг описаны в записях сервера SDP без какой-либо предварительной информации об этих услугах. Этот процесс поиска любых предлагаемых услуг называется _обзором (browsing)_. -Во FreeBSD 5.5, 6.1 и в более новых, следующая строка может быть добавлена к [.filename]#/etc/rc.conf#, чтобы hcsecd запускался автоматически во время старта системы: +Сервер Bluetooth SDP, man:sdpd[8], и клиент командной строки — man:sdpcontrol[8], включены в стандартную установку FreeBSD. В следующем примере показано, как выполнить запрос обзора SDP. -[.programlisting] -.... -hcsecd_enable="YES" -.... - -Ниже даётся пример выдачи протокола команды hcsecd: - -[.programlisting] -.... -hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 -hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist -hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 -hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 -hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists -hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 -.... - -=== Service Discovery Protocol (SDP) - -Протокол обнаружения сервисов SDP даёт возможность клиентским приложениям осуществлять поиск услуг, предоставляемых серверными приложениями, а также характеристик этих услуг. В перечень атрибутов сервиса включается тип класса предлагаемого сервиса и информация о механизме или протоколе, требуемом для использования сервиса. - -SDP подразумевает коммуникации между SDP-сервером и SDP-клиентом. Сервер поддерживает список сервисов, в котором описываются параметры сервисов, связанных с сервером. Каждая запись об услуге содержит информацию об одном сервисе. Клиент может запросить информацию об определённом сервисе, обслуживаемом SDP-сервером, выдавая SDP-запрос. Если клиент или приложение, связанное с клиентом, решат воспользоваться сервисом, то для его использования необходимо открыть отдельное соединение к устройству, предоставляющему сервис. SDP предоставляет механизм обнаружения услуг и их параметров, но не даёт механизма использования этих сервисов. - -Обычно SDP-клиент выполняет поиск услуг на основе некоторых желаемых характеристик услуг. Однако иногда возникает необходимость выяснить полный перечень типов услуг, предоставляемых SDP-сервером, не имея никакой информации об имеющихся сервисах. Такой процесс всех предлагаемых сервисов называется _обзором_ (browsing). - -Bluetooth SDP сервер man:sdpd[8] и клиент с интерфейсом командной строки man:sdpcontrol[8] включены в стандартную поставку FreeBSD. В следующем примере показано, как выполнять запрос на SDP-обзор. - -[source,shell] +[source, shell] .... % sdpcontrol -a 00:01:03:fc:6e:ec browse Record Handle: 00000000 @@ -887,81 +1043,45 @@ Bluetooth Profile Descriptor List: LAN Access Using PPP (0x1102) ver. 1.0 .... -... и так далее. Заметьте, что каждый сервис имеет перечень атрибутов (например, канал RFCOMM). В зависимости от сервиса вам может потребоваться где-то сохранить эти атрибуты. Некоторые реализации Bluetooth не поддерживают просмотр сервисов и могут возвращать пустой список. В этом случае возможен поиск конкретной услуги. В примере ниже показано, как выполнить поиск службы OBEX Object Push (OPUSH): +Обратите внимание, что каждая служба имеет список атрибутов, таких как канал RFCOMM. В зависимости от службы пользователю может потребоваться запомнить некоторые из атрибутов. Некоторые реализации Bluetooth не поддерживают обзор служб и могут возвращать пустой список. В этом случае можно выполнить поиск конкретной службы. В примере ниже показано, как выполнить поиск службы OBEX Object Push (OPUSH): -[source,shell] +[source, shell] .... % sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH .... -Во FreeBSD предоставление сервисов клиентам Bluetooth осуществляется сервером man:sdpd[8]. Во FreeBSD 5.5, 6.1 и в более новых, следующая строка может быть добавлена в файл [.filename]#/etc/rc.conf#: +Предоставление услуг на FreeBSD клиентам Bluetooth осуществляется с помощью сервера man:sdpd[8]. Следующую строку можно добавить в [.filename]#/etc/rc.conf#: [.programlisting] .... sdpd_enable="YES" .... -После этого sdpd даемон может быть запущен с помощью: - -[source,shell] -.... -# /etc/rc.d/sdpd start -.... - -Во FreeBSD 6.0, и во FreeBSD 5.X перед 5.5, sdpd не интегрирован в скрипты загрузки системы. Он должен запускаться автоматически командой: +Затем демон man:sdpd[8] можно запустить с помощью: -[source,shell] +[source, shell] .... -# sdpd +# service sdpd start .... -Приложение на локальном сервере, желающее предоставить сервис Bluetooth удаленным клиентам, регистрирует сервис через локального даемона SDP. Пример такого приложения - man:rfcomm_pppd[8]. После запуска оно регистрирует Bluetooth LAN сервис через локального даемона SDP. +Локальное серверное приложение, которое хочет предоставить сервис Bluetooth удалённым клиентам, зарегистрирует сервис в локальном демоне SDP. Примером такого приложения является man:rfcomm_pppd[8]. После запуска оно зарегистрирует сервис Bluetooth LAN в локальном демоне SDP. -Список сервисов, зарегистрированных через локальный SDP сервер, может быть получен путем выдачи запроса на просмотр SDP через локальный контрольный канал: +Список служб, зарегистрированных на локальном сервере SDP, можно получить, выполнив запрос обзора SDP через локальный управляющий канал: -[source,shell] +[source, shell] .... # sdpcontrol -l browse .... -=== Доступ к сети по коммутируемой линии связи (DUN) и по протоколу PPP (LAN) - -Модуль работы с коммутируемым доступом к сети (DUN - Dial-Up Networking) в большинстве случаев используется с модемами и сотовыми телефонами. Этот модуль покрывает следующие случаи: - -* сотовый телефон или модем используется вместе с компьютером в качестве беспроводного модема для подключения к серверу коммутируемого доступа в Интернет, или другой коммутируемой услуге; -* сотовый телефон или модем используется компьютером для приёма входящих соединений. - -Модуль доступа к сети по протоколу PPP (Network Access with PPP - LAN) может использоваться в следующих ситуациях: - -* доступ к ЛВС для одного Bluetooth-устройства; -* доступ к ЛВС для нескольких Bluetooth-устройств; -* связь между двумя ПК (при помощи протокола PPP поверх эмулируемого последовательного канала связи). - -Во FreeBSD оба случая реализуются при помощи сервисных программ man:ppp[8] и man:rfcomm_pppd[8] - это обработчик, преобразующий RFCOMM-соединения Bluetooth в нечто, с чем может работать PPP. Перед тем, как использовать любой модуль, в файле [.filename]#/etc/ppp/ppp.conf# должна быть создана новая PPP-метка. Примеры использования можно найти в справочной странице к man:rfcomm_pppd[8]. - -В следующем примере man:rfcomm_pppd[8] будет использоваться для открытия RFCOMM-соединения к удалённому устройству с BD_ADDR 00:80:37:29:19:a4 на DUN RFCOMM-канале. Реальный номер RFCOMM-канала будет получаться с удалённого устройства через SDP. Возможно указать RFCOMM-канал вручную, и в этом случае man:rfcomm_pppd[8] не будет выполнять SDP-запрос. Для нахождения RFCOMM-канала на удалённом устройстве используйте утилиту man:sdpcontrol[8]. - -[source,shell] -.... -# rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup -.... - -Для того, чтобы организовать сервис Network Access with PPP (LAN), необходимо запустить сервер man:sdpd[8]. В файле [.filename]#/etc/ppp/ppp.conf# должна быть создана новая запись для клиентов LAN. Примеры можно найти в справке по man:rfcomm_pppd[8]. Наконец, запустите RFCOMM PPP сервер на существующем номере канала RFCOMM. Сервер RFCOMM PPP автоматически зарегистрирует Bluetooth LAN сервис через локальный SDP даемон. В примере ниже показано, как запустить сервер RFCOMM PPP. - -[source,shell] -.... -# rfcomm_pppd -s -C 7 -l rfcomm-server -.... - -=== OBEX Object Push (OPUSH) Profile +==== Отправка объектов протоколом OBEX (Object Push — OPUSH) -OBEX является широко используемым протоколом для простой передачи файлов между мобильными устройствами. В основном он используется в коммуникациях через инфракрасный порт для передачи файлов между ноутбуками или КПК, а также для пересылки визитных карточек или календарных планов между сотовыми телефонами и другими устройствами с персональными информационными менеджерами. +Обмен объектами (OBEX) — это широко используемый протокол для простой передачи файлов между мобильными устройствами. Основное применение он находит в инфракрасной связи, где используется для передачи файлов общего назначения между ноутбуками или КПК, а также для отправки визитных карточек или записей календаря между сотовыми телефонами и другими устройствами с приложениями для управления персональной информацией (PIM). -Сервер и клиент OBEX реализованы в виде пакета стороннего разработчика obexapp, который доступен в виде порта package:comms/obexapp[]. +Сервер и клиент OBEX реализованы в obexapp, который можно установить с помощью package:comms/obexapp[] или порта. -Клиент OBEX используется для посылки или приёма объектов с сервера OBEX. Объектом, к примеру, может быть визитная карточка или указание. Клиент OBEX может получить номер RFCOMM-канала, указав вместо него имя сервиса. Поддерживаются следующие имена сервиса: IrMC, FTRN и OPUSH. Канал RFCOMM можно задать его номером. Ниже даётся пример сеанса OBEX, где с сотового телефона забирается объект с информацией об устройстве, а новый объект (визитная карточка) передаётся в каталог сотового телефона. +Клиент OBEX используется для отправки и/или получения объектов с сервера OBEX. Пример объекта — визитная карточка или встреча. Клиент OBEX может получить номер канала RFCOMM от удалённого устройства через SDP. Это можно сделать, указав имя службы вместо номера канала RFCOMM. Поддерживаемые имена служб: `IrMC`, `FTRN` и `OPUSH`. Также можно указать канал RFCOMM в виде числа. Ниже приведён пример сеанса OBEX, в котором объект информации об устройстве получается с мобильного телефона, а новый объект, визитная карточка, отправляется в директорию телефона. -[source,shell] +[source, shell] .... % obexapp -a 00:80:37:29:19:a4 -C IrMC obex> get telecom/devinfo.txt devinfo-t39.txt @@ -972,1367 +1092,964 @@ obex> di Success, response: OK, Success (0x20) .... -Для того, чтобы предоставить сервис OBEX Push, должен быть запущен сервер man:sdpd[8]. Должен быть создан корневой каталог, в котором будут сохраняться все поступающие объекты. По умолчанию корневым каталогом является [.filename]#/var/spool/obex#. Наконец, запустите OBEX сервер на существующем номере канала RFCOMM. OBEX сервер автоматически зарегистрирует сервис OBEX Object Push через локального даемона SDP. В примере ниже показано, как запустить OBEX-сервер. +Для предоставления службы OPUSH должен быть запущен man:sdpd[8], а также должна быть создана корневая папка, в которой будут храниться все входящие объекты. Путь к корневой папке по умолчанию — [.filename]#/var/spool/obex#. Наконец, запустите сервер OBEX на допустимом номере канала RFCOMM. Сервер OBEX автоматически зарегистрирует службу OPUSH в локальном демоне SDP. В приведённом ниже примере показано, как запустить сервер OBEX. -[source,shell] +[source, shell] .... # obexapp -s -C 10 .... -=== Профиль последовательного порта (SPP) +==== Профиль последовательного порта (Serial Port Profile — SPP) -Профиль последовательного порта (SPP - Serial Port Profile) позволяет Bluetooth-устройствам осуществлять эмуляцию последовательного порта RS232 (или подобного). Этот профиль покрывает случаи, касающиеся работы унаследованных приложений с Bluetooth в качестве замены кабельному соединению, при это используется абстракция виртуального последовательного порта. +Профиль последовательного порта (SPP) позволяет устройствам Bluetooth эмулировать последовательное соединение. Этот профиль позволяет устаревшим приложениям использовать Bluetooth в качестве замены кабеля через абстракцию виртуального последовательного порта. -Утилита man:rfcomm_sppd[1] реализует профиль последовательного порта. В качестве виртуального последовательного порта используется псевдо-терминал. В примере ниже показано, как подключиться к сервису Serial Port удалённого устройства. Заметьте, что вы не указываете RFCOMM-канал - man:rfcomm_sppd[1] может получить его с удалённого устройства через SDP. Если вы хотите переопределить это, укажите RFCOMM-канал явно в командной строке. +В FreeBSD man:rfcomm_sppd[1] реализует SPP, а псевдо-tty используется как абстракция виртуального последовательного порта. В примере ниже показано, как подключиться к сервису последовательного порта удалённого устройства. RFCOMM-канал не обязательно указывать, так как man:rfcomm_sppd[1] может получить его с удалённого устройства через SDP. Чтобы переопределить это, укажите RFCOMM-канал в командной строке. -[source,shell] +[source, shell] .... -# rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6 -rfcomm_sppd[94692]: Starting on /dev/ttyp6... +# rfcomm_sppd -a 00:07:E0:00:0B:CA -t +rfcomm_sppd[94692]: Starting on /dev/pts/6... +/dev/pts/6 .... -После подключения псевдо-терминал можно использовать как последовательный порт: +После подключения псевдотерминал можно использовать как последовательный порт: -[source,shell] +[source, shell] .... -# cu -l ttyp6 +# cu -l /dev/pts/6 .... -=== Решение проблем +Псевдотерминал выводится в stdout и может быть прочитан обёрточными скриптами: + +[.programlisting] +.... +PTS=`rfcomm_sppd -a 00:07:E0:00:0B:CA -t` +cu -l $PTS +.... -==== Удалённое устройство не подключается +=== Устранение неполадок -Некоторые старые Bluetooth-устройства не поддерживают переключение ролей. По умолчанию, когда FreeBSD подтверждает новое соединение, она пытается выполнить переключение роли и стать ведущим устройством. Устройства, которые это не поддерживают, не смогут подключиться. Заметьте, что переключение ролей выполняется при установлении нового соединения, поэтому невозможно выяснить, поддерживает ли удалённое устройство переключение ролей. На локальной машине имеется возможность отключить переключение ролей при помощи HCI-параметра: +По умолчанию, когда хост FreeBSD принимает новое соединение, он пытается выполнить смену роли и стать ведущим. Некоторые старые устройства Bluetooth, которые не поддерживают смену роли, не смогут подключиться. Поскольку смена роли выполняется при установке нового соединения, невозможно запросить у удалённого устройства, поддерживает ли оно смену роли. Однако существует опция HCI для отключения смены роли на локальной стороне: -[source,shell] +[source, shell] .... # hccontrol -n ubt0hci write_node_role_switch 0 .... -==== Что-то идёт не так, можно ли посмотреть, что в точности происходит? - -Да, можно. Воспользуйтесь пакетом стороннего разработчика, hcidump который доступен в виде порта package:comms/hcidump[]. Утилита hcidump похожа на man:tcpdump[1]. Она может быть использована для вывода на терминал содержимого Bluetooth-пакетов и сбрасывать пакеты Bluetooth в файл. +Для отображения пакетов Bluetooth используйте сторонний пакет hcidump, который можно установить с помощью package:comms/hcidump[] или порта. Эта утилита аналогична man:tcpdump[1] и может использоваться для вывода содержимого пакетов Bluetooth в терминал и для сохранения этих пакетов в файл. [[network-bridging]] -== Мосты - -=== Введение - -Иногда полезно разделить одну физическую сеть (такую, как сегмент Ethernet) на два отдельных сегмента сети без необходимости создания подсетей IP и использования маршрутизатора для соединения сегментов. Устройство, которое соединяет две сети на такой манер, называется "сетевым мостом" ("bridge"). Система FreeBSD с двумя сетевыми адаптерами может выступать в роли моста. - -Мост работает на основе изучения адресов уровня MAC (адресов Ethernet) устройств на каждом из своих сетевых интерфейсах. Он перенаправляет трафик между двумя сетями, только когда адреса отправителя и получателя находятся в разных сетях. - -По многим параметрам мост работает также, как коммутатор Ethernet с малым количеством портов. - -=== Ситуации, когда можно использовать мосты - -На сегодняшний день есть две ситуации, когда можно использовать мост. - -==== Большой трафик в сегменте +== Создание моста -Первая ситуация возникает, когда ваша физическая сеть перегружена трафиком, но по каким-то соображениям вы не хотите разделять сеть на подсети и соединять их с помощью маршрутизатора. +Иногда полезно разделить сеть, например, сегмент Ethernet, на части без необходимости создания IP-подсетей и использования маршрутизатора для соединения сегментов. Устройство, которое так соединяет две сети, называется "мостом". -Давайте рассмотрим в качестве примера газету, в которой редакторский и производственный отделы находятся в одной и той же подсети. Пользователи в редакторском отделе все используют сервер `A` для служб доступа к файлам, а пользователи производственного отдела используют сервер `B`. Для объединения всех пользователей используется сеть Ethernet, а высокая нагрузка на сеть замедляет работу. +Мост работает, изучая MAC-адреса устройств на каждом из своих сетевых интерфейсов. Он передает трафик между сетями только в том случае, если исходный и целевой MAC-адреса находятся в разных сетях. Во многих отношениях мост похож на Ethernet-коммутатор с очень малым количеством портов. Система FreeBSD с несколькими сетевыми интерфейсами может быть настроена как мост. -Если пользователи редакторского отдела могут быть собраны в одном сегменте сети, а пользователи производственного отдела в другом, то два сетевых сегмента можно объединить мостом. Только сетевой трафик, предназначенный для интерфейсов с "другой" стороны моста, будет посылаться в другую сеть, тем самым снижая уровень нагрузки на каждый сегмент сети. +Мост может быть полезен в следующих ситуациях: -==== Сетевой экран с возможностями фильтрации/ограничения пропускной способности трафика +Соединение сетей:: +Основная функция моста — объединить два или более сетевых сегмента. Существует множество причин использовать мост на основе хоста вместо сетевого оборудования, таких как ограничения по кабелям или межсетевой экран. Мост также может соединить беспроводной интерфейс, работающий в режиме hostap, с проводной сетью и выступать в качестве точки доступа. -Второй распространённой ситуацией является необходимость в обеспечении функций сетевого экрана без трансляции сетевых адресов (NAT). +Межсетевой экран с фильтрацией и управлением трафиком:: +Мост может использоваться, когда требуется функциональность межсетевого экрана без маршрутизации или преобразования сетевых адресов (NAT). ++ +Пример — небольшая компания, подключённая через DSL или ISDN к провайдеру. У неё есть тринадцать публичных IP-адресов от провайдера и десять компьютеров в сети. В этой ситуации использование маршрутизатора с межсетевым экраном затруднено из-за проблем с подсетями. Межсетевой экран на основе моста можно настроить без каких-либо проблем с IP-адресацией. -Для примера можно взять маленькую компанию, которая подключена к своему провайдеру по каналу DSL или ISDN. Для неё провайдер выделил 13 глобально доступных IP-адресов для имеющихся в сети 10 персональных компьютеров. В такой ситуации использование сетевого экрана на основе маршрутизатора затруднено из-за проблем с разделением на подсети. +Ответвитель сетевого трафика (Network Tap):: +Мост может объединить два сетевых сегмента для проверки всех Ethernet-кадров, проходящих между ними, с использованием man:bpf[4] и man:tcpdump[1] на интерфейсе моста, или путем отправки копии всех кадров на дополнительный интерфейс, известный как span-порт. -Брандмауэр на основе моста может быть настроен и включен между маршрутизаторами DSL/ISDN без каких-либо проблем с IP-адресацией. +VPN уровня 2:: +Две Ethernet-сети могут быть соединены через IP-канал путем моста между сетями через туннель EtherIP или решение на основе man:tap[4], такое как OpenVPN. -=== Настройка моста +Избыточность уровня 2:: +Сеть может быть соединена несколькими каналами и использовать протокол Spanning Tree Protocol (STP) для блокировки избыточных путей. -==== Выбор сетевого адаптера +В этом разделе описывается, как настроить систему FreeBSD в качестве моста с использованием man:if_bridge[4]. Также доступен драйвер моста на основе netgraph, который описан в man:ng_bridge[4]. -Для работы моста требуются по крайней мере два сетевых адаптера. К сожалению, не все сетевые адаптеры поддерживают функции моста. Прочтите страницу Справочника по man:bridge[4] для выяснения подробностей о поддерживаемых адаптерах. +[NOTE] +==== +Фильтрация пакетов может использоваться с любым пакетом межсетевого экрана, который интегрируется в фреймворк man:pfil[9]. Мост может использоваться как шейпер (ограничитель) трафика с man:altq[4] или man:dummynet[4]. +==== -Перед тем, как продолжить, сначала установите и протестируйте два сетевых адаптера. +=== Включение моста -==== Изменения в конфигурации ядра +В FreeBSD man:if_bridge[4] — это модуль ядра, который автоматически загружается с помощью man:ifconfig[8] при создании мостового интерфейса. Также можно включить поддержку моста в собственное ядро, добавив `device if_bridge` в конфигурационный файл собственного ядра. -Для включения поддержки функций сетевого моста в ядре, добавьте строчку +Мост создается с помощью клонирования интерфейса. Чтобы создать интерфейс моста: -[.programlisting] +[source, shell] .... -options BRIDGE +# ifconfig bridge create +bridge0 +# ifconfig bridge0 +bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether 96:3d:4b:f1:79:7a + id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 + maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 + root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0 .... -в файл конфигурации вашего ядра, и перестройте ядро. - -==== Поддержка функций брандмауэра - -Если вы планируете использовать мост в качестве брандмауэра, вам нужно также добавить опцию `IPFIREWALL`. Прочтите crossref:firewalls[firewalls, Межсетевые экраны], содержащую общую информацию о настройке моста в качестве брандмауэра. - -Если вам необходимо обеспечить прохождение не-IP пакетов (таких, как ARP) через мост, то имеется опция брандмауэра, которую можно задать. Это опция `IPFIREWALL_DEFAULT_TO_ACCEPT`. Заметьте, что при этом правило, используемое брандмауэром по умолчанию, меняется на разрешительное для всех пакетов. Перед тем, как задавать эту опцию, убедитесь, что вы понимаете работу вашего набора правил. - -==== Поддержка функций ограничения пропускной способности - -Если вы хотите использовать мост в качестве машины, ограничивающей пропускную способность, то добавьте в файл конфигурации ядра опцию `DUMMYNET`. Дополнительную информацию можно почерпнуть из страницы Справочника по man:dummynet[4]. +При создании интерфейса моста ему автоматически назначается случайно сгенерированный Ethernet-адрес. Параметры `maxaddr` и `timeout` определяют, сколько MAC-адресов будет хранить межсетевой экран в своей таблице переадресации и через сколько секунд каждая запись будет удалена после последнего обнаружения. Остальные параметры управляют работой STP. -=== Включение функций моста +Далее укажите, какие сетевые интерфейсы добавить в качестве членов моста. Чтобы мост мог передавать пакеты, все интерфейсы-участники и сам мост должны быть включены: -Добавьте строку - -[.programlisting] -.... -net.link.ether.bridge.enable=1 -.... - -в файл [.filename]#/etc/sysctl.conf# для включения функций моста во время работы системы, и строку: - -[.programlisting] +[source, shell] .... -net.link.ether.bridge.config=if1,if2 +# ifconfig bridge0 addm fxp0 addm fxp1 up +# ifconfig fxp0 up +# ifconfig fxp1 up .... -для включения функций моста для указанных интерфейсов (замените _if1_ и _if2_ на имена двух ваших сетевых интерфейсов). Если вы хотите, чтобы проходящие через мост пакеты фильтровались посредством man:ipfw[8], вы должны также добавить строчку: +Мост теперь может передавать Ethernet-кадры между [.filename]#fxp0# и [.filename]#fxp1#. Добавьте следующие строки в [.filename]#/etc/rc.conf#, чтобы мост создавался при загрузке: [.programlisting] .... -net.link.ether.bridge.ipfw=1 +cloned_interfaces="bridge0" +ifconfig_bridge0="addm fxp0 addm fxp1 up" +ifconfig_fxp0="up" +ifconfig_fxp1="up" .... -Для версий FreeBSD, предшествующих FreeBSD 5.2-RELEASE, нужно использовать следующие строки: +Если мостовому хосту нужен IP-адрес, установите его на интерфейсе моста, а не на интерфейсах-участниках. Адрес можно задать статически или через DHCP. В этом примере задаётся статический IP-адрес: -[.programlisting] +[source, shell] .... -net.link.ether.bridge=1 -net.link.ether.bridge_cfg=if1,if2 -net.link.ether.bridge_ipfw=1 +# ifconfig bridge0 inet 192.168.0.1/24 .... -=== Дополнительные замечания - -Если вы хотите осуществлять удалённый доступ на мост через man:ssh[1] из сети, то корректно назначить одному из сетевых адаптеров IP-адрес. Общепринято, что назначение адреса обоим сетевым адаптерам является не самой хорошей идеей. - -Если в вашей сети присутствует несколько мостов, не должно быть более одного маршрута между любыми двумя рабочими станциями. С технической точки зрения это означает отсутствие поддержки протокола spanning tree. +Также возможно назначить IPv6-адрес интерфейсу моста. Чтобы изменения стали постоянными, добавьте информацию об адресации в [.filename]#/etc/rc.conf#. -Сетевой мост может увеличить задержки в замерах командой man:ping[8], особенно для трафика между двумя разными сегментами. - -[[network-diskless]] -== Работа с бездисковыми станциями - -Машина с FreeBSD может загружаться по сети и работать без наличия локального диска, используя файловые системы, монтируемые с сервера NFS. Кроме стандартных конфигурационных файлов, не нужны никакие модификации в системе. Такую систему легко настроить, потому что все необходимые элементы уже готовы: - -* Имеется по крайней мере два возможных способа загрузки ядра по сети: - -** PXE: Система Intel(R) Preboot eXecution Environment является формой загрузочного ПЗУ, встроенного в некоторые сетевые адаптеры или материнские платы. Обратитесь к справочной странице по man:pxeboot[8] для получения более полной информации. -** Порт Etherboot (package:net/etherboot[]) генерирует код, который может применяться в ПЗУ для загрузки ядра по сети. Код может быть либо прошит в загрузочный PROM на сетевом адаптере, либо загружен с локальной дискеты (или винчестера), или с работающей системы MS-DOS(R). Поддерживаются многие сетевые адаптеры. - -* Примерный скрипт ([.filename]#/usr/shared/examples/diskless/clone_root#) облегчает создание и поддержку корневой файловой системы рабочей станции на сервере. Скрипт, скорее всего, потребует некоторых настроек, но он позволит вам быстро начать работу. -* Стандартные файлы начального запуска системы, располагающиеся в [.filename]#/etc#, распознают и поддерживают загрузку системы в бездисковом варианте. -* Подкачка, если она нужна, может выполняться через файл NFS либо на локальный диск. - -Существует много способов настройки бездисковой рабочей станции. При этом задействованы многие компоненты, и большинство из них могут быть настроены для удовлетворения ваших вкусов. Далее будет описаны варианты полной настройки системы, при этом упор будет делаться на простоту и совместимость с стандартной системой скриптов начальной загрузки FreeBSD. Описываемая система имеет такие характеристики: - -* Бездисковые рабочие станции совместно используют файловую систему [.filename]#/# в режиме только чтения, а также используют [.filename]#/usr# совместно тоже в режиме только чтения. -+ -Корневая файловая система является копией стандартной корневой системы FreeBSD (обычно сервера), с некоторыми настроечными файлами, измененными кем-то специально для бездисковых операций или, возможно, для рабочей станции, которой она предназначена. -+ -Части корневой файловой системы, которые должны быть доступны для записи, перекрываются файловыми системами man:md[4]. Любые изменения будут потеряны при перезагрузках системы. -* Ядро передается и загружается посредством Etherboot или PXE, и в некоторых ситуациях может быть использован любой из этих методов. - -[CAUTION] +[NOTE] ==== +Когда включена фильтрация пакетов, транзитные пакеты будут проходить через фильтр на входящем интерфейсе мостового интерфейса и исходящем на соответствующих интерфейсах. Любой из этапов может быть отключен. Если направление потока пакетов важно, лучше настроить межсетевой экран на интерфейсах-участниках, а не на самом мосте. -Как описано, эта система не защищена. Она должна располагаться в защищенной части сети, а другие хосты не должны на нее полагаться. +Мост имеет несколько настраиваемых параметров для передачи не-IP и IP пакетов, а также межсетевой экран второго уровня с man:ipfw[8]. Подробнее см. man:if_bridge[4]. ==== -Вся информация этого раздела была протестирована с релизом FreeBSD 5.2.1-RELEASE. - -=== Общая информация - -Настройка бездисковых рабочих станций относительно проста, но в то же время легко сделать ошибку. Иногда сложно диагностировать эти ошибки по нескольким причинам. Например: - -* Параметры компиляции могут по-разному проявлять себя во время работы. -* Сообщения об ошибках бывают загадочны или вовсе отсутствуют. - -В данной ситуации некоторые знания, касающиеся используемых внутренних механизмов, очень полезны при разрешении проблем, которые могут возникнуть. - -Для выполнения успешной загрузки необходимо произвести несколько операций: - -* Компьютеру необходимо получить начальные параметры, такие как собственный IP адрес, имя исполняемого файла, корневой каталог. Для этого используются протоколы DHCP или BOOTP. DHCP это совместимое расширение BOOTP, используются те же номера портов и основной формат пакетов. -+ -Возможна настройка системы для использования только BOOTP. Серверная программа man:bootpd[8] включена в основную систему FreeBSD. -+ -Тем не менее, у DHCP есть множество преимуществ над BOOTP (лучше файлы настройки, возможность использования PXE, плюс многие другие преимущества, не относящиеся непосредственно к бездисковым операциям), и мы в основном будем описывать настройку DHCP, с эквивалентными примерами для man:bootpd[8], когда это возможно. Пример конфигурации будет использовать пакет ISC DHCP (релиз 3.0.1.r12 был установлен на тестовом сервере). -* Компьютеру требуется загрузить в локальную память одну или несколько программ. Используются TFTP или NFS. Выбор между TFTP или NFS производится во время компилирования в нескольких местах. Часто встречающаяся ошибка это указание имен файлов для другого протокола: TFTP обычно загружает все файлы с одного каталога сервера, и принимает имена файлов относительно этого каталога. NFS нужны абсолютные пути к файлам. -* Необходимо инициализировать и выполнить возможные промежуточные программы загрузки и ядро. В этой области существует несколько важных вариаций: - -** PXE загрузит man:pxeboot[8], являющийся модифицированной версией загрузчика третьей стадии FreeBSD. man:loader[8] получит большинство параметров, необходимых для старта системы, и оставит их в окружении ядра до контроля передачи. В этом случае возможно использование ядра [.filename]#GENERIC#. -** Etherboot, непосредственно загрузит ядро, с меньшей подготовкой. Вам потребуется собрать ядро со специальными параметрами. -+ -PXE и Etherboot работают одинаково хорошо; тем не менее, поскольку ядро обычно позволяет man:loader[8] выполнить больше предварительной работы, метод PXE предпочтителен. -+ -Если ваш BIOS и сетевые карты поддерживают PXE, используйте его. -* Наконец, компьютеру требуется доступ к файловым системам. NFS используется во всех случаях. - -Обратитесь также к странице справочника man:diskless[8]. - -=== Инструкции по настройке +=== Включение протокола островного дерева (STP) -==== Конфигурация с использованием ISC DHCP +Для правильной работы Ethernet-сети между двумя устройствами может существовать только один активный путь. Протокол STP обнаруживает петли и переводит избыточные соединения в заблокированное состояние. Если одно из активных соединений выйдет из строя, STP вычисляет новое дерево и активирует один из заблокированных путей, чтобы восстановить подключение ко всем точкам сети. -Сервер ISC DHCP может обрабатывать как запросы BOOTP, так и запросы DHCP. +Протокол Rapid Spanning Tree (RSTP или 802.1w) обеспечивает обратную совместимость с устаревшим STP. RSTP предоставляет более быструю сходимость и обменивается информацией с соседними коммутаторами для быстрого перехода в режим передачи без создания петель. FreeBSD поддерживает RSTP и STP в качестве режимов работы, причем RSTP является режимом по умолчанию. -ISC DHCP 3.0 не включается в поставку системы. Сначала вам нужно будет установить порт package:net/isc-dhcp3-server[] или соответствующий пакет. +STP может быть включен на интерфейсах участников с помощью man:ifconfig[8]. Для моста с интерфейсами [.filename]#fxp0# и [.filename]#fxp1# включите STP командой: -После установки ISC DHCP ему для работы требуется конфигурационный файл (обычно называемый [.filename]#/usr/local/etc/dhcpd.conf#). Вот прокомментированный пример, где хост `margaux` использует Etherboot, а хост `corbieres` использует PXE: - -[.programlisting] +[source, shell] .... - -default-lease-time 600; -max-lease-time 7200; -authoritative; - -option domain-name "example.com"; -option domain-name-servers 192.168.4.1; -option routers 192.168.4.1; - -subnet 192.168.4.0 netmask 255.255.255.0 { - use-host-decl-names on; <.> - option subnet-mask 255.255.255.0; - option broadcast-address 192.168.4.255; - - host margaux { - hardware ethernet 01:23:45:67:89:ab; - fixed-address margaux.example.com; - next-server 192.168.4.4; <.> - filename "/data/misc/kernel.diskless"; <.> - option root-path "192.168.4.4:/data/misc/diskless"; <.> - } - host corbieres { - hardware ethernet 00:02:b3:27:62:df; - fixed-address corbieres.example.com; - next-server 192.168.4.4; - filename "pxeboot"; - option root-path "192.168.4.4:/data/misc/diskless"; - } -} +# ifconfig bridge0 stp fxp0 stp fxp1 +bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether d6:cf:d5:a0:94:6d + id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15 + maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 + root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0 + member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> + port 3 priority 128 path cost 200000 proto rstp + role designated state forwarding + member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> + port 4 priority 128 path cost 200000 proto rstp + role designated state forwarding .... -<.> Этот параметр указывает dhcpd посылать значения деклараций `host` как имя хоста для бездисковой машины. Альтернативным способом было бы добавление `option host-name _margaux_` внутри объявлений `host`. - -<.> Директива `next-server` определяет сервер TFTP или NFS, используемый для получения загрузчика или файла ядра (по умолчанию используется тот же самый хост, на котором расположен сервер DHCP). +Этот мост имеет идентификатор остовного дерева `00:01:02:4b:d4:50` и приоритет `32768`. Поскольку `root id` совпадает, это указывает на то, что данный мост является корневым для дерева. -<.> Директива `filename` определяет файл, который Etherboot или PXE будут загружать для следующего шага выполнения. Он должен быть указан в соответствии с используемым методом передачи. Etherboot может быть скомпилирован для использования NFS или TFTP. FreeBSD порт по умолчанию использует NFS. PXE использует TFTP, поэтому здесь применяются относительные пути файлов (это может зависеть от настроек TFTP сервера, но обычно довольно типично). Кроме того, PXE загружает [.filename]#pxeboot#, а не ядро. Существуют другие интересные возможности, такие как загрузка [.filename]#pxeboot# из каталога [.filename]#/boot# FreeBSD CD-ROM (поскольку man:pxeboot[8] может загружать [.filename]#GENERIC# ядро, это делает возможной загрузку с удаленного CD-ROM). +Еще один мост в сети также имеет включенный STP: -<.> Параметр `root-path` определяет путь к корневой файловой системе, в обычной нотации NFS. При использовании PXE, можно оставить IP хоста отключенным, если параметр ядра BOOTP не используется. Затем NFS сервер может использоваться так же, как и TFTP. - -==== Настройка с использованием BOOTP - -Далее описана эквивалентная конфигурация с использованием bootpd (для одного клиента). Она будет располагаться в [.filename]#/etc/bootptab#. - -Пожалуйста, отметьте, что Etherboot должен быть откомпилирован с нестандартной опцией `NO_DHCP_SUPPORT` для того, чтобы можно было использовать BOOTP, и что для работы PXE_необходим_DHCP. Единственным очевидным преимуществом bootpd является его наличие в поставке системы. - -[.programlisting] +[source, shell] .... - -.def100:\ - :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\ - :sm=255.255.255.0:\ - :ds=192.168.4.1:\ - :gw=192.168.4.1:\ - :hd="/tftpboot":\ - :bf="/kernel.diskless":\ - :rp="192.168.4.4:/data/misc/diskless": - -margaux:ha=0123456789ab:tc=.def100 +bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether 96:3d:4b:f1:79:7a + id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15 + maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 + root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4 + member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> + port 4 priority 128 path cost 200000 proto rstp + role root state forwarding + member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP> + port 5 priority 128 path cost 200000 proto rstp + role designated state forwarding .... -==== Подготовка программы загрузки при помощи Etherboot - -http://etherboot.sourceforge.net[Сайт Etherboot] содержит http://etherboot.sourceforge.net/doc/html/userman/t1.html[ подробную документацию], в основном предназначенную для систем Linux, но несомненно, она полезна. Далее будет просто кратко описано, как вы должны использовать Etherboot в системе FreeBSD. +Строка `root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4` показывает, что корневым мостом является `00:01:02:4b:d4:50` с стоимостью пути `400000` от данного моста. Путь к корневому мосту проходит через `port 4`, которым является [.filename]#fxp0#. -Сначала вы должны установить пакет или порт package:net/etherboot[]. +=== Параметры интерфейса моста -Вы можете изменить настройку Etherboot (например, для использования TFTP вместо NFS) путем редактирования файла [.filename]#Config# в каталоге исходных текстов Etherboot. +Несколько параметров `ifconfig` уникальны для мостовых интерфейсов. В этом разделе приведены некоторые общие варианты использования этих параметров. Полный список доступных параметров описан в man:ifconfig[8]. -В нашей ситуации мы будем использовать загрузочную дискету. Для других методов (PROM или программа MS-DOS(R)) пожалуйста, обратитесь к документации по Etherboot. +private:: +Приватный интерфейс не передает трафик на другие порты, также обозначенные как приватные. Трафик блокируется безусловно, поэтому Ethernet-кадры, включая ARP-пакеты, не будут передаваться. Если требуется выборочная блокировка трафика, следует использовать межсетевой экран. -Для создания загрузочной дискеты, вставьте дискету в дисковод на машине, где установлен Etherboot, затем перейдите в каталог [.filename]#src# в дереве Etherboot и наберите: - -[source,shell] +span:: +Порт зеркалирования (SPAN —Switch Port Analyzer) передает копию каждого Ethernet-фрейма, полученного мостом. Количество портов зеркалирования, настроенных на мосту, не ограничено, но если интерфейс назначен как порт зеркалирования, он не может использоваться в качестве обычного порта моста. Это наиболее полезно для пассивного мониторинга сети, подключенной к мосту, на другом хосте, подключенном к одному из портов зеркалирования моста. Например, чтобы отправить копию всех фреймов через интерфейс с именем [.filename]#fxp4#: ++ +[source, shell] .... -# gmake bin32/devicetype.fd0 - +# ifconfig bridge0 span fxp4 .... -_devicetype_ зависит от типа адаптера Ethernet на бездисковой рабочей станции. Обратитесь к файлу [.filename]#NIC# в том же самом каталоге для определения правильного значения для _devicetype_. - -==== Загрузка с PXE - -По умолчанию, man:pxeboot[8] загружает ядро через NFS. Он может быть скомпилирован для использования вместо него TFTP путем указания параметра `LOADER_TFTP_SUPPORT` в [.filename]#/etc/make.conf#. Смотрите комментарии в файле [.filename]#/usr/shared/examples/etc/make.conf#. - -Есть два не документированных параметра [.filename]#make.conf#, которые могут быть полезны для настройки бездискового компьютера с последовательной консолью: `BOOT_PXELDR_PROBE_KEYBOARD`, и `BOOT_PXELDR_ALWAYS_SERIAL`. - -Для использования PXE при загрузке компьютера вам обычно потребуется выбрать параметр `Boot from network` (загрузка по сети) в настройках BIOS, или нажать функциональную клавишу во время загрузки PC. - -==== Настройка серверов TFTP и NFS - -Если вы используете PXE или Etherboot, настроенные для использования TFTP, вам нужно включить tftpd на файловом сервере: - -[.procedure] -==== - -. Создайте каталог, файлы которого будет обслуживать tftpd, например, [.filename]#/tftpboot#. -. Добавьте в ваш [.filename]#/etc/inetd.conf# такую строчку: +sticky:: +Если интерфейс участника моста помечен как фиксированный (sticky), динамически изученные записи адресов обрабатываются как статические записи в кэше пересылки. Фиксированные записи никогда не удаляются из кэша и не заменяются, даже если адрес обнаружен на другом интерфейсе. Это даёт преимущество статических записей адресов без необходимости предварительного заполнения таблицы пересылки. Клиенты, изученные на определённом сегменте моста, не могут перемещаться на другой сегмент. + -[.programlisting] +Пример использования фиксированных адресов — это объединение моста с VLAN для изоляции сетей клиентов без потерь IP-адресного пространства. Предположим, что `CustomerA` находится в `vlan100`, `CustomerB` — в `vlan101`, а мост имеет адрес `192.168.0.1`: ++ +[source, shell] .... -tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot +# ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101 +# ifconfig bridge0 inet 192.168.0.1/24 .... + -[NOTE] -====== -Бывает, что некоторым версиям PXE требуется TCP-вариант TFTP. В таком случае добавьте вторую строчку, заменяющую `dgram udp` на `stream tcp`. -====== +В этом примере оба клиента видят `192.168.0.1` в качестве своего шлюза по умолчанию. Поскольку кэш моста устойчив, один узел не может подделать MAC-адрес другого клиента, чтобы перехватить его трафик. + -. Сообщите inetd о необходимости перечитать свой файл конфигурации. Файл [.filename]#/etc/rc.conf# должен содержать строку `inetd_enable="YES"` для корректного исполнения команды +Любое взаимодействие между VLAN может быть заблокировано с помощью межсетевого экрана или, как показано в этом примере, частных интерфейсов: + -[source,shell] +[source, shell] .... -# /etc/rc.d/inetd restart +# ifconfig bridge0 private vlan100 private vlan101 .... -==== - -Вы можете поместить каталог [.filename]#tftpboot# в любом месте на сервере. Проверьте, что это местоположение указано как в [.filename]#inetd.conf#, так и в [.filename]#dhcpd.conf#. - -Во всех случаях, вам также нужно включить NFS и экспортировать соответствующую файловую систему на сервере NFS. - -[.procedure] -==== - -. Добавьте следующее в [.filename]#/etc/rc.conf#: + -[.programlisting] -.... -nfs_server_enable="YES" -.... +Клиенты полностью изолированы друг от друга, и весь диапазон адресов `/24` может быть выделен без разделения на подсети. + -. Экспортируйте файловую систему, в которой расположен корневой каталог для бездисковой рабочей станции, добавив следующую строку в [.filename]#/etc/exports# (подправьте точку монтирования и замените _margaux corbieres_ именами бездисковых рабочих станций): +Количество уникальных исходных MAC-адресов за интерфейсом может быть ограничено. Как только лимит будет достигнут, пакеты с неизвестными исходными адресами будут отбрасываться до тех пор, пока существующая запись в кэше хоста не истечёт или не будет удалена. + -[.programlisting] -.... -/data/misc -alldirs -ro margaux corbieres -.... -+ -. Заставьте mountd перечитать настроечный файл. На самом деле если вам потребовалось на первом шаге включить NFS в [.filename]#/etc/rc.conf#, то вам нужно будет выполнить перезагрузку. +Следующий пример устанавливает максимальное количество Ethernet-устройств для `CustomerA` на `vlan100` равным 10: + -[source,shell] +[source, shell] .... -# /etc/rc.d/mountd restart +# ifconfig bridge0 ifmaxaddr vlan100 10 .... -==== - -==== Построение ядра для бездисковой рабочей станции -При использовании Etherboot, вам потребуется создать конфигурационный файл ядра для бездискового клиента со следующими параметрами (вдобавок к обычным): +Мостовые интерфейсы также поддерживают режим мониторинга, в котором пакеты отбрасываются после обработки man:bpf[4] и не обрабатываются или передаются дальше. Это можно использовать для мультиплексирования входа двух или более интерфейсов в один поток man:bpf[4]. Это полезно для восстановления трафика сетевых кранов, которые передают сигналы RX/TX через два отдельных интерфейса. Например, чтобы читать входные данные с четырёх сетевых интерфейсов как один поток: -[.programlisting] +[source, shell] .... - -options BOOTP # Use BOOTP to obtain IP address/hostname -options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info +# ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up +# tcpdump -i bridge0 .... -Вам может потребоваться использовать `BOOTP_NFSV3`, `BOOT_COMPAT` и `BOOTP_WIRED_TO` (посмотрите файл [.filename]#NOTES#). +=== Мониторинг SNMP -Эти имена параметров сложились исторически, и могут немного ввести в заблуждение, поскольку включают необязательное использование DHCP и BOOTP в ядре (возможно включение обязательного использования BOOTP или DHCP use). +Интерфейс моста и параметры STP можно отслеживать с помощью man:bsnmpd[1], который включён в базовую систему FreeBSD. Экспортируемые MIB моста соответствуют стандартам IETF, поэтому для получения данных можно использовать любой SNMP-клиент или пакет мониторинга. -Постройте ядро (обратитесь к crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]) и скопируйте его в каталог, указанный в [.filename]#dhcpd.conf#. - -[NOTE] -==== -При использовании PXE, сборка ядра с вышеприведенными параметрами не является совершенно необходимой (хотя желательна). Включение этих параметров приведет к выполнению большинства DHCP запросов во время загрузки ядра, с небольшим риском несоответствия новых значений и значений, полученных man:pxeboot[8] в некоторых особых случаях. Преимущество использования в том, что в качестве побочного эффекта будет установлено имя хоста. Иначе вам потребуется установить имя хоста другим методом, например в клиент-специфичном файле [.filename]#rc.conf#. -==== - -[NOTE] -==== -Для включения возможности загрузки с Etherboot, в ядро необходимо включить устройство hints. Вам потребуется установить в файле конфигурации следующий параметр (см. файл комментариев [.filename]#NOTES#): +Чтобы включить мониторинг на мосту, раскомментируйте эту строку в [.filename]#/etc/snmpd.config#, удалив символ `+#+` в начале: [.programlisting] .... -hints "GENERIC.hints" +begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so" .... -==== - -==== Подготовка корневой файловой системы - -Вам нужно создать корневую файловую систему для бездисковых рабочих станций, в местоположении, заданном как `root-path` в [.filename]#dhcpd.conf#. - -===== Использование процедуры `make world` - -Этот метод установит новую систему (не только корневую) в `DESTDIR`. Все, что вам потребуется сделать, это просто выполнить следующий скрипт: +Другие параметры конфигурации, такие как имена сообществ и списки доступа, возможно, потребуется изменить в этом файле. Подробнее см. в man:bsnmpd[1] и man:snmp_bridge[3]. После сохранения изменений добавьте следующую строку в [.filename]#/etc/rc.conf#: [.programlisting] .... -#!/bin/sh -export DESTDIR=/data/misc/diskless -mkdir -p ${DESTDIR} -cd /usr/src; make buildworld && make buildkernel -cd /usr/src/etc; make distribution +bsnmpd_enable="YES" .... -Как только это будет сделано, вам может потребоваться настроить [.filename]#/etc/rc.conf# и [.filename]#/etc/fstab#, помещенные в `DESTDIR`, в соответствии с вашими потребностями. - -==== Настройка области подкачки +Затем, запустите man:bsnmpd[1]: -Если это нужно, то файл подкачки, расположенный на сервере, можно использовать посредством NFS. - -===== Подкачка через NFS - -На стадии загрузки ядро не поддерживает подкачку через NFS. Подкачка должна быть разрешена при помощи загрузочных скриптов, монтирующих файловую систему, пригодную для записи и создающих на ней файл подкачки. Для создания файла подкачки подходящего размера вы можете выполнить следующие команды: - -[source,shell] +[source, shell] .... -# dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000 +# service bsnmpd start .... -Для активации этого файла подкачки следует добавить в файл [.filename]#rc.conf# строку +Следующие примеры используют программное обеспечение Net-SNMP (package:net-mgmt/net-snmp[]) для запроса моста с клиентской системы. Также можно использовать порт package:net-mgmt/bsnmptools[]. На SNMP-клиенте, где запущен Net-SNMP, добавьте следующие строки в [.filename]#$HOME/.snmp/snmp.conf#, чтобы импортировать определения MIB для моста: [.programlisting] .... -swapfile=/path/to/swapfile +mibdirs +/usr/share/snmp/mibs +mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB .... -==== Различные проблемы - -===== Работа с [.filename]#/usr#, доступной только для чтения - -Если бездисковая рабочая станция настроена на запуск X, вам нужно подправить настроечный файл для XDM, который по умолчанию помещает протокол ошибок в [.filename]#/usr#. - -===== Использование не-FreeBSD сервера - -Если сервер с корневой файловой системой работает не под управлением FreeBSD, вам потребуется создать корневую файловую систему на машине FreeBSD, а затем скопировать ее в нужно место, при помощи `tar` или `cpio`. - -В такой ситуации иногда возникают проблемы со специальными файлами в [.filename]#/dev# из-за различной разрядности целых чисел для старшего/младшего чисел. Решением этой проблемы является экспортирование каталога с не-FreeBSD сервера, монтирование его на машине с FreeBSD и использование man:devfs[5] для создания файлов устройств прозрачно для пользователя. - -[[network-isdn]] -== ISDN - -Полезным источником информации о технологии ISDN и его аппаратном обеспечении является http://www.alumni.caltech.edu/~dank/isdn/[ Страница Дэна Кегела (Dan Kegel) об ISDN]. +Для мониторинга одного моста с использованием IETF BRIDGE-MIB (RFC4188): -Быстрое введение в ISDN: - -* Если вы живёте в Европе, то вам может понадобиться изучить раздел об ISDN-адаптерах. -* Если вы планируете использовать ISDN в основном для соединений с Интернет через провайдера по коммутируемому, не выделенному соединению, рекомендуется посмотреть информацию о терминальных адаптерах. Это даст вам самую большую гибкость и наименьшее количество проблем при смене провайдера. -* Если вы объединяете две локальные сети или подключаетесь к Интернет через постоянное ISDN-соединение, рекомендуем остановить свой выбор на отдельном мосте/маршрутизаторе. - -Стоимость является важным фактором при выборе вашего решения. Далее перечислены все возможности от самого дешевого до самого дорогого варианта. - -[[network-isdn-cards]] -=== Адаптеры ISDN - -Реализация ISDN во FreeBSD поддерживает только стандарт DSS1/Q.931 (или Евро-ISDN) при помощи пассивных адаптеров. Поддерживаются некоторые активные адаптеры, прошивки которых поддерживают также другие сигнальные протоколы; также сюда включена поддержка адаптеров ISDN Primary Rate (PRI). - -Пакет программ isdn4bsd позволяет вам подключаться к другим маршрутизаторам ISDN при помощи IP поверх DHLC, либо при помощи синхронного PPP; либо при помощи PPP на уровне ядра с `isppp`, модифицированного драйвера man:sppp[4], или при помощи пользовательского man:ppp[8]. При использовании пользовательского man:ppp[8] возможно использование двух и большего числа B-каналов ISDN. Также имеется приложение, работающее как автоответчик, и много утилит, таких, как программный модем на 300 Бод. - -Во FreeBSD поддерживается все возрастающее число адаптеров ISDN для ПК, и сообщения показывают, что они успешно используются по всей Европе и других частях света. - -Из пассивных адаптеров ISDN поддерживаются в основном те, которые сделаны на основе микросхем Infineon (бывший Siemens) ISAC/HSCX/IPAC ISDN, а также адаптеры ISDN с микросхемами от Cologne Chip (только для шины ISA), адаптеры PCI с микросхемами Winbond W6692, некоторые адаптеры с набором микросхем Tiger300/320/ISAC и несколько адаптеров, построенных на фирменных наборах микросхем, такие, как AVM Fritz!Card PCI V.1.0 и AVM Fritz!Card PnP. - -На данный момент из активных адаптеров ISDN поддерживаются AVM B1 (ISA и PCI) адаптеры BRI и AVM T1 PCI адаптеры PRI. - -Документацию по isdn4bsd можно найти в каталоге [.filename]#/usr/shared/examples/isdn/# вашей системы FreeBSD или на http://www.freebsd-support.de/i4b/[домашней странице isdn4bsd], на которой также размещены ссылки на советы, замечания по ошибкам и более подробную информацию, например, на http://people.FreeBSD.org/~hm/[руководство по isdn4bsd]. - -Если вы заинтересованы в добавлении поддержки для различных протоколов ISDN, не поддерживаемых на данный момент адаптеров ISDN для PC или каких-то других усовершенствованиях isdn4bsd, пожалуйста, свяжитесь с {hm}. - -Для обсуждения вопросов, связанных с установкой, настройкой и устранением неисправностей isdn4bsd, имеется список рассылки link:{freebsd-isdn-url}[freebsd-isdn]. - -`subscribe freebsd-isdn` - -=== Терминальные адаптеры ISDN - -Терминальные адаптеры (TA) для ISDN выполняют ту же роль, что и модемы для обычных телефонных линий. - -Большинство TA используют стандартный набор AT-команд Hayes-модемов, и могут использоваться в качестве простой замены для модемов. - -TA будут работать точно так же, как и модемы, за исключением скорости соединения и пропускной способности, которые будут гораздо выше, чем у вашего старого модема. Вам потребуется настроить crossref:ppp-and-slip[ppp,PPP] точно также, как и в случае использования модема. Проверьте, что вы задали скорость работы последовательного порта максимально высокой. - -Главным преимуществом использования TA для подключения к провайдеру Интернет является возможность использования динамического PPP. Так как пространство адресов IP истощается все больше, большинство провайдеров не хочет больше выдавать вам статический IP-адрес. Большинство же маршрутизаторов не может использовать динамическое выделение IP-адресов. - -TA полностью полагаются на даемон PPP, который используете из-за его возможностей и стабильности соединения. Это позволяет вам при использовании FreeBSD легко заменить модем на ISDN, если у вас уже настроено соединение PPP. Однако, в тоже время любые проблемы, которые возникают с программой PPP, отражаются и здесь. - -Если вы хотите максимальной надёжности, используйте crossref:ppp-and-slip[ppp,PPP] на уровне параметра ядра, а не crossref:ppp-and-slip[userppp,пользовательский PPP]. - -Известно, что следующие TA работают с FreeBSD: - -* Motorola BitSurfer и Bitsurfer Pro -* Adtran - -Большинство остальных TA, скорее всего, тоже будут работать, производители TA прилагают все усилия для обеспечения поддержки практически всего набора стандартных AT-команд модема. - -Как и в случае модемов проблемой использования внешнего TA является потребность в хорошем последовательном адаптере на вашем компьютере. - -Вы должны прочесть учебник extref:{serial-uart}[Последовательные устройства во FreeBSD] для того, чтобы в деталях понять работу последовательных устройств и осознать различие между асинхронными и синхронными последовательными портами. +[source, shell] +.... +% snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge +BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44 +BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports +BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds +BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2 +BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50 +... +BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5) +BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1) +BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000 +BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50 +BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0 +BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50 +BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80 +BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1 +RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2) +.... -TA, работающий со стандартным последовательным (асинхронным) портом PC, ограничивает вас скоростью 115.2 Кбит/с, хотя реально у вас соединение на скорости 128 Кбит/с. Чтобы использовать 128 Кбит/с, которые обеспечивает ISDN, полностью, вы должны подключить TA к синхронному последовательному адаптеру. +Значение `dot1dStpTopChanges.0` равно двум, что указывает на двукратное изменение топологии STP-моста. Изменение топологии означает, что одна или несколько связей в сети изменились или вышли из строя, и было выполнено перерасчёт дерева. Значение `dot1dStpTimeSinceTopologyChange.0` покажет, когда это произошло. -Не обманывайте себя, думая, что покупка встроенного TA поможет избежать проблемы синхронности/асинхронности. Встроенные TA просто уже имеют внутри стандартный последовательный порт PC. Все, что при этом достигается - это экономия дополнительных последовательного кабеля и электрической розетки. +Для мониторинга нескольких интерфейсов моста можно использовать приватный BEGEMOT-BRIDGE-MIB: -Синхронный адаптер с TA по крайней мере так же быстр, как и отдельный маршрутизатор, а если он работает под управлением машины класса 386 с FreeBSD, то это гораздо более гибкое решение. +[source, shell] +.... +% snmpwalk -v 2c -c public bridge1.example.com +enterprises.fokus.begemot.begemotBridge +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge0" = STRING: bridge0 +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge2" = STRING: bridge2 +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge0" = STRING: e:ce:3b:5a:9e:13 +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge2" = STRING: 12:5e:4d:74:d:fc +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge0" = INTEGER: 1 +BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge2" = INTEGER: 1 +... +BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge0" = Timeticks: (116927) 0:19:29.27 centi-seconds +BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47.73 centi-seconds +BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge0" = Counter32: 1 +BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge2" = Counter32: 1 +BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge0" = Hex-STRING: 80 00 00 40 95 30 5E 31 +BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 00 50 8B B8 C6 A9 +.... -Выбор между использованием синхронного адаптера/TA или отдельного маршрутизатора в большей степени является религиозным вопросом. По этому поводу в списках рассылки была некоторая дискуссия. Рекомендуем поискать в link:https://www.FreeBSD.org/search/[архивах] обсуждение полностью. +Для изменения мониторинга интерфейса моста через поддерево `mib-2.dot1dBridge`: -=== Отдельные мосты/маршрутизаторы ISDN +[source, shell] +.... +% snmpset -v 2c -c private bridge1.example.com +BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2 +.... -Мосты или маршрутизаторы ISDN не так уж специфичны для FreeBSD или для любой другой операционной системы. Для более подробного описания технологий маршрутизации и работы мостов, пожалуйста, обратитесь к справочникам по сетевым технологиям. +[[network-aggregation]] +== Агрегация каналов и отказоустойчивость -В контексте этого раздела термины маршрутизатор и сетевой мост будут использоваться как взаимозаменяемые. +FreeBSD предоставляет интерфейс man:lagg[4], который может использоваться для объединения нескольких сетевых интерфейсов в один виртуальный интерфейс с целью обеспечения отказоустойчивости и агрегации каналов. Отказоустойчивость позволяет трафику продолжать передаваться, пока хотя бы один из объединённых сетевых интерфейсов имеет установленное соединение. Агрегация каналов наиболее эффективна на коммутаторах, поддерживающих LACP, так как этот протокол распределяет трафик в обоих направлениях, реагируя на отказ отдельных каналов. -Вместе с падением цен на простые мосты/маршрутизаторы ISDN, они становятся все более популярными. Маршрутизатор ISDN представляет собой маленькую коробочку, которая подключается непосредственно в вашу сеть Ethernet, и поддерживает связь с другим мостом/маршрутизатором. Всё программное обеспечение для работы по PPP и другим протоколам встроено в маршрутизатор. +Протоколы агрегации, поддерживаемые интерфейсом lagg, определяют, какие порты используются для исходящего трафика и принимает ли конкретный порт входящий трафик. В man:lagg[4] поддерживаются следующие протоколы: -Маршрутизатор обладает гораздо большей пропускной способностью, чем стандартный TA, так как он использует полное синхронное соединение ISDN. +failover:: +Этот режим отправляет и получает трафик только через основной порт. Если основной порт становится недоступным, используется следующий активный порт. Первый интерфейс, добавленный в виртуальный интерфейс, является основным портом, а все последующие добавленные интерфейсы используются как устройства резервирования. Если происходит переключение на неосновной порт, исходный порт снова становится основным, как только становится доступным. -Основной проблемой с маршрутизаторами и мостами ISDN является то, что их совместная работа с оборудованием других производителей может оказаться под вопросом. Если вы собираетесь подключаться к провайдеру, то вы должны обсудить с ним то, что вам нужно. +loadbalance:: +Это обеспечивает статическую настройку и не выполняет согласование агрегации с узлом или обмен кадрами для мониторинга связи. Если коммутатор поддерживает LACP, следует использовать его. -Если вы планируете объединить два сегмента локальной сети, например, домашнюю сеть с сетью офиса, это самое простое решение с минимальными издержками на обслуживание. Так как вы покупаете оборудование для обоих сторон соединения, то можете быть уверены, что связь будет работать нормально. +lacp:: +Протокол управления агрегацией каналов IEEE(R) 802.3ad (LACP) согласует набор агрегируемых каналов с узлом-партнёром в один или несколько агрегированных групп каналов (LAG). Каждая LAG состоит из портов с одинаковой скоростью, настроенных на полнодуплексный режим работы, а трафик распределяется между портами в LAG с наибольшей общей скоростью. Обычно существует только одна LAG, содержащая все порты. В случае изменений физической связности LACP быстро сходится к новой конфигурации. ++ +LACP распределяет исходящий трафик по активным портам на основе хешированной информации заголовков протоколов и принимает входящий трафик с любого активного порта. Хеш включает исходный и целевой Ethernet-адреса, а также, если доступно, тег VLAN и исходный и целевой IPv4 или IPv6 адреса. -Например, для соединения домашнего компьютера или сети подразделения к сети центрального офиса, может использоваться такая настройка: +roundrobin:: +Этот режим распределяет исходящий трафик с помощью циклического планировщика через все активные порты и принимает входящий трафик с любого активного порта. Поскольку этот режим нарушает порядок следования Ethernet-кадров, его следует использовать с осторожностью. -.Офис подразделения или домашняя сеть -[example] -==== -Сеть построена в топологии общей шины на основе 10 base 2 Ethernet ("thinnet" - "тонкий Ethernet"). Подключите маршрутизатор к сетевому кабелю с помощью трансивера AUI/10BT, если это нужно. +broadcast:: +Этот режим отправляет исходящий трафик на все порты, настроенные на интерфейсе lagg, и принимает кадры на любом порту. -image::isdn-bus.png[10 Base 2 Ethernet] +=== Примеры конфигурации -Если ваш домашний или удаленный офис представляет собой один компьютер, то для непосредственного подключения к маршрутизатору вы вы можете использовать витую пару с перекрестным соединениям. -==== +В этом разделе показано, как настроить коммутатор Cisco(R) и систему FreeBSD для балансировки нагрузки LACP. Затем демонстрируется настройка двух Ethernet-интерфейсов в режиме отказоустойчивости, а также настройка режима отказоустойчивости между Ethernet и беспроводным интерфейсом. -.Центральный офис или другая локальная сеть +[[networking-lacp-aggregation-cisco]] +.Агрегация каналов с использованием LACP и коммутатора Cisco(R) [example] ==== -Сеть построена в топологии звезды на основе 10 Base T Ethernet ("витая пара"). - -image::isdn-twisted-pair.png[Схема сети с ISDN] - -==== - -Одним большим преимуществом большинства маршрутизаторов/мостов является то, что они позволяют иметь 2 _отдельных независимых_ соединения PPP к 2 различным сайтам _одновременно_. Это не поддерживается в большинстве TA, кроме специальных (обычно дорогих) моделей, имеющих по два последовательных порта. Не путайте это с балансировкой нагрузки, MPP и так далее. - -Это может оказаться весьма полезной особенностью, например, если у вас имеется постоянное ISDN-соединение в вашем офисе, и вы хотите им воспользоваться, но не хотите задействовать дополнительный канал ISDN на работе. Маршрутизатор, расположенный в офисе, может использовать выделенное соединение по каналу B (64 Кбит/с) для Интернет, и одновременно другой канал B для отдельного соединения для передачи данных. Второй канал B может использоваться для входящих, исходящих и динамически распределяемых соединений (MPP и так далее) совместно с первым каналом B для повышения пропускной способности. - -Мост Ethernet также позволяет вам передавать больше, чем просто трафик IP. Вы сможете передавать IPX/SPX и любые другие протоколы, которые вы используете. - -[[network-natd]] -== Даемон преобразования сетевых адресов (natd) - -[[network-natoverview]] -=== Обзор - -Даемон преобразования сетевых адресов (Network Address Translation) во FreeBSD, широко известный как man:natd[8], является даемоном, который принимает входящие IP-пакеты, изменяет адрес отправителя на адрес локальной машины и повторно отправляет эти пакеты в потоке исходящих пакетов. man:natd[8] делает это, меняя IP-адрес отправителя и порт таким образом, что когда данные принимаются обратно, он может определить расположение источника начальных данных и переслать их машине, которая запрашивала данные изначально. - -Чаще всего NAT используется для организации так называемого Совместного Использования Интернет. - -[[network-natsetup]] -=== Настройка - -Из-за исчерпания пространства адресов в IPv4 и увеличения количества пользователей высокоскоростных каналов связи, таких, как кабельное подключение или DSL, необходимость в решении по Совместному Использованию Интернет растёт. Возможность подключить несколько компьютеров через единственное соединение и IP-адрес делает man:natd[8] подходящим решением. - -Чаще всего у пользователя имеется машина, подключенная к кабельному каналу или каналу DSL с одним IP-адресом и есть желание использовать этот единственный подключенный компьютер для организации доступа в Интернет другим компьютерам в локальной сети. - -Для этого машина FreeBSD, находящаяся в Интернет, должна выступать в роли шлюза. Эта шлюзовая машина должна иметь два сетевых адаптера-один для подключения к маршрутизатору Интернет, а другой для подключения к ЛВС. Все машины в локальной сети подключаются через сетевой концентратор или коммутатор. - -[NOTE] -==== -Существует много способов подсоединить локальную сеть к Internet через шлюз FreeBSD. Этот пример показывает шлюз c двумя сетевыми картами. -==== - -image::natd.png[Структура сети] - -Подобная конфигурация часто используется для совместного использования доступа в Интернет. Одна из подключенных к локальной сети машин подключается к Интернет. Остальные машины работают с Интернет посредством этой "шлюзовой" машины. +В этом примере два Ethernet-интерфейса man:fxp[4] на машине FreeBSD подключены к первым двум Ethernet-портам коммутатора Cisco(R) в виде единого отказоустойчивого канала с балансировкой нагрузки. Дополнительные интерфейсы могут быть добавлены для увеличения пропускной способности и отказоустойчивости. Замените названия портов Cisco(R), Ethernet-устройств, номер группы каналов и IP-адрес, указанные в примере, в соответствии с вашей конфигурацией. -[[network-natdkernconfiguration]] -=== Настройка +Порядок кадров обязателен на Ethernet-соединениях, и любой трафик между двумя станциями всегда проходит через одно и то же физическое соединение, что ограничивает максимальную скорость пропускной способностью одного интерфейса. Алгоритм передачи пытается использовать как можно больше информации для различения отдельных потоков трафика и балансировки этих потоков между доступными интерфейсами. -В файле конфигурации ядра должны присутствовать следующие параметры: +На коммутаторе Cisco(R) добавьте интерфейсы _FastEthernet0/1_ и _FastEthernet0/2_ в группу каналов _1_: -[.programlisting] +[source, shell] .... -options IPFIREWALL -options IPDIVERT +interface FastEthernet0/1 + channel-group 1 mode active + channel-protocol lacp +! +interface FastEthernet0/2 + channel-group 1 mode active + channel-protocol lacp .... -Дополнительно, если это нужно, можно добавить следующее: +На системе FreeBSD создайте интерфейс man:lagg[4], используя физические интерфейсы _fxp0_ и _fxp1_, и поднимите интерфейсы с IP-адресом _10.0.0.3/24_: -[.programlisting] +[source, shell] .... -options IPFIREWALL_DEFAULT_TO_ACCEPT -options IPFIREWALL_VERBOSE +# ifconfig fxp0 up +# ifconfig fxp1 up +# ifconfig lagg0 create +# ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24 .... -В файле [.filename]#/etc/rc.conf# должны быть такие строки: +Далее проверьте состояние виртуального интерфейса: -[.programlisting] +[source, shell] .... -gateway_enable="YES" <.> -firewall_enable="YES" <.> -firewall_type="OPEN" <.> -natd_enable="YES" -natd_interface="fxp0" <.> -natd_flags="" <.> +# ifconfig lagg0 +lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + options=8<VLAN_MTU> + ether 00:05:5d:71:8d:b8 + inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255 + media: Ethernet autoselect + status: active + laggproto lacp + laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING> + laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING> .... -<.> Указывает машине выступать в качестве шлюза. Выполнение команды `sysctl net.inet.ip.forwarding=1` приведёт к тому же самому результату. - -<.> При загрузке включает использование правил брандмауэра из файла [.filename]#/etc/rc.firewall#. +Порты, помеченные как `ACTIVE`, являются частью LAG, который был согласован с удаленным коммутатором. Через эти активные порты будет передаваться и приниматься трафик. Добавьте `-v` к приведенной выше команде, чтобы просмотреть идентификаторы LAG. -<.> Здесь задается предопределенный набор правил брандмауэра, который разрешает все. Посмотрите файл [.filename]#/etc/rc.firewall# для нахождения дополнительных типов. +Чтобы проверить статус порта на коммутаторе Cisco(R): -<.> Указывает, через какой интерфейс передавать пакеты (интерфейс, подключенный к Интернет). +[source, shell] +.... +switch# show lacp neighbor +Flags: S - Device is requesting Slow LACPDUs + F - Device is requesting Fast LACPDUs + A - Device is in Active mode P - Device is in Passive mode -<.> Любые дополнительный параметры, передаваемые при запуске даемону man:natd[8]. +Channel group 1 neighbors -При использовании вышеуказанных параметров в файле [.filename]#/etc/rc.conf# при загрузке будет запущена команда `natd -interface fxp0`. Эту команду можно запустить и вручную. +Partner's information: -[NOTE] -==== -Если для передачи man:natd[8] набирается слишком много параметров, возможно также использовать конфигурационный файл. В этом случае имя настроечного файла должно быть задано добавлением следующей строки в [.filename]#/etc/rc.conf#: - -[.programlisting] -.... -natd_flags="-f /etc/natd.conf" + LACP port Oper Port Port +Port Flags Priority Dev ID Age Key Number State +Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D +Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D .... -Файл [.filename]#/etc/natd.conf# будет содержать перечень конфигурационных параметров, по одному в строке. К примеру, для примера из следующего раздела будет использоваться такой файл: +Для получения более подробной информации введите `show lacp neighbor detail`. + +Чтобы сохранить эту конфигурацию после перезагрузки, добавьте следующие записи в [.filename]#/etc/rc.conf# на системе FreeBSD: [.programlisting] .... -redirect_port tcp 192.168.0.2:6667 6667 -redirect_port tcp 192.168.0.3:80 80 +ifconfig_fxp0="up" +ifconfig_fxp1="up" +cloned_interfaces="lagg0" +ifconfig_lagg0="laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24" .... -Для получения более полной информации о конфигурационном файле прочтите страницу справки по man:natd[8] относительно параметра `-f`. ==== -Каждой машине и интерфейсу в ЛВС должен быть назначен IP-адрес из адресного пространства частных сетей, как это определено в link:ftp://ftp.isi.edu/in-notes/rfc1918.txt[RFC 1918], а в качестве маршрутизатора по умолчанию должен быть задан IP-адрес машины с natd из внутренней сети. - -Например, клиенты `A` и `B` в ЛВС имеют IP-адреса `192.168.0.2` и `192.168.0.3`, а интерфейс машины с natd в локальной сети имеет IP-адрес `192.168.0.1`. Маршрутизатором по умолчанию для клиентов `A` и `B` должна быть назначена машина с natd, то есть `192.168.0.1`. Внешний, или Интернет-интерфейс машины с natd не требует особых настроек для работы man:natd[8]. - -[[network-natdport-redirection]] -=== Перенаправление портов - -Минусом использования man:natd[8] является то, что машины в локальной сети недоступны из Интернет. Клиенты в ЛВС могут выполнять исходящие соединения во внешний мир, но не могут обслуживать входящие. Это является проблемой при запуске служб Интернет на клиентских машинах в локальной сети. Простым решением является перенаправление некоторых портов Интернет машины с natd на клиента локальной сети. - -Пусть, к примеру, сервер IRC запущен на клиенте `A`, а Web-сервер работает на клиенте `B`. Чтобы это работало, соединения, принимаемые на портах 6667 (IRC) и 80 (Web), должны перенаправляться на соответствующие машины. +[[networking-lagg-failover]] +.Режим отказоустойчивости +[example] +==== -Программе man:natd[8] должна быть передана команда `-redirect_port` с соответствующими параметрами. Синтаксис следующий: +Режим отказоустойчивости может быть использован для переключения на резервный интерфейс, если соединение на основном интерфейсе потеряно. Для настройки отказоустойчивости убедитесь, что физические интерфейсы активны, затем создайте интерфейс man:lagg[4]. В этом примере _fxp0_ — основной интерфейс, _fxp1_ — резервный интерфейс, а виртуальному интерфейсу назначен IP-адрес _10.0.0.15/24_: -[.programlisting] +[source, shell] .... - -redirect_port proto targetIP:targetPORT[-targetPORT] - [aliasIP:]aliasPORT[-aliasPORT] - [remoteIP[:remotePORT[-remotePORT]]] +# ifconfig fxp0 up +# ifconfig fxp1 up +# ifconfig lagg0 create +# ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24 .... -В примере выше аргументы должен быть такими: +Виртуальный интерфейс должен выглядеть примерно так: -[.programlisting] +[source, shell] .... - -redirect_port tcp 192.168.0.2:6667 6667 - -redirect_port tcp 192.168.0.3:80 80 +# ifconfig lagg0 +lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + options=8<VLAN_MTU> + ether 00:05:5d:71:8d:b8 + inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255 + media: Ethernet autoselect + status: active + laggproto failover + laggport: fxp1 flags=0<> + laggport: fxp0 flags=5<MASTER,ACTIVE> .... -При этом будут перенаправлены соответствующие порты _tcp_ на клиентские машины в локальной сети. - -Аргумент `-redirect_port` может использоваться для указания диапазонов портов, а не конкретного порта. Например, _tcp 192.168.0.2:2000-3000 2000-3000_ будет перенаправлять все соединения, принимаемые на портах от 2000 до 3000, на порты от 2000 до 3000 клиента `A`. - -Эти параметры можно указать при непосредственном запуске man:natd[8], поместить их в параметр `natd_flags=""` файла [.filename]#/etc/rc.conf#, либо передать через конфигурационный файл. - -Для получение информации о других параметрах настройки обратитесь к справочной странице по man:natd[8] +Трафик будет передаваться и приниматься через интерфейс _fxp0_. Если соединение на _fxp0_ будет потеряно, активным станет интерфейс _fxp1_. Если соединение на основном интерфейсе восстановится, он снова станет активным. -[[network-natdaddress-redirection]] -=== Перенаправление адреса - -Перенаправление адреса полезно, если имеется несколько адресов IP, и они должны быть на одной машине. В этой ситуации man:natd[8] может назначить каждому клиенту ЛВС свой собственный внешний IP-адрес. Затем man:natd[8] преобразует исходящие от клиентов локальной сети пакеты, заменяя IP-адреса на соответствующие внешние, и перенаправляет весь трафик, входящий на некоторый IP-адрес, обратно конкретному клиенту локальной сети. Это также называют статическим NAT. К примеру, пусть IP-адреса `128.1.1.1`, `128.1.1.2` и `128.1.1.3` принадлежат шлюзовой машине natd. `128.1.1.1` может использоваться в качестве внешнего IP-адреса шлюзовой машины natd, тогда как `128.1.1.2` и `128.1.1.3` будут перенаправляться обратно к клиентам ЛВС `A` и `B`. - -Синтаксис для `-redirect_address` таков: +Чтобы сохранить эту конфигурацию после перезагрузки, добавьте следующие записи в [.filename]#/etc/rc.conf#: [.programlisting] .... --redirect_address localIP publicIP +ifconfig_fxp0="up" +ifconfig_fxp1="up" +cloned_interfaces="lagg0" +ifconfig_lagg0="laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24" .... -[.informaltable] -[cols="1,1", frame="none"] -|=== - -|localIP -|Внутренний IP-адрес клиента локальной сети. - -|publicIP -|Внешний IP, соответствующий клиенту локальной сети. -|=== - -В примере этот аргумент будет выглядеть так: - -[.programlisting] -.... --redirect_address 192.168.0.2 128.1.1.2 --redirect_address 192.168.0.3 128.1.1.3 -.... - -Как и для `-redirect_port`, эти аргументы также помещаются в строку `natd_flags=""` файла [.filename]#/etc/rc.conf# или передаются через конфигурационный файл. При перенаправлении адресов нет нужды в перенаправлении портов, потому что перенаправляются все данные, принимаемые для конкретного IP-адреса. - -Внешние IP-адреса машины с natd должны быть активизированы и являться синонимами для внешнего интерфейса. Обратитесь к man:rc.conf[5], чтобы это сделать. - -[[network-plip]] -== IP по параллельному порту (PLIP) +==== -PLIP позволяет нам работать с TCP/IP по параллельному порту. Это полезно для машин без сетевых адаптеров или для установки на лэптопы. В этом разделе мы обсудим: +[[networking-lagg-wired-and-wireless]] +.Режим автоматического переключения между Ethernet и беспроводным интерфейсом +[example] +==== -* создание кабеля для параллельного порта (laplink). -* Соединение двух компьютеров посредством PLIP. +Для пользователей ноутбуков обычно желательно настроить беспроводное устройство как вторичное, которое используется только при отсутствии Ethernet-подключения. С помощью man:lagg[4] можно настроить отказоустойчивость, отдавая предпочтение Ethernet-подключению как по соображениям производительности, так и безопасности, сохраняя при этом возможность передачи данных через беспроводное соединение. -[[network-create-parallel-cable]] -=== Создание параллельного кабеля +Это достигается путем замены MAC-адреса Ethernet-интерфейса на MAC-адрес беспроводного интерфейса. -Вы можете приобрести кабель для параллельного порта в большинстве магазинов, торгующих комплектующими. Если вы его не найдете, или же просто хотите знать, как он делается, то следующая таблица поможет вам сделать такой кабель из обычного принтерного кабеля для параллельного порта. +[NOTE] +**** +Теоретически, либо Ethernet, либо беспроводной MAC-адрес можно изменить, чтобы они были одинаковыми. Однако некоторые популярные беспроводные интерфейсы не поддерживают переопределение MAC-адреса. Поэтому мы рекомендуем переопределить Ethernet MAC-адрес для этой цели. +**** -.Распайка кабеля для параллельного порта для сетевой работы -[cols="1*l,1*l,1*l,1,1*l", frame="none", options="header"] -|=== -| A-name -| A-End -| B-End -| Описание -| Post/Bit +[NOTE] +**** +Если драйвер для беспроводного интерфейса не загружен в `GENERIC` или собственном ядре, и компьютер работает под FreeBSD {rel121-current}, загрузите соответствующий [.filename]#.ko# в [.filename]#/boot/loader.conf#, добавив `*driver_load="YES"*` в этот файл и перезагрузив систему. Другой, более предпочтительный способ — загрузить драйвер в [.filename]#/etc/rc.conf#, добавив его в `kld_list` (подробности см. в man:rc.conf[5]) в этом файле и перезагрузив систему. Это необходимо, потому что в противном случае драйвер ещё не загружен к моменту настройки интерфейса man:lagg[4]. +**** -| +В этом примере Ethernet-интерфейс _re0_ является основным, а беспроводной интерфейс _wlan0_ — резервным. Интерфейс _wlan0_ был создан на основе физического беспроводного интерфейса _ath0_, а Ethernet-интерфейс будет настроен с MAC-адресом беспроводного интерфейса. Сначала включите беспроводной интерфейс (замените _FR_ на код вашей страны из 2 букв), но не задавайте IP-адрес. Замените _wlan0_ на имя беспроводного интерфейса вашей системы: +[source, shell] .... -DATA0 --ERROR +# ifconfig wlan0 create wlandev ath0 country FR ssid my_router up .... -| -.... -2 -15 -.... -| +Теперь вы можете определить MAC-адрес беспроводного интерфейса: +[source, shell] .... -15 -2 +# ifconfig wlan0 +wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + ether b8:ee:65:5b:32:59 + groups: wlan + ssid Bbox-A3BD2403 channel 6 (2437 MHz 11g ht/20) bssid 00:37:b7:56:4b:60 + regdomain ETSI country FR indoor ecm authmode WPA2/802.11i privacy ON + deftxkey UNDEF AES-CCM 2:128-bit txpower 30 bmiss 7 scanvalid 60 + protmode CTS ampdulimit 64k ampdudensity 8 shortgi -stbctx stbcrx + -ldpc wme burst roaming MANUAL + media: IEEE 802.11 Wireless Ethernet MCS mode 11ng + status: associated + nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> .... -|Data -| +Строка `ether` будет содержать MAC-адрес указанного интерфейса. Теперь измените MAC-адрес интерфейса Ethernet, чтобы он совпадал: + +[source, shell] .... -0/0x01 -1/0x08 +# ifconfig re0 ether b8:ee:65:5b:32:59 .... -| +Убедитесь, что интерфейс _re0_ включен, затем создайте интерфейс man:lagg[4] с _re0_ в качестве основного с переключением на _wlan0_ в случае отказа: +[source, shell] .... -DATA1 -+SLCT +# ifconfig re0 up +# ifconfig lagg0 create +# ifconfig lagg0 up laggproto failover laggport re0 laggport wlan0 .... -| -.... -3 -13 -.... -| +Виртуальный интерфейс должен выглядеть примерно так: +[source, shell] .... -13 -3 +# ifconfig lagg0 +lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + options=8<VLAN_MTU> + ether b8:ee:65:5b:32:59 + laggproto failover lagghash l2,l3,l4 + laggport: re0 flags=5<MASTER,ACTIVE> + laggport: wlan0 flags=0<> + groups: lagg + media: Ethernet autoselect + status: active .... -|Data -| +Затем запустите DHCP-клиент для получения IP-адреса: + +[source, shell] .... -0/0x02 -1/0x10 +# dhclient lagg0 .... -| +Чтобы сохранить эту конфигурацию после перезагрузки, добавьте следующие записи в [.filename]#/etc/rc.conf#: +[.programlisting] .... -DATA2 -+PE +ifconfig_re0="ether b8:ee:65:5b:32:59" +wlans_ath0="wlan0" +ifconfig_wlan0="WPA" +create_args_wlan0="country FR" +cloned_interfaces="lagg0" +ifconfig_lagg0="up laggproto failover laggport re0 laggport wlan0 DHCP" .... -| -.... -4 -12 -.... -| +==== -.... -12 -4 -.... -|Data -| +[[network-diskless]] +== Запуск системы по сети (PXE) без использования локальных накопителей -.... -0/0x04 -1/0x20 -.... +Встроенная среда исполнения Intel(R) Preboot eXecution Environment (PXE) позволяет операционной системе загружаться по сети. Например, система FreeBSD может загружаться по сети и работать без локального диска, используя файловые системы, смонтированные с NFS-сервера. Поддержка PXE обычно доступна в BIOS. Чтобы использовать PXE при запуске машины, выберите опцию `Загрузка по сети` в настройках BIOS или нажмите функциональную клавишу во время инициализации системы. -| +Для предоставления файлов, необходимых для загрузки операционной системы по сети, настройка PXE также требует правильно настроенных серверов DHCP, TFTP и NFS, где: -.... -DATA3 --ACK -.... -| +* Исходные параметры, такие как IP-адрес, имя загружаемого исполняемого файла и его расположение, имя сервера и корневой путь, получаются от сервера DHCP. +* Файл загрузчика операционной системы загружается с использованием TFTP. +* Файловые системы загружаются с использованием NFS. -.... -5 -10 -.... -| +Когда компьютер загружается по PXE, он получает информацию через DHCP о том, где получить начальный загрузочный файл. После того как хост-компьютер получает эту информацию, он загружает загрузчик через TFTP и затем выполняет его. В FreeBSD загрузочный файл называется [.filename]#/boot/pxeboot#. После выполнения [.filename]#/boot/pxeboot# загружается ядро FreeBSD, и продолжается остальная последовательность загрузки FreeBSD, как описано в crossref:boot[boot,Процесс загрузки FreeBSD]. -.... -10 -5 -.... -|Strobe -| +[NOTE] +==== +Для загрузки по PXE на UEFI фактический файл загрузчика, который следует использовать, это [.filename]#/boot/loader.efi#. См. раздел ниже crossref:advanced-networking[_debugging_pxe_problems,Отладка проблем PXE] о том, как использовать [.filename]#/boot/loader.efi#. +==== -.... -0/0x08 -1/0x40 -.... +Этот раздел описывает, как настроить эти службы в системе FreeBSD, чтобы другие системы могли загружаться по PXE в FreeBSD. Дополнительную информацию можно найти в man:diskless[8]. -| +[CAUTION] +==== +Как уже упоминалось, система, предоставляющая эти службы, является небезопасной. Она должна находиться в защищённой части сети и не доверяться другим хостам. +==== -.... -DATA4 -BUSY -.... -| +[[network-pxe-nfs]] +=== Настройка окружения PXE -.... -6 -11 -.... -| +В этом разделе показаны шаги по настройке встроенных серверов NFS и TFTP. В следующем разделе будет продемонстрировано, как установить и настроить сервер DHCP. В данном примере каталог, который будет содержать файлы, используемые пользователями PXE, называется [.filename]#/b/tftpboot/FreeBSD/install#. Важно, чтобы этот каталог существовал и чтобы одно и то же имя каталога было указано как в [.filename]#/etc/inetd.conf#, так и в [.filename]#/usr/local/etc/dhcpd.conf#. -.... -11 -6 -.... -|Data -| +[NOTE] +==== +Примеры команд ниже предполагают использование оболочки man:sh[1]. Пользователям man:csh[1] и man:tcsh[1] потребуется запустить оболочку man:sh[1] или адаптировать команды к синтаксису man:csh[1]. +==== +[.procedure] +. Создайте корневой каталог, который будет содержать установку FreeBSD для монтирования по NFS: ++ +[source, shell] .... -0/0x10 -1/0x80 +# export NFSROOTDIR=/b/tftpboot/FreeBSD/install +# mkdir -p ${NFSROOTDIR} .... -|GND -|18-25 -|18-25 -|GND -|- -|=== - -[[network-plip-setup]] -=== Настройка PLIP - -Прежде всего вы должны найти laplink-кабель. Затем удостоверьтесь, что на обоих компьютерах в ядро включена поддержка драйвера man:lpt[4]: - -[source,shell] +. Включите сервер NFS, добавив следующую строку в [.filename]#/etc/rc.conf#: ++ +[.programlisting] .... -# grep lp /var/run/dmesg.boot -lpt0: <Printer> on ppbus0 -lpt0: Interrupt-driven port +nfs_server_enable="YES" .... -Управление параллельным портом должно выполняться по прерываниям. Файл [.filename]#/boot/device.hints# должен содержать следующие строки: - +. Экспортируйте корневую директорию бездисковой системы через NFS, добавив следующее в [.filename]#/etc/exports#: ++ [.programlisting] .... -hint.ppc.0.at="isa" -hint.ppc.0.irq="7" +/b -ro -alldirs -maproot=root .... -Затем проверьте, что файл конфигурации ядра имеет строку `device plip`, или загружен ли модуль ядра [.filename]#plip.ko#. В обоих случаях интерфейс работы с сетью по параллельному порту должен присутствовать на момент использования команды man:ifconfig[8]. - -[source,shell] +. Запустите сервер NFS: ++ +[source, shell] .... -# ifconfig plip0 -plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 +# service nfsd start .... -Подключите кабель laplink к параллельным интерфейсам на обоих компьютерах. - -Настройте параметры сетевого интерфейса с обеих сторон, работая как пользователь `root`. К примеру, если вы хотите соединить хост `host1`, на котором работает FreeBSD 4.X, с хостом `host2` под управлением FreeBSD 5.X: - +. Включите man:inetd[8], добавив следующую строку в [.filename]#/etc/rc.conf#: ++ [.programlisting] .... - host1 <-----> host2 -IP Address 10.0.0.1 10.0.0.2 +inetd_enable="YES" .... -Настройте интерфейс на машине `host1`, выполнив: - -[source,shell] +. Раскомментируйте следующую строку в [.filename]#/etc/inetd.conf#, убедившись, что она не начинается с символа `+#+`: ++ +[.programlisting] .... -# ifconfig plip0 10.0.0.1 10.0.0.2 +tftp dgram udp wait root /usr/libexec/tftpd tftpd blocksize 1468 -l -s /b/tftpboot .... ++ +[NOTE] +==== +Указанный размер блока tftp, например, 1468 байт, заменяет стандартный размер 512 байт. Некоторые версии PXE требуют TCP-версию TFTP. В этом случае раскомментируйте вторую строку `tftp`, содержащую `stream tcp`. +==== -Настройте интерфейс на машине `host2`, выполнив: - -[source,shell] +. Запустите man:inetd[8]: ++ +[source, shell] .... -# ifconfig lp0 10.0.0.2 10.0.0.1 +# service inetd start .... -Теперь вы должны получить работающее соединение. Пожалуйста, прочтите страницы руководства по man:lp[4] и man:lpt[4] для выяснения деталей. - -Вы должны также добавить оба хоста в [.filename]#/etc/hosts#: +. Установите базовую систему в [.filename]#${NFSROOTDIR}#, либо распаковав официальные архивы, либо пересобрав ядро и пользовательское окружение FreeBSD (подробные инструкции можно найти в crossref:cutting-edge[makeworld,“Обновление FreeBSD из исходного кода”], но не забудьте добавить `DESTDIR=_${NFSROOTDIR}_` при выполнении команд `make installkernel` и `make installworld`). +. Проверьте, что TFTP-сервер работает и может загрузить загрузчик, который будет получен через PXE: ++ +[source, shell] +.... +# tftp localhost +tftp> get FreeBSD/install/boot/pxeboot +Received 264951 bytes in 0.1 seconds +.... +. Отредактируйте файл [.filename]#${NFSROOTDIR}/etc/fstab# и создайте запись для монтирования корневой файловой системы через NFS: ++ [.programlisting] .... -127.0.0.1 localhost.my.domain localhost -10.0.0.1 host1.my.domain host1 -10.0.0.2 host2.my.domain +# Device Mountpoint FSType Options Dump Pass +myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0 .... - -Чтобы проверить работу соединения, перейдите к каждому хосту и выполните тестирование соединения с другой машиной посредством команды ping. К примеру, на машине `host1`: - -[source,shell] ++ +Замените _myhost.example.com_ на имя хоста или IP-адрес сервера NFS. В этом примере корневая файловая система монтируется в режиме только для чтения, чтобы предотвратить возможное удаление содержимого корневой файловой системы клиентами NFS. +. Установите пароль root в среде PXE для клиентских машин, загружающихся через PXE: ++ +[source, shell] .... -# ifconfig lp0 -lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 -# netstat -r -Routing tables - -Internet: -Destination Gateway Flags Refs Use Netif Expire -host2 host1 UH 0 0 lp0 -# ping -c 4 host2 -PING host2 (10.0.0.2): 56 data bytes -64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms -64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms -64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms -64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms - ---- host2 ping statistics --- -4 packets transmitted, 4 packets received, 0% packet loss -round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms +# chroot ${NFSROOTDIR} +# passwd .... -[[network-ipv6]] -== IPv6 +. При необходимости разрешите вход root по man:ssh[1] для клиентских машин, загружающихся через PXE, отредактировав [.filename]#${NFSROOTDIR}/etc/ssh/sshd_config# и включив `PermitRootLogin`. Эта опция описана в man:sshd_config[5]. +. Выполните другие необходимые настройки PXE-окружения в [.filename]#${NFSROOTDIR}#. Эти настройки могут включать установку пакетов или редактирование файла паролей с помощью man:vipw[8]. -IPv6 (также называемый IPng "IP next generation" - следующее поколение IP) является новой версией широко известного протокола IP (называемого также IPv4). Как и другие современные системы *BSD, FreeBSD включает эталонную реализацию IPv6 от KAME. Так что система FreeBSD поставляется со всем, что вам нужно для экспериментирования с IPv6. Этот раздел посвящён настройке и запуску в работу IPv6. +При загрузке с корневого тома NFS, [.filename]#/etc/rc# определяет загрузку по NFS и запускает [.filename]#/etc/rc.initdiskless#. В этом случае [.filename]#/etc# и [.filename]#/var# должны быть файловыми системами в памяти, чтобы эти каталоги были доступны для записи, тогда как корневой каталог NFS доступен только для чтения: -В начале 1990-х люди стали беспокоиться о быстро иссякающем адресном пространстве IPv4. Принимая во внимание темпы роста Интернет, имелись основные проблемы: - -* Нехватка адресов. Сегодня это не такая большая проблема, так как стали применяться адресные пространства для частных сетей (RFC1918) (`10.0.0.0/8`, `172.16.0.0/12` и `192.168.0.0/24`) и технология преобразования сетевых адресов (NAT - Network Address Translation). -* Таблицы маршрутов становятся чересчур большими. Это всё ещё является проблемой сегодня. - -IPv6 решает эти и многие другие вопросы: - -* 128-битное адресное пространство. Другими словами, теоретически доступны 340,282,366,920,938,463,463,374,607,431,768,211,456 адреса. Это означает плотность примерно в 6.67 * 10^27 адресов IPv6 на квадратный метр нашей планеты. -* Маршрутизаторы будут хранить в своих таблицах только агрегированные адреса сетей, что уменьшает средний размер таблицы маршрутизации до 8192 записей. - -Имеется также множество других полезных особенностей IPv6, таких, как: - -* Автоматическая настройка адреса (http://www.ietf.org/rfc/rfc2462.txt[RFC2462]) -* Групповые адреса ("один к нескольким из многих") -* Обязательные адреса множественной рассылки -* IPsec (IP security - безопасный IP) -* Упрощённая структура заголовка -* Мобильный IP -* Механизмы преобразования IPv6-в-IPv4 - -Для получения дополнительной информации посмотрите: +[source, shell] +.... +# chroot ${NFSROOTDIR} +# mkdir -p conf/base +# tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc +# tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip var +.... -* Обзор IPv6 на сайте http://playground.sun.com/pub/ipng/html/ipng-main.html[playground.sun.com] -* http://www.kame.net[KAME.net] -* http://www.6bone.net[6bone.net] +При загрузке системы будут созданы и смонтированы файловые системы в памяти для [.filename]#/etc# и [.filename]#/var#, а содержимое файлов [.filename]#cpio.gz# будет скопировано в них. По умолчанию эти файловые системы имеют максимальный размер 5 мегабайт. Если ваши архивы не помещаются, что обычно происходит с [.filename]#/var# при установке бинарных пакетов, укажите больший размер, записав количество необходимых секторов по 512 байт (например, 5 мегабайт — это 10240 секторов) в файлы [.filename]#${NFSROOTDIR}/conf/base/etc/md_size# и [.filename]#${NFSROOTDIR}/conf/base/var/md_size# для файловых систем [.filename]#/etc# и [.filename]#/var# соответственно. -=== Основы адресации IPv6 +[[network-pxe-setting-up-dhcp]] +=== Настройка DHCP-сервера -Существуют различные типы адресов IPv6: одноадресные (Unicast), групповые (Anycast) и многоадресные (Multicast). +Сервер DHCP не обязательно должен быть тем же самым компьютером, что и серверы TFTP и NFS, но он должен быть доступен в сети. -Адреса типа Unicast хорошо всем известны. Пакет, посланный на такой адрес, достигает в точности интерфейса, который этому адресу соответствует. +DHCP не является частью базовой системы FreeBSD, но может быть установлен с помощью порта package:net/isc-dhcp44-server[] или пакета. -Адреса типа Anycast синтаксически неотличимы от адресов Unicast, но они адресуют группу интерфейсов. Пакет, направленный такому адресу, попадёт в ближайший (согласно метрике маршрутизатора) интерфейс. Адреса Anycast могут использоваться только маршрутизаторами. +После установки отредактируйте файл конфигурации [.filename]#/usr/local/etc/dhcpd.conf#. Настройте параметры `next-server`, `filename` и `root-path`, как показано в этом примере: -Адреса типа Multicast идентифицируют группу интерфейсов. Пакет, посланный на такой адрес, достигнет всех интерфейсов, привязанных к группе многоадресного вещания. +[.programlisting] +.... +subnet 192.168.0.0 netmask 255.255.255.0 { + range 192.168.0.2 192.168.0.3 ; + option subnet-mask 255.255.255.0 ; + option routers 192.168.0.1 ; + option broadcast-address 192.168.0.255 ; + option domain-name-servers 192.168.35.35, 192.168.35.36 ; + option domain-name "example.com"; -[NOTE] -==== -Широковещательные адреса IPv4 (обычно `xxx.xxx.xxx.255`) выражаются адресами многоадресного вещания IPv6. -==== + # IP address of TFTP server + next-server 192.168.0.1 ; -.Зарезервированные адреса IPv6 -[cols="1,1,1,1", frame="none", options="header"] -|=== -| IPv6 адрес -| Длина префикса (биты) -| Описание -| Заметки - -|`::` -|128 бит -|нет описания -|cf. `0.0.0.0` в IPv4 - -|`::1` -|128 бит -|loopback адрес -|cf. `127.0.0.1` в IPv4 - -|`::00:xx:xx:xx:xx` -|96 бит -|встроенный IPv4 -|Нижние 32 бита это адрес IPv4. Также называется "IPv4 совместимым IPv6 адресом" - -|`::ff:xx:xx:xx:xx` -|96 бит -|Адрес IPv6, отображенный на IPv4 -|Нижние 32 бита это адрес IPv4. Для хостов, не поддерживающих IPv6. - -|`fe80::` - `feb::` -|10 бит -|link-local -|cf. loopback адрес в IPv4 - -|`fec0::` - `fef::` -|10 бит -|site-local -| - -|`ff::` -|8 бит -|широковещательный -| - -|`001` (основание 2) -|3 бит -|global unicast -|Все global unicast адреса присваиваются из этого пула. Первые три бита "001". -|=== + # path of boot loader obtained via tftp + filename "FreeBSD/install/boot/pxeboot" ; -=== Чтение адресов IPv6 + # pxeboot boot loader will try to NFS mount this directory for root FS + option root-path "192.168.0.1:/b/tftpboot/FreeBSD/install/" ; -Каноническая форма представляется в виде `x:x:x:x:x:x:x:x`, где каждый символ "x" является 16-разрядным числом в шестнадцатеричной форме. К примеру, `FEBC:A574:382B:23C1:AA49:4592:4EFE:9982` +} +.... -Часто в адресе присутствуют длинные строчки, заполненные нулями, поэтому одна такая последовательность на адрес может быть сокращена до "::". Кроме того, до трех ведущих "0" на шестнадцатеричную четверку могут быть пропущены. К примеру, `fe80::1` соответствует канонической форме `fe80:0000:0000:0000:0000:0000:0000:0001`. +Директива `next-server` используется для указания IP-адреса TFTP-сервера. -В третьей форме последние 32 бита записываются в широко известном (десятичном) стиле IPv4 с точками "." в качестве разделителей. Например, `f2002::10.0.0.1` соответствует (шестнадцатеричному) каноническому представлению `2002:0000:0000:0000:0000:0000:0a00:0001`, которое, в свою очередь, равнозначно записи `2002::a00:1`. +Директива `filename` определяет путь к [.filename]#/boot/pxeboot#. Используется относительное имя файла, что означает, что [.filename]#/b/tftpboot# не включен в путь. -Теперь читатель должен понять следующую запись: +Опция `root-path` определяет путь к корневой файловой системе NFS. -[source,shell] -.... -# ifconfig -.... +После сохранения изменений включите DHCP при загрузке, добавив следующую строку в [.filename]#/etc/rc.conf#: [.programlisting] .... -rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 - inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255 - inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1 - ether 00:00:21:03:08:e1 - media: Ethernet autoselect (100baseTX ) - status: active +dhcpd_enable="YES" .... -`fe80::200:21ff:fe03:8e1%rl0` является автоматически настроенным локальным адресом. Он генерируется из MAC адреса в процессе автоматической конфигурации. - -Для получения дополнительной информации о структуре адресов IPv6 обратитесь к http://www.ietf.org/rfc/rfc3513.txt[RFC3513]. +Затем запустите службу DHCP: -=== Настройка подключения - -На данный момент существуют четыре способа подключиться к другим хостам и сетям IPv6: - -* Подключиться к экспериментальному 6bone -* Получить сеть IPv6 от вышестоящего провайдера. Для получения рекомендаций обратитесь к вашему провайдеру Интернет. -* Туннелировать посредством 6-в-4 (http://www.ietf.org/rfc/rfc3068.txt[RFC3068]) -* Использовать порт package:net/freenet6[], если вы используете коммутируемое соединение. - -Здесь мы будем рассматривать подключение к 6bone, так как на данный момент это является самым популярным способом. - -Сначала взгляните на сайт http://www.6bone.net/[6bone] и найдите ближайшую к вам точку подключения к 6bone. Напишите ответственному и при некоторой удаче вам дадут инструкции по настройке соединения. Обычно это касается настройки туннеля GRE (gif). - -Вот типичный пример настройки туннеля man:gif[4]: - -[source,shell] +[source, shell] .... -# ifconfig gif0 create -# ifconfig gif0 -gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 -# ifconfig gif0 tunnel MY_IPv4_ADDR MY_IPv4_REMOTE_TUNNEL_ENDPOINT_ADDR -# ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR +# service isc-dhcpd start .... -Замените слова, написанные заглавными буквами, информацией, которую вам дал вышестоящий узел 6bone. - -При этом установится туннель. Проверьте работу туннеля утилитой man:ping6[8] с адресом `ff02::1%gif0`. Вы должны получить два положительных ответа. +=== Отладка проблем PXE -[NOTE] -==== -Если вы заинтригованы адресом `ff02:1%gif0`, скажем, что это адрес многоадресного вещания. `%gif0` указывает на использование такого адреса с сетевым интерфейсом [.filename]#gif0#. Так как мы выполняем `ping` над адресом многоадресного вещания, то другая сторона туннеля также должна ответить. -==== +После настройки и запуска всех служб клиенты PXE должны автоматически загружать FreeBSD по сети. Если конкретный клиент не может подключиться, при загрузке этой машины войдите в меню конфигурации BIOS и убедитесь, что она настроена на загрузку с сети. -Теперь настройка маршрута к вашей вышестоящей точке подключения 6bone должна быть весьма проста: +Этот раздел содержит несколько советов по устранению неполадок для выявления источника проблемы с конфигурацией, если клиенты не могут загрузиться через PXE. -[source,shell] +[.procedure] +**** +. Используйте пакет package:net/wireshark[] или порт для отладки сетевого трафика, задействованного в процессе загрузки по PXE, который показан на схеме ниже. ++ +.Процесс загрузки PXE с монтированием корневой файловой системы по NFS +image::pxe-nfs.png[] ++ +1. Клиент рассылает широковещательное сообщение DHCPDISCOVER. ++ +2. Сервер DHCP отвечает с указанием IP-адреса, next-server, filename и значений root-path. ++ +3. Клиент отправляет запрос TFTP на next-server, запрашивая получение файла filename. ++ +4. Сервер TFTP отвечает и отправляет имя файла клиенту. ++ +5. Клиент выполняет файл `pxeboot(8)`, который затем загружает ядро. При запуске ядра корневая файловая система, указанная в `root-path`, монтируется через NFS. ++ +. На TFTP-сервере прочитайте [.filename]#/var/log/xferlog#, чтобы убедиться, что [.filename]#pxeboot# загружается из правильного места. Для проверки конфигурации, сделанной для этого примера: ++ +[source, shell] .... -# route add -inet6 default -interface gif0 -# ping6 -n MY_UPLINK +# tftp 192.168.0.1 +tftp> get FreeBSD/install/boot/pxeboot +Received 264951 bytes in 0.1 seconds .... - -[source,shell] ++ +Разделы `BUGS` в man:tftpd[8] и man:tftp[1] описывают некоторые ограничения TFTP. +. Убедитесь, что корневая файловая система может быть смонтирована через NFS. Для проверки конфигурации из этого примера: ++ +[source, shell] .... -# traceroute6 www.jp.FreeBSD.org -(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets - 1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms - 2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms * - 3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms - 4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms - 5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms - 6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 ms +# mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mnt .... - -Эта выдача будет отличаться от машины к машине. Теперь вы должны суметь достигнуть сайта IPv6 http://www.kame.net[www.kame.net] и увидеть танцующую черепаху - в случае, если ваш браузер поддерживает IPv6, как, например, package:www/mozilla[] или Konqueror, который входит в package:x11/kdebase3[], или package:www/epiphany[]. - -=== DNS в мире IPv6 - -Для IPv6 использовались два типа записей DNS. IETF объявил записи A6 устаревшими. Стандартом на данный момент являются записи AAAA. - -Использование записей AAAA достаточно просто. Назначение вашему имени хоста нового адреса IPv6 достигается просто добавлением: - -[.programlisting] ++ +. Для загрузки по PXE на UEFI замените файл [.filename]#boot/pxeboot# на файл [.filename]#boot/loader.efi#: +[source, shell] .... -MYHOSTNAME AAAA MYIPv6ADDR +# chroot ${NFSROOTDIR} +# mv boot/pxeboot boot/pxeboot.original +# cp boot/loader.efi boot/pxeboot .... +**** -к вашему первичному файлу DNS зоны. В случае, если вы не обслуживаете собственные зоны DNS, обратитесь к вашему провайдеру DNS. Имеющиеся версии bind (версий 8.3 и 9) и package:dns/djbdns[] (с патчем IPv6) поддерживают записи AAAA. - -=== Внесение необходимых изменений в [.filename]#/etc/rc.conf# +[[carp]] +== Протокол общей избыточности адресов (CARP) -==== Настройки клиентов IPv6 +Протокол общей избыточности адресов (CARP) позволяет нескольким хостам использовать один и тот же IP-адрес и идентификатор виртуального хоста (VHID) для обеспечения _высокой доступности_ одной или нескольких служб. Это означает, что при отказе одного или нескольких хостов остальные хосты прозрачно возьмут на себя их функции, чтобы пользователи не заметили сбоя в работе службы. -Эти установки помогут вам настроить компьютер, который будет работать в сети как клиент, а не как маршрутизатор. Для включения настройки интерфейсов через man:rtsol[8] при загрузке, все, что вам потребуется, это добавить следующую строку: +В дополнение к общему IP-адресу каждый узел имеет собственный IP-адрес для управления и настройки. Все машины, которые используют общий IP-адрес, имеют одинаковый VHID. для каждого виртуального IP-адреса VHID должен быть уникальным в пределах широковещательного домена сетевого интерфейса. -[.programlisting] -.... -ipv6_enable="YES" -.... - -Для статического присвоения IP адреса, такого как `2001:471:1f11:251:290:27ff:fee0:2093`, интерфейсу [.filename]#fxp0#, добавьте: - -[.programlisting] -.... -ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093" -.... +Высокая доступность с использованием CARP встроена в FreeBSD, хотя шаги по её настройке немного различаются в зависимости от версии FreeBSD. В этом разделе приведён одинаковый пример конфигурации для версий до и начиная с FreeBSD 10. -Для назначения маршрутизатором по умолчанию `2001:471:1f11:251::1`, добавьте следующую строку к [.filename]#/etc/rc.conf#: - -[.programlisting] -.... -ipv6_defaultrouter="2001:471:1f11:251::1" -.... +Этот пример настраивает поддержку отказоустойчивости с тремя хостами, каждый из которых имеет уникальный IP-адрес, но предоставляет одинаковое веб-содержимое. В нем есть два разных основных хоста с именами `hosta.example.org` и `hostb.example.org`, а также общий резервный хост с именем `hostc.example.org`. -==== Настройки маршрутизатора/шлюза IPv6 +Эти машины балансируют нагрузку с помощью конфигурации DNS Round Robin. Основная и резервная машины настроены идентично, за исключением их имён хостов и управляющих IP-адресов. Эти серверы должны иметь одинаковую конфигурацию и запускать одинаковые службы. При возникновении переключения, запросы к службе на общем IP-адресе могут быть корректно обработаны только если резервный сервер имеет доступ к тому же содержимому. Резервная машина имеет два дополнительных интерфейса CARP, по одному для каждого из IP-адресов основного сервера содержимого. При возникновении сбоя, резервный сервер возьмёт IP-адрес вышедшей из строя основной машины. -Этот раздел поможет вам использовать инструкции, которые выдал провайдер туннеля, например, http://www.6bone.net/[6bone], и сделать эти настройки постоянными. Для восстановления туннеля при загрузке системы используйте в [.filename]#/etc/rc.conf# нижеприведенные настройки. +[[carp-10x]] +=== Использование CARP -Задайте список туннельных интерфейсов (Generic Tunneling interfaces), которые необходимо настроить, например [.filename]#gif0#: +Включите поддержку CARP при загрузке, добавив запись для модуля ядра [.filename]#carp.ko# в [.filename]#/boot/loader.conf#: [.programlisting] .... -gif_interfaces="gif0" +carp_load="YES" .... -Для настройки интерфейса с локальным подключением на _MY_IPv4_ADDR_ к удаленной точке _REMOTE_IPv4_ADDR_: +Чтобы сейчас загрузить модуль без перезагрузки: -[.programlisting] +[source, shell] .... -gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR" +# kldload carp .... -Для включения IPv6 адреса, который был вам присвоен для использования в подключении к туннелю IPv6, добавьте: +Для пользователей, которые предпочитают использовать собственное ядро, добавьте следующую строку в файл конфигурации ядра и скомпилируйте его, как описано в crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]: [.programlisting] .... -ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR" +device carp .... -Затем все, что вам потребуется сделать, это добавить маршрут по умолчанию для IPv6. Это другая сторона туннеля IPv6: +Имя хоста, управляющий IP-адрес и маска подсети, общий IP-адрес и VHID задаются путем добавления записей в [.filename]#/etc/rc.conf#. Этот пример для `hosta.example.org`: [.programlisting] .... -ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR" +hostname="hosta.example.org" +ifconfig_em0="inet 192.168.1.3 netmask 255.255.255.0" +ifconfig_em0_alias0="inet vhid 1 pass testpass alias 192.168.1.50/32" .... -==== Настройка туннелирования IPv6 - -Если сервер будет обеспечивать маршрутизацию между вашей сетью и остальным миром, то в файле [.filename]#/etc/rc.conf# понадобится следующая строка: +Следующий набор записей предназначен для `hostb.example.org`. Поскольку он представляет второй мастер, используется другой общий IP-адрес и VHID. Однако пароли, указанные с помощью `pass`, должны быть идентичными, так как CARP будет принимать и обрабатывать объявления только от машин с правильным паролем. [.programlisting] .... -ipv6_gateway_enable="YES" +hostname="hostb.example.org" +ifconfig_em0="inet 192.168.1.4 netmask 255.255.255.0" +ifconfig_em0_alias0="inet vhid 2 pass testpass alias 192.168.1.51/32" .... -=== Распространение маршрутов и автоматическая настройка хостов - -Этот раздел поможет вам настроить man:rtadvd[8] для распространения маршрута IPv6 по умолчанию. - -Для включения man:rtadvd[8] вам понадобится добавить в [.filename]#/etc/rc.conf# следующую строку: +Третья машина, `hostc.example.org`, настроена для обработки перехода на резервный сервер от любого из основных. Эта машина настроена с двумя CARPVHID, по одному для обработки виртуального IP-адреса каждого из основных хостов. Значение advskew (временной сдвиг анонсов CARP) обеспечивает задержку в отправке анонсов резервным сервером по сравнению с основным, поскольку `advskew` контролирует порядок приоритета при наличии нескольких резервных серверов. [.programlisting] .... -rtadvd_enable="YES" +hostname="hostc.example.org" +ifconfig_em0="inet 192.168.1.5 netmask 255.255.255.0" +ifconfig_em0_alias0="inet vhid 1 advskew 100 pass testpass alias 192.168.1.50/32" +ifconfig_em0_alias1="inet vhid 2 advskew 100 pass testpass alias 192.168.1.51/32" .... -Важно указать интерфейс, на котором выполняется запрос маршрутизатора IPv6. Например, для указания man:rtadvd[8] использовать [.filename]#fxp0#: - -[.programlisting] -.... -rtadvd_interfaces="fxp0" -.... +Наличие двух настроенных CARPVHID означает, что `hostc.example.org` заметит, если один из главных серверов станет недоступен. Если главный сервер не отправит объявление раньше резервного сервера, резервный сервер возьмёт на себя общий IP-адрес до тех пор, пока главный сервер снова не станет доступен. -Теперь мы должны создать файл настройки, [.filename]#/etc/rtadvd.conf#. Вот пример: +[NOTE] +==== +Если исходный главный сервер снова станет доступен, `hostc.example.org` не освободит виртуальный IP-адрес автоматически. Чтобы это произошло, необходимо включить вытеснение. Эта функция отключена по умолчанию и управляется через переменную man:sysctl[8] `net.inet.carp.preempt`. Администратор может принудительно вернуть IP-адрес главному серверу с резервного сервера: -[.programlisting] +[source, shell] .... -fxp0:\ - :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether: +# ifconfig em0 vhid 1 state backup .... -Замените [.filename]#fxp0# на интерфейс, который вы будете использовать. - -Затем, замените `2001:471:1f11:246::` на префикс вашего размещения. - -Если у вас выделенная подсеть `/64`, больше ничего менять не потребуется. Иначе, вам потребуется изменить `prefixlen#` на корректное значение. - -[[network-atm]] -== Асинхронный режим передачи (ATM) - -=== Классическая настройка IP через ATM (PVC) - -Классический IP через ATM (CLIP) это простейший метод использования асинхронного режима передачи (Asynchronous Transfer Mode, ATM) с IP. Он может быть использован с коммутируемыми подключениями (switched connections, SVC) и с постоянными подключениями (permanent connections, PVC). В этом разделе будет описано как настроить сеть на основе PVC. - -==== Полностью объединенные конфигурации - -Первый метод для настройки CLIP с PVC это подключение каждого компьютера к каждому в сети с выделенным PVC. Хотя настройка проста, она непрактична для большого количества компьютеров. В примере предполагается, что в сети есть четыре компьютера, каждый подключенный к ATM сети с помощью карты ATM адаптера. Первый шаг это планирование IP адресов и ATM подключений между компьютерами. Мы используем: - -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| Хост -| IP адрес - -|`hostA` -|`192.168.173.1` - -|`hostB` -|`192.168.173.2` - -|`hostC` -|`192.168.173.3` +==== -|`hostD` -|`192.168.173.4` -|=== +Как только настройка завершена, перезапустите сеть или перезагрузите каждую систему. Высокая доступность теперь включена. -Для сборки полностью объединенной сети нам потребуется по одному ATM соединению между каждой парой компьютеров: +Функциональность CARP может управляться с помощью нескольких переменных man:sysctl[8], описанных в man:carp[4]. Другие действия могут быть запущены при событиях CARP с использованием man:devd[8]. -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| Компьютеры -| VPI.VCI соединение +[[network-vlan]] +== Виртуальные сети VLAN -|`hostA` - `hostB` -|0.100 +Виртуальные локальные сети (VLAN) — это способ виртуального разделения сети на множество различных подсетей, также называемый сегментированием. Каждый сегмент будет иметь свою собственную широковещательную область и быть изолированным от других VLAN. -|`hostA` - `hostC` -|0.101 +На FreeBSD поддержка VLAN должна быть обеспечена драйвером сетевой карты. Чтобы узнать, какие драйверы поддерживают VLAN, обратитесь к странице руководства man:vlan[4]. -|`hostA` - `hostD` -|0.102 +При настройке VLAN необходимо знать несколько параметров. Во-первых, какой сетевой интерфейс? Во-вторых, какой тег VLAN? -|`hostB` - `hostC` -|0.103 +Для настройки VLAN во время выполнения, с сетевой картой `em0` и тегом VLAN `5`, команда будет выглядеть следующим образом: -|`hostB` - `hostD` -|0.104 +[source, shell] +.... +# ifconfig em0.5 create vlan 5 vlandev em0 inet 192.168.20.20/24 +.... -|`hostC` - `hostD` -|0.105 -|=== +[NOTE] +==== +Видите, что имя интерфейса состоит из имени драйвера сетевой карты и тега VLAN, разделенных точкой? Это рекомендуемая практика для упрощения работы с конфигурациями VLAN, когда на машине присутствует множество VLAN. +==== -Значения VPI и VCI на каждом конце соединения конечно могут отличаться, но для упрощения мы предполагаем, что они одинаковы. Затем нам потребуется настроить ATM интерфейсы на каждом хосте: +[NOTE] +==== +При определении VLAN убедитесь, что родительский сетевой интерфейс также настроен и включен. Минимальная конфигурация для приведенного выше примера будет следующей: -[source,shell] +[source, shell] .... -hostA# ifconfig hatm0 192.168.173.1 up -hostB# ifconfig hatm0 192.168.173.2 up -hostC# ifconfig hatm0 192.168.173.3 up -hostD# ifconfig hatm0 192.168.173.4 up +# ifconfig em0 up .... +==== -предполагая, что ATM интерфейс называется [.filename]#hatm0# на всех хостах. Теперь PVC необходимо настроить на `hostA` (мы предполагаем, что ATM коммутаторы уже настроены, вам необходимо свериться с руководством на коммутатор за информацией по настройке). +Для настройки VLAN при загрузке необходимо обновить файл [.filename]#/etc/rc.conf#. Чтобы повторить приведённую выше конфигурацию, нужно добавить следующее: -[source,shell] +[.programlisting] +.... +vlans_em0="5" +ifconfig_em0_5="inet 192.168.20.20/24" .... -hostA# atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr -hostA# atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr -hostA# atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr -hostB# atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr -hostB# atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr -hostB# atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr +Дополнительные VLAN могут быть добавлены путём простого дополнения тега в поле `vlans_em0` и добавления дополнительной строки для настройки сети на интерфейсе с этим тегом VLAN. -hostC# atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr -hostC# atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr -hostC# atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr +[NOTE] +==== +При определении VLAN в [.filename]#/etc/rc.conf# убедитесь, что родительский сетевой интерфейс также настроен и включен. Минимальная конфигурация для приведенного выше примера будет следующей: -hostD# atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr -hostD# atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr -hostD# atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr +[.programlisting] +.... +ifconfig_em0="up" .... +==== + +Полезно присвоить интерфейсу символическое имя, чтобы при изменении связанного оборудования требовалось обновить лишь несколько переменных конфигурации. Например, камеры наблюдения должны работать через VLAN 1 на `em0`. Позже, если карта `em0` будет заменена на карту с драйвером man:ixgb[4], все упоминания `em0.1` не нужно будет изменять на `ixgb0.1`. -Конечно, вместо UBR может быть использован другой тип, если ATM адаптер поддерживает это. В этом случае имя типа дополняется параметрами трафика. Помощь по man:atmconfig[8] может быть получена командой: +Для настройки VLAN `5` на сетевой карте `em0`, назначения интерфейсу имени `cameras` и присвоения интерфейсу IP-адреса `_192.168.20.20_` с `24`-битным префиксом используйте следующую команду: -[source,shell] +[source, shell] .... -# atmconfig help natm add +# ifconfig em0.5 create vlan 5 vlandev em0 name cameras inet 192.168.20.20/24 .... -или на странице справочника man:atmconfig[8]. - -Та же настройка может быть выполнена через [.filename]#/etc/rc.conf#. Для `hostA` это будет выглядеть примерно так: +Для интерфейса с именем `video` используйте следующее: -[.programlisting] +[source, shell] .... -network_interfaces="lo0 hatm0" -ifconfig_hatm0="inet 192.168.173.1 up" -natm_static_routes="hostB hostC hostD" -route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr" -route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr" -route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr" +# ifconfig video.5 create vlan 5 vlandev video name cameras inet 192.168.20.20/24 .... -Текущий статус всех маршрутов CLIP может быть получен командой: +Чтобы применить изменения при загрузке, добавьте следующие строки в [.filename]#/etc/rc.conf#: -[source,shell] +[.programlisting] .... -hostA# atmconfig natm show +vlans_video="cameras" +create_args_cameras="vlan 5" +ifconfig_cameras="inet 192.168.20.20/24" .... diff --git a/documentation/content/ru/books/handbook/advanced-networking/_index.po b/documentation/content/ru/books/handbook/advanced-networking/_index.po new file mode 100644 index 0000000000..b8239d1b2c --- /dev/null +++ b/documentation/content/ru/books/handbook/advanced-networking/_index.po @@ -0,0 +1,6227 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-09-23 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookadvanced-networking_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1 +#, no-wrap +msgid "Advanced networking in FreeBSD: basics of gateways and routes, CARP, how to configure multiple VLANs on FreeBSD, etc" +msgstr "Сложные вопросы работы в сети в FreeBSD: основы шлюзов и маршрутов, CARP, настройка нескольких VLAN в FreeBSD и так далее" + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1 +#, no-wrap +msgid "IV. Network Communication" +msgstr "IV. Сетевое взаимодействие" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1 +#, no-wrap +msgid "Chapter 34. Advanced Networking" +msgstr "Глава 34. Сложные вопросы работы в сети" + +#. type: Title = +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:15 +#, no-wrap +msgid "Advanced Networking" +msgstr "Сложные вопросы работы в сети" + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:56 +msgid "This chapter covers a number of advanced networking topics." +msgstr "Эта глава охватывает ряд сложных тем, связанных с сетями." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:58 +msgid "After reading this chapter, you will know:" +msgstr "Прочитав эту главу, вы будете знать:" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:60 +msgid "The basics of gateways and routes." +msgstr "Основы шлюзов и маршрутов." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:61 +msgid "How to set up USB tethering." +msgstr "Как настроить USB-тетеринг." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:62 +msgid "How to set up IEEE(R) 802.11 and Bluetooth(R) devices." +msgstr "Как настроить устройства IEEE(R) 802.11 и Bluetooth(R)." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:63 +msgid "How to make FreeBSD act as a bridge." +msgstr "Как сделать так, чтобы система FreeBSD работала как мост." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:64 +msgid "How to set up network PXE booting." +msgstr "Как настроить загрузку системы из сети с помощью PXE." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:65 +msgid "" +"How to enable and utilize the features of the Common Address Redundancy " +"Protocol (CARP) in FreeBSD." +msgstr "" +"Как включить и использовать возможности протокола Common Address Redundancy " +"Protocol (CARP) в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:66 +msgid "How to configure multiple VLANs on FreeBSD." +msgstr "Как настроить несколько VLAN в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:67 +msgid "Configure bluetooth headset." +msgstr "Как настроить гарнитуру Bluetooth." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:69 +msgid "Before reading this chapter, you should:" +msgstr "Прежде чем читать эту главу, вы должны:" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:71 +msgid "Understand the basics of the [.filename]#/etc/rc# scripts." +msgstr "Понимать основы скриптов [.filename]#/etc/rc#." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:72 +msgid "Be familiar with basic network terminology." +msgstr "Знать основные термины и понятия сетевых технологий." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:73 +msgid "" +"Understand basic network configuration on FreeBSD " +"(crossref:network[network,FreeBSD network])." +msgstr "" +"Понимать базовые настройки сети в FreeBSD (crossref:network[network,Сеть " +"FreeBSD])." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:74 +msgid "" +"Know how to configure and install a new FreeBSD kernel " +"(crossref:kernelconfig[kernelconfig,Configuring the FreeBSD Kernel])." +msgstr "" +"Знать, как настроить и установить новое ядро FreeBSD " +"(crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD])." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:75 +msgid "" +"Know how to install additional third-party software " +"(crossref:ports[ports,Installing Applications: Packages and Ports])." +msgstr "" +"Знать, как устанавливать дополнительное стороннее программное обеспечение " +"(crossref:ports[ports,Установка приложений: Пакеты и Порты])." + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:77 +#, no-wrap +msgid "Gateways and Routes" +msgstr "Шлюзы и Маршруты" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:86 +msgid "" +"_Routing_ is the mechanism that allows a system to find the network path to " +"another system. A _route_ is a defined pair of addresses which represent " +"the \"destination\" and a \"gateway\". The route indicates that when trying " +"to get to the specified destination, send the packets through the specified " +"gateway. There are three types of destinations: individual hosts, subnets, " +"and \"default\". The \"default route\" is used if no other routes apply. " +"There are also three types of gateways: individual hosts, interfaces, also " +"called links, and Ethernet hardware (MAC) addresses. Known routes are " +"stored in a routing table." +msgstr "" +"_Маршрутизация_ — это механизм, позволяющий системе находить сетевой путь к " +"другой системе. _Маршрут_ — это определенная пара адресов, представляющих " +"\"назначение\" и \"шлюз\". Маршрут указывает, что при попытке достичь " +"указанного назначения пакеты должны отправляться через указанный шлюз. " +"Существует три типа назначений: отдельные хосты, подсети и \"маршрут по " +"умолчанию\". \"Маршрут по умолчанию\" используется, если не подходит ни один " +"другой маршрут. Также существует три типа шлюзов: отдельные хосты, " +"интерфейсы (также называемые линками) и аппаратные (MAC) адреса Ethernet. " +"Известные маршруты хранятся в таблице маршрутизации." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:89 +msgid "" +"This section provides an overview of routing basics. It then demonstrates " +"how to configure a FreeBSD system as a router and offers some " +"troubleshooting tips." +msgstr "" +"В этом разделе представлен обзор основ маршрутизации. Затем показано, как " +"настроить систему FreeBSD в качестве маршрутизатора, и даны некоторые советы " +"по устранению неполадок." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:91 +#, no-wrap +msgid "Routing Basics" +msgstr "Основы маршрутизации" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:94 +msgid "To view the routing table of a FreeBSD system, use man:netstat[1]:" +msgstr "" +"Для просмотра таблицы маршрутизации системы FreeBSD используйте " +"man:netstat[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:99 +#, no-wrap +msgid "" +"% netstat -r\n" +"Routing tables\n" +msgstr "" +"% netstat -r\n" +"Routing tables\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:111 +#, no-wrap +msgid "" +"Internet:\n" +"Destination Gateway Flags Refs Use Netif Expire\n" +"default outside-gw UGS 37 418 em0\n" +"localhost localhost UH 0 181 lo0\n" +"test0 0:e0:b5:36:cf:4f UHLW 5 63288 re0 77\n" +"10.20.30.255 link#1 UHLW 1 2421\n" +"example.com link#1 UC 0 0\n" +"host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0\n" +"host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>\n" +"host2.example.com link#1 UC 0 0\n" +"224 link#1 UC 0 0\n" +msgstr "" +"Internet:\n" +"Destination Gateway Flags Refs Use Netif Expire\n" +"default outside-gw UGS 37 418 em0\n" +"localhost localhost UH 0 181 lo0\n" +"test0 0:e0:b5:36:cf:4f UHLW 5 63288 re0 77\n" +"10.20.30.255 link#1 UHLW 1 2421\n" +"example.com link#1 UC 0 0\n" +"host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0\n" +"host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>\n" +"host2.example.com link#1 UC 0 0\n" +"224 link#1 UC 0 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:114 +msgid "The entries in this example are as follows:" +msgstr "Записи в этом примере следующие:" + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:115 +#, no-wrap +msgid "default" +msgstr "default" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:119 +msgid "" +"The first route in this table specifies the `default` route. When the local " +"system needs to make a connection to a remote host, it checks the routing " +"table to determine if a known path exists. If the remote host matches an " +"entry in the table, the system checks to see if it can connect using the " +"interface specified in that entry." +msgstr "" +"Первый маршрут в этой таблице указывает маршрут по умолчанию (`default`). " +"Когда локальной системе требуется установить соединение с удалённым узлом, " +"она проверяет таблицу маршрутизации, чтобы определить, существует ли " +"известный путь. Если удалённый узел соответствует записи в таблице, система " +"проверяет, может ли она подключиться, используя интерфейс, указанный в этой " +"записи." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:123 +msgid "" +"If the destination does not match an entry, or if all known paths fail, the " +"system uses the entry for the default route. For hosts on a local area " +"network, the `Gateway` field in the default route is set to the system which " +"has a direct connection to the Internet. When reading this entry, verify " +"that the `Flags` column indicates that the gateway is usable (`UG`)." +msgstr "" +"Если назначение не соответствует ни одной записи или если все известные пути " +"недоступны, система использует запись для маршрута по умолчанию. Для хостов " +"в локальной сети поле `Gateway` в маршруте по умолчанию указывает на " +"систему, имеющую прямое подключение к Интернету. При чтении этой записи " +"убедитесь, что столбец `Flags` указывает на то, что шлюз доступен (`UG`)." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:125 +msgid "" +"The default route for a machine which itself is functioning as the gateway " +"to the outside world will be the gateway machine at the Internet Service " +"Provider (ISP)." +msgstr "" +"Маршрут по умолчанию для машины, которая сама функционирует как шлюз во " +"внешний мир, будет шлюзом провайдера интернет-услуг (ISP)." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:126 +#, no-wrap +msgid "localhost" +msgstr "localhost" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:130 +msgid "" +"The second route is the `localhost` route. The interface specified in the " +"`Netif` column for `localhost` is [.filename]#lo0#, also known as the " +"loopback device. This indicates that all traffic for this destination " +"should be internal, rather than sending it out over the network." +msgstr "" +"Второй маршрут — это маршрут `localhost`. Интерфейс, указанный в столбце " +"`Netif` для `localhost`, — это [.filename]#lo0#, также известное как " +"loopback-устройство. Это означает, что весь трафик для этого назначения " +"должен быть внутренним, а не отправляться через сеть." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:131 +#, no-wrap +msgid "MAC address" +msgstr "MAC адрес" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:137 +msgid "" +"The addresses beginning with `0:e0:` are MAC addresses. FreeBSD will " +"automatically identify any hosts, `test0` in the example, on the local " +"Ethernet and add a route for that host over the Ethernet interface, " +"[.filename]#re0#. This type of route has a timeout, seen in the `Expire` " +"column, which is used if the host does not respond in a specific amount of " +"time. When this happens, the route to this host will be automatically " +"deleted. These hosts are identified using the Routing Information Protocol " +"(RIP), which calculates routes to local hosts based upon a shortest path " +"determination." +msgstr "" +"Адреса, начинающиеся с `0:e0:`, являются MAC-адресами. FreeBSD автоматически " +"определит любые хосты, например `test0`, в локальной сети Ethernet и добавит " +"маршрут для этого хоста через интерфейс Ethernet [.filename]#re0#. Такой " +"маршрут имеет время жизни, указанное в столбце `Expire`, которое " +"используется, если хост не отвечает в течение определённого времени. В этом " +"случае маршрут к этому хосту будет автоматически удалён. Эти хосты " +"определяются с помощью Протокола маршрутной информации (RIP — Routing " +"Information Protocol), который вычисляет маршруты к локальным хостам на " +"основе определения кратчайшего пути." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:138 +#, no-wrap +msgid "subnet" +msgstr "subnet" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:142 +msgid "" +"FreeBSD will automatically add subnet routes for the local subnet. In this " +"example, `10.20.30.255` is the broadcast address for the subnet `10.20.30` " +"and `example.com` is the domain name associated with that subnet. The " +"designation `link#1` refers to the first Ethernet card in the machine." +msgstr "" +"FreeBSD автоматически добавит маршруты для локальной подсети. В этом примере " +"`10.20.30.255` — это широковещательный адрес для подсети `10.20.30`, а " +"`example.com` — доменное имя, связанное с этой подсетью. Обозначение " +"`link#1` относится к первой Ethernet-карте в машине." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:145 +msgid "" +"Local network hosts and local subnets have their routes automatically " +"configured by a daemon called man:routed[8]. If it is not running, only " +"routes which are statically defined by the administrator will exist." +msgstr "" +"Локальные хосты сети и локальные подсети автоматически получают маршруты " +"через демон man:routed[8]. Если он не запущен, будут существовать только " +"маршруты, статически определённые администратором." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:146 +#, no-wrap +msgid "host" +msgstr "host" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:149 +msgid "" +"The `host1` line refers to the host by its Ethernet address. Since it is " +"the sending host, FreeBSD knows to use the loopback interface " +"([.filename]#lo0#) rather than the Ethernet interface." +msgstr "" +"Строка `host1` ссылается на хост по его Ethernet-адресу. Поскольку это " +"отправляющий хост, FreeBSD использует loopback-интерфейс ([.filename]#lo0#) " +"вместо Ethernet-интерфейса." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:153 +msgid "" +"The two `host2` lines represent aliases which were created using " +"man:ifconfig[8]. The `=>` symbol after the [.filename]#lo0# interface says " +"that an alias has been set in addition to the loopback address. Such routes " +"only show up on the host that supports the alias and all other hosts on the " +"local network will have a `link#1` line for such routes." +msgstr "" +"Две строки `host2` представляют собой псевдонимы, созданные с помощью " +"man:ifconfig[8]. Символ `=>` после интерфейса [.filename]#lo0# указывает, " +"что помимо loopback-адреса был установлен псевдоним. Такие маршруты " +"отображаются только на хосте, поддерживающем псевдоним, а все остальные " +"хосты в локальной сети будут иметь строку `link#1` для таких маршрутов." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:154 +#, no-wrap +msgid "224" +msgstr "224" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:156 +msgid "The final line (destination subnet `224`) deals with multicasting." +msgstr "" +"Последняя строка (подсеть назначения `224`) относится к многоадресной " +"рассылке." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:159 +msgid "" +"Various attributes of each route can be seen in the `Flags` column. " +"crossref:advanced-networking[routeflags,Commonly Seen Routing Table Flags] " +"summarizes some of these flags and their meanings:" +msgstr "" +"Различные атрибуты каждого маршрута можно увидеть в столбце `Flags`. " +"crossref:advanced-networking[routeflags,Часто встречающиеся флаги таблицы " +"маршрутизации] содержит сводку некоторых из этих флагов и их значений:" + +#. type: Block title +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:161 +#, no-wrap +msgid "Commonly Seen Routing Table Flags" +msgstr "Часто встречающиеся флаги таблицы маршрутизации" + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:165 +#, no-wrap +msgid "Flag" +msgstr "Flag" + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:167 +#, no-wrap +msgid "Purpose" +msgstr "Назначение" + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:168 +#, no-wrap +msgid "U" +msgstr "U" + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:170 +#, no-wrap +msgid "The route is active (up)." +msgstr "Маршрут активен (поднят)." + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:171 +#, no-wrap +msgid "H" +msgstr "H" + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:173 +#, no-wrap +msgid "The route destination is a single host." +msgstr "Целью маршрута является отдельный хост." + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:174 +#, no-wrap +msgid "G" +msgstr "G" + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:176 +#, no-wrap +msgid "Send anything for this destination on to this gateway, which will figure out from there where to send it." +msgstr "Отправляйте всё для этого назначения на этот шлюз, который разберётся, куда это нужно отправить." + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:177 +#, no-wrap +msgid "S" +msgstr "S" + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:179 +#, no-wrap +msgid "This route was statically configured." +msgstr "Этот маршрут был настроен статически." + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:180 +#, no-wrap +msgid "C" +msgstr "C" + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:182 +#, no-wrap +msgid "Clones a new route based upon this route for machines to connect to. This type of route is normally used for local networks." +msgstr "Клонирует новый маршрут на основе данного для подключения машин. Такой тип маршрута обычно используется для локальных сетей." + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:183 +#, no-wrap +msgid "W" +msgstr "W" + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:185 +#, no-wrap +msgid "The route was auto-configured based upon a local area network (clone) route." +msgstr "Маршрут был автоматически настроен на основе локальной сети (клон) маршрута." + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:186 +#, no-wrap +msgid "L" +msgstr "L" + +#. type: Table +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:187 +#, no-wrap +msgid "Route involves references to Ethernet (link) hardware." +msgstr "Маршрут включает ссылки на оборудование Ethernet (link)." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:190 +msgid "" +"On a FreeBSD system, the default route can defined in [.filename]#/etc/" +"rc.conf# by specifying the IP address of the default gateway:" +msgstr "" +"На системе FreeBSD маршрут по умолчанию может быть определён в [.filename]#/" +"etc/rc.conf# путём указания IP-адреса шлюза по умолчанию:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:194 +#, no-wrap +msgid "defaultrouter=\"10.20.30.1\"\n" +msgstr "defaultrouter=\"10.20.30.1\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:197 +msgid "It is also possible to manually add the route using `route`:" +msgstr "Также можно вручную добавить маршрут с помощью `route`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:201 +#, no-wrap +msgid "# route add default 10.20.30.1\n" +msgstr "# route add default 10.20.30.1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:205 +msgid "" +"Note that manually added routes will not survive a reboot. For more " +"information on manual manipulation of network routing tables, refer to " +"man:route[8]." +msgstr "" +"Обратите внимание, что вручную добавленные маршруты не сохранятся после " +"перезагрузки. Для получения дополнительной информации о ручном управлении " +"таблицами сетевой маршрутизации обратитесь к man:route[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:207 +#, no-wrap +msgid "Configuring a Router with Static Routes" +msgstr "Настройка маршрутизатора со статическими маршрутами" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:212 +msgid "" +"A FreeBSD system can be configured as the default gateway, or router, for a " +"network if it is a dual-homed system. A dual-homed system is a host which " +"resides on at least two different networks. Typically, each network is " +"connected to a separate network interface, though IP aliasing can be used to " +"bind multiple addresses, each on a different subnet, to one physical " +"interface." +msgstr "" +"Система FreeBSD может быть настроена как шлюз по умолчанию или маршрутизатор " +"для сети, если она является двухдоменной системой. Двухдоменная система — " +"это хост, который находится как минимум в двух разных сетях. Обычно каждая " +"сеть подключена к отдельному сетевому интерфейсу, хотя IP-алиасинг может " +"использоваться для привязки нескольких адресов, каждый в своей подсети, к " +"одному физическому интерфейсу." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:215 +msgid "" +"In order for the system to forward packets between interfaces, FreeBSD must " +"be configured as a router. Internet standards and good engineering practice " +"prevent the FreeBSD Project from enabling this feature by default, but it " +"can be configured to start at boot by adding this line to [.filename]#/etc/" +"rc.conf#:" +msgstr "" +"Для того чтобы система могла пересылать пакеты между интерфейсами, FreeBSD " +"должна быть настроена как маршрутизатор. Интернет-стандарты и лучшие " +"инженерные практики не позволяют проекту FreeBSD включать эту функцию по " +"умолчанию, но её можно настроить для запуска при загрузке, добавив следующую " +"строку в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:219 +#, no-wrap +msgid "gateway_enable=\"YES\" # Set to YES if this host will be a gateway\n" +msgstr "gateway_enable=\"YES\" # Set to YES if this host will be a gateway\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:223 +msgid "" +"To enable routing now, set the man:sysctl[8] variable " +"`net.inet.ip.forwarding` to `1`. To stop routing, reset this variable to " +"`0`." +msgstr "" +"Чтобы теперь включить маршрутизацию, установите переменную man:sysctl[8] " +"`net.inet.ip.forwarding` в значение `1`. Для отключения маршрутизации " +"сбросьте эту переменную в `0`." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:227 +msgid "" +"The routing table of a router needs additional routes so it knows how to " +"reach other networks. Routes can be either added manually using static " +"routes or routes can be automatically learned using a routing protocol. " +"Static routes are appropriate for small networks and this section describes " +"how to add a static routing entry for a small network." +msgstr "" +"Таблица маршрутизации маршрутизатора требует дополнительных маршрутов, чтобы " +"он знал, как достичь других сетей. Маршруты могут быть добавлены вручную с " +"использованием статических маршрутов или могут быть автоматически созданы " +"обучением с помощью протокола маршрутизации. Статические маршруты подходят " +"для небольших сетей, и в этом разделе описывается, как добавить запись " +"статической маршрутизации для небольшой сети." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:233 +msgid "" +"For large networks, static routes quickly become unscalable. FreeBSD comes " +"with the standard BSD routing daemon man:routed[8], which provides the " +"routing protocols RIP, versions 1 and 2, and IRDP. Support for the BGP and " +"OSPF routing protocols can be installed using the package:net/quagga[] " +"package or port." +msgstr "" +"Для больших сетей статические маршруты быстро становятся неэффективными. " +"FreeBSD включает стандартный демон маршрутизации man:routed[8], который " +"поддерживает протоколы RIP версий 1 и 2, а также IRDP. Поддержка протоколов " +"маршрутизации BGP и OSPF может быть установлена с помощью пакета package:net/" +"quagga[] или порта." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:236 +msgid "Consider the following network:" +msgstr "Рассмотрим следующую сеть:" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:237 +#, no-wrap +msgid "static-routes.png" +msgstr "static-routes.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:242 +msgid "" +"In this scenario, `RouterA` is a FreeBSD machine that is acting as a router " +"to the rest of the Internet. It has a default route set to `10.0.0.1` which " +"allows it to connect with the outside world. `RouterB` is already " +"configured to use `192.168.1.1` as its default gateway." +msgstr "" +"В этом сценарии `RouterA` — это машина FreeBSD, которая выступает в качестве " +"маршрутизатора для остальной части Интернета. У нее установлен маршрут по " +"умолчанию на `10.0.0.1`, что позволяет ей соединяться с внешним миром. " +"`RouterB` уже настроен на использование `192.168.1.1` в качестве шлюза по " +"умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:244 +msgid "" +"Before adding any static routes, the routing table on `RouterA` looks like " +"this:" +msgstr "" +"Прежде чем добавлять статические маршруты, таблица маршрутизации на " +"`RouterA` выглядит следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:249 +#, no-wrap +msgid "" +"% netstat -nr\n" +"Routing tables\n" +msgstr "" +"% netstat -nr\n" +"Routing tables\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:256 +#, no-wrap +msgid "" +"Internet:\n" +"Destination Gateway Flags Refs Use Netif Expire\n" +"default 10.0.0.1 UGS 0 49378 xl0\n" +"127.0.0.1 127.0.0.1 UH 0 6 lo0\n" +"10.0.0.0/24 link#1 UC 0 0 xl0\n" +"192.168.1.0/24 link#2 UC 0 0 xl1\n" +msgstr "" +"Internet:\n" +"Destination Gateway Flags Refs Use Netif Expire\n" +"default 10.0.0.1 UGS 0 49378 xl0\n" +"127.0.0.1 127.0.0.1 UH 0 6 lo0\n" +"10.0.0.0/24 link#1 UC 0 0 xl0\n" +"192.168.1.0/24 link#2 UC 0 0 xl1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:260 +msgid "" +"With the current routing table, `RouterA` does not have a route to the " +"`192.168.2.0/24` network. The following command adds the `Internal Net 2` " +"network to ``RouterA``'s routing table using `192.168.1.2` as the next hop:" +msgstr "" +"С текущей таблицей маршрутизации `RouterA` не имеет маршрута к сети " +"`192.168.2.0/24`. Следующая команда добавляет сеть `Internal Net 2` в " +"таблицу маршрутизации ``RouterA``, используя `192.168.1.2` в качестве " +"следующего прыжка:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:264 +#, no-wrap +msgid "# route add -net 192.168.2.0/24 192.168.1.2\n" +msgstr "# route add -net 192.168.2.0/24 192.168.1.2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:269 +msgid "" +"Now, `RouterA` can reach any host on the `192.168.2.0/24` network. However, " +"the routing information will not persist if the FreeBSD system reboots. If " +"a static route needs to be persistent, add it to [.filename]#/etc/rc.conf#:" +msgstr "" +"Теперь `RouterA` может достигать любого узла в сети `192.168.2.0/24`. Однако " +"информация о маршрутизации не сохранится после перезагрузки системы FreeBSD. " +"Если требуется, чтобы статический маршрут был постоянным, добавьте его в " +"[.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:275 +#, no-wrap +msgid "" +"# Add Internal Net 2 as a persistent static route\n" +"static_routes=\"internalnet2\"\n" +"route_internalnet2=\"-net 192.168.2.0/24 192.168.1.2\"\n" +msgstr "" +"# Add Internal Net 2 as a persistent static route\n" +"static_routes=\"internalnet2\"\n" +"route_internalnet2=\"-net 192.168.2.0/24 192.168.1.2\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:279 +msgid "" +"The `static_routes` configuration variable is a list of strings separated by " +"a space, where each string references a route name. The variable " +"`route_internalnet2` contains the static route for that route name." +msgstr "" +"Переменная конфигурации `static_routes` представляет собой список строк, " +"разделённых пробелом, где каждая строка ссылается на имя маршрута. " +"Переменная `route_internalnet2` содержит статический маршрут для этого имени " +"маршрута." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:282 +msgid "" +"Using more than one string in `static_routes` creates multiple static " +"routes. The following shows an example of adding static routes for the " +"`192.168.0.0/24` and `192.168.1.0/24` networks:" +msgstr "" +"Использование более одной строки в `static_routes` создает несколько " +"статических маршрутов. Ниже приведен пример добавления статических маршрутов " +"для сетей `192.168.0.0/24` и `192.168.1.0/24`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:288 +#, no-wrap +msgid "" +"static_routes=\"net1 net2\"\n" +"route_net1=\"-net 192.168.0.0/24 192.168.0.1\"\n" +"route_net2=\"-net 192.168.1.0/24 192.168.1.1\"\n" +msgstr "" +"static_routes=\"net1 net2\"\n" +"route_net1=\"-net 192.168.0.0/24 192.168.0.1\"\n" +"route_net2=\"-net 192.168.1.0/24 192.168.1.1\"\n" + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:291 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1324 +#, no-wrap +msgid "Troubleshooting" +msgstr "Устранение неполадок" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:295 +msgid "" +"When an address space is assigned to a network, the service provider " +"configures their routing tables so that all traffic for the network will be " +"sent to the link for the site. But how do external sites know to send their " +"packets to the network's ISP?" +msgstr "" +"Когда адресное пространство назначается сети, поставщик услуг настраивает " +"свои таблицы маршрутизации так, чтобы весь трафик для сети отправлялся по " +"каналу связи к сайту. Но как внешние сайты узнают, что их пакеты нужно " +"отправлять к межсетевому экрану провайдера сети?" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:298 +msgid "" +"There is a system that keeps track of all assigned address spaces and " +"defines their point of connection to the Internet backbone, or the main " +"trunk lines that carry Internet traffic across the country and around the " +"world. Each backbone machine has a copy of a master set of tables, which " +"direct traffic for a particular network to a specific backbone carrier, and " +"from there down the chain of service providers until it reaches a particular " +"network." +msgstr "" +"Существует система, которая отслеживает все выделенные адресные пространства " +"и определяет их точку подключения к магистрали Интернета или основным " +"магистральным линиям, передающим интернет-трафик по стране и по всему миру. " +"Каждая машина магистрали имеет копию главного набора таблиц, которые " +"направляют трафик для определённой сети к конкретному магистральному " +"оператору, а оттуда по цепочке поставщиков услуг, пока он не достигнет " +"конкретной сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:301 +msgid "" +"It is the task of the service provider to advertise to the backbone sites " +"that they are the point of connection, and thus the path inward, for a " +"site. This is known as route propagation." +msgstr "" +"Это задача поставщика услуг — сообщить магистральным узлам, что они являются " +"точкой подключения и, следовательно, путем внутрь для сайта. Это известно " +"как распространение маршрутов." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:305 +msgid "" +"Sometimes, there is a problem with route propagation and some sites are " +"unable to connect. Perhaps the most useful command for trying to figure out " +"where routing is breaking down is `traceroute`. It is useful when `ping` " +"fails." +msgstr "" +"Иногда возникают проблемы с распространением маршрутов, и некоторые сайты не " +"могут подключиться. Возможно, наиболее полезная команда для выяснения, где " +"происходит разрыв маршрутизации, — это `traceroute`. Она полезна, когда " +"`ping` не срабатывает." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:309 +msgid "" +"When using `traceroute`, include the address of the remote host to connect " +"to. The output will show the gateway hosts along the path of the attempt, " +"eventually either reaching the target host, or terminating because of a lack " +"of connection. For more information, refer to man:traceroute[8]." +msgstr "" +"При использовании `traceroute` укажите адрес удаленного хоста для " +"подключения. В выводе будут показаны шлюзы на пути попытки соединения, в " +"конечном итоге достигая целевого хоста или прерываясь из-за отсутствия " +"соединения. Для получения дополнительной информации обратитесь к " +"man:traceroute[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:311 +#, no-wrap +msgid "Multicast Considerations" +msgstr "Аспекты многоадресной рассылки (multicast)" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:316 +msgid "" +"FreeBSD natively supports both multicast applications and multicast " +"routing. Multicast applications do not require any special configuration in " +"order to run on FreeBSD. Support for multicast routing requires that the " +"following option be compiled into a custom kernel:" +msgstr "" +"FreeBSD изначально поддерживает как приложения с многоадресной рассылкой, " +"так и маршрутизацию многоадресной рассылки. Для работы приложений с " +"многоадресной рассылкой на FreeBSD не требуется специальной настройки. Для " +"поддержки маршрутизации многоадресной рассылки необходимо включить следующую " +"опцию в собственном ядре:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:320 +#, no-wrap +msgid "options MROUTING\n" +msgstr "options MROUTING\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:326 +msgid "" +"The multicast routing daemon, mrouted can be installed using the package:net/" +"mrouted[] package or port. This daemon implements the DVMRP multicast " +"routing protocol and is configured by editing [.filename]#/usr/local/etc/" +"mrouted.conf# in order to set up the tunnels and DVMRP. The installation of " +"mrouted also installs map-mbone and mrinfo, as well as their associated man " +"pages. Refer to these for configuration examples." +msgstr "" +"Демон маршрутизации многоадресной рассылки, mrouted, может быть установлен с " +"помощью пакета package:net/mrouted[] или порта. Этот демон реализует " +"протокол маршрутизации многоадресной рассылки DVMRP и настраивается путём " +"редактирования файла [.filename]#/usr/local/etc/mrouted.conf# для настройки " +"туннелей и DVMRP. Установка mrouted также устанавливает map-mbone и mrinfo, " +"а также связанные с ними man-страницы. Обратитесь к ним за примерами " +"конфигурации." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:331 +msgid "" +"DVMRP has largely been replaced by the PIM protocol in many multicast " +"installations. Refer to man:pim[4] for more information." +msgstr "" +"DVMRP во многом заменён протоколом PIM во многих инсталляциях с " +"использованием многоадресной рассылки. Дополнительную информацию можно найти " +"в man:pim[4]." + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:334 +#, no-wrap +msgid "Virtual Hosts" +msgstr "Виртуальные узлы" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:338 +msgid "" +"A common use of FreeBSD is virtual site hosting, where one server appears to " +"the network as many servers. This is achieved by assigning multiple network " +"addresses to a single interface." +msgstr "" +"Распространённое использование FreeBSD — это виртуальный хостинг сайтов, " +"когда один сервер представляется в сети как множество серверов. Это " +"достигается путём назначения нескольких сетевых адресов одному интерфейсу." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:341 +msgid "" +"A given network interface has one \"real\" address, and may have any number " +"of \"alias\" addresses. These aliases are normally added by placing alias " +"entries in [.filename]#/etc/rc.conf#, as seen in this example:" +msgstr "" +"Указанный сетевой интерфейс имеет один \"реальный\" адрес и может иметь " +"любое количество \"псевдонимных\" адресов. Эти псевдонимы обычно добавляются " +"путём размещения записей alias в [.filename]#/etc/rc.conf#, как показано в " +"этом примере:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:345 +#, no-wrap +msgid "# sysrc ifconfig_fxp0_alias0=\"inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx\"\n" +msgstr "# sysrc ifconfig_fxp0_alias0=\"inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:349 +msgid "" +"Alias entries must start with `alias__0__` using a sequential number such as " +"`alias0`, `alias1`, and so on. The configuration process will stop at the " +"first missing number." +msgstr "" +"Записи псевдонимов должны начинаться с `alias__0__`, используя " +"последовательные числа, такие как `alias0`, `alias1` и так далее. Процесс " +"настройки остановится при первом пропущенном числе." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:353 +msgid "" +"The calculation of alias netmasks is important. For a given interface, " +"there must be one address which correctly represents the network's netmask. " +"Any other addresses which fall within this network must have a netmask of " +"all ``1``s, expressed as either `255.255.255.255` or `0xffffffff`." +msgstr "" +"Расчёт масок подсети для псевдонимов важен. Для заданного интерфейса должен " +"быть один адрес, который корректно представляет маску подсети сети. Любые " +"другие адреса, попадающие в эту сеть, должны иметь маску подсети, состоящую " +"из всех ``1``, выраженную как `255.255.255.255` или `0xffffffff`." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:358 +msgid "" +"For example, consider the case where the `fxp0` interface is connected to " +"two networks: `10.1.1.0` with a netmask of `255.255.255.0` and `202.0.75.16` " +"with a netmask of `255.255.255.240`. The system is to be configured to " +"appear in the ranges `10.1.1.1` through `10.1.1.5` and `202.0.75.17` through " +"`202.0.75.20`. Only the first address in a given network range should have " +"a real netmask. All the rest (`10.1.1.2` through `10.1.1.5` and " +"`202.0.75.18` through `202.0.75.20`) must be configured with a netmask of " +"`255.255.255.255`." +msgstr "" +"Например, рассмотрим случай, когда интерфейс `fxp0` подключён к двум сетям: " +"`10.1.1.0` с маской сети `255.255.255.0` и `202.0.75.16` с маской сети " +"`255.255.255.240`. Система должна быть настроена так, чтобы находиться в " +"диапазонах `10.1.1.1`–`10.1.1.5` и `202.0.75.17`–`202.0.75.20`. Только " +"первый адрес в каждом диапазоне должен иметь реальную маску сети. Все " +"остальные (`10.1.1.2`–`10.1.1.5` и `202.0.75.18`–`202.0.75.20`) должны быть " +"настроены с маской `255.255.255.255`." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:360 +msgid "" +"The following [.filename]#/etc/rc.conf# entries configure the adapter " +"correctly for this scenario:" +msgstr "" +"Для данного сценария правильно настраивают адаптер следующие записи в " +"[.filename]#/etc/rc.conf# :" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:372 +#, no-wrap +msgid "" +"# sysrc ifconfig_fxp0=\"inet 10.1.1.1 netmask 255.255.255.0\"\n" +"# sysrc ifconfig_fxp0_alias0=\"inet 10.1.1.2 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias1=\"inet 10.1.1.3 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias2=\"inet 10.1.1.4 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias3=\"inet 10.1.1.5 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias4=\"inet 202.0.75.17 netmask 255.255.255.240\"\n" +"# sysrc ifconfig_fxp0_alias5=\"inet 202.0.75.18 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias6=\"inet 202.0.75.19 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias7=\"inet 202.0.75.20 netmask 255.255.255.255\"\n" +msgstr "" +"# sysrc ifconfig_fxp0=\"inet 10.1.1.1 netmask 255.255.255.0\"\n" +"# sysrc ifconfig_fxp0_alias0=\"inet 10.1.1.2 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias1=\"inet 10.1.1.3 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias2=\"inet 10.1.1.4 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias3=\"inet 10.1.1.5 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias4=\"inet 202.0.75.17 netmask 255.255.255.240\"\n" +"# sysrc ifconfig_fxp0_alias5=\"inet 202.0.75.18 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias6=\"inet 202.0.75.19 netmask 255.255.255.255\"\n" +"# sysrc ifconfig_fxp0_alias7=\"inet 202.0.75.20 netmask 255.255.255.255\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:376 +msgid "" +"A simpler way to express this is with a space-separated list of IP address " +"ranges. The first address will be given the indicated subnet mask and the " +"additional addresses will have a subnet mask of `255.255.255.255`." +msgstr "" +"Более простой способ выразить это — использовать список диапазонов IP-" +"адресов, разделённых пробелами. Первому адресу будет назначена указанная " +"маска подсети, а дополнительным адресам — маска подсети `255.255.255.255`." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:380 +#, no-wrap +msgid "# sysrc ifconfig_fxp0_aliases=\"inet 10.1.1.1-5/24 inet 202.0.75.17-20/28\"\n" +msgstr "# sysrc ifconfig_fxp0_aliases=\"inet 10.1.1.1-5/24 inet 202.0.75.17-20/28\"\n" + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:383 +#, no-wrap +msgid "Wireless Advanced Authentication" +msgstr "Расширенная аутентификация в беспроводной сети" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:387 +msgid "" +"FreeBSD supports different ways of connecting to a wireless network. This " +"section describes how to perform advanced authentication to a Wireless " +"Network." +msgstr "" +"FreeBSD поддерживает различные способы подключения к беспроводной сети. В " +"этом разделе описано, как выполнить расширенную аутентификацию в " +"беспроводной сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:389 +msgid "" +"To make a connection and basic authentication to a wireless network the " +"section crossref:network[wireless-authentication,Connection and " +"Authentication to a Wireless Network] in the Network Chapter describes how " +"to do it." +msgstr "" +"Для подключения и базовой аутентификации в беспроводной сети раздел " +"crossref:network[wireless-authentication,Подключение и аутентификация в " +"беспроводной сети] в главе \"Сеть\" описывает, как это сделать." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:391 +#, no-wrap +msgid "WPA with EAP-TLS" +msgstr "WPA с EAP-TLS" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:396 +msgid "" +"The second way to use WPA is with an 802.1X backend authentication server. " +"In this case, WPA is called WPA Enterprise to differentiate it from the less " +"secure WPA Personal. Authentication in WPA Enterprise is based on the " +"Extensible Authentication Protocol (EAP)." +msgstr "" +"Второй способ использования WPA — с сервером аутентификации 802.1X. В этом " +"случае WPA называется WPA Enterprise, чтобы отличать его от менее " +"безопасного WPA Personal. Аутентификация в WPA Enterprise основана на " +"расширяемом протоколе аутентификации (EAP)." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:400 +msgid "" +"EAP does not come with an encryption method. Instead, EAP is embedded " +"inside an encrypted tunnel. There are many EAP authentication methods, but " +"EAP-TLS, EAP-TTLS, and EAP-PEAP are the most common." +msgstr "" +"EAP не включает в себя метод шифрования. Вместо этого EAP встраивается в " +"зашифрованный туннель. Существует множество методов аутентификации EAP, но " +"наиболее распространены EAP-TLS, EAP-TTLS и EAP-PEAP." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:404 +msgid "" +"EAP with Transport Layer Security (EAP-TLS) is a well-supported wireless " +"authentication protocol since it was the first EAP method to be certified by " +"the http://www.wi-fi.org/[Wi-Fi Alliance]. EAP-TLS requires three " +"certificates to run: the certificate of the Certificate Authority (CA) " +"installed on all machines, the server certificate for the authentication " +"server, and one client certificate for each wireless client. In this EAP " +"method, both the authentication server and wireless client authenticate each " +"other by presenting their respective certificates, and then verify that " +"these certificates were signed by the organization's CA." +msgstr "" +"EAP с защитой на транспортном уровне (EAP-TLS) — это широко поддерживаемый " +"протокол аутентификации беспроводных сетей, так как он был первым методом " +"EAP, сертифицированным http://www.wi-fi.org/[Альянсом Wi-Fi]. Для работы " +"EAP-TLS требуется три сертификата: сертификат центра сертификации (CA), " +"установленный на всех машинах, сертификат сервера для сервера аутентификации " +"и один клиентский сертификат для каждого беспроводного клиента. В этом " +"методе EAP и сервер аутентификации, и беспроводной клиент аутентифицируют " +"друг друга, предоставляя свои соответствующие сертификаты, а затем " +"проверяют, что эти сертификаты были подписаны CA организации." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:406 +msgid "" +"As previously, the configuration is done via [.filename]#/etc/" +"wpa_supplicant.conf#:" +msgstr "" +"Как и ранее, настройка выполняется через [.filename]#/etc/" +"wpa_supplicant.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:420 +#, no-wrap +msgid "" +"network={\n" +" ssid=\"freebsdap\" <.>\n" +" proto=RSN <.>\n" +" key_mgmt=WPA-EAP <.>\n" +" eap=TLS <.>\n" +" identity=\"loader\" <.>\n" +" ca_cert=\"/etc/certs/cacert.pem\" <.>\n" +" client_cert=\"/etc/certs/clientcert.pem\" <.>\n" +" private_key=\"/etc/certs/clientkey.pem\" <.>\n" +" private_key_passwd=\"freebsdmallclient\" <.>\n" +"}\n" +msgstr "" +"network={\n" +" ssid=\"freebsdap\" <.>\n" +" proto=RSN <.>\n" +" key_mgmt=WPA-EAP <.>\n" +" eap=TLS <.>\n" +" identity=\"loader\" <.>\n" +" ca_cert=\"/etc/certs/cacert.pem\" <.>\n" +" client_cert=\"/etc/certs/clientcert.pem\" <.>\n" +" private_key=\"/etc/certs/clientkey.pem\" <.>\n" +" private_key_passwd=\"freebsdmallclient\" <.>\n" +"}\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:423 +msgid "This field indicates the network name (SSID)." +msgstr "Это поле указывает имя сети (SSID)." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:424 +msgid "This example uses the RSN IEEE(R) 802.11i protocol, also known as WPA2." +msgstr "" +"Этот пример использует протокол RSN IEEE(R) 802.11i, также известный как " +"WPA2." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:425 +msgid "" +"The `key_mgmt` line refers to the key management protocol to use. In this " +"example, it is WPA using EAP authentication." +msgstr "" +"Строка `key_mgmt` указывает на используемый протокол управления ключами. В " +"данном примере это WPA с аутентификацией EAP." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:426 +msgid "This field indicates the EAP method for the connection." +msgstr "Это поле указывает метод EAP для подключения." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:427 +msgid "The `identity` field contains the identity string for EAP." +msgstr "Поле `identity` содержит строку идентификации для EAP." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:428 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:492 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:562 +msgid "" +"The `ca_cert` field indicates the pathname of the CA certificate file. This " +"file is needed to verify the server certificate." +msgstr "" +"Поле `ca_cert` указывает путь к файлу сертификата CA. Этот файл необходим " +"для проверки сертификата сервера." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:429 +msgid "" +"The `client_cert` line gives the pathname to the client certificate file. " +"This certificate is unique to each wireless client of the network." +msgstr "" +"Строка `client_cert` указывает путь к файлу сертификата клиента. Этот " +"сертификат уникален для каждого беспроводного клиента в сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:430 +msgid "" +"The `private_key` field is the pathname to the client certificate private " +"key file." +msgstr "" +"Поле `private_key` содержит путь к файлу закрытого ключа клиентского " +"сертификата." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:431 +msgid "" +"The `private_key_passwd` field contains the passphrase for the private key." +msgstr "" +"Поле `private_key_passwd` содержит парольную фразу для закрытого ключа." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:433 +msgid "Then, add the following lines to [.filename]#/etc/rc.conf#:" +msgstr "Затем добавьте следующие строки в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:438 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:500 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:571 +#, no-wrap +msgid "" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"WPA DHCP\"\n" +msgstr "" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"WPA DHCP\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:441 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:503 +msgid "The next step is to bring up the interface:" +msgstr "Следующий шаг — поднять интерфейс:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:460 +#, no-wrap +msgid "" +"# service netif start\n" +"Starting wpa_supplicant.\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15\n" +"DHCPACK from 192.168.0.20\n" +"bound to 192.168.0.254 -- renewal in 300 seconds.\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500\n" +" ether 00:11:95:d5:43:62\n" +" inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255\n" +" media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g\n" +" status: associated\n" +" ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +" country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF\n" +" AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan\n" +" bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS\n" +" wme burst roaming MANUAL\n" +msgstr "" +"# service netif start\n" +"Starting wpa_supplicant.\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15\n" +"DHCPACK from 192.168.0.20\n" +"bound to 192.168.0.254 -- renewal in 300 seconds.\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500\n" +" ether 00:11:95:d5:43:62\n" +" inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255\n" +" media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g\n" +" status: associated\n" +" ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +" country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF\n" +" AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan\n" +" bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS\n" +" wme burst roaming MANUAL\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:463 +msgid "" +"It is also possible to bring up the interface manually using " +"man:wpa_supplicant[8] and man:ifconfig[8]." +msgstr "" +"Также можно поднять интерфейс вручную с помощью man:wpa_supplicant[8] и " +"man:ifconfig[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:465 +#, no-wrap +msgid "WPA with EAP-TTLS" +msgstr "WPA с EAP-TTLS" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:471 +msgid "" +"With EAP-TLS, both the authentication server and the client need a " +"certificate. With EAP-TTLS, a client certificate is optional. This method " +"is similar to a web server which creates a secure SSL tunnel even if " +"visitors do not have client-side certificates. EAP-TTLS uses an encrypted " +"TLS tunnel for safe transport of the authentication data." +msgstr "" +"С EAP-TLS и сервер аутентификации, и клиент нуждаются в сертификате. С EAP-" +"TTLS сертификат клиента необязателен. Этот метод аналогичен веб-серверу, " +"который создает защищенный SSL-туннель, даже если у посетителей нет " +"клиентских сертификатов. EAP-TTLS использует зашифрованный TLS-туннель для " +"безопасной передачи данных аутентификации." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:473 +msgid "" +"The required configuration can be added to [.filename]#/etc/" +"wpa_supplicant.conf#:" +msgstr "" +"Требуемая конфигурация может быть добавлена в [.filename]#/etc/" +"wpa_supplicant.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:486 +#, no-wrap +msgid "" +"network={\n" +" ssid=\"freebsdap\"\n" +" proto=RSN\n" +" key_mgmt=WPA-EAP\n" +" eap=TTLS <.>\n" +" identity=\"test\" <.>\n" +" password=\"test\" <.>\n" +" ca_cert=\"/etc/certs/cacert.pem\" <.>\n" +" phase2=\"auth=MD5\" <.>\n" +"}\n" +msgstr "" +"network={\n" +" ssid=\"freebsdap\"\n" +" proto=RSN\n" +" key_mgmt=WPA-EAP\n" +" eap=TTLS <.>\n" +" identity=\"test\" <.>\n" +" password=\"test\" <.>\n" +" ca_cert=\"/etc/certs/cacert.pem\" <.>\n" +" phase2=\"auth=MD5\" <.>\n" +"}\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:489 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:559 +msgid "This field specifies the EAP method for the connection." +msgstr "Это поле определяет метод EAP для подключения." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:490 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:560 +msgid "" +"The `identity` field contains the identity string for EAP authentication " +"inside the encrypted TLS tunnel." +msgstr "" +"Поле `identity` содержит строку идентификации для аутентификации EAP внутри " +"зашифрованного TLS-туннеля." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:491 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:561 +msgid "" +"The `password` field contains the passphrase for the EAP authentication." +msgstr "Поле `password` содержит парольную фразу для аутентификации EAP." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:493 +msgid "" +"This field specifies the authentication method used in the encrypted TLS " +"tunnel. In this example, EAP with MD5-Challenge is used. The \"inner " +"authentication\" phase is often called \"phase2\"." +msgstr "" +"Это поле определяет метод аутентификации, используемый в зашифрованном TLS-" +"туннеле. В данном примере используется EAP с MD5-Challenge. Фаза " +"\"внутренней аутентификации\" часто называется \"phase2\"." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:495 +msgid "Next, add the following lines to [.filename]#/etc/rc.conf#:" +msgstr "Далее добавьте следующие строки в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:523 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:594 +#, no-wrap +msgid "" +"# service netif start\n" +"Starting wpa_supplicant.\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21\n" +"DHCPACK from 192.168.0.20\n" +"bound to 192.168.0.254 -- renewal in 300 seconds.\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500\n" +" ether 00:11:95:d5:43:62\n" +" inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255\n" +" media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g\n" +" status: associated\n" +" ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +" country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF\n" +" AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan\n" +" bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS\n" +" wme burst roaming MANUAL\n" +msgstr "" +"# service netif start\n" +"Starting wpa_supplicant.\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15\n" +"DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21\n" +"DHCPACK from 192.168.0.20\n" +"bound to 192.168.0.254 -- renewal in 300 seconds.\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500\n" +" ether 00:11:95:d5:43:62\n" +" inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255\n" +" media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g\n" +" status: associated\n" +" ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +" country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF\n" +" AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan\n" +" bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS\n" +" wme burst roaming MANUAL\n" + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:526 +#, no-wrap +msgid "WPA with EAP-PEAP" +msgstr "WPA с EAP-PEAP" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:532 +msgid "" +"PEAPv0/EAP-MSCHAPv2 is the most common PEAP method. In this chapter, the " +"term PEAP is used to refer to that method." +msgstr "" +"PEAPv0/EAP-MSCHAPv2 является наиболее распространенным методом PEAP. В этой " +"главе термин PEAP используется для обозначения данного метода." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:536 +msgid "" +"Protected EAP (PEAP) is designed as an alternative to EAP-TTLS and is the " +"most used EAP standard after EAP-TLS. In a network with mixed operating " +"systems, PEAP should be the most supported standard after EAP-TLS." +msgstr "" +"Защищенный EAP (PEAP) разработан как альтернатива EAP-TTLS и является " +"наиболее используемым стандартом EAP после EAP-TLS. В сети с разными " +"операционными системами PEAP должен быть наиболее поддерживаемым стандартом " +"после EAP-TLS." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:540 +msgid "" +"PEAP is similar to EAP-TTLS as it uses a server-side certificate to " +"authenticate clients by creating an encrypted TLS tunnel between the client " +"and the authentication server, which protects the ensuing exchange of " +"authentication information. PEAP authentication differs from EAP-TTLS as it " +"broadcasts the username in the clear and only the password is sent in the " +"encrypted TLS tunnel. EAP-TTLS will use the TLS tunnel for both the " +"username and password." +msgstr "" +"PEAP аналогичен EAP-TTLS, так как использует сертификат на стороне сервера " +"для аутентификации клиентов путем создания зашифрованного TLS-туннеля между " +"клиентом и сервером аутентификации, что защищает последующий обмен " +"аутентификационной информацией. Аутентификация PEAP отличается от EAP-TTLS " +"тем, что передает имя пользователя в открытом виде, и только пароль " +"отправляется в зашифрованном TLS-туннеле. EAP-TTLS использует TLS-туннель " +"как для имени пользователя, так и для пароля." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:542 +msgid "" +"Add the following lines to [.filename]#/etc/wpa_supplicant.conf# to " +"configure the EAP-PEAP related settings:" +msgstr "" +"Добавьте следующие строки в [.filename]#/etc/wpa_supplicant.conf# для " +"настройки параметров, связанных с EAP-PEAP:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:556 +#, no-wrap +msgid "" +"network={\n" +" ssid=\"freebsdap\"\n" +" proto=RSN\n" +" key_mgmt=WPA-EAP\n" +" eap=PEAP <.>\n" +" identity=\"test\" <.>\n" +" password=\"test\" <.>\n" +" ca_cert=\"/etc/certs/cacert.pem\" <.>\n" +" phase1=\"peaplabel=0\" <.>\n" +" phase2=\"auth=MSCHAPV2\" <.>\n" +"}\n" +msgstr "" +"network={\n" +" ssid=\"freebsdap\"\n" +" proto=RSN\n" +" key_mgmt=WPA-EAP\n" +" eap=PEAP <.>\n" +" identity=\"test\" <.>\n" +" password=\"test\" <.>\n" +" ca_cert=\"/etc/certs/cacert.pem\" <.>\n" +" phase1=\"peaplabel=0\" <.>\n" +" phase2=\"auth=MSCHAPV2\" <.>\n" +"}\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:563 +msgid "" +"This field contains the parameters for the first phase of authentication, " +"the TLS tunnel. According to the authentication server used, specify a " +"specific label for authentication. Most of the time, the label will be " +"\"client EAP encryption\" which is set by using `peaplabel=0`. More " +"information can be found in man:wpa_supplicant.conf[5]." +msgstr "" +"Это поле содержит параметры для первой фазы аутентификации, TLS-туннеля. В " +"зависимости от используемого сервера аутентификации укажите конкретную метку " +"для аутентификации. В большинстве случаев меткой будет \"client EAP " +"encryption\", которая устанавливается с помощью `peaplabel=0`. " +"Дополнительную информацию можно найти в man:wpa_supplicant.conf[5]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:564 +msgid "" +"This field specifies the authentication protocol used in the encrypted TLS " +"tunnel. In the case of PEAP, it is `auth=MSCHAPV2`." +msgstr "" +"Это поле определяет протокол аутентификации, используемый в зашифрованном " +"TLS-туннеле. В случае PEAP, это `auth=MSCHAPV2`." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:566 +msgid "Add the following to [.filename]#/etc/rc.conf#:" +msgstr "Добавьте следующее в [.filename]#/etc/rc.conf#:" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:574 +msgid "Then, bring up the interface:" +msgstr "Затем поднимите интерфейс:" + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:597 +#, no-wrap +msgid "Wireless Ad-hoc Mode" +msgstr "Беспроводное соединение в режиме Ad-hoc" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:601 +msgid "" +"IBSS mode, also called ad-hoc mode, is designed for point to point " +"connections. For example, to establish an ad-hoc network between the " +"machines `A` and `B`, choose two IP addresses and a SSID." +msgstr "" +"Режим IBSS, также называемый ad-hoc режимом, предназначен для соединений " +"точка-точка. Например, чтобы создать ad-hoc сеть между машинами `A` и `B`, " +"выберите два IP-адреса и SSID." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:603 +msgid "On `A`:" +msgstr "На `A`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:617 +#, no-wrap +msgid "" +"# ifconfig wlan0 create wlandev ath0 wlanmode adhoc\n" +"# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap\n" +"# ifconfig wlan0\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:c3:0d:ac\n" +"\t inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>\n" +"\t status: running\n" +"\t ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60\n" +"\t protmode CTS wme burst\n" +msgstr "" +"# ifconfig wlan0 create wlandev ath0 wlanmode adhoc\n" +"# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap\n" +"# ifconfig wlan0\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:c3:0d:ac\n" +"\t inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>\n" +"\t status: running\n" +"\t ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60\n" +"\t protmode CTS wme burst\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:620 +msgid "" +"The `adhoc` parameter indicates that the interface is running in IBSS mode." +msgstr "Параметр `adhoc` указывает, что интерфейс работает в режиме IBSS." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:622 +msgid "`B` should now be able to detect `A`:" +msgstr "`B` теперь должен иметь возможность обнаруживать `A`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:629 +#, no-wrap +msgid "" +"# ifconfig wlan0 create wlandev ath0 wlanmode adhoc\n" +"# ifconfig wlan0 up scan\n" +" SSID/MESH ID BSSID CHAN RATE S:N INT CAPS\n" +" freebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WME\n" +msgstr "" +"# ifconfig wlan0 create wlandev ath0 wlanmode adhoc\n" +"# ifconfig wlan0 up scan\n" +" SSID/MESH ID BSSID CHAN RATE S:N INT CAPS\n" +" freebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WME\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:633 +msgid "" +"The `I` in the output confirms that `A` is in ad-hoc mode. Now, configure " +"`B` with a different IP address:" +msgstr "" +"`I` в выводе подтверждает, что `A` находится в режиме ad-hoc. Теперь " +"настройте `B` с другим IP-адресом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:646 +#, no-wrap +msgid "" +"# ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap\n" +"# ifconfig wlan0\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:d5:43:62\n" +"\t inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>\n" +"\t status: running\n" +"\t ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60\n" +"\t protmode CTS wme burst\n" +msgstr "" +"# ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap\n" +"# ifconfig wlan0\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:d5:43:62\n" +"\t inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>\n" +"\t status: running\n" +"\t ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60\n" +"\t protmode CTS wme burst\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:649 +msgid "Both `A` and `B` are now ready to exchange information." +msgstr "Оба `A` и `B` теперь готовы обмениваться информацией." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:651 +#, no-wrap +msgid "FreeBSD Host Access Points" +msgstr "Хост FreeBSD в роли точки доступа" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:655 +msgid "" +"FreeBSD can act as an Access Point (AP) which eliminates the need to buy a " +"hardware AP or run an ad-hoc network. This can be particularly useful when " +"a FreeBSD machine is acting as a gateway to another network such as the " +"Internet." +msgstr "" +"FreeBSD может функционировать как точка доступа (AP), что устраняет " +"необходимость покупки аппаратной точки доступа или организации ad-hoc сети. " +"Это может быть особенно полезно, когда машина FreeBSD выступает в качестве " +"шлюза к другой сети, например, к Интернету." + +#. type: Title ==== +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:657 +#, no-wrap +msgid "Basic Settings" +msgstr "Основные настройки" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:661 +msgid "" +"Before configuring a FreeBSD machine as an AP, the kernel must be configured " +"with the appropriate networking support for the wireless card as well as the " +"security protocols being used. For more details, see crossref:advanced-" +"networking[network-wireless-ap-basic, Basic Settings]." +msgstr "" +"Прежде чем настраивать машину FreeBSD в качестве точки доступа, ядро должно " +"быть сконфигурировано с соответствующей поддержкой сети для беспроводной " +"карты, а также используемых протоколов безопасности. Для получения " +"дополнительной информации см. crossref:advanced-networking[network-wireless-" +"ap-basic, Базовые настройки]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:666 +msgid "" +"The NDIS driver wrapper for Windows(R) drivers does not currently support AP " +"operation. Only native FreeBSD wireless drivers support AP mode." +msgstr "" +"Драйвер-оболочка NDIS для драйверов Windows(R) в настоящее время не " +"поддерживает работу в режиме точки доступа. Только родные беспроводные " +"драйверы FreeBSD поддерживают режим AP." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:669 +msgid "" +"Once wireless networking support is loaded, check if the wireless device " +"supports the host-based access point mode, also known as hostap mode:" +msgstr "" +"После загрузки поддержки беспроводной сети проверьте, поддерживает ли " +"беспроводное устройство режим точки доступа на основе хоста, также известный " +"как режим hostap:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:676 +#, no-wrap +msgid "" +"# ifconfig wlan0 create wlandev ath0\n" +"# ifconfig wlan0 list caps\n" +"drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>\n" +"cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>\n" +msgstr "" +"# ifconfig wlan0 create wlandev ath0\n" +"# ifconfig wlan0 list caps\n" +"drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>\n" +"cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:682 +msgid "" +"This output displays the card's capabilities. The `HOSTAP` word confirms " +"that this wireless card can act as an AP. Various supported ciphers are " +"also listed: WEP, TKIP, and AES. This information indicates which security " +"protocols can be used on the AP." +msgstr "" +"Этот вывод показывает возможности карты. Слово `HOSTAP` подтверждает, что " +"эта беспроводная карта может работать как точка доступа. Также перечислены " +"различные поддерживаемые алгоритмы шифрования: WEP, TKIP и AES. Эта " +"информация указывает, какие протоколы безопасности можно использовать на " +"точке доступа." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:684 +msgid "" +"The wireless device can only be put into hostap mode during the creation of " +"the network pseudo-device, so a previously created device must be destroyed " +"first:" +msgstr "" +"Беспроводное устройство можно перевести в режим hostap только во время " +"создания сетевого псевдоустройства, поэтому ранее созданное устройство " +"необходимо сначала удалить:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:688 +#, no-wrap +msgid "# ifconfig wlan0 destroy\n" +msgstr "# ifconfig wlan0 destroy\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:691 +msgid "" +"then regenerated with the correct option before setting the other parameters:" +msgstr "" +"затем повторно создать с правильной опцией перед установкой остальных " +"параметров:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:696 +#, no-wrap +msgid "" +"# ifconfig wlan0 create wlandev ath0 wlanmode hostap\n" +"# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1\n" +msgstr "" +"# ifconfig wlan0 create wlandev ath0 wlanmode hostap\n" +"# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:699 +msgid "" +"Use man:ifconfig[8] again to see the status of the [.filename]#wlan0# " +"interface:" +msgstr "" +"Используйте man:ifconfig[8] снова, чтобы посмотреть состояние интерфейса " +"[.filename]#wlan0#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:711 +#, no-wrap +msgid "" +"# ifconfig wlan0\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:c3:0d:ac\n" +"\t inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>\n" +"\t status: running\n" +"\t ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60\n" +"\t protmode CTS wme burst dtimperiod 1 -dfs\n" +msgstr "" +"# ifconfig wlan0\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:c3:0d:ac\n" +"\t inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>\n" +"\t status: running\n" +"\t ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60\n" +"\t protmode CTS wme burst dtimperiod 1 -dfs\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:714 +msgid "" +"The `hostap` parameter indicates the interface is running in the host-based " +"access point mode." +msgstr "" +"Параметр `hostap` указывает, что интерфейс работает в режиме точки доступа " +"на основе хоста." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:716 +msgid "" +"The interface configuration can be done automatically at boot time by adding " +"the following lines to [.filename]#/etc/rc.conf#:" +msgstr "" +"Настройка интерфейса может быть выполнена автоматически при загрузке, если " +"добавить следующие строки в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:722 +#, no-wrap +msgid "" +"wlans_ath0=\"wlan0\"\n" +"create_args_wlan0=\"wlanmode hostap\"\n" +"ifconfig_wlan0=\"inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1\"\n" +msgstr "" +"wlans_ath0=\"wlan0\"\n" +"create_args_wlan0=\"wlanmode hostap\"\n" +"ifconfig_wlan0=\"inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1\"\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:724 +#, no-wrap +msgid "Host-based Access Point Without Authentication or Encryption" +msgstr "Точка доступа на основе хоста без аутентификации или шифрования" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:728 +msgid "" +"Although it is not recommended to run an AP without any authentication or " +"encryption, this is a simple way to check if the AP is working. This " +"configuration is also important for debugging client issues." +msgstr "" +"Хотя не рекомендуется запускать точку доступа без какой-либо аутентификации " +"или шифрования, это простой способ проверить, работает ли точка доступа. " +"Такая конфигурация также важна для отладки проблем с клиентами." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:730 +msgid "" +"Once the AP is configured, initiate a scan from another wireless machine to " +"find the AP:" +msgstr "" +"После настройки точки доступа выполните сканирование с другого беспроводного " +"устройства для её обнаружения:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:737 +#, no-wrap +msgid "" +"# ifconfig wlan0 create wlandev ath0\n" +"# ifconfig wlan0 up scan\n" +"SSID/MESH ID BSSID CHAN RATE S:N INT CAPS\n" +"freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WME\n" +msgstr "" +"# ifconfig wlan0 create wlandev ath0\n" +"# ifconfig wlan0 up scan\n" +"SSID/MESH ID BSSID CHAN RATE S:N INT CAPS\n" +"freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WME\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:740 +msgid "The client machine found the AP and can be associated with it:" +msgstr "" +"Клиентская машина обнаружила точку доступа и может быть ассоциирована с ней:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:754 +#, no-wrap +msgid "" +"# ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap\n" +"# ifconfig wlan0\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:d5:43:62\n" +"\t inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g\n" +"\t status: associated\n" +"\t ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7\n" +"\t scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7\n" +"\t roam:rate 5 protmode CTS wme burst\n" +msgstr "" +"# ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap\n" +"# ifconfig wlan0\n" +" wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\t ether 00:11:95:d5:43:62\n" +"\t inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255\n" +"\t media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g\n" +"\t status: associated\n" +"\t ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac\n" +"\t country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7\n" +"\t scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7\n" +"\t roam:rate 5 protmode CTS wme burst\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:757 +#, no-wrap +msgid "WPA2 Host-based Access Point" +msgstr "WPA2 Точка доступа на основе хоста" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:762 +msgid "" +"This section focuses on setting up a FreeBSD access point using the WPA2 " +"security protocol. More details regarding WPA and the configuration of WPA-" +"based wireless clients can be found in crossref:advanced-networking[network-" +"wireless-wpa, WPA with EAP-TLS]." +msgstr "" +"Этот раздел посвящён настройке точки доступа на хосте FreeBSD с " +"использованием протокола безопасности WPA2. Подробнее о WPA и настройке " +"беспроводных клиентов на основе WPA можно узнать в crossref:advanced-" +"networking[network-wireless-wpa, WPA с EAP-TLS]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:764 +msgid "" +"The man:hostapd[8] daemon is used to deal with client authentication and key " +"management on the WPA2-enabled AP." +msgstr "" +"Демон man:hostapd[8] используется для обработки аутентификации клиентов и " +"управления ключами на точке доступа с поддержкой WPA2." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:767 +msgid "" +"The following configuration operations are performed on the FreeBSD machine " +"acting as the AP. Once the AP is correctly working, man:hostapd[8] can be " +"automatically started at boot with this line in [.filename]#/etc/rc.conf#:" +msgstr "" +"В следующих операциях конфигурации выполняются на машине FreeBSD, " +"выступающей в качестве точки доступа (AP). После того как точка доступа " +"работает корректно, man:hostapd[8] можно автоматически запускать при " +"загрузке, добавив эту строку в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:771 +#, no-wrap +msgid "hostapd_enable=\"YES\"\n" +msgstr "hostapd_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:775 +msgid "" +"Before trying to configure man:hostapd[8], first configure the basic " +"settings introduced in crossref:advanced-networking[network-wireless-ap-" +"basic, Basic Settings]." +msgstr "" +"Прежде чем пытаться настроить man:hostapd[8], сначала настройте основные " +"параметры, описанные в crossref:advanced-networking[network-wireless-ap-" +"basic, Основные настройки]." + +#. type: Title ===== +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:776 +#, no-wrap +msgid "WPA2-PSK" +msgstr "WPA2-PSK" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:779 +msgid "" +"WPA2-PSK is intended for small networks where the use of a backend " +"authentication server is not possible or desired." +msgstr "" +"WPA2-PSK предназначен для небольших сетей, где использование сервера " +"аутентификации невозможно или нежелательно." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:781 +msgid "The configuration is done in [.filename]#/etc/hostapd.conf#:" +msgstr "Конфигурация выполняется в [.filename]#/etc/hostapd.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:793 +#, no-wrap +msgid "" +"interface=wlan0 <.>\n" +"debug=1 <.>\n" +"ctrl_interface=/var/run/hostapd <.>\n" +"ctrl_interface_group=wheel <.>\n" +"ssid=freebsdap <.>\n" +"wpa=2 <.>\n" +"wpa_passphrase=freebsdmall <.>\n" +"wpa_key_mgmt=WPA-PSK <.>\n" +"wpa_pairwise=CCMP <.>\n" +msgstr "" +"interface=wlan0 <.>\n" +"debug=1 <.>\n" +"ctrl_interface=/var/run/hostapd <.>\n" +"ctrl_interface_group=wheel <.>\n" +"ssid=freebsdap <.>\n" +"wpa=2 <.>\n" +"wpa_passphrase=freebsdmall <.>\n" +"wpa_key_mgmt=WPA-PSK <.>\n" +"wpa_pairwise=CCMP <.>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:796 +msgid "Wireless interface used for the access point." +msgstr "Беспроводной интерфейс, используемый для точки доступа." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:797 +msgid "" +"Level of verbosity used during the execution of man:hostapd[8]. A value of " +"`1` represents the minimal level." +msgstr "" +"Уровень детализации, используемый во время выполнения man:hostapd[8]. " +"Значение `1` представляет минимальный уровень." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:798 +msgid "" +"Pathname of the directory used by man:hostapd[8] to store domain socket " +"files for communication with external programs such as man:hostapd_cli[8]. " +"The default value is used in this example." +msgstr "" +"Путь к каталогу, используемому man:hostapd[8] для хранения файлов доменных " +"сокетов для взаимодействия с внешними программами, такими как " +"man:hostapd_cli[8]. В этом примере используется значение по умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:799 +msgid "The group allowed to access the control interface files." +msgstr "Группа, которой разрешён доступ к файлам управляющего интерфейса." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:800 +msgid "The wireless network name, or SSID, that will appear in wireless scans." +msgstr "" +"Имя беспроводной сети, или SSID, которое будет отображаться при сканировании " +"беспроводных сетей." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:801 +msgid "" +"Enable WPA and specify which WPA authentication protocol will be required. A " +"value of `2` configures the AP for WPA2 and is recommended. Set to `1` only " +"if the obsolete WPA is required." +msgstr "" +"Включает WPA и указывает, какой протокол аутентификации WPA будет " +"использоваться. Значение `2` настраивает точку доступа на WPA2 и является " +"рекомендуемым. Установите значение `1` только если требуется устаревший WPA." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:802 +msgid "ASCII passphrase for WPA authentication." +msgstr "ASCII-пароль для аутентификации WPA." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:803 +msgid "The key management protocol to use. This example sets WPA-PSK." +msgstr "" +"Протокол управления ключами для использования. В этом примере установлен WPA-" +"PSK." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:804 +msgid "" +"Encryption algorithms accepted by the access point. In this example, only " +"the CCMP (AES) cipher is accepted. CCMP is an alternative to TKIP and is " +"strongly preferred when possible. TKIP should be allowed only when there are " +"stations incapable of using CCMP." +msgstr "" +"Алгоритмы шифрования, принимаемые точкой доступа. В этом примере принимается " +"только шифр CCMP (AES). CCMP является альтернативой TKIP и настоятельно " +"рекомендуется к использованию, когда это возможно. TKIP следует разрешать " +"только в случае наличия станций, не способных использовать CCMP." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:806 +msgid "The next step is to start man:hostapd[8]:" +msgstr "Следующий шаг — запустить man:hostapd[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:810 +#, no-wrap +msgid "# service hostapd forcestart\n" +msgstr "# service hostapd forcestart\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:827 +#, no-wrap +msgid "" +"# ifconfig wlan0\n" +"wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\tether 04:f0:21:16:8e:10\n" +"\tinet6 fe80::6f0:21ff:fe16:8e10%wlan0 prefixlen 64 scopeid 0x9\n" +"\tnd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>\n" +"\tmedia: IEEE 802.11 Wireless Ethernet autoselect mode 11na <hostap>\n" +"\tstatus: running\n" +"\tssid No5ignal channel 36 (5180 MHz 11a ht/40+) bssid 04:f0:21:16:8e:10\n" +"\tcountry US ecm authmode WPA2/802.11i privacy MIXED deftxkey 2\n" +"\tAES-CCM 2:128-bit AES-CCM 3:128-bit txpower 17 mcastrate 6 mgmtrate 6\n" +"\tscanvalid 60 ampdulimit 64k ampdudensity 8 shortgi wme burst\n" +"\tdtimperiod 1 -dfs\n" +"\tgroups: wlan\n" +msgstr "" +"# ifconfig wlan0\n" +"wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\tether 04:f0:21:16:8e:10\n" +"\tinet6 fe80::6f0:21ff:fe16:8e10%wlan0 prefixlen 64 scopeid 0x9\n" +"\tnd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>\n" +"\tmedia: IEEE 802.11 Wireless Ethernet autoselect mode 11na <hostap>\n" +"\tstatus: running\n" +"\tssid No5ignal channel 36 (5180 MHz 11a ht/40+) bssid 04:f0:21:16:8e:10\n" +"\tcountry US ecm authmode WPA2/802.11i privacy MIXED deftxkey 2\n" +"\tAES-CCM 2:128-bit AES-CCM 3:128-bit txpower 17 mcastrate 6 mgmtrate 6\n" +"\tscanvalid 60 ampdulimit 64k ampdudensity 8 shortgi wme burst\n" +"\tdtimperiod 1 -dfs\n" +"\tgroups: wlan\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:832 +msgid "" +"Once the AP is running, the clients can associate with it. See " +"crossref:advanced-networking[network-wireless-ap-basic, Basic Settings] for " +"more details. It is possible to see the stations associated with the AP " +"using `ifconfig _wlan0_ list sta`." +msgstr "" +"После запуска точки доступа клиенты могут подключиться к ней. Подробнее см. " +"в разделе crossref:advanced-networking[network-wireless-ap-basic, Основные " +"настройки]. Список станций, подключённых к точке доступа, можно просмотреть " +"с помощью команды `ifconfig _wlan0_ list sta`." + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:834 +#, no-wrap +msgid "USB Tethering" +msgstr "Раздача интернета через USB" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:838 +msgid "" +"Many cellphones provide the option to share their data connection over USB " +"(often called \"tethering\"). This feature uses one of RNDIS, CDC, or a " +"custom Apple(R) iPhone(R)/iPad(R) protocol." +msgstr "" +"Многие мобильные телефоны предоставляют возможность совместного " +"использования своего интернет-подключения через USB (часто называемую " +"\"тетеринг, раздача Интернета или режим модема\"). Эта функция использует " +"один из протоколов: RNDIS, CDC или проприетарный протокол Apple(R) iPhone(R)/" +"iPad(R)." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:840 +msgid "Android(TM) devices generally use the man:urndis[4] driver." +msgstr "Устройства Android(TM) обычно используют драйвер man:urndis[4]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:841 +msgid "Apple(R) devices use the man:ipheth[4] driver." +msgstr "Устройства Apple(R) используют драйвер man:ipheth[4]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:842 +msgid "Older devices will often use the man:cdce[4] driver." +msgstr "Старые устройства часто используют драйвер man:cdce[4]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:844 +msgid "Before attaching a device, load the appropriate driver into the kernel:" +msgstr "" +"Перед подключением устройства загрузите соответствующий драйвер в ядро:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:850 +#, no-wrap +msgid "" +"# kldload if_urndis\n" +"# kldload if_cdce\n" +"# kldload if_ipheth\n" +msgstr "" +"# kldload if_urndis\n" +"# kldload if_cdce\n" +"# kldload if_ipheth\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:854 +msgid "" +"Once the device is attached ``ue``_0_ will be available for use like a " +"normal network device. Be sure that the \"USB tethering\" option is enabled " +"on the device." +msgstr "" +"После подключения устройства ``ue``_0_ будет доступен для использования как " +"обычное сетевое устройство. Убедитесь, что на устройстве включена опция " +"\"USB-тетеринг\"." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:856 +msgid "" +"To make this change permanent and load the driver as a module at boot time, " +"place the appropriate line of the following in [.filename]#/boot/" +"loader.conf#:" +msgstr "" +"Чтобы сделать это изменение постоянным и загружать драйвер как модуль при " +"загрузке, добавьте соответствующую строку из следующих в [.filename]#/boot/" +"loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:862 +#, no-wrap +msgid "" +"if_urndis_load=\"YES\"\n" +"if_cdce_load=\"YES\"\n" +"if_ipheth_load=\"YES\"\n" +msgstr "" +"if_urndis_load=\"YES\"\n" +"if_cdce_load=\"YES\"\n" +"if_ipheth_load=\"YES\"\n" + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:865 +#, no-wrap +msgid "Bluetooth" +msgstr "Bluetooth" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:870 +msgid "" +"Bluetooth is a wireless technology for creating personal networks operating " +"in the 2.4 GHz unlicensed band, with a range of 10 meters. Networks are " +"usually formed ad-hoc from portable devices such as cellular phones, " +"handhelds, and laptops. Unlike Wi-Fi wireless technology, Bluetooth offers " +"higher level service profiles, such as FTP-like file servers, file pushing, " +"voice transport, serial line emulation, and more." +msgstr "" +"Bluetooth — это беспроводная технология для создания персональных сетей, " +"работающих в нелицензируемом диапазоне 2.4 ГГц, с радиусом действия до 10 " +"метров. Сети обычно формируются на лету из портативных устройств, таких как " +"мобильные телефоны, карманные компьютеры и ноутбуки. В отличие от технологии " +"Wi-Fi, Bluetooth предоставляет сервисы более высокого уровня, такие как FTP-" +"подобные файловые серверы, передача файлов, передача голоса, эмуляция " +"последовательной линии и многое другое." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:873 +msgid "" +"This section describes the use of a USB Bluetooth dongle on a FreeBSD " +"system. It then describes the various Bluetooth protocols and utilities." +msgstr "" +"Этот раздел описывает использование USB Bluetooth адаптера в системе " +"FreeBSD. Затем рассматриваются различные протоколы и утилиты Bluetooth." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:874 +#, no-wrap +msgid "Loading Bluetooth Support" +msgstr "Загрузка поддержки Bluetooth" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:881 +msgid "" +"The Bluetooth stack in FreeBSD is implemented using the man:netgraph[4] " +"framework. A broad variety of Bluetooth USB dongles is supported by " +"man:ng_ubt[4]. Broadcom BCM2033 based Bluetooth devices are supported by " +"the man:ubtbcmfw[4] and man:ng_ubt[4] drivers. The 3Com Bluetooth PC Card " +"3CRWB60-A is supported by the man:ng_bt3c[4] driver. Serial and UART based " +"Bluetooth devices are supported by man:sio[4], man:ng_h4[4], and " +"man:hcseriald[8]." +msgstr "" +"Стек Bluetooth в FreeBSD реализован с использованием фреймворка " +"man:netgraph[4]. Широкий спектр Bluetooth USB-адаптеров поддерживается " +"драйвером man:ng_ubt[4]. Устройства Bluetooth на базе Broadcom BCM2033 " +"поддерживаются драйверами man:ubtbcmfw[4] и man:ng_ubt[4]. Карта Bluetooth " +"PC Card 3CRWB60-A от 3Com поддерживается драйвером man:ng_bt3c[4]. Bluetooth-" +"устройства на основе последовательного порта и UART поддерживаются " +"драйверами man:sio[4], man:ng_h4[4] и утилитой man:hcseriald[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:884 +msgid "" +"Before attaching a device, determine which of the above drivers it uses, " +"then load the driver. For example, if the device uses the man:ng_ubt[4] " +"driver:" +msgstr "" +"Прежде чем подключить устройство, определите, какой из вышеуказанных " +"драйверов оно использует, затем загрузите драйвер. Например, если устройство " +"использует драйвер man:ng_ubt[4]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:888 +#, no-wrap +msgid "# kldload ng_ubt\n" +msgstr "# kldload ng_ubt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:891 +msgid "" +"If the Bluetooth device will be attached to the system during system " +"startup, the system can be configured to load the module at boot time by " +"adding the driver to [.filename]#/boot/loader.conf#:" +msgstr "" +"Если устройство Bluetooth будет подключено к системе во время её загрузки, " +"можно настроить систему на автоматическую загрузку модуля, добавив драйвер в " +"[.filename]#/boot/loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:895 +#, no-wrap +msgid "ng_ubt_load=\"YES\"\n" +msgstr "ng_ubt_load=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:899 +msgid "" +"Once the driver is loaded, plug in the USB dongle. If the driver load was " +"successful, output similar to the following should appear on the console and " +"in [.filename]#/var/log/messages#:" +msgstr "" +"После загрузки драйвера подключите USB-адаптер. Если загрузка драйвера " +"прошла успешно, на консоли и в [.filename]#/var/log/messages# появится " +"вывод, похожий на следующий:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:906 +#, no-wrap +msgid "" +"ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2\n" +"ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2\n" +"ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,\n" +" wMaxPacketSize=49, nframes=6, buffer size=294\n" +msgstr "" +"ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2\n" +"ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2\n" +"ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,\n" +" wMaxPacketSize=49, nframes=6, buffer size=294\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:911 +msgid "" +"To start and stop the Bluetooth stack, use its startup script. It is a good " +"idea to stop the stack before unplugging the device. Starting the bluetooth " +"stack might require man:hcsecd[8] to be started. When starting the stack, " +"the output should be similar to the following:" +msgstr "" +"Для запуска и остановки стека Bluetooth используйте его стартовый скрипт. " +"Рекомендуется остановить стек перед отключением устройства. Запуск стека " +"Bluetooth может потребовать запуска man:hcsecd[8]. При запуске стека вывод " +"должен быть похож на следующий:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:926 +#, no-wrap +msgid "" +"# service bluetooth start ubt0\n" +"BD_ADDR: 00:02:72:00:d4:1a\n" +"Features: 0xff 0xff 0xf 00 00 00 00 00\n" +"<3-Slot> <5-Slot> <Encryption> <Slot offset>\n" +"<Timing accuracy> <Switch> <Hold mode> <Sniff mode>\n" +"<Park mode> <RSSI> <Channel quality> <SCO link>\n" +"<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>\n" +"<Paging scheme> <Power control> <Transparent SCO data>\n" +"Max. ACL packet size: 192 bytes\n" +"Number of ACL packets: 8\n" +"Max. SCO packet size: 64 bytes\n" +"Number of SCO packets: 8\n" +msgstr "" +"# service bluetooth start ubt0\n" +"BD_ADDR: 00:02:72:00:d4:1a\n" +"Features: 0xff 0xff 0xf 00 00 00 00 00\n" +"<3-Slot> <5-Slot> <Encryption> <Slot offset>\n" +"<Timing accuracy> <Switch> <Hold mode> <Sniff mode>\n" +"<Park mode> <RSSI> <Channel quality> <SCO link>\n" +"<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>\n" +"<Paging scheme> <Power control> <Transparent SCO data>\n" +"Max. ACL packet size: 192 bytes\n" +"Number of ACL packets: 8\n" +"Max. SCO packet size: 64 bytes\n" +"Number of SCO packets: 8\n" + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:928 +#, no-wrap +msgid "Finding Other Bluetooth Devices" +msgstr "Поиск других устройств Bluetooth" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:933 +msgid "" +"The Host Controller Interface (HCI) provides a uniform method for accessing " +"Bluetooth baseband capabilities. In FreeBSD, a netgraph HCI node is created " +"for each Bluetooth device. For more details, refer to man:ng_hci[4]." +msgstr "" +"Интерфейс Host Controller Interface (HCI) предоставляет единый метод доступа " +"к базовым возможностям Bluetooth. В FreeBSD узел netgraph HCI создается для " +"каждого устройства Bluetooth. Подробнее см. man:ng_hci[4]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:940 +msgid "" +"One of the most common tasks is discovery of Bluetooth devices within RF " +"proximity. This operation is called _inquiry_. Inquiry and other HCI " +"related operations are done using man:hccontrol[8]. The example below shows " +"how to find out which Bluetooth devices are in range. The list of devices " +"should be displayed in a few seconds. Note that a remote device will only " +"answer the inquiry if it is set to _discoverable_ mode." +msgstr "" +"Одной из наиболее распространённых задач является обнаружение Bluetooth-" +"устройств в радиусе действия. Эта операция называется _ сканирование " +"(inquiry)_. Запрос и другие операции, связанные с HCI, выполняются с помощью " +"man:hccontrol[8]. В приведённом ниже примере показано, как выяснить, какие " +"Bluetooth-устройства находятся в зоне действия. Список устройств должен " +"отобразиться через несколько секунд. Обратите внимание, что удалённое " +"устройство ответит на запрос только в том случае, если оно находится в " +"режиме _ обнаруживаемое (discoverable)_." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:953 +#, no-wrap +msgid "" +"% hccontrol -n ubt0hci inquiry\n" +"Inquiry result, num_responses=1\n" +"Inquiry result #0\n" +" BD_ADDR: 00:80:37:29:19:a4\n" +" Page Scan Rep. Mode: 0x1\n" +" Page Scan Period Mode: 00\n" +" Page Scan Mode: 00\n" +" Class: 52:02:04\n" +" Clock offset: 0x78ef\n" +"Inquiry complete. Status: No error [00]\n" +msgstr "" +"% hccontrol -n ubt0hci inquiry\n" +"Inquiry result, num_responses=1\n" +"Inquiry result #0\n" +" BD_ADDR: 00:80:37:29:19:a4\n" +" Page Scan Rep. Mode: 0x1\n" +" Page Scan Period Mode: 00\n" +" Page Scan Mode: 00\n" +" Class: 52:02:04\n" +" Clock offset: 0x78ef\n" +"Inquiry complete. Status: No error [00]\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:959 +msgid "" +"The `BD_ADDR` is the unique address of a Bluetooth device, similar to the " +"MAC address of a network card. This address is needed for further " +"communication with a device and it is possible to assign a human readable " +"name to a `BD_ADDR`. Information regarding the known Bluetooth hosts is " +"contained in [.filename]#/etc/bluetooth/hosts#. The following example shows " +"how to obtain the human readable name that was assigned to the remote device:" +msgstr "" +"`BD_ADDR` — это уникальный адрес Bluetooth-устройства, аналогичный MAC-" +"адресу сетевой карты. Этот адрес необходим для дальнейшего взаимодействия с " +"устройством, и ему можно присвоить удобочитаемое имя. Информация об " +"известных Bluetooth-хостах содержится в файле [.filename]#/etc/bluetooth/" +"hosts#. В следующем примере показано, как получить удобочитаемое имя, " +"присвоенное удалённому устройству:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:965 +#, no-wrap +msgid "" +"% hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4\n" +"BD_ADDR: 00:80:37:29:19:a4\n" +"Name: Pav's T39\n" +msgstr "" +"% hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4\n" +"BD_ADDR: 00:80:37:29:19:a4\n" +"Name: Pav's T39\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:969 +msgid "" +"If an inquiry is performed on a remote Bluetooth device, it will find the " +"computer as \"your.host.name (ubt0)\". The name assigned to the local " +"device can be changed at any time." +msgstr "" +"Если выполняется запрос к удалённому устройству Bluetooth, компьютер будет " +"обнаружен как \"your.host.name (ubt0)\". Имя, назначенное локальному " +"устройству, можно изменить в любое время." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:972 +msgid "" +"Remote devices can be assigned aliases in [.filename]#/etc/bluetooth/" +"hosts#. More information about [.filename]#/etc/bluetooth/hosts# file might " +"be found in man:bluetooth.hosts[5]." +msgstr "" +"Удаленным устройствам могут быть назначены псевдонимы в [.filename]#/etc/" +"bluetooth/hosts#. Дополнительная информация о файле [.filename]#/etc/" +"bluetooth/hosts# может быть найдена в man:bluetooth.hosts[5]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:975 +msgid "" +"The Bluetooth system provides a point-to-point connection between two " +"Bluetooth units, or a point-to-multipoint connection which is shared among " +"several Bluetooth devices. The following example shows how to create a " +"connection to a remote device:" +msgstr "" +"Система Bluetooth обеспечивает соединение точка-точка между двумя " +"устройствами Bluetooth или соединение точка-многоточка, разделяемое между " +"несколькими устройствами Bluetooth. В следующем примере показано, как " +"создать соединение с удалённым устройством:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:979 +#, no-wrap +msgid "% hccontrol -n ubt0hci create_connection BT_ADDR\n" +msgstr "% hccontrol -n ubt0hci create_connection BT_ADDR\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:982 +msgid "" +"`create_connection` accepts `BT_ADDR` as well as host aliases in " +"[.filename]#/etc/bluetooth/hosts#." +msgstr "" +"`create_connection` принимает `BT_ADDR`, а также псевдонимы хостов в файле " +"[.filename]#/etc/bluetooth/hosts#." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:984 +msgid "" +"The following example shows how to obtain the list of active baseband " +"connections for the local device:" +msgstr "" +"Следующий пример показывает, как получить список активных базовых соединений " +"для локального устройства:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:990 +#, no-wrap +msgid "" +"% hccontrol -n ubt0hci read_connection_list\n" +"Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State\n" +"00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN\n" +msgstr "" +"% hccontrol -n ubt0hci read_connection_list\n" +"Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State\n" +"00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:994 +msgid "" +"A _connection handle_ is useful when termination of the baseband connection " +"is required, though it is normally not required to do this by hand. The " +"stack will automatically terminate inactive baseband connections." +msgstr "" +"_Дескриптор соединения (connection handle)_ полезен, когда требуется разрыв " +"базового соединения, хотя обычно это не нужно делать вручную. Стек " +"автоматически разрывает неактивные базовые соединения." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1000 +#, no-wrap +msgid "" +"# hccontrol -n ubt0hci disconnect 41\n" +"Connection handle: 41\n" +"Reason: Connection terminated by local host [0x16]\n" +msgstr "" +"# hccontrol -n ubt0hci disconnect 41\n" +"Connection handle: 41\n" +"Reason: Connection terminated by local host [0x16]\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1004 +msgid "" +"Type `hccontrol help` for a complete listing of available HCI commands. " +"Most of the HCI commands do not require superuser privileges." +msgstr "" +"Введите `hccontrol help` для получения полного списка доступных команд HCI. " +"Большинство команд HCI не требуют прав суперпользователя." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1005 +#, no-wrap +msgid "Device Pairing" +msgstr "Сопряжение устройств" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1016 +msgid "" +"By default, Bluetooth communication is not authenticated, and any device can " +"talk to any other device. A Bluetooth device, such as a cellular phone, may " +"choose to require authentication to provide a particular service. Bluetooth " +"authentication is normally done with a _PIN code_, an ASCII string up to 16 " +"characters in length. The user is required to enter the same PIN code on " +"both devices. Once the user has entered the PIN code, both devices will " +"generate a _link key_. After that, the link key can be stored either in the " +"devices or in a persistent storage. Next time, both devices will use the " +"previously generated link key. This procedure is called _pairing_. Note " +"that if the link key is lost by either device, the pairing must be repeated." +msgstr "" +"По умолчанию Bluetooth-связь не требует аутентификации, и любое устройство " +"может взаимодействовать с любым другим устройством. Устройство Bluetooth, " +"такое как сотовый телефон, может потребовать аутентификацию для " +"предоставления определенной услуги. Аутентификация Bluetooth обычно " +"выполняется с помощью _PIN-кода_ — строки ASCII длиной до 16 символов. " +"Пользователь должен ввести один и тот же PIN-код на обоих устройствах. После " +"ввода PIN-кода оба устройства сгенерируют _ключ связи_. Затем ключ связи " +"может быть сохранен либо в самих устройствах, либо в постоянном хранилище. В " +"следующий раз оба устройства будут использовать ранее сгенерированный ключ " +"связи. Эта процедура называется _сопряжением (pairing)_. Обратите внимание, " +"что если ключ связи будет утерян одним из устройств, спаривание необходимо " +"повторить." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1020 +msgid "" +"The man:hcsecd[8] daemon is responsible for handling Bluetooth " +"authentication requests. The default configuration file is [.filename]#/etc/" +"bluetooth/hcsecd.conf#. An example section for a cellular phone with the " +"PIN code set to `1234` is shown below:" +msgstr "" +"Демон man:hcsecd[8] отвечает за обработку запросов аутентификации Bluetooth. " +"Конфигурационный файл по умолчанию — [.filename]#/etc/bluetooth/" +"hcsecd.conf#. Пример раздела для мобильного телефона с PIN-кодом `1234` " +"приведён ниже:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1029 +#, no-wrap +msgid "" +"device {\n" +" bdaddr 00:80:37:29:19:a4;\n" +" name \"Pav's T39\";\n" +" key nokey;\n" +" pin \"1234\";\n" +" }\n" +msgstr "" +"device {\n" +" bdaddr 00:80:37:29:19:a4;\n" +" name \"Pav's T39\";\n" +" key nokey;\n" +" pin \"1234\";\n" +" }\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1039 +msgid "" +"The only limitation on PIN codes is length. Some devices, such as Bluetooth " +"headsets, may have a fixed PIN code built in. The `-d` switch forces " +"man:hcsecd[8] to stay in the foreground, so it is easy to see what is " +"happening. Set the remote device to receive pairing and initiate the " +"Bluetooth connection to the remote device. The remote device should " +"indicate that pairing was accepted and request the PIN code. Enter the same " +"PIN code listed in [.filename]#hcsecd.conf#. Now the computer and the " +"remote device are paired. Alternatively, pairing can be initiated on the " +"remote device." +msgstr "" +"Единственное ограничение PIN-кодов — их длина. Некоторые устройства, " +"например Bluetooth-гарнитуры, могут иметь встроенный фиксированный PIN-код. " +"Ключ `-d` заставляет man:hcsecd[8] оставаться на переднем плане, что " +"упрощает отслеживание происходящего. Настройте удалённое устройство на приём " +"сопряжения и инициируйте Bluetooth-соединение с ним. Удалённое устройство " +"должно подтвердить принятие сопряжения и запросить PIN-код. Введите тот же " +"PIN-код, который указан в [.filename]#hcsecd.conf#. Теперь компьютер и " +"удалённое устройство сопряжены. Также сопряжение можно инициировать с " +"удалённого устройства." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1041 +msgid "" +"The following line can be added to [.filename]#/etc/rc.conf# to configure " +"man:hcsecd[8] to start automatically on system start:" +msgstr "" +"Следующую строку можно добавить в [.filename]#/etc/rc.conf#, чтобы настроить " +"автоматический запуск man:hcsecd[8] при загрузке системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1045 +#, no-wrap +msgid "hcsecd_enable=\"YES\"\n" +msgstr "hcsecd_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1048 +msgid "The following is a sample of the man:hcsecd[8] daemon output:" +msgstr "Вот пример вывода демона man:hcsecd[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1057 +#, no-wrap +msgid "" +"hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4\n" +"hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist\n" +"hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4\n" +"hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4\n" +"hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists\n" +"hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4\n" +msgstr "" +"hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4\n" +"hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist\n" +"hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4\n" +"hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4\n" +"hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists\n" +"hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4\n" + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1059 +#, no-wrap +msgid "Network Access with PPP Profiles" +msgstr "Доступ в сеть с профилями PPP" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1063 +msgid "" +"A Dial-Up Networking (DUN) profile can be used to configure a cellular phone " +"as a wireless modem for connecting to a dial-up Internet access server. It " +"can also be used to configure a computer to receive data calls from a " +"cellular phone." +msgstr "" +"Профиль Dial-Up Networking (DUN) может использоваться для настройки сотового " +"телефона в качестве беспроводного модема для подключения к серверу доступа в " +"Интернет через коммутируемое соединение. Он также может применяться для " +"настройки компьютера для приёма входящих вызовов передачи данных с сотового " +"телефона." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1066 +msgid "" +"Network access with a PPP profile can be used to provide LAN access for a " +"single Bluetooth device or multiple Bluetooth devices. It can also provide " +"PC to PC connection using PPP networking over serial cable emulation." +msgstr "" +"Доступ к сети с профилем PPP может использоваться для предоставления доступа " +"к LAN для одного устройства Bluetooth или нескольких устройств Bluetooth. " +"Также он может обеспечить соединение между компьютерами с использованием PPP-" +"сетей через эмуляцию последовательного кабеля." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1070 +msgid "" +"In FreeBSD, these profiles are implemented with man:ppp[8] and the " +"man:rfcomm_pppd[8] wrapper which converts a Bluetooth connection into " +"something PPP can use. Before a profile can be used, a new PPP label must " +"be created in [.filename]#/etc/ppp/ppp.conf#. Consult man:rfcomm_pppd[8] " +"for examples." +msgstr "" +"В FreeBSD эти профили реализованы с помощью man:ppp[8] и обёртки " +"man:rfcomm_pppd[8], которая преобразует Bluetooth-соединение в форму, " +"пригодную для использования PPP. Перед использованием профиля необходимо " +"создать новую метку PPP в [.filename]#/etc/ppp/ppp.conf#. Примеры можно " +"найти в man:rfcomm_pppd[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1072 +msgid "" +"In this example, man:rfcomm_pppd[8] is used to open a connection to a remote " +"device with a `BD_ADDR` of `00:80:37:29:19:a4` on a DUNRFCOMM channel:" +msgstr "" +"В этом примере man:rfcomm_pppd[8] используется для открытия соединения с " +"удалённым устройством с `BD_ADDR` `00:80:37:29:19:a4` на DUNRFCOMM канале:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1076 +#, no-wrap +msgid "# rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup\n" +msgstr "# rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1081 +msgid "" +"The actual channel number will be obtained from the remote device using the " +"SDP protocol. It is possible to specify the RFCOMM channel by hand, and in " +"this case man:rfcomm_pppd[8] will not perform the SDP query. Use " +"man:sdpcontrol[8] to find out the RFCOMM channel on the remote device." +msgstr "" +"Фактический номер канала будет получен с удаленного устройства с " +"использованием протокола SDP. Можно указать канал RFCOMM вручную, и в этом " +"случае man:rfcomm_pppd[8] не будет выполнять запрос SDP. Используйте " +"man:sdpcontrol[8], чтобы узнать канал RFCOMM на удаленном устройстве." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1087 +msgid "" +"In order to provide network access with the PPPLAN service, man:sdpd[8] must " +"be running and a new entry for LAN clients must be created in [.filename]#/" +"etc/ppp/ppp.conf#. Consult man:rfcomm_pppd[8] for examples. Finally, start " +"the RFCOMMPPP server on a valid RFCOMM channel number. The RFCOMMPPP server " +"will automatically register the Bluetooth LAN service with the local SDP " +"daemon. The example below shows how to start the RFCOMMPPP server." +msgstr "" +"Для предоставления сетевого доступа через службу PPPLAN необходимо, чтобы " +"работал man:sdpd[8], и была создана новая запись для клиентов LAN в файле " +"[.filename]#/etc/ppp/ppp.conf#. Примеры можно найти в man:rfcomm_pppd[8]. " +"Наконец, запустите сервер RFCOMMPPP на допустимом номере канала RFCOMM. " +"Сервер RFCOMMPPP автоматически зарегистрирует службу Bluetooth LAN в " +"локальном демоне SDP. В приведенном ниже примере показано, как запустить " +"сервер RFCOMMPPP." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1091 +#, no-wrap +msgid "# rfcomm_pppd -s -C 7 -l rfcomm-server\n" +msgstr "# rfcomm_pppd -s -C 7 -l rfcomm-server\n" + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1093 +#, no-wrap +msgid "Bluetooth Protocols" +msgstr "Протоколы Bluetooth" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1096 +msgid "" +"This section provides an overview of the various Bluetooth protocols, their " +"function, and associated utilities." +msgstr "" +"Этот раздел предоставляет обзор различных протоколов Bluetooth, их функций и " +"связанных с ними утилит." + +#. type: Title ==== +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1097 +#, no-wrap +msgid "Logical Link Control and Adaptation Protocol (L2CAP)" +msgstr "Logical Link Control and Adaptation Protocol (L2CAP)" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1101 +msgid "" +"The Logical Link Control and Adaptation Protocol (L2CAP) provides connection-" +"oriented and connectionless data services to upper layer protocols. L2CAP " +"permits higher level protocols and applications to transmit and receive " +"L2CAP data packets up to 64 kilobytes in length." +msgstr "" +"Протокол управления логическим соединением и адаптации (L2CAP) предоставляет " +"сервисы передачи данных с установлением соединения и без него для протоколов " +"верхнего уровня. L2CAP позволяет протоколам более высокого уровня и " +"приложениям передавать и принимать пакеты данных L2CAP размером до 64 " +"килобайт." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1107 +msgid "" +"L2CAP is based around the concept of _channels_. A channel is a logical " +"connection on top of a baseband connection, where each channel is bound to a " +"single protocol in a many-to-one fashion. Multiple channels can be bound to " +"the same protocol, but a channel cannot be bound to multiple protocols. " +"Each L2CAP packet received on a channel is directed to the appropriate " +"higher level protocol. Multiple channels can share the same baseband " +"connection." +msgstr "" +"L2CAP основан на концепции _каналов_. Канал — это логическое соединение " +"поверх базового соединения, где каждый канал связан с одним протоколом по " +"принципу \"многие к одному\". Несколько каналов могут быть связаны с одним и " +"тем же протоколом, но канал не может быть связан с несколькими протоколами. " +"Каждый полученный L2CAP-пакет на канале направляется соответствующему " +"протоколу более высокого уровня. Несколько каналов могут совместно " +"использовать одно и то же базовое соединение." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1112 +msgid "" +"In FreeBSD, a netgraph L2CAP node is created for each Bluetooth device. " +"This node is normally connected to the downstream Bluetooth HCI node and " +"upstream Bluetooth socket nodes. The default name for the L2CAP node is " +"\"devicel2cap\". For more details refer to man:ng_l2cap[4]." +msgstr "" +"В FreeBSD для каждого устройства Bluetooth создается узел netgraph типа " +"L2CAP. Этот узел обычно соединен с нижестоящим узлом Bluetooth HCI и " +"вышестоящими узлами Bluetooth-сокет. По умолчанию узел L2CAP имеет имя " +"\"devicel2cap\". Для получения дополнительной информации обратитесь к " +"man:ng_l2cap[4]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1115 +msgid "" +"A useful command is man:l2ping[8], which can be used to ping other devices. " +"Some Bluetooth implementations might not return all of the data sent to " +"them, so `0 bytes` in the following example is normal." +msgstr "" +"Полезной командой является man:l2ping[8], которую можно использовать для " +"проверки связи с другими устройствами. Некоторые реализации Bluetooth могут " +"не возвращать все отправленные им данные, поэтому `0 байт` в следующем " +"примере является нормой." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1123 +#, no-wrap +msgid "" +"# l2ping -a 00:80:37:29:19:a4\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0\n" +msgstr "" +"# l2ping -a 00:80:37:29:19:a4\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0\n" +"0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1127 +msgid "" +"The man:l2control[8] utility is used to perform various operations on L2CAP " +"nodes. This example shows how to obtain the list of logical connections " +"(channels) and the list of baseband connections for the local device:" +msgstr "" +"Утилита man:l2control[8] используется для выполнения различных операций с " +"узлами L2CAP. Этот пример показывает, как получить список логических " +"соединений (каналов) и список базовых соединений для локального устройства:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1138 +#, no-wrap +msgid "" +"% l2control -a 00:02:72:00:d4:1a read_channel_list\n" +"L2CAP channels:\n" +"Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State\n" +"00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN\n" +"% l2control -a 00:02:72:00:d4:1a read_connection_list\n" +"L2CAP connections:\n" +"Remote BD_ADDR Handle Flags Pending State\n" +"00:07:e0:00:0b:ca 41 O 0 OPEN\n" +msgstr "" +"% l2control -a 00:02:72:00:d4:1a read_channel_list\n" +"L2CAP channels:\n" +"Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State\n" +"00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN\n" +"% l2control -a 00:02:72:00:d4:1a read_connection_list\n" +"L2CAP connections:\n" +"Remote BD_ADDR Handle Flags Pending State\n" +"00:07:e0:00:0b:ca 41 O 0 OPEN\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1143 +msgid "" +"Another diagnostic tool is man:btsockstat[1]. It is similar to " +"man:netstat[1], but for Bluetooth network-related data structures. The " +"example below shows the same logical connection as man:l2control[8] above." +msgstr "" +"Еще один инструмент диагностики — man:btsockstat[1]. Он похож на " +"man:netstat[1], но предназначен для структур данных, связанных с Bluetooth-" +"сетями. В примере ниже показано то же логическое соединение, что и в " +"man:l2control[8] выше." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1156 +#, no-wrap +msgid "" +"% btsockstat\n" +"Active L2CAP sockets\n" +"PCB Recv-Q Send-Q Local address/PSM Foreign address CID State\n" +"c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN\n" +"Active RFCOMM sessions\n" +"L2PCB PCB Flag MTU Out-Q DLCs State\n" +"c2afe900 c2b53380 1 127 0 Yes OPEN\n" +"Active RFCOMM sockets\n" +"PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State\n" +"c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN\n" +msgstr "" +"% btsockstat\n" +"Active L2CAP sockets\n" +"PCB Recv-Q Send-Q Local address/PSM Foreign address CID State\n" +"c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN\n" +"Active RFCOMM sessions\n" +"L2PCB PCB Flag MTU Out-Q DLCs State\n" +"c2afe900 c2b53380 1 127 0 Yes OPEN\n" +"Active RFCOMM sockets\n" +"PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State\n" +"c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1158 +#, no-wrap +msgid "Radio Frequency Communication (RFCOMM)" +msgstr "Радиочастотная связь (RFCOMM)" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1163 +msgid "" +"The RFCOMM protocol provides emulation of serial ports over the L2CAP " +"protocol. RFCOMM is a simple transport protocol, with additional provisions " +"for emulating the 9 circuits of RS-232 (EIATIA-232-E) serial ports. It " +"supports up to 60 simultaneous connections (RFCOMM channels) between two " +"Bluetooth devices." +msgstr "" +"Протокол RFCOMM обеспечивает эмуляцию последовательных портов поверх " +"протокола L2CAP. RFCOMM — это простой транспортный протокол с " +"дополнительными возможностями для эмуляции 9 последовательных портов RS-232 " +"(EIATIA-232-E). Он поддерживает до 60 одновременных соединений (каналов " +"RFCOMM) между двумя устройствами Bluetooth." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1167 +msgid "" +"For the purposes of RFCOMM, a complete communication path involves two " +"applications running on the communication endpoints with a communication " +"segment between them. RFCOMM is intended to cover applications that make " +"use of the serial ports of the devices in which they reside. The " +"communication segment is a direct connect Bluetooth link from one device to " +"another." +msgstr "" +"Для целей RFCOMM полный путь передачи данных включает два приложения, " +"работающие на конечных точках соединения, и сегмент передачи данных между " +"ними. RFCOMM предназначен для приложений, использующих последовательные " +"порты устройств, в которых они работают. Сегмент передачи данных " +"представляет собой прямое Bluetooth-соединение между устройствами." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1170 +msgid "" +"RFCOMM is only concerned with the connection between the devices in the " +"direct connect case, or between the device and a modem in the network case. " +"RFCOMM can support other configurations, such as modules that communicate " +"via Bluetooth wireless technology on one side and provide a wired interface " +"on the other side." +msgstr "" +"RFCOMM занимается только соединением между устройствами в случае прямого " +"подключения или между устройством и модемом в случае сетевого подключения. " +"RFCOMM может поддерживать другие конфигурации, такие как модули, которые " +"обмениваются данными через технологию беспроводной связи Bluetooth с одной " +"стороны и предоставляют проводной интерфейс с другой стороны." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1172 +msgid "In FreeBSD, RFCOMM is implemented at the Bluetooth sockets layer." +msgstr "В FreeBSD RFCOMM реализован на уровне сокетов Bluetooth." + +#. type: Title ==== +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1173 +#, no-wrap +msgid "Service Discovery Protocol (SDP)" +msgstr "Протокол обнаружения служб (SDP)" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1177 +msgid "" +"The Service Discovery Protocol (SDP) provides the means for client " +"applications to discover the existence of services provided by server " +"applications as well as the attributes of those services. The attributes of " +"a service include the type or class of service offered and the mechanism or " +"protocol information needed to utilize the service." +msgstr "" +"Протокол обнаружения служб (SDP) предоставляет клиентским приложениям " +"возможность обнаруживать существование служб, предоставляемых серверными " +"приложениями, а также атрибуты этих служб. Атрибуты службы включают тип или " +"класс предоставляемой службы, а также информацию о механизме или протоколе, " +"необходимую для использования службы." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1184 +msgid "" +"SDP involves communication between a SDP server and a SDP client. The " +"server maintains a list of service records that describe the characteristics " +"of services associated with the server. Each service record contains " +"information about a single service. A client may retrieve information from " +"a service record maintained by the SDP server by issuing a SDP request. If " +"the client, or an application associated with the client, decides to use a " +"service, it must open a separate connection to the service provider in order " +"to utilize the service. SDP provides a mechanism for discovering services " +"and their attributes, but it does not provide a mechanism for utilizing " +"those services." +msgstr "" +"SDP включает взаимодействие между сервером SDP и клиентом SDP. Сервер хранит " +"список записей служб, которые описывают характеристики служб, связанных с " +"сервером. Каждая запись службы содержит информацию об отдельной службе. " +"Клиент может получить информацию из записи службы, хранящейся на сервере " +"SDP, отправив запрос SDP. Если клиент или приложение, связанное с клиентом, " +"решает использовать службу, он должен установить отдельное соединение с " +"провайдером службы для её использования. SDP предоставляет механизм для " +"обнаружения служб и их атрибутов, но не предоставляет механизма для " +"использования этих служб." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1188 +msgid "" +"Normally, a SDP client searches for services based on some desired " +"characteristics of the services. However, there are times when it is " +"desirable to discover which types of services are described by an SDP " +"server's service records without any prior information about the services. " +"This process of looking for any offered services is called _browsing_." +msgstr "" +"Обычно клиент SDP ищет услуги на основе определённых желаемых характеристик. " +"Однако бывают случаи, когда необходимо обнаружить, какие типы услуг описаны " +"в записях сервера SDP без какой-либо предварительной информации об этих " +"услугах. Этот процесс поиска любых предлагаемых услуг называется _обзором " +"(browsing)_." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1191 +msgid "" +"The Bluetooth SDP server, man:sdpd[8], and command line client, " +"man:sdpcontrol[8], are included in the standard FreeBSD installation. The " +"following example shows how to perform a SDP browse query." +msgstr "" +"Сервер Bluetooth SDP, man:sdpd[8], и клиент командной строки — " +"man:sdpcontrol[8], включены в стандартную установку FreeBSD. В следующем " +"примере показано, как выполнить запрос обзора SDP." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1202 +#, no-wrap +msgid "" +"% sdpcontrol -a 00:01:03:fc:6e:ec browse\n" +"Record Handle: 00000000\n" +"Service Class ID List:\n" +" Service Discovery Server (0x1000)\n" +"Protocol Descriptor List:\n" +" L2CAP (0x0100)\n" +" Protocol specific parameter #1: u/int/uuid16 1\n" +" Protocol specific parameter #2: u/int/uuid16 1\n" +msgstr "" +"% sdpcontrol -a 00:01:03:fc:6e:ec browse\n" +"Record Handle: 00000000\n" +"Service Class ID List:\n" +" Service Discovery Server (0x1000)\n" +"Protocol Descriptor List:\n" +" L2CAP (0x0100)\n" +" Protocol specific parameter #1: u/int/uuid16 1\n" +" Protocol specific parameter #2: u/int/uuid16 1\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1206 +#, no-wrap +msgid "" +"Record Handle: 0x00000001\n" +"Service Class ID List:\n" +" Browse Group Descriptor (0x1001)\n" +msgstr "" +"Record Handle: 0x00000001\n" +"Service Class ID List:\n" +" Browse Group Descriptor (0x1001)\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1216 +#, no-wrap +msgid "" +"Record Handle: 0x00000002\n" +"Service Class ID List:\n" +" LAN Access Using PPP (0x1102)\n" +"Protocol Descriptor List:\n" +" L2CAP (0x0100)\n" +" RFCOMM (0x0003)\n" +" Protocol specific parameter #1: u/int8/bool 1\n" +"Bluetooth Profile Descriptor List:\n" +" LAN Access Using PPP (0x1102) ver. 1.0\n" +msgstr "" +"Record Handle: 0x00000002\n" +"Service Class ID List:\n" +" LAN Access Using PPP (0x1102)\n" +"Protocol Descriptor List:\n" +" L2CAP (0x0100)\n" +" RFCOMM (0x0003)\n" +" Protocol specific parameter #1: u/int8/bool 1\n" +"Bluetooth Profile Descriptor List:\n" +" LAN Access Using PPP (0x1102) ver. 1.0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1223 +msgid "" +"Note that each service has a list of attributes, such as the RFCOMM " +"channel. Depending on the service, the user might need to make note of some " +"of the attributes. Some Bluetooth implementations do not support service " +"browsing and may return an empty list. In this case, it is possible to " +"search for the specific service. The example below shows how to search for " +"the OBEX Object Push (OPUSH) service:" +msgstr "" +"Обратите внимание, что каждая служба имеет список атрибутов, таких как канал " +"RFCOMM. В зависимости от службы пользователю может потребоваться запомнить " +"некоторые из атрибутов. Некоторые реализации Bluetooth не поддерживают обзор " +"служб и могут возвращать пустой список. В этом случае можно выполнить поиск " +"конкретной службы. В примере ниже показано, как выполнить поиск службы OBEX " +"Object Push (OPUSH):" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1227 +#, no-wrap +msgid "% sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH\n" +msgstr "% sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1231 +msgid "" +"Offering services on FreeBSD to Bluetooth clients is done with the " +"man:sdpd[8] server. The following line can be added to [.filename]#/etc/" +"rc.conf#:" +msgstr "" +"Предоставление услуг на FreeBSD клиентам Bluetooth осуществляется с помощью " +"сервера man:sdpd[8]. Следующую строку можно добавить в [.filename]#/etc/" +"rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1235 +#, no-wrap +msgid "sdpd_enable=\"YES\"\n" +msgstr "sdpd_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1238 +msgid "Then the man:sdpd[8] daemon can be started with:" +msgstr "Затем демон man:sdpd[8] можно запустить с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1242 +#, no-wrap +msgid "# service sdpd start\n" +msgstr "# service sdpd start\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1247 +msgid "" +"The local server application that wants to provide a Bluetooth service to " +"remote clients will register the service with the local SDP daemon. An " +"example of such an application is man:rfcomm_pppd[8]. Once started, it will " +"register the Bluetooth LAN service with the local SDP daemon." +msgstr "" +"Локальное серверное приложение, которое хочет предоставить сервис Bluetooth " +"удалённым клиентам, зарегистрирует сервис в локальном демоне SDP. Примером " +"такого приложения является man:rfcomm_pppd[8]. После запуска оно " +"зарегистрирует сервис Bluetooth LAN в локальном демоне SDP." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1249 +msgid "" +"The list of services registered with the local SDP server can be obtained by " +"issuing a SDP browse query via the local control channel:" +msgstr "" +"Список служб, зарегистрированных на локальном сервере SDP, можно получить, " +"выполнив запрос обзора SDP через локальный управляющий канал:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1253 +#, no-wrap +msgid "# sdpcontrol -l browse\n" +msgstr "# sdpcontrol -l browse\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1255 +#, no-wrap +msgid "OBEX Object Push (OPUSH)" +msgstr "Отправка объектов протоколом OBEX (Object Push — OPUSH)" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1259 +msgid "" +"Object Exchange (OBEX) is a widely used protocol for simple file transfers " +"between mobile devices. Its main use is in infrared communication, where it " +"is used for generic file transfers between notebooks or PDAs, and for " +"sending business cards or calendar entries between cellular phones and other " +"devices with Personal Information Manager (PIM) applications." +msgstr "" +"Обмен объектами (OBEX) — это широко используемый протокол для простой " +"передачи файлов между мобильными устройствами. Основное применение он " +"находит в инфракрасной связи, где используется для передачи файлов общего " +"назначения между ноутбуками или КПК, а также для отправки визитных карточек " +"или записей календаря между сотовыми телефонами и другими устройствами с " +"приложениями для управления персональной информацией (PIM)." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1261 +msgid "" +"The OBEX server and client are implemented by obexapp, which can be " +"installed using the package:comms/obexapp[] package or port." +msgstr "" +"Сервер и клиент OBEX реализованы в obexapp, который можно установить с " +"помощью package:comms/obexapp[] или порта." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1269 +msgid "" +"The OBEX client is used to push and/or pull objects from the OBEX server. " +"An example object is a business card or an appointment. The OBEX client can " +"obtain the RFCOMM channel number from the remote device via SDP. This can " +"be done by specifying the service name instead of the RFCOMM channel " +"number. Supported service names are: `IrMC`, `FTRN`, and `OPUSH`. It is " +"also possible to specify the RFCOMM channel as a number. Below is an " +"example of an OBEX session where the device information object is pulled " +"from the cellular phone, and a new object, the business card, is pushed into " +"the phone's directory." +msgstr "" +"Клиент OBEX используется для отправки и/или получения объектов с сервера " +"OBEX. Пример объекта — визитная карточка или встреча. Клиент OBEX может " +"получить номер канала RFCOMM от удалённого устройства через SDP. Это можно " +"сделать, указав имя службы вместо номера канала RFCOMM. Поддерживаемые имена " +"служб: `IrMC`, `FTRN` и `OPUSH`. Также можно указать канал RFCOMM в виде " +"числа. Ниже приведён пример сеанса OBEX, в котором объект информации об " +"устройстве получается с мобильного телефона, а новый объект, визитная " +"карточка, отправляется в директорию телефона." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1279 +#, no-wrap +msgid "" +"% obexapp -a 00:80:37:29:19:a4 -C IrMC\n" +"obex> get telecom/devinfo.txt devinfo-t39.txt\n" +"Success, response: OK, Success (0x20)\n" +"obex> put new.vcf\n" +"Success, response: OK, Success (0x20)\n" +"obex> di\n" +"Success, response: OK, Success (0x20)\n" +msgstr "" +"% obexapp -a 00:80:37:29:19:a4 -C IrMC\n" +"obex> get telecom/devinfo.txt devinfo-t39.txt\n" +"Success, response: OK, Success (0x20)\n" +"obex> put new.vcf\n" +"Success, response: OK, Success (0x20)\n" +"obex> di\n" +"Success, response: OK, Success (0x20)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1286 +msgid "" +"In order to provide the OPUSH service, man:sdpd[8] must be running and a " +"root folder, where all incoming objects will be stored, must be created. " +"The default path to the root folder is [.filename]#/var/spool/obex#. " +"Finally, start the OBEX server on a valid RFCOMM channel number. The OBEX " +"server will automatically register the OPUSH service with the local SDP " +"daemon. The example below shows how to start the OBEX server." +msgstr "" +"Для предоставления службы OPUSH должен быть запущен man:sdpd[8], а также " +"должна быть создана корневая папка, в которой будут храниться все входящие " +"объекты. Путь к корневой папке по умолчанию — [.filename]#/var/spool/obex#. " +"Наконец, запустите сервер OBEX на допустимом номере канала RFCOMM. Сервер " +"OBEX автоматически зарегистрирует службу OPUSH в локальном демоне SDP. В " +"приведённом ниже примере показано, как запустить сервер OBEX." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1290 +#, no-wrap +msgid "# obexapp -s -C 10\n" +msgstr "# obexapp -s -C 10\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1292 +#, no-wrap +msgid "Serial Port Profile (SPP)" +msgstr "Профиль последовательного порта (Serial Port Profile — SPP)" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1296 +msgid "" +"The Serial Port Profile (SPP) allows Bluetooth devices to perform serial " +"cable emulation. This profile allows legacy applications to use Bluetooth " +"as a cable replacement, through a virtual serial port abstraction." +msgstr "" +"Профиль последовательного порта (SPP) позволяет устройствам Bluetooth " +"эмулировать последовательное соединение. Этот профиль позволяет устаревшим " +"приложениям использовать Bluetooth в качестве замены кабеля через абстракцию " +"виртуального последовательного порта." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1301 +msgid "" +"In FreeBSD, man:rfcomm_sppd[1] implements SPP and a pseudo tty is used as a " +"virtual serial port abstraction. The example below shows how to connect to " +"a remote device's serial port service. A RFCOMM channel does not have to be " +"specified as man:rfcomm_sppd[1] can obtain it from the remote device via " +"SDP. To override this, specify a RFCOMM channel on the command line." +msgstr "" +"В FreeBSD man:rfcomm_sppd[1] реализует SPP, а псевдо-tty используется как " +"абстракция виртуального последовательного порта. В примере ниже показано, " +"как подключиться к сервису последовательного порта удалённого устройства. " +"RFCOMM-канал не обязательно указывать, так как man:rfcomm_sppd[1] может " +"получить его с удалённого устройства через SDP. Чтобы переопределить это, " +"укажите RFCOMM-канал в командной строке." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1307 +#, no-wrap +msgid "" +"# rfcomm_sppd -a 00:07:E0:00:0B:CA -t\n" +"rfcomm_sppd[94692]: Starting on /dev/pts/6...\n" +"/dev/pts/6\n" +msgstr "" +"# rfcomm_sppd -a 00:07:E0:00:0B:CA -t\n" +"rfcomm_sppd[94692]: Starting on /dev/pts/6...\n" +"/dev/pts/6\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1310 +msgid "Once connected, the pseudo tty can be used as serial port:" +msgstr "" +"После подключения псевдотерминал можно использовать как последовательный " +"порт:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1314 +#, no-wrap +msgid "# cu -l /dev/pts/6\n" +msgstr "# cu -l /dev/pts/6\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1317 +msgid "The pseudo tty is printed on stdout and can be read by wrapper scripts:" +msgstr "" +"Псевдотерминал выводится в stdout и может быть прочитан обёрточными " +"скриптами:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1322 +#, no-wrap +msgid "" +"PTS=`rfcomm_sppd -a 00:07:E0:00:0B:CA -t`\n" +"cu -l $PTS\n" +msgstr "" +"PTS=`rfcomm_sppd -a 00:07:E0:00:0B:CA -t`\n" +"cu -l $PTS\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1330 +msgid "" +"By default, when FreeBSD is accepting a new connection, it tries to perform " +"a role switch and become master. Some older Bluetooth devices which do not " +"support role switching will not be able to connect. Since role switching is " +"performed when a new connection is being established, it is not possible to " +"ask the remote device if it supports role switching. However, there is a " +"HCI option to disable role switching on the local side:" +msgstr "" +"По умолчанию, когда хост FreeBSD принимает новое соединение, он пытается " +"выполнить смену роли и стать ведущим. Некоторые старые устройства Bluetooth, " +"которые не поддерживают смену роли, не смогут подключиться. Поскольку смена " +"роли выполняется при установке нового соединения, невозможно запросить у " +"удалённого устройства, поддерживает ли оно смену роли. Однако существует " +"опция HCI для отключения смены роли на локальной стороне:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1334 +#, no-wrap +msgid "# hccontrol -n ubt0hci write_node_role_switch 0\n" +msgstr "# hccontrol -n ubt0hci write_node_role_switch 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1338 +msgid "" +"To display Bluetooth packets, use the third-party package hcidump, which can " +"be installed using the package:comms/hcidump[] package or port. This " +"utility is similar to man:tcpdump[1] and can be used to display the contents " +"of Bluetooth packets on the terminal and to dump the Bluetooth packets to a " +"file." +msgstr "" +"Для отображения пакетов Bluetooth используйте сторонний пакет hcidump, " +"который можно установить с помощью package:comms/hcidump[] или порта. Эта " +"утилита аналогична man:tcpdump[1] и может использоваться для вывода " +"содержимого пакетов Bluetooth в терминал и для сохранения этих пакетов в " +"файл." + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1340 +#, no-wrap +msgid "Bridging" +msgstr "Создание моста" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1344 +msgid "" +"It is sometimes useful to divide a network, such as an Ethernet segment, " +"into network segments without having to create IP subnets and use a router " +"to connect the segments together. A device that connects two networks " +"together in this fashion is called a \"bridge\"." +msgstr "" +"Иногда полезно разделить сеть, например, сегмент Ethernet, на части без " +"необходимости создания IP-подсетей и использования маршрутизатора для " +"соединения сегментов. Устройство, которое так соединяет две сети, называется " +"\"мостом\"." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1349 +msgid "" +"A bridge works by learning the MAC addresses of the devices on each of its " +"network interfaces. It forwards traffic between networks only when the " +"source and destination MAC addresses are on different networks. In many " +"respects, a bridge is like an Ethernet switch with very few ports. A " +"FreeBSD system with multiple network interfaces can be configured to act as " +"a bridge." +msgstr "" +"Мост работает, изучая MAC-адреса устройств на каждом из своих сетевых " +"интерфейсов. Он передает трафик между сетями только в том случае, если " +"исходный и целевой MAC-адреса находятся в разных сетях. Во многих отношениях " +"мост похож на Ethernet-коммутатор с очень малым количеством портов. Система " +"FreeBSD с несколькими сетевыми интерфейсами может быть настроена как мост." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1351 +msgid "Bridging can be useful in the following situations:" +msgstr "Мост может быть полезен в следующих ситуациях:" + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1352 +#, no-wrap +msgid "Connecting Networks" +msgstr "Соединение сетей" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1356 +msgid "" +"The basic operation of a bridge is to join two or more network segments. " +"There are many reasons to use a host-based bridge instead of networking " +"equipment, such as cabling constraints or firewalling. A bridge can also " +"connect a wireless interface running in hostap mode to a wired network and " +"act as an access point." +msgstr "" +"Основная функция моста — объединить два или более сетевых сегмента. " +"Существует множество причин использовать мост на основе хоста вместо " +"сетевого оборудования, таких как ограничения по кабелям или межсетевой " +"экран. Мост также может соединить беспроводной интерфейс, работающий в " +"режиме hostap, с проводной сетью и выступать в качестве точки доступа." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1357 +#, no-wrap +msgid "Filtering/Traffic Shaping Firewall" +msgstr "Межсетевой экран с фильтрацией и управлением трафиком" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1359 +msgid "" +"A bridge can be used when firewall functionality is needed without routing " +"or Network Address Translation (NAT)." +msgstr "" +"Мост может использоваться, когда требуется функциональность межсетевого " +"экрана без маршрутизации или преобразования сетевых адресов (NAT)." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1364 +msgid "" +"An example is a small company that is connected via DSL or ISDN to an ISP. " +"There are thirteen public IP addresses from the ISP and ten computers on the " +"network. In this situation, using a router-based firewall is difficult " +"because of subnetting issues. A bridge-based firewall can be configured " +"without any IP addressing issues." +msgstr "" +"Пример — небольшая компания, подключённая через DSL или ISDN к провайдеру. У " +"неё есть тринадцать публичных IP-адресов от провайдера и десять компьютеров " +"в сети. В этой ситуации использование маршрутизатора с межсетевым экраном " +"затруднено из-за проблем с подсетями. Межсетевой экран на основе моста можно " +"настроить без каких-либо проблем с IP-адресацией." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1365 +#, no-wrap +msgid "Network Tap" +msgstr "Ответвитель сетевого трафика (Network Tap)" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1367 +msgid "" +"A bridge can join two network segments in order to inspect all Ethernet " +"frames that pass between them using man:bpf[4] and man:tcpdump[1] on the " +"bridge interface, or by sending a copy of all frames out on an additional " +"interface known as a span port." +msgstr "" +"Мост может объединить два сетевых сегмента для проверки всех Ethernet-" +"кадров, проходящих между ними, с использованием man:bpf[4] и man:tcpdump[1] " +"на интерфейсе моста, или путем отправки копии всех кадров на дополнительный " +"интерфейс, известный как span-порт." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1368 +#, no-wrap +msgid "Layer 2 VPN" +msgstr "VPN уровня 2" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1370 +msgid "" +"Two Ethernet networks can be joined across an IP link by bridging the " +"networks to an EtherIP tunnel or a man:tap[4] based solution such as OpenVPN." +msgstr "" +"Две Ethernet-сети могут быть соединены через IP-канал путем моста между " +"сетями через туннель EtherIP или решение на основе man:tap[4], такое как " +"OpenVPN." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1371 +#, no-wrap +msgid "Layer 2 Redundancy" +msgstr "Избыточность уровня 2" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1373 +msgid "" +"A network can be connected together with multiple links and use the Spanning " +"Tree Protocol (STP) to block redundant paths." +msgstr "" +"Сеть может быть соединена несколькими каналами и использовать протокол " +"Spanning Tree Protocol (STP) для блокировки избыточных путей." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1376 +msgid "" +"This section describes how to configure a FreeBSD system as a bridge using " +"man:if_bridge[4]. A netgraph bridging driver is also available, and is " +"described in man:ng_bridge[4]." +msgstr "" +"В этом разделе описывается, как настроить систему FreeBSD в качестве моста с " +"использованием man:if_bridge[4]. Также доступен драйвер моста на основе " +"netgraph, который описан в man:ng_bridge[4]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1381 +msgid "" +"Packet filtering can be used with any firewall package that hooks into the " +"man:pfil[9] framework. The bridge can be used as a traffic shaper with " +"man:altq[4] or man:dummynet[4]." +msgstr "" +"Фильтрация пакетов может использоваться с любым пакетом межсетевого экрана, " +"который интегрируется в фреймворк man:pfil[9]. Мост может использоваться как " +"шейпер (ограничитель) трафика с man:altq[4] или man:dummynet[4]." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1383 +#, no-wrap +msgid "Enabling the Bridge" +msgstr "Включение моста" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1387 +msgid "" +"In FreeBSD, man:if_bridge[4] is a kernel module which is automatically " +"loaded by man:ifconfig[8] when creating a bridge interface. It is also " +"possible to compile bridge support into a custom kernel by adding `device " +"if_bridge` to the custom kernel configuration file." +msgstr "" +"В FreeBSD man:if_bridge[4] — это модуль ядра, который автоматически " +"загружается с помощью man:ifconfig[8] при создании мостового интерфейса. " +"Также можно включить поддержку моста в собственное ядро, добавив `device " +"if_bridge` в конфигурационный файл собственного ядра." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1390 +msgid "" +"The bridge is created using interface cloning. To create the bridge " +"interface:" +msgstr "" +"Мост создается с помощью клонирования интерфейса. Чтобы создать интерфейс " +"моста:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1401 +#, no-wrap +msgid "" +"# ifconfig bridge create\n" +"bridge0\n" +"# ifconfig bridge0\n" +"bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" ether 96:3d:4b:f1:79:7a\n" +" id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15\n" +" maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200\n" +" root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0\n" +msgstr "" +"# ifconfig bridge create\n" +"bridge0\n" +"# ifconfig bridge0\n" +"bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" ether 96:3d:4b:f1:79:7a\n" +" id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15\n" +" maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200\n" +" root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1406 +msgid "" +"When a bridge interface is created, it is automatically assigned a randomly " +"generated Ethernet address. The `maxaddr` and `timeout` parameters control " +"how many MAC addresses the bridge will keep in its forwarding table and how " +"many seconds before each entry is removed after it is last seen. The other " +"parameters control how STP operates." +msgstr "" +"При создании интерфейса моста ему автоматически назначается случайно " +"сгенерированный Ethernet-адрес. Параметры `maxaddr` и `timeout` определяют, " +"сколько MAC-адресов будет хранить межсетевой экран в своей таблице " +"переадресации и через сколько секунд каждая запись будет удалена после " +"последнего обнаружения. Остальные параметры управляют работой STP." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1409 +msgid "" +"Next, specify which network interfaces to add as members of the bridge. For " +"the bridge to forward packets, all member interfaces and the bridge need to " +"be up:" +msgstr "" +"Далее укажите, какие сетевые интерфейсы добавить в качестве членов моста. " +"Чтобы мост мог передавать пакеты, все интерфейсы-участники и сам мост должны " +"быть включены:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1415 +#, no-wrap +msgid "" +"# ifconfig bridge0 addm fxp0 addm fxp1 up\n" +"# ifconfig fxp0 up\n" +"# ifconfig fxp1 up\n" +msgstr "" +"# ifconfig bridge0 addm fxp0 addm fxp1 up\n" +"# ifconfig fxp0 up\n" +"# ifconfig fxp1 up\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1419 +msgid "" +"The bridge can now forward Ethernet frames between [.filename]#fxp0# and " +"[.filename]#fxp1#. Add the following lines to [.filename]#/etc/rc.conf# so " +"the bridge is created at startup:" +msgstr "" +"Мост теперь может передавать Ethernet-кадры между [.filename]#fxp0# и " +"[.filename]#fxp1#. Добавьте следующие строки в [.filename]#/etc/rc.conf#, " +"чтобы мост создавался при загрузке:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1426 +#, no-wrap +msgid "" +"cloned_interfaces=\"bridge0\"\n" +"ifconfig_bridge0=\"addm fxp0 addm fxp1 up\"\n" +"ifconfig_fxp0=\"up\"\n" +"ifconfig_fxp1=\"up\"\n" +msgstr "" +"cloned_interfaces=\"bridge0\"\n" +"ifconfig_bridge0=\"addm fxp0 addm fxp1 up\"\n" +"ifconfig_fxp0=\"up\"\n" +"ifconfig_fxp1=\"up\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1431 +msgid "" +"If the bridge host needs an IP address, set it on the bridge interface, not " +"on the member interfaces. The address can be set statically or via DHCP. " +"This example sets a static IP address:" +msgstr "" +"Если мостовому хосту нужен IP-адрес, установите его на интерфейсе моста, а " +"не на интерфейсах-участниках. Адрес можно задать статически или через DHCP. " +"В этом примере задаётся статический IP-адрес:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1435 +#, no-wrap +msgid "# ifconfig bridge0 inet 192.168.0.1/24\n" +msgstr "# ifconfig bridge0 inet 192.168.0.1/24\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1439 +msgid "" +"It is also possible to assign an IPv6 address to a bridge interface. To " +"make the changes permanent, add the addressing information to [.filename]#/" +"etc/rc.conf#." +msgstr "" +"Также возможно назначить IPv6-адрес интерфейсу моста. Чтобы изменения стали " +"постоянными, добавьте информацию об адресации в [.filename]#/etc/rc.conf#." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1445 +msgid "" +"When packet filtering is enabled, bridged packets will pass through the " +"filter inbound on the originating interface on the bridge interface, and " +"outbound on the appropriate interfaces. Either stage can be disabled. When " +"direction of the packet flow is important, it is best to firewall on the " +"member interfaces rather than the bridge itself." +msgstr "" +"Когда включена фильтрация пакетов, транзитные пакеты будут проходить через " +"фильтр на входящем интерфейсе мостового интерфейса и исходящем на " +"соответствующих интерфейсах. Любой из этапов может быть отключен. Если " +"направление потока пакетов важно, лучше настроить межсетевой экран на " +"интерфейсах-участниках, а не на самом мосте." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1448 +msgid "" +"The bridge has several configurable settings for passing non-IP and IP " +"packets, and layer2 firewalling with man:ipfw[8]. See man:if_bridge[4] for " +"more information." +msgstr "" +"Мост имеет несколько настраиваемых параметров для передачи не-IP и IP " +"пакетов, а также межсетевой экран второго уровня с man:ipfw[8]. Подробнее " +"см. man:if_bridge[4]." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1450 +#, no-wrap +msgid "Enabling Spanning Tree" +msgstr "Включение протокола островного дерева (STP)" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1455 +msgid "" +"For an Ethernet network to function properly, only one active path can exist " +"between two devices. The STP protocol detects loops and puts redundant " +"links into a blocked state. Should one of the active links fail, STP " +"calculates a different tree and enables one of the blocked paths to restore " +"connectivity to all points in the network." +msgstr "" +"Для правильной работы Ethernet-сети между двумя устройствами может " +"существовать только один активный путь. Протокол STP обнаруживает петли и " +"переводит избыточные соединения в заблокированное состояние. Если одно из " +"активных соединений выйдет из строя, STP вычисляет новое дерево и активирует " +"один из заблокированных путей, чтобы восстановить подключение ко всем точкам " +"сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1459 +msgid "" +"The Rapid Spanning Tree Protocol (RSTP or 802.1w) provides backwards " +"compatibility with legacy STP. RSTP provides faster convergence and " +"exchanges information with neighboring switches to quickly transition to " +"forwarding mode without creating loops. FreeBSD supports RSTP and STP as " +"operating modes, with RSTP being the default mode." +msgstr "" +"Протокол Rapid Spanning Tree (RSTP или 802.1w) обеспечивает обратную " +"совместимость с устаревшим STP. RSTP предоставляет более быструю сходимость " +"и обменивается информацией с соседними коммутаторами для быстрого перехода в " +"режим передачи без создания петель. FreeBSD поддерживает RSTP и STP в " +"качестве режимов работы, причем RSTP является режимом по умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1462 +msgid "" +"STP can be enabled on member interfaces using man:ifconfig[8]. For a bridge " +"with [.filename]#fxp0# and [.filename]#fxp1# as the current interfaces, " +"enable STP with:" +msgstr "" +"STP может быть включен на интерфейсах участников с помощью man:ifconfig[8]. " +"Для моста с интерфейсами [.filename]#fxp0# и [.filename]#fxp1# включите STP " +"командой:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1477 +#, no-wrap +msgid "" +"# ifconfig bridge0 stp fxp0 stp fxp1\n" +"bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" ether d6:cf:d5:a0:94:6d\n" +" id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15\n" +" maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200\n" +" root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0\n" +" member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 3 priority 128 path cost 200000 proto rstp\n" +" role designated state forwarding\n" +" member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 4 priority 128 path cost 200000 proto rstp\n" +" role designated state forwarding\n" +msgstr "" +"# ifconfig bridge0 stp fxp0 stp fxp1\n" +"bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" ether d6:cf:d5:a0:94:6d\n" +" id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15\n" +" maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200\n" +" root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0\n" +" member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 3 priority 128 path cost 200000 proto rstp\n" +" role designated state forwarding\n" +" member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 4 priority 128 path cost 200000 proto rstp\n" +" role designated state forwarding\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1481 +msgid "" +"This bridge has a spanning tree ID of `00:01:02:4b:d4:50` and a priority of " +"`32768`. As the `root id` is the same, it indicates that this is the root " +"bridge for the tree." +msgstr "" +"Этот мост имеет идентификатор остовного дерева `00:01:02:4b:d4:50` и " +"приоритет `32768`. Поскольку `root id` совпадает, это указывает на то, что " +"данный мост является корневым для дерева." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1483 +msgid "Another bridge on the network also has STP enabled:" +msgstr "Еще один мост в сети также имеет включенный STP:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1497 +#, no-wrap +msgid "" +"bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" ether 96:3d:4b:f1:79:7a\n" +" id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15\n" +" maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200\n" +" root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4\n" +" member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 4 priority 128 path cost 200000 proto rstp\n" +" role root state forwarding\n" +" member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 5 priority 128 path cost 200000 proto rstp\n" +" role designated state forwarding\n" +msgstr "" +"bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" ether 96:3d:4b:f1:79:7a\n" +" id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15\n" +" maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200\n" +" root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4\n" +" member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 4 priority 128 path cost 200000 proto rstp\n" +" role root state forwarding\n" +" member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>\n" +" port 5 priority 128 path cost 200000 proto rstp\n" +" role designated state forwarding\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1501 +msgid "" +"The line `root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4` " +"shows that the root bridge is `00:01:02:4b:d4:50` and has a path cost of " +"`400000` from this bridge. The path to the root bridge is via `port 4` " +"which is [.filename]#fxp0#." +msgstr "" +"Строка `root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4` " +"показывает, что корневым мостом является `00:01:02:4b:d4:50` с стоимостью " +"пути `400000` от данного моста. Путь к корневому мосту проходит через `port " +"4`, которым является [.filename]#fxp0#." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1502 +#, no-wrap +msgid "Bridge Interface Parameters" +msgstr "Параметры интерфейса моста" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1507 +msgid "" +"Several `ifconfig` parameters are unique to bridge interfaces. This section " +"summarizes some common uses for these parameters. The complete list of " +"available parameters is described in man:ifconfig[8]." +msgstr "" +"Несколько параметров `ifconfig` уникальны для мостовых интерфейсов. В этом " +"разделе приведены некоторые общие варианты использования этих параметров. " +"Полный список доступных параметров описан в man:ifconfig[8]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1508 +#, no-wrap +msgid "private" +msgstr "private" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1512 +msgid "" +"A private interface does not forward any traffic to any other port that is " +"also designated as a private interface. The traffic is blocked " +"unconditionally so no Ethernet frames will be forwarded, including ARP " +"packets. If traffic needs to be selectively blocked, a firewall should be " +"used instead." +msgstr "" +"Приватный интерфейс не передает трафик на другие порты, также обозначенные " +"как приватные. Трафик блокируется безусловно, поэтому Ethernet-кадры, " +"включая ARP-пакеты, не будут передаваться. Если требуется выборочная " +"блокировка трафика, следует использовать межсетевой экран." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1513 +#, no-wrap +msgid "span" +msgstr "span" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1518 +msgid "" +"A span port transmits a copy of every Ethernet frame received by the " +"bridge. The number of span ports configured on a bridge is unlimited, but " +"if an interface is designated as a span port, it cannot also be used as a " +"regular bridge port. This is most useful for snooping a bridged network " +"passively on another host connected to one of the span ports of the bridge. " +"For example, to send a copy of all frames out the interface named " +"[.filename]#fxp4#:" +msgstr "" +"Порт зеркалирования (SPAN —Switch Port Analyzer) передает копию каждого " +"Ethernet-фрейма, полученного мостом. Количество портов зеркалирования, " +"настроенных на мосту, не ограничено, но если интерфейс назначен как порт " +"зеркалирования, он не может использоваться в качестве обычного порта моста. " +"Это наиболее полезно для пассивного мониторинга сети, подключенной к мосту, " +"на другом хосте, подключенном к одному из портов зеркалирования моста. " +"Например, чтобы отправить копию всех фреймов через интерфейс с именем " +"[.filename]#fxp4#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1522 +#, no-wrap +msgid "# ifconfig bridge0 span fxp4\n" +msgstr "# ifconfig bridge0 span fxp4\n" + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1524 +#, no-wrap +msgid "sticky" +msgstr "sticky" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1529 +msgid "" +"If a bridge member interface is marked as sticky, dynamically learned " +"address entries are treated as static entries in the forwarding cache. " +"Sticky entries are never aged out of the cache or replaced, even if the " +"address is seen on a different interface. This gives the benefit of static " +"address entries without the need to pre-populate the forwarding table. " +"Clients learned on a particular segment of the bridge cannot roam to another " +"segment." +msgstr "" +"Если интерфейс участника моста помечен как фиксированный (sticky), " +"динамически изученные записи адресов обрабатываются как статические записи в " +"кэше пересылки. Фиксированные записи никогда не удаляются из кэша и не " +"заменяются, даже если адрес обнаружен на другом интерфейсе. Это даёт " +"преимущество статических записей адресов без необходимости предварительного " +"заполнения таблицы пересылки. Клиенты, изученные на определённом сегменте " +"моста, не могут перемещаться на другой сегмент." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1532 +msgid "" +"An example of using sticky addresses is to combine the bridge with VLANs in " +"order to isolate customer networks without wasting IP address space. " +"Consider that `CustomerA` is on `vlan100`, `CustomerB` is on `vlan101`, and " +"the bridge has the address `192.168.0.1`:" +msgstr "" +"Пример использования фиксированных адресов — это объединение моста с VLAN " +"для изоляции сетей клиентов без потерь IP-адресного пространства. " +"Предположим, что `CustomerA` находится в `vlan100`, `CustomerB` — в " +"`vlan101`, а мост имеет адрес `192.168.0.1`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1537 +#, no-wrap +msgid "" +"# ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101\n" +"# ifconfig bridge0 inet 192.168.0.1/24\n" +msgstr "" +"# ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101\n" +"# ifconfig bridge0 inet 192.168.0.1/24\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1541 +msgid "" +"In this example, both clients see `192.168.0.1` as their default gateway. " +"Since the bridge cache is sticky, one host cannot spoof the MAC address of " +"the other customer in order to intercept their traffic." +msgstr "" +"В этом примере оба клиента видят `192.168.0.1` в качестве своего шлюза по " +"умолчанию. Поскольку кэш моста устойчив, один узел не может подделать MAC-" +"адрес другого клиента, чтобы перехватить его трафик." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1543 +msgid "" +"Any communication between the VLANs can be blocked using a firewall or, as " +"seen in this example, private interfaces:" +msgstr "" +"Любое взаимодействие между VLAN может быть заблокировано с помощью " +"межсетевого экрана или, как показано в этом примере, частных интерфейсов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1547 +#, no-wrap +msgid "# ifconfig bridge0 private vlan100 private vlan101\n" +msgstr "# ifconfig bridge0 private vlan100 private vlan101\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1550 +msgid "" +"The customers are completely isolated from each other and the full `/24` " +"address range can be allocated without subnetting." +msgstr "" +"Клиенты полностью изолированы друг от друга, и весь диапазон адресов `/24` " +"может быть выделен без разделения на подсети." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1553 +msgid "" +"The number of unique source MAC addresses behind an interface can be " +"limited. Once the limit is reached, packets with unknown source addresses " +"are dropped until an existing host cache entry expires or is removed." +msgstr "" +"Количество уникальных исходных MAC-адресов за интерфейсом может быть " +"ограничено. Как только лимит будет достигнут, пакеты с неизвестными " +"исходными адресами будут отбрасываться до тех пор, пока существующая запись " +"в кэше хоста не истечёт или не будет удалена." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1555 +msgid "" +"The following example sets the maximum number of Ethernet devices for " +"`CustomerA` on `vlan100` to 10:" +msgstr "" +"Следующий пример устанавливает максимальное количество Ethernet-устройств " +"для `CustomerA` на `vlan100` равным 10:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1559 +#, no-wrap +msgid "# ifconfig bridge0 ifmaxaddr vlan100 10\n" +msgstr "# ifconfig bridge0 ifmaxaddr vlan100 10\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1565 +msgid "" +"Bridge interfaces also support monitor mode, where the packets are discarded " +"after man:bpf[4] processing and are not processed or forwarded further. " +"This can be used to multiplex the input of two or more interfaces into a " +"single man:bpf[4] stream. This is useful for reconstructing the traffic for " +"network taps that transmit the RX/TX signals out through two separate " +"interfaces. For example, to read the input from four network interfaces as " +"one stream:" +msgstr "" +"Мостовые интерфейсы также поддерживают режим мониторинга, в котором пакеты " +"отбрасываются после обработки man:bpf[4] и не обрабатываются или передаются " +"дальше. Это можно использовать для мультиплексирования входа двух или более " +"интерфейсов в один поток man:bpf[4]. Это полезно для восстановления трафика " +"сетевых кранов, которые передают сигналы RX/TX через два отдельных " +"интерфейса. Например, чтобы читать входные данные с четырёх сетевых " +"интерфейсов как один поток:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1570 +#, no-wrap +msgid "" +"# ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up\n" +"# tcpdump -i bridge0\n" +msgstr "" +"# ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up\n" +"# tcpdump -i bridge0\n" + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1572 +#, no-wrap +msgid "SNMP Monitoring" +msgstr "Мониторинг SNMP" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1576 +msgid "" +"The bridge interface and STP parameters can be monitored via man:bsnmpd[1] " +"which is included in the FreeBSD base system. The exported bridge MIBs " +"conform to IETF standards so any SNMP client or monitoring package can be " +"used to retrieve the data." +msgstr "" +"Интерфейс моста и параметры STP можно отслеживать с помощью man:bsnmpd[1], " +"который включён в базовую систему FreeBSD. Экспортируемые MIB моста " +"соответствуют стандартам IETF, поэтому для получения данных можно " +"использовать любой SNMP-клиент или пакет мониторинга." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1578 +msgid "" +"To enable monitoring on the bridge, uncomment this line in [.filename]#/etc/" +"snmpd.config# by removing the beginning `+#+` symbol:" +msgstr "" +"Чтобы включить мониторинг на мосту, раскомментируйте эту строку в " +"[.filename]#/etc/snmpd.config#, удалив символ `+#+` в начале:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1582 +#, no-wrap +msgid "begemotSnmpdModulePath.\"bridge\" = \"/usr/lib/snmp_bridge.so\"\n" +msgstr "begemotSnmpdModulePath.\"bridge\" = \"/usr/lib/snmp_bridge.so\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1587 +msgid "" +"Other configuration settings, such as community names and access lists, may " +"need to be modified in this file. See man:bsnmpd[1] and man:snmp_bridge[3] " +"for more information. Once these edits are saved, add this line to " +"[.filename]#/etc/rc.conf#:" +msgstr "" +"Другие параметры конфигурации, такие как имена сообществ и списки доступа, " +"возможно, потребуется изменить в этом файле. Подробнее см. в man:bsnmpd[1] " +"и man:snmp_bridge[3]. После сохранения изменений добавьте следующую строку " +"в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1591 +#, no-wrap +msgid "bsnmpd_enable=\"YES\"\n" +msgstr "bsnmpd_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1594 +msgid "Then, start man:bsnmpd[1]:" +msgstr "Затем, запустите man:bsnmpd[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1598 +#, no-wrap +msgid "# service bsnmpd start\n" +msgstr "# service bsnmpd start\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1603 +msgid "" +"The following examples use the Net-SNMP software (package:net-mgmt/net-" +"snmp[]) to query a bridge from a client system. The package:net-mgmt/" +"bsnmptools[] port can also be used. From the SNMP client which is running " +"Net-SNMP, add the following lines to [.filename]#$HOME/.snmp/snmp.conf# in " +"order to import the bridge MIB definitions:" +msgstr "" +"Следующие примеры используют программное обеспечение Net-SNMP (package:net-" +"mgmt/net-snmp[]) для запроса моста с клиентской системы. Также можно " +"использовать порт package:net-mgmt/bsnmptools[]. На SNMP-клиенте, где " +"запущен Net-SNMP, добавьте следующие строки в [.filename]#$HOME/.snmp/" +"snmp.conf#, чтобы импортировать определения MIB для моста:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1608 +#, no-wrap +msgid "" +"mibdirs +/usr/share/snmp/mibs\n" +"mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB\n" +msgstr "" +"mibdirs +/usr/share/snmp/mibs\n" +"mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1611 +msgid "To monitor a single bridge using the IETF BRIDGE-MIB (RFC4188):" +msgstr "" +"Для мониторинга одного моста с использованием IETF BRIDGE-MIB (RFC4188):" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1630 +#, no-wrap +msgid "" +"% snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge\n" +"BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44\n" +"BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports\n" +"BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds\n" +"BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2\n" +"BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50\n" +"...\n" +"BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5)\n" +"BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1)\n" +"BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000\n" +"BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50\n" +"BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0\n" +"BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50\n" +"BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80\n" +"BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1\n" +"RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)\n" +msgstr "" +"% snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge\n" +"BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44\n" +"BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports\n" +"BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds\n" +"BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2\n" +"BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50\n" +"...\n" +"BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5)\n" +"BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1)\n" +"BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000\n" +"BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50\n" +"BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0\n" +"BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50\n" +"BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80\n" +"BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1\n" +"RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1635 +msgid "" +"The `dot1dStpTopChanges.0` value is two, indicating that the STP bridge " +"topology has changed twice. A topology change means that one or more links " +"in the network have changed or failed and a new tree has been calculated. " +"The `dot1dStpTimeSinceTopologyChange.0` value will show when this happened." +msgstr "" +"Значение `dot1dStpTopChanges.0` равно двум, что указывает на двукратное " +"изменение топологии STP-моста. Изменение топологии означает, что одна или " +"несколько связей в сети изменились или вышли из строя, и было выполнено " +"перерасчёт дерева. Значение `dot1dStpTimeSinceTopologyChange.0` покажет, " +"когда это произошло." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1637 +msgid "" +"To monitor multiple bridge interfaces, the private BEGEMOT-BRIDGE-MIB can be " +"used:" +msgstr "" +"Для мониторинга нескольких интерфейсов моста можно использовать приватный " +"BEGEMOT-BRIDGE-MIB:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1655 +#, no-wrap +msgid "" +"% snmpwalk -v 2c -c public bridge1.example.com\n" +"enterprises.fokus.begemot.begemotBridge\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName.\"bridge0\" = STRING: bridge0\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName.\"bridge2\" = STRING: bridge2\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress.\"bridge0\" = STRING: e:ce:3b:5a:9e:13\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress.\"bridge2\" = STRING: 12:5e:4d:74:d:fc\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts.\"bridge0\" = INTEGER: 1\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts.\"bridge2\" = INTEGER: 1\n" +"...\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange.\"bridge0\" = Timeticks: (116927) 0:19:29.27 centi-seconds\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange.\"bridge2\" = Timeticks: (82773) 0:13:47.73 centi-seconds\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges.\"bridge0\" = Counter32: 1\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges.\"bridge2\" = Counter32: 1\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot.\"bridge0\" = Hex-STRING: 80 00 00 40 95 30 5E 31\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot.\"bridge2\" = Hex-STRING: 80 00 00 50 8B B8 C6 A9\n" +msgstr "" +"% snmpwalk -v 2c -c public bridge1.example.com\n" +"enterprises.fokus.begemot.begemotBridge\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName.\"bridge0\" = STRING: bridge0\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName.\"bridge2\" = STRING: bridge2\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress.\"bridge0\" = STRING: e:ce:3b:5a:9e:13\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress.\"bridge2\" = STRING: 12:5e:4d:74:d:fc\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts.\"bridge0\" = INTEGER: 1\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts.\"bridge2\" = INTEGER: 1\n" +"...\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange.\"bridge0\" = Timeticks: (116927) 0:19:29.27 centi-seconds\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange.\"bridge2\" = Timeticks: (82773) 0:13:47.73 centi-seconds\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges.\"bridge0\" = Counter32: 1\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges.\"bridge2\" = Counter32: 1\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot.\"bridge0\" = Hex-STRING: 80 00 00 40 95 30 5E 31\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot.\"bridge2\" = Hex-STRING: 80 00 00 50 8B B8 C6 A9\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1658 +msgid "" +"To change the bridge interface being monitored via the `mib-2.dot1dBridge` " +"subtree:" +msgstr "" +"Для изменения мониторинга интерфейса моста через поддерево " +"`mib-2.dot1dBridge`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1663 +#, no-wrap +msgid "" +"% snmpset -v 2c -c private bridge1.example.com\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2\n" +msgstr "" +"% snmpset -v 2c -c private bridge1.example.com\n" +"BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2\n" + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1666 +#, no-wrap +msgid "Link Aggregation and Failover" +msgstr "Агрегация каналов и отказоустойчивость" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1671 +msgid "" +"FreeBSD provides the man:lagg[4] interface which can be used to aggregate " +"multiple network interfaces into one virtual interface in order to provide " +"failover and link aggregation. Failover allows traffic to continue to flow " +"as long as at least one aggregated network interface has an established " +"link. Link aggregation works best on switches which support LACP, as this " +"protocol distributes traffic bi-directionally while responding to the " +"failure of individual links." +msgstr "" +"FreeBSD предоставляет интерфейс man:lagg[4], который может использоваться " +"для объединения нескольких сетевых интерфейсов в один виртуальный интерфейс " +"с целью обеспечения отказоустойчивости и агрегации каналов. " +"Отказоустойчивость позволяет трафику продолжать передаваться, пока хотя бы " +"один из объединённых сетевых интерфейсов имеет установленное соединение. " +"Агрегация каналов наиболее эффективна на коммутаторах, поддерживающих LACP, " +"так как этот протокол распределяет трафик в обоих направлениях, реагируя на " +"отказ отдельных каналов." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1674 +msgid "" +"The aggregation protocols supported by the lagg interface determine which " +"ports are used for outgoing traffic and whether or not a specific port " +"accepts incoming traffic. The following protocols are supported by " +"man:lagg[4]:" +msgstr "" +"Протоколы агрегации, поддерживаемые интерфейсом lagg, определяют, какие " +"порты используются для исходящего трафика и принимает ли конкретный порт " +"входящий трафик. В man:lagg[4] поддерживаются следующие протоколы:" + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1675 +#, no-wrap +msgid "failover" +msgstr "failover" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1680 +msgid "" +"This mode sends and receives traffic only through the master port. If the " +"master port becomes unavailable, the next active port is used. The first " +"interface added to the virtual interface is the master port and all " +"subsequently added interfaces are used as failover devices. If failover to " +"a non-master port occurs, the original port becomes master once it becomes " +"available again." +msgstr "" +"Этот режим отправляет и получает трафик только через основной порт. Если " +"основной порт становится недоступным, используется следующий активный порт. " +"Первый интерфейс, добавленный в виртуальный интерфейс, является основным " +"портом, а все последующие добавленные интерфейсы используются как устройства " +"резервирования. Если происходит переключение на неосновной порт, исходный " +"порт снова становится основным, как только становится доступным." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1681 +#, no-wrap +msgid "loadbalance" +msgstr "loadbalance" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1684 +msgid "" +"This provides a static setup and does not negotiate aggregation with the " +"peer or exchange frames to monitor the link. If the switch supports LACP, " +"that should be used instead." +msgstr "" +"Это обеспечивает статическую настройку и не выполняет согласование агрегации " +"с узлом или обмен кадрами для мониторинга связи. Если коммутатор " +"поддерживает LACP, следует использовать его." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1685 +#, no-wrap +msgid "lacp" +msgstr "lacp" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1690 +msgid "" +"The IEEE(R) 802.3ad Link Aggregation Control Protocol (LACP) negotiates a " +"set of aggregable links with the peer into one or more Link Aggregated " +"Groups (LAGs). Each LAG is composed of ports of the same speed, set to full-" +"duplex operation, and traffic is balanced across the ports in the LAG with " +"the greatest total speed. Typically, there is only one LAG which contains " +"all the ports. In the event of changes in physical connectivity, LACP will " +"quickly converge to a new configuration." +msgstr "" +"Протокол управления агрегацией каналов IEEE(R) 802.3ad (LACP) согласует " +"набор агрегируемых каналов с узлом-партнёром в один или несколько " +"агрегированных групп каналов (LAG). Каждая LAG состоит из портов с " +"одинаковой скоростью, настроенных на полнодуплексный режим работы, а трафик " +"распределяется между портами в LAG с наибольшей общей скоростью. Обычно " +"существует только одна LAG, содержащая все порты. В случае изменений " +"физической связности LACP быстро сходится к новой конфигурации." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1693 +msgid "" +"LACP balances outgoing traffic across the active ports based on hashed " +"protocol header information and accepts incoming traffic from any active " +"port. The hash includes the Ethernet source and destination address and, if " +"available, the VLAN tag, and the IPv4 or IPv6 source and destination address." +msgstr "" +"LACP распределяет исходящий трафик по активным портам на основе хешированной " +"информации заголовков протоколов и принимает входящий трафик с любого " +"активного порта. Хеш включает исходный и целевой Ethernet-адреса, а также, " +"если доступно, тег VLAN и исходный и целевой IPv4 или IPv6 адреса." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1694 +#, no-wrap +msgid "roundrobin" +msgstr "roundrobin" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1697 +msgid "" +"This mode distributes outgoing traffic using a round-robin scheduler through " +"all active ports and accepts incoming traffic from any active port. Since " +"this mode violates Ethernet frame ordering, it should be used with caution." +msgstr "" +"Этот режим распределяет исходящий трафик с помощью циклического планировщика " +"через все активные порты и принимает входящий трафик с любого активного " +"порта. Поскольку этот режим нарушает порядок следования Ethernet-кадров, его " +"следует использовать с осторожностью." + +#. type: Labeled list +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1698 +#, no-wrap +msgid "broadcast" +msgstr "broadcast" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1700 +msgid "" +"This mode sends outgoing traffic to all ports configured on the lagg " +"interface, and receives frames on any port." +msgstr "" +"Этот режим отправляет исходящий трафик на все порты, настроенные на " +"интерфейсе lagg, и принимает кадры на любом порту." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1701 +#, no-wrap +msgid "Configuration Examples" +msgstr "Примеры конфигурации" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1705 +msgid "" +"This section demonstrates how to configure a Cisco(R) switch and a FreeBSD " +"system for LACP load balancing. It then shows how to configure two Ethernet " +"interfaces in failover mode as well as how to configure failover mode " +"between an Ethernet and a wireless interface." +msgstr "" +"В этом разделе показано, как настроить коммутатор Cisco(R) и систему FreeBSD " +"для балансировки нагрузки LACP. Затем демонстрируется настройка двух " +"Ethernet-интерфейсов в режиме отказоустойчивости, а также настройка режима " +"отказоустойчивости между Ethernet и беспроводным интерфейсом." + +#. type: Block title +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1707 +#, no-wrap +msgid "LACP Aggregation with a Cisco(R) Switch" +msgstr "Агрегация каналов с использованием LACP и коммутатора Cisco(R)" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1713 +msgid "" +"This example connects two man:fxp[4] Ethernet interfaces on a FreeBSD " +"machine to the first two Ethernet ports on a Cisco(R) switch as a single " +"load balanced and fault tolerant link. More interfaces can be added to " +"increase throughput and fault tolerance. Replace the names of the Cisco(R) " +"ports, Ethernet devices, channel group number, and IP address shown in the " +"example to match the local configuration." +msgstr "" +"В этом примере два Ethernet-интерфейса man:fxp[4] на машине FreeBSD " +"подключены к первым двум Ethernet-портам коммутатора Cisco(R) в виде единого " +"отказоустойчивого канала с балансировкой нагрузки. Дополнительные интерфейсы " +"могут быть добавлены для увеличения пропускной способности и " +"отказоустойчивости. Замените названия портов Cisco(R), Ethernet-устройств, " +"номер группы каналов и IP-адрес, указанные в примере, в соответствии с вашей " +"конфигурацией." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1716 +msgid "" +"Frame ordering is mandatory on Ethernet links and any traffic between two " +"stations always flows over the same physical link, limiting the maximum " +"speed to that of one interface. The transmit algorithm attempts to use as " +"much information as it can to distinguish different traffic flows and " +"balance the flows across the available interfaces." +msgstr "" +"Порядок кадров обязателен на Ethernet-соединениях, и любой трафик между " +"двумя станциями всегда проходит через одно и то же физическое соединение, " +"что ограничивает максимальную скорость пропускной способностью одного " +"интерфейса. Алгоритм передачи пытается использовать как можно больше " +"информации для различения отдельных потоков трафика и балансировки этих " +"потоков между доступными интерфейсами." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1718 +msgid "" +"On the Cisco(R) switch, add the _FastEthernet0/1_ and _FastEthernet0/2_ " +"interfaces to channel group _1_:" +msgstr "" +"На коммутаторе Cisco(R) добавьте интерфейсы _FastEthernet0/1_ и " +"_FastEthernet0/2_ в группу каналов _1_:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1728 +#, no-wrap +msgid "" +"interface FastEthernet0/1\n" +" channel-group 1 mode active\n" +" channel-protocol lacp\n" +"!\n" +"interface FastEthernet0/2\n" +" channel-group 1 mode active\n" +" channel-protocol lacp\n" +msgstr "" +"interface FastEthernet0/1\n" +" channel-group 1 mode active\n" +" channel-protocol lacp\n" +"!\n" +"interface FastEthernet0/2\n" +" channel-group 1 mode active\n" +" channel-protocol lacp\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1731 +msgid "" +"On the FreeBSD system, create the man:lagg[4] interface using the physical " +"interfaces _fxp0_ and _fxp1_ and bring the interfaces up with an IP address " +"of _10.0.0.3/24_:" +msgstr "" +"На системе FreeBSD создайте интерфейс man:lagg[4], используя физические " +"интерфейсы _fxp0_ и _fxp1_, и поднимите интерфейсы с IP-адресом " +"_10.0.0.3/24_:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1738 +#, no-wrap +msgid "" +"# ifconfig fxp0 up\n" +"# ifconfig fxp1 up\n" +"# ifconfig lagg0 create\n" +"# ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24\n" +msgstr "" +"# ifconfig fxp0 up\n" +"# ifconfig fxp1 up\n" +"# ifconfig lagg0 create\n" +"# ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1741 +msgid "Next, verify the status of the virtual interface:" +msgstr "Далее проверьте состояние виртуального интерфейса:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1754 +#, no-wrap +msgid "" +"# ifconfig lagg0\n" +"lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=8<VLAN_MTU>\n" +" ether 00:05:5d:71:8d:b8\n" +" inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255\n" +" media: Ethernet autoselect\n" +" status: active\n" +" laggproto lacp\n" +" laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>\n" +" laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>\n" +msgstr "" +"# ifconfig lagg0\n" +"lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=8<VLAN_MTU>\n" +" ether 00:05:5d:71:8d:b8\n" +" inet 10.0.0.3 netmask 0xffffff00 broadcast 10.0.0.255\n" +" media: Ethernet autoselect\n" +" status: active\n" +" laggproto lacp\n" +" laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>\n" +" laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1759 +msgid "" +"Ports marked as `ACTIVE` are part of the LAG that has been negotiated with " +"the remote switch. Traffic will be transmitted and received through these " +"active ports. Add `-v` to the above command to view the LAG identifiers." +msgstr "" +"Порты, помеченные как `ACTIVE`, являются частью LAG, который был согласован " +"с удаленным коммутатором. Через эти активные порты будет передаваться и " +"приниматься трафик. Добавьте `-v` к приведенной выше команде, чтобы " +"просмотреть идентификаторы LAG." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1761 +msgid "To see the port status on the Cisco(R) switch:" +msgstr "Чтобы проверить статус порта на коммутаторе Cisco(R):" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1768 +#, no-wrap +msgid "" +"switch# show lacp neighbor\n" +"Flags: S - Device is requesting Slow LACPDUs\n" +" F - Device is requesting Fast LACPDUs\n" +" A - Device is in Active mode P - Device is in Passive mode\n" +msgstr "" +"switch# show lacp neighbor\n" +"Flags: S - Device is requesting Slow LACPDUs\n" +" F - Device is requesting Fast LACPDUs\n" +" A - Device is in Active mode P - Device is in Passive mode\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1770 +#, no-wrap +msgid "Channel group 1 neighbors\n" +msgstr "Channel group 1 neighbors\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1772 +#, no-wrap +msgid "Partner's information:\n" +msgstr "Partner's information:\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1777 +#, no-wrap +msgid "" +" LACP port Oper Port Port\n" +"Port Flags Priority Dev ID Age Key Number State\n" +"Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D\n" +"Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D\n" +msgstr "" +" LACP port Oper Port Port\n" +"Port Flags Priority Dev ID Age Key Number State\n" +"Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D\n" +"Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1780 +msgid "For more detail, type `show lacp neighbor detail`." +msgstr "" +"Для получения более подробной информации введите `show lacp neighbor detail`." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1782 +msgid "" +"To retain this configuration across reboots, add the following entries to " +"[.filename]#/etc/rc.conf# on the FreeBSD system:" +msgstr "" +"Чтобы сохранить эту конфигурацию после перезагрузки, добавьте следующие " +"записи в [.filename]#/etc/rc.conf# на системе FreeBSD:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1789 +#, no-wrap +msgid "" +"ifconfig_fxp0=\"up\"\n" +"ifconfig_fxp1=\"up\"\n" +"cloned_interfaces=\"lagg0\"\n" +"ifconfig_lagg0=\"laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24\"\n" +msgstr "" +"ifconfig_fxp0=\"up\"\n" +"ifconfig_fxp1=\"up\"\n" +"cloned_interfaces=\"lagg0\"\n" +"ifconfig_lagg0=\"laggproto lacp laggport fxp0 laggport fxp1 10.0.0.3/24\"\n" + +#. type: Block title +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1794 +#, no-wrap +msgid "Failover Mode" +msgstr "Режим отказоустойчивости" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1801 +msgid "" +"Failover mode can be used to switch over to a secondary interface if the " +"link is lost on the master interface. To configure failover, make sure that " +"the underlying physical interfaces are up, then create the man:lagg[4] " +"interface. In this example, _fxp0_ is the master interface, _fxp1_ is the " +"secondary interface, and the virtual interface is assigned an IP address of " +"_10.0.0.15/24_:" +msgstr "" +"Режим отказоустойчивости может быть использован для переключения на " +"резервный интерфейс, если соединение на основном интерфейсе потеряно. Для " +"настройки отказоустойчивости убедитесь, что физические интерфейсы активны, " +"затем создайте интерфейс man:lagg[4]. В этом примере _fxp0_ — основной " +"интерфейс, _fxp1_ — резервный интерфейс, а виртуальному интерфейсу назначен " +"IP-адрес _10.0.0.15/24_:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1808 +#, no-wrap +msgid "" +"# ifconfig fxp0 up\n" +"# ifconfig fxp1 up\n" +"# ifconfig lagg0 create\n" +"# ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24\n" +msgstr "" +"# ifconfig fxp0 up\n" +"# ifconfig fxp1 up\n" +"# ifconfig lagg0 create\n" +"# ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1811 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1912 +msgid "The virtual interface should look something like this:" +msgstr "Виртуальный интерфейс должен выглядеть примерно так:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1824 +#, no-wrap +msgid "" +"# ifconfig lagg0\n" +"lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=8<VLAN_MTU>\n" +" ether 00:05:5d:71:8d:b8\n" +" inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255\n" +" media: Ethernet autoselect\n" +" status: active\n" +" laggproto failover\n" +" laggport: fxp1 flags=0<>\n" +" laggport: fxp0 flags=5<MASTER,ACTIVE>\n" +msgstr "" +"# ifconfig lagg0\n" +"lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=8<VLAN_MTU>\n" +" ether 00:05:5d:71:8d:b8\n" +" inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255\n" +" media: Ethernet autoselect\n" +" status: active\n" +" laggproto failover\n" +" laggport: fxp1 flags=0<>\n" +" laggport: fxp0 flags=5<MASTER,ACTIVE>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1829 +msgid "" +"Traffic will be transmitted and received on _fxp0_. If the link is lost on " +"_fxp0_, _fxp1_ will become the active link. If the link is restored on the " +"master interface, it will once again become the active link." +msgstr "" +"Трафик будет передаваться и приниматься через интерфейс _fxp0_. Если " +"соединение на _fxp0_ будет потеряно, активным станет интерфейс _fxp1_. Если " +"соединение на основном интерфейсе восстановится, он снова станет активным." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1831 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1935 +msgid "" +"To retain this configuration across reboots, add the following entries to " +"[.filename]#/etc/rc.conf#:" +msgstr "" +"Чтобы сохранить эту конфигурацию после перезагрузки, добавьте следующие " +"записи в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1838 +#, no-wrap +msgid "" +"ifconfig_fxp0=\"up\"\n" +"ifconfig_fxp1=\"up\"\n" +"cloned_interfaces=\"lagg0\"\n" +"ifconfig_lagg0=\"laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24\"\n" +msgstr "" +"ifconfig_fxp0=\"up\"\n" +"ifconfig_fxp1=\"up\"\n" +"cloned_interfaces=\"lagg0\"\n" +"ifconfig_lagg0=\"laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24\"\n" + +#. type: Block title +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1843 +#, no-wrap +msgid "Failover Mode Between Ethernet and Wireless Interfaces" +msgstr "Режим автоматического переключения между Ethernet и беспроводным интерфейсом" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1849 +msgid "" +"For laptop users, it is usually desirable to configure the wireless device " +"as a secondary which is only used when the Ethernet connection is not " +"available. With man:lagg[4], it is possible to configure a failover which " +"prefers the Ethernet connection for both performance and security reasons, " +"while maintaining the ability to transfer data over the wireless connection." +msgstr "" +"Для пользователей ноутбуков обычно желательно настроить беспроводное " +"устройство как вторичное, которое используется только при отсутствии " +"Ethernet-подключения. С помощью man:lagg[4] можно настроить " +"отказоустойчивость, отдавая предпочтение Ethernet-подключению как по " +"соображениям производительности, так и безопасности, сохраняя при этом " +"возможность передачи данных через беспроводное соединение." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1851 +msgid "" +"This is achieved by overriding the Ethernet interface's MAC address with " +"that of the wireless interface." +msgstr "" +"Это достигается путем замены MAC-адреса Ethernet-интерфейса на MAC-адрес " +"беспроводного интерфейса." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1857 +msgid "" +"In theory, either the Ethernet or wireless MAC address can be changed to " +"match the other. However, some popular wireless interfaces lack support for " +"overriding the MAC address. We therefore recommend overriding the Ethernet " +"MAC address for this purpose." +msgstr "" +"Теоретически, либо Ethernet, либо беспроводной MAC-адрес можно изменить, " +"чтобы они были одинаковыми. Однако некоторые популярные беспроводные " +"интерфейсы не поддерживают переопределение MAC-адреса. Поэтому мы " +"рекомендуем переопределить Ethernet MAC-адрес для этой цели." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1864 +msgid "" +"If the driver for the wireless interface is not loaded in the `GENERIC` or " +"custom kernel, and the computer is running FreeBSD {rel121-current}, load " +"the corresponding [.filename]#.ko# in [.filename]#/boot/loader.conf# by " +"adding `*driver_load=\"YES\"*` to that file and rebooting. Another, better " +"way is to load the driver in [.filename]#/etc/rc.conf# by adding it to " +"`kld_list` (see man:rc.conf[5] for details) in that file and rebooting. " +"This is needed because otherwise the driver is not loaded yet at the time " +"the man:lagg[4] interface is set up." +msgstr "" +"Если драйвер для беспроводного интерфейса не загружен в `GENERIC` или " +"собственном ядре, и компьютер работает под FreeBSD {rel121-current}, " +"загрузите соответствующий [.filename]#.ko# в [.filename]#/boot/loader.conf#, " +"добавив `*driver_load=\"YES\"*` в этот файл и перезагрузив систему. Другой, " +"более предпочтительный способ — загрузить драйвер в [.filename]#/etc/" +"rc.conf#, добавив его в `kld_list` (подробности см. в man:rc.conf[5]) в этом " +"файле и перезагрузив систему. Это необходимо, потому что в противном случае " +"драйвер ещё не загружен к моменту настройки интерфейса man:lagg[4]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1870 +msgid "" +"In this example, the Ethernet interface, _re0_, is the master and the " +"wireless interface, _wlan0_, is the failover. The _wlan0_ interface was " +"created from the _ath0_ physical wireless interface, and the Ethernet " +"interface will be configured with the MAC address of the wireless " +"interface. First, bring the wireless interface up (replacing _FR_ with your " +"own 2-letter country code), but do not set an IP address. Replace _wlan0_ " +"to match the system's wireless interface name:" +msgstr "" +"В этом примере Ethernet-интерфейс _re0_ является основным, а беспроводной " +"интерфейс _wlan0_ — резервным. Интерфейс _wlan0_ был создан на основе " +"физического беспроводного интерфейса _ath0_, а Ethernet-интерфейс будет " +"настроен с MAC-адресом беспроводного интерфейса. Сначала включите " +"беспроводной интерфейс (замените _FR_ на код вашей страны из 2 букв), но не " +"задавайте IP-адрес. Замените _wlan0_ на имя беспроводного интерфейса вашей " +"системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1874 +#, no-wrap +msgid "# ifconfig wlan0 create wlandev ath0 country FR ssid my_router up\n" +msgstr "# ifconfig wlan0 create wlandev ath0 country FR ssid my_router up\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1877 +msgid "Now you can determine the MAC address of the wireless interface:" +msgstr "Теперь вы можете определить MAC-адрес беспроводного интерфейса:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1892 +#, no-wrap +msgid "" +"# ifconfig wlan0\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\tether b8:ee:65:5b:32:59\n" +"\tgroups: wlan\n" +"\tssid Bbox-A3BD2403 channel 6 (2437 MHz 11g ht/20) bssid 00:37:b7:56:4b:60\n" +"\tregdomain ETSI country FR indoor ecm authmode WPA2/802.11i privacy ON\n" +"\tdeftxkey UNDEF AES-CCM 2:128-bit txpower 30 bmiss 7 scanvalid 60\n" +"\tprotmode CTS ampdulimit 64k ampdudensity 8 shortgi -stbctx stbcrx\n" +"\t-ldpc wme burst roaming MANUAL\n" +"\tmedia: IEEE 802.11 Wireless Ethernet MCS mode 11ng\n" +"\tstatus: associated\n" +"\tnd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>\n" +msgstr "" +"# ifconfig wlan0\n" +"wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +"\tether b8:ee:65:5b:32:59\n" +"\tgroups: wlan\n" +"\tssid Bbox-A3BD2403 channel 6 (2437 MHz 11g ht/20) bssid 00:37:b7:56:4b:60\n" +"\tregdomain ETSI country FR indoor ecm authmode WPA2/802.11i privacy ON\n" +"\tdeftxkey UNDEF AES-CCM 2:128-bit txpower 30 bmiss 7 scanvalid 60\n" +"\tprotmode CTS ampdulimit 64k ampdudensity 8 shortgi -stbctx stbcrx\n" +"\t-ldpc wme burst roaming MANUAL\n" +"\tmedia: IEEE 802.11 Wireless Ethernet MCS mode 11ng\n" +"\tstatus: associated\n" +"\tnd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1896 +msgid "" +"The `ether` line will contain the MAC address of the specified interface. " +"Now, change the MAC address of the Ethernet interface to match:" +msgstr "" +"Строка `ether` будет содержать MAC-адрес указанного интерфейса. Теперь " +"измените MAC-адрес интерфейса Ethernet, чтобы он совпадал:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1900 +#, no-wrap +msgid "# ifconfig re0 ether b8:ee:65:5b:32:59\n" +msgstr "# ifconfig re0 ether b8:ee:65:5b:32:59\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1903 +msgid "" +"Make sure the _re0_ interface is up, then create the man:lagg[4] interface " +"with _re0_ as master with failover to _wlan0_:" +msgstr "" +"Убедитесь, что интерфейс _re0_ включен, затем создайте интерфейс man:lagg[4] " +"с _re0_ в качестве основного с переключением на _wlan0_ в случае отказа:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1909 +#, no-wrap +msgid "" +"# ifconfig re0 up\n" +"# ifconfig lagg0 create\n" +"# ifconfig lagg0 up laggproto failover laggport re0 laggport wlan0\n" +msgstr "" +"# ifconfig re0 up\n" +"# ifconfig lagg0 create\n" +"# ifconfig lagg0 up laggproto failover laggport re0 laggport wlan0\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1925 +#, no-wrap +msgid "" +"# ifconfig lagg0\n" +"lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=8<VLAN_MTU>\n" +" ether b8:ee:65:5b:32:59\n" +" laggproto failover lagghash l2,l3,l4\n" +" laggport: re0 flags=5<MASTER,ACTIVE>\n" +" laggport: wlan0 flags=0<>\n" +" groups: lagg\n" +" media: Ethernet autoselect\n" +" status: active\n" +msgstr "" +"# ifconfig lagg0\n" +"lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500\n" +" options=8<VLAN_MTU>\n" +" ether b8:ee:65:5b:32:59\n" +" laggproto failover lagghash l2,l3,l4\n" +" laggport: re0 flags=5<MASTER,ACTIVE>\n" +" laggport: wlan0 flags=0<>\n" +" groups: lagg\n" +" media: Ethernet autoselect\n" +" status: active\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1928 +msgid "Then, start the DHCP client to obtain an IP address:" +msgstr "Затем запустите DHCP-клиент для получения IP-адреса:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1932 +#, no-wrap +msgid "# dhclient lagg0\n" +msgstr "# dhclient lagg0\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1944 +#, no-wrap +msgid "" +"ifconfig_re0=\"ether b8:ee:65:5b:32:59\"\n" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"WPA\"\n" +"create_args_wlan0=\"country FR\"\n" +"cloned_interfaces=\"lagg0\"\n" +"ifconfig_lagg0=\"up laggproto failover laggport re0 laggport wlan0 DHCP\"\n" +msgstr "" +"ifconfig_re0=\"ether b8:ee:65:5b:32:59\"\n" +"wlans_ath0=\"wlan0\"\n" +"ifconfig_wlan0=\"WPA\"\n" +"create_args_wlan0=\"country FR\"\n" +"cloned_interfaces=\"lagg0\"\n" +"ifconfig_lagg0=\"up laggproto failover laggport re0 laggport wlan0 DHCP\"\n" + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1949 +#, no-wrap +msgid "Diskless Operation with PXE" +msgstr "Запуск системы по сети (PXE) без использования локальных накопителей" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1955 +msgid "" +"The Intel(R) Preboot eXecution Environment (PXE) allows an operating system " +"to boot over the network. For example, a FreeBSD system can boot over the " +"network and operate without a local disk, using file systems mounted from an " +"NFS server. PXE support is usually available in the BIOS. To use PXE when " +"the machine starts, select the `Boot from network` option in the BIOS setup " +"or type a function key during system initialization." +msgstr "" +"Встроенная среда исполнения Intel(R) Preboot eXecution Environment (PXE) " +"позволяет операционной системе загружаться по сети. Например, система " +"FreeBSD может загружаться по сети и работать без локального диска, используя " +"файловые системы, смонтированные с NFS-сервера. Поддержка PXE обычно " +"доступна в BIOS. Чтобы использовать PXE при запуске машины, выберите опцию " +"`Загрузка по сети` в настройках BIOS или нажмите функциональную клавишу во " +"время инициализации системы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1957 +msgid "" +"In order to provide the files needed for an operating system to boot over " +"the network, a PXE setup also requires properly configured DHCP, TFTP, and " +"NFS servers, where:" +msgstr "" +"Для предоставления файлов, необходимых для загрузки операционной системы по " +"сети, настройка PXE также требует правильно настроенных серверов DHCP, TFTP " +"и NFS, где:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1959 +msgid "" +"Initial parameters, such as an IP address, executable boot filename and " +"location, server name, and root path are obtained from the DHCP server." +msgstr "" +"Исходные параметры, такие как IP-адрес, имя загружаемого исполняемого файла " +"и его расположение, имя сервера и корневой путь, получаются от сервера DHCP." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1960 +msgid "The operating system loader file is booted using TFTP." +msgstr "" +"Файл загрузчика операционной системы загружается с использованием TFTP." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1961 +msgid "The file systems are loaded using NFS." +msgstr "Файловые системы загружаются с использованием NFS." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1966 +msgid "" +"When a computer PXE boots, it receives information over DHCP about where to " +"obtain the initial boot loader file. After the host computer receives this " +"information, it downloads the boot loader via TFTP and then executes the " +"boot loader. In FreeBSD, the boot loader file is [.filename]#/boot/" +"pxeboot#. After [.filename]#/boot/pxeboot# executes, the FreeBSD kernel is " +"loaded and the rest of the FreeBSD bootup sequence proceeds, as described in " +"crossref:boot[boot,The FreeBSD Booting Process]." +msgstr "" +"Когда компьютер загружается по PXE, он получает информацию через DHCP о том, " +"где получить начальный загрузочный файл. После того как хост-компьютер " +"получает эту информацию, он загружает загрузчик через TFTP и затем выполняет " +"его. В FreeBSD загрузочный файл называется [.filename]#/boot/pxeboot#. После " +"выполнения [.filename]#/boot/pxeboot# загружается ядро FreeBSD, и " +"продолжается остальная последовательность загрузки FreeBSD, как описано в " +"crossref:boot[boot,Процесс загрузки FreeBSD]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1971 +msgid "" +"For UEFI PXE based boot, the actual boot loader file to use is [.filename]#/" +"boot/loader.efi#. See the below section crossref:advanced-" +"networking[_debugging_pxe_problems,Debugging PXE Problems] on how to use " +"[.filename]#/boot/loader.efi#." +msgstr "" +"Для загрузки по PXE на UEFI фактический файл загрузчика, который следует " +"использовать, это [.filename]#/boot/loader.efi#. См. раздел ниже " +"crossref:advanced-networking[_debugging_pxe_problems,Отладка проблем PXE] о " +"том, как использовать [.filename]#/boot/loader.efi#." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1975 +msgid "" +"This section describes how to configure these services on a FreeBSD system " +"so that other systems can PXE boot into FreeBSD. Refer to man:diskless[8] " +"for more information." +msgstr "" +"Этот раздел описывает, как настроить эти службы в системе FreeBSD, чтобы " +"другие системы могли загружаться по PXE в FreeBSD. Дополнительную информацию " +"можно найти в man:diskless[8]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1980 +msgid "" +"As described, the system providing these services is insecure. It should " +"live in a protected area of a network and be untrusted by other hosts." +msgstr "" +"Как уже упоминалось, система, предоставляющая эти службы, является " +"небезопасной. Она должна находиться в защищённой части сети и не доверяться " +"другим хостам." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1983 +#, no-wrap +msgid "Setting Up the PXE Environment" +msgstr "Настройка окружения PXE" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1989 +msgid "" +"The steps shown in this section configure the built-in NFS and TFTP " +"servers. The next section demonstrates how to install and configure the " +"DHCP server. In this example, the directory which will contain the files " +"used by PXE users is [.filename]#/b/tftpboot/FreeBSD/install#. It is " +"important that this directory exists and that the same directory name is set " +"in both [.filename]#/etc/inetd.conf# and [.filename]#/usr/local/etc/" +"dhcpd.conf#." +msgstr "" +"В этом разделе показаны шаги по настройке встроенных серверов NFS и TFTP. В " +"следующем разделе будет продемонстрировано, как установить и настроить " +"сервер DHCP. В данном примере каталог, который будет содержать файлы, " +"используемые пользователями PXE, называется [.filename]#/b/tftpboot/FreeBSD/" +"install#. Важно, чтобы этот каталог существовал и чтобы одно и то же имя " +"каталога было указано как в [.filename]#/etc/inetd.conf#, так и в " +"[.filename]#/usr/local/etc/dhcpd.conf#." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1994 +msgid "" +"The command examples below assume use of the man:sh[1] shell. man:csh[1] " +"and man:tcsh[1] users will need to start a man:sh[1] shell or adapt the " +"commands to man:csh[1] syntax." +msgstr "" +"Примеры команд ниже предполагают использование оболочки man:sh[1]. " +"Пользователям man:csh[1] и man:tcsh[1] потребуется запустить оболочку " +"man:sh[1] или адаптировать команды к синтаксису man:csh[1]." + +#. type: .procedure +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:1998 +msgid "" +"Create the root directory which will contain a FreeBSD installation to be " +"NFS mounted:" +msgstr "" +"Создайте корневой каталог, который будет содержать установку FreeBSD для " +"монтирования по NFS:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2003 +#, no-wrap +msgid "" +"# export NFSROOTDIR=/b/tftpboot/FreeBSD/install\n" +"# mkdir -p ${NFSROOTDIR}\n" +msgstr "" +"# export NFSROOTDIR=/b/tftpboot/FreeBSD/install\n" +"# mkdir -p ${NFSROOTDIR}\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2006 +msgid "Enable the NFS server by adding this line to [.filename]#/etc/rc.conf#:" +msgstr "" +"Включите сервер NFS, добавив следующую строку в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2010 +#, no-wrap +msgid "nfs_server_enable=\"YES\"\n" +msgstr "nfs_server_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2013 +msgid "" +"Export the diskless root directory via NFS by adding the following to " +"[.filename]#/etc/exports#:" +msgstr "" +"Экспортируйте корневую директорию бездисковой системы через NFS, добавив " +"следующее в [.filename]#/etc/exports#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2017 +#, no-wrap +msgid "/b -ro -alldirs -maproot=root\n" +msgstr "/b -ro -alldirs -maproot=root\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2020 +msgid "Start the NFS server:" +msgstr "Запустите сервер NFS:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2024 +#, no-wrap +msgid "# service nfsd start\n" +msgstr "# service nfsd start\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2027 +msgid "" +"Enable man:inetd[8] by adding the following line to [.filename]#/etc/" +"rc.conf#:" +msgstr "" +"Включите man:inetd[8], добавив следующую строку в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2031 +#, no-wrap +msgid "inetd_enable=\"YES\"\n" +msgstr "inetd_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2034 +msgid "" +"Uncomment the following line in [.filename]#/etc/inetd.conf# by making sure " +"it does not start with a `+#+` symbol:" +msgstr "" +"Раскомментируйте следующую строку в [.filename]#/etc/inetd.conf#, " +"убедившись, что она не начинается с символа `+#+`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2038 +#, no-wrap +msgid "tftp dgram udp wait root /usr/libexec/tftpd tftpd blocksize 1468 -l -s /b/tftpboot\n" +msgstr "tftp dgram udp wait root /usr/libexec/tftpd tftpd blocksize 1468 -l -s /b/tftpboot\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2045 +msgid "" +"The specified tftp blocksize, e.g. 1468 bytes, replaces the default size 512 " +"bytes. Some PXE versions require the TCP version of TFTP. In this case, " +"uncomment the second `tftp` line which contains `stream tcp`." +msgstr "" +"Указанный размер блока tftp, например, 1468 байт, заменяет стандартный " +"размер 512 байт. Некоторые версии PXE требуют TCP-версию TFTP. В этом случае " +"раскомментируйте вторую строку `tftp`, содержащую `stream tcp`." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2048 +msgid "Start man:inetd[8]:" +msgstr "Запустите man:inetd[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2052 +#, no-wrap +msgid "# service inetd start\n" +msgstr "# service inetd start\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2055 +msgid "" +"Install the base system into [.filename]#${NFSROOTDIR}#, either by " +"decompressing the official archives or by rebuilding the FreeBSD kernel and " +"userland (refer to crossref:cutting-edge[makeworld,“Updating FreeBSD from " +"Source”] for more detailed instructions, but do not forget to add `DESTDIR=_$" +"{NFSROOTDIR}_` when running the `make installkernel` and `make installworld` " +"commands." +msgstr "" +"Установите базовую систему в [.filename]#${NFSROOTDIR}#, либо распаковав " +"официальные архивы, либо пересобрав ядро и пользовательское окружение " +"FreeBSD (подробные инструкции можно найти в crossref:cutting-" +"edge[makeworld,“Обновление FreeBSD из исходного кода”], но не забудьте " +"добавить `DESTDIR=_${NFSROOTDIR}_` при выполнении команд `make " +"installkernel` и `make installworld`)." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2056 +msgid "" +"Test that the TFTP server works and can download the boot loader which will " +"be obtained via PXE:" +msgstr "" +"Проверьте, что TFTP-сервер работает и может загрузить загрузчик, который " +"будет получен через PXE:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2062 +#, no-wrap +msgid "" +"# tftp localhost\n" +"tftp> get FreeBSD/install/boot/pxeboot\n" +"Received 264951 bytes in 0.1 seconds\n" +msgstr "" +"# tftp localhost\n" +"tftp> get FreeBSD/install/boot/pxeboot\n" +"Received 264951 bytes in 0.1 seconds\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2065 +msgid "" +"Edit [.filename]#${NFSROOTDIR}/etc/fstab# and create an entry to mount the " +"root file system over NFS:" +msgstr "" +"Отредактируйте файл [.filename]#${NFSROOTDIR}/etc/fstab# и создайте запись " +"для монтирования корневой файловой системы через NFS:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2070 +#, no-wrap +msgid "" +"# Device Mountpoint FSType Options Dump Pass\n" +"myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0\n" +msgstr "" +"# Device Mountpoint FSType Options Dump Pass\n" +"myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2074 +msgid "" +"Replace _myhost.example.com_ with the hostname or IP address of the NFS " +"server. In this example, the root file system is mounted read-only in order " +"to prevent NFS clients from potentially deleting the contents of the root " +"file system." +msgstr "" +"Замените _myhost.example.com_ на имя хоста или IP-адрес сервера NFS. В этом " +"примере корневая файловая система монтируется в режиме только для чтения, " +"чтобы предотвратить возможное удаление содержимого корневой файловой системы " +"клиентами NFS." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2075 +msgid "" +"Set the root password in the PXE environment for client machines which are " +"PXE booting :" +msgstr "" +"Установите пароль root в среде PXE для клиентских машин, загружающихся через " +"PXE:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2080 +#, no-wrap +msgid "" +"# chroot ${NFSROOTDIR}\n" +"# passwd\n" +msgstr "" +"# chroot ${NFSROOTDIR}\n" +"# passwd\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2083 +msgid "" +"If needed, enable man:ssh[1] root logins for client machines which are PXE " +"booting by editing [.filename]#${NFSROOTDIR}/etc/ssh/sshd_config# and " +"enabling `PermitRootLogin`. This option is documented in man:sshd_config[5]." +msgstr "" +"При необходимости разрешите вход root по man:ssh[1] для клиентских машин, " +"загружающихся через PXE, отредактировав [.filename]#${NFSROOTDIR}/etc/ssh/" +"sshd_config# и включив `PermitRootLogin`. Эта опция описана в " +"man:sshd_config[5]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2084 +msgid "" +"Perform any other needed customizations of the PXE environment in " +"[.filename]#${NFSROOTDIR}#. These customizations could include things like " +"installing packages or editing the password file with man:vipw[8]." +msgstr "" +"Выполните другие необходимые настройки PXE-окружения в [.filename]#$" +"{NFSROOTDIR}#. Эти настройки могут включать установку пакетов или " +"редактирование файла паролей с помощью man:vipw[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2087 +msgid "" +"When booting from an NFS root volume, [.filename]#/etc/rc# detects the NFS " +"boot and runs [.filename]#/etc/rc.initdiskless#. In this case, [.filename]#/" +"etc# and [.filename]#/var# need to be memory backed file systems so that " +"these directories are writable but the NFS root directory is read-only:" +msgstr "" +"При загрузке с корневого тома NFS, [.filename]#/etc/rc# определяет загрузку " +"по NFS и запускает [.filename]#/etc/rc.initdiskless#. В этом случае " +"[.filename]#/etc# и [.filename]#/var# должны быть файловыми системами в " +"памяти, чтобы эти каталоги были доступны для записи, тогда как корневой " +"каталог NFS доступен только для чтения:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2094 +#, no-wrap +msgid "" +"# chroot ${NFSROOTDIR}\n" +"# mkdir -p conf/base\n" +"# tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc\n" +"# tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip var\n" +msgstr "" +"# chroot ${NFSROOTDIR}\n" +"# mkdir -p conf/base\n" +"# tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc\n" +"# tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip var\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2099 +msgid "" +"When the system boots, memory file systems for [.filename]#/etc# and " +"[.filename]#/var# will be created and mounted and the contents of the " +"[.filename]#cpio.gz# files will be copied into them. By default, these file " +"systems have a maximum capacity of 5 megabytes. If your archives do not " +"fit, which is usually the case for [.filename]#/var# when binary packages " +"have been installed, request a larger size by putting the number of 512 byte " +"sectors needed (e.g., 5 megabytes is 10240 sectors) in [.filename]#$" +"{NFSROOTDIR}/conf/base/etc/md_size# and [.filename]#${NFSROOTDIR}/conf/base/" +"var/md_size# files for [.filename]#/etc# and [.filename]#/var# file systems " +"respectively." +msgstr "" +"При загрузке системы будут созданы и смонтированы файловые системы в памяти " +"для [.filename]#/etc# и [.filename]#/var#, а содержимое файлов " +"[.filename]#cpio.gz# будет скопировано в них. По умолчанию эти файловые " +"системы имеют максимальный размер 5 мегабайт. Если ваши архивы не " +"помещаются, что обычно происходит с [.filename]#/var# при установке бинарных " +"пакетов, укажите больший размер, записав количество необходимых секторов по " +"512 байт (например, 5 мегабайт — это 10240 секторов) в файлы [.filename]#$" +"{NFSROOTDIR}/conf/base/etc/md_size# и [.filename]#${NFSROOTDIR}/conf/base/" +"var/md_size# для файловых систем [.filename]#/etc# и [.filename]#/var# " +"соответственно." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2101 +#, no-wrap +msgid "Configuring the DHCP Server" +msgstr "Настройка DHCP-сервера" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2104 +msgid "" +"The DHCP server does not need to be the same machine as the TFTP and NFS " +"server, but it needs to be accessible in the network." +msgstr "" +"Сервер DHCP не обязательно должен быть тем же самым компьютером, что и " +"серверы TFTP и NFS, но он должен быть доступен в сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2106 +msgid "" +"DHCP is not part of the FreeBSD base system but can be installed using the " +"package:net/isc-dhcp44-server[] port or package." +msgstr "" +"DHCP не является частью базовой системы FreeBSD, но может быть установлен с " +"помощью порта package:net/isc-dhcp44-server[] или пакета." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2109 +msgid "" +"Once installed, edit the configuration file, [.filename]#/usr/local/etc/" +"dhcpd.conf#. Configure the `next-server`, `filename`, and `root-path` " +"settings as seen in this example:" +msgstr "" +"После установки отредактируйте файл конфигурации [.filename]#/usr/local/etc/" +"dhcpd.conf#. Настройте параметры `next-server`, `filename` и `root-path`, " +"как показано в этом примере:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2119 +#, no-wrap +msgid "" +"subnet 192.168.0.0 netmask 255.255.255.0 {\n" +" range 192.168.0.2 192.168.0.3 ;\n" +" option subnet-mask 255.255.255.0 ;\n" +" option routers 192.168.0.1 ;\n" +" option broadcast-address 192.168.0.255 ;\n" +" option domain-name-servers 192.168.35.35, 192.168.35.36 ;\n" +" option domain-name \"example.com\";\n" +msgstr "" +"subnet 192.168.0.0 netmask 255.255.255.0 {\n" +" range 192.168.0.2 192.168.0.3 ;\n" +" option subnet-mask 255.255.255.0 ;\n" +" option routers 192.168.0.1 ;\n" +" option broadcast-address 192.168.0.255 ;\n" +" option domain-name-servers 192.168.35.35, 192.168.35.36 ;\n" +" option domain-name \"example.com\";\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2122 +#, no-wrap +msgid "" +" # IP address of TFTP server\n" +" next-server 192.168.0.1 ;\n" +msgstr "" +" # IP address of TFTP server\n" +" next-server 192.168.0.1 ;\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2125 +#, no-wrap +msgid "" +" # path of boot loader obtained via tftp\n" +" filename \"FreeBSD/install/boot/pxeboot\" ;\n" +msgstr "" +" # path of boot loader obtained via tftp\n" +" filename \"FreeBSD/install/boot/pxeboot\" ;\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2128 +#, no-wrap +msgid "" +" # pxeboot boot loader will try to NFS mount this directory for root FS\n" +" option root-path \"192.168.0.1:/b/tftpboot/FreeBSD/install/\" ;\n" +msgstr "" +" # pxeboot boot loader will try to NFS mount this directory for root FS\n" +" option root-path \"192.168.0.1:/b/tftpboot/FreeBSD/install/\" ;\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2130 +#, no-wrap +msgid "}\n" +msgstr "}\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2133 +msgid "" +"The `next-server` directive is used to specify the IP address of the TFTP " +"server." +msgstr "" +"Директива `next-server` используется для указания IP-адреса TFTP-сервера." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2136 +msgid "" +"The `filename` directive defines the path to [.filename]#/boot/pxeboot#. A " +"relative filename is used, meaning that [.filename]#/b/tftpboot# is not " +"included in the path." +msgstr "" +"Директива `filename` определяет путь к [.filename]#/boot/pxeboot#. " +"Используется относительное имя файла, что означает, что [.filename]#/b/" +"tftpboot# не включен в путь." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2138 +msgid "The `root-path` option defines the path to the NFS root file system." +msgstr "Опция `root-path` определяет путь к корневой файловой системе NFS." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2140 +msgid "" +"Once the edits are saved, enable DHCP at boot time by adding the following " +"line to [.filename]#/etc/rc.conf#:" +msgstr "" +"После сохранения изменений включите DHCP при загрузке, добавив следующую " +"строку в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2144 +#, no-wrap +msgid "dhcpd_enable=\"YES\"\n" +msgstr "dhcpd_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2147 +msgid "Then start the DHCP service:" +msgstr "Затем запустите службу DHCP:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2151 +#, no-wrap +msgid "# service isc-dhcpd start\n" +msgstr "# service isc-dhcpd start\n" + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2153 +#, no-wrap +msgid "Debugging PXE Problems" +msgstr "Отладка проблем PXE" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2157 +msgid "" +"Once all of the services are configured and started, PXE clients should be " +"able to automatically load FreeBSD over the network. If a particular client " +"is unable to connect, when that client machine boots up, enter the BIOS " +"configuration menu and confirm that it is set to boot from the network." +msgstr "" +"После настройки и запуска всех служб клиенты PXE должны автоматически " +"загружать FreeBSD по сети. Если конкретный клиент не может подключиться, при " +"загрузке этой машины войдите в меню конфигурации BIOS и убедитесь, что она " +"настроена на загрузку с сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2159 +msgid "" +"This section describes some troubleshooting tips for isolating the source of " +"the configuration problem should no clients be able to PXE boot." +msgstr "" +"Этот раздел содержит несколько советов по устранению неполадок для выявления " +"источника проблемы с конфигурацией, если клиенты не могут загрузиться через " +"PXE." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2163 +msgid "" +"Use the package:net/wireshark[] package or port to debug the network traffic " +"involved during the PXE booting process, which is illustrated in the diagram " +"below." +msgstr "" +"Используйте пакет package:net/wireshark[] или порт для отладки сетевого " +"трафика, задействованного в процессе загрузки по PXE, который показан на " +"схеме ниже." + +#. type: Block title +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2164 +#, no-wrap +msgid "PXE Booting Process with NFS Root Mount" +msgstr "Процесс загрузки PXE с монтированием корневой файловой системы по NFS" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2165 +#, no-wrap +msgid "pxe-nfs.png" +msgstr "pxe-nfs.png" + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2168 +msgid "Client broadcasts a DHCPDISCOVER message." +msgstr "Клиент рассылает широковещательное сообщение DHCPDISCOVER." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2170 +msgid "" +"The DHCP server responds with the IP address, next-server, filename, and " +"root-path values." +msgstr "" +"Сервер DHCP отвечает с указанием IP-адреса, next-server, filename и значений " +"root-path." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2172 +msgid "" +"The client sends a TFTP request to next-server, asking to retrieve filename." +msgstr "" +"Клиент отправляет запрос TFTP на next-server, запрашивая получение файла " +"filename." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2174 +msgid "The TFTP server responds and sends filename to client." +msgstr "Сервер TFTP отвечает и отправляет имя файла клиенту." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2176 +msgid "" +"The client executes filename, which is pxeboot(8), which then loads the " +"kernel. When the kernel executes, the root file system specified by root-" +"path is mounted over NFS." +msgstr "" +"Клиент выполняет файл `pxeboot(8)`, который затем загружает ядро. При " +"запуске ядра корневая файловая система, указанная в `root-path`, монтируется " +"через NFS." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2178 +msgid "" +"On the TFTP server, read [.filename]#/var/log/xferlog# to ensure that " +"[.filename]#pxeboot# is being retrieved from the correct location. To test " +"this example configuration:" +msgstr "" +"На TFTP-сервере прочитайте [.filename]#/var/log/xferlog#, чтобы убедиться, " +"что [.filename]#pxeboot# загружается из правильного места. Для проверки " +"конфигурации, сделанной для этого примера:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2184 +#, no-wrap +msgid "" +"# tftp 192.168.0.1\n" +"tftp> get FreeBSD/install/boot/pxeboot\n" +"Received 264951 bytes in 0.1 seconds\n" +msgstr "" +"# tftp 192.168.0.1\n" +"tftp> get FreeBSD/install/boot/pxeboot\n" +"Received 264951 bytes in 0.1 seconds\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2187 +msgid "" +"The `BUGS` sections in man:tftpd[8] and man:tftp[1] document some " +"limitations with TFTP." +msgstr "" +"Разделы `BUGS` в man:tftpd[8] и man:tftp[1] описывают некоторые ограничения " +"TFTP." + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2188 +msgid "" +"Make sure that the root file system can be mounted via NFS. To test this " +"example configuration:" +msgstr "" +"Убедитесь, что корневая файловая система может быть смонтирована через NFS. " +"Для проверки конфигурации из этого примера:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2192 +#, no-wrap +msgid "# mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mnt\n" +msgstr "# mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2195 +msgid "" +"For UEFI PXE based booting, replace the [.filename]#boot/pxeboot# file with " +"the [.filename]#boot/loader.efi# file:" +msgstr "" +"Для загрузки по PXE на UEFI замените файл [.filename]#boot/pxeboot# на файл " +"[.filename]#boot/loader.efi#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2200 +#, no-wrap +msgid "" +"# chroot ${NFSROOTDIR}\n" +"# mv boot/pxeboot boot/pxeboot.original\n" +"# cp boot/loader.efi boot/pxeboot\n" +msgstr "" +"# chroot ${NFSROOTDIR}\n" +"# mv boot/pxeboot boot/pxeboot.original\n" +"# cp boot/loader.efi boot/pxeboot\n" + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2204 +#, no-wrap +msgid "Common Address Redundancy Protocol (CARP)" +msgstr "Протокол общей избыточности адресов (CARP)" + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2208 +msgid "" +"The Common Address Redundancy Protocol (CARP) allows multiple hosts to share " +"the same IP address and Virtual Host ID (VHID) in order to provide _high " +"availability_ for one or more services. This means that one or more hosts " +"can fail, and the other hosts will transparently take over so that users do " +"not see a service failure." +msgstr "" +"Протокол общей избыточности адресов (CARP) позволяет нескольким хостам " +"использовать один и тот же IP-адрес и идентификатор виртуального хоста " +"(VHID) для обеспечения _высокой доступности_ одной или нескольких служб. Это " +"означает, что при отказе одного или нескольких хостов остальные хосты " +"прозрачно возьмут на себя их функции, чтобы пользователи не заметили сбоя в " +"работе службы." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2212 +msgid "" +"In addition to the shared IP address, each host has its own IP address for " +"management and configuration. All of the machines that share an IP address " +"have the same VHID. The VHID for each virtual IP address must be unique " +"across the broadcast domain of the network interface." +msgstr "" +"В дополнение к общему IP-адресу каждый узел имеет собственный IP-адрес для " +"управления и настройки. Все машины, которые используют общий IP-адрес, имеют " +"одинаковый VHID. для каждого виртуального IP-адреса VHID должен быть " +"уникальным в пределах широковещательного домена сетевого интерфейса." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2215 +msgid "" +"High availability using CARP is built into FreeBSD, though the steps to " +"configure it vary slightly depending upon the FreeBSD version. This section " +"provides the same example configuration for versions before and equal to or " +"after FreeBSD 10." +msgstr "" +"Высокая доступность с использованием CARP встроена в FreeBSD, хотя шаги по " +"её настройке немного различаются в зависимости от версии FreeBSD. В этом " +"разделе приведён одинаковый пример конфигурации для версий до и начиная с " +"FreeBSD 10." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2218 +msgid "" +"This example configures failover support with three hosts, all with unique " +"IP addresses, but providing the same web content. It has two different " +"masters named `hosta.example.org` and `hostb.example.org`, with a shared " +"backup named `hostc.example.org`." +msgstr "" +"Этот пример настраивает поддержку отказоустойчивости с тремя хостами, каждый " +"из которых имеет уникальный IP-адрес, но предоставляет одинаковое веб-" +"содержимое. В нем есть два разных основных хоста с именами " +"`hosta.example.org` и `hostb.example.org`, а также общий резервный хост с " +"именем `hostc.example.org`." + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2225 +msgid "" +"These machines are load balanced with a Round Robin DNS configuration. The " +"master and backup machines are configured identically except for their " +"hostnames and management IP addresses. These servers must have the same " +"configuration and run the same services. When the failover occurs, requests " +"to the service on the shared IP address can only be answered correctly if " +"the backup server has access to the same content. The backup machine has " +"two additional CARP interfaces, one for each of the master content server's " +"IP addresses. When a failure occurs, the backup server will pick up the " +"failed master machine's IP address." +msgstr "" +"Эти машины балансируют нагрузку с помощью конфигурации DNS Round Robin. " +"Основная и резервная машины настроены идентично, за исключением их имён " +"хостов и управляющих IP-адресов. Эти серверы должны иметь одинаковую " +"конфигурацию и запускать одинаковые службы. При возникновении переключения, " +"запросы к службе на общем IP-адресе могут быть корректно обработаны только " +"если резервный сервер имеет доступ к тому же содержимому. Резервная машина " +"имеет два дополнительных интерфейса CARP, по одному для каждого из IP-" +"адресов основного сервера содержимого. При возникновении сбоя, резервный " +"сервер возьмёт IP-адрес вышедшей из строя основной машины." + +#. type: Title === +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2227 +#, no-wrap +msgid "Using CARP" +msgstr "Использование CARP" + +#. type: delimited block * 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2230 +msgid "" +"Enable boot-time support for CARP by adding an entry for the " +"[.filename]#carp.ko# kernel module in [.filename]#/boot/loader.conf#:" +msgstr "" +"Включите поддержку CARP при загрузке, добавив запись для модуля ядра " +"[.filename]#carp.ko# в [.filename]#/boot/loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2234 +#, no-wrap +msgid "carp_load=\"YES\"\n" +msgstr "carp_load=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2237 +msgid "To load the module now without rebooting:" +msgstr "Чтобы сейчас загрузить модуль без перезагрузки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2241 +#, no-wrap +msgid "# kldload carp\n" +msgstr "# kldload carp\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2244 +msgid "" +"For users who prefer to use a custom kernel, include the following line in " +"the custom kernel configuration file and compile the kernel as described in " +"crossref:kernelconfig[kernelconfig,Configuring the FreeBSD Kernel]:" +msgstr "" +"Для пользователей, которые предпочитают использовать собственное ядро, " +"добавьте следующую строку в файл конфигурации ядра и скомпилируйте его, как " +"описано в crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2248 +#, no-wrap +msgid "device\tcarp\n" +msgstr "device\tcarp\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2251 +msgid "" +"The hostname, management IP address and subnet mask, shared IP address, and " +"VHID are all set by adding entries to [.filename]#/etc/rc.conf#. This " +"example is for `hosta.example.org`:" +msgstr "" +"Имя хоста, управляющий IP-адрес и маска подсети, общий IP-адрес и VHID " +"задаются путем добавления записей в [.filename]#/etc/rc.conf#. Этот пример " +"для `hosta.example.org`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2257 +#, no-wrap +msgid "" +"hostname=\"hosta.example.org\"\n" +"ifconfig_em0=\"inet 192.168.1.3 netmask 255.255.255.0\"\n" +"ifconfig_em0_alias0=\"inet vhid 1 pass testpass alias 192.168.1.50/32\"\n" +msgstr "" +"hostname=\"hosta.example.org\"\n" +"ifconfig_em0=\"inet 192.168.1.3 netmask 255.255.255.0\"\n" +"ifconfig_em0_alias0=\"inet vhid 1 pass testpass alias 192.168.1.50/32\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2262 +msgid "" +"The next set of entries are for `hostb.example.org`. Since it represents a " +"second master, it uses a different shared IP address and VHID. However, the " +"passwords specified with `pass` must be identical as CARP will only listen " +"to and accept advertisements from machines with the correct password." +msgstr "" +"Следующий набор записей предназначен для `hostb.example.org`. Поскольку он " +"представляет второй мастер, используется другой общий IP-адрес и VHID. " +"Однако пароли, указанные с помощью `pass`, должны быть идентичными, так как " +"CARP будет принимать и обрабатывать объявления только от машин с правильным " +"паролем." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2268 +#, no-wrap +msgid "" +"hostname=\"hostb.example.org\"\n" +"ifconfig_em0=\"inet 192.168.1.4 netmask 255.255.255.0\"\n" +"ifconfig_em0_alias0=\"inet vhid 2 pass testpass alias 192.168.1.51/32\"\n" +msgstr "" +"hostname=\"hostb.example.org\"\n" +"ifconfig_em0=\"inet 192.168.1.4 netmask 255.255.255.0\"\n" +"ifconfig_em0_alias0=\"inet vhid 2 pass testpass alias 192.168.1.51/32\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2273 +msgid "" +"The third machine, `hostc.example.org`, is configured to handle failover " +"from either master. This machine is configured with two CARPVHIDs, one to " +"handle the virtual IP address for each of the master hosts. The CARP " +"advertising skew, `advskew`, is set to ensure that the backup host " +"advertises later than the master, since `advskew` controls the order of " +"precedence when there are multiple backup servers." +msgstr "" +"Третья машина, `hostc.example.org`, настроена для обработки перехода на " +"резервный сервер от любого из основных. Эта машина настроена с двумя " +"CARPVHID, по одному для обработки виртуального IP-адреса каждого из основных " +"хостов. Значение advskew (временной сдвиг анонсов CARP) обеспечивает " +"задержку в отправке анонсов резервным сервером по сравнению с основным, " +"поскольку `advskew` контролирует порядок приоритета при наличии нескольких " +"резервных серверов." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2280 +#, no-wrap +msgid "" +"hostname=\"hostc.example.org\"\n" +"ifconfig_em0=\"inet 192.168.1.5 netmask 255.255.255.0\"\n" +"ifconfig_em0_alias0=\"inet vhid 1 advskew 100 pass testpass alias 192.168.1.50/32\"\n" +"ifconfig_em0_alias1=\"inet vhid 2 advskew 100 pass testpass alias 192.168.1.51/32\"\n" +msgstr "" +"hostname=\"hostc.example.org\"\n" +"ifconfig_em0=\"inet 192.168.1.5 netmask 255.255.255.0\"\n" +"ifconfig_em0_alias0=\"inet vhid 1 advskew 100 pass testpass alias 192.168.1.50/32\"\n" +"ifconfig_em0_alias1=\"inet vhid 2 advskew 100 pass testpass alias 192.168.1.51/32\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2284 +msgid "" +"Having two CARPVHIDs configured means that `hostc.example.org` will notice " +"if either of the master servers becomes unavailable. If a master fails to " +"advertise before the backup server, the backup server will pick up the " +"shared IP address until the master becomes available again." +msgstr "" +"Наличие двух настроенных CARPVHID означает, что `hostc.example.org` заметит, " +"если один из главных серверов станет недоступен. Если главный сервер не " +"отправит объявление раньше резервного сервера, резервный сервер возьмёт на " +"себя общий IP-адрес до тех пор, пока главный сервер снова не станет доступен." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2291 +msgid "" +"If the original master server becomes available again, `hostc.example.org` " +"will not release the virtual IP address back to it automatically. For this " +"to happen, preemption has to be enabled. The feature is disabled by " +"default, it is controlled via the man:sysctl[8] variable " +"`net.inet.carp.preempt`. The administrator can force the backup server to " +"return the IP address to the master:" +msgstr "" +"Если исходный главный сервер снова станет доступен, `hostc.example.org` не " +"освободит виртуальный IP-адрес автоматически. Чтобы это произошло, " +"необходимо включить вытеснение. Эта функция отключена по умолчанию и " +"управляется через переменную man:sysctl[8] `net.inet.carp.preempt`. " +"Администратор может принудительно вернуть IP-адрес главному серверу с " +"резервного сервера:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2295 +#, no-wrap +msgid "# ifconfig em0 vhid 1 state backup\n" +msgstr "# ifconfig em0 vhid 1 state backup\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2301 +msgid "" +"Once the configuration is complete, either restart networking or reboot each " +"system. High availability is now enabled." +msgstr "" +"Как только настройка завершена, перезапустите сеть или перезагрузите каждую " +"систему. Высокая доступность теперь включена." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2304 +msgid "" +"CARP functionality can be controlled via several man:sysctl[8] variables " +"documented in the man:carp[4] manual pages. Other actions can be triggered " +"from CARP events by using man:devd[8]." +msgstr "" +"Функциональность CARP может управляться с помощью нескольких переменных " +"man:sysctl[8], описанных в man:carp[4]. Другие действия могут быть запущены " +"при событиях CARP с использованием man:devd[8]." + +#. type: Title == +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2306 +#, no-wrap +msgid "VLANs" +msgstr "Виртуальные сети VLAN" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2310 +msgid "" +"VLANs are a way of virtually dividing up a network into many different " +"subnetworks, also referred to as segmenting. Each segment will have its own " +"broadcast domain and be isolated from other VLANs." +msgstr "" +"Виртуальные локальные сети (VLAN) — это способ виртуального разделения сети " +"на множество различных подсетей, также называемый сегментированием. Каждый " +"сегмент будет иметь свою собственную широковещательную область и быть " +"изолированным от других VLAN." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2313 +msgid "" +"On FreeBSD, VLANs must be supported by the network card driver. To see " +"which drivers support vlans, refer to the man:vlan[4] manual page." +msgstr "" +"На FreeBSD поддержка VLAN должна быть обеспечена драйвером сетевой карты. " +"Чтобы узнать, какие драйверы поддерживают VLAN, обратитесь к странице " +"руководства man:vlan[4]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2316 +msgid "" +"When configuring a VLAN, a couple pieces of information must be known. " +"First, which network interface? Second, what is the VLAN tag?" +msgstr "" +"При настройке VLAN необходимо знать несколько параметров. Во-первых, какой " +"сетевой интерфейс? Во-вторых, какой тег VLAN?" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2318 +msgid "" +"To configure VLANs at run time, with a NIC of `em0` and a VLAN tag of `5` " +"the command would look like this:" +msgstr "" +"Для настройки VLAN во время выполнения, с сетевой картой `em0` и тегом VLAN " +"`5`, команда будет выглядеть следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2322 +#, no-wrap +msgid "# ifconfig em0.5 create vlan 5 vlandev em0 inet 192.168.20.20/24\n" +msgstr "# ifconfig em0.5 create vlan 5 vlandev em0 inet 192.168.20.20/24\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2327 +msgid "" +"See how the interface name includes the NIC driver name and the VLAN tag, " +"separated by a period? This is a best practice to make maintaining the VLAN " +"configuration easy when many VLANs are present on a machine." +msgstr "" +"Видите, что имя интерфейса состоит из имени драйвера сетевой карты и тега " +"VLAN, разделенных точкой? Это рекомендуемая практика для упрощения работы с " +"конфигурациями VLAN, когда на машине присутствует множество VLAN." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2333 +msgid "" +"When defining VLANs, ensure that the parent network interface is also " +"configured and enabled. The minimum configuration for the above example " +"would be:" +msgstr "" +"При определении VLAN убедитесь, что родительский сетевой интерфейс также " +"настроен и включен. Минимальная конфигурация для приведенного выше примера " +"будет следующей:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2337 +#, no-wrap +msgid "# ifconfig em0 up\n" +msgstr "# ifconfig em0 up\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2342 +msgid "" +"To configure VLANs at boot time, [.filename]#/etc/rc.conf# must be updated. " +"To duplicate the configuration above, the following will need to be added:" +msgstr "" +"Для настройки VLAN при загрузке необходимо обновить файл [.filename]#/etc/" +"rc.conf#. Чтобы повторить приведённую выше конфигурацию, нужно добавить " +"следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2347 +#, no-wrap +msgid "" +"vlans_em0=\"5\"\n" +"ifconfig_em0_5=\"inet 192.168.20.20/24\"\n" +msgstr "" +"vlans_em0=\"5\"\n" +"ifconfig_em0_5=\"inet 192.168.20.20/24\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2350 +msgid "" +"Additional VLANs may be added, by simply adding the tag to the `vlans_em0` " +"field and adding an additional line configuring the network on that VLAN " +"tag's interface." +msgstr "" +"Дополнительные VLAN могут быть добавлены путём простого дополнения тега в " +"поле `vlans_em0` и добавления дополнительной строки для настройки сети на " +"интерфейсе с этим тегом VLAN." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2355 +msgid "" +"When defining VLANs in [.filename]#/etc/rc.conf#, make sure that the parent " +"network interface is configured and enabled as well. The minimum " +"configuration for the above example would be:" +msgstr "" +"При определении VLAN в [.filename]#/etc/rc.conf# убедитесь, что родительский " +"сетевой интерфейс также настроен и включен. Минимальная конфигурация для " +"приведенного выше примера будет следующей:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2359 +#, no-wrap +msgid "ifconfig_em0=\"up\"\n" +msgstr "ifconfig_em0=\"up\"\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2365 +msgid "" +"It is useful to assign a symbolic name to an interface so that when the " +"associated hardware is changed, only a few configuration variables need to " +"be updated. For example, security cameras need to be run over VLAN 1 on " +"`em0`. Later, if the `em0` card is replaced with a card that uses the " +"man:ixgb[4] driver, all references to `em0.1` will not have to change to " +"`ixgb0.1`." +msgstr "" +"Полезно присвоить интерфейсу символическое имя, чтобы при изменении " +"связанного оборудования требовалось обновить лишь несколько переменных " +"конфигурации. Например, камеры наблюдения должны работать через VLAN 1 на " +"`em0`. Позже, если карта `em0` будет заменена на карту с драйвером " +"man:ixgb[4], все упоминания `em0.1` не нужно будет изменять на `ixgb0.1`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2367 +msgid "" +"To configure VLAN `5`, on the NIC `em0`, assign the interface name " +"`cameras`, and assign the interface an IP address of `_192.168.20.20_` with " +"a `24`-bit prefix, use this command:" +msgstr "" +"Для настройки VLAN `5` на сетевой карте `em0`, назначения интерфейсу имени " +"`cameras` и присвоения интерфейсу IP-адреса `_192.168.20.20_` с `24`-битным " +"префиксом используйте следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2371 +#, no-wrap +msgid "# ifconfig em0.5 create vlan 5 vlandev em0 name cameras inet 192.168.20.20/24\n" +msgstr "# ifconfig em0.5 create vlan 5 vlandev em0 name cameras inet 192.168.20.20/24\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2374 +msgid "For an interface named `video`, use the following:" +msgstr "Для интерфейса с именем `video` используйте следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2378 +#, no-wrap +msgid "# ifconfig video.5 create vlan 5 vlandev video name cameras inet 192.168.20.20/24\n" +msgstr "# ifconfig video.5 create vlan 5 vlandev video name cameras inet 192.168.20.20/24\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2381 +msgid "" +"To apply the changes at boot time, add the following lines to [.filename]#/" +"etc/rc.conf#:" +msgstr "" +"Чтобы применить изменения при загрузке, добавьте следующие строки в " +"[.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/advanced-networking/_index.adoc:2387 +#, no-wrap +msgid "" +"vlans_video=\"cameras\"\n" +"create_args_cameras=\"vlan 5\"\n" +"ifconfig_cameras=\"inet 192.168.20.20/24\"\n" +msgstr "" +"vlans_video=\"cameras\"\n" +"create_args_cameras=\"vlan 5\"\n" +"ifconfig_cameras=\"inet 192.168.20.20/24\"\n" diff --git a/documentation/content/ru/books/handbook/audit/_index.adoc b/documentation/content/ru/books/handbook/audit/_index.adoc index 05808c0bd7..c2a2b9d971 100644 --- a/documentation/content/ru/books/handbook/audit/_index.adoc +++ b/documentation/content/ru/books/handbook/audit/_index.adoc @@ -1,12 +1,14 @@ --- -title: Глава 16. Аудит событий безопасности -part: Часть III. Системное администрирование -prev: books/handbook/mac +description: 'В FreeBSD поддерживается аудит событий безопасности, обеспечивающий надежное, детализированное и настраиваемое журналирование различных системных событий, связанных с безопасностью, включая входы в систему, изменения конфигурации, а также доступ к файлам и сети' next: books/handbook/disks -showBookMenu: true -weight: 20 params: - path: "/books/handbook/audit/" + path: /books/handbook/audit/ +part: 'Часть III. Администрирование системы' +prev: books/handbook/mac +showBookMenu: true +tags: ["audit", "terms", "configuration", "guide", "audit trails"] +title: 'Глава 19. Аудит событий безопасности' +weight: 23 --- [[audit]] @@ -17,7 +19,7 @@ params: :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 16 +:sectnumoffset: 19 :partnums: :source-highlighter: rouge :experimental: @@ -48,63 +50,62 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] [[audit-synopsis]] -== Краткий обзор +== Обзор -Операционная система FreeBSD включает в себя поддержку аудита событий безопасности. Аудит позволяет выполнять надежное, детальное и гибко настраиваемое протоколирование различных событий, связанных с безопасностью, включая входы в систему, изменения конфигурации, доступ к файлам и сети. Эти записи могут быть незаменимы для мониторинга функционирующей системы, обнаружения вторжений и для анализа событий, приведших к краху системы. В FreeBSD реализован опубликованный Sun(TM) интерфейс прикладного программирования (Application Programming Interface, API), называемый Basic Security Module (BSM), и формат файла, который совместим с реализациями аудита в Solaris(TM) и Mac OS(R) X. +Операционная система FreeBSD включает поддержку аудита событий безопасности. Аудит событий обеспечивает надежное, детализированное и настраиваемое журналирование различных системных событий, связанных с безопасностью, включая входы в систему, изменения конфигурации, доступ к файлам и сети. Эти записи журнала могут быть неоценимыми для мониторинга системы в реальном времени, обнаружения вторжений и "посмертного" анализа после краха системы. FreeBSD реализует опубликованный Sun(TM) программный интерфейс Basic Security Module (BSM) и формат файлов, и также совместима с реализациями аудита Solaris(TM) и Mac OS(R) X. -В этой главе описывается процесс установки и конфигурирования системы аудита. В том числе, приводится разъяснение политик аудита, а также даются примеры конфигурационных файлов. +Эта глава посвящена установке и настройке аудита событий. В ней объясняются политики аудита и приводится пример конфигурации аудита. -После прочтения этой главы вы будете знать: +Прочитав эту главу, вы будете знать: -* Что такое система аудита и как она работает. -* Как настроить аудит во FreeBSD для мониторинга пользователей и процессов. -* Как просматривать журнал аудита при помощи инструментов просмотра и фильтрации (reduction). +* Что такое аудит событий и как он работает. +* Как настроить аудит событий в FreeBSD для пользователей и процессов. +* Как просмотреть журнал аудита с использованием инструментов сокращения и просмотра аудита. -Перед прочтением этой главы вы должны: +Прежде чем читать эту главу, вы должны: -* Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics, Основы UNIX]). -* Уметь конфигурировать и компилировать ядро (crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]). -* Понимать основные принципы безопасности в применении к операционной системе FreeBSD (crossref:security[security, Безопасность]). +* Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics,Основы FreeBSD]). +* Быть знакомым с основами настройки и компиляции ядра (crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]). +* Иметь некоторое представление о безопасности и о том, как она относится к FreeBSD (crossref:security[security,Безопасность]). [WARNING] ==== +У системы аудита есть несколько известных ограничений. Не все связанные с безопасностью системные события подлежат аудиту, а некоторые механизмы входа, такие как дисплейные менеджеры на основе Xorg и сторонние демоны, не настраивают аудит для сеансов пользовательского входа должным образом. -Реализация аудита имеет известные ограничения. Не все события в настоящий момент протоколируемые. Также, некоторые механизмы входа в систему, такие как оконные менеджеры X11 или демоны от сторонних производителей, не настраивают аудит пользовательских сессий должным образом. - -Использование системы аудита может привести к генерированию изобилующих подробностями журнальных файлов. Их размер на загруженных серверах в некоторых конфигурациях может превышать несколько гигабайт в неделю. Администраторы должны принимать во внимание требования к дисковому пространству для нагруженных конфигураций системы аудита. Например, желательно выделить отдельный раздел для файловой системы аудита [.filename]#/var/audit#, чтобы заполнение раздела аудита не влияло на другие файловые системы. +Система аудита событий безопасности способна создавать очень подробные журналы активности системы. На загруженной системе данные файлов журналов могут быть очень большими при настройке высокой детализации, в некоторых конфигурациях превышая гигабайты в неделю. Администраторы должны учитывать требования к дисковому пространству, связанные с конфигурациями аудита с высоким объемом данных. Например, может быть целесообразно выделить отдельную файловую систему для [.filename]#/var/audit#, чтобы другие файловые системы не пострадали, если файловая система аудита переполнится. ==== [[audit-inline-glossary]] -== Ключевые понятия +== Ключевые термины -Следующие термины относятся к аудиту событий безопасности: +Следующие термины связаны с аудитом событий безопасности: -* _событие_ (event): событие, которое может быть занесено в журнал. Примерами событий, относящихся к безопасности системы, являются: создание файла, инициализацию сетевого соединения, вход пользователя в систему. События разделяются на "приписываемые" (attributable) - те, которые могут быть отнесены к конкретному пользователю - и "неприписываемые" (non-attributable). Пример неприписываемого события - любое событие, произошедшее до аутентификации пользователя, например, неверно набранный пароль. -* _класс_ (class): именованные наборы однотипных событий, которые используются в выражениях выбора. Часто используемые классы событий включают "создание файла" (fc), "выполнение файла" (ex) и "события входа в систему и выхода из нее" (lo). -* _запись_ (record): единичная запись в журнале, описывающая то или иное событие. Записи содержат информацию о типе события, информацию о субъекте события (пользователе), который выполнил некоторое действие, дату и время события, информацию об объектах и аргументах события, а также информацию об успешности или неуспешности выполнения операции. -* _журнал_ (trail): файл, содержащий последовательность записей аудита, описывающих события безопасности (security events). Журнал содержит записи в ориентировочно хронологическом порядке по времени завершения события. Только авторизованные процессы могут добавлять записи в журнал. -* _выражение выбора_ (selection expression): строка, содержащая список префиксов и имен классов, используемая для выбора группы событий. -* _предварительный выбор_ (preselection): процесс, с помощью которого система определяет, какие события имеют важность для администратора. Предварительный выбор использует ряд выражений выбора, задающих какие именно классы событий и для какого пользователя необходимо вносить в журнал, а также - глобальные настройки, которые будут применяться как для авторизованных, так и для неавторизованных процессов. -* _фильтрация_ (reduction): процесс, в результате которого записи из существующего журнала выделяются для хранения, распечатки или анализа. Также, это процесс, в результате которого нежелательные записи удаляются из журнала аудита. Используя фильтрацию, администраторы могут реализовывать различные политики хранения данных аудита. Например, детализированный журнал может храниться месяц, но после этого он может быть сокращен чтобы хранить только информацию о входе в систему и выходе из нее. +* _событие (event)_: аудируемое событие — это любое событие, которое может быть зарегистрировано с помощью подсистемы аудита. Примерами событий, связанных с безопасностью, являются создание файла, установка сетевого соединения или вход пользователя в систему. События могут быть "приписываемые", то есть их можно отследить до аутентифицированного пользователя, или "неприписываемые". Примерами неприписываемых событий являются любые события, происходящие до аутентификации в процессе входа в систему, например, неудачные попытки ввода пароля. +* _класс (class)_: именованный набор связанных событий, используемых в выражениях выбора. Распространённые классы событий включают "создание файла" (fc), "выполнение" (ex) и "вход/выход" (lo). +* _запись (record)_: запись в журнале аудита, описывающая событие безопасности. Записи содержат тип события, информацию о субъекте (пользователе), выполняющем действие, данные о дате и времени, информацию об объектах или аргументах, а также указание на успешность или неудачу выполнения. +* _журнал (trail)_: файл журнала, состоящий из серии записей аудита, описывающих события безопасности. Записи в журнале расположены в приблизительном хронологическом порядке относительно времени завершения событий. Только авторизованные процессы имеют право добавлять записи в журнал аудита. +* _выражение выбора (selection expression)_: строка, содержащая список префиксов и имен классов событий аудита, используемых для сопоставления событий. +* _предварительный выбор (preselection)_: процесс, в ходе которого система определяет, какие события представляют интерес для администратора. Конфигурация предварительного отбора использует ряд выражений выбора для определения классов событий, подлежащих аудиту для конкретных пользователей, а также глобальные настройки, применяемые как к авторизованным, так и к неавторизованным процессам. +* _фильтрация (reduction)_: процесс выбора записей из существующих журналов аудита для сохранения, печати или анализа. Аналогично, процесс удаления нежелательных записей аудита из журнала. Используя сокращение, администраторы могут реализовать политики сохранения данных аудита. Например, детальные журналы аудита могут храниться в течение одного месяца, но после этого они могут быть сокращены, чтобы сохранить только информацию о входах в систему для архивных целей. [[audit-config]] -== Настройка системы аудита +== Настройка аудита -Пользовательская часть системы аудита входит в базовую систему FreeBSD, системная часть включена в ядро [.filename]#GENERIC#, старт демона man:auditd[8] активируется включением следующей записи в [.filename]#/etc/rc.conf#: +Поддержка аудита событий в пользовательском пространстве устанавливается как часть базовой операционной системы FreeBSD. Поддержка на уровне ядра доступна в ядре [.filename]#GENERIC# по умолчанию, и man:auditd[8] может быть включен добавлением следующей строки в [.filename]#/etc/rc.conf#: [.programlisting] .... auditd_enable="YES" .... -Затем нужно запустить демон аудита: +Затем запустите демон аудита: -[source,shell] +[source, shell] .... # service auditd start .... -Пользователям, предпочитающим строить специализированное ядро, необходимо включить следующую запись в файл конфигурации ядра: +Пользователи, предпочитающие компилировать собственное ядро, должны включить следующую строку в файл конфигурации своего ядра: [.programlisting] .... @@ -113,89 +114,89 @@ options AUDIT === Выражения выбора событий -Выражения выбора используются в нескольких местах конфигурации для отбора событий, подлежащих аудиту. Выражения содержат перечень классов событий, с которым сравнивается происшедшее событие. Выражения выбора рассматриваются слева направо, и два выражения объединяются добавлением первого выражения ко второму. +Выражения выбора используются в нескольких местах конфигурации аудита для определения, какие события должны аудироваться. Выражения содержат список классов событий для сопоставления. Выражения выбора вычисляются слева направо, а два выражения объединяются путем добавления одного к другому. -<<event-selection>> перечисляет имеющиеся по умолчанию записи: +crossref:audit[event-selection,Классы событий аудита по умолчанию] содержит сводку классов событий аудита по умолчанию: [[event-selection]] -.Классы событий системы аудита +.Классы событий аудита по умолчанию [cols="1,1,1", frame="none", options="header"] |=== | Имя класса -| Расшифровка +| Описание | Действие |all |all -|Соответствует всем классам событий. +|Совпадает со всеми классами событий. |aa |authentication and authorization -| +| |ad |administrative -|Аудит административных действий, произошедших в системе. +|Административные действия, выполняемые с системой в целом. |ap |application -|События, определяемые каким-либо приложением. +|Определенное приложением действие. |cl |file close -|Аудит вызовов системной функции `close`. +|Аудит вызовов системного вызова `close`. |ex |exec -|Аудит запуска приложения. Аудит аргументов командной строки и переменных окружения контролируется через man:audit_control[5] используя параметры `argv` и `envv` в опции `policy`. +|Аудит выполнения программ. Аудит аргументов командной строки и переменных окружения контролируется через man:audit_control[5] с использованием параметров `argv` и `envv` в настройке `policy`. |fa |file attribute access -|Аудит доступа к атрибутам объектов, например таких как man:stat[1], man:pathconf[2]. +|Аудит доступа к атрибутам объектов, таким как man:stat[1] и man:pathconf[2]. |fc |file create -|Аудит событий, в результате которых создаются файлы. +|События аудита, в результате которых создается файл. |fd |file delete -|Аудит событий, в результате которых удаляются файлы. +|Аудит событий, в которых происходит удаление файлов. |fm |file attribute modify -|Аудит событий, в результате которых изменяются атрибуты файлов, например, man:chown[8], man:chflags[1], man:flock[2]. +|События аудита, связанные с изменением атрибутов файлов, например, с помощью man:chown[8], man:chflags[1] и man:flock[2]. |fr |file read -|Аудит событий, в результате которых происходит чтение данных или открываются файлы на чтение. +|События аудита, в которых данные читаются или файлы открываются для чтения. |fw |file write -|Аудит событий, в результате которых происходит запись данных, запись или изменение файлов. +|События аудита, в которых данные записываются или файлы создаются либо изменяются. |io |ioctl -|Аудит вызовов системной функции man:ioctl[2]. +|Контроль использования системного вызова `ioctl`. |ip |ipc -|Аудит различных видов взаимодействия процессов, включая создание неименованных каналов (POSIX pipe) и взаимодействие процессов в стиле System V IPC. +|Аудит различных форм межпроцессного взаимодействия, включая POSIX-каналы и операции System V IPC. |lo |login_logout -|Аудит событий man:login[1] и man:logout[1]. +|Audit man:login[1] и man:logout[1] события. |na |non attributable |Аудит неприписываемых событий. |no -|invalid class -|Не соответствует никаким событиям аудита. +|ошибочный класс +|Не соответствует ни одному событию аудита. |nt |network -|Аудит событий, связанных с сетевыми подключениями, например man:connect[2] и man:accept[2]. +|События аудита, связанные с сетевыми действиями, такими как man:connect[2] и man:accept[2]. |ot |other @@ -203,68 +204,66 @@ options AUDIT |pc |process -|Аудит действий процессов, таких как man:exec[3] и man:exit[3]. +|Аудит операций процессов, таких как man:exec[3] и man:exit[3]. |=== -Эти классы событий могут быть настроены изменением конфигурационных файлов [.filename]#audit_class# и [.filename]#audit_event#. +Эти классы событий аудита могут быть настроены путем изменения конфигурационных файлов [.filename]#audit_class# и [.filename]#audit_event#. + +Каждый класс событий аудита может быть объединен с префиксом, указывающим, соответствуют ли успешные/неудачные операции, и добавляется или удаляется запись для соответствия классу и типу. В crossref:audit[event-prefixes,Префиксы для классов событий аудита] приведены доступные префиксы: -Каждый класс аудита можно скомбинировать с префиксом, показывающим, какие операции будут учитываться - удачные или неудачные, а также то, включает ли данная запись аудит для данного класса и типа, либо отключает его. <<event-prefixes>> обобщает доступные префиксы: [[event-prefixes]] -.Префиксы классов аудита событий +.Префиксы для классов событий аудита [cols="1,1", frame="none", options="header"] |=== | Префикс | Действие |+ -|Аудит успешных событий в данном классе. +|Аудит успешных событий в этом классе. |- -|Аудит ошибочных событий в данном классе. +|Аудит неудачных событий в этом классе. |^ -|Отключение аудита как успешных, так и ошибочных событий в данном классе. +|Не аудировать ни успешные, ни неудачные события в этом классе. |^+ -|Отключение аудита успешных событий в данном классе. +|Не аудировать успешные события в данном классе. |^- -|Отключение аудита ошибочных событий в данном классе. +|Не аудировать неудачные события в этом классе. |=== -Если префикс не указан, то аудиту подлежат как успешные, так и неуспешные события. +Если префикс отсутствует, будут аудироваться как успешные, так и неудачные экземпляры события. -Следующий пример выбирает успешные и неуспешные события входа в систему и выхода из нее, и только успешные события выполнения приложения: +Следующая строка выбора выбирает как успешные, так и неудачные события входа/выхода, но только успешные события выполнения: [.programlisting] .... lo,+ex .... -=== Конфигурационные файлы +=== Файлы конфигурации -В каталоге [.filename]#/etc/security# находятся следующие конфигурационные файлы системы аудита: +В каталоге [.filename]#/etc/security# находятся следующие файлы конфигурации для аудита событий безопасности: * [.filename]#audit_class#: содержит определения классов аудита. -* [.filename]#audit_control#: контроллирует некоторые аспекты системы аудита, такие как классы по умолчанию, минимальное дисковое пространство, которое должно оставаться на разделе журнала аудита, максимальный размер журнала аудита. -* -+ -[.filename]#audit_event#: связывает идентификаторы событий (eventnum) с их текстовыми именами, описаниями и классами событий. -* [.filename]#audit_user#: уточняет настройки аудита для конкретных пользователей; они комбинируются с глобальными настройками при входе пользователя в систему. -* [.filename]#audit_warn#: настраиваемый скрипт командного интерпретатора, который вызывается man:auditd[8] для генерации предупреждений в исключительных ситуациях, таких как исчерпание дискового пространства записями аудита или при ротации журнала аудита. +* [.filename]#audit_control#: управляет аспектами подсистемы аудита, такими как классы аудита по умолчанию, минимальное свободное место на томе с журналом аудита и максимальный размер журнала аудита. +* [.filename]#audit_event#: текстовые названия и описания системных событий аудита, а также список классов, к которым относится каждое событие. +* [.filename]#audit_user#: пользовательские требования аудита, которые объединяются с глобальными настройками по умолчанию при входе в систему. +* [.filename]#audit_warn#: настраиваемый сценарий оболочки, используемый man:auditd[8] для генерации предупреждающих сообщений в исключительных ситуациях, например, когда заканчивается место для записей аудита или когда файл журнала аудита был перезаписан. [WARNING] ==== - -Файлы конфигурации аудита должны редактироваться и изменяться с осторожностью, так как ошибки в конфигурации могут привести к сохранению бесполезных записей. +Файлы конфигурации аудита следует редактировать и поддерживать тщательно, так как ошибки в конфигурации могут привести к некорректной записи событий. ==== -В большинстве случаев администратору придется вносить изменения только в два конфигурационных файла системы аудита: [.filename]#audit_control# и [.filename]#audit_user#. Первый из них содержит общие настройки системы аудита, второй может использоваться для уточнения настроек аудита для конкретных пользователей. +В большинстве случаев администраторам потребуется изменить только файлы [.filename]#audit_control# и [.filename]#audit_user#. Первый файл управляет системными настройками и политиками аудита, а второй может использоваться для тонкой настройки аудита по пользователям. [[audit-auditcontrol]] ==== Файл [.filename]#audit_control# -Ниже приведен перечень настроек по умолчанию, содержащихся в [.filename]#audit_control#: +Некоторые параметры подсистемы аудита по умолчанию указаны в файле [.filename]#audit_control#: [.programlisting] .... @@ -278,28 +277,28 @@ filesz:2M expire-after:10M .... -Запись `dir` используется для установки одного или более каталогов, в которых будет сохраняться журнал системы аудита. Если указан более чем один каталог, то указанные каталоги будут использоваться по очереди, по мере заполнения. Как правило, система аудита настраивается на хранение журнала аудита на отдельном разделе, чтобы предотвратить взаимное влияние подсистемы аудита и остальных подсистем в случае исчерпания свободного места на разделе. +Запись `dir` используется для указания одного или нескольких каталогов, в которых будут храниться журналы аудита. Если указано несколько каталогов, они будут использоваться по очереди по мере заполнения. Обычно настраивают аудит так, чтобы журналы хранились на выделенной файловой системе — это предотвращает конфликты между подсистемой аудита и другими подсистемами при заполнении файловой системы. -Если опция `dist` имеет значение `on` или `yes`, то для всех журналов аудита будут создаваться жесткие ссылки, сохраняемые в [.filename]#/var/audit/dist#. +Если поле `dist` установлено в `on` или `yes`, жесткие ссылки будут созданы для всех файлов журнала в [.filename]#/var/audit/dist#. -Запись `flags` используется для установки глобальной маски предварительного выбора для приписываемых событий. В примере выше аудиту будут подвергаться как успешные, так и неудачные попытки входа в систему и выхода из нее, а также - аутентификация и авторизация для всех пользователей. +Поле `flags` устанавливает системную маску предварительного выбора по умолчанию для учитываемых событий. В приведённом примере аудиту подлежат успешные и неудачные события входа/выхода, а также аутентификация и авторизация для всех пользователей. -Запись `minfree` определяет минимальное количество свободного дискового пространства на разделе, в который сохраняются файлы журналов аудита. +Запись `minfree` определяет минимальный процент свободного места в файловой системе, где хранится журнал аудита. -Запись `naflags` определяет классы аудита для неприписываемых событий, например, процессов входа в систему и системных демонов. +Запись `naflags` определяет классы аудита для событий без атрибутов, таких как процесс входа/выхода, аутентификация и авторизация. -Запись `policy` определяет разделяемый запятыми список флагов политики, определяющей различные аспекты поведения аудита. Флаг `cnt` указывает, что система должна продолжать работать, несмотря на ошибки аудита (данный флаг настоятельно рекомендуется). Второй флаг, `argv`, заставляет подвергать аудиту аргументы командной строки при вызове системного вызова man:execve[2]. +Запись `policy` определяет список флагов политики, разделённых запятыми, которые контролируют различные аспекты поведения аудита. Флаг `cnt` указывает, что система должна продолжать работу, несмотря на сбой аудита (этот флаг настоятельно рекомендуется). Другой флаг, `argv`, приводит к аудиту аргументов командной строки системного вызова man:execve[2] как части выполнения команды. -Запись `filesz` определяет максимальный размер журнала событий аудита, по достижении которого журнал будет автоматически закончен и подвергнут ротации. Значение `0` запрещает автоматическую ротацию логов. Если указанный размер ниже минимального значения 512К, то он будет проигнорирован, и будет сгенерировано предупреждающее сообщение в логах. +`filesz` указывает максимальный размер файла аудита перед автоматическим завершением и ротацией файла. Значение `0` отключает автоматическую ротацию логов. Если запрашиваемый размер файла меньше минимального значения в 512k, он будет проигнорирован, и будет сгенерировано сообщение в логе. -Поле `expire-after` определяет момент времени, при достижении которого журнальные файлы считаются неактуальными и удаляются. +Поле `expire-after` указывает, когда файлы журналов аудита устареют и будут удалены. [[audit-audituser]] ==== Файл [.filename]#audit_user# -Администратор может определить дополнительные требования к аудиту для конкретных пользователей в файле [.filename]#audit_user#. Каждая строка позволяет уточнить настройки аудита для пользователя при помощи двух полей: `alwaysaudit` - определяющее набор событий, которые должны всегда подвергаться аудиту для данного пользователя, и `neveraudit` - перечисляющее набор событий, которые никогда не должны подвергаться аудиту для пользователя. +Администратор может указать дополнительные требования аудита для конкретных пользователей в файле [.filename]#audit_user#. Каждая строка настраивает аудит для пользователя с помощью двух полей: поле `alwaysaudit` определяет набор событий, которые всегда должны аудироваться для пользователя, а поле `neveraudit` определяет набор событий, которые никогда не должны аудироваться для пользователя. -Нижеследующий пример настраивает аудит всех событий входа в систему, выхода из системы, а также аудит всех успешных выполнений команд для пользователя `root`, а также - аудит всех событий, связанных с созданием файлов и успешным выполнением команд пользователем `www`. С настройками по умолчанию в [.filename]#audit_control# запись `lo` для `root` является избыточной, кроме того, события входа в систему и выхода из системы будут подвергаться аудиту и для пользователя `www`. +Следующие примеры записей аудита фиксируют события входа/выхода и успешного выполнения команд для пользователя `root`, а также создание файлов и успешное выполнение команд для пользователя `www`. Если используется файл [.filename]#audit_control# по умолчанию, запись `lo` для `root` избыточна, и события входа/выхода также будут фиксироваться для `www`. [.programlisting] .... @@ -310,18 +309,18 @@ www:fc,+ex:no [[audit-administration]] == Работа с журналами аудита -Так как журнал аудита хранится в бинарном формате BSM, то для его изменения или перевода в текстовый формат предоставляются встроенные утилиты. Утилита `praudit` преобразует журнал аудита в текстовый формат. Утилита `auditreduce` применяется для фильтрации журнальных записей с целью анализа, архивирования или распечатки. Последняя утилита поддерживает разнообразие параметров, позволяющих выбирать записи по типу события, по классу события, по пользователю, по дате или времени события, по пути к файлу или по объекту, над которым производилось действие. +Поскольку записи аудита хранятся в двоичном формате BSM, для их изменения или преобразования в текстовый формат доступны встроенные инструменты. Для преобразования файлов записей в простой текстовый формат используйте `praudit`. Для сокращения файла записей аудита с целью анализа, архивирования или печати используйте `auditreduce`. Эта утилита поддерживает различные параметры выбора, включая тип события, класс события, пользователя, дату или время события, а также путь к файлу или объект, над которым выполнялось действие. -Например, для отображения всего содержимого журнала аудита в текстовом формате выполните: +Например, чтобы вывести всё содержимое указанного журнала аудита в виде обычного текста: -[source,shell] +[source, shell] .... # praudit /var/audit/AUDITFILE .... -В данном примере _AUDITFILE_ - журнал, который будет выведен в текстовом формате. +Где _AUDITFILE_ — файл журнала аудита для дампа. -Журнал аудита состоит из серии записей, которые, в свою очередь состоят из элементов, которые команда `praudit` выводит последовательно - по одному на строку. Каждый элемент имеет определенный тип, например `header` (содержит заголовок записи) или `path` (полный путь к файлу). Следующий пример показывает запись для события `execve`: +Журналы аудита состоят из последовательности записей аудита, сформированных из токенов, которые `praudit` выводит последовательно, по одному на строку. Каждый токен имеет определённый тип, например, `header` (заголовок записи аудита) или `path` (путь к файлу из поиска по имени). Ниже приведён пример события `execve`: [.programlisting] .... @@ -334,66 +333,65 @@ return,success,0 trailer,133 .... -Эта запись отражает результат успешного выполнения системного вызова `execve`, который стал результатом выполнения команды `finger doug`. В элементе записи `exec arg` есть командная строка, которую оболочка передала ядру. Элемент `path` содержит путь к исполняемому файлу в представлении ядра. Элемент `attribute` описывает исполняемый файл, а также права доступа файла. Элемент `subject` описывает ID аудируемого пользователя, исполняющие (effective) UID и GID, реальные ID пользователя и группы, идентификатор процесса, идентификатор сессии, порт и адрес, с которого был осуществлен вход в систему. Обратите внимание: идентификатор аудируемого пользователя и реальный идентификатор пользователя отличаются, так как пользователь `robert` повысил привилегии до пользователя `root` перед выполнением команды, но система аудита занесла его действия в журнал используя изначальный идентификатор. Элемент `return` описывает успешное выполнение операции, а элемент `trailer` завершает запись. +Этот аудит представляет успешный вызов `execve`, в котором была выполнена команда `finger doug`. Токен `exec arg` содержит обработанную командную строку, переданную оболочкой ядру. Токен `path` содержит путь к исполняемому файлу, найденный ядром. Токен `attribute` описывает бинарный файл и включает режим файла. Токен `subject` хранит аудитный идентификатор пользователя, эффективные идентификаторы пользователя и группы, реальные идентификаторы пользователя и группы, идентификатор процесса, идентификатор сессии, идентификатор порта и адрес входа. Обратите внимание, что аудитный идентификатор пользователя и реальный идентификатор пользователя различаются, так как пользователь `robert` переключился на учетную запись `root` перед выполнением этой команды, но аудит ведется с использованием исходного аутентифицированного пользователя. Токен `return` указывает на успешное выполнение, а `trailer` завершает запись. -Указав аргумент `-x` можно получить вывод в формате XML. +Также поддерживается формат вывода XML, и он может быть выбран добавлением опции `-x`. -Поскольку логи системы аудита могут иметь огромный размер, возможно выделить только часть записей при помощи `auditreduce`. В следующем примере из [.filename]#AUDITFILE# выбираются все записи, касающиеся пользователя `trhodes`: +Поскольку журналы аудита могут быть очень большими, можно выбрать подмножество записей с помощью `auditreduce`. В этом примере выбираются все записи аудита, созданные для пользователя `trhodes`, хранящиеся в [.filename]#AUDITFILE#: -[source,shell] +[source, shell] .... # auditreduce -u trhodes /var/audit/AUDITFILE | praudit .... -Члены группы `audit` имеют доступ на чтение к журналу аудита, находящемуся в [.filename]#/var/audit#. По умолчанию эта группа пуста, и только `root` имеет к ним доступ. Для того, чтобы дать пользователю права на чтение журнала, его необходимо добавить в группу `audit`. Право на чтение журнала аудита позволяет получить множество информации о поведении пользователей и процессов, поэтому рекомендуется делегировать права на чтение журнала аудита с большой осторожностью. +Участники группы `audit` имеют право читать журналы аудита в [.filename]#/var/audit#. По умолчанию эта группа пуста, поэтому только пользователь `root` может читать журналы аудита. Пользователи могут быть добавлены в группу `audit` для делегирования прав просмотра аудита. Поскольку возможность отслеживать содержимое журналов аудита дает значительное представление о поведении пользователей и процессов, рекомендуется делегировать права просмотра аудита с осторожностью. -=== Мониторинг системы в реальном времени с использованием потоков аудита +=== Мониторинг в реальном времени с использованием потоков аудита -Потоки системы аудита - клонирующиеся псевдоустройства, позволяющие приложениям просматривать в реальном времени поток событий аудита. В первую очередь, это должно заинтересовать авторов программ определения вторжений и мониторинга системы. Тем не менее, для администратора поток системы аудита предоставляет возможность организовать наблюдение за системой, избежав проблем с правами доступа на журнал аудита или с прерыванием потока событий из-за ротации журнала. Для отслеживания потока событий аудита в реальном времени, выполните: +Потоки аудитные (audit pipes) являются клонируемыми псевдоустройствами, которые позволяют приложениям получать доступ к потоку записей аудита в реальном времени. В первую очередь это интересно разработчикам систем обнаружения вторжений и мониторинга. Однако аудитное канальное устройство — это удобный способ для администратора организовать мониторинг в реальном времени без проблем с правами владения файлами аудита или прерывания потока событий из-за ротации логов. Для отслеживания живого потока событий аудита: -[source,shell] +[source, shell] .... # praudit /dev/auditpipe .... -По умолчанию, потоки доступны только пользователю `root`. Чтобы сделать их доступными членам группы `audit`, добавьте правило `devfs` в файл [.filename]#/etc/devfs.rules#: +По умолчанию узлы устройств потоков аудита доступны только пользователю `root`. Чтобы сделать их доступными для членов группы `audit`, добавьте правило `devfs` в [.filename]#/etc/devfs.rules#: [.programlisting] .... add path 'auditpipe*' mode 0440 group audit .... -Обратитесь к man:devfs.rules[5] за более полной информацией о настройке файловой системы `devfs`. +За дополнительной информацией о настройке файловой системы devfs см. man:devfs.rules[5]. [WARNING] ==== - -Довольно легко создать зацикленный поток событий аудита, в котором просмотр каждого события порождает несколько событий аудита. Например, если аудиту подвергаются все операции сетевого ввода-вывода, и команда `praudit` запущена во время SSH-сессии, то будет сгенерирован интенсивный поток сообщений аудита, так как каждое печатаемое событие вызовет еще одно событие. По этой причине рекомендуется запускать `praudit` на устройстве потока только из сессий, для которых нет детального аудита ввода-вывода. +Легко создать циклы обратной связи с событиями аудита, когда просмотр каждого события аудита приводит к генерации новых событий аудита. Например, если аудируется весь сетевой ввод-вывод, и `praudit` запускается из сессии SSH, будет создаваться непрерывный поток событий аудита с высокой скоростью, так как каждое выводимое событие будет генерировать новое событие. По этой причине рекомендуется запускать `praudit` на устройстве аудит-канала из сеансов без детального аудита ввода-вывода. ==== -=== Ротация и сжатие журнальных файлов аудита +=== Ротация и сжатие файлов журнала аудита -Журнал аудита пишется ядром и управляется демоном аудита man:auditd[8]. Администраторам не следует пытаться использовать man:newsyslog.conf[5] или другие инструменты для прямой ротации логов. Вместо этого, для прекращения аудита, реконфигурации и ротации журнальных файлов должна использоваться команда `audit`. Следующая команда приведет к созданию нового журнального файла и даст указание ядру переключиться на запись в этот файл. Протоколирование в старый файл будет прекращено, а сам файл - переименован, в результате чего с ним можно будет работать администратору: +Журналы аудита создаются ядром и управляются демоном аудита man:auditd[8]. Администраторам не следует пытаться использовать man:newsyslog.conf[5] или другие инструменты для непосредственной ротации журналов аудита. Вместо этого следует использовать `audit` для остановки аудита, переконфигурации системы аудита и выполнения ротации журналов. Следующая команда заставляет демон аудита создать новый журнал аудита и передать ядру сигнал о переходе на использование нового журнала. Старый журнал будет завершен и переименован, после чего администратор может выполнить с ним необходимые действия: -[source,shell] +[source, shell] .... # audit -n .... -Если man:auditd[8] не запущен, то эта команда окончится неудачей, и будет выведено сообщение об ошибке. +Если man:auditd[8] в данный момент не запущен, эта команда завершится ошибкой и будет выведено сообщение об ошибке. -Добавление следующей строки в файл [.filename]#/etc/crontab# приведет к ротации каждые двенадцать часов: +Добавление следующей строки в [.filename]#/etc/crontab# позволит выполнять эту ротацию каждые двенадцать часов: [.programlisting] .... 0 */12 * * * root /usr/sbin/audit -n .... -Изменения вступят в силу после сохранения файла [.filename]#/etc/crontab#. +Изменение вступит в силу после сохранения файла [.filename]#/etc/crontab#. -Автоматическая ротация журнальных файлов на основании их размера возможна при использовании опции `filesz` в файле [.filename]#audit_control#, которая описана в <<audit-auditcontrol>>. +Автоматическая ротация файла журнала аудита на основе размера файла возможна с использованием `filesz` в [.filename]#audit_control#, как описано в crossref:audit[audit-auditcontrol,Файл audit_control]. -Поскольку журнальные файлы могут достигать очень больших размеров, может возникнуть необходимость сжимать их в целях хранения сразу же после закрытия их демоном аудита. Для выполнения определенных пользователем действий, соответствующих разнообразным событиям системы аудита, включая нормальное завершение журналов аудита при их ротации, может быть использован скрипт [.filename]#audit_warn#. Например, добавление следующих строк в файл [.filename]#/etc/security/audit_warn# приведет к сжатию файла аудита после его закрытия: +Поскольку файлы журналов аудита могут становиться очень большими, часто возникает необходимость сжимать или архивировать их после закрытия демоном аудита. Скрипт [.filename]#audit_warn# можно использовать для выполнения пользовательских операций при различных событиях, связанных с аудитом, включая корректное завершение журналов при их ротации. Например, следующее можно добавить в [.filename]#/etc/security/audit_warn# для сжатия журналов аудита после закрытия: [.programlisting] .... @@ -401,8 +399,8 @@ add path 'auditpipe*' mode 0440 group audit # Compress audit trail files on close. # if [ "$1" = closefile ]; then - gzip -9 $2 + gzip -9 $2 fi .... -Примерами других действий могут быть копирование файлов аудита на централизованный сервер, удаление старых журнальных файлов, фильтрация журнальных файлов для удаления ненужных записей. Скрипт будет запущен только при корректном закрытии журнала системой аудита и не запустится для журнальных файлов, запись в которые была прекращена в результате некорректного завершения. +Другие действия по архивированию могут включать копирование файлов журналов на централизованный сервер, удаление старых файлов журналов или сокращение журнала аудита для удаления ненужных записей. Этот скрипт будет выполняться только тогда, когда файлы журналов аудита корректно завершены. Он не будет выполняться для журналов, оставшихся незавершёнными после некорректного завершения работы. diff --git a/documentation/content/ru/books/handbook/audit/_index.po b/documentation/content/ru/books/handbook/audit/_index.po new file mode 100644 index 0000000000..b001ed8a13 --- /dev/null +++ b/documentation/content/ru/books/handbook/audit/_index.po @@ -0,0 +1,1478 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-09-26 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookaudit_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/audit/_index.adoc:1 +#, no-wrap +msgid "FreeBSD security event auditing supports reliable, fine-grained, and configurable logging of a variety of security-relevant system events, including logins, configuration changes, and file and network access" +msgstr "В FreeBSD поддерживается аудит событий безопасности, обеспечивающий надежное, детализированное и настраиваемое журналирование различных системных событий, связанных с безопасностью, включая входы в систему, изменения конфигурации, а также доступ к файлам и сети" + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/audit/_index.adoc:1 +#, no-wrap +msgid "Part III. System Administration" +msgstr "Часть III. Администрирование системы" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/audit/_index.adoc:1 +#, no-wrap +msgid "Chapter 19. Security Event Auditing" +msgstr "Глава 19. Аудит событий безопасности" + +#. type: Title = +#: documentation/content/en/books/handbook/audit/_index.adoc:15 +#, no-wrap +msgid "Security Event Auditing" +msgstr "Аудит событий безопасности" + +#. type: Title == +#: documentation/content/en/books/handbook/audit/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:59 +msgid "" +"The FreeBSD operating system includes support for security event auditing. " +"Event auditing supports reliable, fine-grained, and configurable logging of " +"a variety of security-relevant system events, including logins, " +"configuration changes, and file and network access. These log records can " +"be invaluable for live system monitoring, intrusion detection, and " +"postmortem analysis. FreeBSD implements Sun(TM)'s published Basic Security " +"Module (BSM) Application Programming Interface (API) and file format, and is " +"interoperable with the Solaris(TM) and Mac OS(R) X audit implementations." +msgstr "" +"Операционная система FreeBSD включает поддержку аудита событий безопасности. " +"Аудит событий обеспечивает надежное, детализированное и настраиваемое " +"журналирование различных системных событий, связанных с безопасностью, " +"включая входы в систему, изменения конфигурации, доступ к файлам и сети. Эти " +"записи журнала могут быть неоценимыми для мониторинга системы в реальном " +"времени, обнаружения вторжений и \"посмертного\" анализа после краха " +"системы. FreeBSD реализует опубликованный Sun(TM) программный интерфейс " +"Basic Security Module (BSM) и формат файлов, и также совместима с " +"реализациями аудита Solaris(TM) и Mac OS(R) X." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:62 +msgid "" +"This chapter focuses on the installation and configuration of event " +"auditing. It explains audit policies and provides an example audit " +"configuration." +msgstr "" +"Эта глава посвящена установке и настройке аудита событий. В ней объясняются " +"политики аудита и приводится пример конфигурации аудита." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:64 +msgid "After reading this chapter, you will know:" +msgstr "Прочитав эту главу, вы будете знать:" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:66 +msgid "What event auditing is and how it works." +msgstr "Что такое аудит событий и как он работает." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:67 +msgid "How to configure event auditing on FreeBSD for users and processes." +msgstr "Как настроить аудит событий в FreeBSD для пользователей и процессов." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:68 +msgid "" +"How to review the audit trail using the audit reduction and review tools." +msgstr "" +"Как просмотреть журнал аудита с использованием инструментов сокращения и " +"просмотра аудита." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:70 +msgid "Before reading this chapter, you should:" +msgstr "Прежде чем читать эту главу, вы должны:" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:72 +msgid "" +"Understand UNIX(R) and FreeBSD basics (crossref:basics[basics,FreeBSD " +"Basics])." +msgstr "" +"Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics,Основы FreeBSD])." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:73 +msgid "" +"Be familiar with the basics of kernel configuration/compilation " +"(crossref:kernelconfig[kernelconfig,Configuring the FreeBSD Kernel])." +msgstr "" +"Быть знакомым с основами настройки и компиляции ядра " +"(crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD])." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:74 +msgid "" +"Have some familiarity with security and how it pertains to FreeBSD " +"(crossref:security[security,Security])." +msgstr "" +"Иметь некоторое представление о безопасности и о том, как она относится к " +"FreeBSD (crossref:security[security,Безопасность])." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:79 +msgid "" +"The audit facility has some known limitations. Not all security-relevant " +"system events are auditable and some login mechanisms, such as Xorg-based " +"display managers and third-party daemons, do not properly configure auditing " +"for user login sessions." +msgstr "" +"У системы аудита есть несколько известных ограничений. Не все связанные с " +"безопасностью системные события подлежат аудиту, а некоторые механизмы " +"входа, такие как дисплейные менеджеры на основе Xorg и сторонние демоны, не " +"настраивают аудит для сеансов пользовательского входа должным образом." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:84 +msgid "" +"The security event auditing facility is able to generate very detailed logs " +"of system activity. On a busy system, trail file data can be very large " +"when configured for high detail, exceeding gigabytes a week in some " +"configurations. Administrators should take into account the disk space " +"requirements associated with high volume audit configurations. For example, " +"it may be desirable to dedicate a file system to [.filename]#/var/audit# so " +"that other file systems are not affected if the audit file system becomes " +"full." +msgstr "" +"Система аудита событий безопасности способна создавать очень подробные " +"журналы активности системы. На загруженной системе данные файлов журналов " +"могут быть очень большими при настройке высокой детализации, в некоторых " +"конфигурациях превышая гигабайты в неделю. Администраторы должны учитывать " +"требования к дисковому пространству, связанные с конфигурациями аудита с " +"высоким объемом данных. Например, может быть целесообразно выделить " +"отдельную файловую систему для [.filename]#/var/audit#, чтобы другие " +"файловые системы не пострадали, если файловая система аудита переполнится." + +#. type: Title == +#: documentation/content/en/books/handbook/audit/_index.adoc:87 +#, no-wrap +msgid "Key Terms" +msgstr "Ключевые термины" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:90 +msgid "The following terms are related to security event auditing:" +msgstr "Следующие термины связаны с аудитом событий безопасности:" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:92 +msgid "" +"_event_: an auditable event is any event that can be logged using the audit " +"subsystem. Examples of security-relevant events include the creation of a " +"file, the building of a network connection, or a user logging in. Events are " +"either \"attributable\", meaning that they can be traced to an authenticated " +"user, or \"non-attributable\". Examples of non-attributable events are any " +"events that occur before authentication in the login process, such as bad " +"password attempts." +msgstr "" +"_событие (event)_: аудируемое событие — это любое событие, которое может " +"быть зарегистрировано с помощью подсистемы аудита. Примерами событий, " +"связанных с безопасностью, являются создание файла, установка сетевого " +"соединения или вход пользователя в систему. События могут быть " +"\"приписываемые\", то есть их можно отследить до аутентифицированного " +"пользователя, или \"неприписываемые\". Примерами неприписываемых событий " +"являются любые события, происходящие до аутентификации в процессе входа в " +"систему, например, неудачные попытки ввода пароля." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:93 +msgid "" +"_class_: a named set of related events which are used in selection " +"expressions. Commonly used classes of events include \"file creation\" (fc), " +"\"exec\" (ex), and \"login_logout\" (lo)." +msgstr "" +"_класс (class)_: именованный набор связанных событий, используемых в " +"выражениях выбора. Распространённые классы событий включают \"создание " +"файла\" (fc), \"выполнение\" (ex) и \"вход/выход\" (lo)." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:94 +msgid "" +"_record_: an audit log entry describing a security event. Records contain a " +"record event type, information on the subject (user) performing the action, " +"date and time information, information on any objects or arguments, and a " +"success or failure condition." +msgstr "" +"_запись (record)_: запись в журнале аудита, описывающая событие " +"безопасности. Записи содержат тип события, информацию о субъекте " +"(пользователе), выполняющем действие, данные о дате и времени, информацию об " +"объектах или аргументах, а также указание на успешность или неудачу " +"выполнения." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:95 +msgid "" +"_trail_: a log file consisting of a series of audit records describing " +"security events. Trails are in roughly chronological order with respect to " +"the time events completed. Only authorized processes are allowed to commit " +"records to the audit trail." +msgstr "" +"_журнал (trail)_: файл журнала, состоящий из серии записей аудита, " +"описывающих события безопасности. Записи в журнале расположены в " +"приблизительном хронологическом порядке относительно времени завершения " +"событий. Только авторизованные процессы имеют право добавлять записи в " +"журнал аудита." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:96 +msgid "" +"_selection expression_: a string containing a list of prefixes and audit " +"event class names used to match events." +msgstr "" +"_выражение выбора (selection expression)_: строка, содержащая список " +"префиксов и имен классов событий аудита, используемых для сопоставления " +"событий." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:97 +msgid "" +"_preselection_: the process by which the system identifies which events are " +"of interest to the administrator. The preselection configuration uses a " +"series of selection expressions to identify which classes of events to audit " +"for which users, as well as global settings that apply to both authenticated " +"and unauthenticated processes." +msgstr "" +"_предварительный выбор (preselection)_: процесс, в ходе которого система " +"определяет, какие события представляют интерес для администратора. " +"Конфигурация предварительного отбора использует ряд выражений выбора для " +"определения классов событий, подлежащих аудиту для конкретных пользователей, " +"а также глобальные настройки, применяемые как к авторизованным, так и к " +"неавторизованным процессам." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:98 +msgid "" +"_reduction_: the process by which records from existing audit trails are " +"selected for preservation, printing, or analysis. Likewise, the process by " +"which undesired audit records are removed from the audit trail. Using " +"reduction, administrators can implement policies for the preservation of " +"audit data. For example, detailed audit trails might be kept for one month, " +"but after that, trails might be reduced in order to preserve only login " +"information for archival purposes." +msgstr "" +"_фильтрация (reduction)_: процесс выбора записей из существующих журналов " +"аудита для сохранения, печати или анализа. Аналогично, процесс удаления " +"нежелательных записей аудита из журнала. Используя сокращение, " +"администраторы могут реализовать политики сохранения данных аудита. " +"Например, детальные журналы аудита могут храниться в течение одного месяца, " +"но после этого они могут быть сокращены, чтобы сохранить только информацию о " +"входах в систему для архивных целей." + +#. type: Title == +#: documentation/content/en/books/handbook/audit/_index.adoc:100 +#, no-wrap +msgid "Audit Configuration" +msgstr "Настройка аудита" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:104 +msgid "" +"User space support for event auditing is installed as part of the base " +"FreeBSD operating system. Kernel support is available in the " +"[.filename]#GENERIC# kernel by default, and man:auditd[8] can be enabled by " +"adding the following line to [.filename]#/etc/rc.conf#:" +msgstr "" +"Поддержка аудита событий в пользовательском пространстве устанавливается как " +"часть базовой операционной системы FreeBSD. Поддержка на уровне ядра " +"доступна в ядре [.filename]#GENERIC# по умолчанию, и man:auditd[8] может " +"быть включен добавлением следующей строки в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:108 +#, no-wrap +msgid "auditd_enable=\"YES\"\n" +msgstr "auditd_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:111 +msgid "Then, start the audit daemon:" +msgstr "Затем запустите демон аудита:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:115 +#, no-wrap +msgid "# service auditd start\n" +msgstr "# service auditd start\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:118 +msgid "" +"Users who prefer to compile a custom kernel must include the following line " +"in their custom kernel configuration file:" +msgstr "" +"Пользователи, предпочитающие компилировать собственное ядро, должны включить " +"следующую строку в файл конфигурации своего ядра:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:122 +#, no-wrap +msgid "options\tAUDIT\n" +msgstr "options\tAUDIT\n" + +#. type: Title === +#: documentation/content/en/books/handbook/audit/_index.adoc:124 +#, no-wrap +msgid "Event Selection Expressions" +msgstr "Выражения выбора событий" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:129 +msgid "" +"Selection expressions are used in a number of places in the audit " +"configuration to determine which events should be audited. Expressions " +"contain a list of event classes to match. Selection expressions are " +"evaluated from left to right, and two expressions are combined by appending " +"one onto the other." +msgstr "" +"Выражения выбора используются в нескольких местах конфигурации аудита для " +"определения, какие события должны аудироваться. Выражения содержат список " +"классов событий для сопоставления. Выражения выбора вычисляются слева " +"направо, а два выражения объединяются путем добавления одного к другому." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:131 +msgid "" +"crossref:audit[event-selection,Default Audit Event Classes] summarizes the " +"default audit event classes:" +msgstr "" +"crossref:audit[event-selection,Классы событий аудита по умолчанию] содержит " +"сводку классов событий аудита по умолчанию:" + +#. type: Block title +#: documentation/content/en/books/handbook/audit/_index.adoc:133 +#, no-wrap +msgid "Default Audit Event Classes" +msgstr "Классы событий аудита по умолчанию" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:137 +#, no-wrap +msgid "Class Name" +msgstr "Имя класса" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:138 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:140 +#: documentation/content/en/books/handbook/audit/_index.adoc:233 +#, no-wrap +msgid "Action" +msgstr "Действие" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:141 +#: documentation/content/en/books/handbook/audit/_index.adoc:142 +#, no-wrap +msgid "all" +msgstr "all" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:144 +#, no-wrap +msgid "Match all event classes." +msgstr "Совпадает со всеми классами событий." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:145 +#, no-wrap +msgid "aa" +msgstr "aa" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:146 +#, no-wrap +msgid "authentication and authorization" +msgstr "authentication and authorization" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:149 +#, no-wrap +msgid "ad" +msgstr "ad" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:150 +#, no-wrap +msgid "administrative" +msgstr "administrative" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:152 +#, no-wrap +msgid "Administrative actions performed on the system as a whole." +msgstr "Административные действия, выполняемые с системой в целом." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:153 +#, no-wrap +msgid "ap" +msgstr "ap" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:154 +#, no-wrap +msgid "application" +msgstr "application" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:156 +#, no-wrap +msgid "Application defined action." +msgstr "Определенное приложением действие." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:157 +#, no-wrap +msgid "cl" +msgstr "cl" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:158 +#, no-wrap +msgid "file close" +msgstr "file close" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:160 +#, no-wrap +msgid "Audit calls to the `close` system call." +msgstr "Аудит вызовов системного вызова `close`." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:161 +#, no-wrap +msgid "ex" +msgstr "ex" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:162 +#, no-wrap +msgid "exec" +msgstr "exec" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:164 +#, no-wrap +msgid "Audit program execution. Auditing of command line arguments and environmental variables is controlled via man:audit_control[5] using the `argv` and `envv` parameters to the `policy` setting." +msgstr "Аудит выполнения программ. Аудит аргументов командной строки и переменных окружения контролируется через man:audit_control[5] с использованием параметров `argv` и `envv` в настройке `policy`." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:165 +#, no-wrap +msgid "fa" +msgstr "fa" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:166 +#, no-wrap +msgid "file attribute access" +msgstr "file attribute access" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:168 +#, no-wrap +msgid "Audit the access of object attributes such as man:stat[1] and man:pathconf[2]." +msgstr "Аудит доступа к атрибутам объектов, таким как man:stat[1] и man:pathconf[2]." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:169 +#, no-wrap +msgid "fc" +msgstr "fc" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:170 +#, no-wrap +msgid "file create" +msgstr "file create" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:172 +#, no-wrap +msgid "Audit events where a file is created as a result." +msgstr "События аудита, в результате которых создается файл." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:173 +#, no-wrap +msgid "fd" +msgstr "fd" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:174 +#, no-wrap +msgid "file delete" +msgstr "file delete" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:176 +#, no-wrap +msgid "Audit events where file deletion occurs." +msgstr "Аудит событий, в которых происходит удаление файлов." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:177 +#, no-wrap +msgid "fm" +msgstr "fm" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:178 +#, no-wrap +msgid "file attribute modify" +msgstr "file attribute modify" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:180 +#, no-wrap +msgid "Audit events where file attribute modification occurs, such as by man:chown[8], man:chflags[1], and man:flock[2]." +msgstr "События аудита, связанные с изменением атрибутов файлов, например, с помощью man:chown[8], man:chflags[1] и man:flock[2]." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:181 +#, no-wrap +msgid "fr" +msgstr "fr" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:182 +#, no-wrap +msgid "file read" +msgstr "file read" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:184 +#, no-wrap +msgid "Audit events in which data is read or files are opened for reading." +msgstr "События аудита, в которых данные читаются или файлы открываются для чтения." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:185 +#, no-wrap +msgid "fw" +msgstr "fw" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:186 +#, no-wrap +msgid "file write" +msgstr "file write" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:188 +#, no-wrap +msgid "Audit events in which data is written or files are written or modified." +msgstr "События аудита, в которых данные записываются или файлы создаются либо изменяются." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:189 +#, no-wrap +msgid "io" +msgstr "io" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:190 +#, no-wrap +msgid "ioctl" +msgstr "ioctl" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:192 +#, no-wrap +msgid "Audit use of the `ioctl` system call." +msgstr "Контроль использования системного вызова `ioctl`." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:193 +#, no-wrap +msgid "ip" +msgstr "ip" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:194 +#, no-wrap +msgid "ipc" +msgstr "ipc" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:196 +#, no-wrap +msgid "Audit various forms of Inter-Process Communication, including POSIX pipes and System V IPC operations." +msgstr "Аудит различных форм межпроцессного взаимодействия, включая POSIX-каналы и операции System V IPC." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:197 +#, no-wrap +msgid "lo" +msgstr "lo" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:198 +#, no-wrap +msgid "login_logout" +msgstr "login_logout" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:200 +#, no-wrap +msgid "Audit man:login[1] and man:logout[1] events." +msgstr "Audit man:login[1] и man:logout[1] события." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:201 +#, no-wrap +msgid "na" +msgstr "na" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:202 +#, no-wrap +msgid "non attributable" +msgstr "non attributable" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:204 +#, no-wrap +msgid "Audit non-attributable events." +msgstr "Аудит неприписываемых событий." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:205 +#, no-wrap +msgid "no" +msgstr "no" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:206 +#, no-wrap +msgid "invalid class" +msgstr "ошибочный класс" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:208 +#, no-wrap +msgid "Match no audit events." +msgstr "Не соответствует ни одному событию аудита." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:209 +#, no-wrap +msgid "nt" +msgstr "nt" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:210 +#, no-wrap +msgid "network" +msgstr "network" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:212 +#, no-wrap +msgid "Audit events related to network actions such as man:connect[2] and man:accept[2]." +msgstr "События аудита, связанные с сетевыми действиями, такими как man:connect[2] и man:accept[2]." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:213 +#, no-wrap +msgid "ot" +msgstr "ot" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:214 +#, no-wrap +msgid "other" +msgstr "other" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:216 +#, no-wrap +msgid "Audit miscellaneous events." +msgstr "Аудит различных событий." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:217 +#, no-wrap +msgid "pc" +msgstr "pc" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:218 +#, no-wrap +msgid "process" +msgstr "process" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:219 +#, no-wrap +msgid "Audit process operations such as man:exec[3] and man:exit[3]." +msgstr "Аудит операций процессов, таких как man:exec[3] и man:exit[3]." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:222 +msgid "" +"These audit event classes may be customized by modifying the " +"[.filename]#audit_class# and [.filename]#audit_event# configuration files." +msgstr "" +"Эти классы событий аудита могут быть настроены путем изменения " +"конфигурационных файлов [.filename]#audit_class# и [.filename]#audit_event#." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:225 +msgid "" +"Each audit event class may be combined with a prefix indicating whether " +"successful/failed operations are matched, and whether the entry is adding or " +"removing matching for the class and type. crossref:audit[event-" +"prefixes,Prefixes for Audit Event Classes] summarizes the available prefixes:" +msgstr "" +"Каждый класс событий аудита может быть объединен с префиксом, указывающим, " +"соответствуют ли успешные/неудачные операции, и добавляется или удаляется " +"запись для соответствия классу и типу. В crossref:audit[event-" +"prefixes,Префиксы для классов событий аудита] приведены доступные префиксы:" + +#. type: Block title +#: documentation/content/en/books/handbook/audit/_index.adoc:227 +#, no-wrap +msgid "Prefixes for Audit Event Classes" +msgstr "Префиксы для классов событий аудита" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:231 +#, no-wrap +msgid "Prefix" +msgstr "Префикс" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:234 +#, no-wrap +msgid "+" +msgstr "+" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:236 +#, no-wrap +msgid "Audit successful events in this class." +msgstr "Аудит успешных событий в этом классе." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:237 +#, no-wrap +msgid "-" +msgstr "-" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:239 +#, no-wrap +msgid "Audit failed events in this class." +msgstr "Аудит неудачных событий в этом классе." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:240 +#, no-wrap +msgid "^" +msgstr "^" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:242 +#, no-wrap +msgid "Audit neither successful nor failed events in this class." +msgstr "Не аудировать ни успешные, ни неудачные события в этом классе." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:243 +#, no-wrap +msgid "^+" +msgstr "^+" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:245 +#, no-wrap +msgid "Do not audit successful events in this class." +msgstr "Не аудировать успешные события в данном классе." + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:246 +#, no-wrap +msgid "^-" +msgstr "^-" + +#. type: Table +#: documentation/content/en/books/handbook/audit/_index.adoc:247 +#, no-wrap +msgid "Do not audit failed events in this class." +msgstr "Не аудировать неудачные события в этом классе." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:250 +msgid "" +"If no prefix is present, both successful and failed instances of the event " +"will be audited." +msgstr "" +"Если префикс отсутствует, будут аудироваться как успешные, так и неудачные " +"экземпляры события." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:252 +msgid "" +"The following example selection string selects both successful and failed " +"login/logout events, but only successful execution events:" +msgstr "" +"Следующая строка выбора выбирает как успешные, так и неудачные события входа/" +"выхода, но только успешные события выполнения:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:256 +#, no-wrap +msgid "lo,+ex\n" +msgstr "lo,+ex\n" + +#. type: Title === +#: documentation/content/en/books/handbook/audit/_index.adoc:258 +#, no-wrap +msgid "Configuration Files" +msgstr "Файлы конфигурации" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:261 +msgid "" +"The following configuration files for security event auditing are found in " +"[.filename]#/etc/security#:" +msgstr "" +"В каталоге [.filename]#/etc/security# находятся следующие файлы конфигурации " +"для аудита событий безопасности:" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:263 +msgid "" +"[.filename]#audit_class#: contains the definitions of the audit classes." +msgstr "[.filename]#audit_class#: содержит определения классов аудита." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:264 +msgid "" +"[.filename]#audit_control#: controls aspects of the audit subsystem, such as " +"default audit classes, minimum disk space to leave on the audit log volume, " +"and maximum audit trail size." +msgstr "" +"[.filename]#audit_control#: управляет аспектами подсистемы аудита, такими " +"как классы аудита по умолчанию, минимальное свободное место на томе с " +"журналом аудита и максимальный размер журнала аудита." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:265 +msgid "" +"[.filename]#audit_event#: textual names and descriptions of system audit " +"events and a list of which classes each event is in." +msgstr "" +"[.filename]#audit_event#: текстовые названия и описания системных событий " +"аудита, а также список классов, к которым относится каждое событие." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:266 +msgid "" +"[.filename]#audit_user#: user-specific audit requirements to be combined " +"with the global defaults at login." +msgstr "" +"[.filename]#audit_user#: пользовательские требования аудита, которые " +"объединяются с глобальными настройками по умолчанию при входе в систему." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:267 +msgid "" +"[.filename]#audit_warn#: a customizable shell script used by man:auditd[8] " +"to generate warning messages in exceptional situations, such as when space " +"for audit records is running low or when the audit trail file has been " +"rotated." +msgstr "" +"[.filename]#audit_warn#: настраиваемый сценарий оболочки, используемый " +"man:auditd[8] для генерации предупреждающих сообщений в исключительных " +"ситуациях, например, когда заканчивается место для записей аудита или когда " +"файл журнала аудита был перезаписан." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:271 +msgid "" +"Audit configuration files should be edited and maintained carefully, as " +"errors in configuration may result in improper logging of events." +msgstr "" +"Файлы конфигурации аудита следует редактировать и поддерживать тщательно, " +"так как ошибки в конфигурации могут привести к некорректной записи событий." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:275 +msgid "" +"In most cases, administrators will only need to modify " +"[.filename]#audit_control# and [.filename]#audit_user#. The first file " +"controls system-wide audit properties and policies and the second file may " +"be used to fine-tune auditing by user." +msgstr "" +"В большинстве случаев администраторам потребуется изменить только файлы " +"[.filename]#audit_control# и [.filename]#audit_user#. Первый файл управляет " +"системными настройками и политиками аудита, а второй может использоваться " +"для тонкой настройки аудита по пользователям." + +#. type: Title ==== +#: documentation/content/en/books/handbook/audit/_index.adoc:277 +#, no-wrap +msgid "The [.filename]#audit_control# File" +msgstr "Файл [.filename]#audit_control#" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:280 +msgid "" +"A number of defaults for the audit subsystem are specified in " +"[.filename]#audit_control#:" +msgstr "" +"Некоторые параметры подсистемы аудита по умолчанию указаны в файле " +"[.filename]#audit_control#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:291 +#, no-wrap +msgid "" +"dir:/var/audit\n" +"dist:off\n" +"flags:lo,aa\n" +"minfree:5\n" +"naflags:lo,aa\n" +"policy:cnt,argv\n" +"filesz:2M\n" +"expire-after:10M\n" +msgstr "" +"dir:/var/audit\n" +"dist:off\n" +"flags:lo,aa\n" +"minfree:5\n" +"naflags:lo,aa\n" +"policy:cnt,argv\n" +"filesz:2M\n" +"expire-after:10M\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:296 +msgid "" +"The `dir` entry is used to set one or more directories where audit logs will " +"be stored. If more than one directory entry appears, they will be used in " +"order as they fill. It is common to configure audit so that audit logs are " +"stored on a dedicated file system, in order to prevent interference between " +"the audit subsystem and other subsystems if the file system fills." +msgstr "" +"Запись `dir` используется для указания одного или нескольких каталогов, в " +"которых будут храниться журналы аудита. Если указано несколько каталогов, " +"они будут использоваться по очереди по мере заполнения. Обычно настраивают " +"аудит так, чтобы журналы хранились на выделенной файловой системе — это " +"предотвращает конфликты между подсистемой аудита и другими подсистемами при " +"заполнении файловой системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:298 +msgid "" +"If the `dist` field is set to `on` or `yes`, hard links will be created to " +"all trail files in [.filename]#/var/audit/dist#." +msgstr "" +"Если поле `dist` установлено в `on` или `yes`, жесткие ссылки будут созданы " +"для всех файлов журнала в [.filename]#/var/audit/dist#." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:301 +msgid "" +"The `flags` field sets the system-wide default preselection mask for " +"attributable events. In the example above, successful and failed login/" +"logout events as well as authentication and authorization are audited for " +"all users." +msgstr "" +"Поле `flags` устанавливает системную маску предварительного выбора по " +"умолчанию для учитываемых событий. В приведённом примере аудиту подлежат " +"успешные и неудачные события входа/выхода, а также аутентификация и " +"авторизация для всех пользователей." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:303 +msgid "" +"The `minfree` entry defines the minimum percentage of free space for the " +"file system where the audit trail is stored." +msgstr "" +"Запись `minfree` определяет минимальный процент свободного места в файловой " +"системе, где хранится журнал аудита." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:305 +msgid "" +"The `naflags` entry specifies audit classes to be audited for non-attributed " +"events, such as the login/logout process and authentication and " +"authorization." +msgstr "" +"Запись `naflags` определяет классы аудита для событий без атрибутов, таких " +"как процесс входа/выхода, аутентификация и авторизация." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:309 +msgid "" +"The `policy` entry specifies a comma-separated list of policy flags " +"controlling various aspects of audit behavior. The `cnt` indicates that the " +"system should continue running despite an auditing failure (this flag is " +"highly recommended). The other flag, `argv`, causes command line arguments " +"to the man:execve[2] system call to be audited as part of command execution." +msgstr "" +"Запись `policy` определяет список флагов политики, разделённых запятыми, " +"которые контролируют различные аспекты поведения аудита. Флаг `cnt` " +"указывает, что система должна продолжать работу, несмотря на сбой аудита " +"(этот флаг настоятельно рекомендуется). Другой флаг, `argv`, приводит к " +"аудиту аргументов командной строки системного вызова man:execve[2] как части " +"выполнения команды." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:313 +msgid "" +"The `filesz` entry specifies the maximum size for an audit trail before " +"automatically terminating and rotating the trail file. A value of `0` " +"disables automatic log rotation. If the requested file size is below the " +"minimum of 512k, it will be ignored and a log message will be generated." +msgstr "" +"`filesz` указывает максимальный размер файла аудита перед автоматическим " +"завершением и ротацией файла. Значение `0` отключает автоматическую ротацию " +"логов. Если запрашиваемый размер файла меньше минимального значения в 512k, " +"он будет проигнорирован, и будет сгенерировано сообщение в логе." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:315 +msgid "" +"The `expire-after` field specifies when audit log files will expire and be " +"removed." +msgstr "" +"Поле `expire-after` указывает, когда файлы журналов аудита устареют и будут " +"удалены." + +#. type: Title ==== +#: documentation/content/en/books/handbook/audit/_index.adoc:317 +#, no-wrap +msgid "The [.filename]#audit_user# File" +msgstr "Файл [.filename]#audit_user#" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:321 +msgid "" +"The administrator can specify further audit requirements for specific users " +"in [.filename]#audit_user#. Each line configures auditing for a user via " +"two fields: the `alwaysaudit` field specifies a set of events that should " +"always be audited for the user, and the `neveraudit` field specifies a set " +"of events that should never be audited for the user." +msgstr "" +"Администратор может указать дополнительные требования аудита для конкретных " +"пользователей в файле [.filename]#audit_user#. Каждая строка настраивает " +"аудит для пользователя с помощью двух полей: поле `alwaysaudit` определяет " +"набор событий, которые всегда должны аудироваться для пользователя, а поле " +"`neveraudit` определяет набор событий, которые никогда не должны " +"аудироваться для пользователя." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:324 +msgid "" +"The following example entries audit login/logout events and successful " +"command execution for `root` and file creation and successful command " +"execution for `www`. If used with the default [.filename]#audit_control#, " +"the `lo` entry for `root` is redundant, and login/logout events will also be " +"audited for `www`." +msgstr "" +"Следующие примеры записей аудита фиксируют события входа/выхода и успешного " +"выполнения команд для пользователя `root`, а также создание файлов и " +"успешное выполнение команд для пользователя `www`. Если используется файл " +"[.filename]#audit_control# по умолчанию, запись `lo` для `root` избыточна, и " +"события входа/выхода также будут фиксироваться для `www`." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:329 +#, no-wrap +msgid "" +"root:lo,+ex:no\n" +"www:fc,+ex:no\n" +msgstr "" +"root:lo,+ex:no\n" +"www:fc,+ex:no\n" + +#. type: Title == +#: documentation/content/en/books/handbook/audit/_index.adoc:332 +#, no-wrap +msgid "Working with Audit Trails" +msgstr "Работа с журналами аудита" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:338 +msgid "" +"Since audit trails are stored in the BSM binary format, several built-in " +"tools are available to modify or convert these trails to text. To convert " +"trail files to a simple text format, use `praudit`. To reduce the audit " +"trail file for analysis, archiving, or printing purposes, use " +"`auditreduce`. This utility supports a variety of selection parameters, " +"including event type, event class, user, date or time of the event, and the " +"file path or object acted on." +msgstr "" +"Поскольку записи аудита хранятся в двоичном формате BSM, для их изменения " +"или преобразования в текстовый формат доступны встроенные инструменты. Для " +"преобразования файлов записей в простой текстовый формат используйте " +"`praudit`. Для сокращения файла записей аудита с целью анализа, " +"архивирования или печати используйте `auditreduce`. Эта утилита поддерживает " +"различные параметры выбора, включая тип события, класс события, " +"пользователя, дату или время события, а также путь к файлу или объект, над " +"которым выполнялось действие." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:340 +msgid "" +"For example, to dump the entire contents of a specified audit log in plain " +"text:" +msgstr "" +"Например, чтобы вывести всё содержимое указанного журнала аудита в виде " +"обычного текста:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:344 +#, no-wrap +msgid "# praudit /var/audit/AUDITFILE\n" +msgstr "# praudit /var/audit/AUDITFILE\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:347 +msgid "Where _AUDITFILE_ is the audit log to dump." +msgstr "Где _AUDITFILE_ — файл журнала аудита для дампа." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:351 +msgid "" +"Audit trails consist of a series of audit records made up of tokens, which " +"`praudit` prints sequentially, one per line. Each token is of a specific " +"type, such as `header` (an audit record header) or `path` (a file path from " +"a name lookup). The following is an example of an `execve` event:" +msgstr "" +"Журналы аудита состоят из последовательности записей аудита, сформированных " +"из токенов, которые `praudit` выводит последовательно, по одному на строку. " +"Каждый токен имеет определённый тип, например, `header` (заголовок записи " +"аудита) или `path` (путь к файлу из поиска по имени). Ниже приведён пример " +"события `execve`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:361 +#, no-wrap +msgid "" +"header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec\n" +"exec arg,finger,doug\n" +"path,/usr/bin/finger\n" +"attribute,555,root,wheel,90,24918,104944\n" +"subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100\n" +"return,success,0\n" +"trailer,133\n" +msgstr "" +"header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec\n" +"exec arg,finger,doug\n" +"path,/usr/bin/finger\n" +"attribute,555,root,wheel,90,24918,104944\n" +"subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100\n" +"return,success,0\n" +"trailer,133\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:370 +msgid "" +"This audit represents a successful `execve` call, in which the command " +"`finger doug` has been run. The `exec arg` token contains the processed " +"command line presented by the shell to the kernel. The `path` token holds " +"the path to the executable as looked up by the kernel. The `attribute` " +"token describes the binary and includes the file mode. The `subject` token " +"stores the audit user ID, effective user ID and group ID, real user ID and " +"group ID, process ID, session ID, port ID, and login address. Notice that " +"the audit user ID and real user ID differ as the user `robert` switched to " +"the `root` account before running this command, but it is audited using the " +"original authenticated user. The `return` token indicates the successful " +"execution and the `trailer` concludes the record." +msgstr "" +"Этот аудит представляет успешный вызов `execve`, в котором была выполнена " +"команда `finger doug`. Токен `exec arg` содержит обработанную командную " +"строку, переданную оболочкой ядру. Токен `path` содержит путь к исполняемому " +"файлу, найденный ядром. Токен `attribute` описывает бинарный файл и включает " +"режим файла. Токен `subject` хранит аудитный идентификатор пользователя, " +"эффективные идентификаторы пользователя и группы, реальные идентификаторы " +"пользователя и группы, идентификатор процесса, идентификатор сессии, " +"идентификатор порта и адрес входа. Обратите внимание, что аудитный " +"идентификатор пользователя и реальный идентификатор пользователя " +"различаются, так как пользователь `robert` переключился на учетную запись " +"`root` перед выполнением этой команды, но аудит ведется с использованием " +"исходного аутентифицированного пользователя. Токен `return` указывает на " +"успешное выполнение, а `trailer` завершает запись." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:372 +msgid "" +"XML output format is also supported and can be selected by including `-x`." +msgstr "" +"Также поддерживается формат вывода XML, и он может быть выбран добавлением " +"опции `-x`." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:375 +msgid "" +"Since audit logs may be very large, a subset of records can be selected " +"using `auditreduce`. This example selects all audit records produced for " +"the user `trhodes` stored in [.filename]#AUDITFILE#:" +msgstr "" +"Поскольку журналы аудита могут быть очень большими, можно выбрать " +"подмножество записей с помощью `auditreduce`. В этом примере выбираются все " +"записи аудита, созданные для пользователя `trhodes`, хранящиеся в " +"[.filename]#AUDITFILE#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:379 +#, no-wrap +msgid "# auditreduce -u trhodes /var/audit/AUDITFILE | praudit\n" +msgstr "# auditreduce -u trhodes /var/audit/AUDITFILE | praudit\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:385 +msgid "" +"Members of the `audit` group have permission to read audit trails in " +"[.filename]#/var/audit#. By default, this group is empty, so only the " +"`root` user can read audit trails. Users may be added to the `audit` group " +"in order to delegate audit review rights. As the ability to track audit log " +"contents provides significant insight into the behavior of users and " +"processes, it is recommended that the delegation of audit review rights be " +"performed with caution." +msgstr "" +"Участники группы `audit` имеют право читать журналы аудита в [.filename]#/" +"var/audit#. По умолчанию эта группа пуста, поэтому только пользователь " +"`root` может читать журналы аудита. Пользователи могут быть добавлены в " +"группу `audit` для делегирования прав просмотра аудита. Поскольку " +"возможность отслеживать содержимое журналов аудита дает значительное " +"представление о поведении пользователей и процессов, рекомендуется " +"делегировать права просмотра аудита с осторожностью." + +#. type: Title === +#: documentation/content/en/books/handbook/audit/_index.adoc:386 +#, no-wrap +msgid "Live Monitoring Using Audit Pipes" +msgstr "Мониторинг в реальном времени с использованием потоков аудита" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:392 +msgid "" +"Audit pipes are cloning pseudo-devices which allow applications to tap the " +"live audit record stream. This is primarily of interest to authors of " +"intrusion detection and system monitoring applications. However, the audit " +"pipe device is a convenient way for the administrator to allow live " +"monitoring without running into problems with audit trail file ownership or " +"log rotation interrupting the event stream. To track the live audit event " +"stream:" +msgstr "" +"Потоки аудитные (audit pipes) являются клонируемыми псевдоустройствами, " +"которые позволяют приложениям получать доступ к потоку записей аудита в " +"реальном времени. В первую очередь это интересно разработчикам систем " +"обнаружения вторжений и мониторинга. Однако аудитное канальное устройство — " +"это удобный способ для администратора организовать мониторинг в реальном " +"времени без проблем с правами владения файлами аудита или прерывания потока " +"событий из-за ротации логов. Для отслеживания живого потока событий аудита:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:396 +#, no-wrap +msgid "# praudit /dev/auditpipe\n" +msgstr "# praudit /dev/auditpipe\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:400 +msgid "" +"By default, audit pipe device nodes are accessible only to the `root` user. " +"To make them accessible to the members of the `audit` group, add a `devfs` " +"rule to [.filename]#/etc/devfs.rules#:" +msgstr "" +"По умолчанию узлы устройств потоков аудита доступны только пользователю " +"`root`. Чтобы сделать их доступными для членов группы `audit`, добавьте " +"правило `devfs` в [.filename]#/etc/devfs.rules#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:404 +#, no-wrap +msgid "add path 'auditpipe*' mode 0440 group audit\n" +msgstr "add path 'auditpipe*' mode 0440 group audit\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:407 +msgid "" +"See man:devfs.rules[5] for more information on configuring the devfs file " +"system." +msgstr "" +"За дополнительной информацией о настройке файловой системы devfs см. " +"man:devfs.rules[5]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:413 +msgid "" +"It is easy to produce audit event feedback cycles, in which the viewing of " +"each audit event results in the generation of more audit events. For " +"example, if all network I/O is audited, and `praudit` is run from an SSH " +"session, a continuous stream of audit events will be generated at a high " +"rate, as each event being printed will generate another event. For this " +"reason, it is advisable to run `praudit` on an audit pipe device from " +"sessions without fine-grained I/O auditing." +msgstr "" +"Легко создать циклы обратной связи с событиями аудита, когда просмотр " +"каждого события аудита приводит к генерации новых событий аудита. Например, " +"если аудируется весь сетевой ввод-вывод, и `praudit` запускается из сессии " +"SSH, будет создаваться непрерывный поток событий аудита с высокой скоростью, " +"так как каждое выводимое событие будет генерировать новое событие. По этой " +"причине рекомендуется запускать `praudit` на устройстве аудит-канала из " +"сеансов без детального аудита ввода-вывода." + +#. type: Title === +#: documentation/content/en/books/handbook/audit/_index.adoc:415 +#, no-wrap +msgid "Rotating and Compressing Audit Trail Files" +msgstr "Ротация и сжатие файлов журнала аудита" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:422 +msgid "" +"Audit trails are written to by the kernel and managed by the audit daemon, " +"man:auditd[8]. Administrators should not attempt to use " +"man:newsyslog.conf[5] or other tools to directly rotate audit logs. " +"Instead, `audit` should be used to shut down auditing, reconfigure the audit " +"system, and perform log rotation. The following command causes the audit " +"daemon to create a new audit log and signal the kernel to switch to using " +"the new log. The old log will be terminated and renamed, at which point it " +"may then be manipulated by the administrator:" +msgstr "" +"Журналы аудита создаются ядром и управляются демоном аудита man:auditd[8]. " +"Администраторам не следует пытаться использовать man:newsyslog.conf[5] или " +"другие инструменты для непосредственной ротации журналов аудита. Вместо " +"этого следует использовать `audit` для остановки аудита, переконфигурации " +"системы аудита и выполнения ротации журналов. Следующая команда заставляет " +"демон аудита создать новый журнал аудита и передать ядру сигнал о переходе " +"на использование нового журнала. Старый журнал будет завершен и " +"переименован, после чего администратор может выполнить с ним необходимые " +"действия:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:426 +#, no-wrap +msgid "# audit -n\n" +msgstr "# audit -n\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:429 +msgid "" +"If man:auditd[8] is not currently running, this command will fail and an " +"error message will be produced." +msgstr "" +"Если man:auditd[8] в данный момент не запущен, эта команда завершится " +"ошибкой и будет выведено сообщение об ошибке." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:431 +msgid "" +"Adding the following line to [.filename]#/etc/crontab# will schedule this " +"rotation every twelve hours:" +msgstr "" +"Добавление следующей строки в [.filename]#/etc/crontab# позволит выполнять " +"эту ротацию каждые двенадцать часов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:435 +#, no-wrap +msgid "0 */12 * * * root /usr/sbin/audit -n\n" +msgstr "0 */12 * * * root /usr/sbin/audit -n\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:438 +msgid "The change will take effect once [.filename]#/etc/crontab# is saved." +msgstr "" +"Изменение вступит в силу после сохранения файла [.filename]#/etc/crontab#." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:442 +msgid "" +"Automatic rotation of the audit trail file based on file size is possible " +"using `filesz` in [.filename]#audit_control# as described in " +"crossref:audit[audit-auditcontrol, The audit_control File]." +msgstr "" +"Автоматическая ротация файла журнала аудита на основе размера файла возможна " +"с использованием `filesz` в [.filename]#audit_control#, как описано в " +"crossref:audit[audit-auditcontrol,Файл audit_control]." + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:446 +msgid "" +"As audit trail files can become very large, it is often desirable to " +"compress or otherwise archive trails once they have been closed by the audit " +"daemon. The [.filename]#audit_warn# script can be used to perform " +"customized operations for a variety of audit-related events, including the " +"clean termination of audit trails when they are rotated. For example, the " +"following may be added to [.filename]#/etc/security/audit_warn# to compress " +"audit trails on close:" +msgstr "" +"Поскольку файлы журналов аудита могут становиться очень большими, часто " +"возникает необходимость сжимать или архивировать их после закрытия демоном " +"аудита. Скрипт [.filename]#audit_warn# можно использовать для выполнения " +"пользовательских операций при различных событиях, связанных с аудитом, " +"включая корректное завершение журналов при их ротации. Например, следующее " +"можно добавить в [.filename]#/etc/security/audit_warn# для сжатия журналов " +"аудита после закрытия:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/audit/_index.adoc:455 +#, no-wrap +msgid "" +"#\n" +"# Compress audit trail files on close.\n" +"#\n" +"if [ \"$1\" = closefile ]; then\n" +" gzip -9 $2\n" +"fi\n" +msgstr "" +"#\n" +"# Compress audit trail files on close.\n" +"#\n" +"if [ \"$1\" = closefile ]; then\n" +" gzip -9 $2\n" +"fi\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/audit/_index.adoc:459 +msgid "" +"Other archiving activities might include copying trail files to a " +"centralized server, deleting old trail files, or reducing the audit trail to " +"remove unneeded records. This script will be run only when audit trail " +"files are cleanly terminated. It will not be run on trails left " +"unterminated following an improper shutdown." +msgstr "" +"Другие действия по архивированию могут включать копирование файлов журналов " +"на централизованный сервер, удаление старых файлов журналов или сокращение " +"журнала аудита для удаления ненужных записей. Этот скрипт будет выполняться " +"только тогда, когда файлы журналов аудита корректно завершены. Он не будет " +"выполняться для журналов, оставшихся незавершёнными после некорректного " +"завершения работы." diff --git a/documentation/content/ru/books/handbook/basics/_index.adoc b/documentation/content/ru/books/handbook/basics/_index.adoc index aae7ea47cb..af550812be 100644 --- a/documentation/content/ru/books/handbook/basics/_index.adoc +++ b/documentation/content/ru/books/handbook/basics/_index.adoc @@ -1,14 +1,14 @@ --- -title: Глава 3. Основы FreeBSD -part: Часть I. Начало работы -prev: books/handbook/bsdinstall +description: 'Основные команды и функциональные возможности операционной системы FreeBSD' next: books/handbook/ports -description: Основные команды и функциональность операционной системы FreeBSD -tags: ["основы", "виртуальные консоли", "пользователи", "управление", "полномочия", "структура каталогов", "организация диска", "монтирование", "процессы", "даемоны", "оболочка", "редактор", "страницы справочника", "устройства"] +params: + path: /books/handbook/basics/ +part: 'В начале' +prev: books/handbook/bsdinstall showBookMenu: true +tags: ["basics", "virtual consoles", "users", "management", "permissions", "directory structure", "disk organization", "mounting", "processes", "daemons", "shell", "editor", "manual pages", "devices"] +title: 'Глава 3. Основы FreeBSD' weight: 5 -params: - path: "/books/handbook/basics/" --- [[basics]] @@ -49,166 +49,128 @@ toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] -// -// The FreeBSD Russian Documentation Project -// -// Original EN revision (23.09.2024): c6f45f005306d23f396e1ec9ddff165312aad867 -// - [[basics-synopsis]] -== Краткий обзор +== Обзор -Эта глава посвящена основным командам и функциональности операционной системы FreeBSD. -Большая часть нижеизложенного материала применима к любой UNIX(R)-подобной операционной системе. -Новые пользователи FreeBSD призываются к внимательному чтению всей главы. +В этой главе рассматриваются основные команды и функциональные возможности операционной системы FreeBSD. Большая часть материала применима к любым UNIX(R)-подобным операционным системам. Новым пользователям FreeBSD рекомендуется внимательно ознакомиться с этой главой. Прочитав эту главу, вы будете знать: * Как использовать и настраивать виртуальные консоли. * Как создавать пользователей и группы пользователей во FreeBSD и управлять ими. -* Как работают права доступа на файлы в UNIX(R) и файловые флаги во FreeBSD. +* Как работают права доступа на файлы в UNIX® и файловые флаги во FreeBSD. * Иерархию каталогов FreeBSD. -* Организацию дисков FreeBSD. +* Организация дисков в FreeBSD. * Как монтировать и размонтировать файловые системы. -* Что такое процессы, даемоны и сигналы. -* Что такое командный процессор и как изменить используемые по умолчанию параметры рабочего окружения. -* Как пользоваться стандартными текстовыми редакторами. -* Что такое устройства и файлы устройств. -* Как пользоваться справочным руководством для получения дополнительной информации. +* Что такое процессы, демоны и сигналы. +* Что такое оболочка и как изменить среду входа по умолчанию. +* Как использовать основные текстовые редакторы. +* Что такое устройства и узлы устройств. +* Как читать справочные страницы для получения дополнительной информации. [[consoles]] == Виртуальные консоли и терминалы -Если только FreeBSD не была настроена на автоматический запуск графической среды при загрузке, система будет запускаться в режиме запроса ввода имени учётной записи в командной строке, как в этом примере: +Если FreeBSD не настроена для автоматического запуска графической среды во время загрузки, система загрузится в командную строку с приглашением для входа, как показано в этом примере: [.programlisting] .... +FreeBSD/amd64 (pc3.example.org) (ttyv0) + login: .... -Первая строка содержит определённую информацию о системе. -`amd64` указывает на то, что FreeBSD работает в 64-разрядной системе x86. -`pc3.example.org` является именем хоста, а `ttyv0` указывает на то, что это "системная консоль". -Вторая строка является приглашением к входу в систему. +Первая строка содержит некоторую информацию о системе. `amd64` указывает, что FreeBSD работает на 64-битной x86 системе. Имя хоста — `pc3.example.org`, а `ttyv0` означает, что это «системная консоль». Вторая строка — это приглашение для входа в систему. -Поскольку FreeBSD является многопользовательской системой, она должна каким-то образом отличать различных пользователей. -Это достигается за счёт того, что каждый пользователь перед получением доступа к программам системы должен в эту систему войти. -Каждый пользователь имеет уникальное "имя пользователя" и персональный "пароль". +Поскольку FreeBSD — это многопользовательская система, требуется способ различать пользователей. Для этого необходимо, чтобы каждый пользователь вошел в систему перед получением доступа к программам. У каждого пользователя есть уникальное «имя пользователя» и личный «пароль». -Для входа в системную консоль наберите имя пользователя, которое было настроено во время установки системы, описанной в разделе <<bsdinstall-addusers>>, и нажмите kbd:[Enter]. -Затем введите пароль, соответствующий этому имени пользователя и нажмите kbd:[Enter]. -Пароль _не отображается_ по соображениям безопасности. +Для входа в системную консоль введите имя пользователя, заданное при установке системы, как описано в crossref:bsdinstall[bsdinstall-addusers,Добавление пользователей], и нажмите kbd:[Enter]. Затем введите пароль, связанный с этим именем пользователя, и нажмите kbd:[Enter]. Пароль _не отображается_ в целях безопасности. -После ввода корректного пароля будет выдано сообщение дня (MOTD, Message Of The Day), за которым последует приглашение командной строки. -В зависимости от командного процессора, который был выбран при создании пользователя, таким приглашением будет символ `+#+`, `$` или `%`. -Это приглашение указывает на то, что теперь пользователь вошёл в системную консоль FreeBSD и может попытаться использовать имеющиеся команды. +После ввода правильного пароля будет отображено сообщение дня (MOTD), за которым последует приглашение командной строки. В зависимости от выбранной оболочки при создании пользователя, это приглашение может быть символом `+#+`, `$` или `%`. Приглашение указывает, что пользователь теперь вошел в консоль системы FreeBSD и готов попробовать доступные команды. [[consoles-virtual]] === Виртуальные консоли -Хотя системная консоль может использоваться для взаимодействия с системой, пользователь, работающий в режиме командной строки за клавиатурой системы FreeBSD, как правило, будет входить в систему через виртуальную консоль. -Это так, потому что по умолчанию выдача системных сообщений настроена на их отображение на системной консоли. -Эти сообщения будут выдаваться поверх команд или файлов, с коорым работает пользователь, что мешает сосредоточиться на текущей работе. +Хотя системную консоль можно использовать для взаимодействия с системой, пользователь, работающий из командной строки на клавиатуре FreeBSD, обычно вместо этого входит в виртуальную консоль. Это связано с тем, что системные сообщения по умолчанию настроены на отображение на системной консоли. Эти сообщения будут появляться поверх команды или файла, с которыми работает пользователь, что затрудняет концентрацию на текущей задаче. -По умолчанию FreeBSD настроена так, что она предоставляет несколько виртуальных консолей для ввода команд. -Каждая виртуальная консоль обладает собственным приглашением к входу в систему и командным процессором, а переключение между виртуальными консолями выполняется легко. -В итоге это равнозначно предоставлению нескольких одновременно открытых окон в графической среде, но в режиме командной строки. +По умолчанию 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]. +Сочетания клавиш kbd:[Alt+F1] — kbd:[Alt+F8] зарезервированы в FreeBSD для переключения между виртуальными консолями. Используйте kbd:[Alt+F1] для перехода к системной консоли (`ttyv0`), kbd:[Alt+F2] для доступа к первой виртуальной консоли (`ttyv1`), kbd:[Alt+F3] для доступа ко второй виртуальной консоли (`ttyv2`) и так далее. При использовании Xorg в качестве графической консоли для возврата к текстовой виртуальной консоли используется сочетание kbd:[Ctrl+Alt+F1]. -При переключении от одной консоли к другой FreeBSD берёт на себя управление изображением на экране. -В результате создаётся видимость наличия множества виртуальных экранов и клавиатур, которые могут быть использованы при наборе команд для их запуска во FreeBSD. -Программы, запущенные на одной из виртуальных консолей, не прекращают своей работы, когда пользователь переключается на другую виртуальную консоль. +При переключении с одной консоли на другую FreeBSD управляет выводом на экран. В результате создаётся иллюзия наличия нескольких виртуальных экранов и клавиатур, которые можно использовать для ввода команд на выполнение в FreeBSD. Программы, запущенные в одной виртуальной консоли, продолжают работать при переключении пользователя на другую виртуальную консоль. -Обратитесь к man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4] и man:vt[4] для получения дополнительных технических описаний консоли FreeBSD и драйверов её клавиатуры. +Обратитесь к man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4] и man:vt[4] для более технического описания консоли FreeBSD и её драйверов клавиатуры. -Во FreeBSD количество доступных виртуальных консолей настраивается в следующем разделе файла `/etc/ttys`. +В FreeBSD количество доступных виртуальных консолей настраивается в этом разделе `/etc/ttys`: [.programlisting] .... -# name getty type status comments +# name getty type status comments # -ttyv0 "/usr/libexec/getty Pc" xterm on secure +ttyv0 "/usr/libexec/getty Pc" xterm on secure # Virtual terminals -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 +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 .... -Для отключения какой-либо виртуальной консоли поместите символ комментария (`+#+`) в начале строки, соответствующей этой виртуальной консоли. -К примеру, для уменьшения количества доступных виртуальных консолей с восьми до четырёх поместите `+#+` в начале последних четырёх строк, представляющих виртуальные консоли с `ttyv5` по `ttyv8`. -_Не комментируйте_ строку системной консоли `ttyv0`. -Заметьте, что последняя виртуальная консоль (`ttyv8`) используется для доступа к графическому окружению, если был установлен пакет Xorg, как это описано в главе crossref:x11[x11,X Window System]. -+ -За детальным описанием каждой колонки этого файла и доступных параметров виртуальных консолей обратитесь к man:ttys[5]. +Чтобы отключить виртуальную консоль, поставьте символ комментария (`+#+`) в начале строки, соответствующей этой виртуальной консоли. Например, чтобы уменьшить количество доступных виртуальных консолей с восьми до четырёх, добавьте `+#+` перед последними четырьмя строками, представляющими виртуальные консоли `ttyv5` до `ttyv8`. _Не_ комментируйте строку системной консоли `ttyv0`. Обратите внимание, что последняя виртуальная консоль (`ttyv8`) используется для доступа к графической среде, если Xorg установлен и настроен, как описано в crossref:x11[x11,Система X Window]. + +Для подробного описания каждой колонки в этом файле и доступных опций для виртуальных консолей обратитесь к man:ttys[5]. [[consoles-singleuser]] === Однопользовательский режим -В загрузочном меню FreeBSD имеется пункт, который называется "Boot Single User". -При его выборе система загрузится в специальном режиме, который называется "однопользовательским". -Этот режим обычно используется для восстановления работоспособности системы, которая не загружается, или для сброса пароля пользователя `root`, когда он неизвестен. -В однопользовательском режиме недоступны сетевые функции и дополнительные виртуальные консоли. -При всём при этом имеется полный доступ к системе с полномочиями пользователя `root`, и по умолчанию пароль пользователя `root` не требуется. -По этим причинам для загрузки в таком режиме требуется физический доступ к клавиатуре, а решение о том, кто имеет физический доступ к клавиатуре, стоит рассматривать в контексте обеспечения безопасности системы FreeBSD. -+ -Настройки, управляющие однопользовательским режимом, находятся в следующем разделе файла `/etc/ttys`: +В меню загрузки FreeBSD есть пункт с названием "Boot Single User". При выборе этого пункта система загрузится в особый режим, известный как "однопользовательский режим". Этот режим обычно используется для восстановления системы, которая не загружается, или для сброса пароля `root`, если он неизвестен. В однопользовательском режиме сеть и другие виртуальные консоли недоступны. Однако предоставляется полный доступ `root` к системе, и по умолчанию пароль `root` не требуется. По этим причинам для загрузки в этом режиме необходим физический доступ к клавиатуре, и определение того, кто имеет такой доступ, является важным аспектом обеспечения безопасности системы FreeBSD. + +Настройки, управляющие однопользовательским режимом, находятся в этом разделе файла `/etc/ttys`: [.programlisting] .... -# name getty type status comments +# name getty type status comments # -# Если консоль помечена как "insecure", то init будет запрашивать пароль -# пользователя root при переходе в однопользовательский режим -console none unknown off secure +# If console is marked "insecure", then init will ask for the root password +# when going to single-user mode. +console none unknown off secure .... -По умолчанию столбец status установлен в значение `secure`. -Это предполагает, что физический доступ к клавиатуре либо не важен, либо контролируется политикой физической безопасности. -Если изменить этот параметр на `insecure`, то это будет означать, что само по себе окружение не является безопасным, так как любой может получить доступ к клавиатуре. -Когда в этой строке значение меняется на `insecure`, то FreeBSD будет запрашивать пароль пользователя `root` в случае, когда пользователь выберет загрузку в однопользовательском режиме. +По умолчанию статус установлен в `secure`. Это предполагает, что тот, кто имеет физический доступ к клавиатуре, либо не важен, либо контролируется политикой физической безопасности. Если этот параметр изменён на `insecure`, предполагается, что среда сама по себе небезопасна, так как любой может получить доступ к клавиатуре. При изменении этой строки на `insecure` FreeBSD будет запрашивать пароль `root`, когда пользователь выбирает загрузку в однопользовательском режиме. [NOTE] ==== -_Будьте осторожны при изменении этого параметра на `insecure`!_ -Если пароль пользователя `root` забыт, то загрузка в однопользовательском режиме всё ещё будет возможна, но может быть затруднена для тех, кто незнаком с процессом загрузки FreeBSD. +_Будьте осторожны при изменении этой настройки на `insecure`!_ Если пароль `root` забыт, загрузка в однопользовательском режиме всё ещё возможна, но может быть затруднительна для тех, кто не знаком с процессом загрузки FreeBSD. ==== [[consoles-vidcontrol]] === Изменение видеорежимов консоли -Установленный по умолчанию режим видео для консоли FreeBSD может быть изменён до значения 1024x768, 1280x1024 или любого другого, который поддерживается вашим монитором и видеокартой. -Для использования другого видеорежима загрузите модуль `VESA`: +Режим видео по умолчанию в консоли FreeBSD может быть изменён на 1024x768, 1280x1024 или любой другой, поддерживаемый графическим чипом и монитором. Для использования другого видео режима загрузите модуль `VESA`: -[source,shell] +[source, shell] .... # kldload vesa .... -Для определения того, какие видеорежимы поддерживаются вашим оборудованием, воспользуйтесь man:vidcontrol[1]. -Чтобы получить список поддерживаемых видеорежимов, выполните следующую команду: +Для определения видеорежимов, поддерживаемых оборудованием, используйте man:vidcontrol[1]. Чтобы получить список поддерживаемых видеорежимов, выполните следующую команду: -[source,shell] +[source, shell] .... # vidcontrol -i mode .... -Выдача этой команды отобразит список видеорежимов, поддерживаемых оборудованием. -Для выбора нового видеорежима укажите его при помощи man:vidcontrol[1], работая как пользователь `root`. +Результат выполнения этой команды выводит список видеорежимов, поддерживаемых оборудованием. Чтобы выбрать новый видеорежим, укажите режим с помощью man:vidcontrol[1] от имени пользователя `root`: -[source,shell] +[source, shell] .... # vidcontrol MODE_279 .... -Если новый видеорежим приемлем, то его можно определить постоянно устанавливаемым при загрузке, добавив его в `/etc/rc.conf`: +Если новый видео-режим приемлем, его можно установить постоянным при загрузке, добавив в `/etc/rc.conf`: [.programlisting] .... @@ -216,122 +178,91 @@ 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]. Рекомендуется использовать имена, состоящие из восьми или менее строчных символов, для обеспечения обратной совместимости с приложениями. Пароль:: -У каждой учётной записи имеется связанный с ней пароль. +У каждой учетной записи есть связанный с ней пароль. Идентификатор пользователя (UID):: -Идентификатор пользователя (UID) является числом, используемым для однозначной идентификации этого пользователя в системе FreeBSD. -Команды, позволяющие указывать имя пользователя, сначала будут преобразовывать его в UID. -Рекомендуется использовать UID меньше 65535, так как более высокие значения могут вызвать проблемы совместимости с некоторым программным обеспечением. +Идентификатор пользователя (UID) — это число, используемое для однозначной идентификации пользователя в системе FreeBSD. Команды, которые позволяют указать имя пользователя, сначала преобразуют его в UID. Рекомендуется использовать UID меньше 65535, так как более высокие значения могут вызвать проблемы совместимости с некоторым программным обеспечением. Идентификатор группы (GID):: -Идентификатор группы (GID) является числом, используемым для однозначной идентификации основной группы, которой принадлежит пользователь. -Группы являются механизмом контроля доступа к ресурсам на основе GID пользователя, а не его UID. -Это может значительно уменьшить размер некоторых конфигурационных файлов, а также позволяет пользователям быть членами более чем одной группы. -Рекомендуется использовать значения GID, не превышающие 65535, так как превышение может вызвать сбои некоторого программного обеспечения. +Идентификатор группы (GID) — это число, используемое для однозначной идентификации основной группы, к которой принадлежит пользователь. Группы представляют собой механизм управления доступом к ресурсам на основе GID пользователя, а не его UID. Это может значительно уменьшить размер некоторых конфигурационных файлов и позволяет пользователям быть членами более чем одной группы. Рекомендуется использовать GID 65535 или меньше, так как более высокие GID могут привести к неработоспособности некоторых программ. -Класс доступа (login class):: -Классы доступа являются расширением механизма групп, дающим дополнительную гибкость при адаптации системы к различным пользователям. -Классы доступа описываются в разделе crossref:security[users-limiting,Настройка классов доступа]. +Класс входа (Login class):: +Классы входа являются расширением механизма групп, предоставляющим дополнительную гибкость при настройке системы для различных пользователей. Подробнее классы входа рассматриваются в crossref:security[users-limiting,Настройка классов входа]. -Периодичность смены пароля:: -По умолчанию пароли не устаревают. -Однако устаревание пароля может быть включено по отдельности у каждого пользователя, принуждая всех или некоторых пользователей менять свои пароли по истечении определённого периода времени. +Время изменения пароля:: +По умолчанию пароли не имеют срока действия. Однако можно включить истечение срока действия пароля для отдельных пользователей, что заставит некоторых или всех пользователей изменить свои пароли по истечении определённого времени. -Время действия учётной записи:: -По умолчанию во FreeBSD время действия учётных записей не ограничено. -При создании учётных записей с ограниченным сроком действия, например, учётных записей студентов учебного заведения, укажите дату истечения действия учетной записи при помощи man:pw[8]. -После наступления указанной даты учётная запись не может быть использована для входа в систему, хотя каталоги и файлы, соответствующие этой учётной записи, не исчезнут. +Время истечения срока действия учетной записи:: +По умолчанию FreeBSD не ограничивает срок действия учётных записей. При создании учётных записей с ограниченным сроком действия, например, для учащихся в школе, укажите дату истечения срока с помощью man:pw[8]. После истечения указанного времени учётная запись не может быть использована для входа в систему, хотя каталоги и файлы этой учётной записи останутся. Полное имя пользователя:: -Имя пользователя является уникальным идентификатором учётной записи для FreeBSD, однако оно не обязательно соответствует реальному имени пользователя. -Подобно комментариям, эта информация может содержать пробелы, заглавные буквы и иметь длину более 8 символов. +Имя пользователя уникально идентифицирует учетную запись в FreeBSD, но не обязательно отражает реальное имя пользователя. Как и в случае с комментарием, эта информация может содержать пробелы, заглавные буквы и быть длиннее 8 символов. Домашний каталог:: -Домашний каталог является полным путём к некоторому каталогу в системе. -Это начальный каталог пользователя после его входа в систему. -По общепринятому соглашению все домашние каталоги пользователей размещаются в `/home/username` или `/usr/home/username`. -Пользователи хранят свои личные файлы и подкаталоги в своих домашних каталогах. +Домашний каталог — это полный путь к каталогу в системе. Это стартовый каталог пользователя при входе в систему. Общепринятое соглашение — размещать все домашние каталоги пользователей в `/home/имя_пользователя` или `/usr/home/имя_пользователя`. Каждый пользователь хранит свои личные файлы и подкаталоги в собственном домашнем каталоге. Оболочка пользователя:: -Оболочка обеспечивает стандартное пользовательское окружение для взаимодействия с системой. -Существует множество различных видов оболочек, и у опытных пользователей будут свои предпочтения, которые могут быть отражены в настройках их учётных записей. +Оболочка предоставляет пользователю среду по умолчанию для взаимодействия с системой. Существует множество различных видов оболочек, и опытные пользователи могут выбрать предпочтительную, настроив её в параметрах своей учётной записи. [[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] ==== - -[source,shell] +[source, shell] .... % configure % make @@ -341,26 +272,21 @@ Password: # exit % .... - ==== -Стандартный механизм man:su[1] хорошо работает для отдельных инсталляций или небольших сетей с единственным системным администратором. -Альтернативой является установка пакета или порта package:security/sudo[]. -Данное программное обеспечение обеспечивает протоколирование активностей и позволяет администратору настраивать, какие команды и какими пользователями могут запускаться с полномочиями суперпользователя. +Встроенная система man:su[1] хорошо подходит для отдельных компьютеров или небольших сетей с одним системным администратором. Альтернативой является установка пакета package:security/sudo[] или порта. Это программное обеспечение обеспечивает журналирование действий и позволяет администратору настроить, какие пользователи могут выполнять определённые команды с правами суперпользователя. [[users-modifying]] -=== Управление учётными записями +=== Управление учетными записями -FreeBSD предоставляет набор различных команд для управления учётными записями пользователей. -Наиболее часто используемые команды перечислены в разделе crossref:basics[users-modifying-utilities,Инструменты для управления учётными записями], атем даны некоторые примеры их использования. -Обратитесь к страницам Справочника каждой утилиты для получения дополнительной информации и примеров использования. +FreeBSD предоставляет различные команды для управления учетными записями пользователей. Наиболее распространенные команды перечислены в crossref:basics[users-modifying-utilities,Утилиты для управления учетными записями пользователей], а также приведены примеры их использования. Для получения дополнительной информации и примеров использования обратитесь к руководству (man) каждой утилиты. [[users-modifying-utilities]] -.Инструменты для управления учётными записями +.Утилиты для управления учетными записями пользователей [cols="25h,~"] |=== | Команда -| Краткое описание +| Краткое содержание |man:adduser[8] |Рекомендуемое приложение командной строки для добавления новых пользователей. @@ -369,42 +295,35 @@ FreeBSD предоставляет набор различных команд д |Рекомендуемое приложение командной строки для удаления пользователей. |man:chpass[1] -|Гибкий инструмент для изменения информации в базе данных пользователей. +|Гибкий инструмент для изменения информации в пользовательской базе данных. |man:passwd[1] |Инструмент командной строки для изменения паролей пользователей. |man:pw[8] -|Мощный и гибкий инструмент для изменения всех параметров пользовательских учётных записей. +|Мощный и гибкий инструмент для изменения всех аспектов пользовательских учетных записей. |man:bsdconfig[8] -|Инструмент настройки системы с поддержкой управления учётными записями. +|Утилита для настройки системы с поддержкой управления учётными записями. |=== [[users-adduser]] ==== Добавление пользователя -Рекомендуемой программой для добавления новых пользователей является man:adduser[8]. -При добавлении нового пользователя эта программа автоматически обновляет `/etc/passwd` и `/etc/group`. -Она также создаёт домашний каталог для этого пользователя, копирует стандартные конфигурационные файлы из `/usr/share/skel` и опционально может отправить новому пользователю по электронной почте приветственное сообщение. -Эта утилита должна запускаться с полномочиями суперпользователя. +Рекомендуемая программа для добавления новых пользователей — man:adduser[8]. При добавлении нового пользователя эта программа автоматически обновляет `/etc/passwd` и `/etc/group`. Она также создаёт домашний каталог для нового пользователя, копирует в него стандартные конфигурационные файлы из `/usr/share/skel` и может отправить новому пользователю приветственное письмо. Эту утилиту необходимо запускать от имени суперпользователя. -Утилита man:adduser[8] является интерактивной и следует шагам создания новой учётной записи пользователя. -Как показано в разделе crossref:basics[users-modifying-adduser, Добавление пользователя во FreeBSD], вводите запрашиваемую информацию либо нажимайте kbd:[Return] для принятия значения по умолчанию, отображаемого в квадратных скобках. -В этом примере пользователь был приглашён в группу `wheel`, позволяющей работать с полномочиями суперпользователя при помощи man:su[1]. -По окончании утилита выдаст запрос на создание ещё одного пользователя или завершение работы. +Утилита man:adduser[8] интерактивна и проводит пользователя через шаги создания новой учётной записи. Как показано в crossref:basics[users-modifying-adduser, Добавление пользователя в FreeBSD], можно ввести необходимую информацию или нажать kbd:[Enter], чтобы принять значение по умолчанию, указанное в квадратных скобках. В этом примере пользователь был добавлен в группу `wheel`, что позволяет ему стать суперпользователем с помощью man:su[1]. По завершении утилита предложит создать ещё одного пользователя или выйти. [[users-modifying-adduser]] -.Добавление пользователя во FreeBSD +.Добавление пользователя в FreeBSD [example] ==== - -[source,shell] +[source, shell] .... # adduser .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... @@ -437,47 +356,45 @@ adduser: INFO: Successfully added (jru) to the user database. Add another user? (yes/no): no Goodbye! .... - ==== [NOTE] ==== -Так как при наборе пароля он не отображается, будьте внимательны к опечаткам при его вводе при создании пользовательской учётной записи. +Поскольку пароль не отображается при вводе, будьте внимательны, чтобы не ошибиться при создании учетной записи пользователя. ==== [[users-rmuser]] ==== Удаление пользователя -Для полного удаления пользователя из системы запустите man:rmuser[8] с полномочиями суперпользователя. -Эта команда выполняет следующие шаги: +Чтобы полностью удалить пользователя из системы, выполните команду man:rmuser[8] с правами суперпользователя. Эта команда выполняет следующие действия: [.procedure] ==== -. Удаляет пользовательскую информацию в man:crontab[1], если она имеется. -. Удаляет все задания man:at[1], принадлежащие этому пользователю. -. Отправляет сигнал SIGKILL всем процессам, владельцем которых является данный пользователь. +. Удаляет запись пользователя в man:crontab[1], если она существует. +. Удаляет все задания man:at[1], принадлежащие пользователю. +. Посылает сигнал SIGKILL всем процессам, принадлежащим пользователю. . Удаляет пользователя из локального файла паролей системы. -. Удаляет домашний каталог пользователя (если владельцем этого каталога является данный пользователь), включая обработку символических ссылок в маршруте к реальному домашнему каталогу. -. Удаляет файлы входящей почты, принадлежащие этому пользователю, из `/var/mail`. -. Удаляет все файлы, владельцем которых является этот пользователь, из /tmp`, `/var/tmp` и `/var/tmp/vi.recover`. -. Удаляет имя пользователя из всех групп, в которых он состоит, в `/etc/group`. Если какая-то группа становится пустой, а её название совпадает с именем пользователя, то эта группа удаляется; эта группа соответствует уникальной пользовательской группе, создаваемой man:adduser[8]. -. Удаляет все очереди сообщений, сегменты совместно используемой памяти и семафоры, владельцем которых является данный пользователь. +. Удаляет домашний каталог пользователя (если он принадлежит пользователю), включая обработку символических ссылок в пути к фактическому домашнему каталогу. +. Удаляет входящие почтовые файлы пользователя из `/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] +[source, shell] .... # rmuser jru + .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... @@ -487,42 +404,36 @@ 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]] -==== Изменение информации о пользователе +==== Изменить информацию о пользователе -Любой пользователь может воспользоваться man:chpass[1] для изменения своего используемого по умолчанию командного процессора и персональной информации, связанной с его пользовательской учётной записью. -Суперпользователь может использовать данную утилиту для изменения дополнительной информации об учётной записи любого пользователя. +Любой пользователь может использовать man:chpass[1] для изменения своей оболочки по умолчанию и персональной информации, связанной с его учётной записью. Суперпользователь может использовать эту утилиту для изменения дополнительных параметров учётной записи любого пользователя. -При запуске без указания параметров, за исключением необязательного имени пользователя, man:chpass[1] отображает редактор, содержащий информацию пользователя. -Когда пользователь завершает работу с редактором, база данных пользователей обновляется новой информацией. +Без указания опций, за исключением необязательного имени пользователя, man:chpass[1] отображает редактор с информацией о пользователе. После выхода пользователя из редактора база данных пользователей обновляется новой информацией. [NOTE] ==== -Если утилита запущена не с полномочиями суперпользователя, то после выхода из редактора она запросит пароль пользователя. +Этотa утилитa запрашивает пароль пользователя при выходе из редактора, если только она не запущена от имени суперпользователя. ==== -В разделе crossref:basics[users-modifying-chpass-su,Использование `chpass` с полномочиями суперпользователя] суперпользователь набрал `chpass jru` и просматривал поля, которые могут быть изменены для данного пользователя. -Если вместо этого эта команда будет запущена пользователем `jru`, то будут отображены и доступны для редактирования только шесть последних полей. -Это показано в разделе crossref:basics[users-modifying-chpass-ru,Использование `chpass` с полномочиями обычного пользователя]. +В 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] +[source, shell] .... -# chpass +# chpass jru .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... -#Changing user database information for jru. +# Changing user database information for jru. Login: jru Password: * Uid [#]: 1001 @@ -541,10 +452,10 @@ Other information: ==== [[users-modifying-chpass-ru]] -.Использование `chpass` с полномочиями обычного пользователя +.Использование `chpass` обычным пользователем [example] ==== -[source,shell] +[source, shell] .... #Changing user database information for jru. Shell: /usr/local/bin/zsh @@ -558,26 +469,23 @@ Other information: [NOTE] ==== -Команды man:chfn[1] и man:chsh[1] являются ссылками на man:chpass[1], так же, как и man:ypchpass[1], man:ypchfn[1] и man:ypchsh[1]. -Так как NIS поддерживается автоматически, указание `yp` перед командой не обязательно. -Настройка NIS рассматривается в <<network-servers>>. +Команды 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,Сетевые серверы]. ==== [[users-passwd]] ==== Изменение пароля пользователя -Любой пользователь может легко сменить собственный пароль при помощи man:passwd[1]. -Для предотвращения случайных или неавторизованных изменений перед установкой нового пароля эта команду будут запрашивать первоначальный пароль пользователя: +Любой пользователь может легко изменить свой пароль с помощью man:passwd[1]. Для предотвращения случайных или несанкционированных изменений эта команда запросит исходный пароль пользователя перед установкой нового пароля: -.Изменение собственного пароля +.Смена собственного пароля [example] ==== -[source,shell] +[source, shell] .... % passwd .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... @@ -588,22 +496,19 @@ Retype new password: passwd: updating the database... passwd: done .... - ==== -Суперпользователь может сменить пароль любого пользователя, указав имя пользователя при запуске man:passwd[1]. -В тех случаях, когда эта утилита работает с полномочиями суперпользователя, она не будет запрашивать текущий пароль пользователя. -Это позвляет менять пароль в случае, когда пользователь не может вспомнить первоначальный пароль. +Суперпользователь может изменить пароль любого пользователя, указав имя пользователя при запуске man:passwd[1]. При запуске этой утилиты с правами суперпользователя она не запрашивает текущий пароль пользователя. Это позволяет изменить пароль, если пользователь не может вспомнить исходный пароль. .Изменение пароля другого пользователя суперпользователем [example] ==== -[source,shell] +[source, shell] .... # passwd jru .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... @@ -617,49 +522,38 @@ 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]] -==== Создание, удаление, изменение и просмотр пользователей и групп в системе +==== Создание, удаление, изменение и отображение пользователей и групп системы -Утилита man:pw[8] может создавать, удалять, изменять и отображать пользователей и группы. -Она функционирует как пользовательский интерфейс к системным файлам пользователей и групп. -man:pw[8] обладает очень мощным набором параметров командной строки, что делает её подходящей для использования в скриптах командного процессора, однако новым пользователям она может показаться более сложной, чем другие команды, представленные в этом разделе. +Утилита man:pw[8] может создавать, удалять, изменять и отображать пользователей и группы. Она работает как интерфейс к системным файлам пользователей и групп. man:pw[8] обладает мощным набором параметров командной строки, что делает её пригодной для использования в shell-скриптах, но новым пользователям она может показаться сложнее других команд, представленных в этом разделе. [[users-groups]] === Управление группами -Группа представляет собой список пользователей. -Группа идентифицируется по её имени и GID. -Во FreeBSD для определения того, что имеет право делать процесс, ядро использует UID процесса и список групп, которым он принадлежит. -В большинстве случаев GID пользователя или процесса соотносится с первой группой из списка. - -Соответствия имени группы и GID перечислены в `/etc/group`. -Это обычный текстовый файл с четырьмя полями, разделёнными двоеточиями. -Первое поле соответствует имени группы, второе является зашифрованным паролем, третье содержит GID, а четвёртое является списком членов группы, разделённых запятыми. -За полным описанием синтаксиса обратитесь к man:group[5]. +Группа — это список пользователей. Группа идентифицируется по своему названию и GID. В FreeBSD ядро использует UID процесса и список групп, к которым он принадлежит, чтобы определить, что процесс может делать. В большинстве случаев под GID пользователя или процесса обычно подразумевается первая группа в списке. -Суперпользователь может изменять `/etc/group` при помощи какого-либо текстового редактора, однако предпочтительным способом является редактирование файла с группами при помощи утилиты man:vigr[8], так как она может отловить некоторые распространённые ошибки. +Соответствие имен групп и GID перечислено в `/etc/group`. Это простой текстовый файл с четырьмя полями, разделенными двоеточиями. Первое поле — имя группы, второе — зашифрованный пароль, третье — GID, а четвертое — список участников, разделенных запятыми. Полное описание синтаксиса смотрите в man:group[5]. -В качестве альтернативы для добавления и редактирования групп можно использовать man:pw[8]. -Например, для добавления группы с именем `teamtwo` и последующей проверки её существования: +Суперпользователь может изменить `/etc/group` с помощью текстового редактора, однако предпочтительнее редактировать файл групп с помощью man:vigr[8], так как это позволяет избежать некоторых распространённых ошибок. Альтернативно, для добавления и редактирования групп можно использовать man:pw[8]. Например, чтобы добавить группу с именем `teamtwo` и затем убедиться, что она существует: [WARNING] ==== -При использовании группы operator следует соблюдать осторожность, так как при этом могут быть ненамеренно даны полномочия этой группы, близкие к полномочиям суперпользователя, включая, но не ограничиваясь, правами на завершение работы системы и её перезапуск, а также на доступ ко всем объектам в `/dev`. +При использовании группы operator необходимо соблюдать осторожность, так как могут быть предоставлены непредусмотренные привилегии, аналогичные правам суперпользователя, включая, но не ограничиваясь, возможностью выключения системы, перезагрузки и доступа ко всем элементам в `/dev` в рамках группы. ==== -.Добавление группы с использованием man:pw[8] +.Добавление группы с помощью man:pw[8] [example] ==== -[source,shell] +[source, shell] .... # pw groupadd teamtwo # pw groupshow teamtwo .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... @@ -667,20 +561,18 @@ teamtwo:*:1100: .... ==== -В этом примере `1100` является GID группы `teamtwo`. -На данный момент в `teamtwo` нет участников. -Эта команда добавит `jru` в группу `teamtwo` в качестве участника. +В этом примере `1100` — это GID группы `teamtwo`. На данный момент в `teamtwo` нет участников. Эта команда добавит `jru` в качестве участника `teamtwo`. -.Добавление учётных записей пользователей в новую группу при помощи man:pw[8] +.Добавление пользовательских учетных записей в новую группу с помощью man:pw[8] [example] ==== -[source,shell] +[source, shell] .... # pw groupmod teamtwo -M jru # pw groupshow teamtwo .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... @@ -688,21 +580,18 @@ teamtwo:*:1100:jru .... ==== -Аргументом к параметру `-M` является разделённый запятыми список пользователей, которых нужно добавить в новую (пустую) группу или заменить участников существующей группы. -С точки зрения пользователя такое членство в группе отличается от основной группы, указанной в файле паролей (и является дополнительным к ней). -Это значит, что пользователь не будет отображаться как участник группы при использовании параметра `groupshow` с man:pw[8], но будет отображаться при запросе информации с помощью man:id[1] или аналогичного инструмента. -При использовании man:pw[8] для добавления пользователя в группу она работает только с `/etc/group` и не пытается считывать дополнительные сведения из `/etc/passwd`. +Аргумент `-M` представляет собой разделённый запятыми список пользователей, которые будут добавлены в новую (пустую) группу или заменят членов существующей группы. Для пользователя это членство в группе отличается от (и дополняет) его основной группы, указанной в файле паролей. Это означает, что пользователь не будет отображаться как член группы при использовании `groupshow` с man:pw[8], но будет виден при запросе информации через man:id[1] или аналогичный инструмент. Когда man:pw[8] используется для добавления пользователя в группу, он только изменяет `/etc/group` и не пытается читать дополнительные данные из `/etc/passwd`. .Добавление нового участника в группу с помощью man:pw[8] [example] ==== -[source,shell] +[source, shell] .... # pw groupmod teamtwo -m db # pw groupshow teamtwo .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... @@ -710,18 +599,17 @@ teamtwo:*:1100:jru,db .... ==== -В этом примере аргументом к параметру `-m` является разделённый запятыми список пользователей, которые должны быть добавлены в группу. -В отличие от предыдущего примера, эти пользователи присоединяются к группе, а не замещают существующих в группе пользователей. +В этом примере аргумент `-m` представляет собой список пользователей, разделённых запятыми, которые будут добавлены в группу. В отличие от предыдущего примера, эти пользователи добавляются к группе и не заменяют уже существующих в ней пользователей. -.Использование man:id[1] для определения принадлежности к группе +.Использование man:id[1] для определения членства в группе [example] ==== -[source,shell] +[source, shell] .... % id jru .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... @@ -729,77 +617,69 @@ uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo) .... ==== -В этом примере `jru` является членом групп `jru` и `teamtwo`. +В этом примере `jru` является участником групп `jru` и `teamtwo`. -За дополнительной информацией об этой команде и о формате `/etc/group` обратитесь к man:pw[8] и man:group[5]. +Для получения дополнительной информации об этой команде и формате файла `/etc/group` обратитесь к man:pw[8] и man:group[5]. [[permissions]] -== Права доступа +== Разрешения -Во FreeBSD с каждым файлом и каталогом связан набор прав доступа, для просмотра и изменения которых доступны несколько утилит. -Понимание того, как работают эти права доступа, необходимо для обеспечения того, чтобы пользователи могли получать доступ к файлам, которые им нужны, и не могли некорректно обращаться к файлам, используемым операционной системой или владельцами которых является другие пользователи. +В FreeBSD каждому файлу и каталогу сопоставлен набор прав доступа, и существует несколько утилит для просмотра и изменения этих прав. Понимание работы прав доступа необходимо для того, чтобы пользователи могли получать доступ к нужным им файлам, но не имели возможности несанкционированного доступа к файлам операционной системы или файлам других пользователей. -В этом разделе описываются традиционные полномочия UNIX(R), используемые во FreeBSD. -Для более тонкого управления доступом в файловой системе обратитесь к разделу crossref:fs-acl[fs-acl,Списки управления доступом]. +В этом разделе рассматриваются традиционные права доступа UNIX(R), используемые в FreeBSD. Для более детального управления доступом к файловой системе обратитесь к crossref:security[fs-acl,Списки контроля доступа]. -В UNIX(R) базовые права доступа назначаются с использованием трёх типов доступа: чтение, запись и исполнение. -Эти типы доступа используются для определения доступа к файлу для владельца файла, для группы и для прочих пользователей (всех остальных). -Полномочия на чтение, запись и исполнение могут быть представлены в виде букв `r`, `w` и `x`. -Также они могут быть представлены в виде двоичных чисел, так как каждое полномочие либо включено, либо выключено (`0`). -При представлении в виде числа порядок прочтения всегда имеет вид `rwx`, где `r` имеет значение `4`, `w` имеет значение `2` и `x` равно `1`. +В UNIX(R) базовые права доступа назначаются с использованием трех типов доступа: чтение, запись и выполнение. Эти типы доступа определяют права на файл для владельца, группы и остальных (всех остальных). Права на чтение, запись и выполнение могут быть представлены буквами `r`, `w` и `x`. Они также могут быть представлены в виде двоичных чисел, так как каждое право либо включено, либо выключено (`0`). При представлении в виде чисел порядок всегда читается как `rwx`, где `r` имеет значение `4`, `w` — `2`, а `x` — `1`. -В Таблице 4.1 сведены возможные цифровые и символьные комбинации. -В столбце "Список файлов каталога" символ `-` используется для отражения отсутствующего права доступа. +Таблица 4.1 обобщает возможные числовые и буквенные варианты. В столбце "Список файлов каталога" символ `-` используется для обозначения отключённого разрешения. .Права доступа UNIX(R) [cols="1,1,1", frame="none", options="header"] |=== | Значение -| Права доступа +| Разрешение | Список файлов каталога |0 -|Ничего не разрешено +|Нет чтения, нет записи, нет выполнения |`---` |1 -|Нельзя читать и писать, разрешено исполнять +|Нет чтения, нет записи, выполнение |`--x` |2 -|Нельзя читать и исполнять, разрешено писать +|Нет чтения, записи, выполнения |`-w-` |3 -|Нельзя читать, разрешено писать и исполнять +|Нет прав на чтение, запись, выполнение |`-wx` |4 -|Разрешено читать, нельзя писать и исполнять +|Чтение, нет записи, нет выполнения |`r--` |5 -|Разрешено читать и исполнять, нельзя писать +|Чтение, нет записи, выполнение |`r-x` |6 -|Разрешено читать и писать, нельзя исполнять +|Чтение, запись, без выполнения |`rw-` |7 -|Разрешено все +|Чтение, запись, выполнение |`rwx` |=== -Используйте параметр `-l` с командой man:ls[1] для получения подробного списка содержимого каталога, включающего столбец с информацией о полномочиях на файл для владельца, группы и всех остальных. -Например, `ls -l` в произвольно выбранном каталоге может выдать следующее: +Используйте аргумент `-l` с man:ls[1] для просмотра длинного списка каталога, который включает колонку с информацией о правах доступа к файлу для владельца, группы и всех остальных. Например, `ls -l` в произвольном каталоге может вывести: -[source,shell] +[source, shell] .... % ls -l .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... @@ -809,132 +689,111 @@ total 530 -rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt .... -В строке, соответствующей `myfile`, первый (самый левый) символ в первом столбце указывает на то, обычный ли это файл, каталог, специальное символьное устройство, сокет или какое-то другое специальное псевдофайловое устройство. -В данном примере `-` указывает на то, что это обычный файл. -Следующие три символа (в данном примере это `rw-`) определяют полномочия владельца файла. -Последующие три символа, `r--`, определяют полномочия группы, которой принадлежит файл. -Последние три символа, `r--`, определяют полномочия для всего остального мира. -Дефис означает, что полномочия отсутствуют. -В этом примере полномочия установлены таким образом, что владелец может выполнять операции чтения и записи в файл, группа может читать файл, а весь остальной мир может только читать файл. -В соответствии с таблицей выше, полномочия для этого файлы могли бы быть представлены как `644`, где каждая цифра представляет три части полномочий на файл. +Рассматривая строку для файла `myfile`, первый `(крайний слева)` символ указывает, является ли этот файл обычным файлом, каталогом, специальным символьным устройством, сокетом или любым другим специальным псевдофайловым устройством. В данном примере символ `-` обозначает обычный файл. Следующие три символа, в этом примере `rw-`, указывают права для владельца файла. Следующие три символа, `r--`, указывают права для группы, к которой принадлежит файл. Последние три символа, `r--`, указывают права для всех остальных. Дефис означает, что право отключено. В этом примере права настроены так, что владелец может читать и записывать файл, группа может читать файл, а все остальные могут только читать файл. Согласно приведённой выше таблице, права для этого файла будут `644`, где каждая цифра представляет одну из трёх частей прав файла. -Как система управляет полномочиями на устройства? -Во FreeBSD большинство устройств представлено в виде файлов, которые программы могут открывать, читать и записывать в них данные. -Эти специальные файлы устройств размещаются в каталоге `/dev`. +Как система управляет правами доступа к устройствам? FreeBSD рассматривает большинство аппаратных устройств как файлы, которые программы могут открывать, читать и записывать в них данные. Эти специальные файлы устройств хранятся в `/dev/`. -Каталоги обрабатываются так же, как и файлы. -У них также имеются полномочия на чтение, запись и выполнение. -Бит исполнимости для каталога имеет несколько другой, отличающийся от файлов, смысл. -Когда каталог помечен как исполняемый, это означает, что в него можно перейти с помощью команды man:cd[1]. -Это также означает, что можно получить доступ к файлам в данном каталоге с учётом полномочий, установленных для этих файлов. +Каталоги также рассматриваются как файлы. У них есть права на чтение, запись и выполнение. Бит выполнения для каталога имеет несколько иное значение, чем для файлов. Если каталог помечен как исполняемый, это означает, что в него можно перейти с помощью man:cd[1]. Это также означает, что можно получить доступ к файлам внутри этого каталога, в зависимости от прав на сами файлы. -Для того, чтобы получить список файлов в каталоге, на него должны быть установлены полномочия на чтение. -Для того, чтобы удалить из каталога какой-либо файл, имя которого известно, необходимо иметь полномочия на запись _и_ исполнение каталога, содержащего соответствующий файл. +Для выполнения списка файлов в каталоге необходимо установить право на чтение для этого каталога. Чтобы удалить файл, имя которого известно, требуются права на запись _и_ выполнение для каталога, содержащего этот файл. -Существуют и другие права доступа, но они как правило используются в особых случаях, например, setuid-бит на выполняемые файлы и sticky-бит на каталоги. -За дополнительной информацией о файловых полномочиях и о том, как их устанавливать, обратитесь к man:chmod[1]. +Существуют и другие биты разрешений, но они в основном используются в особых случаях, таких как setuid-бинарники и sticky-каталоги. Для получения дополнительной информации о правах доступа к файлам и их настройке обратитесь к man:chmod[1]. -=== Символическое обозначение полномочий +=== Символьные права доступа -Символическое обозначение полномочий использует буквы вместо восьмеричных значений для назначения прав на файлы или каталоги. -Символическое обозначение использует формат (кто) (действие) (полномочия), при этом доступны следующие значения: +Символьные права доступа используют символы вместо восьмеричных значений для назначения прав доступа файлам или каталогам. Синтаксис символьных прав доступа имеет вид (кто) (действие) (права доступа), где доступны следующие значения: [.informaltable] [cols="1,1,1", frame="none", options="header"] |=== | Опция | Буква -| Значение +| Представляет |(кто) |u -|Пользователь (User) +|Пользователь |(кто) |g -|Группа (Group) +|Владелец группы |(кто) |o -|Другие (Other) +|Другие |(кто) |a -|Все (All, "world") +|Все (all, "world") |(действие) |+ -|Добавление прав +|Добавление разрешений |(действие) |- -|Удаление прав +|Удаление прав доступа |(действие) |= -|Явная установка прав +|Явно заданные разрешения -|(права) +|(права доступа) |r -|Чтение (Read) +|Чтение -|(права) +|(права доступа) |w -|Запись (Write) +|Запись -|(права) +|(права доступа) |x -|Выполнение (Execute) +|Выполнение -|(права) +|(права доступа) |t -|Sticky бит +|Бит закрепления (sticky) -|(права) +|(права доступа) |s -|SUID или SGID +|Установка UID или GID |=== -Эти значения используются с командой man:chmod[1], но с буквами вместо цифр. -Например, следующая команда блокирует доступ к _FILE_ как для членов группы, соответствующей _FILE_, так и для всех прочих пользователей: +Эти значения используются с man:chmod[1], но с буквами вместо чисел. Например, следующая команда запретит доступ к _FILE_ как членам группы, связанной с _FILE_, так и всем остальным пользователям: -[source,shell] +[source, shell] .... % chmod go= FILE .... -Для изменения более чем одного набора прав можно применить список значений, разделённых запятыми. -Например, следующая команда удаляет права группы и "всех остальных" на запись в _FILE_ и добавляет права на выполнение любым пользователям: +Список, разделённый запятыми, может быть указан, если к файлу необходимо применить более одного изменения. Например, следующая команда удаляет разрешение на запись для группы и всех остальных пользователей у _FILE_, а также добавляет разрешение на выполнение для всех: -[source,shell] +[source, shell] .... % chmod go-w,a+x FILE .... -=== Флаги файлов в FreeBSD +=== Флаги файлов FreeBSD -Кроме прав доступа к файлам, FreeBSD поддерживает использование "файловых флагов". -Эти флаги привносят дополнительный уровень защиты и контроля над файлами, но не каталогами. -При помощи этих флагов даже пользователь `root` может быть ограничен в удалении или изменении файлов. +В дополнение к правам доступа к файлам FreeBSD поддерживает использование "флагов файлов". Эти флаги добавляют дополнительный уровень безопасности и контроля над файлами, но не над каталогами. С помощью флагов файлов даже пользователь `root` может быть лишён возможности удалять или изменять файлы. -Файловые флаги изменяются при помощи man:chflags[1]. -К примеру, для установки системного флага неудаляемости на файл `file1`, выполните следующую команду: +Флаги файлов изменяются с помощью man:chflags[1]. Например, чтобы установить системный флаг «неудаляемый» для файла `file1`, выполните следующую команду: -[source,shell] +[source, shell] .... # chflags sunlink file1 .... -Чтобы отключить системный флаг неудаляемости, укажите "no" перед `sunlink`: +Чтобы отключить системный флаг "неудаляемый", добавьте "no" перед `sunlink`: -[source,shell] +[source, shell] .... # chflags nosunlink file1 .... -Чтобы просмотреть флаги какого-либо файла, используйте команду man:ls[1] с параметрами `-lo`: +Чтобы просмотреть флаги файла, используйте `-lo` с man:ls[1]: -[source,shell] +[source, shell] .... # ls -lo file1 .... @@ -944,136 +803,121 @@ total 530 -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), так как предоставляют функциональность, обычно недоступную обычным пользователям. Чтобы понять их, необходимо отметить разницу между реальным идентификатором пользователя (real user ID) и эффективным идентификатором пользователя (effective user ID). -Реальный UID - это идентификатор пользователя, запустившего процесс на выполнение. Действующий UID (EUID) - это идентификатор пользователя, с которым на самом деле выполняется процесс. -Например, утилита man:passwd[1] во время смены пароля пользователем запускается с реальным ID пользователя. -Однако для того, чтобы актуализировать базу данных паролей, команда работает с действующим ID пользователя `root`. -Это позволяет пользователям изменять их пароли и не наблюдать ошибку `Permission Denied`. +Реальный идентификатор пользователя (UID) — это UID, который владеет или запускает процесс. Эффективный идентификатор пользователя — это UID, от имени которого выполняется процесс. Например, man:passwd[1] запускается с реальным UID, когда пользователь меняет свой пароль. Однако для обновления базы данных паролей команда выполняется с эффективным UID пользователя `root`. Это позволяет пользователям изменять свои пароли без ошибки `Permission Denied`. -Полномочие setuid может быть задано в символьном виде добавлением права доступа `s` для пользователя, как в следующем примере: +Разрешение setuid может быть добавлено символически путем добавления права `s` для пользователя, как в следующем примере: -[source,shell] +[source, shell] .... # chmod u+s suidexample.sh .... -Полномочие setuid также можно задать, добавив число четыре (4) перед численным представлением набора полномочий, как показано в следующем примере: +Права setuid также могут быть установлены путем добавления числа четыре (4) перед набором прав, как показано в следующем примере: -[source,shell] +[source, shell] .... # chmod 4755 suidexample.sh .... -Теперь права доступа на `suidexample.sh` выглядят подобно следующему: +Разрешения для файла `suidexample.sh` теперь выглядят следующим образом: [.programlisting] .... -rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh .... -Заметьте, что `s` теперь является частью набора полномочий, относящихся к владельцу файла, и заменяет бит выполнимости. -Это позволяет работать утилитам, которым требуется повышенный уровень полномочий, таким как man:passwd[1]. +Обратите внимание, что `s` теперь является частью набора прав для владельца файла, заменив бит исполнения. Это позволяет создавать программы, требующие повышенных прав, таких как man:passwd[1]. [NOTE] ==== -Указание параметра `nosuid` при запуске команды man:mount[8] приводит к тому, что такие программы перестают работать без выдачи предупреждений пользователям. -Указанная возможность не является абсолютно надёжно работающей, так как обработчик `nosuid` может её обойти. +Опция `nosuid` в man:mount[8] приведёт к тихому отказу таких бинарных файлов без уведомления пользователя. Эта опция не полностью надежна, так как обёртка `nosuid` может её обойти. ==== -Чтобы увидеть, как это работает, откройте два терминала. -В одном из них наберите `passwd`, работая как обычный пользователь. -Пока утилита ждёт ввода нового пароля, просмотрите таблицу процессов и обратите внимание на информацию о пользователе процесса man.passwd[1]. +Чтобы наблюдать это в реальном времени, откройте два терминала. В одном введите `passwd` как обычный пользователь. Пока команда ожидает ввода нового пароля, проверьте таблицу процессов и посмотрите информацию о пользователе для man:passwd[1]: -В терминале А: +В терминале A: -[source,shell] +[source, shell] .... Changing local password for trhodes Old Password: .... -В терминале Б: +В терминале B: -[source,shell] +[source, shell] .... # ps aux | grep passwd .... -[source,shell] +[source, shell] .... 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 .... -Хотя man.passwd[1] запущена от обычного пользователя, она использует действующий UID пользователя `root`. +Хотя man:passwd[1] запускается от имени обычного пользователя, он использует эффективный UID `root`. -Полномочие `setgid` выполняет ту же функцию, что и `setuid`; отличие заключается в том, что изменяются настройки прав для группы. -Когда выполняются приложение или утилита с этой настройкой, то им назначаются полномочия на основании группы, владеющей файлом, а не пользователя, запустившего процесс. +Разрешение `setgid` выполняет ту же функцию, что и разрешение `setuid`, за исключением того, что оно изменяет настройки группы. Когда приложение или утилита запускается с этой настройкой, оно получает разрешения в соответствии с группой, которой принадлежит файл, а не пользователем, запустившим процесс. -Чтобы установить на какой-либо файл полномочие `setgid` в символическом виде, добавьте право доступа для группы при помощи man:chmod[1]: +Чтобы установить право `setgid` на файл в символьном виде, добавьте право `s` для группы с помощью man:chmod[1]: -[source,shell] +[source, shell] .... # chmod g+s sgidexample.sh .... -Альтернативным способом является выполнение команды man:chmod[1] с добавленным в начале числом два (2): +В качестве альтернативы укажите в man:chmod[1] ведущую двойку (2): -[source,shell] +[source, shell] .... # chmod 2755 sgidexample.sh .... -В следующей выдаче обратите внимание на наличие `s` в перечне прав доступа для группы: +В следующем листинге обратите внимание, что символ `s` теперь находится в поле, предназначенном для настроек прав группы: -[source,shell] +[source, shell] .... -rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh .... [NOTE] ==== -В этих примерах, несмотря на то, что сценарий оболочки является исполняемым файлом, он не будет выполняться с другим действующим идентификатором пользователя (EUID). Так происходит потому, что сценариям командного интерпретатора недоступен системный вызов man:setuid[2]. +В этих примерах, даже если рассматриваемый shell-скрипт является исполняемым файлом, он не будет запускаться с другим EUID или эффективным идентификатором пользователя. Это происходит потому, что shell-скрипты не могут использовать системные вызовы man:setuid[2]. ==== -Позволяя повышать права доступа, биты полномочий `setuid` и `setgid` могут снижать безопасность системы. -Третье специальное полномочие, `sticky bit`, может усиливать безопасность системы. +`setuid` и `setgid` биты прав могут снизить безопасность системы, предоставляя повышенные привилегии. Третий специальный бит прав, `sticky bit`, напротив, может повысить безопасность системы. -`Sticky bit`, будучи установленным на каталог, позволяет производить удаление файла только его владельцем. -Это полезно для предотвращения удаления файлов в общедоступных каталогах, таких как `/tmp`, пользователями, которые не являются владельцами файлов. -Чтобы использовать это полномочие, добавьте файлу режим `t`: +Когда `sticky bit` установлен на директории, он разрешает удаление файлов только владельцу файла. Это полезно для предотвращения удаления файлов в общедоступных директориях, таких как `/tmp`, пользователями, не являющимися владельцами файла. Чтобы использовать этот режим доступа, добавьте режим `t` к файлу: -[source,shell] +[source, shell] .... # chmod +t /tmp .... -Альтернативным способов является добавление единицы (1) перед набором прав доступа: +В качестве альтернативы можно добавить единицу (1) перед набором прав доступа: -[source,shell] +[source, shell] .... # chmod 1777 /tmp .... -Полномочие `sticky bit` будет отображаться как `t` в самом конце набора прав доступа: +Разрешение `sticky bit` отображается как `t` в самом конце набора разрешений: -[source,shell] +[source, shell] .... # ls -al / | grep tmp .... -[source,shell] +[source, shell] .... drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp .... @@ -1081,21 +925,11 @@ drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp [[dirstructure]] == Структура каталогов -Структура каталогов FreeBSD является фундаментальным вопросом в достижении общего понимания устройства всей системы. -Самым важным понятием является, несомненно, корневой каталог, или "/". -Этот каталог является самым первым, монтируемым на этапе загрузки и содержащим базовую систему, необходимую для подготовки операционной системы к работе в многопользовательском режиме. -Корневой каталог также содержит точки монтирования для других файловых систем, которые монтируются во время перехода к функционированию в многопользовательском режиме. +Иерархия каталогов FreeBSD является основой для общего понимания системы. Наиболее важным каталогом является корневой или "/". Этот каталог монтируется первым при загрузке и содержит базовую систему, необходимую для подготовки операционной системы к многопользовательскому режиму. Корневой каталог также содержит точки монтирования для других файловых систем, которые монтируются во время перехода в многопользовательский режим. -Точкой монтирования называется каталог, находящийся в родительской (обычно - корневой) файловой системе, к которому может быть подсоединена другая файловая система. -Более глубоко это описывается в разделе crossref:basics[disk-organization,Организация дисков]. -К стандартным точкам монтирования относятся `/usr/`, `/var/`, `/tmp/`, `/mnt/` и `/cdrom/`. -Эти каталоги обычно перечислены как отдельные записи в файле `/etc/fstab`. -Этот файл является таблицей с различными файловыми системами и точками монтирования, которая считывается системой. -Большинство файловых систем в `/etc/fstab` монтируются во время загрузки автоматически из скрипта man:rc[8], если только в соответствующей записи для них не указано `noauto`. -Более подробную информацию можно найти в разделе crossref:basics[disks-fstab,Файл 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]. В следующей таблице представлен краткий обзор наиболее распространённых каталогов. [cols="25h,~"] |=== @@ -1106,203 +940,167 @@ drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp |Корневой каталог файловой системы. |`/bin/` -|Основные утилиты, необходимые для работы как в однопользовательском, так и в многопользовательском режимах. +|Пользовательские утилиты, основные как для однопользовательской, так и для многопользовательской среды. |`/boot/` -|Программы и конфигурационные файлы, необходимые для нормальной загрузки операционной системы. +|Программы и конфигурационные файлы, используемые при загрузке операционной системы. |`/boot/defaults/` -|Конфигурационные файлы, используемые в процессе загрузки операционной системы, со стандарными настройками. Обратитесь к man:loader.conf[5] для получения более подробной информации. +|Файлы конфигурации загрузки по умолчанию. Подробности смотрите в man:loader.conf[5]. |`/dev/` -|Специальные файлы устройств, управляемые при помощи man:devfs[5] +|Специальные файлы устройств, управляемые man:devfs[5] |`/etc/` -|Основные конфигурационные файлы системы и скрипты. +|Системные конфигурационные файлы и скрипты. |`/etc/defaults/` -|Конфигурационные файлы системы со стандартными настройками. Обратитесь к man:rc[8] для получения более подробной информации. +|Файлы конфигурации системы по умолчанию. Подробности смотрите в man:rc[8]. |`/etc/periodic/` -|Файлы сценариев, выполняемые ежедневно, еженедельно и ежемесячно при помощи man:cron[8]. Обратитесь к man:periodic[8] для получения более подробной информации. +|Скрипты, выполняемые ежедневно, еженедельно и ежемесячно, через man:cron[8]. Подробности смотрите в man:periodic[8]. |`/lib/` -|Критически важные системные библиотеки, необходимые для выполнимых файлов в `/bin` и `/sbin` +|Критические системные библиотеки, необходимые для бинарных файлов в `/bin` и `/sbin` |`/libexec/` -|Критически важные системные файлы +|Критические системные файлы |`/media/` -|Содержит подкаталоги для использования в качестве точек монтирования для сменных носителей, таких как CD, накопители USB и гибкие диски +|Содержит подкаталоги, предназначенные для использования в качестве точек монтирования съемных носителей, таких как компакт-диски, USB-накопители и дискеты |`/mnt/` -|Пустой каталог, часто используемый системными администраторами как временная точка монтирования. +|Пустая директория, обычно используемая системными администраторами в качестве временной точки монтирования. |`/net/` -|Автоматически монтируемые совместно используемые ресурсы NFS; обратитесь к man:auto_master[5] +|Автомонтируемые NFS-ресурсы; см. man:auto_master[5] |`/proc/` -|Файловая система процессов. Обратитесь к man:procfs[5] и man:mount_procfs[8] для получения более подробной информации. +|Файловая система процессов. Подробности смотрите в man:procfs[5]. |`/rescue/` -|Статически скомпилированные программы для восстановления после сбоев, как описано в man:rescue[8]. +|Статически связанные программы для аварийного восстановления, как описано в man:rescue[8]. |`/root/` -|Домашний каталог пользователя `root`. +|Домашний каталог для учетной записи `root`. |`/sbin/` -|Системные утилиты и утилиты администрирования, необходимые для работы как в однопользовательском, так и в многопользовательском режимах. +|Системные программы и административные утилиты, необходимые как для однопользовательского, так и для многопользовательского окружения. |`/tmp/` -|Временные файлы, которые обычно _не_ сохраняются при перезапуске системы. Размещаемая в оперативной памяти файловая система часто монтируется в `/tmp`. Это может быть автоматизировано с помощью переменных, относящихся к tmpmfs, в man:rc.conf[5] или с помощью записи в `/etc/fstab`; обратитесь к man:mdmfs[8] для получения более подробной информации. +|Временные файлы, которые обычно _не_ сохраняются после перезагрузки системы. Часто в `/tmp` монтируется файловая система в памяти. Это можно автоматизировать, используя переменные, связанные с tmpmfs, из man:rc.conf[5], или добавив запись в `/etc/fstab`; подробности смотрите в man:mdmfs[8]. |`/usr/` -|Основной набор пользовательских утилит и приложений. +|Большинство пользовательских утилит и приложений. |`/usr/bin/` -|Пользовательские утилиты и приложения общего назначения. +|Общие утилиты, инструменты программирования и приложения. |`/usr/include/` -|Стандартные заголовочные файлы для языка C. +|Стандартные включаемые файлы языка C. |`/usr/lib/` -|Архивные библиотеки. +|Библиотеки архивов. |`/usr/libdata/` -|Файлы данных для различных утилит. +|Различные вспомогательные файлы данных. |`/usr/libexec/` -|Системные даемоны и системные утилиты, вызываемые другими программами. +|Системные демоны и системные утилиты, выполняемые другими программами. |`/usr/local/` -|Локальные исполнимые файлы и библиотеки. Также используется в качестве стандартного целевого каталога в рамках инструментария портов FreeBSD. Внутри `/usr/local` общая структура каталогов должна следовать принципам, отражённым в man:hier[7] для `/usr`. Исключениями являются каталоги man, который расположен непосредственно в `/usr/local`, а не в `/usr/local/share`, и документация портов, которая располагается в `share/doc/port`. +|Локальные исполняемые файлы и библиотеки. Также используется как путь по умолчанию для установки портов FreeBSD. Внутри `/usr/local` должна использоваться общая структура каталогов, описанная в man:hier[7] для `/usr`. Исключениями являются каталог man, который находится непосредственно в `/usr/local`, а не в `/usr/local/share`, а документация портов располагается в `share/doc/port`. |`/usr/ports/` |Коллекция портов FreeBSD (опционально). |`/usr/sbin/` -|Системные даемоны и системные утилиты, запускаемые пользователями. +|Системные демоны и системные утилиты, выполняемые пользователями. |`/usr/share/` -|Файлы, не зависящие от архитектуры. +|Архитектурно-независимые файлы. |`/usr/src/` -|Исходные тексты BSD и/или локальных программ. +|BSD и/или локальные исходные файлы. |`/var/` -|Файлы журналов общего назначения, временные, перемещаемые файлы и файлы очередей печати. +|Многоцелевые файлы журналов, временные, транзиентные и файлы очередей. |`/var/log/` -|Файлы различных системных журналов. +|Различные системные журналы. |`/var/tmp/` -|Временные файлы, которые обычно сохраняются после перезапуска системы. +|Временные файлы, которые обычно сохраняются после перезагрузки системы. + |=== [[disk-organization]] -== Организация дисков +== Организация диска -Наименьшей единицей, которую FreeBSD использует для поиска файлов, является имя файла. -Имена файлов чувствительны к регистру, поэтому `readme.txt` и `README.TXT` являются двумя отдельными файлами. -FreeBSD не использует расширение файла для определения того, является ли файл программой, документом или какой-то иной формой данных. +Наименьшей единицей организации, которую FreeBSD использует для поиска файлов, является имя файла. Имена файлов чувствительны к регистру, что означает, что `readme.txt` и `README.TXT` — это два разных файла. FreeBSD не использует расширение файла для определения, является ли файл программой, документом или каким-либо другим видом данных. -Файлы хранятся в каталогах. -Каталоги могут не содержать файлов, либо могут содержать многие сотни файлов. -Каталог также может содержать другие каталоги, что позволяет иметь иерархию вложенных друг в друга каталогов для организации данных. +Файлы хранятся в каталогах. Каталог может не содержать файлов или содержать сотни файлов. Каталог также может содержать другие каталоги, что позволяет создавать иерархию вложенных каталогов для организации данных. -Обращение к файлам и каталогам осуществляется указанием имени файла или каталога, дополняемого прямым слэшем `/`, за которым при необходимости могут следовать имена других каталогов. -К примеру, если каталог `foo` содержит каталог `bar`, который содержит файл `readme.txt`, то полным именем, или _путём_ файла является `foo/bar/readme.txt`. -Заметьте, что это отличается от Windows(R), в которой для отделения имён файлов и каталогов используется `\`. -FreeBSD не использует символьных или каких-либо других именований устройств в пути. -К примеру, набирать `c:\foo\bar\readme.txt` во FreeBSD не имеет смысла. +Файлы и каталоги указываются путём перечисления имени файла или каталога, за которым следует косая черта `/`, а затем — при необходимости — другие имена каталогов. Например, если каталог `foo` содержит каталог `bar`, в котором находится файл `readme.txt`, то полное имя или _путь_ к файлу будет `foo/bar/readme.txt`. Обратите внимание, что это отличается от Windows(R), где для разделения имён файлов и каталогов используется `\`. В FreeBSD не используются буквы дисков или другие обозначения накопителей в пути. Например, в FreeBSD не указывают путь вида `c:\foo\bar\readme.txt`. [[disks-file-systems]] === Файловые системы -Каталоги и файлы хранятся в файловой системе. -Каждая файловая система на самом верхнем уровне содержит ровно один каталог, называемый _корневым каталогом_ этой файловой системы. -Этот корневой каталог может содержать другие каталоги. -Одна из файловых систем назначается _корневой файловой системой_, или `/`. -Любая другая файловая система _монтируется_ в корневой файловой системе. -Вне зависимости от того, сколько дисков присутствует в системе 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`. Если использовать man:ls[1] для просмотра содержимого этого каталога, будут видны два подкаталога, `A1` и `A2`. Дерево каталогов выглядит следующим образом: -image::example-dir1.png[Дерево каталогов с корневым каталогом и двумя подкаталогами, A1 и A2] +image::example-dir1.png["Дерево каталогов с корневым каталогом и двумя подкаталогами", A1 and A2] -Файловая система должна быть смонтирована в каталог другой файловой системы. -При монтировании файловой системы `B` в каталог `A1`, корневой каталог `B` заменяет `A1`, а каталоги в `B` отображаются в соответствии с этим: +Файловая система должна быть смонтирована в каталог другой файловой системы. При монтировании файловой системы `B` в каталог `A1` корневой каталог `B` заменяет `A1`, а каталоги в `B` отображаются соответствующим образом: -image::example-dir2.png[Дерево каталогов с корневым каталогом и двумя подкаталогами, A1 и A2. А также дополнительные подкаталоги, B1 и B2, подвешенные к A1] +image::example-dir2.png["Дерево каталогов с корневым каталогом и двумя подкаталогами", A1 and A2. And more subdirectories, B1 and B2 hanging from A1] -При необходимости к любым файлам, находящимся в каталогах `B1` или `B2`, можно обратиться по маршруту `/A1/B1` или `/A1/B2`. -Все файлы, находившиеся в `/A1`, временно скрыты. -Они появятся снова, если `B` будет _размонтирована_ с `A`. +Любые файлы в каталогах `B1` или `B2` доступны по пути `/A1/B1` или `/A1/B2` соответственно. Файлы, которые находились в `/A1`, временно скрыты. Они снова станут доступны, если `B` будет _отмонтирован_ из `A`. -Если `B` была смонтирована в `A2`, диаграмма будет выглядеть так: +Если бы `B` был смонтирован на `A2`, то диаграмма выглядела бы так: -image::example-dir3.png[Дерево каталогов с корневым каталогом и двумя подкаталогами, A1 и A2. А также дополнительные подкаталоги, B1 и B2, подвешенные к A2] +image::example-dir3.png["Дерево каталогов с корневым каталогом и двумя подкаталогами", A1 and A2. And more subdirectories, B1 and B2 hanging from A2] -а пути будут `/A2/B1` и `/A2/B2`, соответственно. +и пути будут `/A2/B1` и `/A2/B2` соответственно. -Файловые системы могут быть смонтированы одна на другую. Продолжая предыдущий пример, файловая система `C` может быть смонтирована на каталог `B1` файловой системы `B` в таком порядке: +Файловые системы могут монтироваться одна поверх другой. Продолжая последний пример, файловая система `C` может быть смонтирована поверх каталога `B1` в файловой системе `B`, что приведёт к следующей структуре: -image::example-dir4.png[Сложное дерево каталогов. Различные каталоги подвешены к корню.] +image::example-dir4.png["Сложная древовидная структура каталогов. С различными подкаталогами, отходящими от корневого."] -Или `C` может быть смонтирована прямо на файловую систему `A`, на каталог `A1`: +Или `C` может быть непосредственно смонтирована в файловую систему `A`, в каталог `A1`: -image::example-dir5.png[Сложное дерево каталогов. Различные каталоги подвешены к корню.] +image::example-dir5.png["Сложная древовидная структура каталогов. С различными подкаталогами, отходящими от корневого."] -Вполне возможно иметь одну большую корневую файловую систему и не иметь потребности в создании других. -У такого подхода есть несколько недостатков и одно преимущество. +Вполне возможно иметь одну большую корневую файловую систему и не создавать других. У такого подхода есть несколько недостатков и одно преимущество. .Преимущества нескольких файловых систем -* Различные файловые системы могут иметь различные _параметры монтирования_. Например, корневая файловая система может быть смонтирована в режиме доступности только для чтения, что делает невозможным случайное удаление или редактирование какого-то критически важного файла. Отделение файловых систем, доступных пользователям для записи, таких как `/home`, от других файловых систем позволяет монтировать их с параметром _nosuid_. Этот параметр отменяет действие битов _suid_/ _guid_ на исполняемых файлах в этой файловой системе, что потенциально повышает безопасность. -* FreeBSD автоматически оптимизирует расположение файлов на файловой системе в зависимости от того, как файловая система используется. Файловая система, содержащая множество мелких часто записываемых файлов, будет иметь оптимизацию, отличную от таковой для файловой системы, содержащей несколько больших файлов. На одной большой файловой системе эта оптимизация не работает. -* Файловые системы FreeBSD устойчивы к отключению электропитания. Тем не менее, потеря питания в критический момент все же может повредить структуру файловой системы. Разделение данных на несколько файловых систем повышает шансы, что система все-таки будет работать и делает более легким восстановление с резервной копии. +* Различные файловые системы могут иметь разные _параметры монтирования_. Например, корневая файловая система может быть смонтирована в режиме только для чтения, что предотвращает случайное удаление или редактирование важных файлов пользователями. Разделение файловых систем, доступных для записи пользователями, таких как `/home`, от остальных позволяет монтировать их с опцией _nosuid_. Эта опция предотвращает действие битов _suid_/_guid_ у исполняемых файлов, хранящихся в данной файловой системе, что может повысить безопасность. +* FreeBSD автоматически оптимизирует расположение файлов в файловой системе в зависимости от того, как она используется. Таким образом, файловая система, содержащая множество часто записываемых небольших файлов, будет оптимизирована иначе, чем система с меньшим количеством более крупных файлов. При использовании одной большой файловой системы такая оптимизация нарушается. +* Файловые системы FreeBSD устойчивы к потере питания. Однако отключение питания в критический момент всё же может повредить структуру файловой системы. Разделение данных между несколькими файловыми системами увеличивает вероятность успешной загрузки системы, упрощая восстановление из резервной копии при необходимости. -.Преимущество одной файловой системы -* Размер файловых систем фиксирован. Если вы создаете файловую систему при установке FreeBSD и задаете определенный размер, позднее вы можете обнаружить что нужен раздел большего размера. Это не так легко сделать без резервного копирования, создания файловых систем нового размера и последующего восстановления сохраненных данных. +.Преимущество единой файловой системы +* Файловые системы имеют фиксированный размер. Если вы создали файловую систему при установке FreeBSD и задали ей определённый размер, позже может оказаться, что раздел нужно увеличить. Это нелегко сделать без резервного копирования, пересоздания файловой системы с новым размером и последующего восстановления данных из резервной копии. + [IMPORTANT] ==== -Во FreeBSD имеется команда man:growfs[8], которая позволяет увеличивать размер файловой системы на лету, устраняя это ограничение. -Файловая системы может быть расширена только на свободное пространство раздела, в котором она находится. -Если имеется пространство за границей раздела, то раздел может быть увеличен при помощи man:gpart[8]. -Если раздел является последним на виртуальном диске, и диск был увеличен, то и раздел может быть увеличен. +FreeBSD предоставляет команду man:growfs[8], которая позволяет увеличивать размер файловой системы на лету, устраняя это ограничение. Файловая система может быть расширена только в свободное пространство раздела, в котором она находится. Если после раздела есть место, сам раздел можно расширить с помощью man:gpart[8]. Если раздел является последним на виртуальном диске и диск расширен, то раздел также можно расширить. ==== [[disks-partitions]] -=== Дисковые разделы +=== Разделы диска -Файловые системы размещаются в _разделах_. -Диски разбиваются на разделы в соответствии с одной из схем разбиения на разделы; обратитесь к разделу crossref:basics[bsdinstall-part-manual, Разметка в неавтоматизированном режиме]. -Более новой схемой является GPT; более старые компьютеры, применяющие BIOS, используют MBR. -GPT поддерживает разбиение диска на разделы, имеющие определённый размер, смещение и тип. -Она поддерживает большое количество разделов и типов разделов, и рекомендуется к использованию во всех случаях, где это возможно. -Разделы GPT используют имя диска с суффиксом, при этом суффикс `p1` обозначает первый раздел, `p2` второй раздел и так далее. -Однако MBR поддерживает лишь небольшое количество разделов. -Разделы MBR во FreeBSD называют `слайсами`. -Слайсы могут быть использованы для разных операционных систем. -Слайсы FreeBSD, в свою очередь, разбиваются на разделы при помощи меток BSD (обратитесь к man:bsdlabel[8]). +Файловые системы содержатся в _разделах_. Диски разделяются на разделы с использованием одной из нескольких схем разметки; см. crossref:bsdinstall[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. -Эти устройства используются файловыми системами, занимающими весь слайс. +Номера слайсов указываются после имени устройства с префиксом `s` и начинаются с 1. Таким образом, "da0__s1__" — это первый слайс на первом SCSI-диске. На диске может быть только четыре физических слайса, но внутри физических слайсов соответствующего типа могут находиться логические слайсы. Эти расширенные слайсы нумеруются, начиная с 5, поэтому "ada0__s5__" — это первый расширенный слайс на первом SATA-диске. Эти устройства используются файловыми системами, которые предназначены для размещения в слайсе. -Каждый раздел GPT или BSD может содержать только одну файловую систему, и это значит, что файловые системы описываются либо при помощи их типичных точек монтирования в иерархии файловой системы, либо по имени раздела, в котором они размещены. +Каждый раздел GPT или BSD может содержать только одну файловую систему, что означает, что файловые системы часто описываются либо по их стандартной точке монтирования в иерархии файловых систем, либо по имени раздела, в котором они находятся. -FreeBSD также использует дисковое пространство для _раздела подкачки_, обеспечивающего работу _виртуальной памяти_. Это позволяет вашему компьютеру работать так, как если бы у него было больше памяти, чем есть на самом деле. Когда у FreeBSD кончается память, она перемещает часть данных, не используемых в данный момент, в раздел подкачки и возвращает их обратно (перемещая в подкачку что-то другое), когда они нужны. -Это явление называется _подкачкой_. +FreeBSD также использует место на диске для _раздела подкачки_ (_swap space_), чтобы обеспечить работу _виртуальной памяти_. Это позволяет компьютеру вести себя так, как будто у него больше памяти, чем есть на самом деле. Когда FreeBSD исчерпывает доступную память, она перемещает часть данных, которые в данный момент не используются, в раздел подкачки, а затем возвращает их обратно (перемещая что-то другое), когда они нужны. Этот процесс называется _подкачкой_ (_paging_). -Для некоторых разделов BSD существуют определённые связанные с ними соглашения. +Некоторые разделы BSD имеют определенные соглашения, связанные с ними. [cols="25h,~"] |=== @@ -1310,74 +1108,64 @@ FreeBSD также использует дисковое пространств | Соглашение |`a` -|Как правило, содержит корневую файловую систему. +|Обычно содержит корневую файловую систему. |`b` -|Как правило, содержит пространство подкачки. +|Обычно содержит раздел подкачки. |`c` -|В обычном случае имеет такой же размер, что и окружающий слайс. Это позволяет утилитам, которым нужно обрабатывать весь слайс, таким, как сканер плохих блоков, использовать раздел `c`. В обычном случае создавать файловую систему в этом разделе не требуется. +|Обычно имеет тот же размер, что и окружающий слайс. Это позволяет утилитам, которым необходимо работать со всем слайсом, например, сканеру плохих блоков, работать с разделом `c`. Файловая система обычно не создается на этом разделе. |`d` -|Раздел `d` создавался для специальных целей, хотя сейчас они не актуальны и `d` может быть задействован как обычный раздел. +|Раздел `d` ранее имел особое значение, но сейчас это ушло в прошлое, и `d` может использоваться как обычный раздел. |=== -Слайсы и "опасно размеченные" физические устройства содержат разделы BSD, обозначаемые буквами от `a` до `h`. -Эта буква добавляется к имени устройства, и, таким образом, "da0__a__" является разделом `a` на первом устройстве `da`, являющемся "эксклюзивно выделенным". -"ada1s3__e__" является пятым разделом третьего слайса второго диска SATA. +Слайсы и «опасно выделенные» (dangerously dedicated) физические диски содержат разделы BSD, которые обозначаются буквами от `a` до `h`. Эта буква добавляется к имени устройства, поэтому «da0__a__» — это раздел `a` на первом диске `da`, который является «опасно выделенным». «ada1s3__e__» — это пятый раздел в третьем срезе второго диска SATA. -Наконец, каждый диск идентифицирован. Имя диска начинается с кода, обозначающего тип диска, затем идет номер диска. -В отличие от разделов и слайсов, нумерация дисков начинается с 0. -Часто встречающиеся коды перечислены в разделе crossref:basics[disks-naming,Имена дисковых устройств]. +Наконец, каждый диск в системе идентифицируется. Имя диска начинается с кода, указывающего тип диска, за которым следует номер, обозначающий конкретный диск. В отличие от разделов и слайсов, нумерация дисков начинается с 0. Распространённые коды перечислены в crossref:basics[disks-naming,Имена устройств дисков]. -Для ссылки на раздел внутри слайса указывайте имя диска, `s`, номер слайса, а затем букву раздела. -Примеры показаны в crossref:basics[basics-disk-slice-part,Примеры именований диска, слайса и раздела]. -В обозначение разделов GPT включается имя диска, `p`, а затем номер раздела. +При указании раздела в слайсе укажите имя диска, `s`, номер слайса, а затем букву раздела. Примеры приведены в разделе crossref:basics[basics-disk-slice-part,Примеры имен дисков, слайсов и разделов]. Разделы GPT включают имя диска, `p`, а затем номер раздела. -crossref:basics[basics-concept-disk-model,Концептуальная модель диска] отражает концептуальную модель рабиения диска с использованием слайсов MBR. -<<basics-concept-disk-model>> показывает концептуальную модель диска, которая должна помочь прояснить ситуацию. +crossref:basics[basics-concept-disk-model,Концептуальная модель диска] показывает концептуальную модель разметки диска с использованием разделов MBR. -При установке FreeBSD с использованием MBR настройте дисковые слайсы и создайте разделы внутри слайса для использования во FreeBSD. -При использовании GPT, настройте разделы для каждой файловой системы. -В любом случае создайте файловую систему или раздел подкачки в каждом разделе, а также решите, где будет монтироваться каждая из файловых систем. -Обратитесь к man:gpart[8] для получения информации о работе с разделами. +При установке FreeBSD настройте слайсы диска, если используется MBR, и создайте разделы внутри слайса, который будет использоваться для FreeBSD. Если используется GPT, настройте разделы для каждой файловой системы. В обоих случаях создайте файловую систему или область подкачки в каждом разделе и определите, где будет монтироваться каждая файловая система. Подробности о работе с разделами см. в man:gpart[8]. [[disks-naming]] -.Имена дисковых устройств +.Имена устройств дисков [cols="1,1", frame="none", options="header"] |=== -| Тип дискового устройства -| Имя дискового устройства +| Тип накопителя +| Имя устройства накопителя -|Приводы жёстких дисков SATA и IDE +|SATA и IDE жёсткие диски |`ada` -|Приводы жёстких дисков SCSI и устройства хранения USB +|SCSI жесткие диски и USB устройства хранения данных |`da` -|Устройства хранения с интерфейсом NVMe +|Хранилище NVMe |`nvd` или `nda` -|Приводы CD-ROM с интерфейсом SATA и IDE +|SATA и IDE приводы CD-ROM |`cd` -|Приводы CD-ROM с интерфейсом SCSI +|SCSI CD-ROM приводы |`cd` -|Приводы гибких дисков +|Накопители на гибких дисках |`fd` -|Ленточные накопители с интерфейсом SCSI +|SCSI-ленточные накопители |`sa` -|Устройства хранения RAID -|Например, `aacd` для Adaptec AdvancedRAID, `mlxd` и `mlyd` для Mylex, `amrd` для AMI MegaRAID, `idad` для Compaq Smart RAID и `twed` для 3ware RAID. +|RAID-диски +|Примеры включают `aacd` для Adaptec(R) AdvancedRAID, `mlxd` и `mlyd` для Mylex(R), `amrd` для AMI MegaRAID(R), `idad` для Compaq Smart RAID, `twed` для 3ware(R) RAID. |=== -[[basics-disk-slice-part]] -.Примеры именований диска, слайса и раздела [example] ==== +[[basics-disk-slice-part]] +.Примеры названий дисков, слайсов и разделов [.informaltable] [cols="1,1", frame="none", options="header"] |=== @@ -1385,10 +1173,10 @@ crossref:basics[basics-concept-disk-model,Концептуальная моде | Значение |`ada0s1a` -|Первый раздел (`a`) на первом слайсе (`s1`) первого диска SATA (`ada0`). +|Первый раздел (`a`) на первом слайсе (`s1`) на первом SATA-диске (`ada0`). |`da1s2e` -|Пятый раздел (`e`) на втором слайсе (`s2`) второго SCSI диска (`da1`). +|Пятый раздел (`e`) на втором срезе (`s2`) второго SCSI-диска (`da1`). |=== ==== @@ -1396,164 +1184,131 @@ crossref:basics[basics-concept-disk-model,Концептуальная моде .Концептуальная модель диска [example] ==== -Эта диаграмма изображает первый подключенный к системе диск SATA с точки зрения FreeBSD. -Предположим, что объём диска составляет 250 ГБ, и он содержит слайс размером 80 ГБ и слайс размером 170 ГБ (разделы MS-DOS(R)). -Первый слайс содержит файловую систему Windows(R) NTFS, `C:`, а второй слайс содержит установленную FreeBSD. -В этом примере установленная FreeBSD имеет четыре раздела с данными и раздел подкачки. +На этой диаграмме показано, как FreeBSD видит первый SATA-диск, подключённый к системе. Предположим, что размер диска составляет 250 ГБ, и он содержит раздел на 80 ГБ и раздел на 170 ГБ (разделы MS-DOS(R)). Первый раздел содержит файловую систему Windows(R) NTFS, `C:`, а второй раздел содержит установленную систему FreeBSD. В данном примере установки FreeBSD присутствуют четыре раздела с данными и один раздел подкачки. -Каждый из четырёх разделов содержит файловую систему. -Раздел `a` будет используется для корневой файловой системы, `d` для `/var/`, `e` для `/tmp/` и `f` для `/usr/`. -Раздел, обозначенный буквой `c`, соответствует всему слайсу и поэтому не используется как обычный раздел. +Четыре раздела содержат файловые системы. Раздел `a` используется для корневой файловой системы, `d` — для `/var/`, `e` — для `/tmp/`, а `f` — для `/usr/`. Буква раздела `c` относится ко всему слайсу и поэтому не используется для обычных разделов. -image::disk-layout.png[Разметка диска, разделённого между Windows и FreeBSD] +image::disk-layout.png["Компоновка общего диска между Windows и FreeBSD"] ==== [[mount-unmount]] -== Монтирование и размонтирование файловых систем +== Монтирование и демонтирование файловых систем -Файловая система лучше всего представима в виде дерева, которое, если можно так выразиться, растёт из `/`. -Каталоги `/dev`, `/usr` и прочие, находящиеся в корневом каталоге, являются ветвями и, в свою очередь, могут иметь собственные ветви, такие как `/usr/local`, и так далее. +Файловую систему удобно визуализировать как дерево, корнем которого является `/`. Каталоги `/dev`, `/usr` и другие в корневом каталоге представляют собой ветви, которые, в свою очередь, могут иметь собственные ветви, например `/usr/local`, и так далее. -Имеются разные основания для того, чтобы размещать некоторые из этих каталогов в отдельных файловых системах. -`/var` содержит каталоги `log/`, `spool/` и разные виды временных файлов и, таким образом, может полностью заполнить свободное дисковое пространство. -Заполнение корневой файловой системы нежелательно, поэтому часто предпочитают отделить `/var` от `/`. +Существуют различные причины для размещения некоторых из этих каталогов на отдельных файловых системах. `/var` содержит каталоги `log/`, `spool/` и различные типы временных файлов, поэтому может заполняться. Заполнение корневой файловой системы нежелательно, поэтому часто предпочтительно отделить `/var` от `/`. -Другой частой причиной для размещения определённых веток каталогов в отдельных файловых системах является их расположение на отдельных физических дисках, отдельных виртуальных дисках, например, в Network File System, описанной в отдельном crossref:network-servers[network-nfs,разделе], или на CDROM. +Еще одна распространённая причина размещать определённые каталоги на других файловых системах — это необходимость их размещения на отдельных физических дисках или виртуальных дисках, таких как сетевые файловые системы (NFS), описанные в crossref:network-servers[network-nfs,“Сетевая файловая система (NFS)”], или приводы CDROM. [[disks-fstab]] === Файл fstab -В процессе загрузки (crossref:boot[boot,Процесс загрузки FreeBSD]) файловые системы, перечисленные в `/etc/fstab`, монтируются автоматически, за исключением тех, для которых указан параметр `noauto`. -Этот файл содержит записи в следующем формате: +В процессе загрузки (crossref:boot[boot,Процесс загрузки FreeBSD]), файловые системы, перечисленные в `/etc/fstab`, автоматически монтируются, за исключением записей, содержащих `noauto`. Этот файл содержит записи в следующем формате: [.programlisting] .... -устройство /точка-монтирования тип файловой системы опции частота дампов passno +device /mount-point fstype options dumpfreq passno .... -`устройство`:: -Имя существующего устройства, соответствующее описанному в разделе crossref:basics[disks-naming,Имена дисковых устройств]. +`device`:: +Существующее имя устройства, как описано в crossref:basics[disks-naming,Имена устройств дисков]. -`точка монтирования`:: -Существующий каталог, предназначенный для монтирования файловой системы. +`mount-point`:: +Существующий каталог, на который монтируется файловая система. -`тип файловой системы`:: -Тип файловой системы, который передается программе man:mount[8]. По умолчанию FreeBSD использует `ufs`. +`fstype`:: +Тип файловой системы, передаваемый в man:mount[8]. Файловая система по умолчанию в FreeBSD — `ufs`. -`опции`:: -Либо `rw` для монтирования файловой системы в режиме чтения и записи, либо `ro` для файловых систем, доступных только в режиме чтения, за которыми могут следовать и другие нужные параметры. Довольно часто используется опция `noauto`, чтобы не монтировать автоматически файловые системы в процессе загрузки. Остальные параметры перечислены в man:mount[8]. +`options`:: +`rw` для файловых систем с доступом на чтение и запись или `ro` для файловых систем только для чтения, за которыми могут следовать другие необходимые опции. Часто используется опция `noauto` для файловых систем, которые обычно не монтируются при загрузке. Другие опции перечислены в man:mount[8]. -`частота дампов`:: -Используется утилитой man:dump[8] для указания файловых систем, с которых требуется снимать копии. При отсутствии этого параметра он принимает нулевое значение. +`dumpfreq`:: +Используется man:dump[8] для определения, какие файловые системы требуют дампинга. Если поле отсутствует, предполагается значение ноль. `passno`:: -Определяет порядок, в котором файловые системы формата UFS должны проверяться при помощи man:fsck[8] после перезагрузки. -Для файловых систем, которые должны быть пропущены при проверке, параметр `passno` должен быть установлен в нулевое значение. Корневая файловая система должна проверяться в первую очередь и иметь значение `passno`, установленное равным единице. Для других файловых систем значение этого параметра должно превышать единицу. Если две и более файловые системы имеют одинаковое значение `passno`, то man:fsck[8] будет пытаться проверять файловые системы параллельно, если это возможно. +Определяет порядок проверки файловых систем UFS с помощью man:fsck[8] после перезагрузки. Файловые системы, которые следует пропускать, должны иметь значение `passno`, равное нулю. Корневая файловая система должна проверяться первой и иметь значение `passno`, равное единице. Остальные файловые системы должны иметь значения больше единицы. Если несколько файловых систем имеют одинаковое значение `passno`, man:fsck[8] попытается проверять их параллельно, если это возможно. -Обратитесь к man:fstab[5] для получения дополнительной информацией о формате файла `/etc/fstab` и его параметрах. +См. man:fstab[5] для получения дополнительной информации о формате `/etc/fstab` и его параметрах. [[disks-mount]] === Использование man:mount[8] -Файловые системы монтируются при помощи man:mount[8]. -Самый простой формат имеет следующий вид: +Файловые системы монтируются с помощью man:mount[8]. Базовая синтаксическая конструкция выглядит следующим образом: [example] ==== -[source,shell] +[source, shell] .... -# mount __device__ __mountpoint__ +# mount device mountpoint .... ==== -Файловая система, включённая в `/etc/fstab`, также может быть смонтирована с указанием только лишь точки монтирования. +Файловая система, указанная в `/etc/fstab`, также может быть смонтирована, если указать только точку монтирования. -Эта команда имеет много параметров, описанных в man:mount[8]. -Самые часто используемые параметры таковы: +Эта команда предоставляет множество опций, которые описаны в man:mount[8]. Наиболее часто используемые опции включают: .Параметры монтирования `-a`:: -Смонтировать все файловые системы, перечисленные в файле `/etc/fstab`, за исключением тех, что помечены как "noauto", исключены параметром `-t` или уже смонтированы. +Смонтировать все файловые системы, перечисленные в `/etc/fstab`, за исключением тех, которые помечены как "noauto", исключены флагом `-t` или уже смонтированы. `-d`:: -Сделать все, кроме самого системного вызова mount. Эта опция полезна вместе с флагом `-v` для определения того, что на самом деле пытается сделать man:mount[8]. +Выполнить все действия, кроме самого системного вызова mount. Эта опция полезна в сочетании с флагом `-v` для определения того, что на самом деле пытается сделать man:mount[8]. `-f`:: -Принудительное монтирование непроверенного раздела (опасно) или аннулирование полномочий на операции записи данных при понижении статуса монтирования файловой системы с доступной на чтение-запись на доступной только для операций чтения. +Принудительно смонтировать поврежденную файловую систему (опасно) или отозвать права на запись при понижении статуса монтирования файловой системы с чтения-записи на только чтение. `-r`:: -Монтировать файловую систему в режиме только для чтения. Идентично использованию параметра `-o ro`. +Смонтировать файловую систему в режиме только для чтения. Это эквивалентно использованию `-o ro`. -`-t` _fstype_:: -Смонтировать указанный тип файловой системы или, в случае указания `-a`, монтировать файловые системы только данного типа. По умолчанию применяется тип файловой системы "ufs". +``-t _тип_фс_``:: +Смонтировать указанный тип файловой системы или смонтировать только файловые системы данного типа, если включен параметр `-a`. Тип файловой системы "ufs" используется по умолчанию. `-u`:: -Обновить опции монтирования для файловой системы. +Обновить параметры монтирования файловой системы. `-v`:: Выдавать более подробную информацию. `-w`:: -Монтировать файловую систему в режиме "чтение-запись". +Смонтировать файловую систему в режиме чтения-записи. -Следующие значения могут быть переданы в качестве аргументов `-o` в виде списка значений, разделённых запятыми: +Следующие параметры могут быть переданы в `-o` в виде списка, разделенного запятыми: -nosuid:: -Игнорировать setuid и setgid биты на файловой системе (еще одна полезная опция для повышения безопасности системы). +`nosuid`:: +Не интерпретировать флаги setuid или setgid на файловой системе. Это также полезная опция безопасности. [[disks-umount]] === Использование man:umount[8] -Для размонтирования файловой системы используйте man:umount[8]. -Эта команда принимает один параметр, который может соответствовать точке монтирования, имени устройства либо принимать значение `-a` или `-A`. +Для размонтирования файловой системы используйте man:umount[8]. Эта команда принимает один параметр, которым может быть точка монтирования, имя устройства, `-a` или `-A`. -Во всех вариантах принимается параметр `-f` для принудительного размонтирования и `-v` для выдачи подробной информации. -Имейте в виду, что применение `-f` в целом не рекомендутся, так как может привести к аварийному завершению работы компьютера или повредить данные в файловой системе. +Все формы команды принимают параметр `-f` для принудительного размонтирования и `-v` для вывода подробной информации. Учтите, что использование `-f` обычно не рекомендуется, так как это может привести к аварийному завершению работы компьютера или повреждению данных в файловой системе. -Для размонтирования всех смонтированных файловых систем или только тех типов файловых систем, что перечислены после параметра `-t`, воспользуйтесь параметрами `-a` и `-A`. -Заметьте, что при использовании `-A` попытка размонтирования корневой файловой системы не предпринимается. +Для размонтирования всех смонтированных файловых систем или только файловых систем указанных после `-t` типов используйте `-a` или `-A`. Обратите внимание, что `-A` не пытается размонтировать корневую файловую систему. [[basics-processes]] -== Процессы и даемоны - -FreeBSD является многозадачной операционной системой. -Каждая программа, выполняющаяся в некоторый выбранный момент времени, называется _процессом_. -Каждая запускаемая команда порождает хотя бы один новый процесс, и имеется определённое количество системных процессов, которые запускает FreeBSD. - -Каждый процесс идентифицируется уникальным номером, называемым _идентификатором процесса_ (_process ID_) или _PID_. -Подобно файлам, у каждого процесса имеется один владелец и группа, при этом полномочия владельца и группы используются для определения того, какие файлы и устройства могут быть открыты процессом. -У большинства процессов также есть родительский процесс, которых их запустил. -Например, командная оболочка является процессом, и любая команда, запущенная из командной оболочки, является процессом, для которого командная оболочка является родительским процессом. -Исключением из этого правила является специальный процесс, который называется man:init[8], который всегда является первым процессом, запускаемым во время загрузки, и который всегда имеет PID, равный `1`. - -Некоторые программы спроектированы не для того, чтобы работать в режиме ввода команд пользователя, и отключаются от терминала при первой возможности. -К примеру, веб-сервер отвечает на веб-запросы, а не на команды пользователя. -Другим примером такого типа приложений являются почтовые серверы. -Программы такого типа известны под названием _даемоны_. -Понятие даемона пришло из греческой мифологии и обозначает сущность, которая не является ни хорошей, ни плохой, и которая невидимо выполняет полезные дела. -Это объясняет тот факт, что талисманом BSD является дружелюбно выглядящий даемон в кедах и с вилами. - -Имеется соглашение, по которому программы, обычно работающие в режиме даемона, именуются с "d" в конце названия. -К примеру, BIND означает Berkeley Internet Name Domain, но на самом деле исполняемой программой является `named`. -Программой веб-сервера Apache является `httpd`, а даемоном очереди принтера является `lpd`. -Это всего лишь соглашение об именовании. -К примеру, основной почтовый даемон для приложения Sendmail называется `sendmail`, а не `maild`. +== Процессы и Демоны + +FreeBSD - это многозадачная операционная система. Каждая программа, выполняемая в любой момент времени, называется _процессом_. Каждая запущенная команда создает как минимум один новый процесс, и в системе FreeBSD выполняется ряд системных процессов. + +Каждый процесс однозначно идентифицируется числом, называемым _идентификатором процесса_ (PID). Подобно файлам, каждый процесс имеет владельца и группу, а права владельца и группы используются для определения того, какие файлы и устройства процесс может открыть. Большинство процессов также имеют родительский процесс, который их запустил. Например, оболочка — это процесс, и любая команда, запущенная в оболочке, является процессом, для которого оболочка выступает родительским процессом. Исключением является специальный процесс man:init[8], который всегда запускается первым при загрузке и всегда имеет PID `1`. + +Некоторые программы не предназначены для постоянного взаимодействия с пользователем и отключаются от терминала при первой возможности. Например, веб-сервер отвечает на веб-запросы, а не на действия пользователя. Почтовые серверы — ещё один пример таких приложений. Эти программы называются _демонами_. Термин «демон» происходит из греческой мифологии и обозначает сущность, которая не является ни доброй, ни злой и незаметно выполняет полезные задачи. Именно поэтому талисманом BSD стал улыбающийся демон в кроссовках и с вилами. + +Существует соглашение называть программы, которые обычно работают как демоны, с добавлением буквы "d" в конце. Например, BIND — это Berkeley Internet Name Domain, но фактическая программа, которая выполняется, называется `named`. Веб-сервер Apache называется `httpd`, а демон очереди печати — `lpd`. Это всего лишь соглашение об именовании. Например, основной почтовый демон для приложения Sendmail называется `sendmail`, а не `maild`. === Просмотр процессов -Для просмотра процессов, работающих в системе, воспользуйтесь man:ps[1] или man:top[1]. -Для выдачи статичного списка выполняемых в данный момент процессов, их PID, объёма используемой ими памяти и команды, которой они были запущены, используйте man:ps[1]. -Для отображения всех выполняющихся процессов и обновления этого списка каждые несколько секунд в целях интерактивного наблюдения за тем, что делает компьютер, используйте man:top[1]. +Чтобы просмотреть процессы, выполняемые в системе, используйте man:ps[1] или man:top[1]. Для отображения статичного списка текущих процессов, их PID, объема используемой памяти и команд, которыми они были запущены, используйте man:ps[1]. Для отображения всех выполняемых процессов с периодическим обновлением списка каждые несколько секунд, чтобы интерактивно наблюдать за работой компьютера, используйте man:top[1]. -По умолчанию man:ps[1] показывает пользователю только те команды, которые запущены пользователем и владельцем которых он является. -К примеру: +По умолчанию man:ps[1] отображает только команды, выполняемые и принадлежащие текущему пользователю. Например: -[source,shell] +[source, shell] .... % ps .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... @@ -1562,30 +1317,22 @@ FreeBSD является многозадачной операционной с 8895 0 R+ 0:00.00 ps .... -Выдача команды man:ps[1] организована в несколько столбцов. -Столбец `PID` отображает идентификатор процесса. -PID назначаются начиная с 1 и увеличиваются до 99999, а затем отсчёт начинается с начала. -Однако PID не назначается повторно, если он уже используется. -Столбец `TT` показывает терминал (tty), на котором выполняется программа, а `STAT` показывает состояние программы. -`TIME` соответствует количеству времени, которое программа выполняется на центральном процессоре. -Обычно это не то же самое время, что прошло с момента запуска программы, поскольку большинство программ проводят много времени в ожидании некоторого события, прежде чем занять время процессора. -Наконец, `COMMAND` содержит команду, которая использовалась для запуска программы. +Вывод команды man:ps[1] организован в несколько столбцов. В столбце `PID` отображается идентификатор процесса. PID начинаются с 1, достигают 99999, затем снова начинаются с начала. Однако, если PID уже используется, он не будет повторно назначен. Столбец `TT` показывает tty, на котором выполняется программа, а `STAT` отображает состояние программы. `TIME` — это время, в течение которого программа выполнялась на CPU. Обычно это не общее время с момента запуска программы, так как большинство программ проводят много времени в ожидании событий, прежде чем им потребуется время на CPU. Наконец, `COMMAND` — это команда, которая использовалась для запуска программы. -Имеется множество различных опций для изменения выводимой информации. -Один из наиболее полезных наборов опций это `auxww`, при этом `a` отображает информацию о всех запущенных процессах всех пользователей, `u` показывает имя и объём используемой памяти пользователя, владеющего процессом, `x` отображает информацию о процессах-даемонах, а `ww` указывает man:ps[1] на отображение всей командной строки для каждого процесса, вместо её обрезания в случае, если она слишком длинная, чтобы уместиться на экран. +Доступно несколько различных опций для изменения отображаемой информации. Один из наиболее полезных наборов — `auxww`, где `a` показывает информацию обо всех запущенных процессах всех пользователей, `u` отображает имя пользователя и использование памяти владельцем процесса, `x` показывает информацию о процессах демонов, а `ww` заставляет man:ps[1] выводить полную командную строку для каждого процесса вместо её обрезки, когда она становится слишком длинной для экрана. -Вывод man:top[1] выглядит похожим образом: +Вывод команды man:top[1] выглядит аналогично: -[source,shell] +[source, shell] .... % top .... -Выводимый текст должен быть похож на следующее: +Вывод должен быть похож на следующий: [.programlisting] .... -last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46 +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 @@ -1606,336 +1353,240 @@ Swap: 2048M Total, 2048M Free 1427 dru 5 22 0 605M 86412K select 1 0:05 0.00% kdeinit4 .... -Вывод разбит на два раздела. -Заголовок (первые пять или шесть строк) показывает PID последнего запущенного процесса, среднее значение загрузки системы (которое показывает насколько система занята), время работы системы с последней перезагрузки и текущее время. -Остальные числа в заголовке относятся к количеству работающих процессов, объёму использования оперативной памяти и пространства подкачки, а также количеству времени, проводимого системой в различных состояниях центрального процессора. -Если был загружен модуль файловой системы ZFS, то строка `ARC` содержит информацию о том, какой объём данных был считан из кэша оперативной памяти, а не с диска. +Вывод разделён на две части. Заголовок (первые пять или шесть строк) показывает PID последнего запущенного процесса, среднюю загрузку системы (которая отражает, насколько система занята), время работы системы (время с последней перезагрузки) и текущее время. Остальные данные в заголовке относятся к количеству запущенных процессов, объёму используемой оперативной памяти и файла подкачки (свопа), а также времени, которое система проводит в различных состояниях процессора. Если загружен модуль файловой системы ZFS, строка `ARC` указывает, сколько данных было прочитано из кэша памяти, а не с диска. -Под заголовком размещены несколько столбцов, содержащих информацию, похожую на результат работы man:ps[1], такую как PID, имя пользователя, объём времени ЦПУ и команда, которая запустила процесс. -По умолчанию man:top[1] показывает также объём памяти, занятой процессом. -Эта информация разделена на два столбца: один для суммарного объёма и один для занимаемого. -Суммарный объём соответствует тому, что требовался приложению, а занимаемый соответствует объёму, фактически используемому сейчас. +Ниже заголовка расположен ряд столбцов с информацией, аналогичной выводу команды man:ps[1], такой как PID, имя пользователя, объем CPU времени и команда, запустившая процесс. По умолчанию man:top[1] также отображает объем памяти, занимаемый процессом. Эта информация разделена на два столбца: один для общего размера и один для резидентного размера. Общий размер — это объем памяти, который потребовался приложению, а резидентный размер — это объем, который оно фактически использует в данный момент. -man:top[1] автоматически обновляет экран каждые две секунды. -Другое значение этого временного интервала может быть задано при помощи параметра `-s`. +man:top[1] автоматически обновляет отображение каждые две секунды. Другой интервал можно указать с помощью `-s`. [[basics-daemons]] === Прекращение процессов -Одним из способов взаимодействия с любым работающим процессом или даемоном является отправка ему _сигнала_ при помощи команды man:kill[1]. -Имеется множество различных сигналов; некоторые из них имеют специальное значение, тогда как другие описаны в документации приложения. -Пользователь может посылать какой-либо сигнал только тем процессам, владельцем которых он является, а отправка сигнала процессу какого-то другого пользователя приведёт к ошибке запрета доступа. -Исключением является пользователь `root`, который может отправлять сигналы чьим угодно процессам. +Один из способов взаимодействия с любым запущенным процессом или демоном — отправить _сигнал_ с помощью man:kill[1]. Существует множество различных сигналов; некоторые имеют определённое значение, в то время как другие описаны в документации приложения. Пользователь может отправлять сигналы только своим процессам, и попытка отправить сигнал чужому процессу приведёт к ошибке отказа в доступе. Исключением является пользователь `root`, который может отправлять сигналы любым процессам. -Операционная система также может отправлять сигнал процессу. -Если приложение написано некорректно и пытается обратиться к области памяти, к которой оно не должно обращаться, FreeBSD посылает процессу сигнал "Segmentation Violation" (`SIGSEGV`). -Если приложение было написано с учётом использования системного вызова man:alarm[3] для получения уведомления по истечении определённого периода времени, то ему будет отправлен сигнал "Alarm" (`SIGALRM`). +Операционная система также может отправлять сигналы процессу. Если приложение написано с ошибками и пытается получить доступ к памяти, к которой оно не должно обращаться, FreeBSD отправит процессу сигнал "Нарушение сегментации" (`SIGSEGV`). Если приложение было написано с использованием системного вызова man:alarm[3] для оповещения по истечении определенного времени, ему будет отправлен сигнал "Будильник" (`SIGALRM`). -Для остановки процесса могут использоваться два сигнала: `SIGTERM` и `SIGKILL`. -`SIGTERM` является вежливым способом завершить процесс, так как процесс может считать сигнал, закрыть какие-либо протоколирующие файлы, которые он мог открыть, и завершить то, что он делал до завершения работы. -В некоторых случаях процесс может даже игнорировать `SIGTERM`, если выполняет задачу, которая не может быть прервана. +Для остановки процесса могут использоваться два сигнала: `SIGTERM` и `SIGKILL`. `SIGTERM` — это вежливый способ завершить процесс, так как процесс может прочитать сигнал, закрыть все открытые файлы журналов и попытаться завершить текущие операции перед остановкой. В некоторых случаях процесс может игнорировать `SIGTERM`, если он находится в середине задачи, которую нельзя прервать. -`SIGKILL` не может быть проигнорирован процессом. -Отправка процессу `SIGKILL` обычно остановит этот процесс тотчас же. +`SIGKILL` не может быть проигнорирован процессом. Отправка `SIGKILL` процессу обычно немедленно останавливает этот процесс. footnote:[Существует несколько задач, которые не могут быть прерваны. Например, если процесс пытается прочитать файл, находящийся на другом компьютере в сети, и этот компьютер недоступен, процесс считается непрерываемым. В конечном итоге процесс завершится по таймауту, обычно через две минуты. Как только это произойдет, процесс будет убит.]. -[NOTE] -==== -Существует несколько задач, которые не могут быть прерваны. -К примеру, если процесс пытается выполнить чтение файла, находящегося на другом компьютере в сети, а другой компьютер недоступен, то такой процесс называют "непрерываемым". -В конце концов время процесса истечёт, обычно после двух минут ожидания. -Как только такой таймаут случится, процесс будет прекращён. -==== +Другие часто используемые сигналы — это `SIGHUP`, `SIGUSR1` и `SIGUSR2`. Поскольку они предназначены для общего применения, разные программы могут реагировать на них по-разному. -Другими часто используемыми сигналами являются `SIGHUP`, `SIGUSR1` и `SIGUSR2`. -Так как эти сигналы являются сигналами общего назначения, различные приложения будут реагировать на них по-разному. - -Например, после внесения изменений в конфигурационный файл веб-сервера ему нужно указать на повторное считывание настроек. -Перезапуск `httpd` привёл бы к краткосрочной недоступности веб-сервера. -Вместо этого отправьте даемону сигнал `SIGHUP`. -Имейте в виду, что разные даемоны будут вести себя по-разному, поэтому обратитесь к документации по даемону для определения того, достигнет ли `SIGHUP` желаемых результатов. +Например, после изменения конфигурационного файла веб-сервера необходимо указать веб-серверу перечитать его конфигурацию. Перезапуск `httpd` приведёт к кратковременному простою веб-сервера. Вместо этого отправьте демону сигнал `SIGHUP`. Учтите, что разные демоны могут вести себя по-разному, поэтому обратитесь к документации демона, чтобы определить, приведёт ли `SIGHUP` к желаемому результату. [IMPORTANT] ==== -Прекращение случайного процесса в системе является плохой затеей. -В частности, man:init[8], чей PID равен 1, является особенным процессом. -Выполнение `/bin/kill -s KILL 1` является быстрым и нерекомендуемым способом завершить работу системы. -_Всегда_ дважды проверяйте параметры запуска man:kill[1] _перед_ тем, как нажать на kbd:[Return]. +Убить случайный процесс в системе — плохая идея. В частности, man:init[8], PID 1, является особым. Запуск `/bin/kill -s KILL 1` — это быстрый, но не рекомендуемый способ выключить систему. _Всегда_ перепроверяйте аргументы для man:kill[1] _перед_ нажатием kbd:[Return]. ==== [[shells]] -== Командные процессоры - -_Командный процессор_ (или оболочка) предоставляет интерфейс командной строки для взаимодействия с операционной системой. -Командный процессор получает команды из канала ввода и исполняет их. -Многие командные интерпретаторы имеют встроенные функции, помогающие выполнять такие повседневной задачи, как управление файлами, включая их массовую обработку, редактирование командной строки, работа с макрокомандами и переменными окружения. -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,Часто используемые переменные окружения] содержит список часто используемых переменных окружения и их значений. -Заметьте, что имена переменных окружения всегда пишутся заглавными буквами. +== Оболочки + +_Оболочка_ предоставляет интерфейс командной строки для взаимодействия с операционной системой. Оболочка получает команды из входного канала и выполняет их. Многие оболочки предоставляют встроенные функции для помощи в повседневных задачах, таких как управление файлами, подстановка имён файлов (file globbing), редактирование командной строки, макросы команд и переменные окружения. FreeBSD поставляется с несколькими оболочками, включая Bourne shell (man:sh[1]) и расширенную C shell (man:tcsh[1]). Другие оболочки доступны в коллекции портов FreeBSD, например `zsh` и `bash`. + +Используемая оболочка — это действительно вопрос предпочтений. Программисту на 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,~"] |=== | Переменная | Описание |`USER` -|Имя текущего пользователя. +|Имя текущего вошедшего пользователя. |`PATH` -|Каталоги, разделенные двоеточием, для поиска исполняемых файлов. +|Двоеточием разделённый список каталогов для поиска бинарных файлов. |`DISPLAY` -|Сетевое имя дисплея Xorg для подключения при его доступности. +|Сетевое имя дисплея Xorg для подключения, если доступно. |`SHELL` -|Текущий командный интерпретатор. +|Текущая оболочка. |`TERM` -|Тип терминала пользователя. Используется, чтобы узнать возможности терминала. +|Имя типа терминала пользователя. Используется для определения возможностей терминала. |`TERMCAP` -|Список escape-последовательностей для управления различными функциями терминала. +|Запись в базе данных escape-кодов терминала для выполнения различных функций терминала. |`OSTYPE` -|Вид операционной системы. +|Тип операционной системы. |`MACHTYPE` -|Процессорная архитектура системы. +|Архитектура процессора системы. |`EDITOR` -|Выбранный пользователем текстовый редактор. +|Предпочитаемый текстовый редактор пользователя. |`PAGER` -|Предпочитаемая пользователем утилита для постраничного просмотра текста. +|Предпочитаемая пользователем утилита для просмотра текста постранично. |`MANPATH` -|Каталоги, разделенные двоеточием, для поиска файлов системного справочника. +|Двоеточием разделённый список каталогов для поиска страниц руководства. |=== -Порядок установки значения переменной окружения различна для разных оболочек. -В командных процессорах man:tcsh[1] и man:csh[1] для задания переменных окружения используется `setenv`. -В интерпретаторах man:sh[1] и `bash` для задания актуального значения переменных окружения используется `export`. -В этом примере для man:tcsh[1] значение по умолчанию для переменной `EDITOR` устанавливается равным `/usr/local/bin/emacs`: +Как установить переменную окружения, зависит от используемой оболочки. В man:tcsh[1] и man:csh[1] используйте `setenv` для установки переменных окружения. В man:sh[1] и `bash` используйте `export` для установки текущих переменных окружения. В этом примере устанавливается значение `EDITOR` по умолчанию в `/usr/local/bin/emacs` для оболочки man:tcsh[1]: -[source,shell] +[source, shell] .... % setenv EDITOR /usr/local/bin/emacs .... -Аналогичная команда для `bash` была бы следующей: +Эквивалентная команда для `bash` будет: -[source,shell] +[source, shell] .... % export EDITOR="/usr/local/bin/emacs" .... -Чтобы раскрыть значение переменной окружения для того, чтобы посмотреть её текущее значение, в командной строке наберите символ `$` перед именем переменной. -Например, `echo $TERM` выведет актуальное значение для `$TERM`. +Чтобы раскрыть переменную окружения и увидеть её текущее значение, введите символ `$` перед её именем в командной строке. Например, `echo $TERM` выведет текущее значение переменной `$TERM`. -Командные процессоры обрабатывают специальные символы, называемые метасимволами, как особое обозначение данных. -Самым общеупотребительным метасимволом является `\*`, который обозначает любое количество символов в имени файла. -Метасимволы могут использоваться для выполнения массовых операций с именами файлов. -Например, команда `echo *` равнозначна команде `ls`, поскольку оболочка выбирает все файлы, соответствующие `*`, а `echo` выдаёт их список в командной строке. +Оболочки интерпретируют специальные символы, известные как метасимволы, как особые представления данных. Наиболее распространённый метасимвол — `\*`, который обозначает любое количество символов в имени файла. Метасимволы могут использоваться для подстановки имён файлов (globbing). Например, команда `echo *` эквивалентна `ls`, поскольку оболочка выбирает все файлы, соответствующие шаблону `\*`, а `echo` выводит их в командной строке. -Чтобы предотвратить обработку специального символа командным процессором, экранируйте его, предварив наклонной чертой влево `\` (обратным слэшем). -Например, `echo $TERM` выведет значение настройки терминала, тогда как `echo \$TERM` выведет в буквальном смысле строку `$TERM`. +Чтобы предотвратить интерпретацию специального символа оболочкой, экранируйте его с помощью обратной косой черты (`\`). Например, `echo $TERM` выводит настройки терминала, тогда как `echo \$TERM` выводит строку `$TERM` буквально. [[changing-shells]] -=== Смена командного процессора +=== Изменение оболочки -Самым простым способом замены командного процессора, используемого по умолчанию, на постоянной основе является использование команды `chsh`. -При запуске этой команды открывается редактор, настроенный в переменной окружения `EDITOR`, значение которой по умолчанию равно man:vi[1]. -Измените строку `Shell:`, указав полный путь для нового командного процессора. +Самый простой способ навсегда изменить оболочку по умолчанию — использовать `chsh`. Запуск этой команды откроет редактор, настроенный в переменной окружения `EDITOR`, которая по умолчанию установлена в man:vi[1]. Измените строку `Shell:` на полный путь к новой оболочке. -Альтернативным способом является использование команды `chsh -s`, которая настроит указанную оболочку без открытия редактора. -Например, для замены командного процессора на `bash`: +Или используйте `chsh -s`, который установит указанную оболочку без открытия редактора. Например, чтобы изменить оболочку на `bash`: -[source,shell] +[source, shell] .... % chsh -s /usr/local/bin/bash .... -Введите ваш пароль в строке приглашения и нажмите kbd:[Return] для смены вашего командного процессора. -Для того, чтобы начать использовать новую оболочку, выйдите из системы и войдите в неё снова. +Введите пароль в командной строке и нажмите kbd:[Return], чтобы изменить оболочку. Выйдите из системы и войдите снова, чтобы начать использовать новую оболочку. [NOTE] ==== -Новая оболочка _обязательно_ должна присутствовать в файле `/etc/shells`. -Если командный процессор был установлен из Коллекции портов FreeBSD, как это описано в главе <<ports>>, то он должен быть добавлен в этот файл автоматически. -Если его там нет, добавьте его при помощи следующей команды, заменив путь на маршрут соответствующей оболочки: +Новая оболочка *обязательно* должна присутствовать в `/etc/shells`. Если оболочка была установлена из Коллекции портов FreeBSD, как описано в crossref:ports[ports,Установка приложений: Пакеты и порты], она должна быть автоматически добавлена в этот файл. Если её там нет, добавьте её с помощью следующей команды, заменив путь на путь к вашей оболочке: -[source,shell] +[source, shell] .... # echo /usr/local/bin/bash >> /etc/shells .... -После этого запустите man:chsh[1] повторно. +Затем снова запустите man:chsh[1]. ==== -=== Расширенные функции оболочки +=== Продвинутые методы работы с оболочкой -Оболочка UNIX(R) является не только лишь интерпретатором команд, она также выступает в роли мощного инструмента, позволяющего пользователям выполнять команды, перенаправлять их результирующий и входной потоки, а также выстраивать последовательность команд для улучшения выдачи финализирующей команды. -Когда такая функциональность объединяется со встроенными командами, пользователь получает окружение, которое может дать максимальный эффект. +UNIX(R) оболочка — это не просто командный интерпретатор, а мощный инструмент, который позволяет пользователям выполнять команды, перенаправлять их вывод и ввод, а также объединять команды в цепочки для улучшения конечного результата. В сочетании со встроенными командами это предоставляет пользователю среду, способную максимизировать эффективность работы. -Перенаправление на уровне оболочки представляет собой действие по отправке результата работы или входного потока какой-либо команды в другую команду или в файл. -Для записи результата работы команды man:ls[1], например, в файл, перенаправьте выходной поток: +Перенаправление в оболочке — это действие отправки вывода или ввода команды в другую команду или файл. Например, чтобы сохранить вывод команды man:ls[1] в файл, перенаправьте вывод: -[source,shell] +[source, shell] .... % ls > directory_listing.txt .... -Список содержимого каталога теперь будет находиться в `directory_listing.txt`. -Некоторые команды, подобные man:sort[1], могут использоваться для чтения входного потока. -Для сортировки этого списка перенаправьте входной поток: +Содержимое каталога теперь будет отображено в файле `directory_listing.txt`. Некоторые команды, например man:sort[1], могут использоваться для чтения ввода. Чтобы отсортировать этот список, перенаправьте ввод: -[source,shell] +[source, shell] .... % sort < directory_listing.txt .... -Входной поток будет отсортирован и размещён на экране. -Для перенаправления этого ввода в другой файл можно перенаправить выходной поток man:sort[1], объединив направление: +Входные данные будут отсортированы и выведены на экран. Чтобы перенаправить эти данные в другой файл, можно перенаправить вывод `man:sort[1]`, изменив направление: -[source,shell] +[source, shell] .... % sort < directory_listing.txt > sorted.txt .... -Во всех примерах выше команды выполняют перенаправление при помощи файловых дескрипторов. -В каждой системе UNIX(R) имеются файловые дескрипторы, среди которых имеются стандартный ввод (stdin), стандартный вывод (stdout) и стандартная диагностика (stderr). -У каждого из них имеется своё назначение, и здесь вводом может быть клавиатура или мышь, что-то, формирующее входной поток. -Выводом может быть экран или бумага в принтере. -А диагностикой может быть что угодно, используемое для диагностических сообщений или сообщений об ошибках. -Все три рассматриваются как файловые дескрипторы ввода-вывода и иногда рассматриваются как потоки. +Во всех предыдущих примерах команды выполняют перенаправление с использованием файловых дескрипторов. Каждая UNIX(R)-система имеет файловые дескрипторы, включая стандартный ввод (stdin), стандартный вывод (stdout) и стандартный вывод ошибок (stderr). Каждый из них имеет своё назначение: ввод может осуществляться с клавиатуры или мыши — устройств, предоставляющих входные данные. Вывод может направляться на экран или бумагу в принтере. А ошибки — это всё, что используется для диагностических или сообщений об ошибках. Все три типа считаются файловыми дескрипторами, основанными на вводе-выводе, и иногда называются потоками. -Посредством использования этих дескрипторов командный процессор обеспечивает прохождение ввода и вывода через различные команды и их перенаправление в файл или из файла. -Ещё одним методом перенаправления является оператор конвейера. +С помощью этих дескрипторов оболочка позволяет передавать вывод и ввод между различными командами и перенаправлять их в файл или из файла. Другой метод перенаправления — оператор конвейера. -Оператор конвейера UNIX(R), "|", позволяет прямую передачу или перенаправление вывода одной команды в другую программу. -Проще говоря, конвейер позволяет передавать стандартный вывод какой-либо команды в качестве стандартного ввода другой команде, к примеру: +Оператор UNIX(R) pipe, `|`, позволяет передавать вывод одной команды напрямую или направлять его другой программе. По сути, pipe позволяет передать стандартный вывод одной команды в качестве стандартного ввода другой команды, например: -[source,shell] +[source, shell] .... % cat directory_listing.txt | sort | less .... -В этом примере содержимое `directory_listing.txt` будет отсортировано, а вывод передан в man:less[1]. -Это позволяет пользователю просматривать результат в собственном темпе и не позволяет выходить за рамки экрана. +В этом примере содержимое файла `directory_listing.txt` будет отсортировано, а вывод передан в man:less[1]. Это позволяет пользователю прокручивать вывод в удобном темпе и предотвращает его исчезновение с экрана. [[editors]] == Текстовые редакторы -Большинство настроек FreeBSD осуществляется редактированием текстовых файлов. -В силу этого обстоятельства хорошей идеей является освоение текстового редактора. -Несколько редакторов поставляются с FreeBSD в составе базового комплекта системы, и гораздо больше доступно в Коллекции портов. +Большая часть настройки FreeBSD выполняется путём редактирования текстовых файлов, поэтому рекомендуется освоить текстовый редактор. В базовую систему FreeBSD входит несколько таких редакторов, а ещё больше доступно в Коллекции портов. -Простым в освоении редактором является man:ee[1], что означает "easy editor" ("лёгкий редактор"). -Чтобы запустить его, наберите `ee _filename_`, где _filename_ является именем редактируемого файла. -Внутри редактора все команды для управления его функциями перечислены вверху экрана. -Карет (`^`) обозначает клавишу kbd:[Ctrl], таким образом, `^e` означает комбинацию клавиш kbd:[Ctrl+e]. -Чтобы выйти из man:ee[1], нажмите клавишу kbd:[Esc], затем выберите пункт "leave editor" в главном меню. -Редактор запросит сохранение изменений, если файл был изменён. +Простой редактор для освоения — это man:ee[1], что означает «легкий редактор». Чтобы запустить его, введите `ee _имя_файла_`, где _имя_файла_ — это имя редактируемого файла. Внутри редактора все команды для управления его функциями перечислены в верхней части экрана. Символ каретки (`^`) обозначает kbd:[Ctrl], поэтому `^e` означает kbd:[Ctrl+e]. Для выхода из man:ee[1] нажмите kbd:[Esc] и выберите пункт «покинуть редактор» в главном меню. Если файл был изменен, редактор предложит сохранить изменения. -Во FreeBSD также имеются более мощные текстовые редакторы типа man:vi[1], поставляемого как часть базового системного комплекта. -Другие редакторы, подобные package:editors/emacs[] и package:editors/vim[], являются частью Коллекции портов FreeBSD. -Эти редакторы обладают большей функциональностью, но также они более сложны в изучении. -Изучение более мощных редакторов типа vim или Emacs может сэкономить вам больше времени в долгосрочной перспективе. +FreeBSD также включает более мощные текстовые редакторы, такие как man:vi[1], в составе базовой системы. Другие редакторы, например package:editors/emacs[] и package:editors/vim[], доступны в коллекции портов FreeBSD. Эти редакторы предоставляют больше возможностей, но их освоение сложнее. Изучение более мощного редактора, такого как vim или Emacs, может сэкономить время в долгосрочной перспективе. -Многие приложения, модифицирующие файлы или требующие текстового ввода, автоматически открывают текстовый редактор. -Чтобы сменить редактор, заданный по умолчанию, определите значение переменной окружения `EDITOR`, как это описано в разделе crossref:basics[shells, Командные процессоры]. +Многие приложения, которые изменяют файлы или требуют ввода текста, автоматически открывают текстовый редактор. Чтобы изменить редактор по умолчанию, установите переменную окружения `EDITOR`, как описано в crossref:basics[shells, Оболочки]. [[basics-devices]] -== Устройства и файлы устройств +== Устройства и Узлы Устройств -Термин "устройство" используется в основном по отношению к аппаратному обеспечению системы, такому как диски, принтеры, графические адаптеры и клавиатуры. -При загрузке FreeBSD основной объём выдаваемых сообщений относится к обнаруживаемым устройствам. -Копии сообщений, выдаваемых при загрузке, сохраняются в `/var/run/dmesg.boot`. +Устройство — это термин, в основном используемый для описания аппаратных компонентов системы, таких как диски, принтеры, видеокарты и клавиатуры. При загрузке FreeBSD большинство сообщений относятся к обнаружению устройств. Копия этих сообщений сохраняется в файле `/var/run/dmesg.boot`. -Каждое устройство имеет имя и номер. -Например, `ada0` соответствует первому приводу жёстких дисков с интерфейсом SATA, а `kbd0` представляет собой клавиатуру. +У каждого устройства есть имя и номер. Например, `ada0` — это первый жёсткий диск SATA, а `kbd0` обозначает клавиатуру. -Во FreeBSD доступ к большинству устройств обязательно должен осуществляться через специальные файлы, называемые узлами устройств, которые размещаются в `/dev`. +Большинство устройств в FreeBSD должны быть доступны через специальные файлы, называемые узлами устройств, которые расположены в `/dev`. [[basics-more-information]] -+== Страницы Справочника +== Справочник -Пожалуй, самая полная документация по FreeBSD имеет форму страниц справочной системы. Практически каждое приложение или утилита имеют соответствующую страницу (часто не одну), описывающую основы работы и различные параметры. -Эти справочники можно просматривать при помощи `man`: +Наиболее полная документация по FreeBSD представлена в виде Справочника (manual pages). Почти каждая программа в системе имеет краткое справочное руководство, объясняющее основы работы и доступные аргументы. Эти руководства можно просматривать с помощью команды `man`: -[source,shell] +[source, shell] .... % man command .... -Здесь _command_ является названием команды, информацию о которой нужно получить. -Например, чтобы узнать больше о команде man:ls[1], наберите: +где _command_ — это название команды, о которой нужно узнать больше. Например, чтобы узнать больше о man:ls[1], введите: -[source,shell] +[source, shell] .... % man ls .... -Страницы Справочника разделены на разделы, соответствующие различному типу содержимого. -Во FreeBSD имеются следующие разделы: +Страницы Справочника разделены на разделы, которые обозначают тип темы. В FreeBSD доступны следующие разделы: . Пользовательские команды. . Системные вызовы и коды ошибок. -. Функции стандартных библиотек. +. Функции в библиотеках C. . Драйверы устройств. . Форматы файлов. -. Развлечения и игры. -. Дополнительная информация. -. Команды системного администрирования. +. Развлечения и другие игры. +. Различная информация. +. Системные команды обслуживания и эксплуатации. . Интерфейсы ядра системы. -В некоторых случаях одна и та же тема может появиться в различных разделах справочника. -Например, существуют пользовательская команда `chmod` и системный вызов `chmod()`. -Для указания команде man:man[1] искомого раздела задайте его номер: +В некоторых случаях одна и та же тема может встречаться в нескольких разделах онлайн-руководства. Например, существует пользовательская команда `chmod` и системный вызов `chmod()`. Чтобы указать man:man[1], какой раздел отображать, укажите номер раздела: -[source,shell] +[source, shell] .... % man 1 chmod .... -При этом будет выведена справка о пользовательской команде man:chmod[1]. -По традиции документирования ссылки на конкретный раздел онлайного справочника указываются в скобках, так что man:chmod[1] относится к пользовательской команде, man:chmod[2] указывает на соответствующий системный вызов. +Это отобразит справочную страницу для пользовательской команды man:chmod[1]. Ссылки на определённый раздел онлайн-руководства традиционно заключаются в скобки в письменной документации, поэтому man:chmod[1] относится к пользовательской команде, а man:chmod[2] — к системному вызову. -Если название страницы Справочника неизвестно, воспользуйтесь `man -k` для поиска по ключевым словам, встречающимся в описаниях страниц Справочника: +Если название страницы руководства неизвестно, используйте `man -k` для поиска ключевых слов в описаниях страниц руководства: -[source,shell] +[source, shell] .... % man -k mail .... -Эта команда выдаёт список команд, имеющих ключевое слово "mail" в своих описаниях. -Это равнозначно использованию команды man:apropos[1]. +Эта команда выводит список команд, содержащих ключевое слово "mail" в их описаниях. Это эквивалентно использованию man:apropos[1]. -Чтобы прочитать описания всех команд из `/usr/sbin`, наберите: +Чтобы прочитать описания всех команд в `/usr/sbin`, введите: -[source,shell] +[source, shell] .... % cd /usr/sbin % man -f * | more @@ -1943,7 +1594,7 @@ crossref:basics[shell-env-vars,Часто используемые переме или -[source,shell] +[source, shell] .... % cd /usr/sbin % whatis * |more @@ -1952,16 +1603,13 @@ crossref:basics[shell-env-vars,Часто используемые переме [[basics-info]] === Файлы GNU Info -FreeBSD поставляется с некоторым количеством приложений и утилит, выпущенных Free Software Foundation (FSF). -В дополнение к страницам справочника, с этими программами могут поставляться гипертекстовые документы в виде так называемых файлов `info`. -Они могут быть просмотрены с помощью команды man:info[1] или, если установлен пакет package:editors/emacs[], в режиме info редактора emacs. +FreeBSD включает несколько приложений и утилит, созданных Free Software Foundation (FSF). Помимо man-страниц, эти программы могут содержать гипертекстовые документы, называемые файлами `info`. Их можно просматривать с помощью man:info[1] или, если установлен package:editors/emacs[], в режиме info редактора emacs. -Чтобы использовать man:info[1], наберите: +Чтобы использовать man:info[1], введите: -[source,shell] +[source, shell] .... % info .... -Вызвать на экран краткое введение можно набрав `h`. -Краткий список команд можно получить, набрав `?`. +Для краткого введения введите `h`. Для быстрой справки по командам введите `?`. diff --git a/documentation/content/ru/books/handbook/basics/_index.po b/documentation/content/ru/books/handbook/basics/_index.po new file mode 100644 index 0000000000..5dec7d6bda --- /dev/null +++ b/documentation/content/ru/books/handbook/basics/_index.po @@ -0,0 +1,5631 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-08-26 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookbasics_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/basics/_index.adoc:1 +#, no-wrap +msgid "Basic commands and functionality of the FreeBSD operating system" +msgstr "Основные команды и функциональные возможности операционной системы FreeBSD" + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/basics/_index.adoc:1 +#, no-wrap +msgid "Part I. Getting Started" +msgstr "В начале" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/basics/_index.adoc:1 +#, no-wrap +msgid "Chapter 3. FreeBSD Basics" +msgstr "Глава 3. Основы FreeBSD" + +#. type: Title = +#: documentation/content/en/books/handbook/basics/_index.adoc:15 +#, no-wrap +msgid "FreeBSD Basics" +msgstr "Основы FreeBSD" + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:58 +msgid "" +"This chapter covers the basic commands and functionality of the FreeBSD " +"operating system. Much of this material is relevant for any UNIX(R)-like " +"operating system. New FreeBSD users are encouraged to read through this " +"chapter carefully." +msgstr "" +"В этой главе рассматриваются основные команды и функциональные возможности " +"операционной системы FreeBSD. Большая часть материала применима к любым " +"UNIX(R)-подобным операционным системам. Новым пользователям FreeBSD " +"рекомендуется внимательно ознакомиться с этой главой." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:60 +msgid "After reading this chapter, you will know:" +msgstr "Прочитав эту главу, вы будете знать:" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:62 +msgid "How to use and configure virtual consoles." +msgstr "Как использовать и настраивать виртуальные консоли." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:63 +msgid "How to create and manage users and groups on FreeBSD." +msgstr "" +"Как создавать пользователей и группы пользователей во FreeBSD и управлять " +"ими." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:64 +msgid "How UNIX(R) file permissions and FreeBSD file flags work." +msgstr "" +"Как работают права доступа на файлы в UNIX® и файловые флаги во FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:65 +msgid "The default FreeBSD file system layout." +msgstr "Иерархию каталогов FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:66 +msgid "The FreeBSD disk organization." +msgstr "Организация дисков в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:67 +msgid "How to mount and unmount file systems." +msgstr "Как монтировать и размонтировать файловые системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:68 +msgid "What processes, daemons, and signals are." +msgstr "Что такое процессы, демоны и сигналы." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:69 +msgid "What a shell is, and how to change the default login environment." +msgstr "Что такое оболочка и как изменить среду входа по умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:70 +msgid "How to use basic text editors." +msgstr "Как использовать основные текстовые редакторы." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:71 +msgid "What devices and device nodes are." +msgstr "Что такое устройства и узлы устройств." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:72 +msgid "How to read manual pages for more information." +msgstr "" +"Как читать справочные страницы для получения дополнительной информации." + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:74 +#, no-wrap +msgid "Virtual Consoles and Terminals" +msgstr "Виртуальные консоли и терминалы" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:77 +msgid "" +"Unless FreeBSD has been configured to automatically start a graphical " +"environment during startup, the system will boot into a command line login " +"prompt, as seen in this example:" +msgstr "" +"Если FreeBSD не настроена для автоматического запуска графической среды во " +"время загрузки, система загрузится в командную строку с приглашением для " +"входа, как показано в этом примере:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:81 +#, no-wrap +msgid "FreeBSD/amd64 (pc3.example.org) (ttyv0)\n" +msgstr "FreeBSD/amd64 (pc3.example.org) (ttyv0)\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:83 +#, no-wrap +msgid "login:\n" +msgstr "login:\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:89 +msgid "" +"The first line contains some information about the system. The `amd64` " +"indicates that FreeBSD is running on a 64-bit x86 system. The hostname is " +"`pc3.example.org`, and `ttyv0` indicates that this is the \"system " +"console\". The second line is the login prompt." +msgstr "" +"Первая строка содержит некоторую информацию о системе. `amd64` указывает, " +"что FreeBSD работает на 64-битной x86 системе. Имя хоста — " +"`pc3.example.org`, а `ttyv0` означает, что это «системная консоль». Вторая " +"строка — это приглашение для входа в систему." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:93 +msgid "" +"Since FreeBSD is a multiuser system, it needs some way to distinguish " +"between different users. This is accomplished by requiring every user to " +"log into the system before gaining access to the programs on the system. " +"Every user has a unique \"username\" and a personal \"password\"." +msgstr "" +"Поскольку FreeBSD — это многопользовательская система, требуется способ " +"различать пользователей. Для этого необходимо, чтобы каждый пользователь " +"вошел в систему перед получением доступа к программам. У каждого " +"пользователя есть уникальное «имя пользователя» и личный «пароль»." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:97 +msgid "" +"To log into the system console, type the username that was configured during " +"system installation, as described in crossref:bsdinstall[bsdinstall-" +"addusers,Add Users], and press kbd:[Enter]. Then enter the password " +"associated with the username and press kbd:[Enter]. The password is _not " +"echoed_ for security reasons." +msgstr "" +"Для входа в системную консоль введите имя пользователя, заданное при " +"установке системы, как описано в crossref:bsdinstall[bsdinstall-" +"addusers,Добавление пользователей], и нажмите kbd:[Enter]. Затем введите " +"пароль, связанный с этим именем пользователя, и нажмите kbd:[Enter]. Пароль " +"_не отображается_ в целях безопасности." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:101 +msgid "" +"Once the correct password is input, the message of the day (MOTD) will be " +"displayed followed by a command prompt. Depending upon the shell that was " +"selected when the user was created, this prompt will be a `+#+`, `$`, or `%` " +"character. The prompt indicates that the user is now logged into the " +"FreeBSD system console and ready to try the available commands." +msgstr "" +"После ввода правильного пароля будет отображено сообщение дня (MOTD), за " +"которым последует приглашение командной строки. В зависимости от выбранной " +"оболочки при создании пользователя, это приглашение может быть символом " +"`+#+`, `$` или `%`. Приглашение указывает, что пользователь теперь вошел в " +"консоль системы FreeBSD и готов попробовать доступные команды." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:103 +#, no-wrap +msgid "Virtual Consoles" +msgstr "Виртуальные консоли" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:108 +msgid "" +"While the system console can be used to interact with the system, a user " +"working from the command line at the keyboard of a FreeBSD system will " +"typically instead log into a virtual console. This is because system " +"messages are configured by default to display on the system console. These " +"messages will appear over the command or file that the user is working on, " +"making it difficult to concentrate on the work at hand." +msgstr "" +"Хотя системную консоль можно использовать для взаимодействия с системой, " +"пользователь, работающий из командной строки на клавиатуре FreeBSD, обычно " +"вместо этого входит в виртуальную консоль. Это связано с тем, что системные " +"сообщения по умолчанию настроены на отображение на системной консоли. Эти " +"сообщения будут появляться поверх команды или файла, с которыми работает " +"пользователь, что затрудняет концентрацию на текущей задаче." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:112 +msgid "" +"By default, FreeBSD is configured to provide several virtual consoles for " +"inputting commands. Each virtual console has its own login prompt and shell " +"and it is easy to switch between virtual consoles. This essentially " +"provides the command line equivalent of having several windows open at the " +"same time in a graphical environment." +msgstr "" +"По умолчанию FreeBSD настроена для предоставления нескольких виртуальных " +"консолей для ввода команд. Каждая виртуальная консоль имеет собственную " +"приглашение для входа и оболочку, и переключение между виртуальными " +"консолями осуществляется легко. Это, по сути, предоставляет эквивалент " +"командной строки для одновременного открытия нескольких окон в графической " +"среде." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:116 +msgid "" +"The key combinations kbd:[Alt+F1] through kbd:[Alt+F8] have been reserved by " +"FreeBSD for switching between virtual consoles. Use kbd:[Alt+F1] to switch " +"to the system console (`ttyv0`), kbd:[Alt+F2] to access the first virtual " +"console (`ttyv1`), kbd:[Alt+F3] to access the second virtual console " +"(`ttyv2`), and so on. When using Xorg as a graphical console, the " +"combination becomes kbd:[Ctrl+Alt+F1] to return to a text-based virtual " +"console." +msgstr "" +"Сочетания клавиш kbd:[Alt+F1] — kbd:[Alt+F8] зарезервированы в FreeBSD для " +"переключения между виртуальными консолями. Используйте kbd:[Alt+F1] для " +"перехода к системной консоли (`ttyv0`), kbd:[Alt+F2] для доступа к первой " +"виртуальной консоли (`ttyv1`), kbd:[Alt+F3] для доступа ко второй " +"виртуальной консоли (`ttyv2`) и так далее. При использовании Xorg в качестве " +"графической консоли для возврата к текстовой виртуальной консоли " +"используется сочетание kbd:[Ctrl+Alt+F1]." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:120 +msgid "" +"When switching from one console to the next, FreeBSD manages the screen " +"output. The result is an illusion of having multiple virtual screens and " +"keyboards that can be used to type commands for FreeBSD to run. The " +"programs that are launched in one virtual console do not stop running when " +"the user switches to a different virtual console." +msgstr "" +"При переключении с одной консоли на другую FreeBSD управляет выводом на " +"экран. В результате создаётся иллюзия наличия нескольких виртуальных экранов " +"и клавиатур, которые можно использовать для ввода команд на выполнение в " +"FreeBSD. Программы, запущенные в одной виртуальной консоли, продолжают " +"работать при переключении пользователя на другую виртуальную консоль." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:122 +msgid "" +"Refer to man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4], " +"and man:vt[4] for a more technical description of the FreeBSD console and " +"its keyboard drivers." +msgstr "" +"Обратитесь к man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], " +"man:syscons[4] и man:vt[4] для более технического описания консоли FreeBSD и " +"её драйверов клавиатуры." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:124 +msgid "" +"In FreeBSD, the number of available virtual consoles is configured in this " +"section of `/etc/ttys`:" +msgstr "" +"В FreeBSD количество доступных виртуальных консолей настраивается в этом " +"разделе `/etc/ttys`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:139 +#, no-wrap +msgid "" +"# name getty type status comments\n" +"#\n" +"ttyv0 \"/usr/libexec/getty Pc\" xterm on secure\n" +"# Virtual terminals\n" +"ttyv1 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv2 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv3 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv4 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv5 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv6 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv7 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv8 \"/usr/X11R6/bin/xdm -nodaemon\" xterm off secure\n" +msgstr "" +"# name getty type status comments\n" +"#\n" +"ttyv0 \"/usr/libexec/getty Pc\" xterm on secure\n" +"# Virtual terminals\n" +"ttyv1 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv2 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv3 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv4 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv5 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv6 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv7 \"/usr/libexec/getty Pc\" xterm on secure\n" +"ttyv8 \"/usr/X11R6/bin/xdm -nodaemon\" xterm off secure\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:145 +msgid "" +"To disable a virtual console, put a comment symbol (`+#+`) at the beginning " +"of the line representing that virtual console. For example, to reduce the " +"number of available virtual consoles from eight to four, put a `+#+` in " +"front of the last four lines representing virtual consoles `ttyv5` through " +"`ttyv8`. _Do not_ comment out the line for the system console `ttyv0`. " +"Note that the last virtual console (`ttyv8`) is used to access the graphical " +"environment if Xorg has been installed and configured as described in " +"crossref:x11[x11,The X Window System]." +msgstr "" +"Чтобы отключить виртуальную консоль, поставьте символ комментария (`+#+`) в " +"начале строки, соответствующей этой виртуальной консоли. Например, чтобы " +"уменьшить количество доступных виртуальных консолей с восьми до четырёх, " +"добавьте `+#+` перед последними четырьмя строками, представляющими " +"виртуальные консоли `ttyv5` до `ttyv8`. _Не_ комментируйте строку системной " +"консоли `ttyv0`. Обратите внимание, что последняя виртуальная консоль " +"(`ttyv8`) используется для доступа к графической среде, если Xorg установлен " +"и настроен, как описано в crossref:x11[x11,Система X Window]." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:147 +msgid "" +"For a detailed description of every column in this file and the available " +"options for the virtual consoles, refer to man:ttys[5]." +msgstr "" +"Для подробного описания каждой колонки в этом файле и доступных опций для " +"виртуальных консолей обратитесь к man:ttys[5]." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:149 +#, no-wrap +msgid "Single User Mode" +msgstr "Однопользовательский режим" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:157 +msgid "" +"The FreeBSD boot menu provides an option labelled as \"Boot Single User\". " +"If this option is selected, the system will boot into a special mode known " +"as \"single user mode\". This mode is typically used to repair a system " +"that will not boot or to reset the `root` password when it is not known. " +"While in single user mode, networking and other virtual consoles are not " +"available. However, full `root` access to the system is available, and by " +"default, the `root` password is not needed. For these reasons, physical " +"access to the keyboard is needed to boot into this mode and determining who " +"has physical access to the keyboard is something to consider when securing a " +"FreeBSD system." +msgstr "" +"В меню загрузки FreeBSD есть пункт с названием \"Boot Single User\". При " +"выборе этого пункта система загрузится в особый режим, известный как " +"\"однопользовательский режим\". Этот режим обычно используется для " +"восстановления системы, которая не загружается, или для сброса пароля " +"`root`, если он неизвестен. В однопользовательском режиме сеть и другие " +"виртуальные консоли недоступны. Однако предоставляется полный доступ `root` " +"к системе, и по умолчанию пароль `root` не требуется. По этим причинам для " +"загрузки в этом режиме необходим физический доступ к клавиатуре, и " +"определение того, кто имеет такой доступ, является важным аспектом " +"обеспечения безопасности системы FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:159 +msgid "" +"The settings which control single user mode are found in this section of `/" +"etc/ttys`:" +msgstr "" +"Настройки, управляющие однопользовательским режимом, находятся в этом " +"разделе файла `/etc/ttys`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:167 +#, no-wrap +msgid "" +"# name getty type status comments\n" +"#\n" +"# If console is marked \"insecure\", then init will ask for the root password\n" +"# when going to single-user mode.\n" +"console none unknown off secure\n" +msgstr "" +"# name getty type status comments\n" +"#\n" +"# If console is marked \"insecure\", then init will ask for the root password\n" +"# when going to single-user mode.\n" +"console none unknown off secure\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:173 +msgid "" +"By default, the status is set to `secure`. This assumes that who has " +"physical access to the keyboard is either not important or it is controlled " +"by a physical security policy. If this setting is changed to `insecure`, " +"the assumption is that the environment itself is insecure because anyone can " +"access the keyboard. When this line is changed to `insecure`, FreeBSD will " +"prompt for the `root` password when a user selects to boot into single user " +"mode." +msgstr "" +"По умолчанию статус установлен в `secure`. Это предполагает, что тот, кто " +"имеет физический доступ к клавиатуре, либо не важен, либо контролируется " +"политикой физической безопасности. Если этот параметр изменён на `insecure`, " +"предполагается, что среда сама по себе небезопасна, так как любой может " +"получить доступ к клавиатуре. При изменении этой строки на `insecure` " +"FreeBSD будет запрашивать пароль `root`, когда пользователь выбирает " +"загрузку в однопользовательском режиме." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:177 +msgid "" +"_Be careful when changing this setting to `insecure`!_ If the `root` " +"password is forgotten, booting into single user mode is still possible, but " +"may be difficult for someone who is not familiar with the FreeBSD booting " +"process." +msgstr "" +"_Будьте осторожны при изменении этой настройки на `insecure`!_ Если пароль " +"`root` забыт, загрузка в однопользовательском режиме всё ещё возможна, но " +"может быть затруднительна для тех, кто не знаком с процессом загрузки " +"FreeBSD." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:180 +#, no-wrap +msgid "Changing Console Video Modes" +msgstr "Изменение видеорежимов консоли" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:184 +msgid "" +"The FreeBSD console default video mode may be adjusted to 1024x768, " +"1280x1024, or any other size supported by the graphics chip and monitor. To " +"use a different video mode load the `VESA` module:" +msgstr "" +"Режим видео по умолчанию в консоли FreeBSD может быть изменён на 1024x768, " +"1280x1024 или любой другой, поддерживаемый графическим чипом и монитором. " +"Для использования другого видео режима загрузите модуль `VESA`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:188 +#, no-wrap +msgid "# kldload vesa\n" +msgstr "# kldload vesa\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:192 +msgid "" +"To determine which video modes are supported by the hardware, use " +"man:vidcontrol[1]. To get a list of supported video modes issue the " +"following:" +msgstr "" +"Для определения видеорежимов, поддерживаемых оборудованием, используйте " +"man:vidcontrol[1]. Чтобы получить список поддерживаемых видеорежимов, " +"выполните следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:196 +#, no-wrap +msgid "# vidcontrol -i mode\n" +msgstr "# vidcontrol -i mode\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:200 +msgid "" +"The output of this command lists the video modes that are supported by the " +"hardware. To select a new video mode, specify the mode using " +"man:vidcontrol[1] as the `root` user:" +msgstr "" +"Результат выполнения этой команды выводит список видеорежимов, " +"поддерживаемых оборудованием. Чтобы выбрать новый видеорежим, укажите режим " +"с помощью man:vidcontrol[1] от имени пользователя `root`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:204 +#, no-wrap +msgid "# vidcontrol MODE_279\n" +msgstr "# vidcontrol MODE_279\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:207 +msgid "" +"If the new video mode is acceptable, it can be permanently set on boot by " +"adding it to `/etc/rc.conf`:" +msgstr "" +"Если новый видео-режим приемлем, его можно установить постоянным при " +"загрузке, добавив в `/etc/rc.conf`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:211 +#, no-wrap +msgid "allscreens_flags=\"MODE_279\"\n" +msgstr "allscreens_flags=\"MODE_279\"\n" + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:214 +#, no-wrap +msgid "Users and Basic Account Management" +msgstr "Пользователи и базовая настройка учетных записей" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:219 +msgid "" +"FreeBSD allows multiple users to use the computer at the same time. While " +"only one user can sit in front of the screen and use the keyboard at any one " +"time, any number of users can log in to the system through the network. To " +"use the system, each user should have their own user account." +msgstr "" +"FreeBSD позволяет нескольким пользователям одновременно работать на " +"компьютере. Хотя только один пользователь может находиться перед экраном и " +"использовать клавиатуру в любой момент времени, любое количество " +"пользователей может войти в систему через сеть. Для использования системы " +"каждый пользователь должен иметь свою собственную учетную запись." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:221 +msgid "This chapter describes:" +msgstr "Эта глава описывает:" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:223 +msgid "The different types of user accounts on a FreeBSD system." +msgstr "Типы учетных записей пользователей в системе FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:224 +msgid "How to add, remove, and modify user accounts." +msgstr "Как добавлять, удалять и изменять учетные записи пользователей." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:225 +msgid "" +"How to set limits to control the resources that users and groups are allowed " +"to access." +msgstr "" +"Как установить ограничения для контроля ресурсов, доступных пользователям и " +"группам." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:226 +msgid "How to create groups and add users as members of a group." +msgstr "" +"Как создавать группы и добавлять пользователей в качестве членов группы." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:228 +#, no-wrap +msgid "Account Types" +msgstr "Типы учетных записей" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:231 +msgid "" +"Since all access to the FreeBSD system is achieved using accounts and all " +"processes are run by users, user and account management is important." +msgstr "" +"Поскольку весь доступ к системе FreeBSD осуществляется с использованием " +"учетных записей, а все процессы выполняются пользователями, управление " +"пользователями и учетными записями является важным." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:233 +msgid "" +"There are three main types of accounts: system accounts, user accounts, and " +"the superuser account." +msgstr "" +"Существует три основных типа учетных записей: системные учетные записи, " +"пользовательские учетные записи и учетная запись суперпользователя." + +#. type: Title ==== +#: documentation/content/en/books/handbook/basics/_index.adoc:235 +#, no-wrap +msgid "System Accounts" +msgstr "Системные учетные записи" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:239 +msgid "" +"System accounts are used to run services such as DNS, mail, and web " +"servers. The reason for this is security; if all services ran as the " +"superuser, they could act without restriction." +msgstr "" +"Системные учетные записи используются для запуска служб, таких как DNS, " +"почтовые и веб-серверы. Причина этого — безопасность: если бы все службы " +"работали от имени суперпользователя, они могли бы действовать без " +"ограничений." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:241 +msgid "" +"Examples of system accounts are `daemon`, `operator`, `bind`, `news`, and " +"`www`." +msgstr "" +"Примеры системных учетных записей: `daemon`, `operator`, `bind`, `news` и " +"`www`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:244 +msgid "" +"`nobody` is the generic unprivileged system account. However, the more " +"services that use `nobody`, the more files and processes that user will " +"become associated with, and hence the more privileged that user becomes." +msgstr "" +"`nobody` — это общая непривилегированная системная учётная запись. Однако " +"чем больше сервисов используют `nobody`, тем больше файлов и процессов будут " +"связаны с этим пользователем, и, следовательно, тем больше привилегий он " +"получит." + +#. type: Title ==== +#: documentation/content/en/books/handbook/basics/_index.adoc:246 +#, no-wrap +msgid "User Accounts" +msgstr "Пользовательские учетные записи" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:251 +msgid "" +"User accounts are assigned to real people and are used to log in and use the " +"system. Every person accessing the system should have a unique user " +"account. This allows the administrator to find out who is doing what and " +"prevents users from clobbering the settings of other users." +msgstr "" +"Пользовательские учетные записи назначаются реальным людям и используются " +"для входа в систему и работы с ней. Каждый человек, получающий доступ к " +"системе, должен иметь уникальную учетную запись. Это позволяет " +"администратору отслеживать, кто и что делает, и предотвращает возможность " +"изменения пользователями настроек друг друга." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:253 +msgid "" +"Each user can set up their own environment to accommodate their use of the " +"system, by configuring their default shell, editor, key bindings, and " +"language settings." +msgstr "" +"Каждый пользователь может настроить свою собственную среду для удобной " +"работы с системой, изменив настройки оболочки по умолчанию, редактора, " +"сочетаний клавиш и языковых параметров." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:255 +msgid "" +"Every user account on a FreeBSD system has certain information associated " +"with it:" +msgstr "" +"Каждая учетная запись пользователя в системе FreeBSD имеет определенную " +"связанную с ней информацию:" + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:256 +#, no-wrap +msgid "User name" +msgstr "Имя пользователя" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:261 +msgid "" +"The user name is typed at the `login:` prompt. Each user must have a unique " +"user name. There are a number of rules for creating valid user names which " +"are documented in man:passwd[5]. It is recommended to use user names that " +"consist of eight or fewer, all lower case characters in order to maintain " +"backwards compatibility with applications." +msgstr "" +"Имя пользователя вводится в приглашении `login:`. У каждого пользователя " +"должно быть уникальное имя. Существует ряд правил для создания допустимых " +"имен пользователей, которые описаны в man:passwd[5]. Рекомендуется " +"использовать имена, состоящие из восьми или менее строчных символов, для " +"обеспечения обратной совместимости с приложениями." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:262 +#, no-wrap +msgid "Password" +msgstr "Пароль" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:264 +msgid "Each account has an associated password." +msgstr "У каждой учетной записи есть связанный с ней пароль." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:265 +#, no-wrap +msgid "User ID (UID)" +msgstr "Идентификатор пользователя (UID)" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:269 +msgid "" +"The User ID (UID) is a number used to uniquely identify the user to the " +"FreeBSD system. Commands that allow a user name to be specified will first " +"convert it to the UID. It is recommended to use a UID less than 65535, " +"since higher values may cause compatibility issues with some software." +msgstr "" +"Идентификатор пользователя (UID) — это число, используемое для однозначной " +"идентификации пользователя в системе FreeBSD. Команды, которые позволяют " +"указать имя пользователя, сначала преобразуют его в UID. Рекомендуется " +"использовать UID меньше 65535, так как более высокие значения могут вызвать " +"проблемы совместимости с некоторым программным обеспечением." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:270 +#, no-wrap +msgid "Group ID (GID)" +msgstr "Идентификатор группы (GID)" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:275 +msgid "" +"The Group ID (GID) is a number used to uniquely identify the primary group " +"that the user belongs to. Groups are a mechanism for controlling access to " +"resources based on a user's GID rather than their UID. This can " +"significantly reduce the size of some configuration files and allows users " +"to be members of more than one group. It is recommended to use a GID of " +"65535 or lower as higher GIDs may break some software." +msgstr "" +"Идентификатор группы (GID) — это число, используемое для однозначной " +"идентификации основной группы, к которой принадлежит пользователь. Группы " +"представляют собой механизм управления доступом к ресурсам на основе GID " +"пользователя, а не его UID. Это может значительно уменьшить размер некоторых " +"конфигурационных файлов и позволяет пользователям быть членами более чем " +"одной группы. Рекомендуется использовать GID 65535 или меньше, так как более " +"высокие GID могут привести к неработоспособности некоторых программ." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:276 +#, no-wrap +msgid "Login class" +msgstr "Класс входа (Login class)" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:279 +msgid "" +"Login classes are an extension to the group mechanism that provide " +"additional flexibility when tailoring the system to different users. Login " +"classes are discussed further in crossref:security[users-" +"limiting,Configuring Login Classes]." +msgstr "" +"Классы входа являются расширением механизма групп, предоставляющим " +"дополнительную гибкость при настройке системы для различных пользователей. " +"Подробнее классы входа рассматриваются в crossref:security[users-" +"limiting,Настройка классов входа]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:280 +#, no-wrap +msgid "Password change time" +msgstr "Время изменения пароля" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:283 +msgid "" +"By default, passwords do not expire. However, password expiration can be " +"enabled on a per-user basis, forcing some or all users to change their " +"passwords after a certain amount of time has elapsed." +msgstr "" +"По умолчанию пароли не имеют срока действия. Однако можно включить истечение " +"срока действия пароля для отдельных пользователей, что заставит некоторых " +"или всех пользователей изменить свои пароли по истечении определённого " +"времени." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:284 +#, no-wrap +msgid "Account expiration time" +msgstr "Время истечения срока действия учетной записи" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:288 +msgid "" +"By default, FreeBSD does not expire accounts. When creating accounts that " +"need a limited lifespan, such as student accounts in a school, specify the " +"account expiry date using man:pw[8]. After the expiry time has elapsed, the " +"account cannot be used to log in to the system, although the account's " +"directories and files will remain." +msgstr "" +"По умолчанию FreeBSD не ограничивает срок действия учётных записей. При " +"создании учётных записей с ограниченным сроком действия, например, для " +"учащихся в школе, укажите дату истечения срока с помощью man:pw[8]. После " +"истечения указанного времени учётная запись не может быть использована для " +"входа в систему, хотя каталоги и файлы этой учётной записи останутся." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:289 +#, no-wrap +msgid "User's full name" +msgstr "Полное имя пользователя" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:292 +msgid "" +"The user name uniquely identifies the account to FreeBSD, but does not " +"necessarily reflect the user's real name. Similar to a comment, this " +"information can contain spaces, uppercase characters, and be more than 8 " +"characters long." +msgstr "" +"Имя пользователя уникально идентифицирует учетную запись в FreeBSD, но не " +"обязательно отражает реальное имя пользователя. Как и в случае с " +"комментарием, эта информация может содержать пробелы, заглавные буквы и быть " +"длиннее 8 символов." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:293 +#, no-wrap +msgid "Home directory" +msgstr "Домашний каталог" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:298 +msgid "" +"The home directory is the full path to a directory on the system. This is " +"the user's starting directory when the user logs in. A common convention is " +"to put all user home directories under `/home/username` or `/usr/home/" +"username`. Each user stores their personal files and subdirectories in " +"their own home directory." +msgstr "" +"Домашний каталог — это полный путь к каталогу в системе. Это стартовый " +"каталог пользователя при входе в систему. Общепринятое соглашение — " +"размещать все домашние каталоги пользователей в `/home/имя_пользователя` или " +"`/usr/home/имя_пользователя`. Каждый пользователь хранит свои личные файлы и " +"подкаталоги в собственном домашнем каталоге." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:299 +#, no-wrap +msgid "User shell" +msgstr "Оболочка пользователя" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:302 +msgid "" +"The shell provides the user's default environment for interacting with the " +"system. There are many different kinds of shells and experienced users will " +"have their own preferences, which can be reflected in their account settings." +msgstr "" +"Оболочка предоставляет пользователю среду по умолчанию для взаимодействия с " +"системой. Существует множество различных видов оболочек, и опытные " +"пользователи могут выбрать предпочтительную, настроив её в параметрах своей " +"учётной записи." + +#. type: Title ==== +#: documentation/content/en/books/handbook/basics/_index.adoc:304 +#, no-wrap +msgid "The Superuser Account" +msgstr "Учетная запись суперпользователя" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:308 +msgid "" +"The superuser account, usually called `root`, is used to manage the system " +"with no limitations on privileges. For this reason, it should not be used " +"for day-to-day tasks like sending and receiving mail, general exploration of " +"the system, or programming." +msgstr "" +"Учетная запись суперпользователя, обычно называемая `root`, используется для " +"управления системой без ограничений в правах. По этой причине её не следует " +"использовать для повседневных задач, таких как отправка и получение почты, " +"обычное изучение системы или программирование." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:311 +msgid "" +"The superuser, unlike other user accounts, can operate without limits, and " +"misuse of the superuser account may result in spectacular disasters. User " +"accounts are unable to destroy the operating system by mistake, so it is " +"recommended to login as a user account and to only become the superuser when " +"a command requires extra privilege." +msgstr "" +"Суперпользователь, в отличие от других учётных записей, может работать без " +"ограничений, и неправильное использование учётной записи суперпользователя " +"может привести к серьёзным последствиям. Обычные пользователи не могут " +"случайно разрушить операционную систему, поэтому рекомендуется входить в " +"систему под обычной учётной записью и становиться суперпользователем только " +"тогда, когда команде требуются дополнительные привилегии." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:313 +msgid "" +"Always double and triple-check any commands issued as the superuser, since " +"an extra space or missing character can mean irreparable data loss." +msgstr "" +"Всегда дважды и трижды проверяйте команды, выполняемые от имени " +"суперпользователя, поскольку лишний пробел или пропущенный символ могут " +"привести к невосполнимой потере данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:316 +msgid "" +"There are several ways to gain superuser privilege. While one can log in as " +"`root`, this is highly discouraged." +msgstr "" +"Существует несколько способов получения привилегий суперпользователя. Хотя " +"можно войти в систему как `root`, это крайне не рекомендуется." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:321 +msgid "" +"Instead, use man:su[1] to become the superuser. If `-` is specified when " +"running this command, the user will also inherit the root user's " +"environment. The user running this command must be in the `wheel` group or " +"else the command will fail. The user must also know the password for the " +"`root` user account." +msgstr "" +"Вместо этого используйте man:su[1], чтобы стать суперпользователем. Если при " +"выполнении этой команды указан параметр `-`, пользователь также унаследует " +"окружение пользователя root. Пользователь, выполняющий эту команду, должен " +"состоять в группе `wheel`, иначе команда завершится ошибкой. Пользователь " +"также должен знать пароль учётной записи `root`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:324 +msgid "" +"In this example, the user only becomes superuser in order to run `make " +"install` as this step requires superuser privilege. Once the command " +"completes, the user types `exit` to leave the superuser account and return " +"to the privilege of their user account." +msgstr "" +"В этом примере пользователь становится суперпользователем только для " +"выполнения команды `make install`, так как этот шаг требует прав " +"суперпользователя. После завершения команды пользователь вводит `exit`, " +"чтобы выйти из учётной записи суперпользователя и вернуться к правам своей " +"учётной записи." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:325 +#, no-wrap +msgid "Install a Program As the Superuser" +msgstr "Установка программы от имени суперпользователя" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:337 +#, no-wrap +msgid "" +"% configure\n" +"% make\n" +"% su -\n" +"Password:\n" +"# make install\n" +"# exit\n" +"%\n" +msgstr "" +"% configure\n" +"% make\n" +"% su -\n" +"Password:\n" +"# make install\n" +"# exit\n" +"%\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:343 +msgid "" +"The built-in man:su[1] framework works well for single systems or small " +"networks with just one system administrator. An alternative is to install " +"the package:security/sudo[] package or port. This software provides " +"activity logging and allows the administrator to configure which users can " +"run which commands as the superuser." +msgstr "" +"Встроенная система man:su[1] хорошо подходит для отдельных компьютеров или " +"небольших сетей с одним системным администратором. Альтернативой является " +"установка пакета package:security/sudo[] или порта. Это программное " +"обеспечение обеспечивает журналирование действий и позволяет администратору " +"настроить, какие пользователи могут выполнять определённые команды с правами " +"суперпользователя." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:345 +#, no-wrap +msgid "Managing Accounts" +msgstr "Управление учетными записями" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:351 +msgid "" +"FreeBSD provides a variety of different commands to manage user accounts. " +"The most common commands are summarized in crossref:basics[users-modifying-" +"utilities,Utilities for Managing User Accounts], followed by some examples " +"of their usage. See the manual page for each utility for more details and " +"usage examples." +msgstr "" +"FreeBSD предоставляет различные команды для управления учетными записями " +"пользователей. Наиболее распространенные команды перечислены в " +"crossref:basics[users-modifying-utilities,Утилиты для управления учетными " +"записями пользователей], а также приведены примеры их использования. Для " +"получения дополнительной информации и примеров использования обратитесь к " +"руководству (man) каждой утилиты." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:353 +#, no-wrap +msgid "Utilities for Managing User Accounts" +msgstr "Утилиты для управления учетными записями пользователей" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:357 +#, no-wrap +msgid "Command" +msgstr "Команда" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:359 +#, no-wrap +msgid "Summary" +msgstr "Краткое содержание" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:360 +#, no-wrap +msgid "man:adduser[8]" +msgstr "man:adduser[8]" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:362 +#, no-wrap +msgid "The recommended command-line application for adding new users." +msgstr "Рекомендуемое приложение командной строки для добавления новых пользователей." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:363 +#, no-wrap +msgid "man:rmuser[8]" +msgstr "man:rmuser[8]" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:365 +#, no-wrap +msgid "The recommended command-line application for removing users." +msgstr "Рекомендуемое приложение командной строки для удаления пользователей." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:366 +#, no-wrap +msgid "man:chpass[1]" +msgstr "man:chpass[1]" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:368 +#, no-wrap +msgid "A flexible tool for changing user database information." +msgstr "Гибкий инструмент для изменения информации в пользовательской базе данных." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:369 +#, no-wrap +msgid "man:passwd[1]" +msgstr "man:passwd[1]" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:371 +#, no-wrap +msgid "The command-line tool to change user passwords." +msgstr "Инструмент командной строки для изменения паролей пользователей." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:372 +#, no-wrap +msgid "man:pw[8]" +msgstr "man:pw[8]" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:374 +#, no-wrap +msgid "A powerful and flexible tool for modifying all aspects of user accounts." +msgstr "Мощный и гибкий инструмент для изменения всех аспектов пользовательских учетных записей." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:375 +#, no-wrap +msgid "man:bsdconfig[8]" +msgstr "man:bsdconfig[8]" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:376 +#, no-wrap +msgid "A system configuration utility with account management support." +msgstr "Утилита для настройки системы с поддержкой управления учётными записями." + +#. type: Title ==== +#: documentation/content/en/books/handbook/basics/_index.adoc:379 +#, no-wrap +msgid "Adding a user" +msgstr "Добавление пользователя" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:385 +msgid "" +"The recommended program for adding new users is man:adduser[8]. When a new " +"user is added, this program automatically updates `/etc/passwd` and `/etc/" +"group`. It also creates a home directory for the new user, copies in the " +"default configuration files from `/usr/share/skel`, and can optionally mail " +"the new user a welcome message. This utility must be run as the superuser." +msgstr "" +"Рекомендуемая программа для добавления новых пользователей — man:adduser[8]. " +"При добавлении нового пользователя эта программа автоматически обновляет `/" +"etc/passwd` и `/etc/group`. Она также создаёт домашний каталог для нового " +"пользователя, копирует в него стандартные конфигурационные файлы из `/usr/" +"share/skel` и может отправить новому пользователю приветственное письмо. Эту " +"утилиту необходимо запускать от имени суперпользователя." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:390 +msgid "" +"The man:adduser[8] utility is interactive and walks through the steps for " +"creating a new user account. As seen in crossref:basics[users-modifying-" +"adduser, Adding a User on FreeBSD], either input the required information or " +"press kbd:[Return] to accept the default value shown in square brackets. In " +"this example, the user has been invited into the `wheel` group, allowing " +"them to become the superuser with man:su[1]. When finished, the utility " +"will prompt to either create another user or to exit." +msgstr "" +"Утилита man:adduser[8] интерактивна и проводит пользователя через шаги " +"создания новой учётной записи. Как показано в crossref:basics[users-" +"modifying-adduser, Добавление пользователя в FreeBSD], можно ввести " +"необходимую информацию или нажать kbd:[Enter], чтобы принять значение по " +"умолчанию, указанное в квадратных скобках. В этом примере пользователь был " +"добавлен в группу `wheel`, что позволяет ему стать суперпользователем с " +"помощью man:su[1]. По завершении утилита предложит создать ещё одного " +"пользователя или выйти." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:392 +#, no-wrap +msgid "Adding a User on FreeBSD" +msgstr "Добавление пользователя в FreeBSD" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:398 +#, no-wrap +msgid "# adduser\n" +msgstr "# adduser\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:401 +#: documentation/content/en/books/handbook/basics/_index.adoc:473 +#: documentation/content/en/books/handbook/basics/_index.adoc:512 +#: documentation/content/en/books/handbook/basics/_index.adoc:571 +#: documentation/content/en/books/handbook/basics/_index.adoc:596 +#: documentation/content/en/books/handbook/basics/_index.adoc:650 +#: documentation/content/en/books/handbook/basics/_index.adoc:671 +#: documentation/content/en/books/handbook/basics/_index.adoc:693 +#: documentation/content/en/books/handbook/basics/_index.adoc:712 +#: documentation/content/en/books/handbook/basics/_index.adoc:790 +#: documentation/content/en/books/handbook/basics/_index.adoc:1560 +#: documentation/content/en/books/handbook/basics/_index.adoc:1588 +msgid "The output should be similar to the following:" +msgstr "Вывод должен быть похож на следующий:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:432 +#, no-wrap +msgid "" +"Username: jru\n" +"Full name: J. Random User\n" +"Uid (Leave empty for default):\n" +"Login group [jru]:\n" +"Login group is jru. Invite jru into other groups? []: wheel\n" +"Login class [default]:\n" +"Shell (sh csh tcsh zsh nologin) [sh]: zsh\n" +"Home directory [/home/jru]:\n" +"Home directory permissions (Leave empty for default):\n" +"Use password-based authentication? [yes]:\n" +"Use an empty password? (yes/no) [no]:\n" +"Use a random password? (yes/no) [no]:\n" +"Enter password:\n" +"Enter password again:\n" +"Lock out the account after creation? [no]:\n" +"Username : jru\n" +"Password : ****\n" +"Full Name : J. Random User\n" +"Uid : 1001\n" +"Class :\n" +"Groups : jru wheel\n" +"Home : /home/jru\n" +"Shell : /usr/local/bin/zsh\n" +"Locked : no\n" +"OK? (yes/no): yes\n" +"adduser: INFO: Successfully added (jru) to the user database.\n" +"Add another user? (yes/no): no\n" +"Goodbye!\n" +msgstr "" +"Username: jru\n" +"Full name: J. Random User\n" +"Uid (Leave empty for default):\n" +"Login group [jru]:\n" +"Login group is jru. Invite jru into other groups? []: wheel\n" +"Login class [default]:\n" +"Shell (sh csh tcsh zsh nologin) [sh]: zsh\n" +"Home directory [/home/jru]:\n" +"Home directory permissions (Leave empty for default):\n" +"Use password-based authentication? [yes]:\n" +"Use an empty password? (yes/no) [no]:\n" +"Use a random password? (yes/no) [no]:\n" +"Enter password:\n" +"Enter password again:\n" +"Lock out the account after creation? [no]:\n" +"Username : jru\n" +"Password : ****\n" +"Full Name : J. Random User\n" +"Uid : 1001\n" +"Class :\n" +"Groups : jru wheel\n" +"Home : /home/jru\n" +"Shell : /usr/local/bin/zsh\n" +"Locked : no\n" +"OK? (yes/no): yes\n" +"adduser: INFO: Successfully added (jru) to the user database.\n" +"Add another user? (yes/no): no\n" +"Goodbye!\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:438 +msgid "" +"Since the password is not echoed when typed, be careful to not mistype the " +"password when creating the user account." +msgstr "" +"Поскольку пароль не отображается при вводе, будьте внимательны, чтобы не " +"ошибиться при создании учетной записи пользователя." + +#. type: Title ==== +#: documentation/content/en/books/handbook/basics/_index.adoc:441 +#, no-wrap +msgid "Removing a user" +msgstr "Удаление пользователя" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:445 +msgid "" +"To completely remove a user from the system, run man:rmuser[8] as the " +"superuser. This command performs the following steps:" +msgstr "" +"Чтобы полностью удалить пользователя из системы, выполните команду " +"man:rmuser[8] с правами суперпользователя. Эта команда выполняет следующие " +"действия:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:449 +msgid "Removes the user's man:crontab[1] entry, if one exists." +msgstr "Удаляет запись пользователя в man:crontab[1], если она существует." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:450 +msgid "Removes any man:at[1] jobs belonging to the user." +msgstr "Удаляет все задания man:at[1], принадлежащие пользователю." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:451 +msgid "Sends a SIGKILL signal to all processes owned by the user." +msgstr "Посылает сигнал SIGKILL всем процессам, принадлежащим пользователю." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:452 +msgid "Removes the user from the system's local password file." +msgstr "Удаляет пользователя из локального файла паролей системы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:453 +msgid "" +"Removes the user's home directory (if it is owned by the user), including " +"handling of symbolic links in the path to the actual home directory." +msgstr "" +"Удаляет домашний каталог пользователя (если он принадлежит пользователю), " +"включая обработку символических ссылок в пути к фактическому домашнему " +"каталогу." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:454 +msgid "Removes the incoming mail files belonging to the user from `/var/mail`." +msgstr "Удаляет входящие почтовые файлы пользователя из `/var/mail`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:455 +msgid "" +"Removes all files owned by the user from `/tmp`, `/var/tmp`, and `/var/tmp/" +"vi.recover`." +msgstr "" +"Удаляет все файлы, принадлежащие пользователю, из `/tmp`, `/var/tmp` и `/var/" +"tmp/vi.recover`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:456 +msgid "" +"Removes the username from all groups to which it belongs in `/etc/group`. " +"(If a group becomes empty and the group name is the same as the username, " +"the group is removed; this complements man:adduser[8]'s per-user unique " +"groups.)" +msgstr "" +"Удаляет имя пользователя из всех групп, к которым он принадлежит в `/etc/" +"group`. (Если группа становится пустой и имя группы совпадает с именем " +"пользователя, группа удаляется; это дополняет функциональность " +"man:adduser[8] в части уникальных групп для каждого пользователя.)" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:457 +msgid "" +"Removes all message queues, shared memory segments and semaphores owned by " +"the user." +msgstr "" +"Удаляет все очереди сообщений, сегменты разделяемой памяти и семафоры, " +"принадлежащие пользователю." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:460 +msgid "" +"man:rmuser[8] cannot be used to remove superuser accounts since that is " +"almost always an indication of massive destruction." +msgstr "" +"man:rmuser[8] не может быть использован для удаления учетных записей " +"суперпользователя, так как это почти всегда свидетельствует о " +"катастрофических последствиях." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:462 +msgid "" +"By default, an interactive mode is used, as shown in the following example." +msgstr "" +"По умолчанию используется интерактивный режим, как показано в следующем " +"примере." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:463 +#, no-wrap +msgid "`rmuser` Interactive Account Removal" +msgstr "`rmuser` Интерактивное удаление учетной записи" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:469 +#, no-wrap +msgid "# rmuser jru\n" +msgstr "# rmuser jru\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:481 +#, no-wrap +msgid "" +"Matching password entry:\n" +"jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh\n" +"Is this the entry you wish to remove? y\n" +"Remove user's home directory (/home/jru)? y\n" +"Removing user (jru): mailspool home passwd.\n" +msgstr "" +"Matching password entry:\n" +"jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh\n" +"Is this the entry you wish to remove? y\n" +"Remove user's home directory (/home/jru)? y\n" +"Removing user (jru): mailspool home passwd.\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/basics/_index.adoc:485 +#, no-wrap +msgid "Change user information" +msgstr "Изменить информацию о пользователе" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:489 +msgid "" +"Any user can use man:chpass[1] to change their default shell and personal " +"information associated with their user account. The superuser can use this " +"utility to change additional account information for any user." +msgstr "" +"Любой пользователь может использовать man:chpass[1] для изменения своей " +"оболочки по умолчанию и персональной информации, связанной с его учётной " +"записью. Суперпользователь может использовать эту утилиту для изменения " +"дополнительных параметров учётной записи любого пользователя." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:492 +msgid "" +"When passed no options, aside from an optional username, man:chpass[1] " +"displays an editor containing user information. When the user exits from " +"the editor, the user database is updated with the new information." +msgstr "" +"Без указания опций, за исключением необязательного имени пользователя, " +"man:chpass[1] отображает редактор с информацией о пользователе. После выхода " +"пользователя из редактора база данных пользователей обновляется новой " +"информацией." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:496 +msgid "" +"This utility will prompt for the user's password when exiting the editor, " +"unless the utility is run as the superuser." +msgstr "" +"Этотa утилитa запрашивает пароль пользователя при выходе из редактора, если " +"только она не запущена от имени суперпользователя." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:501 +msgid "" +"In crossref:basics[users-modifying-chpass-su,Using `chpass` as Superuser], " +"the superuser has typed `chpass jru` and is now viewing the fields that can " +"be changed for this user. If `jru` runs this command instead, only the last " +"six fields will be displayed and available for editing. This is shown in " +"crossref:basics[users-modifying-chpass-ru,Using `chpass` as Regular User]." +msgstr "" +"В crossref:basics[users-modifying-chpass-su,Использование `chpass` " +"суперпользователем], суперпользователь ввел `chpass jru` и теперь видит " +"поля, которые можно изменить для этого пользователя. Если же команду " +"выполнит сам `jru`, будут отображены и доступны для редактирования только " +"последние шесть полей. Это показано в crossref:basics[users-modifying-chpass-" +"ru,Использование `chpass` обычным пользователем]." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:503 +#, no-wrap +msgid "Using `chpass` as Superuser" +msgstr "Использование `chpass` с правами суперпользователя" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:509 +#, no-wrap +msgid "# chpass jru\n" +msgstr "# chpass jru\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:530 +#, no-wrap +msgid "" +"# Changing user database information for jru.\n" +"Login: jru\n" +"Password: *\n" +"Uid [#]: 1001\n" +"Gid [# or name]: 1001\n" +"Change [month day year]:\n" +"Expire [month day year]:\n" +"Class:\n" +"Home directory: /home/jru\n" +"Shell: /usr/local/bin/zsh\n" +"Full Name: J. Random User\n" +"Office Location:\n" +"Office Phone:\n" +"Home Phone:\n" +"Other information:\n" +msgstr "" +"# Changing user database information for jru.\n" +"Login: jru\n" +"Password: *\n" +"Uid [#]: 1001\n" +"Gid [# or name]: 1001\n" +"Change [month day year]:\n" +"Expire [month day year]:\n" +"Class:\n" +"Home directory: /home/jru\n" +"Shell: /usr/local/bin/zsh\n" +"Full Name: J. Random User\n" +"Office Location:\n" +"Office Phone:\n" +"Home Phone:\n" +"Other information:\n" + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:534 +#, no-wrap +msgid "Using `chpass` as Regular User" +msgstr "Использование `chpass` обычным пользователем" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:546 +#, no-wrap +msgid "" +"#Changing user database information for jru.\n" +"Shell: /usr/local/bin/zsh\n" +"Full Name: J. Random User\n" +"Office Location:\n" +"Office Phone:\n" +"Home Phone:\n" +"Other information:\n" +msgstr "" +"#Changing user database information for jru.\n" +"Shell: /usr/local/bin/zsh\n" +"Full Name: J. Random User\n" +"Office Location:\n" +"Office Phone:\n" +"Home Phone:\n" +"Other information:\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:554 +msgid "" +"The commands man:chfn[1] and man:chsh[1] are links to man:chpass[1], as are " +"man:ypchpass[1], man:ypchfn[1], and man:ypchsh[1]. Since NIS support is " +"automatic, specifying the `yp` before the command is not necessary. How to " +"configure NIS is covered in crossref:network-servers[network-servers,Network " +"Servers]." +msgstr "" +"Команды 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,Сетевые серверы]." + +#. type: Title ==== +#: documentation/content/en/books/handbook/basics/_index.adoc:557 +#, no-wrap +msgid "Change user password" +msgstr "Изменение пароля пользователя" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:561 +msgid "" +"Any user can easily change their password using man:passwd[1]. To prevent " +"accidental or unauthorized changes, this command will prompt for the user's " +"original password before a new password can be set:" +msgstr "" +"Любой пользователь может легко изменить свой пароль с помощью man:passwd[1]. " +"Для предотвращения случайных или несанкционированных изменений эта команда " +"запросит исходный пароль пользователя перед установкой нового пароля:" + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:562 +#, no-wrap +msgid "Changing Your Password" +msgstr "Смена собственного пароля" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:568 +#, no-wrap +msgid "% passwd\n" +msgstr "% passwd\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:580 +#, no-wrap +msgid "" +"Changing local password for jru.\n" +"Old password:\n" +"New password:\n" +"Retype new password:\n" +"passwd: updating the database...\n" +"passwd: done\n" +msgstr "" +"Changing local password for jru.\n" +"Old password:\n" +"New password:\n" +"Retype new password:\n" +"passwd: updating the database...\n" +"passwd: done\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:586 +msgid "" +"The superuser can change any user's password by specifying the username when " +"running man:passwd[1]. When this utility is run as the superuser, it will " +"not prompt for the user's current password. This allows the password to be " +"changed when a user cannot remember the original password." +msgstr "" +"Суперпользователь может изменить пароль любого пользователя, указав имя " +"пользователя при запуске man:passwd[1]. При запуске этой утилиты с правами " +"суперпользователя она не запрашивает текущий пароль пользователя. Это " +"позволяет изменить пароль, если пользователь не может вспомнить исходный " +"пароль." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:587 +#, no-wrap +msgid "Changing Another User's Password as the Superuser" +msgstr "Изменение пароля другого пользователя суперпользователем" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:593 +#, no-wrap +msgid "# passwd jru\n" +msgstr "# passwd jru\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:604 +#, no-wrap +msgid "" +"Changing local password for jru.\n" +"New password:\n" +"Retype new password:\n" +"passwd: updating the database...\n" +"passwd: done\n" +msgstr "" +"Changing local password for jru.\n" +"New password:\n" +"Retype new password:\n" +"passwd: updating the database...\n" +"passwd: done\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:610 +msgid "" +"As with man:chpass[1], man:yppasswd[1] is a link to man:passwd[1], so NIS " +"works with either command." +msgstr "" +"Как и man:chpass[1], man:yppasswd[1] является ссылкой на man:passwd[1], " +"поэтому NIS работает с любой из этих команд." + +#. type: Title ==== +#: documentation/content/en/books/handbook/basics/_index.adoc:613 +#, no-wrap +msgid "Create, remove, modify and display system users and groups" +msgstr "Создание, удаление, изменение и отображение пользователей и групп системы" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:618 +msgid "" +"The man:pw[8] utility can create, remove, modify, and display users and " +"groups. It functions as a front end to the system user and group files. " +"man:pw[8] has a very powerful set of command line options that make it " +"suitable for use in shell scripts, but new users may find it more " +"complicated than the other commands presented in this section." +msgstr "" +"Утилита man:pw[8] может создавать, удалять, изменять и отображать " +"пользователей и группы. Она работает как интерфейс к системным файлам " +"пользователей и групп. man:pw[8] обладает мощным набором параметров " +"командной строки, что делает её пригодной для использования в shell-" +"скриптах, но новым пользователям она может показаться сложнее других команд, " +"представленных в этом разделе." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:620 +#, no-wrap +msgid "Managing Groups" +msgstr "Управление группами" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:625 +msgid "" +"A group is a list of users. A group is identified by its group name and " +"GID. In FreeBSD, the kernel uses the UID of a process, and the list of " +"groups it belongs to, to determine what the process is allowed to do. Most " +"of the time, the GID of a user or process usually means the first group in " +"the list." +msgstr "" +"Группа — это список пользователей. Группа идентифицируется по своему " +"названию и GID. В FreeBSD ядро использует UID процесса и список групп, к " +"которым он принадлежит, чтобы определить, что процесс может делать. В " +"большинстве случаев под GID пользователя или процесса обычно подразумевается " +"первая группа в списке." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:630 +msgid "" +"The group name to GID mapping is listed in `/etc/group`. This is a plain " +"text file with four colon-delimited fields. The first field is the group " +"name, the second is the encrypted password, the third the GID, and the " +"fourth the comma-delimited list of members. For a complete description of " +"the syntax, refer to man:group[5]." +msgstr "" +"Соответствие имен групп и GID перечислено в `/etc/group`. Это простой " +"текстовый файл с четырьмя полями, разделенными двоеточиями. Первое поле — " +"имя группы, второе — зашифрованный пароль, третье — GID, а четвертое — " +"список участников, разделенных запятыми. Полное описание синтаксиса смотрите " +"в man:group[5]." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:634 +msgid "" +"The superuser can modify `/etc/group` using a text editor, although editing " +"the group file using man:vigr[8] is preferred because it can catch some " +"common mistakes. Alternatively, man:pw[8] can be used to add and edit " +"groups. For example, to add a group called `teamtwo` and then confirm that " +"it exists:" +msgstr "" +"Суперпользователь может изменить `/etc/group` с помощью текстового " +"редактора, однако предпочтительнее редактировать файл групп с помощью " +"man:vigr[8], так как это позволяет избежать некоторых распространённых " +"ошибок. Альтернативно, для добавления и редактирования групп можно " +"использовать man:pw[8]. Например, чтобы добавить группу с именем `teamtwo` и " +"затем убедиться, что она существует:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:638 +msgid "" +"Care must be taken when using the operator group, as unintended superuser-" +"like access privileges may be granted, including but not limited to " +"shutdown, reboot, and access to all items in `/dev` in the group." +msgstr "" +"При использовании группы operator необходимо соблюдать осторожность, так как " +"могут быть предоставлены непредусмотренные привилегии, аналогичные правам " +"суперпользователя, включая, но не ограничиваясь, возможностью выключения " +"системы, перезагрузки и доступа ко всем элементам в `/dev` в рамках группы." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:640 +#, no-wrap +msgid "Adding a Group Using man:pw[8]" +msgstr "Добавление группы с помощью man:pw[8]" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:647 +#, no-wrap +msgid "" +"# pw groupadd teamtwo\n" +"# pw groupshow teamtwo\n" +msgstr "" +"# pw groupadd teamtwo\n" +"# pw groupshow teamtwo\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:654 +#, no-wrap +msgid "teamtwo:*:1100:\n" +msgstr "teamtwo:*:1100:\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:660 +msgid "" +"In this example, `1100` is the GID of `teamtwo`. Right now, `teamtwo` has " +"no members. This command will add `jru` as a member of `teamtwo`." +msgstr "" +"В этом примере `1100` — это GID группы `teamtwo`. На данный момент в " +"`teamtwo` нет участников. Эта команда добавит `jru` в качестве участника " +"`teamtwo`." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:661 +#, no-wrap +msgid "Adding User Accounts to a New Group Using man:pw[8]" +msgstr "Добавление пользовательских учетных записей в новую группу с помощью man:pw[8]" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:668 +#, no-wrap +msgid "" +"# pw groupmod teamtwo -M jru\n" +"# pw groupshow teamtwo\n" +msgstr "" +"# pw groupmod teamtwo -M jru\n" +"# pw groupshow teamtwo\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:675 +#, no-wrap +msgid "teamtwo:*:1100:jru\n" +msgstr "teamtwo:*:1100:jru\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:682 +msgid "" +"The argument to `-M` is a comma-delimited list of users to be added to a new " +"(empty) group or to replace the members of an existing group. To the user, " +"this group membership is different from (and in addition to) the user's " +"primary group listed in the password file. This means that the user will " +"not show up as a member when using `groupshow` with man:pw[8], but will show " +"up when the information is queried via man:id[1] or a similar tool. When " +"man:pw[8] is used to add a user to a group, it only manipulates `/etc/group` " +"and does not attempt to read additional data from `/etc/passwd`." +msgstr "" +"Аргумент `-M` представляет собой разделённый запятыми список пользователей, " +"которые будут добавлены в новую (пустую) группу или заменят членов " +"существующей группы. Для пользователя это членство в группе отличается от (и " +"дополняет) его основной группы, указанной в файле паролей. Это означает, что " +"пользователь не будет отображаться как член группы при использовании " +"`groupshow` с man:pw[8], но будет виден при запросе информации через " +"man:id[1] или аналогичный инструмент. Когда man:pw[8] используется для " +"добавления пользователя в группу, он только изменяет `/etc/group` и не " +"пытается читать дополнительные данные из `/etc/passwd`." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:683 +#, no-wrap +msgid "Adding a New Member to a Group Using man:pw[8]" +msgstr "Добавление нового участника в группу с помощью man:pw[8]" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:690 +#, no-wrap +msgid "" +"# pw groupmod teamtwo -m db\n" +"# pw groupshow teamtwo\n" +msgstr "" +"# pw groupmod teamtwo -m db\n" +"# pw groupshow teamtwo\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:697 +#, no-wrap +msgid "teamtwo:*:1100:jru,db\n" +msgstr "teamtwo:*:1100:jru,db\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:702 +msgid "" +"In this example, the argument to `-m` is a comma-delimited list of users who " +"are to be added to the group. Unlike the previous example, these users are " +"appended to the group and do not replace existing users in the group." +msgstr "" +"В этом примере аргумент `-m` представляет собой список пользователей, " +"разделённых запятыми, которые будут добавлены в группу. В отличие от " +"предыдущего примера, эти пользователи добавляются к группе и не заменяют уже " +"существующих в ней пользователей." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:703 +#, no-wrap +msgid "Using man:id[1] to Determine Group Membership" +msgstr "Использование man:id[1] для определения членства в группе" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:709 +#, no-wrap +msgid "% id jru\n" +msgstr "% id jru\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:716 +#, no-wrap +msgid "uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)\n" +msgstr "uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:720 +msgid "In this example, `jru` is a member of the groups `jru` and `teamtwo`." +msgstr "В этом примере `jru` является участником групп `jru` и `teamtwo`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:722 +msgid "" +"For more information about this command and the format of `/etc/group`, " +"refer to man:pw[8] and man:group[5]." +msgstr "" +"Для получения дополнительной информации об этой команде и формате файла `/" +"etc/group` обратитесь к man:pw[8] и man:group[5]." + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:724 +#, no-wrap +msgid "Permissions" +msgstr "Разрешения" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:728 +msgid "" +"In FreeBSD, every file and directory has an associated set of permissions " +"and several utilities are available for viewing and modifying these " +"permissions. Understanding how permissions work is necessary to make sure " +"that users are able to access the files that they need and are unable to " +"improperly access the files used by the operating system or owned by other " +"users." +msgstr "" +"В FreeBSD каждому файлу и каталогу сопоставлен набор прав доступа, и " +"существует несколько утилит для просмотра и изменения этих прав. Понимание " +"работы прав доступа необходимо для того, чтобы пользователи могли получать " +"доступ к нужным им файлам, но не имели возможности несанкционированного " +"доступа к файлам операционной системы или файлам других пользователей." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:731 +msgid "" +"This section discusses the traditional UNIX(R) permissions used in FreeBSD. " +"For finer-grained file system access control, refer to crossref:security[fs-" +"acl,Access Control Lists]." +msgstr "" +"В этом разделе рассматриваются традиционные права доступа UNIX(R), " +"используемые в FreeBSD. Для более детального управления доступом к файловой " +"системе обратитесь к crossref:security[fs-acl,Списки контроля доступа]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:737 +msgid "" +"In UNIX(R), basic permissions are assigned using three types of access: " +"read, write, and execute. These access types are used to determine file " +"access to the file's owner, group, and others (everyone else). The read, " +"write, and execute permissions can be represented as the letters `r`, `w`, " +"and `x`. They can also be represented as binary numbers as each permission " +"is either on or off (`0`). When represented as a number, the order is " +"always read as `rwx`, where `r` has an on value of `4`, `w` has an on value " +"of `2` and `x` has an on value of `1`." +msgstr "" +"В UNIX(R) базовые права доступа назначаются с использованием трех типов " +"доступа: чтение, запись и выполнение. Эти типы доступа определяют права на " +"файл для владельца, группы и остальных (всех остальных). Права на чтение, " +"запись и выполнение могут быть представлены буквами `r`, `w` и `x`. Они " +"также могут быть представлены в виде двоичных чисел, так как каждое право " +"либо включено, либо выключено (`0`). При представлении в виде чисел порядок " +"всегда читается как `rwx`, где `r` имеет значение `4`, `w` — `2`, а `x` — " +"`1`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:740 +msgid "" +"Table 4.1 summarizes the possible numeric and alphabetic possibilities. " +"When reading the \"Directory Listing\" column, a `-` is used to represent a " +"permission that is set to off." +msgstr "" +"Таблица 4.1 обобщает возможные числовые и буквенные варианты. В столбце " +"\"Список файлов каталога\" символ `-` используется для обозначения " +"отключённого разрешения." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:741 +#, no-wrap +msgid "UNIX(R) Permissions" +msgstr "Права доступа UNIX(R)" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:745 +#, no-wrap +msgid "Value" +msgstr "Значение" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:746 +#, no-wrap +msgid "Permission" +msgstr "Разрешение" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:748 +#, no-wrap +msgid "Directory Listing" +msgstr "Список файлов каталога" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:749 +#, no-wrap +msgid "0" +msgstr "0" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:750 +#, no-wrap +msgid "No read, no write, no execute" +msgstr "Нет чтения, нет записи, нет выполнения" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:752 +#, no-wrap +msgid "`---`" +msgstr "`---`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:753 +#, no-wrap +msgid "1" +msgstr "1" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:754 +#, no-wrap +msgid "No read, no write, execute" +msgstr "Нет чтения, нет записи, выполнение" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:756 +#, no-wrap +msgid "`--x`" +msgstr "`--x`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:757 +#, no-wrap +msgid "2" +msgstr "2" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:758 +#, no-wrap +msgid "No read, write, no execute" +msgstr "Нет чтения, записи, выполнения" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:760 +#, no-wrap +msgid "`-w-`" +msgstr "`-w-`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:761 +#, no-wrap +msgid "3" +msgstr "3" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:762 +#, no-wrap +msgid "No read, write, execute" +msgstr "Нет прав на чтение, запись, выполнение" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:764 +#, no-wrap +msgid "`-wx`" +msgstr "`-wx`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:765 +#, no-wrap +msgid "4" +msgstr "4" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:766 +#, no-wrap +msgid "Read, no write, no execute" +msgstr "Чтение, нет записи, нет выполнения" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:768 +#, no-wrap +msgid "`r--`" +msgstr "`r--`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:769 +#, no-wrap +msgid "5" +msgstr "5" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:770 +#, no-wrap +msgid "Read, no write, execute" +msgstr "Чтение, нет записи, выполнение" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:772 +#, no-wrap +msgid "`r-x`" +msgstr "`r-x`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:773 +#, no-wrap +msgid "6" +msgstr "6" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:774 +#, no-wrap +msgid "Read, write, no execute" +msgstr "Чтение, запись, без выполнения" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:776 +#, no-wrap +msgid "`rw-`" +msgstr "`rw-`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:777 +#, no-wrap +msgid "7" +msgstr "7" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:778 +#, no-wrap +msgid "Read, write, execute" +msgstr "Чтение, запись, выполнение" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:779 +#, no-wrap +msgid "`rwx`" +msgstr "`rwx`" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:783 +msgid "" +"Use the `-l` argument with man:ls[1] to view a long directory listing that " +"includes a column of information about a file's permissions for the owner, " +"group, and everyone else. For example, `ls -l` in an arbitrary directory " +"may show:" +msgstr "" +"Используйте аргумент `-l` с man:ls[1] для просмотра длинного списка " +"каталога, который включает колонку с информацией о правах доступа к файлу " +"для владельца, группы и всех остальных. Например, `ls -l` в произвольном " +"каталоге может вывести:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:787 +#, no-wrap +msgid "% ls -l\n" +msgstr "% ls -l\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:797 +#, no-wrap +msgid "" +"total 530\n" +"-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile\n" +"-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile\n" +"-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt\n" +msgstr "" +"total 530\n" +"-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile\n" +"-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile\n" +"-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:807 +msgid "" +"Focusing on the line for `myfile`, the first `(leftmost)` character " +"indicates whether this file is a regular file, a directory, a special " +"character device, a socket, or any other special pseudo-file device. In " +"this example, the `-` indicates a regular file. The next three characters, " +"`rw-` in this example, give the permissions for the owner of the file. The " +"next three characters, `r--`, give the permissions for the group that the " +"file belongs to. The final three characters, `r--`, give the permissions " +"for the rest of the world. A dash means that the permission is turned off. " +"In this example, the permissions are set so the owner can read and write to " +"the file, the group can read the file, and the rest of the world can only " +"read the file. According to the table above, the permissions for this file " +"would be `644`, where each digit represents the three parts of the file's " +"permission." +msgstr "" +"Рассматривая строку для файла `myfile`, первый `(крайний слева)` символ " +"указывает, является ли этот файл обычным файлом, каталогом, специальным " +"символьным устройством, сокетом или любым другим специальным псевдофайловым " +"устройством. В данном примере символ `-` обозначает обычный файл. Следующие " +"три символа, в этом примере `rw-`, указывают права для владельца файла. " +"Следующие три символа, `r--`, указывают права для группы, к которой " +"принадлежит файл. Последние три символа, `r--`, указывают права для всех " +"остальных. Дефис означает, что право отключено. В этом примере права " +"настроены так, что владелец может читать и записывать файл, группа может " +"читать файл, а все остальные могут только читать файл. Согласно приведённой " +"выше таблице, права для этого файла будут `644`, где каждая цифра " +"представляет одну из трёх частей прав файла." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:810 +msgid "" +"How does the system control permissions on devices? FreeBSD treats most " +"hardware devices as a file that programs can open, read, and write data to. " +"These special device files are stored in `/dev/`." +msgstr "" +"Как система управляет правами доступа к устройствам? FreeBSD рассматривает " +"большинство аппаратных устройств как файлы, которые программы могут " +"открывать, читать и записывать в них данные. Эти специальные файлы устройств " +"хранятся в `/dev/`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:816 +msgid "" +"Directories are also treated as files. They have read, write, and execute " +"permissions. The executable bit for a directory has a slightly different " +"meaning than that of files. When a directory is marked executable, it means " +"it is possible to change into that directory using man:cd[1]. This also " +"means that it is possible to access the files within that directory, subject " +"to the permissions on the files themselves." +msgstr "" +"Каталоги также рассматриваются как файлы. У них есть права на чтение, запись " +"и выполнение. Бит выполнения для каталога имеет несколько иное значение, чем " +"для файлов. Если каталог помечен как исполняемый, это означает, что в него " +"можно перейти с помощью man:cd[1]. Это также означает, что можно получить " +"доступ к файлам внутри этого каталога, в зависимости от прав на сами файлы." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:819 +msgid "" +"In order to perform a directory listing, the read permission must be set on " +"the directory. In order to delete a file that one knows the name of, it is " +"necessary to have write _and_ execute permissions to the directory " +"containing the file." +msgstr "" +"Для выполнения списка файлов в каталоге необходимо установить право на " +"чтение для этого каталога. Чтобы удалить файл, имя которого известно, " +"требуются права на запись _и_ выполнение для каталога, содержащего этот файл." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:822 +msgid "" +"There are more permission bits, but they are primarily used in special " +"circumstances such as setuid binaries and sticky directories. For more " +"information on file permissions and how to set them, refer to man:chmod[1]." +msgstr "" +"Существуют и другие биты разрешений, но они в основном используются в особых " +"случаях, таких как setuid-бинарники и sticky-каталоги. Для получения " +"дополнительной информации о правах доступа к файлам и их настройке " +"обратитесь к man:chmod[1]." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:823 +#, no-wrap +msgid "Symbolic Permissions" +msgstr "Символьные права доступа" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:827 +msgid "" +"Symbolic permissions use characters instead of octal values to assign " +"permissions to files or directories. Symbolic permissions use the syntax of " +"(who) (action) (permissions), where the following values are available:" +msgstr "" +"Символьные права доступа используют символы вместо восьмеричных значений для " +"назначения прав доступа файлам или каталогам. Синтаксис символьных прав " +"доступа имеет вид (кто) (действие) (права доступа), где доступны следующие " +"значения:" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:832 +#, no-wrap +msgid "Option" +msgstr "Опция" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:833 +#, no-wrap +msgid "Letter" +msgstr "Буква" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:835 +#, no-wrap +msgid "Represents" +msgstr "Представляет" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:836 +#: documentation/content/en/books/handbook/basics/_index.adoc:840 +#: documentation/content/en/books/handbook/basics/_index.adoc:844 +#: documentation/content/en/books/handbook/basics/_index.adoc:848 +#, no-wrap +msgid "(who)" +msgstr "(кто)" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:837 +#, no-wrap +msgid "u" +msgstr "u" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:839 +#, no-wrap +msgid "User" +msgstr "Пользователь" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:841 +#, no-wrap +msgid "g" +msgstr "g" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:843 +#, no-wrap +msgid "Group owner" +msgstr "Владелец группы" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:845 +#, no-wrap +msgid "o" +msgstr "o" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:847 +#, no-wrap +msgid "Other" +msgstr "Другие" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:849 +#, no-wrap +msgid "a" +msgstr "a" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:851 +#, no-wrap +msgid "All (\"world\")" +msgstr "Все (all, \"world\")" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:852 +#: documentation/content/en/books/handbook/basics/_index.adoc:856 +#: documentation/content/en/books/handbook/basics/_index.adoc:860 +#, no-wrap +msgid "(action)" +msgstr "(действие)" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:853 +#, no-wrap +msgid "+" +msgstr "+" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:855 +#, no-wrap +msgid "Adding permissions" +msgstr "Добавление разрешений" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:857 +#, no-wrap +msgid "-" +msgstr "-" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:859 +#, no-wrap +msgid "Removing permissions" +msgstr "Удаление прав доступа" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:861 +#, no-wrap +msgid "=" +msgstr "=" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:863 +#, no-wrap +msgid "Explicitly set permissions" +msgstr "Явно заданные разрешения" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:864 +#: documentation/content/en/books/handbook/basics/_index.adoc:868 +#: documentation/content/en/books/handbook/basics/_index.adoc:872 +#: documentation/content/en/books/handbook/basics/_index.adoc:876 +#: documentation/content/en/books/handbook/basics/_index.adoc:880 +#, no-wrap +msgid "(permissions)" +msgstr "(права доступа)" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:865 +#, no-wrap +msgid "r" +msgstr "r" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:867 +#, no-wrap +msgid "Read" +msgstr "Чтение" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:869 +#, no-wrap +msgid "w" +msgstr "w" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:871 +#, no-wrap +msgid "Write" +msgstr "Запись" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:873 +#, no-wrap +msgid "x" +msgstr "x" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:875 +#, no-wrap +msgid "Execute" +msgstr "Выполнение" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:877 +#, no-wrap +msgid "t" +msgstr "t" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:879 +#, no-wrap +msgid "Sticky bit" +msgstr "Бит закрепления (sticky)" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:881 +#, no-wrap +msgid "s" +msgstr "s" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:882 +#, no-wrap +msgid "Set UID or GID" +msgstr "Установка UID или GID" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:886 +msgid "" +"These values are used with man:chmod[1], but with letters instead of " +"numbers. For example, the following command would block both members of the " +"group associated with _FILE_ and all other users from accessing _FILE_:" +msgstr "" +"Эти значения используются с man:chmod[1], но с буквами вместо чисел. " +"Например, следующая команда запретит доступ к _FILE_ как членам группы, " +"связанной с _FILE_, так и всем остальным пользователям:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:890 +#, no-wrap +msgid "% chmod go= FILE\n" +msgstr "% chmod go= FILE\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:894 +msgid "" +"A comma separated list can be provided when more than one set of changes to " +"a file must be made. For example, the following command removes the group " +"and \"world\" write permission on _FILE_, and adds the execute permissions " +"for everyone:" +msgstr "" +"Список, разделённый запятыми, может быть указан, если к файлу необходимо " +"применить более одного изменения. Например, следующая команда удаляет " +"разрешение на запись для группы и всех остальных пользователей у _FILE_, а " +"также добавляет разрешение на выполнение для всех:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:898 +#, no-wrap +msgid "% chmod go-w,a+x FILE\n" +msgstr "% chmod go-w,a+x FILE\n" + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:900 +#, no-wrap +msgid "FreeBSD File Flags" +msgstr "Флаги файлов FreeBSD" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:905 +msgid "" +"In addition to file permissions, FreeBSD supports the use of \"file " +"flags\". These flags add an additional level of security and control over " +"files, but not directories. With file flags, even `root` can be prevented " +"from removing or altering files." +msgstr "" +"В дополнение к правам доступа к файлам FreeBSD поддерживает использование " +"\"флагов файлов\". Эти флаги добавляют дополнительный уровень безопасности и " +"контроля над файлами, но не над каталогами. С помощью флагов файлов даже " +"пользователь `root` может быть лишён возможности удалять или изменять файлы." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:908 +msgid "" +"File flags are modified using man:chflags[1]. For example, to enable the " +"system undeletable flag on the file `file1`, issue the following command:" +msgstr "" +"Флаги файлов изменяются с помощью man:chflags[1]. Например, чтобы установить " +"системный флаг «неудаляемый» для файла `file1`, выполните следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:912 +#, no-wrap +msgid "# chflags sunlink file1\n" +msgstr "# chflags sunlink file1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:915 +msgid "" +"To disable the system undeletable flag, put a \"no\" in front of the " +"`sunlink`:" +msgstr "" +"Чтобы отключить системный флаг \"неудаляемый\", добавьте \"no\" перед " +"`sunlink`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:919 +#, no-wrap +msgid "# chflags nosunlink file1\n" +msgstr "# chflags nosunlink file1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:922 +msgid "To view the flags of a file, use `-lo` with man:ls[1]:" +msgstr "Чтобы просмотреть флаги файла, используйте `-lo` с man:ls[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:926 +#, no-wrap +msgid "# ls -lo file1\n" +msgstr "# ls -lo file1\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:931 +#, no-wrap +msgid "-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1\n" +msgstr "-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:936 +msgid "" +"Several file flags may only be added or removed by the `root` user. In " +"other cases, the file owner may set its file flags. Refer to man:chflags[1] " +"and man:chflags[2] for more information." +msgstr "" +"Некоторые флаги файлов могут быть добавлены или удалены только пользователем " +"`root`. В остальных случаях владелец файла может устанавливать его флаги. " +"Дополнительную информацию можно найти в man:chflags[1] и man:chflags[2]." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:937 +#, no-wrap +msgid "The setuid, setgid, and sticky Permissions" +msgstr "Установленные биты setuid, setgid и sticky" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:941 +msgid "" +"Other than the permissions already discussed, there are three other specific " +"settings that all administrators should know about. They are the `setuid`, " +"`setgid`, and `sticky` permissions." +msgstr "" +"Помимо уже рассмотренных прав доступа, существуют три специальных параметра, " +"которые должны знать все администраторы. Это права `setuid`, `setgid` и " +"`sticky`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:944 +msgid "" +"These settings are important for some UNIX(R) operations as they provide " +"functionality not normally granted to normal users. To understand them, the " +"difference between the real user ID and effective user ID must be noted." +msgstr "" +"Эти настройки важны для некоторых операций UNIX(R), так как предоставляют " +"функциональность, обычно недоступную обычным пользователям. Чтобы понять их, " +"необходимо отметить разницу между реальным идентификатором пользователя " +"(real user ID) и эффективным идентификатором пользователя (effective user " +"ID)." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:950 +msgid "" +"The real user ID is the UID who owns or starts the process. The effective " +"UID is the user ID the process runs as. As an example, man:passwd[1] runs " +"with the real user ID when a user changes their password. However, in order " +"to update the password database, the command runs as the effective ID of the " +"`root` user. This allows users to change their passwords without seeing a " +"`Permission Denied` error." +msgstr "" +"Реальный идентификатор пользователя (UID) — это UID, который владеет или " +"запускает процесс. Эффективный идентификатор пользователя — это UID, от " +"имени которого выполняется процесс. Например, man:passwd[1] запускается с " +"реальным UID, когда пользователь меняет свой пароль. Однако для обновления " +"базы данных паролей команда выполняется с эффективным UID пользователя " +"`root`. Это позволяет пользователям изменять свои пароли без ошибки " +"`Permission Denied`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:952 +msgid "" +"The setuid permission may be added symbolically by adding the `s` permission " +"for the user as in the following example:" +msgstr "" +"Разрешение setuid может быть добавлено символически путем добавления права " +"`s` для пользователя, как в следующем примере:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:956 +#, no-wrap +msgid "# chmod u+s suidexample.sh\n" +msgstr "# chmod u+s suidexample.sh\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:959 +msgid "" +"The setuid permission may also be set by prefixing a permission set with the " +"number four (4) as shown in the following example:" +msgstr "" +"Права setuid также могут быть установлены путем добавления числа четыре (4) " +"перед набором прав, как показано в следующем примере:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:963 +#, no-wrap +msgid "# chmod 4755 suidexample.sh\n" +msgstr "# chmod 4755 suidexample.sh\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:966 +msgid "The permissions on `suidexample.sh` now look like the following:" +msgstr "" +"Разрешения для файла `suidexample.sh` теперь выглядят следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:970 +#, no-wrap +msgid "-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh\n" +msgstr "-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:974 +msgid "" +"Note that a `s` is now part of the permission set designated for the file " +"owner, replacing the executable bit. This allows utilities which need " +"elevated permissions, such as man:passwd[1]." +msgstr "" +"Обратите внимание, что `s` теперь является частью набора прав для владельца " +"файла, заменив бит исполнения. Это позволяет создавать программы, требующие " +"повышенных прав, таких как man:passwd[1]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:979 +msgid "" +"The `nosuid` man:mount[8] option will cause such binaries to silently fail " +"without alerting the user. That option is not completely reliable as a " +"`nosuid` wrapper may be able to circumvent it." +msgstr "" +"Опция `nosuid` в man:mount[8] приведёт к тихому отказу таких бинарных файлов " +"без уведомления пользователя. Эта опция не полностью надежна, так как " +"обёртка `nosuid` может её обойти." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:984 +msgid "" +"To view this in real time, open two terminals. On one, type `passwd` as a " +"normal user. While it waits for a new password, check the process table and " +"look at the user information for man:passwd[1]:" +msgstr "" +"Чтобы наблюдать это в реальном времени, откройте два терминала. В одном " +"введите `passwd` как обычный пользователь. Пока команда ожидает ввода нового " +"пароля, проверьте таблицу процессов и посмотрите информацию о пользователе " +"для man:passwd[1]:" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:986 +msgid "In terminal A:" +msgstr "В терминале A:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:991 +#, no-wrap +msgid "" +"Changing local password for trhodes\n" +"Old Password:\n" +msgstr "" +"Changing local password for trhodes\n" +"Old Password:\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:994 +msgid "In terminal B:" +msgstr "В терминале B:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:998 +#, no-wrap +msgid "# ps aux | grep passwd\n" +msgstr "# ps aux | grep passwd\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1004 +#, no-wrap +msgid "" +"trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd\n" +"root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd\n" +msgstr "" +"trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd\n" +"root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1007 +msgid "" +"Although man:passwd[1] is run as a normal user, it is using the effective " +"UID of `root`." +msgstr "" +"Хотя man:passwd[1] запускается от имени обычного пользователя, он использует " +"эффективный UID `root`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1010 +msgid "" +"The `setgid` permission performs the same function as the `setuid` " +"permission; except that it alters the group settings. When an application " +"or utility executes with this setting, it will be granted the permissions " +"based on the group that owns the file, not the user who started the process." +msgstr "" +"Разрешение `setgid` выполняет ту же функцию, что и разрешение `setuid`, за " +"исключением того, что оно изменяет настройки группы. Когда приложение или " +"утилита запускается с этой настройкой, оно получает разрешения в " +"соответствии с группой, которой принадлежит файл, а не пользователем, " +"запустившим процесс." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1012 +msgid "" +"To set the `setgid` permission on a file symbolically, add the `s` " +"permission for the group with man:chmod[1]:" +msgstr "" +"Чтобы установить право `setgid` на файл в символьном виде, добавьте право " +"`s` для группы с помощью man:chmod[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1016 +#, no-wrap +msgid "# chmod g+s sgidexample.sh\n" +msgstr "# chmod g+s sgidexample.sh\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1019 +msgid "Alternatively, provide man:chmod[1] with a leading two (2):" +msgstr "В качестве альтернативы укажите в man:chmod[1] ведущую двойку (2):" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1023 +#, no-wrap +msgid "# chmod 2755 sgidexample.sh\n" +msgstr "# chmod 2755 sgidexample.sh\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1026 +msgid "" +"In the following listing, notice that the `s` is now in the field designated " +"for the group permission settings:" +msgstr "" +"В следующем листинге обратите внимание, что символ `s` теперь находится в " +"поле, предназначенном для настроек прав группы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1030 +#, no-wrap +msgid "-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh\n" +msgstr "-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1036 +msgid "" +"In these examples, even though the shell script in question is an executable " +"file, it will not run with a different EUID or effective user ID. This is " +"because shell scripts may not access the man:setuid[2] system calls." +msgstr "" +"В этих примерах, даже если рассматриваемый shell-скрипт является исполняемым " +"файлом, он не будет запускаться с другим EUID или эффективным " +"идентификатором пользователя. Это происходит потому, что shell-скрипты не " +"могут использовать системные вызовы man:setuid[2]." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1040 +msgid "" +"The `setuid` and `setgid` permission bits may lower system security, by " +"allowing for elevated permissions. The third special permission, the " +"`sticky bit`, can strengthen the security of a system." +msgstr "" +"`setuid` и `setgid` биты прав могут снизить безопасность системы, " +"предоставляя повышенные привилегии. Третий специальный бит прав, `sticky " +"bit`, напротив, может повысить безопасность системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1044 +msgid "" +"When the `sticky bit` is set on a directory, it allows file deletion only by " +"the file owner. This is useful to prevent file deletion in public " +"directories, such as `/tmp`, by users who do not own the file. To utilize " +"this permission, add the `t` mode to the file:" +msgstr "" +"Когда `sticky bit` установлен на директории, он разрешает удаление файлов " +"только владельцу файла. Это полезно для предотвращения удаления файлов в " +"общедоступных директориях, таких как `/tmp`, пользователями, не являющимися " +"владельцами файла. Чтобы использовать этот режим доступа, добавьте режим `t` " +"к файлу:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1048 +#, no-wrap +msgid "# chmod +t /tmp\n" +msgstr "# chmod +t /tmp\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1051 +msgid "Alternatively, prefix the permission set with a one (1):" +msgstr "" +"В качестве альтернативы можно добавить единицу (1) перед набором прав " +"доступа:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1055 +#, no-wrap +msgid "# chmod 1777 /tmp\n" +msgstr "# chmod 1777 /tmp\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1058 +msgid "" +"The `sticky bit` permission will display as a `t` at the very end of the " +"permission set:" +msgstr "" +"Разрешение `sticky bit` отображается как `t` в самом конце набора разрешений:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1062 +#, no-wrap +msgid "# ls -al / | grep tmp\n" +msgstr "# ls -al / | grep tmp\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1067 +#, no-wrap +msgid "drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp\n" +msgstr "drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp\n" + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:1070 +#, no-wrap +msgid "Directory Structure" +msgstr "Структура каталогов" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1076 +msgid "" +"The FreeBSD directory hierarchy is fundamental to obtaining an overall " +"understanding of the system. The most important directory is root or, \"/" +"\". This directory is the first one mounted at boot time and it contains " +"the base system necessary to prepare the operating system for multi-user " +"operation. The root directory also contains mount points for other file " +"systems that are mounted during the transition to multi-user operation." +msgstr "" +"Иерархия каталогов FreeBSD является основой для общего понимания системы. " +"Наиболее важным каталогом является корневой или \"/\". Этот каталог " +"монтируется первым при загрузке и содержит базовую систему, необходимую для " +"подготовки операционной системы к многопользовательскому режиму. Корневой " +"каталог также содержит точки монтирования для других файловых систем, " +"которые монтируются во время перехода в многопользовательский режим." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1084 +msgid "" +"A mount point is a directory where additional file systems can be grafted " +"onto a parent file system (usually the root file system). This is further " +"described in crossref:basics[disk-organization, Disk Organization]. " +"Standard mount points include `/usr/`, `/var/`, `/tmp/`, `/mnt/`, and `/" +"cdrom/`. These directories are usually referenced to entries in `/etc/" +"fstab`. This file is a table of various file systems and mount points and " +"is read by the system. Most of the file systems in `/etc/fstab` are mounted " +"automatically at boot time from the script man:rc[8] unless their entry " +"includes `noauto`. Details can be found in crossref:basics[disks-fstab, The " +"fstab File]." +msgstr "" +"Точка монтирования — это каталог, в который можно подключить дополнительные " +"файловые системы к родительской файловой системе (обычно корневой файловой " +"системе). Это подробно описано в разделе crossref:basics[disk-" +"organization,Организация дисков]. Стандартные точки монтирования включают `/" +"usr/`, `/var/`, `/tmp/`, `/mnt/` и `/cdrom/`. Эти каталоги обычно связаны с " +"записями в файле `/etc/fstab`. Этот файл представляет собой таблицу " +"различных файловых систем и точек монтирования, которая читается системой. " +"Большинство файловых систем в `/etc/fstab` автоматически монтируются при " +"загрузке с помощью скрипта man:rc[8], если их запись не содержит параметра " +"`noauto`. Подробности можно найти в разделе crossref:basics[disks-fstab,Файл " +"fstab]." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1087 +msgid "" +"A complete description of the file system hierarchy is available in " +"man:hier[7]. The following table provides a brief overview of the most " +"common directories." +msgstr "" +"Полное описание иерархии файловой системы доступно в man:hier[7]. В " +"следующей таблице представлен краткий обзор наиболее распространённых " +"каталогов." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1091 +#, no-wrap +msgid "Directory" +msgstr "Каталог" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1093 +#: documentation/content/en/books/handbook/basics/_index.adoc:1698 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1094 +#, no-wrap +msgid "`/`" +msgstr "`/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1096 +#, no-wrap +msgid "Root directory of the file system." +msgstr "Корневой каталог файловой системы." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1097 +#, no-wrap +msgid "`/bin/`" +msgstr "`/bin/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1099 +#, no-wrap +msgid "User utilities fundamental to both single-user and multi-user environments." +msgstr "Пользовательские утилиты, основные как для однопользовательской, так и для многопользовательской среды." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1100 +#, no-wrap +msgid "`/boot/`" +msgstr "`/boot/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1102 +#, no-wrap +msgid "Programs and configuration files used during operating system bootstrap." +msgstr "Программы и конфигурационные файлы, используемые при загрузке операционной системы." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1103 +#, no-wrap +msgid "`/boot/defaults/`" +msgstr "`/boot/defaults/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1105 +#, no-wrap +msgid "Default boot configuration files. Refer to man:loader.conf[5] for details." +msgstr "Файлы конфигурации загрузки по умолчанию. Подробности смотрите в man:loader.conf[5]." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1106 +#, no-wrap +msgid "`/dev/`" +msgstr "`/dev/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1108 +#, no-wrap +msgid "Device special files managed by man:devfs[5]" +msgstr "Специальные файлы устройств, управляемые man:devfs[5]" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1109 +#, no-wrap +msgid "`/etc/`" +msgstr "`/etc/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1111 +#, no-wrap +msgid "System configuration files and scripts." +msgstr "Системные конфигурационные файлы и скрипты." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1112 +#, no-wrap +msgid "`/etc/defaults/`" +msgstr "`/etc/defaults/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1114 +#, no-wrap +msgid "Default system configuration files. Refer to man:rc[8] for details." +msgstr "Файлы конфигурации системы по умолчанию. Подробности смотрите в man:rc[8]." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1115 +#, no-wrap +msgid "`/etc/periodic/`" +msgstr "`/etc/periodic/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1117 +#, no-wrap +msgid "Scripts that run daily, weekly, and monthly, via man:cron[8]. Refer to man:periodic[8] for details." +msgstr "Скрипты, выполняемые ежедневно, еженедельно и ежемесячно, через man:cron[8]. Подробности смотрите в man:periodic[8]." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1118 +#, no-wrap +msgid "`/lib/`" +msgstr "`/lib/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1120 +#, no-wrap +msgid "Critical system libraries needed for binaries in `/bin` and `/sbin`" +msgstr "Критические системные библиотеки, необходимые для бинарных файлов в `/bin` и `/sbin`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1121 +#, no-wrap +msgid "`/libexec/`" +msgstr "`/libexec/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1123 +#, no-wrap +msgid "Critical system files" +msgstr "Критические системные файлы" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1124 +#, no-wrap +msgid "`/media/`" +msgstr "`/media/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1126 +#, no-wrap +msgid "Contains subdirectories to be used as mount points for removable media such as CDs, USB drives, and floppy disks" +msgstr "Содержит подкаталоги, предназначенные для использования в качестве точек монтирования съемных носителей, таких как компакт-диски, USB-накопители и дискеты" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1127 +#, no-wrap +msgid "`/mnt/`" +msgstr "`/mnt/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1129 +#, no-wrap +msgid "Empty directory commonly used by system administrators as a temporary mount point." +msgstr "Пустая директория, обычно используемая системными администраторами в качестве временной точки монтирования." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1130 +#, no-wrap +msgid "`/net/`" +msgstr "`/net/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1132 +#, no-wrap +msgid "Automounted NFS shares; see man:auto_master[5]" +msgstr "Автомонтируемые NFS-ресурсы; см. man:auto_master[5]" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1133 +#, no-wrap +msgid "`/proc/`" +msgstr "`/proc/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1135 +#, no-wrap +msgid "Process file system. Refer to man:procfs[5] for details." +msgstr "Файловая система процессов. Подробности смотрите в man:procfs[5]." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1136 +#, no-wrap +msgid "`/rescue/`" +msgstr "`/rescue/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1138 +#, no-wrap +msgid "Statically linked programs for emergency recovery as described in man:rescue[8]." +msgstr "Статически связанные программы для аварийного восстановления, как описано в man:rescue[8]." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1139 +#, no-wrap +msgid "`/root/`" +msgstr "`/root/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1141 +#, no-wrap +msgid "Home directory for the `root` account." +msgstr "Домашний каталог для учетной записи `root`." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1142 +#, no-wrap +msgid "`/sbin/`" +msgstr "`/sbin/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1144 +#, no-wrap +msgid "System programs and administration utilities fundamental to both single-user and multi-user environments." +msgstr "Системные программы и административные утилиты, необходимые как для однопользовательского, так и для многопользовательского окружения." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1145 +#, no-wrap +msgid "`/tmp/`" +msgstr "`/tmp/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1147 +#, no-wrap +msgid "Temporary files which are usually _not_ preserved across a system reboot. A memory-based file system is often mounted at `/tmp`. This can be automated using the tmpmfs-related variables of man:rc.conf[5] or with an entry in `/etc/fstab`; refer to man:mdmfs[8] for details." +msgstr "Временные файлы, которые обычно _не_ сохраняются после перезагрузки системы. Часто в `/tmp` монтируется файловая система в памяти. Это можно автоматизировать, используя переменные, связанные с tmpmfs, из man:rc.conf[5], или добавив запись в `/etc/fstab`; подробности смотрите в man:mdmfs[8]." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1148 +#, no-wrap +msgid "`/usr/`" +msgstr "`/usr/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1150 +#, no-wrap +msgid "The majority of user utilities and applications." +msgstr "Большинство пользовательских утилит и приложений." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1151 +#, no-wrap +msgid "`/usr/bin/`" +msgstr "`/usr/bin/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1153 +#, no-wrap +msgid "Common utilities, programming tools, and applications." +msgstr "Общие утилиты, инструменты программирования и приложения." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1154 +#, no-wrap +msgid "`/usr/include/`" +msgstr "`/usr/include/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1156 +#, no-wrap +msgid "Standard C include files." +msgstr "Стандартные включаемые файлы языка C." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1157 +#, no-wrap +msgid "`/usr/lib/`" +msgstr "`/usr/lib/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1159 +#, no-wrap +msgid "Archive libraries." +msgstr "Библиотеки архивов." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1160 +#, no-wrap +msgid "`/usr/libdata/`" +msgstr "`/usr/libdata/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1162 +#, no-wrap +msgid "Miscellaneous utility data files." +msgstr "Различные вспомогательные файлы данных." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1163 +#, no-wrap +msgid "`/usr/libexec/`" +msgstr "`/usr/libexec/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1165 +#, no-wrap +msgid "System daemons and system utilities executed by other programs." +msgstr "Системные демоны и системные утилиты, выполняемые другими программами." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1166 +#, no-wrap +msgid "`/usr/local/`" +msgstr "`/usr/local/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1168 +#, no-wrap +msgid "Local executables and libraries. Also used as the default destination for the FreeBSD ports framework. Within `/usr/local`, the general layout sketched out by man:hier[7] for `/usr` should be used. Exceptions are the man directory, which is directly under `/usr/local` rather than under `/usr/local/share`, and the ports documentation is in `share/doc/port`." +msgstr "Локальные исполняемые файлы и библиотеки. Также используется как путь по умолчанию для установки портов FreeBSD. Внутри `/usr/local` должна использоваться общая структура каталогов, описанная в man:hier[7] для `/usr`. Исключениями являются каталог man, который находится непосредственно в `/usr/local`, а не в `/usr/local/share`, а документация портов располагается в `share/doc/port`." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1169 +#, no-wrap +msgid "`/usr/ports/`" +msgstr "`/usr/ports/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1171 +#, no-wrap +msgid "The FreeBSD Ports Collection (optional)." +msgstr "Коллекция портов FreeBSD (опционально)." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1172 +#, no-wrap +msgid "`/usr/sbin/`" +msgstr "`/usr/sbin/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1174 +#, no-wrap +msgid "System daemons and system utilities executed by users." +msgstr "Системные демоны и системные утилиты, выполняемые пользователями." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1175 +#, no-wrap +msgid "`/usr/share/`" +msgstr "`/usr/share/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1177 +#, no-wrap +msgid "Architecture-independent files." +msgstr "Архитектурно-независимые файлы." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1178 +#, no-wrap +msgid "`/usr/src/`" +msgstr "`/usr/src/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1180 +#, no-wrap +msgid "BSD and/or local source files." +msgstr "BSD и/или локальные исходные файлы." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1181 +#, no-wrap +msgid "`/var/`" +msgstr "`/var/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1183 +#, no-wrap +msgid "Multi-purpose log, temporary, transient, and spool files." +msgstr "Многоцелевые файлы журналов, временные, транзиентные и файлы очередей." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1184 +#, no-wrap +msgid "`/var/log/`" +msgstr "`/var/log/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1186 +#, no-wrap +msgid "Miscellaneous system log files." +msgstr "Различные системные журналы." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1187 +#, no-wrap +msgid "`/var/tmp/`" +msgstr "`/var/tmp/`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1189 +#, no-wrap +msgid "Temporary files which are usually preserved across a system reboot." +msgstr "Временные файлы, которые обычно сохраняются после перезагрузки системы." + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:1192 +#, no-wrap +msgid "Disk Organization" +msgstr "Организация диска" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1197 +msgid "" +"The smallest unit of organization that FreeBSD uses to find files is the " +"filename. Filenames are case-sensitive, which means that `readme.txt` and " +"`README.TXT` are two separate files. FreeBSD does not use the extension of " +"a file to determine whether the file is a program, document, or some other " +"form of data." +msgstr "" +"Наименьшей единицей организации, которую FreeBSD использует для поиска " +"файлов, является имя файла. Имена файлов чувствительны к регистру, что " +"означает, что `readme.txt` и `README.TXT` — это два разных файла. FreeBSD не " +"использует расширение файла для определения, является ли файл программой, " +"документом или каким-либо другим видом данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1201 +msgid "" +"Files are stored in directories. A directory may contain no files, or it " +"may contain many hundreds of files. A directory can also contain other " +"directories, allowing a hierarchy of directories within one another in order " +"to organize data." +msgstr "" +"Файлы хранятся в каталогах. Каталог может не содержать файлов или содержать " +"сотни файлов. Каталог также может содержать другие каталоги, что позволяет " +"создавать иерархию вложенных каталогов для организации данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1207 +msgid "" +"Files and directories are referenced by giving the file or directory name, " +"followed by a forward slash, `/`, followed by any other directory names that " +"are necessary. For example, if the directory `foo` contains a directory " +"`bar` which contains the file `readme.txt`, the full name, or _path_, to the " +"file is `foo/bar/readme.txt`. Note that this is different from Windows(R) " +"which uses `\\` to separate file and directory names. FreeBSD does not use " +"drive letters, or other drive names in the path. For example, one would not " +"type `c:\\foo\\bar\\readme.txt` on FreeBSD." +msgstr "" +"Файлы и каталоги указываются путём перечисления имени файла или каталога, за " +"которым следует косая черта `/`, а затем — при необходимости — другие имена " +"каталогов. Например, если каталог `foo` содержит каталог `bar`, в котором " +"находится файл `readme.txt`, то полное имя или _путь_ к файлу будет `foo/bar/" +"readme.txt`. Обратите внимание, что это отличается от Windows(R), где для " +"разделения имён файлов и каталогов используется `\\`. В FreeBSD не " +"используются буквы дисков или другие обозначения накопителей в пути. " +"Например, в FreeBSD не указывают путь вида `c:\\foo\\bar\\readme.txt`." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:1209 +#, no-wrap +msgid "File systems" +msgstr "Файловые системы" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1217 +msgid "" +"Directories and files are stored in a file system. Each file system " +"contains exactly one directory at the very top level, called the _root " +"directory_ for that file system. This root directory can contain other " +"directories. One file system is designated the _root file system_ or `/`. " +"Every other file system is _mounted_ under the root file system. No matter " +"how many disks are on the FreeBSD system, every directory appears to be part " +"of the same disk." +msgstr "" +"Каталоги и файлы хранятся в файловой системе. Каждая файловая система " +"содержит ровно один каталог на самом верхнем уровне, называемый _корневым " +"каталогом_ для этой файловой системы. Этот корневой каталог может содержать " +"другие каталоги. Одна файловая система назначается _корневой файловой " +"системой_ или `/`. Все остальные файловые системы _монтируются_ в корневую " +"файловую систему. Независимо от количества дисков в системе FreeBSD, каждый " +"каталог выглядит как часть одного и того же диска." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1220 +msgid "" +"Consider three file systems, called `A`, `B`, and `C`. Each file system has " +"one root directory, which contains two other directories, called `A1`, `A2` " +"(and likewise `B1`, `B2` and `C1`, `C2`)." +msgstr "" +"Рассмотрим три файловые системы: `A`, `B` и `C`. Каждая файловая система " +"имеет один корневой каталог, который содержит два других каталога с именами " +"`A1`, `A2` (аналогично `B1`, `B2` и `C1`, `C2`)." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1224 +msgid "" +"Call `A` the root file system. If man:ls[1] is used to view the contents of " +"this directory, it will show two subdirectories, `A1` and `A2`. The " +"directory tree looks like this:" +msgstr "" +"Назовем корневую файловую систему `A`. Если использовать man:ls[1] для " +"просмотра содержимого этого каталога, будут видны два подкаталога, `A1` и " +"`A2`. Дерево каталогов выглядит следующим образом:" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/basics/_index.adoc:1225 +#: documentation/content/en/books/handbook/basics/_index.adoc:1230 +#: documentation/content/en/books/handbook/basics/_index.adoc:1238 +#, no-wrap +msgid "Directory tree with the root directory and two subdirectories" +msgstr "Дерево каталогов с корневым каталогом и двумя подкаталогами" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/basics/_index.adoc:1225 +#, no-wrap +msgid "example-dir1.png" +msgstr "example-dir1.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1229 +msgid "" +"A file system must be mounted on to a directory in another file system. " +"When mounting file system `B` on to the directory `A1`, the root directory " +"of `B` replaces `A1`, and the directories in `B` appear accordingly:" +msgstr "" +"Файловая система должна быть смонтирована в каталог другой файловой системы. " +"При монтировании файловой системы `B` в каталог `A1` корневой каталог `B` " +"заменяет `A1`, а каталоги в `B` отображаются соответствующим образом:" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/basics/_index.adoc:1230 +#, no-wrap +msgid "example-dir2.png" +msgstr "example-dir2.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1235 +msgid "" +"Any files that are in the `B1` or `B2` directories can be reached with the " +"path `/A1/B1` or `/A1/B2` as necessary. Any files that were in `/A1` have " +"been temporarily hidden. They will reappear if `B` is _unmounted_ from `A`." +msgstr "" +"Любые файлы в каталогах `B1` или `B2` доступны по пути `/A1/B1` или `/A1/B2` " +"соответственно. Файлы, которые находились в `/A1`, временно скрыты. Они " +"снова станут доступны, если `B` будет _отмонтирован_ из `A`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1237 +msgid "If `B` had been mounted on `A2` then the diagram would look like this:" +msgstr "Если бы `B` был смонтирован на `A2`, то диаграмма выглядела бы так:" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/basics/_index.adoc:1238 +#, no-wrap +msgid "example-dir3.png" +msgstr "example-dir3.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1241 +msgid "and the paths would be `/A2/B1` and `/A2/B2` respectively." +msgstr "и пути будут `/A2/B1` и `/A2/B2` соответственно." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1244 +msgid "" +"File systems can be mounted on top of one another. Continuing the last " +"example, the `C` file system could be mounted on top of the `B1` directory " +"in the `B` file system, leading to this arrangement:" +msgstr "" +"Файловые системы могут монтироваться одна поверх другой. Продолжая последний " +"пример, файловая система `C` может быть смонтирована поверх каталога `B1` в " +"файловой системе `B`, что приведёт к следующей структуре:" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/basics/_index.adoc:1245 +#: documentation/content/en/books/handbook/basics/_index.adoc:1249 +#, no-wrap +msgid "A complex directory tree. With different subdirectories hanging from root." +msgstr "Сложная древовидная структура каталогов. С различными подкаталогами, отходящими от корневого." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/basics/_index.adoc:1245 +#, no-wrap +msgid "example-dir4.png" +msgstr "example-dir4.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1248 +msgid "" +"Or `C` could be mounted directly on to the `A` file system, under the `A1` " +"directory:" +msgstr "" +"Или `C` может быть непосредственно смонтирована в файловую систему `A`, в " +"каталог `A1`:" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/basics/_index.adoc:1249 +#, no-wrap +msgid "example-dir5.png" +msgstr "example-dir5.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1253 +msgid "" +"It is entirely possible to have one large root file system, and not need to " +"create any others. There are some drawbacks to this approach, and one " +"advantage." +msgstr "" +"Вполне возможно иметь одну большую корневую файловую систему и не создавать " +"других. У такого подхода есть несколько недостатков и одно преимущество." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:1254 +#, no-wrap +msgid "Benefits of Multiple File Systems" +msgstr "Преимущества нескольких файловых систем" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1256 +msgid "" +"Different file systems can have different _mount options_. For example, the " +"root file system can be mounted read-only, making it impossible for users to " +"inadvertently delete or edit a critical file. Separating user-writable file " +"systems, such as `/home`, from other file systems allows them to be mounted " +"_nosuid_. This option prevents the _suid_/_guid_ bits on executables stored " +"on the file system from taking effect, possibly improving security." +msgstr "" +"Различные файловые системы могут иметь разные _параметры монтирования_. " +"Например, корневая файловая система может быть смонтирована в режиме только " +"для чтения, что предотвращает случайное удаление или редактирование важных " +"файлов пользователями. Разделение файловых систем, доступных для записи " +"пользователями, таких как `/home`, от остальных позволяет монтировать их с " +"опцией _nosuid_. Эта опция предотвращает действие битов _suid_/_guid_ у " +"исполняемых файлов, хранящихся в данной файловой системе, что может повысить " +"безопасность." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1257 +msgid "" +"FreeBSD automatically optimizes the layout of files on a file system, " +"depending on how the file system is being used. So a file system that " +"contains many small files that are written frequently will have a different " +"optimization to one that contains fewer, larger files. By having one big " +"file system this optimization breaks down." +msgstr "" +"FreeBSD автоматически оптимизирует расположение файлов в файловой системе в " +"зависимости от того, как она используется. Таким образом, файловая система, " +"содержащая множество часто записываемых небольших файлов, будет " +"оптимизирована иначе, чем система с меньшим количеством более крупных " +"файлов. При использовании одной большой файловой системы такая оптимизация " +"нарушается." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1258 +msgid "" +"FreeBSD's file systems are robust if power is lost. However, a power loss at " +"a critical point could still damage the structure of the file system. By " +"splitting data over multiple file systems it is more likely that the system " +"will still come up, making it easier to restore from backup as necessary." +msgstr "" +"Файловые системы FreeBSD устойчивы к потере питания. Однако отключение " +"питания в критический момент всё же может повредить структуру файловой " +"системы. Разделение данных между несколькими файловыми системами увеличивает " +"вероятность успешной загрузки системы, упрощая восстановление из резервной " +"копии при необходимости." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:1259 +#, no-wrap +msgid "Benefit of a Single File System" +msgstr "Преимущество единой файловой системы" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1261 +msgid "" +"File systems are a fixed size. If you create a file system when you install " +"FreeBSD and give it a specific size, you may later discover that you need to " +"make the partition bigger. This is not easily accomplished without backing " +"up, recreating the file system with the new size, and then restoring the " +"backed up data." +msgstr "" +"Файловые системы имеют фиксированный размер. Если вы создали файловую " +"систему при установке FreeBSD и задали ей определённый размер, позже может " +"оказаться, что раздел нужно увеличить. Это нелегко сделать без резервного " +"копирования, пересоздания файловой системы с новым размером и последующего " +"восстановления данных из резервной копии." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1268 +msgid "" +"FreeBSD features the man:growfs[8] command, which makes it possible to " +"increase the size of file system on the fly, removing this limitation. A " +"file system can only be expanded into free space in the partition in which " +"it resides. If there is space after the partition, the partition can be " +"expanded with man:gpart[8]. If the partition is the last one on a virtual " +"disk, and the disk is expanded, the partition can then be expanded." +msgstr "" +"FreeBSD предоставляет команду man:growfs[8], которая позволяет увеличивать " +"размер файловой системы на лету, устраняя это ограничение. Файловая система " +"может быть расширена только в свободное пространство раздела, в котором она " +"находится. Если после раздела есть место, сам раздел можно расширить с " +"помощью man:gpart[8]. Если раздел является последним на виртуальном диске и " +"диск расширен, то раздел также можно расширить." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:1271 +#, no-wrap +msgid "Disk partitions" +msgstr "Разделы диска" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1284 +msgid "" +"File systems are contained in _partitions_. Disks are divided into " +"partitions using one of several partitioning schemes; see " +"crossref:bsdinstall[bsdinstall-part-manual, Manual Partitioning]. The newer " +"scheme is GPT; older BIOS-based computers use MBR. GPT supports division of " +"a disk into partitions with a size, offset, and type. It supports a large " +"number of partitions and partition types, and is recommended whenever its " +"use is possible. GPT partitions use the disk name with a suffix, where the " +"suffix is `p1` for the first partition, `p2` for the second, and so on. " +"MBR, however, supports only a small number of partitions. The MBR " +"partitions are known in FreeBSD as `slices`. Slices may be used for " +"different operating systems. FreeBSD slices are subdivided into partitions " +"using BSD labels (see man:bsdlabel[8])." +msgstr "" +"Файловые системы содержатся в _разделах_. Диски разделяются на разделы с " +"использованием одной из нескольких схем разметки; см. " +"crossref:bsdinstall[bsdinstall-part-manual, Ручная разметка разделов]. Более " +"новая схема — GPT; старые компьютеры на базе BIOS используют MBR. GPT " +"поддерживает разделение диска на разделы с указанием размера, смещения и " +"типа. Она поддерживает большое количество разделов и их типов, и " +"рекомендуется к использованию везде, где это возможно. Разделы GPT " +"используют имя диска с суффиксом, где суффикс `p1` соответствует первому " +"разделу, `p2` — второму и так далее. MBR, однако, поддерживает только " +"небольшое количество разделов. Разделы MBR в FreeBSD называются _слайсами_. " +"Слайсы могут использоваться для разных операционных систем. Слайсы FreeBSD " +"дополнительно разбиваются на разделы с использованием меток BSD (см. " +"man:bsdlabel[8])." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1290 +msgid "" +"Slice numbers follow the device name, prefixed with an `s`, starting at 1. " +"So \"da0__s1__\" is the first slice on the first SCSI drive. There can only " +"be four physical slices on a disk, but there can be logical slices inside " +"physical slices of the appropriate type. These extended slices are numbered " +"starting at 5, so \"ada0__s5__\" is the first extended slice on the first " +"SATA disk. These devices are used by file systems that expect to occupy a " +"slice." +msgstr "" +"Номера слайсов указываются после имени устройства с префиксом `s` и " +"начинаются с 1. Таким образом, \"da0__s1__\" — это первый слайс на первом " +"SCSI-диске. На диске может быть только четыре физических слайса, но внутри " +"физических слайсов соответствующего типа могут находиться логические слайсы. " +"Эти расширенные слайсы нумеруются, начиная с 5, поэтому \"ada0__s5__\" — это " +"первый расширенный слайс на первом SATA-диске. Эти устройства используются " +"файловыми системами, которые предназначены для размещения в слайсе." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1292 +msgid "" +"Each GPT or BSD partition can contain only one file system, which means that " +"file systems are often described by either their typical mount point in the " +"file system hierarchy, or the name of the partition they are contained in." +msgstr "" +"Каждый раздел GPT или BSD может содержать только одну файловую систему, что " +"означает, что файловые системы часто описываются либо по их стандартной " +"точке монтирования в иерархии файловых систем, либо по имени раздела, в " +"котором они находятся." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1297 +msgid "" +"FreeBSD also uses disk space for _swap space_ to provide _virtual memory_. " +"This allows your computer to behave as though it has much more memory than " +"it actually does. When FreeBSD runs out of memory, it moves some of the " +"data that is not currently being used to the swap space, and moves it back " +"in (moving something else out) when it needs it. This is called _paging_." +msgstr "" +"FreeBSD также использует место на диске для _раздела подкачки_ (_swap " +"space_), чтобы обеспечить работу _виртуальной памяти_. Это позволяет " +"компьютеру вести себя так, как будто у него больше памяти, чем есть на самом " +"деле. Когда FreeBSD исчерпывает доступную память, она перемещает часть " +"данных, которые в данный момент не используются, в раздел подкачки, а затем " +"возвращает их обратно (перемещая что-то другое), когда они нужны. Этот " +"процесс называется _подкачкой_ (_paging_)." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1299 +msgid "Some BSD partitions have certain conventions associated with them." +msgstr "Некоторые разделы BSD имеют определенные соглашения, связанные с ними." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1303 +#, no-wrap +msgid "Partition" +msgstr "Раздел" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1305 +#, no-wrap +msgid "Convention" +msgstr "Соглашение" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1306 +#, no-wrap +msgid "`a`" +msgstr "`a`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1308 +#, no-wrap +msgid "Normally contains the root file system." +msgstr "Обычно содержит корневую файловую систему." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1309 +#, no-wrap +msgid "`b`" +msgstr "`b`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1311 +#, no-wrap +msgid "Normally contains swap space." +msgstr "Обычно содержит раздел подкачки." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1312 +#, no-wrap +msgid "`c`" +msgstr "`c`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1314 +#, no-wrap +msgid "Normally the same size as the enclosing slice. This allows utilities that need to work on the entire slice, such as a bad block scanner, to work on the `c` partition. A file system would not normally be created on this partition." +msgstr "Обычно имеет тот же размер, что и окружающий слайс. Это позволяет утилитам, которым необходимо работать со всем слайсом, например, сканеру плохих блоков, работать с разделом `c`. Файловая система обычно не создается на этом разделе." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1315 +#, no-wrap +msgid "`d`" +msgstr "`d`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1316 +#, no-wrap +msgid "Partition `d` used to have a special meaning associated with it, although that is now gone and `d` may work as any normal partition." +msgstr "Раздел `d` ранее имел особое значение, но сейчас это ушло в прошлое, и `d` может использоваться как обычный раздел." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1321 +msgid "" +"Slices and \"dangerously dedicated\" physical drives contain BSD partitions, " +"which are represented as letters from `a` to `h`. This letter is appended " +"to the device name, so \"da0__a__\" is the `a` partition on the first `da` " +"drive, which is \"dangerously dedicated\". \"ada1s3__e__\" is the fifth " +"partition in the third slice of the second SATA disk drive." +msgstr "" +"Слайсы и «опасно выделенные» (dangerously dedicated) физические диски " +"содержат разделы BSD, которые обозначаются буквами от `a` до `h`. Эта буква " +"добавляется к имени устройства, поэтому «da0__a__» — это раздел `a` на " +"первом диске `da`, который является «опасно выделенным». «ada1s3__e__» — это " +"пятый раздел в третьем срезе второго диска SATA." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1326 +msgid "" +"Finally, each disk on the system is identified. A disk name starts with a " +"code that indicates the type of disk, and then a number, indicating which " +"disk it is. Unlike partitions and slices, disk numbering starts at 0. " +"Common codes are listed in crossref:basics[disks-naming,Disk Device Names]." +msgstr "" +"Наконец, каждый диск в системе идентифицируется. Имя диска начинается с " +"кода, указывающего тип диска, за которым следует номер, обозначающий " +"конкретный диск. В отличие от разделов и слайсов, нумерация дисков " +"начинается с 0. Распространённые коды перечислены в crossref:basics[disks-" +"naming,Имена устройств дисков]." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1330 +msgid "" +"When referring to a partition in a slice, include the disk name, `s`, the " +"slice number, and then the partition letter. Examples are shown in " +"crossref:basics[basics-disk-slice-part,Sample Disk, Slice, and Partition " +"Names]. GPT partitions include the disk name, `p`, and then the partition " +"number." +msgstr "" +"При указании раздела в слайсе укажите имя диска, `s`, номер слайса, а затем " +"букву раздела. Примеры приведены в разделе crossref:basics[basics-disk-slice-" +"part,Примеры имен дисков, слайсов и разделов]. Разделы GPT включают имя " +"диска, `p`, а затем номер раздела." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1332 +msgid "" +"crossref:basics[basics-concept-disk-model,Conceptual Model of a Disk] shows " +"a conceptual model of a disk layout using MBR slices." +msgstr "" +"crossref:basics[basics-concept-disk-model,Концептуальная модель диска] " +"показывает концептуальную модель разметки диска с использованием разделов " +"MBR." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1337 +msgid "" +"When installing FreeBSD, configure the disk slices if using MBR, and create " +"partitions within the slice to be used for FreeBSD. If using GPT, configure " +"partitions for each file system. In either case, create a file system or " +"swap space in each partition, and decide where each file system will be " +"mounted. See man:gpart[8] for information on manipulating partitions." +msgstr "" +"При установке FreeBSD настройте слайсы диска, если используется MBR, и " +"создайте разделы внутри слайса, который будет использоваться для FreeBSD. " +"Если используется GPT, настройте разделы для каждой файловой системы. В " +"обоих случаях создайте файловую систему или область подкачки в каждом " +"разделе и определите, где будет монтироваться каждая файловая система. " +"Подробности о работе с разделами см. в man:gpart[8]." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:1339 +#, no-wrap +msgid "Disk Device Names" +msgstr "Имена устройств дисков" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1343 +#, no-wrap +msgid "Drive Type" +msgstr "Тип накопителя" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1345 +#, no-wrap +msgid "Drive Device Name" +msgstr "Имя устройства накопителя" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1346 +#, no-wrap +msgid "SATA and IDE hard drives" +msgstr "SATA и IDE жёсткие диски" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1348 +#, no-wrap +msgid "`ada`" +msgstr "`ada`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1349 +#, no-wrap +msgid "SCSI hard drives and USB storage devices" +msgstr "SCSI жесткие диски и USB устройства хранения данных" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1351 +#, no-wrap +msgid "`da`" +msgstr "`da`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1352 +#, no-wrap +msgid "NVMe storage" +msgstr "Хранилище NVMe" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1354 +#, no-wrap +msgid "`nvd` or `nda`" +msgstr "`nvd` или `nda`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1355 +#, no-wrap +msgid "SATA and IDE CD-ROM drives" +msgstr "SATA и IDE приводы CD-ROM" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1357 +#: documentation/content/en/books/handbook/basics/_index.adoc:1360 +#, no-wrap +msgid "`cd`" +msgstr "`cd`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1358 +#, no-wrap +msgid "SCSI CD-ROM drives" +msgstr "SCSI CD-ROM приводы" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1361 +#, no-wrap +msgid "Floppy drives" +msgstr "Накопители на гибких дисках" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1363 +#, no-wrap +msgid "`fd`" +msgstr "`fd`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1364 +#, no-wrap +msgid "SCSI tape drives" +msgstr "SCSI-ленточные накопители" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1366 +#, no-wrap +msgid "`sa`" +msgstr "`sa`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1367 +#, no-wrap +msgid "RAID drives" +msgstr "RAID-диски" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1368 +#, no-wrap +msgid "Examples include `aacd` for Adaptec(R) AdvancedRAID, `mlxd` and `mlyd` for Mylex(R), `amrd` for AMI MegaRAID(R), `idad` for Compaq Smart RAID, `twed` for 3ware(R) RAID." +msgstr "Примеры включают `aacd` для Adaptec(R) AdvancedRAID, `mlxd` и `mlyd` для Mylex(R), `amrd` для AMI MegaRAID(R), `idad` для Compaq Smart RAID, `twed` для 3ware(R) RAID." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:1373 +#, no-wrap +msgid "Sample Disk, Slice, and Partition Names" +msgstr "Примеры названий дисков, слайсов и разделов" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1378 +#, no-wrap +msgid "Name" +msgstr "Имя" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1380 +#, no-wrap +msgid "Meaning" +msgstr "Значение" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1381 +#, no-wrap +msgid "`ada0s1a`" +msgstr "`ada0s1a`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1383 +#, no-wrap +msgid "The first partition (`a`) on the first slice (`s1`) on the first SATA disk (`ada0`)." +msgstr "Первый раздел (`a`) на первом слайсе (`s1`) на первом SATA-диске (`ada0`)." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1384 +#, no-wrap +msgid "`da1s2e`" +msgstr "`da1s2e`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1385 +#, no-wrap +msgid "The fifth partition (`e`) on the second slice (`s2`) on the second SCSI disk (`da1`)." +msgstr "Пятый раздел (`e`) на втором срезе (`s2`) второго SCSI-диска (`da1`)." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:1389 +#, no-wrap +msgid "Conceptual Model of a Disk" +msgstr "Концептуальная модель диска" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1396 +msgid "" +"This diagram shows FreeBSD's view of the first SATA disk attached to the " +"system. Assume that the disk is 250 GB in size, and contains an 80 GB slice " +"and a 170 GB slice (MS-DOS(R) partitions). The first slice contains a " +"Windows(R) NTFS file system, `C:`, and the second slice contains a FreeBSD " +"installation. This example FreeBSD installation has four data partitions " +"and a swap partition." +msgstr "" +"На этой диаграмме показано, как FreeBSD видит первый SATA-диск, подключённый " +"к системе. Предположим, что размер диска составляет 250 ГБ, и он содержит " +"раздел на 80 ГБ и раздел на 170 ГБ (разделы MS-DOS(R)). Первый раздел " +"содержит файловую систему Windows(R) NTFS, `C:`, а второй раздел содержит " +"установленную систему FreeBSD. В данном примере установки FreeBSD " +"присутствуют четыре раздела с данными и один раздел подкачки." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1400 +msgid "" +"The four partitions each hold a file system. Partition `a` is used for the " +"root file system, `d` for `/var/`, `e` for `/tmp/`, and `f` for `/usr/`. " +"Partition letter `c` refers to the entire slice, and so is not used for " +"ordinary partitions." +msgstr "" +"Четыре раздела содержат файловые системы. Раздел `a` используется для " +"корневой файловой системы, `d` — для `/var/`, `e` — для `/tmp/`, а `f` — для " +"`/usr/`. Буква раздела `c` относится ко всему слайсу и поэтому не " +"используется для обычных разделов." + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/basics/_index.adoc:1401 +#, no-wrap +msgid "Layout of a shared drive between Windows and FreeBSD" +msgstr "Компоновка общего диска между Windows и FreeBSD" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/basics/_index.adoc:1401 +#, no-wrap +msgid "disk-layout.png" +msgstr "disk-layout.png" + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:1405 +#, no-wrap +msgid "Mounting and Unmounting File Systems" +msgstr "Монтирование и демонтирование файловых систем" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1408 +msgid "" +"The file system is best visualized as a tree, rooted, as it were, at `/`. `/" +"dev`, `/usr`, and the other directories in the root directory are branches, " +"which may have their own branches, such as `/usr/local`, and so on." +msgstr "" +"Файловую систему удобно визуализировать как дерево, корнем которого является " +"`/`. Каталоги `/dev`, `/usr` и другие в корневом каталоге представляют собой " +"ветви, которые, в свою очередь, могут иметь собственные ветви, например `/" +"usr/local`, и так далее." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1412 +msgid "" +"There are various reasons to house some of these directories on separate " +"file systems. `/var` contains the directories `log/`, `spool/`, and various " +"types of temporary files, and as such, may get filled up. Filling up the " +"root file system is not a good idea, so splitting `/var` from `/` is often " +"favorable." +msgstr "" +"Существуют различные причины для размещения некоторых из этих каталогов на " +"отдельных файловых системах. `/var` содержит каталоги `log/`, `spool/` и " +"различные типы временных файлов, поэтому может заполняться. Заполнение " +"корневой файловой системы нежелательно, поэтому часто предпочтительно " +"отделить `/var` от `/`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1414 +msgid "" +"Another common reason to contain certain directory trees on other file " +"systems is if they are to be housed on separate physical disks, or are " +"separate virtual disks, such as Network File System mounts, described in " +"crossref:network-servers[network-nfs,“Network File System (NFS)”], or CDROM " +"drives." +msgstr "" +"Еще одна распространённая причина размещать определённые каталоги на других " +"файловых системах — это необходимость их размещения на отдельных физических " +"дисках или виртуальных дисках, таких как сетевые файловые системы (NFS), " +"описанные в crossref:network-servers[network-nfs,“Сетевая файловая система " +"(NFS)”], или приводы CDROM." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:1416 +#, no-wrap +msgid "The fstab File" +msgstr "Файл fstab" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1420 +msgid "" +"During the boot process (crossref:boot[boot,The FreeBSD Booting Process]), " +"file systems listed in `/etc/fstab` are automatically mounted except for the " +"entries containing `noauto`. This file contains entries in the following " +"format:" +msgstr "" +"В процессе загрузки (crossref:boot[boot,Процесс загрузки FreeBSD]), файловые " +"системы, перечисленные в `/etc/fstab`, автоматически монтируются, за " +"исключением записей, содержащих `noauto`. Этот файл содержит записи в " +"следующем формате:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1424 +#, no-wrap +msgid "device /mount-point fstype options dumpfreq passno\n" +msgstr "device /mount-point fstype options dumpfreq passno\n" + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1426 +#, no-wrap +msgid "`device`" +msgstr "`device`" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1428 +msgid "" +"An existing device name as explained in crossref:basics[disks-naming,Disk " +"Device Names]." +msgstr "" +"Существующее имя устройства, как описано в crossref:basics[disks-" +"naming,Имена устройств дисков]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1429 +#, no-wrap +msgid "`mount-point`" +msgstr "`mount-point`" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1431 +msgid "An existing directory on which to mount the file system." +msgstr "Существующий каталог, на который монтируется файловая система." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1432 +#, no-wrap +msgid "`fstype`" +msgstr "`fstype`" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1435 +msgid "" +"The file system type to pass to man:mount[8]. The default FreeBSD file " +"system is `ufs`." +msgstr "" +"Тип файловой системы, передаваемый в man:mount[8]. Файловая система по " +"умолчанию в FreeBSD — `ufs`." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1436 +#, no-wrap +msgid "`options`" +msgstr "`options`" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1440 +msgid "" +"Either `rw` for read-write file systems, or `ro` for read-only file systems, " +"followed by any other options that may be needed. A common option is " +"`noauto` for file systems not normally mounted during the boot sequence. " +"Other options are listed in man:mount[8]." +msgstr "" +"`rw` для файловых систем с доступом на чтение и запись или `ro` для файловых " +"систем только для чтения, за которыми могут следовать другие необходимые " +"опции. Часто используется опция `noauto` для файловых систем, которые обычно " +"не монтируются при загрузке. Другие опции перечислены в man:mount[8]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1441 +#, no-wrap +msgid "`dumpfreq`" +msgstr "`dumpfreq`" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1444 +msgid "" +"Used by man:dump[8] to determine which file systems require dumping. If the " +"field is missing, a value of zero is assumed." +msgstr "" +"Используется man:dump[8] для определения, какие файловые системы требуют " +"дампинга. Если поле отсутствует, предполагается значение ноль." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1445 +#, no-wrap +msgid "`passno`" +msgstr "`passno`" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1451 +msgid "" +"Determines the order in which UFS file systems should be checked by " +"man:fsck[8] after a reboot. File systems that should be skipped should have " +"their `passno` set to zero. The root file system needs to be checked before " +"everything else and should have its `passno` set to one. The other file " +"systems should be set to values greater than one. If more than one file " +"system has the same `passno`, man:fsck[8] will attempt to check file systems " +"in parallel if possible." +msgstr "" +"Определяет порядок проверки файловых систем UFS с помощью man:fsck[8] после " +"перезагрузки. Файловые системы, которые следует пропускать, должны иметь " +"значение `passno`, равное нулю. Корневая файловая система должна проверяться " +"первой и иметь значение `passno`, равное единице. Остальные файловые системы " +"должны иметь значения больше единицы. Если несколько файловых систем имеют " +"одинаковое значение `passno`, man:fsck[8] попытается проверять их " +"параллельно, если это возможно." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1453 +msgid "" +"Refer to man:fstab[5] for more information on the format of `/etc/fstab` and " +"its options." +msgstr "" +"См. man:fstab[5] для получения дополнительной информации о формате `/etc/" +"fstab` и его параметрах." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:1455 +#, no-wrap +msgid "Using man:mount[8]" +msgstr "Использование man:mount[8]" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1459 +msgid "" +"File systems are mounted using man:mount[8]. The most basic syntax is as " +"follows:" +msgstr "" +"Файловые системы монтируются с помощью man:mount[8]. Базовая синтаксическая " +"конструкция выглядит следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1465 +#, no-wrap +msgid "# mount device mountpoint\n" +msgstr "# mount device mountpoint\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1469 +msgid "" +"A file system listed in `/etc/fstab` can also be mounted by providing just " +"the mountpoint." +msgstr "" +"Файловая система, указанная в `/etc/fstab`, также может быть смонтирована, " +"если указать только точку монтирования." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1472 +msgid "" +"This command provides many options which are described in man:mount[8]. The " +"most commonly used options include:" +msgstr "" +"Эта команда предоставляет множество опций, которые описаны в man:mount[8]. " +"Наиболее часто используемые опции включают:" + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:1473 +#, no-wrap +msgid "Mount Options" +msgstr "Параметры монтирования" + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1474 +#, no-wrap +msgid "`-a`" +msgstr "`-a`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1476 +msgid "" +"Mount all the file systems listed in `/etc/fstab`, except those marked as " +"\"noauto\", excluded by the `-t` flag, or those that are already mounted." +msgstr "" +"Смонтировать все файловые системы, перечисленные в `/etc/fstab`, за " +"исключением тех, которые помечены как \"noauto\", исключены флагом `-t` или " +"уже смонтированы." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1477 +#, no-wrap +msgid "`-d`" +msgstr "`-d`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1480 +msgid "" +"Do everything except for the actual mount system call. This option is " +"useful in conjunction with the `-v` flag to determine what man:mount[8] is " +"actually trying to do." +msgstr "" +"Выполнить все действия, кроме самого системного вызова mount. Эта опция " +"полезна в сочетании с флагом `-v` для определения того, что на самом деле " +"пытается сделать man:mount[8]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1481 +#, no-wrap +msgid "`-f`" +msgstr "`-f`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1483 +msgid "" +"Force the mount of an unclean file system (dangerous), or the revocation of " +"write access when downgrading a file system's mount status from read-write " +"to read-only." +msgstr "" +"Принудительно смонтировать поврежденную файловую систему (опасно) или " +"отозвать права на запись при понижении статуса монтирования файловой системы " +"с чтения-записи на только чтение." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1484 +#, no-wrap +msgid "`-r`" +msgstr "`-r`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1487 +msgid "Mount the file system read-only. This is identical to using `-o ro`." +msgstr "" +"Смонтировать файловую систему в режиме только для чтения. Это эквивалентно " +"использованию `-o ro`." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1488 +#, no-wrap +msgid "``-t _fstype_``" +msgstr "``-t _тип_фс_``" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1491 +msgid "" +"Mount the specified file system type or mount only file systems of the given " +"type, if `-a` is included. \"ufs\" is the default file system type." +msgstr "" +"Смонтировать указанный тип файловой системы или смонтировать только файловые " +"системы данного типа, если включен параметр `-a`. Тип файловой системы " +"\"ufs\" используется по умолчанию." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1492 +#, no-wrap +msgid "`-u`" +msgstr "`-u`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1494 +msgid "Update mount options on the file system." +msgstr "Обновить параметры монтирования файловой системы." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1495 +#, no-wrap +msgid "`-v`" +msgstr "`-v`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1497 +msgid "Be verbose." +msgstr "Выдавать более подробную информацию." + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1498 +#, no-wrap +msgid "`-w`" +msgstr "`-w`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1500 +msgid "Mount the file system read-write." +msgstr "Смонтировать файловую систему в режиме чтения-записи." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1502 +msgid "The following options can be passed to `-o` as a comma-separated list:" +msgstr "" +"Следующие параметры могут быть переданы в `-o` в виде списка, разделенного " +"запятыми:" + +#. type: Labeled list +#: documentation/content/en/books/handbook/basics/_index.adoc:1503 +#, no-wrap +msgid "nosuid" +msgstr "`nosuid`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1506 +msgid "" +"Do not interpret setuid or setgid flags on the file system. This is also a " +"useful security option." +msgstr "" +"Не интерпретировать флаги setuid или setgid на файловой системе. Это также " +"полезная опция безопасности." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:1508 +#, no-wrap +msgid "Using man:umount[8]" +msgstr "Использование man:umount[8]" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1512 +msgid "" +"To unmount a file system use man:umount[8]. This command takes one " +"parameter which can be a mountpoint, device name, `-a` or `-A`." +msgstr "" +"Для размонтирования файловой системы используйте man:umount[8]. Эта команда " +"принимает один параметр, которым может быть точка монтирования, имя " +"устройства, `-a` или `-A`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1515 +msgid "" +"All forms take `-f` to force unmounting, and `-v` for verbosity. Be warned " +"that `-f` is not generally a good idea as it might crash the computer or " +"damage data on the file system." +msgstr "" +"Все формы команды принимают параметр `-f` для принудительного " +"размонтирования и `-v` для вывода подробной информации. Учтите, что " +"использование `-f` обычно не рекомендуется, так как это может привести к " +"аварийному завершению работы компьютера или повреждению данных в файловой " +"системе." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1518 +msgid "" +"To unmount all mounted file systems, or just the file system types listed " +"after `-t`, use `-a` or `-A`. Note that `-A` does not attempt to unmount " +"the root file system." +msgstr "" +"Для размонтирования всех смонтированных файловых систем или только файловых " +"систем указанных после `-t` типов используйте `-a` или `-A`. Обратите " +"внимание, что `-A` не пытается размонтировать корневую файловую систему." + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:1520 +#, no-wrap +msgid "Processes and Daemons" +msgstr "Процессы и Демоны" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1525 +msgid "" +"FreeBSD is a multi-tasking operating system. Each program running at any " +"one time is called a _process_. Every running command starts at least one " +"new process and there are a number of system processes that are run by " +"FreeBSD." +msgstr "" +"FreeBSD - это многозадачная операционная система. Каждая программа, " +"выполняемая в любой момент времени, называется _процессом_. Каждая " +"запущенная команда создает как минимум один новый процесс, и в системе " +"FreeBSD выполняется ряд системных процессов." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1531 +msgid "" +"Each process is uniquely identified by a number called a _process ID_ " +"(PID). Similar to files, each process has one owner and group, and the " +"owner and group permissions are used to determine which files and devices " +"the process can open. Most processes also have a parent process that " +"started them. For example, the shell is a process, and any command started " +"in the shell is a process which has the shell as its parent process. The " +"exception is a special process called man:init[8] which is always the first " +"process to start at boot time and which always has a PID of `1`." +msgstr "" +"Каждый процесс однозначно идентифицируется числом, называемым " +"_идентификатором процесса_ (PID). Подобно файлам, каждый процесс имеет " +"владельца и группу, а права владельца и группы используются для определения " +"того, какие файлы и устройства процесс может открыть. Большинство процессов " +"также имеют родительский процесс, который их запустил. Например, оболочка — " +"это процесс, и любая команда, запущенная в оболочке, является процессом, для " +"которого оболочка выступает родительским процессом. Исключением является " +"специальный процесс man:init[8], который всегда запускается первым при " +"загрузке и всегда имеет PID `1`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1538 +msgid "" +"Some programs are not designed to be run with continuous user input and " +"disconnect from the terminal at the first opportunity. For example, a web " +"server responds to web requests, rather than user input. Mail servers are " +"another example of this type of application. These types of programs are " +"known as _daemons_. The term daemon comes from Greek mythology and " +"represents an entity that is neither good nor evil, and which invisibly " +"performs useful tasks. This is why the BSD mascot is the cheerful-looking " +"daemon with sneakers and a pitchfork." +msgstr "" +"Некоторые программы не предназначены для постоянного взаимодействия с " +"пользователем и отключаются от терминала при первой возможности. Например, " +"веб-сервер отвечает на веб-запросы, а не на действия пользователя. Почтовые " +"серверы — ещё один пример таких приложений. Эти программы называются " +"_демонами_. Термин «демон» происходит из греческой мифологии и обозначает " +"сущность, которая не является ни доброй, ни злой и незаметно выполняет " +"полезные задачи. Именно поэтому талисманом BSD стал улыбающийся демон в " +"кроссовках и с вилами." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1544 +msgid "" +"There is a convention to name programs that normally run as daemons with a " +"trailing \"d\". For example, BIND is the Berkeley Internet Name Domain, but " +"the actual program that executes is `named`. The Apache web server program " +"is `httpd` and the line printer spooling daemon is `lpd`. This is only a " +"naming convention. For example, the main mail daemon for the Sendmail " +"application is `sendmail`, and not `maild`." +msgstr "" +"Существует соглашение называть программы, которые обычно работают как " +"демоны, с добавлением буквы \"d\" в конце. Например, BIND — это Berkeley " +"Internet Name Domain, но фактическая программа, которая выполняется, " +"называется `named`. Веб-сервер Apache называется `httpd`, а демон очереди " +"печати — `lpd`. Это всего лишь соглашение об именовании. Например, основной " +"почтовый демон для приложения Sendmail называется `sendmail`, а не `maild`." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:1545 +#, no-wrap +msgid "Viewing Processes" +msgstr "Просмотр процессов" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1550 +msgid "" +"To see the processes running on the system, use man:ps[1] or man:top[1]. To " +"display a static list of the currently running processes, their PIDs, how " +"much memory they are using, and the command they were started with, use " +"man:ps[1]. To display all the running processes and update the display " +"every few seconds in order to interactively see what the computer is doing, " +"use man:top[1]." +msgstr "" +"Чтобы просмотреть процессы, выполняемые в системе, используйте man:ps[1] или " +"man:top[1]. Для отображения статичного списка текущих процессов, их PID, " +"объема используемой памяти и команд, которыми они были запущены, используйте " +"man:ps[1]. Для отображения всех выполняемых процессов с периодическим " +"обновлением списка каждые несколько секунд, чтобы интерактивно наблюдать за " +"работой компьютера, используйте man:top[1]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1553 +msgid "" +"By default, man:ps[1] only shows the commands that are running and owned by " +"the user. For example:" +msgstr "" +"По умолчанию man:ps[1] отображает только команды, выполняемые и " +"принадлежащие текущему пользователю. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1557 +#, no-wrap +msgid "% ps\n" +msgstr "% ps\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1566 +#, no-wrap +msgid "" +" PID TT STAT TIME COMMAND\n" +"8203 0 Ss 0:00.59 /bin/csh\n" +"8895 0 R+ 0:00.00 ps\n" +msgstr "" +" PID TT STAT TIME COMMAND\n" +"8203 0 Ss 0:00.59 /bin/csh\n" +"8895 0 R+ 0:00.00 ps\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1576 +msgid "" +"The output from man:ps[1] is organized into a number of columns. The `PID` " +"column displays the process ID. PIDs are assigned starting at 1, go up to " +"99999, then wrap around back to the beginning. However, a PID is not " +"reassigned if it is already in use. The `TT` column shows the tty the " +"program is running on and `STAT` shows the program's state. `TIME` is the " +"amount of time the program has been running on the CPU. This is usually not " +"the elapsed time since the program was started, as most programs spend a lot " +"of time waiting for things to happen before they need to spend time on the " +"CPU. Finally, `COMMAND` is the command that was used to start the program." +msgstr "" +"Вывод команды man:ps[1] организован в несколько столбцов. В столбце `PID` " +"отображается идентификатор процесса. PID начинаются с 1, достигают 99999, " +"затем снова начинаются с начала. Однако, если PID уже используется, он не " +"будет повторно назначен. Столбец `TT` показывает tty, на котором выполняется " +"программа, а `STAT` отображает состояние программы. `TIME` — это время, в " +"течение которого программа выполнялась на CPU. Обычно это не общее время с " +"момента запуска программы, так как большинство программ проводят много " +"времени в ожидании событий, прежде чем им потребуется время на CPU. Наконец, " +"`COMMAND` — это команда, которая использовалась для запуска программы." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1579 +msgid "" +"A number of different options are available to change the information that " +"is displayed. One of the most useful sets is `auxww`, where `a` displays " +"information about all the running processes of all users, `u` displays the " +"username and memory usage of the process' owner, `x` displays information " +"about daemon processes, and `ww` causes man:ps[1] to display the full " +"command line for each process, rather than truncating it once it gets too " +"long to fit on the screen." +msgstr "" +"Доступно несколько различных опций для изменения отображаемой информации. " +"Один из наиболее полезных наборов — `auxww`, где `a` показывает информацию " +"обо всех запущенных процессах всех пользователей, `u` отображает имя " +"пользователя и использование памяти владельцем процесса, `x` показывает " +"информацию о процессах демонов, а `ww` заставляет man:ps[1] выводить полную " +"командную строку для каждого процесса вместо её обрезки, когда она " +"становится слишком длинной для экрана." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1581 +msgid "The output from man:top[1] is similar:" +msgstr "Вывод команды man:top[1] выглядит аналогично:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1585 +#, no-wrap +msgid "% top\n" +msgstr "% top\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1597 +#, no-wrap +msgid "" +"last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46\n" +"107 processes: 2 running, 104 sleeping, 1 zombie\n" +"CPU: 6.2% user, 0.1% nice, 8.2% system, 0.4% interrupt, 85.1% idle\n" +"Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free\n" +"ARC: 992M Total, 377M MFU, 589M MRU, 250K Anon, 5280K Header, 21M Other\n" +"Swap: 2048M Total, 2048M Free\n" +msgstr "" +"last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46\n" +"107 processes: 2 running, 104 sleeping, 1 zombie\n" +"CPU: 6.2% user, 0.1% nice, 8.2% system, 0.4% interrupt, 85.1% idle\n" +"Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free\n" +"ARC: 992M Total, 377M MFU, 589M MRU, 250K Anon, 5280K Header, 21M Other\n" +"Swap: 2048M Total, 2048M Free\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1610 +#, no-wrap +msgid "" +" PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND\n" +" 557 root 1 -21 r31 136M 42296K select 0 2:20 9.96% Xorg\n" +" 8198 dru 2 52 0 449M 82736K select 3 0:08 5.96% kdeinit4\n" +" 8311 dru 27 30 0 1150M 187M uwait 1 1:37 0.98% firefox\n" +" 431 root 1 20 0 14268K 1728K select 0 0:06 0.98% moused\n" +" 9551 dru 1 21 0 16600K 2660K CPU3 3 0:01 0.98% top\n" +" 2357 dru 4 37 0 718M 141M select 0 0:21 0.00% kdeinit4\n" +" 8705 dru 4 35 0 480M 98M select 2 0:20 0.00% kdeinit4\n" +" 8076 dru 6 20 0 552M 113M uwait 0 0:12 0.00% soffice.bin\n" +" 2623 root 1 30 10 12088K 1636K select 3 0:09 0.00% powerd\n" +" 2338 dru 1 20 0 440M 84532K select 1 0:06 0.00% kwin\n" +" 1427 dru 5 22 0 605M 86412K select 1 0:05 0.00% kdeinit4\n" +msgstr "" +" PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND\n" +" 557 root 1 -21 r31 136M 42296K select 0 2:20 9.96% Xorg\n" +" 8198 dru 2 52 0 449M 82736K select 3 0:08 5.96% kdeinit4\n" +" 8311 dru 27 30 0 1150M 187M uwait 1 1:37 0.98% firefox\n" +" 431 root 1 20 0 14268K 1728K select 0 0:06 0.98% moused\n" +" 9551 dru 1 21 0 16600K 2660K CPU3 3 0:01 0.98% top\n" +" 2357 dru 4 37 0 718M 141M select 0 0:21 0.00% kdeinit4\n" +" 8705 dru 4 35 0 480M 98M select 2 0:20 0.00% kdeinit4\n" +" 8076 dru 6 20 0 552M 113M uwait 0 0:12 0.00% soffice.bin\n" +" 2623 root 1 30 10 12088K 1636K select 3 0:09 0.00% powerd\n" +" 2338 dru 1 20 0 440M 84532K select 1 0:06 0.00% kwin\n" +" 1427 dru 5 22 0 605M 86412K select 1 0:05 0.00% kdeinit4\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1616 +msgid "" +"The output is split into two sections. The header (the first five or six " +"lines) shows the PID of the last process to run, the system load averages " +"(which are a measure of how busy the system is), the system uptime (time " +"since the last reboot) and the current time. The other figures in the " +"header relate to how many processes are running, how much memory and swap " +"space has been used, and how much time the system is spending in different " +"CPU states. If the ZFS file system module has been loaded, an `ARC` line " +"indicates how much data was read from the memory cache instead of from disk." +msgstr "" +"Вывод разделён на две части. Заголовок (первые пять или шесть строк) " +"показывает PID последнего запущенного процесса, среднюю загрузку системы " +"(которая отражает, насколько система занята), время работы системы (время с " +"последней перезагрузки) и текущее время. Остальные данные в заголовке " +"относятся к количеству запущенных процессов, объёму используемой оперативной " +"памяти и файла подкачки (свопа), а также времени, которое система проводит в " +"различных состояниях процессора. Если загружен модуль файловой системы ZFS, " +"строка `ARC` указывает, сколько данных было прочитано из кэша памяти, а не с " +"диска." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1621 +msgid "" +"Below the header is a series of columns containing similar information to " +"the output from man:ps[1], such as the PID, username, amount of CPU time, " +"and the command that started the process. By default, man:top[1] also " +"displays the amount of memory space taken by the process. This is split " +"into two columns: one for total size and one for resident size. Total size " +"is how much memory the application has needed and the resident size is how " +"much it is actually using now." +msgstr "" +"Ниже заголовка расположен ряд столбцов с информацией, аналогичной выводу " +"команды man:ps[1], такой как PID, имя пользователя, объем CPU времени и " +"команда, запустившая процесс. По умолчанию man:top[1] также отображает объем " +"памяти, занимаемый процессом. Эта информация разделена на два столбца: один " +"для общего размера и один для резидентного размера. Общий размер — это объем " +"памяти, который потребовался приложению, а резидентный размер — это объем, " +"который оно фактически использует в данный момент." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1624 +msgid "" +"man:top[1] automatically updates the display every two seconds. A different " +"interval can be specified with `-s`." +msgstr "" +"man:top[1] автоматически обновляет отображение каждые две секунды. Другой " +"интервал можно указать с помощью `-s`." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:1626 +#, no-wrap +msgid "Killing Processes" +msgstr "Прекращение процессов" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1632 +msgid "" +"One way to communicate with any running process or daemon is to send a " +"_signal_ using man:kill[1]. There are a number of different signals; some " +"have a specific meaning while others are described in the application's " +"documentation. A user can only send a signal to a process they own and " +"sending a signal to someone else's process will result in a permission " +"denied error. The exception is the `root` user, who can send signals to " +"anyone's processes." +msgstr "" +"Один из способов взаимодействия с любым запущенным процессом или демоном — " +"отправить _сигнал_ с помощью man:kill[1]. Существует множество различных " +"сигналов; некоторые имеют определённое значение, в то время как другие " +"описаны в документации приложения. Пользователь может отправлять сигналы " +"только своим процессам, и попытка отправить сигнал чужому процессу приведёт " +"к ошибке отказа в доступе. Исключением является пользователь `root`, который " +"может отправлять сигналы любым процессам." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1636 +msgid "" +"The operating system can also send a signal to a process. If an application " +"is badly written and tries to access memory that it is not supposed to, " +"FreeBSD will send the process the \"Segmentation Violation\" signal " +"(`SIGSEGV`). If an application has been written to use the man:alarm[3] " +"system call to be alerted after a period of time has elapsed, it will be " +"sent the \"Alarm\" signal (`SIGALRM`)." +msgstr "" +"Операционная система также может отправлять сигналы процессу. Если " +"приложение написано с ошибками и пытается получить доступ к памяти, к " +"которой оно не должно обращаться, FreeBSD отправит процессу сигнал " +"\"Нарушение сегментации\" (`SIGSEGV`). Если приложение было написано с " +"использованием системного вызова man:alarm[3] для оповещения по истечении " +"определенного времени, ему будет отправлен сигнал \"Будильник\" (`SIGALRM`)." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1640 +msgid "" +"Two signals can be used to stop a process: `SIGTERM` and `SIGKILL`. " +"`SIGTERM` is the polite way to kill a process as the process can read the " +"signal, close any log files it may have open, and attempt to finish what it " +"is doing before shutting down. In some cases, a process may ignore " +"`SIGTERM` if it is in the middle of some task that cannot be interrupted." +msgstr "" +"Для остановки процесса могут использоваться два сигнала: `SIGTERM` и " +"`SIGKILL`. `SIGTERM` — это вежливый способ завершить процесс, так как " +"процесс может прочитать сигнал, закрыть все открытые файлы журналов и " +"попытаться завершить текущие операции перед остановкой. В некоторых случаях " +"процесс может игнорировать `SIGTERM`, если он находится в середине задачи, " +"которую нельзя прервать." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1643 +msgid "" +"`SIGKILL` cannot be ignored by a process. Sending a `SIGKILL` to a process " +"will usually stop that process there and then. footnote:[There are a few " +"tasks that cannot be interrupted. For example, if the process is trying to " +"read from a file that is on another computer on the network, and the other " +"computer is unavailable, the process is said to be uninterruptible. " +"Eventually the process will time out, typically after two minutes. As soon " +"as this time out occurs the process will be killed.]." +msgstr "" +"`SIGKILL` не может быть проигнорирован процессом. Отправка `SIGKILL` " +"процессу обычно немедленно останавливает этот процесс. footnote:[Существует " +"несколько задач, которые не могут быть прерваны. Например, если процесс " +"пытается прочитать файл, находящийся на другом компьютере в сети, и этот " +"компьютер недоступен, процесс считается непрерываемым. В конечном итоге " +"процесс завершится по таймауту, обычно через две минуты. Как только это " +"произойдет, процесс будет убит.]." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1646 +msgid "" +"Other commonly used signals are `SIGHUP`, `SIGUSR1`, and `SIGUSR2`. Since " +"these are general purpose signals, different applications will respond " +"differently." +msgstr "" +"Другие часто используемые сигналы — это `SIGHUP`, `SIGUSR1` и `SIGUSR2`. " +"Поскольку они предназначены для общего применения, разные программы могут " +"реагировать на них по-разному." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1651 +msgid "" +"For example, after changing a web server's configuration file, the web " +"server needs to be told to re-read its configuration. Restarting `httpd` " +"would result in a brief outage period on the web server. Instead, send the " +"daemon the `SIGHUP` signal. Be aware that different daemons will have " +"different behavior, so refer to the documentation for the daemon to " +"determine if `SIGHUP` will achieve the desired results." +msgstr "" +"Например, после изменения конфигурационного файла веб-сервера необходимо " +"указать веб-серверу перечитать его конфигурацию. Перезапуск `httpd` приведёт " +"к кратковременному простою веб-сервера. Вместо этого отправьте демону сигнал " +"`SIGHUP`. Учтите, что разные демоны могут вести себя по-разному, поэтому " +"обратитесь к документации демона, чтобы определить, приведёт ли `SIGHUP` к " +"желаемому результату." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1658 +msgid "" +"Killing a random process on the system is a bad idea. In particular, " +"man:init[8], PID 1, is special. Running `/bin/kill -s KILL 1` is a quick, " +"and unrecommended, way to shutdown the system. _Always_ double check the " +"arguments to man:kill[1] _before_ pressing kbd:[Return]." +msgstr "" +"Убить случайный процесс в системе — плохая идея. В частности, man:init[8], " +"PID 1, является особым. Запуск `/bin/kill -s KILL 1` — это быстрый, но не " +"рекомендуемый способ выключить систему. _Всегда_ перепроверяйте аргументы " +"для man:kill[1] _перед_ нажатием kbd:[Return]." + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:1661 +#, no-wrap +msgid "Shells" +msgstr "Оболочки" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1668 +msgid "" +"A _shell_ provides a command line interface for interacting with the " +"operating system. A shell receives commands from the input channel and " +"executes them. Many shells provide built in functions to help with everyday " +"tasks such as file management, file globbing, command line editing, command " +"macros, and environment variables. FreeBSD comes with several shells, " +"including the Bourne shell (man:sh[1]) and the extended C shell " +"(man:tcsh[1]). Other shells are available from the FreeBSD Ports " +"Collection, such as `zsh` and `bash`." +msgstr "" +"_Оболочка_ предоставляет интерфейс командной строки для взаимодействия с " +"операционной системой. Оболочка получает команды из входного канала и " +"выполняет их. Многие оболочки предоставляют встроенные функции для помощи в " +"повседневных задачах, таких как управление файлами, подстановка имён файлов " +"(file globbing), редактирование командной строки, макросы команд и " +"переменные окружения. FreeBSD поставляется с несколькими оболочками, включая " +"Bourne shell (man:sh[1]) и расширенную C shell (man:tcsh[1]). Другие " +"оболочки доступны в коллекции портов FreeBSD, например `zsh` и `bash`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1673 +msgid "" +"The shell that is used is really a matter of taste. A C programmer might " +"feel more comfortable with a C-like shell such as man:tcsh[1]. A Linux(R) " +"user might prefer `bash`. Each shell has unique properties that may or may " +"not work with a user's preferred working environment, which is why there is " +"a choice of which shell to use." +msgstr "" +"Используемая оболочка — это действительно вопрос предпочтений. Программисту " +"на C может быть удобнее работать с C-подобной оболочкой, такой как " +"man:tcsh[1]. Пользователь Linux(R) может предпочесть `bash`. Каждая оболочка " +"обладает уникальными свойствами, которые могут подходить или не подходить " +"под предпочитаемую пользователем рабочую среду, поэтому существует выбор, " +"какую оболочку использовать." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1678 +msgid "" +"One common shell feature is filename completion. After a user types the " +"first few letters of a command or filename and presses kbd:[Tab], the shell " +"completes the rest of the command or filename. Consider two files called " +"`foobar` and `football`. To delete `foobar`, the user might type `rm foo` " +"and press kbd:[Tab] to complete the filename." +msgstr "" +"Одной из распространённых возможностей оболочки является завершение имён " +"файлов. Когда пользователь вводит первые несколько букв команды или имени " +"файла и нажимает kbd:[Tab], оболочка автоматически дописывает оставшуюся " +"часть команды или имени файла. Рассмотрим два файла с именами `foobar` и " +"`football`. Чтобы удалить `foobar`, пользователь может ввести `rm foo` и " +"нажать kbd:[Tab] для завершения имени файла." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1684 +msgid "" +"But the shell only shows `rm foo`. It was unable to complete the filename " +"because both `foobar` and `football` start with `foo`. Some shells sound a " +"beep or show all the choices if more than one name matches. The user must " +"then type more characters to identify the desired filename. Typing a `t` " +"and pressing kbd:[Tab] again is enough to let the shell determine which " +"filename is desired and fill in the rest." +msgstr "" +"Но оболочка показывает только `rm foo`. Она не смогла завершить имя файла, " +"потому что и `foobar`, и `football` начинаются с `foo`. Некоторые оболочки " +"издают звуковой сигнал или показывают все варианты, если совпадает более " +"одного имени. Пользователь должен затем ввести дополнительные символы, чтобы " +"указать нужное имя файла. Ввод `t` и повторное нажатие kbd:[Tab] достаточно, " +"чтобы оболочка определила, какое имя файла требуется, и заполнила остальное." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1690 +msgid "" +"Another feature of the shell is the use of environment variables. " +"Environment variables are a variable/key pair stored in the shell's " +"environment. This environment can be read by any program invoked by the " +"shell, and thus contains a lot of program configuration. " +"crossref:basics[shell-env-vars,Common Environment Variables] provides a list " +"of common environment variables and their meanings. Note that the names of " +"environment variables are always in uppercase." +msgstr "" +"Еще одна особенность оболочки — использование переменных окружения. " +"Переменные окружения представляют собой пару переменная/ключ, хранящуюся в " +"окружении оболочки. Это окружение может быть прочитано любой программой, " +"запущенной оболочкой, и поэтому содержит множество настроек программ. В " +"crossref:basics[shell-env-vars,Распространенные переменные окружения] " +"приведен список распространенных переменных окружения и их значений. " +"Обратите внимание, что имена переменных окружения всегда записываются в " +"верхнем регистре." + +#. type: Block title +#: documentation/content/en/books/handbook/basics/_index.adoc:1692 +#, no-wrap +msgid "Common Environment Variables" +msgstr "Распространенные переменные окружения" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1696 +#, no-wrap +msgid "Variable" +msgstr "Переменная" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1699 +#, no-wrap +msgid "`USER`" +msgstr "`USER`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1701 +#, no-wrap +msgid "Current logged in user's name." +msgstr "Имя текущего вошедшего пользователя." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1702 +#, no-wrap +msgid "`PATH`" +msgstr "`PATH`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1704 +#, no-wrap +msgid "Colon-separated list of directories to search for binaries." +msgstr "Двоеточием разделённый список каталогов для поиска бинарных файлов." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1705 +#, no-wrap +msgid "`DISPLAY`" +msgstr "`DISPLAY`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1707 +#, no-wrap +msgid "Network name of the Xorg display to connect to, if available." +msgstr "Сетевое имя дисплея Xorg для подключения, если доступно." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1708 +#, no-wrap +msgid "`SHELL`" +msgstr "`SHELL`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1710 +#, no-wrap +msgid "The current shell." +msgstr "Текущая оболочка." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1711 +#, no-wrap +msgid "`TERM`" +msgstr "`TERM`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1713 +#, no-wrap +msgid "The name of the user's type of terminal. Used to determine the capabilities of the terminal." +msgstr "Имя типа терминала пользователя. Используется для определения возможностей терминала." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1714 +#, no-wrap +msgid "`TERMCAP`" +msgstr "`TERMCAP`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1716 +#, no-wrap +msgid "Database entry of the terminal escape codes to perform various terminal functions." +msgstr "Запись в базе данных escape-кодов терминала для выполнения различных функций терминала." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1717 +#, no-wrap +msgid "`OSTYPE`" +msgstr "`OSTYPE`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1719 +#, no-wrap +msgid "Type of operating system." +msgstr "Тип операционной системы." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1720 +#, no-wrap +msgid "`MACHTYPE`" +msgstr "`MACHTYPE`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1722 +#, no-wrap +msgid "The system's CPU architecture." +msgstr "Архитектура процессора системы." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1723 +#, no-wrap +msgid "`EDITOR`" +msgstr "`EDITOR`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1725 +#, no-wrap +msgid "The user's preferred text editor." +msgstr "Предпочитаемый текстовый редактор пользователя." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1726 +#, no-wrap +msgid "`PAGER`" +msgstr "`PAGER`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1728 +#, no-wrap +msgid "The user's preferred utility for viewing text one page at a time." +msgstr "Предпочитаемая пользователем утилита для просмотра текста постранично." + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1729 +#, no-wrap +msgid "`MANPATH`" +msgstr "`MANPATH`" + +#. type: Table +#: documentation/content/en/books/handbook/basics/_index.adoc:1730 +#, no-wrap +msgid "Colon-separated list of directories to search for manual pages." +msgstr "Двоеточием разделённый список каталогов для поиска страниц руководства." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1736 +msgid "" +"How to set an environment variable differs between shells. In man:tcsh[1] " +"and man:csh[1], use `setenv` to set environment variables. In man:sh[1] and " +"`bash`, use `export` to set the current environment variables. This example " +"sets the default `EDITOR` to `/usr/local/bin/emacs` for the man:tcsh[1] " +"shell:" +msgstr "" +"Как установить переменную окружения, зависит от используемой оболочки. В " +"man:tcsh[1] и man:csh[1] используйте `setenv` для установки переменных " +"окружения. В man:sh[1] и `bash` используйте `export` для установки текущих " +"переменных окружения. В этом примере устанавливается значение `EDITOR` по " +"умолчанию в `/usr/local/bin/emacs` для оболочки man:tcsh[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1740 +#, no-wrap +msgid "% setenv EDITOR /usr/local/bin/emacs\n" +msgstr "% setenv EDITOR /usr/local/bin/emacs\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1743 +msgid "The equivalent command for `bash` would be:" +msgstr "Эквивалентная команда для `bash` будет:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1747 +#, no-wrap +msgid "% export EDITOR=\"/usr/local/bin/emacs\"\n" +msgstr "% export EDITOR=\"/usr/local/bin/emacs\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1751 +msgid "" +"To expand an environment variable in order to see its current setting, type " +"a `$` character in front of its name on the command line. For example, " +"`echo $TERM` displays the current `$TERM` setting." +msgstr "" +"Чтобы раскрыть переменную окружения и увидеть её текущее значение, введите " +"символ `$` перед её именем в командной строке. Например, `echo $TERM` " +"выведет текущее значение переменной `$TERM`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1756 +msgid "" +"Shells treat special characters, known as meta-characters, as special " +"representations of data. The most common meta-character is `\\*`, which " +"represents any number of characters in a filename. Meta-characters can be " +"used to perform filename globbing. For example, `echo *` is equivalent to " +"`ls` because the shell takes all the files that match `*` and `echo` lists " +"them on the command line." +msgstr "" +"Оболочки интерпретируют специальные символы, известные как метасимволы, как " +"особые представления данных. Наиболее распространённый метасимвол — `\\*`, " +"который обозначает любое количество символов в имени файла. Метасимволы " +"могут использоваться для подстановки имён файлов (globbing). Например, " +"команда `echo *` эквивалентна `ls`, поскольку оболочка выбирает все файлы, " +"соответствующие шаблону `\\*`, а `echo` выводит их в командной строке." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1759 +msgid "" +"To prevent the shell from interpreting a special character, escape it from " +"the shell by starting it with a backslash (`\\`). For example, `echo $TERM` " +"prints the terminal setting whereas `echo \\$TERM` literally prints the " +"string `$TERM`." +msgstr "" +"Чтобы предотвратить интерпретацию специального символа оболочкой, " +"экранируйте его с помощью обратной косой черты (`\\`). Например, `echo " +"$TERM` выводит настройки терминала, тогда как `echo \\$TERM` выводит строку " +"`$TERM` буквально." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:1761 +#, no-wrap +msgid "Changing the Shell" +msgstr "Изменение оболочки" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1766 +msgid "" +"The easiest way to permanently change the default shell is to use `chsh`. " +"Running this command will open the editor that is configured in the `EDITOR` " +"environment variable, which by default is set to man:vi[1]. Change the " +"`Shell:` line to the full path of the new shell." +msgstr "" +"Самый простой способ навсегда изменить оболочку по умолчанию — использовать " +"`chsh`. Запуск этой команды откроет редактор, настроенный в переменной " +"окружения `EDITOR`, которая по умолчанию установлена в man:vi[1]. Измените " +"строку `Shell:` на полный путь к новой оболочке." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1769 +msgid "" +"Alternately, use `chsh -s` which will set the specified shell without " +"opening an editor. For example, to change the shell to `bash`:" +msgstr "" +"Или используйте `chsh -s`, который установит указанную оболочку без открытия " +"редактора. Например, чтобы изменить оболочку на `bash`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1773 +#, no-wrap +msgid "% chsh -s /usr/local/bin/bash\n" +msgstr "% chsh -s /usr/local/bin/bash\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1777 +msgid "" +"Enter your password at the prompt and press kbd:[Return] to change your " +"shell. Log off and log in again to start using the new shell." +msgstr "" +"Введите пароль в командной строке и нажмите kbd:[Return], чтобы изменить " +"оболочку. Выйдите из системы и войдите снова, чтобы начать использовать " +"новую оболочку." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1783 +msgid "" +"The new shell _must_ be present in `/etc/shells`. If the shell was " +"installed from the FreeBSD Ports Collection as described in " +"crossref:ports[ports,Installing Applications: Packages and Ports], it should " +"be automatically added to this file. If it is missing, add it using this " +"command, replacing the path with the path of the shell:" +msgstr "" +"Новая оболочка *обязательно* должна присутствовать в `/etc/shells`. Если " +"оболочка была установлена из Коллекции портов FreeBSD, как описано в " +"crossref:ports[ports,Установка приложений: Пакеты и порты], она должна быть " +"автоматически добавлена в этот файл. Если её там нет, добавьте её с помощью " +"следующей команды, заменив путь на путь к вашей оболочке:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1787 +#, no-wrap +msgid "# echo /usr/local/bin/bash >> /etc/shells\n" +msgstr "# echo /usr/local/bin/bash >> /etc/shells\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1790 +msgid "Then, rerun man:chsh[1]." +msgstr "Затем снова запустите man:chsh[1]." + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:1792 +#, no-wrap +msgid "Advanced Shell Techniques" +msgstr "Продвинутые методы работы с оболочкой" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1796 +msgid "" +"The UNIX(R) shell is not just a command interpreter, it acts as a powerful " +"tool which allows users to execute commands, redirect their output, redirect " +"their input and chain commands together to improve the final command " +"output. When this functionality is mixed with built in commands, the user " +"is provided with an environment that can maximize efficiency." +msgstr "" +"UNIX(R) оболочка — это не просто командный интерпретатор, а мощный " +"инструмент, который позволяет пользователям выполнять команды, " +"перенаправлять их вывод и ввод, а также объединять команды в цепочки для " +"улучшения конечного результата. В сочетании со встроенными командами это " +"предоставляет пользователю среду, способную максимизировать эффективность " +"работы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1799 +msgid "" +"Shell redirection is the action of sending the output or the input of a " +"command into another command or into a file. To capture the output of the " +"man:ls[1] command, for example, into a file, redirect the output:" +msgstr "" +"Перенаправление в оболочке — это действие отправки вывода или ввода команды " +"в другую команду или файл. Например, чтобы сохранить вывод команды man:ls[1] " +"в файл, перенаправьте вывод:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1803 +#, no-wrap +msgid "% ls > directory_listing.txt\n" +msgstr "% ls > directory_listing.txt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1808 +msgid "" +"The directory contents will now be listed in `directory_listing.txt`. Some " +"commands can be used to read input, such as man:sort[1]. To sort this " +"listing, redirect the input:" +msgstr "" +"Содержимое каталога теперь будет отображено в файле `directory_listing.txt`. " +"Некоторые команды, например man:sort[1], могут использоваться для чтения " +"ввода. Чтобы отсортировать этот список, перенаправьте ввод:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1812 +#, no-wrap +msgid "% sort < directory_listing.txt\n" +msgstr "% sort < directory_listing.txt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1816 +msgid "" +"The input will be sorted and placed on the screen. To redirect that input " +"into another file, one could redirect the output of man:sort[1] by mixing " +"the direction:" +msgstr "" +"Входные данные будут отсортированы и выведены на экран. Чтобы перенаправить " +"эти данные в другой файл, можно перенаправить вывод `man:sort[1]`, изменив " +"направление:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1820 +#, no-wrap +msgid "% sort < directory_listing.txt > sorted.txt\n" +msgstr "% sort < directory_listing.txt > sorted.txt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1828 +msgid "" +"In all of the previous examples, the commands are performing redirection " +"using file descriptors. Every UNIX(R) system has file descriptors, which " +"include standard input (stdin), standard output (stdout), and standard error " +"(stderr). Each one has a purpose, where input could be a keyboard or a " +"mouse, something that provides input. Output could be a screen or paper in " +"a printer. And error would be anything that is used for diagnostic or error " +"messages. All three are considered I/O based file descriptors and sometimes " +"considered streams." +msgstr "" +"Во всех предыдущих примерах команды выполняют перенаправление с " +"использованием файловых дескрипторов. Каждая UNIX(R)-система имеет файловые " +"дескрипторы, включая стандартный ввод (stdin), стандартный вывод (stdout) и " +"стандартный вывод ошибок (stderr). Каждый из них имеет своё назначение: ввод " +"может осуществляться с клавиатуры или мыши — устройств, предоставляющих " +"входные данные. Вывод может направляться на экран или бумагу в принтере. А " +"ошибки — это всё, что используется для диагностических или сообщений об " +"ошибках. Все три типа считаются файловыми дескрипторами, основанными на " +"вводе-выводе, и иногда называются потоками." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1831 +msgid "" +"Through the use of these descriptors, the shell allows output and input to " +"be passed around through various commands and redirected to or from a file. " +"Another method of redirection is the pipe operator." +msgstr "" +"С помощью этих дескрипторов оболочка позволяет передавать вывод и ввод между " +"различными командами и перенаправлять их в файл или из файла. Другой метод " +"перенаправления — оператор конвейера." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1834 +msgid "" +"The UNIX(R) pipe operator, \"|\" allows the output of one command to be " +"directly passed or directed to another program. Basically, a pipe allows " +"the standard output of a command to be passed as standard input to another " +"command, for example:" +msgstr "" +"Оператор UNIX(R) pipe, `|`, позволяет передавать вывод одной команды " +"напрямую или направлять его другой программе. По сути, pipe позволяет " +"передать стандартный вывод одной команды в качестве стандартного ввода " +"другой команды, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1838 +#, no-wrap +msgid "% cat directory_listing.txt | sort | less\n" +msgstr "% cat directory_listing.txt | sort | less\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1842 +msgid "" +"In that example, the contents of `directory_listing.txt` will be sorted and " +"the output passed to man:less[1]. This allows the user to scroll through " +"the output at their own pace and prevent it from scrolling off the screen." +msgstr "" +"В этом примере содержимое файла `directory_listing.txt` будет отсортировано, " +"а вывод передан в man:less[1]. Это позволяет пользователю прокручивать вывод " +"в удобном темпе и предотвращает его исчезновение с экрана." + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:1844 +#, no-wrap +msgid "Text Editors" +msgstr "Текстовые редакторы" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1848 +msgid "" +"Most FreeBSD configuration is done by editing text files, so it is a good " +"idea to become familiar with a text editor. FreeBSD comes with a few as " +"part of the base system, and many more are available in the Ports Collection." +msgstr "" +"Большая часть настройки FreeBSD выполняется путём редактирования текстовых " +"файлов, поэтому рекомендуется освоить текстовый редактор. В базовую систему " +"FreeBSD входит несколько таких редакторов, а ещё больше доступно в Коллекции " +"портов." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1855 +msgid "" +"A simple editor to learn is man:ee[1], which stands for easy editor. To " +"start this editor, type `ee _filename_` where _filename_ is the name of the " +"file to be edited. Once inside the editor, all of the commands for " +"manipulating the editor's functions are listed at the top of the display. " +"The caret (`^`) represents kbd:[Ctrl], so `^e` expands to kbd:[Ctrl+e]. To " +"leave man:ee[1], press kbd:[Esc], then choose the \"leave editor\" option " +"from the main menu. The editor will prompt to save any changes if the file " +"has been modified." +msgstr "" +"Простой редактор для освоения — это man:ee[1], что означает «легкий " +"редактор». Чтобы запустить его, введите `ee _имя_файла_`, где _имя_файла_ — " +"это имя редактируемого файла. Внутри редактора все команды для управления " +"его функциями перечислены в верхней части экрана. Символ каретки (`^`) " +"обозначает kbd:[Ctrl], поэтому `^e` означает kbd:[Ctrl+e]. Для выхода из " +"man:ee[1] нажмите kbd:[Esc] и выберите пункт «покинуть редактор» в главном " +"меню. Если файл был изменен, редактор предложит сохранить изменения." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1860 +msgid "" +"FreeBSD also comes with more powerful text editors, such as man:vi[1], as " +"part of the base system. Other editors, like package:editors/emacs[] and " +"package:editors/vim[], are part of the FreeBSD Ports Collection. These " +"editors offer more functionality at the expense of being more complicated to " +"learn. Learning a more powerful editor such as vim or Emacs can save more " +"time in the long run." +msgstr "" +"FreeBSD также включает более мощные текстовые редакторы, такие как " +"man:vi[1], в составе базовой системы. Другие редакторы, например " +"package:editors/emacs[] и package:editors/vim[], доступны в коллекции портов " +"FreeBSD. Эти редакторы предоставляют больше возможностей, но их освоение " +"сложнее. Изучение более мощного редактора, такого как vim или Emacs, может " +"сэкономить время в долгосрочной перспективе." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1864 +msgid "" +"Many applications which modify files or require typed input will " +"automatically open a text editor. To change the default editor, set the " +"`EDITOR` environment variable as described in crossref:basics[shells, " +"Shells]." +msgstr "" +"Многие приложения, которые изменяют файлы или требуют ввода текста, " +"автоматически открывают текстовый редактор. Чтобы изменить редактор по " +"умолчанию, установите переменную окружения `EDITOR`, как описано в " +"crossref:basics[shells, Оболочки]." + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:1866 +#, no-wrap +msgid "Devices and Device Nodes" +msgstr "Устройства и Узлы Устройств" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1871 +msgid "" +"A device is a term used mostly for hardware-related activities in a system, " +"including disks, printers, graphics cards, and keyboards. When FreeBSD " +"boots, the majority of the boot messages refer to devices being detected. A " +"copy of the boot messages is saved to `/var/run/dmesg.boot`." +msgstr "" +"Устройство — это термин, в основном используемый для описания аппаратных " +"компонентов системы, таких как диски, принтеры, видеокарты и клавиатуры. При " +"загрузке FreeBSD большинство сообщений относятся к обнаружению устройств. " +"Копия этих сообщений сохраняется в файле `/var/run/dmesg.boot`." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1874 +msgid "" +"Each device has a device name and number. For example, `ada0` is the first " +"SATA hard drive, while `kbd0` represents the keyboard." +msgstr "" +"У каждого устройства есть имя и номер. Например, `ada0` — это первый жёсткий " +"диск SATA, а `kbd0` обозначает клавиатуру." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1876 +msgid "" +"Most devices in FreeBSD must be accessed through special files called device " +"nodes, which are located in `/dev`." +msgstr "" +"Большинство устройств в FreeBSD должны быть доступны через специальные " +"файлы, называемые узлами устройств, которые расположены в `/dev`." + +#. type: Title == +#: documentation/content/en/books/handbook/basics/_index.adoc:1878 +#, no-wrap +msgid "Manual Pages" +msgstr "Справочник" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1883 +msgid "" +"The most comprehensive documentation on FreeBSD is in the form of manual " +"pages. Nearly every program on the system comes with a short reference " +"manual explaining the basic operation and available arguments. These " +"manuals can be viewed using `man`:" +msgstr "" +"Наиболее полная документация по FreeBSD представлена в виде Справочника " +"(manual pages). Почти каждая программа в системе имеет краткое справочное " +"руководство, объясняющее основы работы и доступные аргументы. Эти " +"руководства можно просматривать с помощью команды `man`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1887 +#, no-wrap +msgid "% man command\n" +msgstr "% man command\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1891 +msgid "" +"where _command_ is the name of the command to learn about. For example, to " +"learn more about man:ls[1], type:" +msgstr "" +"где _command_ — это название команды, о которой нужно узнать больше. " +"Например, чтобы узнать больше о man:ls[1], введите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1895 +#, no-wrap +msgid "% man ls\n" +msgstr "% man ls\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1899 +msgid "" +"Manual pages are divided into sections which represent the type of topic. " +"In FreeBSD, the following sections are available:" +msgstr "" +"Страницы Справочника разделены на разделы, которые обозначают тип темы. В " +"FreeBSD доступны следующие разделы:" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1901 +msgid "User commands." +msgstr "Пользовательские команды." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1902 +msgid "System calls and error numbers." +msgstr "Системные вызовы и коды ошибок." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1903 +msgid "Functions in the C libraries." +msgstr "Функции в библиотеках C." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1904 +msgid "Device drivers." +msgstr "Драйверы устройств." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1905 +msgid "File formats." +msgstr "Форматы файлов." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1906 +msgid "Games and other diversions." +msgstr "Развлечения и другие игры." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1907 +msgid "Miscellaneous information." +msgstr "Различная информация." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1908 +msgid "System maintenance and operation commands." +msgstr "Системные команды обслуживания и эксплуатации." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1909 +msgid "System kernel interfaces." +msgstr "Интерфейсы ядра системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1913 +msgid "" +"In some cases, the same topic may appear in more than one section of the " +"online manual. For example, there is a `chmod` user command and a `chmod()` " +"system call. To tell man:man[1] which section to display, specify the " +"section number:" +msgstr "" +"В некоторых случаях одна и та же тема может встречаться в нескольких " +"разделах онлайн-руководства. Например, существует пользовательская команда " +"`chmod` и системный вызов `chmod()`. Чтобы указать man:man[1], какой раздел " +"отображать, укажите номер раздела:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1917 +#, no-wrap +msgid "% man 1 chmod\n" +msgstr "% man 1 chmod\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1921 +msgid "" +"This will display the manual page for the user command man:chmod[1]. " +"References to a particular section of the online manual are traditionally " +"placed in parenthesis in written documentation, so man:chmod[1] refers to " +"the user command and man:chmod[2] refers to the system call." +msgstr "" +"Это отобразит справочную страницу для пользовательской команды man:chmod[1]. " +"Ссылки на определённый раздел онлайн-руководства традиционно заключаются в " +"скобки в письменной документации, поэтому man:chmod[1] относится к " +"пользовательской команде, а man:chmod[2] — к системному вызову." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1923 +msgid "" +"If the name of the manual page is unknown, use `man -k` to search for " +"keywords in the manual page descriptions:" +msgstr "" +"Если название страницы руководства неизвестно, используйте `man -k` для " +"поиска ключевых слов в описаниях страниц руководства:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1927 +#, no-wrap +msgid "% man -k mail\n" +msgstr "% man -k mail\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1931 +msgid "" +"This command displays a list of commands that have the keyword \"mail\" in " +"their descriptions. This is equivalent to using man:apropos[1]." +msgstr "" +"Эта команда выводит список команд, содержащих ключевое слово \"mail\" в их " +"описаниях. Это эквивалентно использованию man:apropos[1]." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1933 +msgid "To read the descriptions for all of the commands in `/usr/sbin`, type:" +msgstr "Чтобы прочитать описания всех команд в `/usr/sbin`, введите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1938 +#, no-wrap +msgid "" +"% cd /usr/sbin\n" +"% man -f * | more\n" +msgstr "" +"% cd /usr/sbin\n" +"% man -f * | more\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1941 +msgid "or" +msgstr "или" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1946 +#, no-wrap +msgid "" +"% cd /usr/sbin\n" +"% whatis * |more\n" +msgstr "" +"% cd /usr/sbin\n" +"% whatis * |more\n" + +#. type: Title === +#: documentation/content/en/books/handbook/basics/_index.adoc:1949 +#, no-wrap +msgid "GNU Info Files" +msgstr "Файлы GNU Info" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1954 +msgid "" +"FreeBSD includes several applications and utilities produced by the Free " +"Software Foundation (FSF). In addition to manual pages, these programs may " +"include hypertext documents called `info` files. These can be viewed using " +"man:info[1] or, if package:editors/emacs[] is installed, the info mode of " +"emacs." +msgstr "" +"FreeBSD включает несколько приложений и утилит, созданных Free Software " +"Foundation (FSF). Помимо man-страниц, эти программы могут содержать " +"гипертекстовые документы, называемые файлами `info`. Их можно просматривать " +"с помощью man:info[1] или, если установлен package:editors/emacs[], в режиме " +"info редактора emacs." + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1956 +msgid "To use man:info[1], type:" +msgstr "Чтобы использовать man:info[1], введите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/basics/_index.adoc:1960 +#, no-wrap +msgid "% info\n" +msgstr "% info\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/basics/_index.adoc:1963 +msgid "" +"For a brief introduction, type `h`. For a quick command reference, type `?`." +msgstr "" +"Для краткого введения введите `h`. Для быстрой справки по командам введите `?" +"`." diff --git a/documentation/content/ru/books/handbook/bibliography/_index.adoc b/documentation/content/ru/books/handbook/bibliography/_index.adoc index e277ef39a3..f7a757b295 100644 --- a/documentation/content/ru/books/handbook/bibliography/_index.adoc +++ b/documentation/content/ru/books/handbook/bibliography/_index.adoc @@ -1,12 +1,14 @@ --- -title: Приложение B. Библиография -part: Часть V. Приложения -prev: books/handbook/mirrors +description: 'Библиография Руководства FreeBSD' next: books/handbook/eresources -showBookMenu: true -weight: 35 params: - path: "/books/handbook/bibliography/" + path: /books/handbook/bibliography/ +part: 'Часть V. Приложения' +prev: books/handbook/mirrors +showBookMenu: true +tags: ["appendix", "bibliography", "handbook", "books", "guides", "security", "periodicals", "journals", "magazines"] +title: 'Приложение B. Библиография' +weight: 42 --- [appendix] @@ -48,137 +50,45 @@ toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] -Так как страницы Справочника FreeBSD предоставляют лишь описание отдельных частей операционной системы FreeBSD, они не очень удобны для иллюстрации объединения этих частей вместе для того, чтобы настроить ОС и сделать ее работу более гладкой. Для этого незаменимы хорошая книга по системному администрированию UNIX(R) и хорошее руководство пользователя. +Хотя справочные страницы (man-страницы) предоставляют точную информацию об отдельных компонентах операционной системы FreeBSD, они редко показывают, как объединить эти компоненты, чтобы обеспечить бесперебойную работу всей системы. В этом случае нет замены хорошей книге или руководству пользователя по администрированию UNIX(R). [[bibliography-freebsd]] -== Книги и журналы, специализирующиеся на FreeBSD - -_Международные книги и журналы:_ - -* http://jdli.tw.FreeBSD.org/publication/book/freebsd2/index.html[Using FreeBSD] (на китайском). -* FreeBSD Unleashed (перевод на китайский), опубликовано http://www.hzbook.com/[China Machine Press]. ISBN 7-111-10201-0. -* FreeBSD From Scratch First Edition (на китайском), опубликовано China Machine Press. ISBN 7-111-07482-3. -* FreeBSD From Scratch Second Edition (на китайском), опубликовано China Machine Press. ISBN 7-111-10286-X. -* FreeBSD Handbook (на китайском), опубликовано http://www.ptpress.com.cn/[Posts & Telecom Press]. ISBN 7-115-10541-3. -* FreeBSD 3.x Internet (на китайском), опубликовано http://www.tup.tsinghua.edu.cn/[Tsinghua University Press]. ISBN 7-900625-66-6. -* FreeBSD & Windows (на китайском), ISBN 7-113-03845-X -* FreeBSD Internet Services HOWTO (на китайском), ISBN 7-113-03423-3 -* FreeBSD for PC 98'ers (на японском), выпущено SHUWA System Co, LTD. ISBN 4-87966-468-5 C3055 P2900E. -* FreeBSD (на японском), выпущено CUTT. ISBN 4-906391-22-2 C3055 P2400E. -* http://www.shoeisha.com/book/Detail.asp?bid=650[Complete Introduction to FreeBSD] (на японском), выпущено http://www.shoeisha.co.jp/[Shoeisha Co., Ltd]. ISBN 4-88135-473-6 P3600E. -* http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html[Personal UNIX Starter Kit FreeBSD] (на японском), выпущено http://www.ascii.co.jp/[ASCII]. ISBN 4-7561-1733-3 P3000E. -* FreeBSD Handbook (японский перевод), выпущено http://www.ascii.co.jp/[ASCII]. ISBN 4-7561-1580-2 P3800E. -* FreeBSD mit Methode (на немецком), выпущено http://www.cul.de[Computer und Literatur Verlag]/Vertrieb Hanser, 1998. ISBN 3-932311-31-0. -* http://www.cul.de/freebsd.html[FreeBSD 4 - Installieren, Konfigurieren, Administrieren] (на немецком), выпущено http://www.cul.de[Computer und Literatur Verlag], 2001. ISBN 3-932311-88-4. -* http://www.cul.de/freebsd.html[FreeBSD 5 - Installieren, Konfigurieren, Administrieren] (на немецком), выпущено http://www.cul.de[Computer und Literatur Verlag], 2003. ISBN 3-936546-06-1. -* http://www.mitp.de/vmi/mitp/detail/pWert/1343/[ FreeBSD de Luxe] (на немецком), выпущено http://www.mitp.de[Verlag Modere Industrie], 2003. ISBN 3-8266-1343-0. -* http://www.pc.mycom.co.jp/FreeBSD/install-manual.html[FreeBSD Install and Utilization Manual] (на японском), выпущено http://www.pc.mycom.co.jp/[Mainichi Communications Inc.]. -* Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo _http://maxwell.itb.ac.id/[Создание Интернет Сервера с использованием FreeBSD]_ (на Индонезийском языке), выпущено http://www.elexmedia.co.id/[Elex Media Komputindo]. - -_Книги и журналы на английском языке:_ - -* http://www.AbsoluteBSD.com/[Absolute BSD: The Ultimate Guide to FreeBSD], выпущено http://www.nostarch.com/[No Starch Press], 2002. ISBN: 1886411743 -* http://www.freebsdmall.com/cgi-bin/fm/bsdcomp[ The Complete FreeBSD], выпущено http://www.oreilly.com/[O'Reilly], 2003. ISBN: 0596005164 -* http://www.freebsd-corp-net-guide.com[The FreeBSD Corporate Networker's Guide], выпущено http://www.awl.com/aw/[Addison-Wesley], 2000. ISBN: 0201704811 -* http://andrsn.stanford.edu/FreeBSD/introbook/[ FreeBSD: An Open-Source Operating System for Your Personal Computer], выпущено The Bit Tree Press, 2001. ISBN: 0971204500 -* Teach Yourself FreeBSD in 24 Hours, выпущено http://www.samspublishing.com/[Sams], 2002. ISBN: 0672324245 -* FreeBSD unleashed, выпущено http://www.samspublishing.com/[Sams], 2006. ISBN: 0672328755 -* FreeBSD: The Complete Reference, выпущено http://books.mcgraw-hill.com[McGrawHill], 2003. ISBN: 0072224096 - -[[bibliography-userguides]] -== Руководства для пользователей - -* Computer Systems Research Group, UC Berkeley. _4.4BSD User's Reference Manual_. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-075-9 -* Computer Systems Research Group, UC Berkeley. _4.4BSD User's Supplementary Documents_. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-076-7 -* _UNIX in a Nutshell_. O'Reilly & Associates, Inc., 1990. ISBN 093717520X -* Mui, Linda. _What You Need To Know When You Can't Find Your UNIX System Administrator_. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-104-6 -* http://www-wks.acs.ohio-state.edu/[Ohio State University] написал http://www-wks.acs.ohio-state.edu/unix_course/unix.html[ Ознакомительный Курс UNIX] который доступен в Online в HTML и PS форматах. -+ -Итальянский https://www.FreeBSD.org/doc/it_IT.ISO8859-15/books/unix-introduction/index.html[перевод] этого документа доступен как часть FreeBSD Italian Documentation Project. -* http://www.jp.FreeBSD.org/[Jpman Project, Japan FreeBSD Users Group]. http://www.pc.mycom.co.jp/FreeBSD/urm.html[FreeBSD User's Reference Manual] (Японский перевод). http://www.pc.mycom.co.jp/[Mainichi Communications Inc.], 1998. ISBN4-8399-0088-4 P3800E. -* http://www.ed.ac.uk/[Эдинбургский Университет] составил http://unixhelp.ed.ac.uk/[Online Путеводитель] для новичков в UNIX. - -[[bibliography-adminguides]] -== Руководства для администраторов - -* Albitz, Paul and Liu, Cricket. _DNS and BIND_, 4th Ed. O'Reilly & Associates, Inc., 2001. ISBN 1-59600-158-4 -* Computer Systems Research Group, UC Berkeley. _4.4BSD System Manager's Manual_. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-080-5 -* Costales, Brian, et al. _Sendmail_, 2nd Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0 -* Frisch, Æleen. _Essential System Administration_, 2nd Ed. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-127-5 -* Hunt, Craig. _TCP/IP Network Administration_, 2nd Ed. O'Reilly & Associates, Inc., 1997. ISBN 1-56592-322-7 -* Nemeth, Evi. _UNIX System Administration Handbook_. 2nd Ed. Prentice Hall, 2000. ISBN 0-13-020601-6 -* Stern, Hal _Managing NFS and NIS_ O'Reilly & Associates, Inc., 1991. ISBN 0-937175-75-7 -* http://www.jp.FreeBSD.org/[Jpman Project, Japan FreeBSD Users Group]. http://www.pc.mycom.co.jp/FreeBSD/sam.html[FreeBSD System Administrator's Manual] (Japanese translation). http://www.pc.mycom.co.jp/[Mainichi Communications Inc.], 1998. ISBN4-8399-0109-0 P3300E. -* Dreyfus, Emmanuel. http://www.eyrolles.com/Informatique/Livre/9782212114638/[Cahiers de l'Admin: BSD] 2nd Ed. (на французском), Eyrolles, 2004. ISBN 2-212-11463-X - -[[bibliography-programmers]] -== Руководства для программистов - -* Asente, Paul, Converse, Diana, and Swick, Ralph. _X Window System Toolkit_. Digital Press, 1998. ISBN 1-55558-178-1 -* Computer Systems Research Group, UC Berkeley. _4.4BSD Programmer's Reference Manual_. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-078-3 -* Computer Systems Research Group, UC Berkeley. _4.4BSD Programmer's Supplementary Documents_. O'Reilly & Associates, Inc., 1994. ISBN 1-56592-079-1 -* Harbison, Samuel P. and Steele, Guy L. Jr. _C: A Reference Manual_. 4th ed. Prentice Hall, 1995. ISBN 0-13-326224-3 -* Kernighan, Brian and Dennis M. Ritchie. _The C Programming Language_. 2nd Ed. PTR Prentice Hall, 1988. ISBN 0-13-110362-8 -* Lehey, Greg. _Porting UNIX Software_. O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7 -* Plauger, P. J. _The Standard C Library_. Prentice Hall, 1992. ISBN 0-13-131509-9 -* Spinellis, Diomidis. http://www.spinellis.gr/codereading/[Code Reading: The Open Source Perspective]. Addison-Wesley, 2003. ISBN 0-201-79940-5 -* Spinellis, Diomidis. http://www.spinellis.gr/codequality/[Code Quality: The Open Source Perspective]. Addison-Wesley, 2003. ISBN 0-201-79940-5 -* Stevens, W. Richard. _Advanced Programming in the UNIX Environment_. 2nd Ed. Reading, Mass. : Addison-Wesley, 2005. ISBN 0-201-43307-9 -* Stevens, W. Richard. _UNIX Network Programming_. 2nd Ed, PTR Prentice Hall, 1998. ISBN 0-13-490012-X -* Wells, Bill. "Writing Serial Drivers for UNIX". _Dr. Dobb's Journal_. 19(15), December 1994. pp68-71, 97-99. - -[[bibliography-osinternals]] -== Внутренности операционной системы - -* Andleigh, Prabhat K. _UNIX System Architecture_. Prentice-Hall, Inc., 1990. ISBN 0-13-949843-5 -* Jolitz, William. "Porting UNIX to the 386". _Dr. Dobb's Journal_. January 1991-July 1992. -* Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and John Quarterman _The Design and Implementation of the 4.3BSD UNIX Operating System_. Reading, Mass. : Addison-Wesley, 1989. ISBN 0-201-06196-1 -* Leffler, Samuel J., Marshall Kirk McKusick, _The Design and Implementation of the 4.3BSD UNIX Operating System: Answer Book_. Reading, Mass. : Addison-Wesley, 1991. ISBN 0-201-54629-9 -* McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman. _The Design and Implementation of the 4.4BSD Operating System_. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-54979-4 -+ -(глава 2 этой книги доступна extref:{design-44bsd}[онлайн] как часть Проекта документирования FreeBSD, и глава 9 доступна http://www.netapp.com/tech_library/nfsbook.html[ здесь].) -* Marshall Kirk McKusick, George V. Neville-Neil _The Design and Implementation of the FreeBSD Operating System_. Boston, Mass. : Addison-Wesley, 2004. ISBN 0-201-70245-2 -* Stevens, W. Richard. _TCP/IP Illustrated, Volume 1: The Protocols_. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63346-9 -* Schimmel, Curt. _Unix Systems for Modern Architectures_. Reading, Mass. : Addison-Wesley, 1994. ISBN 0-201-63338-8 -* Stevens, W. Richard. _TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP and the UNIX Domain Protocols_. Reading, Mass. : Addison-Wesley, 1996. ISBN 0-201-63495-3 -* Vahalia, Uresh. _UNIX Internals -- The New Frontiers_. Prentice Hall, 1996. ISBN 0-13-101908-2 -* Wright, Gary R. and W. Richard Stevens. _TCP/IP Illustrated, Volume 2: The Implementation_. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X +== Библиография FreeBSD + +* *Absolute FreeBSD: The Complete Guide To FreeBSD*, Third Edition, published by link:https://nostarch.com/absfreebsd3[No Starch Press], 2018. ISBN: 978-1593278922 +* *FreeBSD Mastery: Storage Essentials*, published by link:https://www.tiltedwindmillpress.com/product/freebsd-mastery-storage-essentials/[Tilted Windmill Press], 2014. ISBN: 978-1642350098 +* *FreeBSD Mastery: Specialty Filesystems*, published by link:https://www.tiltedwindmillpress.com/product/fmspf/[Tilted Windmill Press], 2015. ISBN: 978-1642350111 +* *FreeBSD Mastery: ZFS*, published by link:https://www.tiltedwindmillpress.com/product/fmzfs/[Tilted Windmill Press], 2015. ISBN: 978-1642350005 +* *FreeBSD Mastery: Advanced ZFS*, published by link:https://www.tiltedwindmillpress.com/product/fmaz/[Tilted Windmill Press], 2016. ISBN: 978-0692688687 +* *FreeBSD Mastery: Jails*, published by link:https://www.tiltedwindmillpress.com/product/fmjail/[Tilted Windmill Press], 2019. ISBN: 978-1642350241 +* *FreeBSD Device Drivers: A Guide for the Intrepid*, published by link:https://nostarch.com/bsddrivers.htm[No Starch Press], 2012. ISBN: 978-1593272043 +* *The Design And Implementation Of The Freebsd Operating System*, Second Edition, published by link:https://www.pearson.com/store/p/design-and-implementation-of-the-freebsd-operating-system-the/P200000000463/9780321968975[Pearson Education, Inc.], 2014. ISBN: 978-0321968975 +* *UNIX and Linux System Administration Handbook*, Fifth Edition, published by link:https://www.pearson.com/en-us/subject-catalog/p/unix-and-linux-system-administration-handbook/P200000000513/9780137460359[Pearson Education, Inc.], 2017. ISBN: 978-0134277554 +* *Designing BSD Rootkits*, published by link:https://nostarch.com/rootkits.htm[No Starch Press], 2007. ISBN: 978-1593271428 +* *FreeBSD Jails using VNETs*, published in link:https://rderik.gumroad.com/l/uwOLZ[gumroad] [[bibliography-security]] -== Безопасность - -* Cheswick, William R. and Steven M. Bellovin. _Firewalls and Internet Security: Repelling the Wily Hacker_. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-63357-4 -* Garfinkel, Simson and Gene Spafford. _Practical UNIX & Internet Security_. 2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN 1-56592-148-8 -* Garfinkel, Simson. _PGP Pretty Good Privacy_ O'Reilly & Associates, Inc., 1995. ISBN 1-56592-098-8 - -[[bibliography-hardware]] -== Оборудование +== Издания о безопасности -* Anderson, Don and Tom Shanley. _Pentium Processor System Architecture_. 2nd Ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40992-5 -* Ferraro, Richard F. _Programmer's Guide to the EGA, VGA, and Super VGA Cards_. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-62490-7 -* Intel Corporation publishes documentation on their CPUs, chipsets and standards on their http://developer.intel.com/[developer web site], usually as PDF files. -* Shanley, Tom. _80486 System Architecture_. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40994-1 -* Shanley, Tom. _ISA System Architecture_. 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN 0-201-40996-8 -* Shanley, Tom. _PCI System Architecture_. 4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN 0-201-30974-2 -* Van Gilluwe, Frank. _The Undocumented PC_, 2nd Ed. Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN 0-201-47950-8 -* Messmer, Hans-Peter. _The Indispensable PC Hardware Book_, 4th Ed. Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN 0-201-59616-4 +* *The Book of PF: A No-Nonsense Guide to the OpenBSD Firewall*, Third Edition, published by link:https://nostarch.com/pf3[No Starch Press], 2014. ISBN: 978-1593275891 +* *SSH Mastery: OpenSSH, PuTTY, Tunnels, and Keys*, Second Edition, 2018. ISBN: 978-1642350029 [[bibliography-history]] == История UNIX(R) -* Lion, John _Lion's Commentary on UNIX, 6th Ed. With Source Code_. ITP Media Group, 1996. ISBN 1573980137 -* Raymond, Eric S. _The New Hacker's Dictionary, 3rd edition_. MIT Press, 1996. ISBN 0-262-68092-0. Also known as the http://www.catb.org/~esr/jargon/html/index.html[Jargon File] -* Salus, Peter H. _A quarter century of UNIX_. Addison-Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5 -* Simon Garfinkel, Daniel Weise, Steven Strassmann. _The UNIX-HATERS Handbook_. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1. Не печаталась, доступна по адресу http://research.microsoft.com/~daniel/unix-haters.html[ online]. -* Don Libes, Sandy Ressler _Life with UNIX_ - special edition. Prentice-Hall, Inc., 1989. ISBN 0-13-536657-7 -* _The BSD family tree_. http://www.FreeBSD.org/cgi/cvsweb.cgi/src/shared/misc/bsd-family-tree[http://www.FreeBSD.org/cgi/cvsweb.cgi/src/shared/misc/bsd-family-tree] или link:file://localhost/usr/shared/misc/bsd-family-tree[/usr/shared/misc/bsd-family-tree] на компьютере FreeBSD. -* _The BSD Release Announcements collection_. 1997. http://www.de.FreeBSD.org/de/ftp/releases/[http://www.de.FreeBSD.org/de/ftp/releases/] -* _Networked Computer Science Technical Reports Library_. http://www.ncstrl.org/[http://www.ncstrl.org/] -* _Old BSD releases from the Computer Systems Research group (CSRG)_. http://www.mckusick.com/csrg/[http://www.mckusick.com/csrg/]: В набор на 4CD включены все версии BSD от 1BSD до 4.4BSD и 4.4BSD-Lite2 (но к сожалению нет 2.11BSD). На последнем диске находится также последняя версия исходных текстов и файлы SCCS. +* Lion, John _Lion's Commentary on UNIX, 6-е изд. С исходным кодом_. ITP Media Group, 1996 год. ISBN 1573980137 +* Raymond, Eric S.. _The New Hacker's Dictionary, 3rd edition_. MIT Press, 1996 год. ISBN 0-262-68092-0. Также известен как http://www.catb.org/~esr/jargon/html/index.html[Jargon File] +* Salus, Peter H. _A quarter century of UNIX_. Издано Addison-Wesley Publishing Company, Inc., 1994 год. ISBN 0-201-54777-5 +* Simon Garfinkel, Daniel Weise, Steven Strassmann. _The UNIX-HATERS Handbook_. IDG Books Worldwide, Inc., 1994 год. ISBN 1-56884-203-1. Книга снята с печати, но доступна http://www.simson.net/ref/ugh.pdf[онлайн]. +* Don Libes, Sandy Ressler _Life with UNIX_ - специальное издание. Prentice-Hall, Inc., 1989 год. ISBN 0-13-536657-7 +* _Генеалогическое древо BSD_. https://cgit.freebsd.org/src/tree/share/misc/bsd-family-tree[https://cgit.freebsd.org/src/tree/share/misc/bsd-family-tree] или link:file://localhost/usr/share/misc/bsd-family-tree[/usr/share/misc/bsd-family-tree] на машине с FreeBSD. +* _Сетевая библиотека технических отчетов по компьютерным наукам_. +* _Старые выпуски BSD от группы исследования компьютерных систем (CSRG)_. http://www.mckusick.com/csrg/[http://www.mckusick.com/csrg/]: Набор из 4 дисков включает все версии BSD от 1BSD до 4.4BSD и 4.4BSD-Lite2 (но, к сожалению, не 2.11BSD). На последнем диске также находятся окончательные исходные тексты вместе с файлами SCCS. +* Керниган, Брайан _Unix: История и мемуары_. Kindle Direct Publishing, 2020 год. ISBN 978-169597855-3 [[bibliography-journals]] -== Прочие издания +== Периодические издания, журналы и газеты -* _The C/C++ Users Journal_. R&D Publications Inc. ISSN 1075-2838 -* _Sys Admin - The Journal for UNIX System Administrators_ Miller Freeman, Inc., ISSN 1061-2688 -* _freeX - Das Magazin für Linux - BSD - UNIX_ (на немецком) Computer- und Literaturverlag GmbH, ISSN 1436-7033 +* https://www.admin-magazin.de/[Admin Magazin] (на немецком языке), издательство Medialinx AG. ISSN: 2190-1066 +* https://www.bsdnow.tv/[BSD Now - Video Podcast], издано Jupiter Broadcasting LLC +* https://freebsdfoundation.org/our-work/journal/[FreeBSD Journal], издаваемый S&W Publishing при спонсорской поддержке The FreeBSD Foundation. ISBN: 978-0-615-88479-0 diff --git a/documentation/content/ru/books/handbook/bibliography/_index.po b/documentation/content/ru/books/handbook/bibliography/_index.po new file mode 100644 index 0000000000..d21c8c6c4b --- /dev/null +++ b/documentation/content/ru/books/handbook/bibliography/_index.po @@ -0,0 +1,407 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-07-24 21:10+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookbibliography_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/bibliography/_index.adoc:1 +#, no-wrap +msgid "FreeBSD Handbook Bibliography" +msgstr "Библиография Руководства FreeBSD" + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/bibliography/_index.adoc:1 +#, no-wrap +msgid "Part V. Appendices" +msgstr "Часть V. Приложения" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/bibliography/_index.adoc:1 +#, no-wrap +msgid "Appendix B. Bibliography" +msgstr "Приложение B. Библиография" + +#. type: Title = +#: documentation/content/en/books/handbook/bibliography/_index.adoc:16 +#, no-wrap +msgid "Bibliography" +msgstr "Библиография" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:55 +msgid "" +"While manual pages provide a definitive reference for individual pieces of " +"the FreeBSD operating system, they seldom illustrate how to put the pieces " +"together to make the whole operating system run smoothly. For this, there " +"is no substitute for a good book or users' manual on UNIX(R) system " +"administration." +msgstr "" +"Хотя справочные страницы (man-страницы) предоставляют точную информацию об " +"отдельных компонентах операционной системы FreeBSD, они редко показывают, " +"как объединить эти компоненты, чтобы обеспечить бесперебойную работу всей " +"системы. В этом случае нет замены хорошей книге или руководству пользователя " +"по администрированию UNIX(R)." + +#. type: Title == +#: documentation/content/en/books/handbook/bibliography/_index.adoc:57 +#, no-wrap +msgid "FreeBSD Bibliography" +msgstr "Библиография FreeBSD" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:60 +#, fuzzy +#| msgid "" +#| "*Absolute FreeBSD: The Complete Guide To FreeBSD*, Third Edition, " +#| "published by link:https://nostarch.com/absfreebsd3[No Starch Press], " +#| "2018. ISBN: 978-1593278922\n" +msgid "" +"*Absolute FreeBSD: The Complete Guide To FreeBSD*, Third Edition, published " +"by link:https://nostarch.com/absfreebsd3[No Starch Press], 2018. ISBN: " +"978-1593278922" +msgstr "" +"*Absolute FreeBSD: The Complete Guide To FreeBSD*, третье издание, издано " +"link:https://nostarch.com/absfreebsd3[No Starch Press], 2018. ISBN: " +"978-1593278922\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:61 +#, fuzzy +#| msgid "" +#| "*FreeBSD Mastery: Storage Essentials*, published by link:https://" +#| "www.tiltedwindmillpress.com/product/freebsd-mastery-storage-essentials/" +#| "[Tilted Windmill Press], 2014. ISBN: 978-1642350098\n" +msgid "" +"*FreeBSD Mastery: Storage Essentials*, published by link:https://" +"www.tiltedwindmillpress.com/product/freebsd-mastery-storage-essentials/" +"[Tilted Windmill Press], 2014. ISBN: 978-1642350098" +msgstr "" +"*FreeBSD Mastery: Storage Essentials*, издано link:https://" +"www.tiltedwindmillpress.com/product/freebsd-mastery-storage-essentials/" +"[Tilted Windmill Press], 2014. ISBN: 978-1642350098\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:62 +#, fuzzy +#| msgid "" +#| "*FreeBSD Mastery: Specialty Filesystems*, published by link:https://" +#| "www.tiltedwindmillpress.com/product/fmspf/[Tilted Windmill Press], 2015. " +#| "ISBN: 978-1642350111\n" +msgid "" +"*FreeBSD Mastery: Specialty Filesystems*, published by link:https://" +"www.tiltedwindmillpress.com/product/fmspf/[Tilted Windmill Press], 2015. " +"ISBN: 978-1642350111" +msgstr "" +"*FreeBSD Mastery: Specialty Filesystems*, издано link:https://" +"www.tiltedwindmillpress.com/product/fmspf/[Tilted Windmill Press], 2015. " +"ISBN: 978-1642350111\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:63 +#, fuzzy +#| msgid "" +#| "*FreeBSD Mastery: ZFS*, published by link:https://" +#| "www.tiltedwindmillpress.com/product/fmzfs/[Tilted Windmill Press], 2015. " +#| "ISBN: 978-1642350005\n" +msgid "" +"*FreeBSD Mastery: ZFS*, published by link:https://" +"www.tiltedwindmillpress.com/product/fmzfs/[Tilted Windmill Press], 2015. " +"ISBN: 978-1642350005" +msgstr "" +"*FreeBSD Mastery: ZFS*, издано link:https://www.tiltedwindmillpress.com/" +"product/fmzfs/[Tilted Windmill Press], 2015. ISBN: 978-1642350005\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:64 +#, fuzzy +#| msgid "" +#| "*FreeBSD Mastery: Advanced ZFS*, published by link:https://" +#| "www.tiltedwindmillpress.com/product/fmaz/[Tilted Windmill Press], 2016. " +#| "ISBN: 978-0692688687\n" +msgid "" +"*FreeBSD Mastery: Advanced ZFS*, published by link:https://" +"www.tiltedwindmillpress.com/product/fmaz/[Tilted Windmill Press], 2016. " +"ISBN: 978-0692688687" +msgstr "" +"*FreeBSD Mastery: Advanced ZFS*, издано link:https://" +"www.tiltedwindmillpress.com/product/fmaz/[Tilted Windmill Press], 2016. " +"ISBN: 978-0692688687\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:65 +#, fuzzy +#| msgid "" +#| "*FreeBSD Mastery: Jails*, published by link:https://" +#| "www.tiltedwindmillpress.com/product/fmjail/[Tilted Windmill Press], 2019. " +#| "ISBN: 978-1642350241\n" +msgid "" +"*FreeBSD Mastery: Jails*, published by link:https://" +"www.tiltedwindmillpress.com/product/fmjail/[Tilted Windmill Press], 2019. " +"ISBN: 978-1642350241" +msgstr "" +"*FreeBSD Mastery: Jails*, издано link:https://www.tiltedwindmillpress.com/" +"product/fmjail/[Tilted Windmill Press], 2019. ISBN: 978-1642350241\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:66 +#, fuzzy +#| msgid "" +#| "*FreeBSD Device Drivers: A Guide for the Intrepid*, published by " +#| "link:https://nostarch.com/bsddrivers.htm[No Starch Press], 2012. ISBN: " +#| "978-1593272043\n" +msgid "" +"*FreeBSD Device Drivers: A Guide for the Intrepid*, published by " +"link:https://nostarch.com/bsddrivers.htm[No Starch Press], 2012. ISBN: " +"978-1593272043" +msgstr "" +"*FreeBSD Device Drivers: A Guide for the Intrepid*, издано link:https://" +"nostarch.com/bsddrivers.htm[No Starch Press], 2012. ISBN: 978-1593272043\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:67 +#, fuzzy +#| msgid "" +#| "*The Design And Implementation Of The Freebsd Operating System*, Second " +#| "Edition, published by link:https://www.pearson.com/store/p/design-and-" +#| "implementation-of-the-freebsd-operating-system-the/" +#| "P200000000463/9780321968975[Pearson Education, Inc.], 2014. ISBN: " +#| "978-0321968975\n" +msgid "" +"*The Design And Implementation Of The Freebsd Operating System*, Second " +"Edition, published by link:https://www.pearson.com/store/p/design-and-" +"implementation-of-the-freebsd-operating-system-the/" +"P200000000463/9780321968975[Pearson Education, Inc.], 2014. ISBN: " +"978-0321968975" +msgstr "" +"*The Design And Implementation Of The Freebsd Operating System*, второе " +"издание, издано link:https://www.pearson.com/store/p/design-and-" +"implementation-of-the-freebsd-operating-system-the/" +"P200000000463/9780321968975[Pearson Education, Inc.], 2014. ISBN: " +"978-0321968975\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:68 +#, fuzzy +#| msgid "" +#| "*UNIX and Linux System Administration Handbook*, Fifth Edition, published " +#| "by link:https://www.pearson.com/en-us/subject-catalog/p/unix-and-linux-" +#| "system-administration-handbook/P200000000513/9780137460359[Pearson " +#| "Education, Inc.], 2017. ISBN: 978-0134277554\n" +msgid "" +"*UNIX and Linux System Administration Handbook*, Fifth Edition, published by " +"link:https://www.pearson.com/en-us/subject-catalog/p/unix-and-linux-system-" +"administration-handbook/P200000000513/9780137460359[Pearson Education, " +"Inc.], 2017. ISBN: 978-0134277554" +msgstr "" +"*UNIX and Linux System Administration Handbook*, пятое издание, издано " +"link:https://www.pearson.com/en-us/subject-catalog/p/unix-and-linux-system-" +"administration-handbook/P200000000513/9780137460359[Pearson Education, " +"Inc.], 2017. ISBN: 978-0134277554\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:69 +#, fuzzy +#| msgid "" +#| "*Designing BSD Rootkits*, published by link:https://nostarch.com/" +#| "rootkits.htm[No Starch Press], 2007. ISBN: 978-1593271428\n" +msgid "" +"*Designing BSD Rootkits*, published by link:https://nostarch.com/" +"rootkits.htm[No Starch Press], 2007. ISBN: 978-1593271428" +msgstr "" +"*Designing BSD Rootkits*, издано link:https://nostarch.com/rootkits.htm[No " +"Starch Press], 2007. ISBN: 978-1593271428\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:70 +#, fuzzy +#| msgid "" +#| "*FreeBSD Jails using VNETs*, published in link:https://rderik.gumroad.com/" +#| "l/uwOLZ[gumroad]\n" +msgid "" +"*FreeBSD Jails using VNETs*, published in link:https://rderik.gumroad.com/l/" +"uwOLZ[gumroad]" +msgstr "" +"*FreeBSD Jails using VNETs*, опубликовано в link:https://rderik.gumroad.com/" +"l/uwOLZ[gumroad]\n" + +#. type: Title == +#: documentation/content/en/books/handbook/bibliography/_index.adoc:72 +#, no-wrap +msgid "Security Reference" +msgstr "Издания о безопасности" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:75 +#, fuzzy +#| msgid "" +#| "*The Book of PF: A No-Nonsense Guide to the OpenBSD Firewall*, Third " +#| "Edition, published by link:https://nostarch.com/pf3[No Starch Press], " +#| "2014. ISBN: 978-1593275891\n" +msgid "" +"*The Book of PF: A No-Nonsense Guide to the OpenBSD Firewall*, Third " +"Edition, published by link:https://nostarch.com/pf3[No Starch Press], 2014. " +"ISBN: 978-1593275891" +msgstr "" +"*The Book of PF: A No-Nonsense Guide to the OpenBSD Firewall*, третье " +"издание, издано link:https://nostarch.com/pf3[No Starch Press], 2014 год. " +"ISBN: 978-1593275891\n" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:76 +#, fuzzy +#| msgid "" +#| "*SSH Mastery: OpenSSH, PuTTY, Tunnels, and Keys*, Second Edition, 2018. " +#| "ISBN: 978-1642350029\n" +msgid "" +"*SSH Mastery: OpenSSH, PuTTY, Tunnels, and Keys*, Second Edition, 2018. " +"ISBN: 978-1642350029" +msgstr "" +"*SSH Mastery: OpenSSH, PuTTY, Tunnels, and Keys*, второе издание, 2018 год. " +"ISBN: 978-1642350029\n" + +#. type: Title == +#: documentation/content/en/books/handbook/bibliography/_index.adoc:78 +#, no-wrap +msgid "UNIX(R) History" +msgstr "История UNIX(R)" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:81 +msgid "" +"Lion, John _Lion's Commentary on UNIX, 6th Ed. With Source Code_. ITP Media " +"Group, 1996. ISBN 1573980137" +msgstr "" +"Lion, John _Lion's Commentary on UNIX, 6-е изд. С исходным кодом_. ITP Media " +"Group, 1996 год. ISBN 1573980137" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:82 +msgid "" +"Raymond, Eric S. _The New Hacker's Dictionary, 3rd edition_. MIT Press, " +"1996. ISBN 0-262-68092-0. Also known as the http://www.catb.org/~esr/jargon/" +"html/index.html[Jargon File]" +msgstr "" +"Raymond, Eric S.. _The New Hacker's Dictionary, 3rd edition_. MIT Press, " +"1996 год. ISBN 0-262-68092-0. Также известен как http://www.catb.org/~esr/" +"jargon/html/index.html[Jargon File]" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:83 +msgid "" +"Salus, Peter H. _A quarter century of UNIX_. Addison-Wesley Publishing " +"Company, Inc., 1994. ISBN 0-201-54777-5" +msgstr "" +"Salus, Peter H. _A quarter century of UNIX_. Издано Addison-Wesley " +"Publishing Company, Inc., 1994 год. ISBN 0-201-54777-5" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:84 +msgid "" +"Simon Garfinkel, Daniel Weise, Steven Strassmann. _The UNIX-HATERS " +"Handbook_. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1. Out of " +"print, but available http://www.simson.net/ref/ugh.pdf[online]." +msgstr "" +"Simon Garfinkel, Daniel Weise, Steven Strassmann. _The UNIX-HATERS " +"Handbook_. IDG Books Worldwide, Inc., 1994 год. ISBN 1-56884-203-1. Книга " +"снята с печати, но доступна http://www.simson.net/ref/ugh.pdf[онлайн]." + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:85 +msgid "" +"Don Libes, Sandy Ressler _Life with UNIX_ - special edition. Prentice-Hall, " +"Inc., 1989. ISBN 0-13-536657-7" +msgstr "" +"Don Libes, Sandy Ressler _Life with UNIX_ - специальное издание. Prentice-" +"Hall, Inc., 1989 год. ISBN 0-13-536657-7" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:86 +msgid "" +"_The BSD family tree_. https://cgit.freebsd.org/src/tree/share/misc/bsd-" +"family-tree[https://cgit.freebsd.org/src/tree/share/misc/bsd-family-tree] or " +"link:file://localhost/usr/share/misc/bsd-family-tree[/usr/share/misc/bsd-" +"family-tree] on a FreeBSD machine." +msgstr "" +"_Генеалогическое древо BSD_. https://cgit.freebsd.org/src/tree/share/misc/" +"bsd-family-tree[https://cgit.freebsd.org/src/tree/share/misc/bsd-family-" +"tree] или link:file://localhost/usr/share/misc/bsd-family-tree[/usr/share/" +"misc/bsd-family-tree] на машине с FreeBSD." + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:87 +msgid "_Networked Computer Science Technical Reports Library_." +msgstr "_Сетевая библиотека технических отчетов по компьютерным наукам_." + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:88 +msgid "" +"_Old BSD releases from the Computer Systems Research group (CSRG)_. http://" +"www.mckusick.com/csrg/[http://www.mckusick.com/csrg/]: The 4CD set covers " +"all BSD versions from 1BSD to 4.4BSD and 4.4BSD-Lite2 (but not 2.11BSD, " +"unfortunately). The last disk also holds the final sources plus the SCCS " +"files." +msgstr "" +"_Старые выпуски BSD от группы исследования компьютерных систем (CSRG)_. " +"http://www.mckusick.com/csrg/[http://www.mckusick.com/csrg/]: Набор из 4 " +"дисков включает все версии BSD от 1BSD до 4.4BSD и 4.4BSD-Lite2 (но, к " +"сожалению, не 2.11BSD). На последнем диске также находятся окончательные " +"исходные тексты вместе с файлами SCCS." + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:89 +msgid "" +"Kernighan, Brian _Unix: A History and a Memoir_. Kindle Direct Publishing, " +"2020. ISBN 978-169597855-3" +msgstr "" +"Керниган, Брайан _Unix: История и мемуары_. Kindle Direct Publishing, 2020 " +"год. ISBN 978-169597855-3" + +#. type: Title == +#: documentation/content/en/books/handbook/bibliography/_index.adoc:91 +#, no-wrap +msgid "Periodicals, Journals, and Magazines" +msgstr "Периодические издания, журналы и газеты" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:94 +msgid "" +"https://www.admin-magazin.de/[Admin Magazin] (in German), published by " +"Medialinx AG. ISSN: 2190-1066" +msgstr "" +"https://www.admin-magazin.de/[Admin Magazin] (на немецком языке), " +"издательство Medialinx AG. ISSN: 2190-1066" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:95 +msgid "" +"https://www.bsdnow.tv/[BSD Now - Video Podcast], published by Jupiter " +"Broadcasting LLC" +msgstr "" +"https://www.bsdnow.tv/[BSD Now - Video Podcast], издано Jupiter Broadcasting " +"LLC" + +#. type: appendix +#: documentation/content/en/books/handbook/bibliography/_index.adoc:95 +msgid "" +"https://freebsdfoundation.org/our-work/journal/[FreeBSD Journal], published " +"by S&W Publishing, sponsored by The FreeBSD Foundation. ISBN: " +"978-0-615-88479-0" +msgstr "" +"https://freebsdfoundation.org/our-work/journal/[FreeBSD Journal], издаваемый " +"S&W Publishing при спонсорской поддержке The FreeBSD Foundation. ISBN: " +"978-0-615-88479-0" diff --git a/documentation/content/ru/books/handbook/book.adoc b/documentation/content/ru/books/handbook/book.adoc index 1ef9b14091..9c4c66983c 100644 --- a/documentation/content/ru/books/handbook/book.adoc +++ b/documentation/content/ru/books/handbook/book.adoc @@ -1,8 +1,12 @@ --- -title: Руководство FreeBSD +add_split_page_link: true authors: - - author: Проект Документации FreeBSD -copyright: 1995-2025 The FreeBSD Documentation Project + - + author: 'The FreeBSD Documentation Project' +copyright: '1995-2025 The FreeBSD Documentation Project' +description: 'Постоянно развивающийся и всеобъемлющий ресурс для пользователей FreeBSD' +tags: ["FreeBSD Handbook", "Handbook"] +title: 'Руководство FreeBSD' 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"] --- @@ -67,6 +71,10 @@ include::{chapters-path}ports/_index.adoc[leveloffset=+1] include::{chapters-path}x11/_index.adoc[leveloffset=+1] +include::{chapters-path}wayland/_index.adoc[leveloffset=+1] + +include::{chapters-path}network/_index.adoc[leveloffset=+1] + // Section two include::{chapters-path}partii.adoc[] @@ -80,6 +88,8 @@ include::{chapters-path}printing/_index.adoc[leveloffset=+1] include::{chapters-path}linuxemu/_index.adoc[leveloffset=+1] +include::{chapters-path}wine/_index.adoc[leveloffset=+1] + // Section three include::{chapters-path}partiii.adoc[] @@ -89,6 +99,8 @@ include::{chapters-path}boot/_index.adoc[leveloffset=+1] include::{chapters-path}security/_index.adoc[leveloffset=+1] +include::{chapters-path}jails/_index.adoc[leveloffset=+1] + include::{chapters-path}mac/_index.adoc[leveloffset=+1] include::{chapters-path}audit/_index.adoc[leveloffset=+1] @@ -97,12 +109,20 @@ include::{chapters-path}disks/_index.adoc[leveloffset=+1] include::{chapters-path}geom/_index.adoc[leveloffset=+1] +include::{chapters-path}zfs/_index.adoc[leveloffset=+1] + include::{chapters-path}filesystems/_index.adoc[leveloffset=+1] +include::{chapters-path}virtualization/_index.adoc[leveloffset=+1] + include::{chapters-path}l10n/_index.adoc[leveloffset=+1] include::{chapters-path}cutting-edge/_index.adoc[leveloffset=+1] +include::{chapters-path}dtrace/_index.adoc[leveloffset=+1] + +include::{chapters-path}usb-device-mode/_index.adoc[leveloffset=+1] + // Section four include::{chapters-path}partiv.adoc[] @@ -131,4 +151,8 @@ include::{chapters-path}eresources/_index.adoc[leveloffset=+1] include::{chapters-path}pgpkeys/_index.adoc[leveloffset=+1] +include::{chapters-path}glossary.adoc[leveloffset=+1] + +include::{chapters-path}colophon.adoc[leveloffset=+1] + :sectnums: diff --git a/documentation/content/ru/books/handbook/book.po b/documentation/content/ru/books/handbook/book.po new file mode 100644 index 0000000000..3b4f18e470 --- /dev/null +++ b/documentation/content/ru/books/handbook/book.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-05-26 08:57+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookbook/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/book.adoc:1 +#, no-wrap +msgid "A constantly evolving, comprehensive resource for FreeBSD users" +msgstr "Постоянно развивающийся и всеобъемлющий ресурс для пользователей FreeBSD" + +#. type: Title = +#: documentation/content/en/books/handbook/book.adoc:1 +#: documentation/content/en/books/handbook/book.adoc:12 +#, no-wrap +msgid "FreeBSD Handbook" +msgstr "Руководство FreeBSD" + +#. type: Plain text +#: documentation/content/en/books/handbook/book.adoc:51 +msgid "'''" +msgstr "'''" diff --git a/documentation/content/ru/books/handbook/boot/_index.adoc b/documentation/content/ru/books/handbook/boot/_index.adoc index 837de2defe..6683bbeeb8 100644 --- a/documentation/content/ru/books/handbook/boot/_index.adoc +++ b/documentation/content/ru/books/handbook/boot/_index.adoc @@ -1,12 +1,14 @@ --- -title: Глава 13. Процесс загрузки FreeBSD -part: Часть III. Системное администрирование -prev: books/handbook/config +description: 'В этой главе описывается процесс загрузки FreeBSD и способы его настройки. Рассматриваются все этапы — от начальной загрузки до момента, когда ядро FreeBSD завершает инициализацию, определяет оборудование и запускает процесс init' next: books/handbook/security -showBookMenu: true -weight: 17 params: - path: "/books/handbook/boot/" + path: /books/handbook/boot/ +part: 'Часть III. Администрирование системы' +prev: books/handbook/config +showBookMenu: true +tags: ["boot", "boot process", "device hints", "x86", "amd64", "MBR", "GPT", "UEFI", "bsdlabel", "boot0", "Single-User Mode", "Multi-User Mode"] +title: 'Глава 15. Процесс загрузки FreeBSD' +weight: 19 --- [[boot]] @@ -17,7 +19,7 @@ params: :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 13 +:sectnumoffset: 15 :partnums: :source-highlighter: rouge :experimental: @@ -48,115 +50,102 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] [[boot-synopsis]] -== Описание +== Обзор -Процесс включения компьютера и загрузки операционной системы называется "процессом первоначальной загрузки", или просто "загрузкой". Процесс загрузки FreeBSD предоставляет большие возможности по гибкой настройке того, что происходит при запуске системы, позволяя вам выбирать из различных операционных систем, установленных на одном и том же компьютере, или даже из различных версий той же самой операционной системы или установленного ядра. +Процесс запуска компьютера и загрузки операционной системы называется "процессом начальной загрузки" или "загрузкой". Процесс загрузки FreeBSD предоставляет большую гибкость в настройке действий при старте системы, включая возможность выбора между различными операционными системами, установленными на одном компьютере, разными версиями одной операционной системы или другим установленным ядром. -Эта глава подробно описывает параметры, которые вы можете изменить для настройки процесса загрузки FreeBSD. Под этим подразумевается все, что происходит до начала работы ядра FreeBSD, обнаружения устройств и запуска man:init[8]. Если вы не совсем уверены, то это происходит, когда выводимый текст меняет цвет с ярко-белого на серый. +Эта глава подробно описывает доступные параметры конфигурации. В ней показано, как настроить процесс загрузки FreeBSD, включая все этапы до момента, когда ядро FreeBSD запустится, определит устройства и запустит man:init[8]. Это происходит, когда цвет текста загрузочных сообщений меняется с ярко-белого на серый. -После чтения этой главы вы будете знать: +Прочитав эту главу, вы узнаете: -* Из каких частей состоит система начальной загрузки FreeBSD, и как эти части взаимодействуют. -* Параметры, которые вы можете передать компонентам начальной загрузки FreeBSD для управления этим процессом. -* Основы работы man:device.hints[5] +* Компоненты загрузочной системы FreeBSD и их взаимодействие. +* Параметры, которые можно передать компонентам в процессе загрузки FreeBSD для управления процессом загрузки. +* Основы настройки подсказок устройств. +* Как загрузиться в однопользовательском и многопользовательском режимах и как правильно завершить работу системы FreeBSD. [NOTE] -.Только для x86 ==== -Эта глава описывает процесс загрузки FreeBSD только для систем на основе архитектуры Intel x86. +Эта глава описывает только процесс загрузки FreeBSD на системах с архитектурой x86 и amd64. ==== [[boot-introduction]] -== Проблема загрузки - -Включение компьютера и запуск операционной системы приводят к интересной дилемме. По определению до запуска операционной системы компьютер не умеет ничего. В том числе и не знает, как запускать программы с диска. Так что компьютер не может запустить программу с диска без операционной системы, но программы операционной системы находятся на диске, но как запустить операционную систему? +== Процесс загрузки FreeBSD -Эта проблема имеет параллели с одной проблемой из книги Приключения барона Мюнхгаузена. Герой провалился в болото, и вытащил сам себя, ухватив за волосы и потянув. В эпоху начала компьютеризации термин _начальная загрузка_ применялся к механизму, используемому для загрузки операционной системы, и затем был сокращен до просто "загрузки". +Включение компьютера и запуск операционной системы представляет собой интересную дилемму. По определению, компьютер не умеет ничего делать до запуска операционной системы. Это включает в себя запуск программ с диска. Если компьютер не может запустить программу с диска без операционной системы, а программы операционной системы находятся на диске, то как же тогда запускается операционная система? -На оборудовании архитектуры x86 за загрузку операционной системы отвечает BIOS (Basic Input/Output System). Для этого BIOS ищет на жестком диске MBR (Master Boot Record), которая должна располагаться в определенном месте на диске. BIOS может загрузить и запустить MBR, и предполагается, что MBR может взять на себя остальную работу, связанную с загрузкой операционной системы. +Эта проблема аналогична описанной в книге «Приключения барона Мюнхгаузена». Персонаж частично провалился в люк, но смог выбраться, ухватившись за шнурки своих сапог и подтянув себя вверх. В первые дни развития вычислительной техники термин **_bootstrap_** применялся к механизму загрузки операционной системы. Со временем он сократился до «**загрузки**» (англ. "booting"). -Выполняемую часть MBR обычно называют _менеджером загрузки (boot manager)_, в особенности если она взаимодействует с пользователем. В этом случае менеджер загрузки, как правило, занимает большее пространство на первом _треке_ диска или внутри файловой системы ОС. (Менеджер загрузки иногда называют _загрузчиком (boot loader)_, но во FreeBSD этот термин используется для описания более поздней фазы загрузки). Среди популярных менеджеров загрузки стоит отметить boot0 (он же Boot Easy, стандартный менеджер загрузки FreeBSD), Grub, GAG и LILO. Из перечисленных менеджеров загрузки в MBR помещается только boot0. +На аппаратном обеспечении x86 загрузка операционной системы выполняется базовой системой ввода/вывода (BIOS). BIOS ищет на жестком диске главную загрузочную запись (MBR), которая должна находиться в определенном месте диска. BIOS обладает достаточными знаниями для загрузки и запуска MBR и предполагает, что MBR затем сможет выполнить остальные задачи по загрузке операционной системы, возможно, с помощью BIOS. -Если на вашем диске установлена только одна операционная система, то стандартной MBR будет достаточно. Такая MBR выполняет поиск на диске первого загрузочного (активного) слайса, после чего запускает с этого слайса код загрузки оставшейся части операционной системы. Утилита man:fdisk[8] по умолчанию устанавливает именно такую MBR, на основе файла [.filename]#/boot/mbr#. +[NOTE] +==== +FreeBSD поддерживает загрузку как по старому стандарту MBR, так и по новому стандарту GUID Partition Table (GPT). Разметка GPT часто встречается на компьютерах с Unified Extensible Firmware Interface (UEFI). Однако FreeBSD может загружаться с разделов GPT даже на машинах с устаревшим BIOS, используя man:gptboot[8]. Ведутся работы по обеспечению прямой загрузки через UEFI. +==== -Если на ваших дисках установлено несколько операционных систем, то вы можете установить другой менеджер загрузки, который может выдать список различных операционных систем и позволит вам выбрать одну из них для загрузки. Два варианта менеджеров загрузки будут описаны чуть ниже. +Код в MBR обычно называют _загрузчиком_, особенно если он взаимодействует с пользователем. Загрузчик обычно содержит больше кода в первом треке диска или в файловой системе. Примерами загрузчиков являются стандартный загрузчик FreeBSD boot0, также называемый Boot Easy, и GNU GRUB, который используется во многих дистрибутивах Linux(R). -Оставшаяся часть системы начальной загрузки FreeBSD разделяется на три этапа. Первый этап запускается из MBR, и он знает достаточно для перевода компьютера в особое состояние и загрузки второго этапа. Второй этап может делать несколько больше до запуска третьего этапа. Третий этап заканчивает работу по загрузке операционной системы. Работа разделена на эти три этапа, потому что стандарты ПК ограничивают размеры программ, которые могут быть запущены на первом и втором этапах. Последовательное выполнение работ позволяет FreeBSD получить более гибкий загрузчик. +[NOTE] +==== +// There is extref:{faq}[a frequently asked question] about GRUB. Beyond the answer there, // +Пользователи GRUB могут обратиться к https://www.gnu.org/software/grub/grub-documentation.html[документации от GNU]. +==== -Затем стартует ядро, которое начинает опознавать устройства и выполняет их инициализацию. После завершения процесса своей загрузки, ядро передает управление пользовательскому процессу с именем man:init[8], который выполняет проверку дисков на возможность использования. Затем man:init[8] запускает пользовательский процесс настройки ресурсов, который монтирует файловые системы, выполняет настройку сетевых адаптеров для работы в сети и вообще осуществляет запуск всех процессов, обычно выполняемых в системе FreeBSD при загрузке. +Если на компьютере установлена только одна операционная система, MBR ищет первый загрузочный (активный) раздел на диске, а затем запускает код в этом разделе для загрузки остальной части операционной системы. При наличии нескольких операционных систем можно установить другой загрузчик, который отобразит список операционных систем, позволяя пользователю выбрать нужную для загрузки. -[[boot-blocks]] -== Менеджер загрузки и этапы загрузки +Оставшаяся часть загрузочной системы FreeBSD разделена на три этапа. Первый этап знает ровно столько, чтобы перевести компьютер в определённое состояние и запустить второй этап. Второй этап может выполнить немного больше, прежде чем запустить третий этап. Третий этап завершает загрузку операционной системы. Работа разделена на три этапа, потому что MBR накладывает ограничения на размер программ, которые могут быть выполнены на первом и втором этапах. Объединение задач в цепочку позволяет FreeBSD предоставить более гибкий загрузчик. -[[boot-boot0]] -=== Менеджер загрузки +Затем запускается ядро, которое начинает поиск и инициализацию устройств для их использования. После завершения процесса загрузки ядра управление передаётся пользовательскому процессу man:init[8], который проверяет готовность дисков к работе, запускает пользовательскую настройку ресурсов, монтирует файловые системы, настраивает сетевые карты для работы в сети и запускает процессы, запланированные для выполнения при старте системы. -Код MBR или менеджера загрузки время от времени называют _нулевой стадией_ процесса загрузки. В этом разделе мы обсудим два из упомянутых ранее менеджеров загрузки: boot0 и LILO. +Этот раздел подробно описывает эти этапы и показывает, как взаимодействовать с процессом загрузки FreeBSD. -MBR для FreeBSD находится в [.filename]#/boot/boot0#. Это _копия_ MBR, так как настоящая MBR должна располагаться в специальном месте диска, вне области FreeBSD. +[[boot-boot0]] +=== Загрузчик -[.filename]#boot0# очень прост, так как программа в может иметь размер, не превышающий 512 байт. Если вы установили MBR FreeBSD и несколько операционных систем на ваш жесткий диск, то во время загрузки вы увидите нечто похожее на следующее: +Код загрузчика в MBR иногда называют _нулевой стадией_ процесса загрузки. По умолчанию FreeBSD использует загрузчик boot0. -*Менеджер загрузки boot0:* MBR, устанавливаемый программой установки FreeBSD или утилитой man:boot0cfg[8], основан на [.filename]#/boot/boot0#. ([.filename]#boot0# очень прост, так как программа в может иметь размер, не превышающий 446 байт, так как часть первого сектора диска занята таблицей слайсов и сигнатурой `0x55AA`). Если вы установили boot0 и несколько операционных систем на ваш жесткий диск, то во время загрузки вы увидите нечто похожее на следующее: +MBR, записываемый установщиком FreeBSD, основан на [.filename]#/boot/boot0#. Размер и возможности boot0 ограничены 446 байтами из-за таблицы разделов и идентификатора `0x55AA` в конце MBR. Если установлены boot0 и несколько операционных систем, при загрузке будет отображаться сообщение, похожее на этот пример: [[boot-boot0-example]] -.Образец экрана [.filename]#boot0# +.Экран [.filename]#boot0# [example] ==== -[source,shell] +[source, shell] .... -F1 DOS +F1 Win F2 FreeBSD -F3 Linux -F4 ?? -F5 Drive 1 Default: F2 .... ==== -Известно, что другие операционные системы, в частности, Windows(R) 95, записывают поверх существующей MBR свою собственную. Если так случилось в вашем случае, или же вы хотите заменить существующую MBR на MBR от FreeBSD, то воспользуйтесь следующей командой: +Другие операционные системы перезапишут существующую MBR, если они установлены после FreeBSD. Если это произошло или требуется заменить существующую MBR на MBR FreeBSD, используйте следующую команду: -[source,shell] +[source, shell] .... # fdisk -B -b /boot/boot0 device .... -Здесь _device_ является устройством, с которого вы загружаетесь, таким, как [.filename]#ad0# в случае первого диска IDE, [.filename]#ad2# в случае первого диска IDE на втором контроллере IDE, [.filename]#da0# для первого диска SCSI и так далее. Если вы используете MBR нестандартного вида, воспользуйтесь man:boot0cfg[8]. - -*Менеджер загрузки LILO:* Для того, чтобы этот менеджер загрузки мог загружать FreeBSD, загрузите Linux и добавьте к существующему файлу конфигурации [.filename]#/etc/lilo.conf# такие строки: - -[.programlisting] -.... -other=/dev/hdXY -table=/dev/hdb -loader=/boot/chain.b -label=FreeBSD -.... - -Укажите диск с основным разделом FreeBSD в терминах Linux, заменив _X_ буквой диска, используемой в Linux, а _Y_ - номером основного раздела. Если вы используете диски SCSI, замените _/dev/hd_ на _/dev/sd_. Строка `loader=/boot/chain.b` может быть опущена, если обе операционные системы находятся на одном диске. Теперь запустите `/sbin/lilo -v` для того, чтобы ваши изменения были восприняты системой, что должно быть подтверждено сообщениями на экране. +где _device_ — это загрузочный диск, например, [.filename]#ad0# для первого IDE-диска, [.filename]#ad2# для первого IDE-диска на втором IDE-контроллере или [.filename]#da0# для первого SCSI-диска. Для создания пользовательской конфигурации MBR обратитесь к man:boot0cfg[8]. [[boot-boot1]] -=== Этап первый, [.filename]#/boot/boot1#, и этап второй, [.filename]#/boot/boot2# - -Концептуально первый и второй этапы загрузки являются частями одной и той же программы, в одной области диска. Из-за ограничений на объем дискового пространства они были разделены на две, но вы всегда должны устанавливать их вместе. Они копируются инсталлятором или утилитой bsdlabel (см. ниже) из общего файла [.filename]#/boot/boot#. +=== Этап первый и Этап второй -Они располагаются вне файловых систем, на первом треке загрузочного слайса, то есть там, где <<boot-boot0,boot0>> или любой другой менеджер загрузки ожидает найти программу, которую следует запустить для продолжение процесса загрузки. Количество используемых секторов легко может быть вычислено из размера файла [.filename]#/boot/boot#. +Концептуально первая и вторая стадии являются частью одной программы и расположены в одной области диска. Из-за ограничений по объёму они были разделены на две части, но всегда устанавливаются вместе. Они копируются из объединённого файла [.filename]#/boot/boot# с помощью установщика FreeBSD или `bsdlabel`. -[.filename]#boot1# очень прост, так как он не может иметь размер, превышающий 512 байт, и знает лишь о _метке диска_ FreeBSD, хранящей информацию о слайсе, для того, чтобы найти и запустить [.filename]#boot2#. +Эти два этапа расположены за пределами файловых систем, в первом треке загрузочного раздела, начиная с первого сектора. Именно здесь boot0 или любой другой загрузчик ожидает найти программу для запуска, которая продолжит процесс загрузки. -[.filename]#boot2# устроен несколько более сложно, и умеет работать с файловой системой FreeBSD в объёме, достаточном для нахождения в ней файлов, и может предоставлять простой интерфейс для выбора и передачи управления ядру или загрузчику. +Первая стадия, [.filename]#boot1#, очень проста, так как её размер может составлять только 512 байт. Она знает ровно столько о _bsdlabel_ FreeBSD, в котором хранится информация о слайсе, чтобы найти и выполнить [.filename]#boot2#. -Так как <<boot-loader,загрузчик>> устроен гораздо более сложно, и дает удобный и простой способ настройки процесса загрузки, [.filename]#boot2# обычно запускает его, однако раньше его задачей был запуск непосредственно самого ядра. +Этап два, [.filename]#boot2#, немного сложнее и понимает файловую систему FreeBSD достаточно хорошо, чтобы находить файлы. Он может предоставить простой интерфейс для выбора ядра или загрузчика для запуска. Он запускает loader, который гораздо более продвинут и предоставляет файл конфигурации загрузки. Если процесс загрузки прерывается на втором этапе, отображается следующий интерактивный экран: [[boot-boot2-example]] -.Образец экрана [.filename]#boot2# +.Экран [.filename]#boot2# [example] ==== -[source,shell] +[source, shell] .... >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/boot/loader @@ -165,318 +154,229 @@ boot: ==== -Если вам когда-либо понадобится заменить установленные [.filename]#boot1# и [.filename]#boot2#, то используйте утилиту man:bsdlabel[8]: +Для замены установленных [.filename]#boot1# и [.filename]#boot2# используйте `bsdlabel`, где _diskslice_ — это диск и раздел, с которого производится загрузка, например [.filename]#ad0s1# для первого раздела на первом IDE-диске: -[source,shell] +[source, shell] .... # bsdlabel -B diskslice .... -Здесь _diskslice_ являются диском и слайсом, с которых вы загружаетесь, например, [.filename]#ad0s1# в случае первого слайса на первом диске IDE. - [WARNING] -.Режим Dangerously Dedicated ==== -Если вы используете только имя диска, к примеру, [.filename]#ad0#, в команде man:bsdlabel[8] вы создадите диск в режиме эксклюзивного использования, без слайсов. Это, скорее всего, вовсе не то, что вы хотите сделать, так что дважды проверьте параметры команды man:bsdlabel[8], прежде, чем нажать kbd:[Return]. +Если указано только имя диска, например [.filename]#ad0#, `bsdlabel` создаст диск в «опасном выделенном режиме» (dangerously dedicated mode) без разделов. Вероятно, это нежелательное действие, поэтому дважды проверьте _дисковый раздел_ перед нажатием kbd:[Enter]. ==== [[boot-loader]] -=== Третий этап, [.filename]#/boot/loader# +=== Этап три -Передача управления загрузчику является последним, третьим этапом в процессе начальной загрузки, а сам загрузчик находится в файловой системе, обычно как [.filename]#/boot/loader#. +Загрузчик является завершающим этапом трёхэтапного процесса начальной загрузки. Он располагается в файловой системе, обычно как [.filename]#/boot/loader#. -Загрузчик являет собой удобный в использовании инструмент для настройки при помощи простого набора команд, управляемого более мощным интерпретатором с более сложным набором команд. +Загрузчик предназначен для интерактивной настройки с использованием встроенного набора команд, а также поддерживается более мощным интерпретатором с расширенным набором команд. -[[boot-loader-flow]] -==== Процесс работы загрузчика +Во время инициализации загрузчик определит консоль и диски, а также выяснит, с какого диска происходит загрузка. Он установит соответствующие переменные и запустит интерпретатор, в котором пользовательские команды могут передаваться из скрипта или вводиться в интерактивном режиме. -Во время инициализации загрузчик пытается произвести поиск консоли, дисков и определить, с какого диска он был запущен. Соответствующим образом он задаёт значения переменных и запускает интерпретатор, которому могут передаваться пользовательские команды как из скрипта, так и в интерактивном режиме. +Затем загрузчик прочитает [.filename]#/boot/loader.rc#, который по умолчанию загружает [.filename]#/boot/defaults/loader.conf#, где задаются разумные значения по умолчанию для переменных, а также читает [.filename]#/boot/loader.conf# для локальных изменений этих переменных. После этого [.filename]#loader.rc# действует в соответствии с этими переменными, загружая выбранные модули и ядро. -Затем загрузчик читает файл [.filename]#/boot/loader.rc#, который по умолчанию использует файл [.filename]#/boot/defaults/loader.conf#, устанавливающий подходящие значения по умолчанию для переменных и читает файл [.filename]#/boot/loader.conf# для изменения в этих переменных. Затем с этими переменными работает [.filename]#loader.rc#, загружающий выбранные модули и ядро. - -И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу, ожидая нажатия клавиши, и загружает ядро, если этого не произошло. Если ожидание было прервано, пользователю выдается приглашение, которое воспринимает простой набор команд, с помощью которых пользователь может изменить значения переменных, выгрузить все модули, загрузить модули и окончательно продолжить процесс загрузки или перезагрузить машину. +Наконец, по умолчанию загрузчик ожидает нажатия клавиш в течение 10 секунд и загружает ядро, если не было прерывания. Если прерывание произошло, пользователю предоставляется командная строка, поддерживающая набор команд, где можно изменить переменные, выгрузить все модули, загрузить модули и, наконец, загрузить или перезагрузить систему. crossref:boot[boot-loader-commands,Встроенные команды загрузчика] перечисляет наиболее часто используемые команды загрузчика. Для полного описания всех доступных команд обратитесь к man:loader[8]. [[boot-loader-commands]] -==== Встроенные команды загрузчика - -Далее следуют наиболее часто используемые команды загрузчика. Полное описание всех имеющихся команд можно найти на странице справки о команде man:loader[8]. - -autoboot _секунды_:: -Продолжает загрузку ядра, если не будет прерван в течение указанного в секундах промежутка времени. Он выводит счетчик, и по умолчанию выдерживается интервал в 10 секунд. +.Встроенные команды загрузчика +[cols="20%,80%", frame="none", options="header"] +|=== +| Переменная +| Описание -boot [-параметры] [имя ядра]:: -Продолжить процесс загрузки указанного ядра, если оно было указано, и с указанными параметрами, если они были указаны. Загрузка и использование указанного ядра возможны лишь после выгрузки текущего ядра, а выгрузка текущего ядра производится командой _unload_. +|autoboot _секунды_ +|Продолжает загрузку ядра, если не прервано в течение указанного времени в секундах. Отображает обратный отсчет, а время по умолчанию составляет 10 секунд. -boot-conf:: -Повторно провести тот же самый процесс автоматической настройки модулей на основе переменных, что был произведен при загрузке. Это имеет смысл, если до этого вы выполнили команду `unload`, изменили некоторые переменные, например, наиболее часто меняемую `kernel`. +|boot [`-options`] [`kernelname`] +|Немедленно переходит к загрузке ядра с любыми указанными параметрами или именем ядра. Указание имени ядра в командной строке применимо только после выполнения команды `unload`. В противном случае будет использовано ранее загруженное ядро. Если _kernelname_ не указан полностью, поиск будет выполнен в _/boot/kernel_ и _/boot/modules_. -help [тема]:: -Вывод сообщений подсказки из файла [.filename]#/boot/loader.help#. Если в качестве темы указано слово `index`, то выводится список имеющихся тем. +|boot-conf +|Проходит ту же автоматическую настройку модулей на основе указанных переменных, чаще всего `kernel`. Имеет смысл только при использовании `unload` перед изменением некоторых переменных. -include _имя файла_ ...:: -Выполнить файл с указанным именем. Файл считывается и его содержимое интерпретируется строчка за строчкой. Ошибка приводит к немедленному прекращению выполнения команды include. +|help [`_тема_`] +|Показывает справочные сообщения, прочитанные из файла [.filename]#/boot/loader.help#. Если указана тема `index`, отображается список доступных тем. -load [-t тип] имя файла:: -Загружает ядро, модуль ядра или файл указанного типа с указанным именем. Все аргументы после имени файла передаются в файл. +|include `_имяфайла_` ... +|Читает указанный файл и обрабатывает его построчно. Ошибка немедленно останавливает `include`. -ls [-l] [маршрут]:: -Выводит список файлов по указанному маршруту или в корневом каталоге, если маршрут не был указан. Если указан параметр `-l`, будут выводиться и размеры файлов. +|load [-t ``_тип_``] `_имяфайла_` +|Загружает ядро, модуль ядра или файл указанного типа с заданным именем. Все аргументы после _имяфайла_ передаются файлу. Если _имяфайла_ не указано полностью, файл будет искаться в _/boot/kernel_ и _/boot/modules_. -lsdev [-v]:: -Выводится список всех устройств, с которых могут быть загружены модули. Если указан параметр `-v`, выводится дополнительная информация. +|ls [-l] [``_путь_``] +|Отображает список файлов в указанном пути или в корневом каталоге, если путь не указан. Если указан параметр `-l`, также будут показаны размеры файлов. -lsmod [-v]:: -Выводит список загруженных модулей. Если указан параметр `-v`, то выводится дополнительная информация. +|lsdev [`-v`] +|Перечисляет все устройства, с которых возможно загрузить модули. Если указан параметр `-v`, выводится более подробная информация. -more _имя файла_:: -Вывод указанного файла с паузой при выводе каждой строки `LINES`. +|lsmod [`-v`] +|Отображает загруженные модули. Если указан параметр `-v`, выводится более подробная информация. -reboot:: -Выполнить немедленную перезагрузку машины. +|more `_имяфайла_` +|Отображает указанные файлы с паузой после каждых `LINES` выведенных строк. -set _переменная_:: -Задает значения переменных окружения загрузчика. +|reboot +|Немедленно перезагружает систему. -unload:: -Удаление из памяти всех загруженных модулей. +|set `_variable_`, set `_variable=value_` +|Устанавливает указанные переменные окружения. -[[boot-loader-examples]] -==== Примеры использования загрузчика +|unload +|Удаляет все загруженные модули. +|=== -Вот несколько примеров практического использования загрузчика: +Вот несколько практических примеров использования загрузчика. Чтобы загрузить обычное ядро в однопользовательском режиме: -* Чтобы просто загрузить ваше ядро обычным образом, но в однопользовательском режиме: -+ -[source,shell] +[source, shell] .... boot -s .... -* Для выгрузки обычных ядра и модулей, а потом просто загрузить ваше старое (или другое) ядро: -+ -[source,shell] +Чтобы выгрузить обычное ядро и модули, а затем загрузить предыдущее или другое указанное ядро: + +[source, shell] .... -unload -load kernel.old + unload + load /путь/к/файлуядра .... -+ -Вы можете использовать [.filename]#kernel.GENERIC# для обозначения стандартного ядра, поставляемого на установочном диске, или [.filename]#kernel.old# для обращения к ранее установленному ядру (после того, как, например, вы обновили или отконфигурировали новое ядро). -+ -[NOTE] -==== -Для загрузки ваших обычных модулей с другим ядром используйте такие команды: -[source,shell] +Используйте полный путь [.filename]#/boot/GENERIC/kernel# для ссылки на стандартное ядро, поставляемое с установкой, или [.filename]#/boot/kernel.old/kernel# для ссылки на предыдущую версию ядра до обновления системы или до настройки собственного ядра. + +Используйте следующее для загрузки обычных модулей с другим ядром. Обратите внимание, что в этом случае не обязательно указывать полное имя: + +[source, shell] .... unload -set kernel="kernel.old" +set kernel="mykernel" boot-conf .... -==== +Для загрузки автоматизированного сценария конфигурации ядра: -* Для загрузки скрипта конфигурации ядра (автоматизированный скрипт, который выполняет то, что вы обычно делаете в конфигураторе ядра во время загрузки): -+ -[source,shell] +[source, shell] .... load -t userconfig_script /boot/kernel.conf .... -[[boot-splash]] -==== Загрузочные экранные заставки - -Заставка создает более привлекательный вид процесса загрузки по сравнению с традиционными сообщениями загрузки. Изображение заставки будет отображаться до тех пор, пока не придет очередь приглашения ввода логина на консоли или в менеджере дисплеев. - -Есть два базовых окружения во FreeBSD. Первое - это окружение командной строки текстовой виртуальной консоли. По завершении загрузки системы вам предоставляется консольное приглашение ввода логина. Второе окружение - это графическое окружение рабочего стола X11. После установки crossref:x11[x-install,X11] и одной из графических оболочек, таких как GNOME, KDE или XFce, становится возможным запуск рабочего стола Х11 командой `startx`. - -Некоторые пользователи предпочитают графический интерфейс входа традиционному текстовому приглашению ввода логина. Менеджеры экранов, наподобие XDM для Xorg, gdm для GNOME, kdm для KDE (а также другие, доступные из коллекции портов), изначально предоставляют графический интерфейс входа. После успешного входа в систему они запускают соответствующий оконный менеджер. - -В текстовом окружении экранная заставка скрывает все подробности процесса загрузки и сообщения стартовых скриптов до момента выдачи приглашения ввода логина. Если используется экранная заставка перед входом в графическое окружение, то пользователи получают визуально более чистый старт системы, чем-то напоминающий опыт работы с Microsoft(R) Windows(R) или с иной не unix-подобной системой. +[[boot-init]] +=== Последний этап -[[boot-splash-function]] -===== Экранная заставка в действии +После загрузки ядра с помощью `loader` или `boot2`, который обходит `loader`, оно проверяет флаги загрузки и при необходимости корректирует свое поведение. В crossref:boot[boot-kernel,Взаимодействие ядра во время загрузки] приведены часто используемые флаги загрузки. Дополнительную информацию о других флагах загрузки можно найти в man:boot[8]. -В качестве заставки можно использовать лишь содержащие 256 цветов изображения формата BMP ([.filename]#.bmp#) или изображения формата PCX ([.filename]#.pcx#) от ZSoft. К тому же, для вывода на стандартный VGA адаптер, файл изображения заставки должен иметь разрешение не более 320 на 200 пикселей. +[[boot-kernel]] +.Взаимодействие с ядром во время загрузки +[cols="1,1", frame="none", options="header"] +|=== +| Опция +| Описание -Чтобы можно было использовать изображения большего размера, вплоть до максимального 1024 на 768, активируйте поддержку VESA. Активация может быть осуществлена либо подключением модуля VESA во время загрузки системы, либо сборкой специализированного ядра с добавленной опцией `VESA` (смотрите crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]). Поддержка режима VESA дает пользователям возможность отображать заставку, перекрывающую всю видимую область экрана. +|`-a` +|Во время инициализации ядра запросить устройство для монтирования в качестве корневой файловой системы. -Отображаемая во время загрузки заставка может быть убрана нажатием любой клавиши на клавиатуре. +|`-C` +|Загрузка корневой файловой системы с CDROM. -С настройками по умолчанию заставка также становится хранителем экрана в консольном окружении. После некоторого бездействия экран сменится заставкой, яркость которой будет периодически изменяться от её максимального значения к минимальному и обратно. Подобное поведение заставки может быть переопределено добавлением строки `saver=` в [.filename]#/etc/rc.conf#. В качестве значения опции `saver=` можно выбрать одно из встроенных имен хранителей экранов, а с полным перечнем можно ознакомиться на странице справочника man:splash[4]. Хранитель экрана, используемый по умолчанию, называется "warp". Заметьте, что установка опции `saver=` в [.filename]#/etc/rc.conf# воздействует исключительно на текстовые виртуальные консоли. Она не влияет на менеджеры экранов X11. +|`-s` +|Загрузится в однопользовательский режим. -Несколько сообщений загрузчика, включая меню загрузки и счетчик, отображаются во время загрузки, даже если экран-заставка активирован. +|`-v` +|Более подробный вывод во время загрузки ядра. +|=== -Файлы-примеры с изображениями для заставок могут быть скачаны из галереи по адресу http://artwork.freebsdgr.org/node/3/[http://artwork.freebsdgr.org]. Установив порт package:sysutils/bsd-splash-changer[], между загрузками вы получите автоматическую смену случайно выбираемых изображений заставок. +После завершения загрузки ядро передает управление пользовательскому процессу man:init[8], который находится в [.filename]#/sbin/init#, или программе, указанной в переменной `init_path` в `loader`. Это последний этап процесса загрузки. -[[boot-splash-enable]] -===== Активация экранной заставки +Последовательность загрузки гарантирует, что файловые системы, доступные в системе, находятся в согласованном состоянии. Если файловая система UFS не согласована и `fsck` не может исправить несоответствия, init переводит систему в однопользовательский режим, чтобы администратор системы мог устранить проблему вручную. В противном случае система загружается в многопользовательский режим. -Файл изображения для заставки ([.filename]#.bmp# или [.filename]#.pcx#) следует разместить в корневой файловой системе, например в каталоге [.filename]#/boot#. +[[boot-singleuser]] +==== Однопользовательский режим -Для работы заставки с разрешением, доступным при загрузке (256 цветов и не более 320х200 точек), отредактируйте [.filename]#/boot/loader.conf#, добавив в него следующие строки: +Пользователь может указать этот режим, загрузившись с ключом `-s` или установив переменную `boot_single` в загрузчике. Также можно перейти в этот режим, выполнив команду `shutdown now` из многопользовательского режима. Однопользовательский режим начинается со следующего сообщения: [.programlisting] .... -splash_bmp_load="YES" -bitmap_load="YES" -bitmap_name="/boot/splash.bmp" +Enter full pathname of shell or RETURN for /bin/sh: .... -Для получения больших разрешений видео режима (вплоть до максимального 1024x768), внесите в [.filename]#/boot/loader.conf# следующие записи: +Если пользователь нажмёт kbd:[Enter], система запустит оболочку Bourne по умолчанию. Чтобы указать другую оболочку, введите полный путь к ней. -[.programlisting] -.... -vesa_load="YES" -splash_bmp_load="YES" -bitmap_load="YES" -bitmap_name="/boot/splash.bmp" -.... +Однопользовательский режим обычно используется для восстановления системы, которая не загружается из-за несогласованности файловой системы или ошибки в конфигурационном файле загрузки. Он также может применяться для сброса пароля `root`, если он неизвестен. Эти действия возможны, поскольку приглашение однопользовательского режима предоставляет полный локальный доступ к системе и её конфигурационным файлам. В этом режиме отсутствует сетевое взаимодействие. + +Хотя однопользовательский режим полезен для восстановления системы, он представляет угрозу безопасности, если система не находится в физически защищенном месте. По умолчанию любой пользователь, имеющий физический доступ к системе, получит полный контроль над ней после загрузки в однопользовательском режиме. -Вышеприведённый пример подразумевает, что файл [.filename]#/boot/splash.bmp# содержит изображение заставки. Если же требуется выводить файл формата PCX, то используйте следующие строки (в зависимости от необходимого разрешения может также потребоваться строка `vesa_load="YES"`): +Если в [.filename]#/etc/ttys# параметр `console` изменён на `insecure`, система сначала запросит пароль `root` перед переходом в однопользовательский режим. Это добавляет уровень безопасности, но лишает возможности сбросить пароль `root`, если он неизвестен. +[[boot-insecure-console]] +.Настройка небезопасной консоли в [.filename]#/etc/ttys# +[example] +==== [.programlisting] .... -splash_pcx_load="YES" -bitmap_load="YES" -bitmap_name="/boot/splash.pcx" +# 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 insecure .... -Возможное имя файла не ограничено одним лишь словом "splash". Оно может выбираться произвольно, например: [.filename]#splash_640x400.bmp# или [.filename]#blue_wave.pcx#. Важен лишь тип файла: он должен быть либо BMP, либо PCX. - -Далее приведены еще две полезные опции [.filename]#loader.conf#: - -`beastie_disable="YES"`:: -Эта опция отключит меню загрузчика, но приглашение с обратным отсчетом останется. Даже при не отображаемом меню во время отсчета возможен выбор номера варианта загрузки. - -`loader_logo="beastie"`:: -Эта установка заменит слова "FreeBSD", которые отображаются справа от меню загрузчика, цветным логотипом демона, который занимал это место в предыдущих релизах FreeBSD. - -За более детальной информацией обратитесь к следующим страницам справочника: man:splash[4], man:loader.conf[5] и man:vga[4]. - -[[boot-kernel]] -== Взаимодействие с ядром во время загрузки - -Как только ядро окажется загруженным при помощи <<boot-loader,загрузчика>> (обычный способ) или <<boot-boot1,boot2>> (минуя загрузчик), оно проверяет флаги загрузки, если они есть, и действует соответствующим образом. - -[[boot-kernel-bootflags]] -=== Флаги загрузки ядра - -Вот наиболее часто используемые флаги загрузки: - -`-a`:: -во время инициализации ядра запрашивать устройство для его монтирования в качестве корневой файловой системы. +==== -`-C`:: -загрузка с компакт-диска. +`insecure` консоль означает, что физическая безопасность консоли считается ненадежной, поэтому только тот, кто знает пароль `root`, может использовать однопользовательский режим. -`-c`:: -запустить UserConfig для конфигурации ядра во время загрузки +[[boot-multiuser]] +==== Многопользовательский режим -`-s`:: -после загрузки перейти в однопользовательский режим +Если `init` обнаруживает, что файловые системы в порядке, или после того, как пользователь завершит свои команды в однопользовательском режиме и введёт `exit` для выхода из этого режима, система переходит в многопользовательский режим, в котором начинается настройка ресурсов системы. -`-v`:: -во время запуска ядра выводить более подробную информацию +Система конфигурации ресурсов загружает настройки по умолчанию из [.filename]#/etc/defaults/rc.conf# и специфичные для системы параметры из [.filename]#/etc/rc.conf#. Затем она монтирует файловые системы, перечисленные в [.filename]#/etc/fstab#. После этого запускаются сетевые службы, различные системные демоны, а затем скрипты запуска локально установленных пакетов. -[NOTE] -==== -Есть и другие флаги загрузки, обратитесь к странице справочника по man:boot[8] для выяснения подробной информации по ним. -==== +Чтобы узнать больше о системе настройки ресурсов, обратитесь к man:rc[8] и изучите скрипты в [.filename]#/etc/rc.d#. [[device-hints]] -== Хинты устройств +== Подсказки устройств -Во время начального запуска системы загрузчик man:loader[8] производит чтение файла man:device.hints[5]. В этом файле хранится необходимая для загрузки ядра информация, задаваемая в виде переменных, которую иногда называют хинтами для устройств ("device hints"). Эти "хинты устройств" используются драйверами устройств для их конфигурации. +Во время начальной загрузки системы загрузчик man:loader[8] читает файл man:device.hints[5]. Этот файл хранит информацию о загрузке ядра, известную как переменные, иногда называемые "подсказками устройств" ("device hints"). Эти "подсказки устройств" используются драйверами устройств для их конфигурации. -Хинты для устройств могут быть также заданы в приглашении <<boot-loader,начального загрузчика Стадии 3>>. Переменные могут быть добавлены при помощи команды `set`, удалены посредством `unset` и просмотрены командой `show`. В этот момент могут быть также переопределены переменные, заданные в файле [.filename]#/boot/device.hints#. Хинты для устройств, введённые в начальном загрузчике, не сохраняются, и при следующей перезагрузке будут утеряны. +Подсказки для устройств также могут быть указаны в строке загрузчика на Этапе 3, как показано в crossref:boot[boot-loader, Третий Этап]. Переменные можно добавить с помощью `set`, удалить с помощью `unset` и просмотреть с помощью `show`. Переменные, заданные в [.filename]#/boot/device.hints#, также могут быть переопределены. Подсказки для устройств, введённые в загрузчике, не являются постоянными и не будут применены при следующей перезагрузке. -После загрузки системы для выдачи значений всех переменных можно воспользоваться командой man:kenv[1]. +После загрузки системы все переменные можно вывести с помощью man:kenv[1]. -Синтаксически в файле [.filename]#/boot/device.hints# в каждой строке определяется по одной переменной, в качестве метки начала комментария используется стандартный символ "#". Строки строятся следующим образом: +Синтаксис для [.filename]#/boot/device.hints# — одна переменная на строку, символ "#" используется для комментариев. Строки формируются следующим образом: -[source,shell] +[source, shell] .... hint.driver.unit.keyword="value" .... -Синтаксис для начального загрузчика Стадии 3 таков: +Синтаксис загрузчика Этапа 3 следующий: -[source,shell] +[source, shell] .... set hint.driver.unit.keyword=value .... -`driver` определяет имя драйвера устройства, `unit` соответствует порядковому номеру модуля устройства, а `keyword` является ключевым словом хинта. В качестве ключевых слов могут применяться следующие опции: - -* `at`: задаёт шину, к которой подключено устройство. -* `port`: задаёт начальный адрес используемого диапазона ввода/вывода (I/O). -* `irq`: задаёт используемый номер запроса на прерывание. -* `drq`: задаёт номер канала DMA. -* `maddr`: задаёт физический адрес памяти, занимаемый устройством. -* `flags`: устанавливает различные битовые флаги для устройства. -* `disabled`: если установлено в значение "1", то устройство не используется. - -Драйверы устройств могут поддерживать (и даже требовать) другие хинты, здесь не перечисленные, поэтому рекомендуется просматривать справочные страницы по этим драйверам. Для получения дополнительной информации обратитесь к страницам справки по man:device.hints[5], man:kenv[1], man:loader.conf[5] и man:loader[8]. - -[[boot-init]] -== Init: инициализация управления процессами - -После того, как ядро завершит загрузку, оно передает управление пользовательскому процессу man:init[8], который расположен в файле [.filename]#/sbin/init# или в файле, маршрут к которому указан в переменной `init_path загрузчика`. - -[[boot-autoreboot]] -=== Процесс автоматической перезагрузки - -Процесс автоматической перезагрузки проверяет целостность имеющихся файловых систем. Если это не так, и утилита man:fsck[8] не может исправить положение, то man:init[8] переводит систему в <<boot-singleuser,однопользовательский режим>> для того, чтобы системный администратор сам разобрался с возникающими проблемами. - -[[boot-singleuser]] -=== Однопользовательский режим +где `driver` — это имя драйвера устройства, `unit` — номер устройства драйвера, а `keyword` — ключевое слово подсказки. Ключевое слово может включать следующие варианты: -В этот режим можно перейти во время <<boot-autoreboot,процесса автоматической перезагрузки>>, при ручной загрузке с параметром `-s` или заданием переменной `boot_single` для программы `loader`. +* `at`: указывает шину, к которой подключено устройство. +* `port`: указывает начальный адрес ввода-вывода, который будет использоваться. +* `irq`: указывает номер запроса на прерывание, который должен использоваться. +* `drq`: указывает номер канала DMA. +* `maddr`: указывает физический адрес памяти, занятый устройством. +* `flags`: устанавливает различные биты флагов для устройства. +* `disabled`: если установлено в `1`, устройство отключено. -Этот режим может быть также вызван запуском программы man:shutdown[8] без параметров перезагрузки (`-r`) или останова (`-h`) из <<boot-multiuser,многопользовательского режима>>. - -Если режим доступа к системной консоли `console` установлен в файле [.filename]#/etc/ttys# в `insecure`, то система выведет запрос на ввод пароля пользователя `root` перед переходом в однопользовательский режим. - -[[boot-insecure-console]] -.Незащищённая консоль в [.filename]#/etc/ttys# -[example] -==== -[.programlisting] -.... -# name getty type status comments -# -# Если консоль помечена как "insecure", то init будет запрашивать пароль -# пользователя root при переходе в однопользовательский режим. -console none unknown off insecure -.... - -==== - -[NOTE] -==== -Обозначение консоли как `insecure` означает, что вы считаете физический доступ к консоли незащищённым, и хотите, чтобы только тот, кто знает пароль пользователя `root`, мог воспользоваться однопользовательским режимом, но это не значит, что вы хотите работать с консолью небезопасным способом. Таким образом, если вы хотите добиться защищённости, указывайте `insecure`, а не `secure`. -==== - -[[boot-multiuser]] -=== Многопользовательский режим - -Если man:init[8] определит, что ваши файловые системы находятся в полном порядке, или после того, как пользователь выйдет из <<boot-singleuser,однопользовательского режима>>, система перейдет в многопользовательский режим, работа в котором начинается с настройки ресурсов системы. - -[[boot-rc]] -==== Настройка ресурсов (rc) - -Система настройки ресурсов считывает настройки, применяемые по умолчанию, из файла [.filename]#/etc/defaults/rc.conf#, а настройки, специфичные для конкретной системы, из [.filename]#/etc/rc.conf#, после чего осуществляется монтирование файловых систем, перечисленных в файле [.filename]#/etc/fstab#, запуск сетевых служб, различных системных даемонов и, наконец, выполнение скриптов запуска дополнительно установленных пакетов. - -Страница справочника по man:rc[8] является хорошим источником информации о системе настройки ресурсов, так же, как и самостоятельное изучение скриптов. +Поскольку драйверы устройств могут принимать или требовать дополнительные подсказки, не перечисленные здесь, рекомендуется ознакомиться с руководством по конкретному драйверу. Для получения дополнительной информации обратитесь к man:device.hints[5], man:kenv[1], man:loader.conf[5] и man:loader[8]. [[boot-shutdown]] -== Процесс остановки системы +== Последовательность выключения + +При контролируемом завершении работы с помощью man:shutdown[8], man:init[8] попытается выполнить скрипт [.filename]#/etc/rc.shutdown#, а затем отправит всем процессам сигнал `TERM`, и после этого сигнал `KILL` всем процессам, которые не завершатся своевременно. -Во время контролируемого процесса остановки системы через утилиту man:shutdown[8] программа man:init[8] будет пытаться запустить скрипт [.filename]#/etc/rc.shutdown#, после чего будет посылать всем процессам сигнал `TERM`, а затем и `KILL` тем процессам, которые ещё не завершили свою работу. +Для выключения питания машины FreeBSD на архитектурах и системах, поддерживающих управление питанием, используйте `shutdown -p now`, чтобы немедленно отключить питание. Для перезагрузки системы FreeBSD используйте `shutdown -r now`. Для выполнения man:shutdown[8] необходимо быть `root` или членом группы `operator`. Также можно использовать man:halt[8] и man:reboot[8]. Дополнительную информацию см. на их справочных страницах и в man:shutdown[8]. -Для выключения машины с FreeBSD на аппаратных платформах и системах, которые поддерживают управление электропитанием, просто воспользуйтесь командой `shutdown -p now` для немедленного отключения электропитания. Чтобы просто перезагрузить систему FreeBSD, воспользуйтесь командой `shutdown -r now`. Для запуска команды man:shutdown[8] вам необходимо быть пользователем `root` или членом группы `operator`. Кроме того, можно также воспользоваться командами man:halt[8] и man:reboot[8], пожалуйста, обратитесь к соответствующим страницам справки и справочной странице по команде man:shutdown[8] для получения дополнительной информации. +Измените членство в группе, обратившись к разделу crossref:basics[users-synopsis,«Пользователи и основы управления учетными записями»]. [NOTE] ==== -Для управления электропитанием требуется наличие поддержки man:acpi[4] в ядре или в виде загруженного модуля. +Управление питанием требует, чтобы модуль man:acpi[4] был загружен как модуль или статически скомпилирован в собственное ядро. ==== diff --git a/documentation/content/ru/books/handbook/boot/_index.po b/documentation/content/ru/books/handbook/boot/_index.po new file mode 100644 index 0000000000..c62637540e --- /dev/null +++ b/documentation/content/ru/books/handbook/boot/_index.po @@ -0,0 +1,1260 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-09-05 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookboot_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/boot/_index.adoc:1 +#, no-wrap +msgid "An introduction to the FreeBSD Booting Process, demonstrates how to customize the FreeBSD boot process, including everything that happens until the FreeBSD kernel has started, probed for devices, and started init" +msgstr "В этой главе описывается процесс загрузки FreeBSD и способы его настройки. Рассматриваются все этапы — от начальной загрузки до момента, когда ядро FreeBSD завершает инициализацию, определяет оборудование и запускает процесс init" + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/boot/_index.adoc:1 +#, no-wrap +msgid "Part III. System Administration" +msgstr "Часть III. Администрирование системы" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/boot/_index.adoc:1 +#, no-wrap +msgid "Chapter 15. The FreeBSD Booting Process" +msgstr "Глава 15. Процесс загрузки FreeBSD" + +#. type: Title = +#: documentation/content/en/books/handbook/boot/_index.adoc:15 +#, no-wrap +msgid "The FreeBSD Booting Process" +msgstr "Процесс загрузки FreeBSD" + +#. type: Title == +#: documentation/content/en/books/handbook/boot/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:57 +msgid "" +"The process of starting a computer and loading the operating system is " +"referred to as \"the bootstrap process\", or \"booting\". FreeBSD's boot " +"process provides a great deal of flexibility in customizing what happens " +"when the system starts, including the ability to select from different " +"operating systems installed on the same computer, different versions of the " +"same operating system, or a different installed kernel." +msgstr "" +"Процесс запуска компьютера и загрузки операционной системы называется " +"\"процессом начальной загрузки\" или \"загрузкой\". Процесс загрузки FreeBSD " +"предоставляет большую гибкость в настройке действий при старте системы, " +"включая возможность выбора между различными операционными системами, " +"установленными на одном компьютере, разными версиями одной операционной " +"системы или другим установленным ядром." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:61 +msgid "" +"This chapter details the configuration options that can be set. It " +"demonstrates how to customize the FreeBSD boot process, including everything " +"that happens until the FreeBSD kernel has started, probed for devices, and " +"started man:init[8]. This occurs when the text color of the boot messages " +"changes from bright white to grey." +msgstr "" +"Эта глава подробно описывает доступные параметры конфигурации. В ней " +"показано, как настроить процесс загрузки FreeBSD, включая все этапы до " +"момента, когда ядро FreeBSD запустится, определит устройства и запустит " +"man:init[8]. Это происходит, когда цвет текста загрузочных сообщений " +"меняется с ярко-белого на серый." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:63 +msgid "After reading this chapter, you will recognize:" +msgstr "Прочитав эту главу, вы узнаете:" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:65 +msgid "The components of the FreeBSD bootstrap system and how they interact." +msgstr "Компоненты загрузочной системы FreeBSD и их взаимодействие." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:66 +msgid "" +"The options that can be passed to the components in the FreeBSD bootstrap in " +"order to control the boot process." +msgstr "" +"Параметры, которые можно передать компонентам в процессе загрузки FreeBSD " +"для управления процессом загрузки." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:67 +msgid "The basics of setting device hints." +msgstr "Основы настройки подсказок устройств." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:68 +msgid "" +"How to boot into single- and multi-user mode and how to properly shut down a " +"FreeBSD system." +msgstr "" +"Как загрузиться в однопользовательском и многопользовательском режимах и как " +"правильно завершить работу системы FreeBSD." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:72 +msgid "" +"This chapter only describes the boot process for FreeBSD running on x86 and " +"amd64 systems." +msgstr "" +"Эта глава описывает только процесс загрузки FreeBSD на системах с " +"архитектурой x86 и amd64." + +#. type: Title == +#: documentation/content/en/books/handbook/boot/_index.adoc:75 +#, no-wrap +msgid "FreeBSD Boot Process" +msgstr "Процесс загрузки FreeBSD" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:81 +msgid "" +"Turning on a computer and starting the operating system poses an interesting " +"dilemma. By definition, the computer does not know how to do anything until " +"the operating system is started. This includes running programs from the " +"disk. If the computer can not run a program from the disk without the " +"operating system, and the operating system programs are on the disk, how is " +"the operating system started?" +msgstr "" +"Включение компьютера и запуск операционной системы представляет собой " +"интересную дилемму. По определению, компьютер не умеет ничего делать до " +"запуска операционной системы. Это включает в себя запуск программ с диска. " +"Если компьютер не может запустить программу с диска без операционной " +"системы, а программы операционной системы находятся на диске, то как же " +"тогда запускается операционная система?" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:86 +msgid "" +"This problem parallels one in the book The Adventures of Baron Munchausen. " +"A character had fallen part way down a manhole, and pulled himself out by " +"grabbing his bootstraps and lifting. In the early days of computing, the " +"term _bootstrap_ was applied to the mechanism used to load the operating " +"system. It has since become shortened to \"booting\"." +msgstr "" +"Эта проблема аналогична описанной в книге «Приключения барона Мюнхгаузена». " +"Персонаж частично провалился в люк, но смог выбраться, ухватившись за шнурки " +"своих сапог и подтянув себя вверх. В первые дни развития вычислительной " +"техники термин **_bootstrap_** применялся к механизму загрузки операционной " +"системы. Со временем он сократился до «**загрузки**» (англ. \"booting\")." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:90 +msgid "" +"On x86 hardware, the Basic Input/Output System (BIOS) is responsible for " +"loading the operating system. The BIOS looks on the hard disk for the " +"Master Boot Record (MBR), which must be located in a specific place on the " +"disk. The BIOS has enough knowledge to load and run the MBR, and assumes " +"that the MBR can then carry out the rest of the tasks involved in loading " +"the operating system, possibly with the help of the BIOS." +msgstr "" +"На аппаратном обеспечении x86 загрузка операционной системы выполняется " +"базовой системой ввода/вывода (BIOS). BIOS ищет на жестком диске главную " +"загрузочную запись (MBR), которая должна находиться в определенном месте " +"диска. BIOS обладает достаточными знаниями для загрузки и запуска MBR и " +"предполагает, что MBR затем сможет выполнить остальные задачи по загрузке " +"операционной системы, возможно, с помощью BIOS." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:97 +msgid "" +"FreeBSD provides for booting from both the older MBR standard, and the newer " +"GUID Partition Table (GPT). GPT partitioning is often found on computers " +"with the Unified Extensible Firmware Interface (UEFI). However, FreeBSD can " +"boot from GPT partitions even on machines with only a legacy BIOS with " +"man:gptboot[8]. Work is under way to provide direct UEFI booting." +msgstr "" +"FreeBSD поддерживает загрузку как по старому стандарту MBR, так и по новому " +"стандарту GUID Partition Table (GPT). Разметка GPT часто встречается на " +"компьютерах с Unified Extensible Firmware Interface (UEFI). Однако FreeBSD " +"может загружаться с разделов GPT даже на машинах с устаревшим BIOS, " +"используя man:gptboot[8]. Ведутся работы по обеспечению прямой загрузки " +"через UEFI." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:102 +msgid "" +"The code within the MBR is typically referred to as a _boot manager_, " +"especially when it interacts with the user. The boot manager usually has " +"more code in the first track of the disk or within the file system. " +"Examples of boot managers include the standard FreeBSD boot manager boot0, " +"also called Boot Easy, and GNU GRUB, which is used by many Linux(R) " +"distributions." +msgstr "" +"Код в MBR обычно называют _загрузчиком_, особенно если он взаимодействует с " +"пользователем. Загрузчик обычно содержит больше кода в первом треке диска " +"или в файловой системе. Примерами загрузчиков являются стандартный загрузчик " +"FreeBSD boot0, также называемый Boot Easy, и GNU GRUB, который используется " +"во многих дистрибутивах Linux(R)." + +#. There is extref:{faq}[a frequently asked question] about GRUB. Beyond the answer there, // +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:107 +msgid "" +"Users of GRUB should refer to https://www.gnu.org/software/grub/grub-" +"documentation.html[GNU-provided documentation]." +msgstr "" +"Пользователи GRUB могут обратиться к https://www.gnu.org/software/grub/grub-" +"documentation.html[документации от GNU]." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:111 +msgid "" +"If only one operating system is installed, the MBR searches for the first " +"bootable (active) slice on the disk, and then runs the code on that slice to " +"load the remainder of the operating system. When multiple operating systems " +"are present, a different boot manager can be installed to display a list of " +"operating systems so the user can select one to boot." +msgstr "" +"Если на компьютере установлена только одна операционная система, MBR ищет " +"первый загрузочный (активный) раздел на диске, а затем запускает код в этом " +"разделе для загрузки остальной части операционной системы. При наличии " +"нескольких операционных систем можно установить другой загрузчик, который " +"отобразит список операционных систем, позволяя пользователю выбрать нужную " +"для загрузки." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:118 +msgid "" +"The remainder of the FreeBSD bootstrap system is divided into three stages. " +"The first stage knows just enough to get the computer into a specific state " +"and run the second stage. The second stage can do a little bit more, before " +"running the third stage. The third stage finishes the task of loading the " +"operating system. The work is split into three stages because the MBR puts " +"limits on the size of the programs that can be run at stages one and two. " +"Chaining the tasks together allows FreeBSD to provide a more flexible loader." +msgstr "" +"Оставшаяся часть загрузочной системы FreeBSD разделена на три этапа. Первый " +"этап знает ровно столько, чтобы перевести компьютер в определённое состояние " +"и запустить второй этап. Второй этап может выполнить немного больше, прежде " +"чем запустить третий этап. Третий этап завершает загрузку операционной " +"системы. Работа разделена на три этапа, потому что MBR накладывает " +"ограничения на размер программ, которые могут быть выполнены на первом и " +"втором этапах. Объединение задач в цепочку позволяет FreeBSD предоставить " +"более гибкий загрузчик." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:121 +msgid "" +"The kernel is then started and begins to probe for devices and initialize " +"them for use. Once the kernel boot process is finished, the kernel passes " +"control to the user process man:init[8], which makes sure the disks are in a " +"usable state, starts the user-level resource configuration which mounts file " +"systems, sets up network cards to communicate on the network, and starts the " +"processes which have been configured to run at startup." +msgstr "" +"Затем запускается ядро, которое начинает поиск и инициализацию устройств для " +"их использования. После завершения процесса загрузки ядра управление " +"передаётся пользовательскому процессу man:init[8], который проверяет " +"готовность дисков к работе, запускает пользовательскую настройку ресурсов, " +"монтирует файловые системы, настраивает сетевые карты для работы в сети и " +"запускает процессы, запланированные для выполнения при старте системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:123 +msgid "" +"This section describes these stages in more detail and demonstrates how to " +"interact with the FreeBSD boot process." +msgstr "" +"Этот раздел подробно описывает эти этапы и показывает, как взаимодействовать " +"с процессом загрузки FreeBSD." + +#. type: Title === +#: documentation/content/en/books/handbook/boot/_index.adoc:125 +#, no-wrap +msgid "The Boot Manager" +msgstr "Загрузчик" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:129 +msgid "" +"The boot manager code in the MBR is sometimes referred to as _stage zero_ of " +"the boot process. By default, FreeBSD uses the boot0 boot manager." +msgstr "" +"Код загрузчика в MBR иногда называют _нулевой стадией_ процесса загрузки. По " +"умолчанию FreeBSD использует загрузчик boot0." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:133 +msgid "" +"The MBR installed by the FreeBSD installer is based on [.filename]#/boot/" +"boot0#. The size and capability of boot0 is restricted to 446 bytes due to " +"the slice table and `0x55AA` identifier at the end of the MBR. If boot0 and " +"multiple operating systems are installed, a message similar to this example " +"will be displayed at boot time:" +msgstr "" +"MBR, записываемый установщиком FreeBSD, основан на [.filename]#/boot/boot0#. " +"Размер и возможности boot0 ограничены 446 байтами из-за таблицы разделов и " +"идентификатора `0x55AA` в конце MBR. Если установлены boot0 и несколько " +"операционных систем, при загрузке будет отображаться сообщение, похожее на " +"этот пример:" + +#. type: Block title +#: documentation/content/en/books/handbook/boot/_index.adoc:135 +#, no-wrap +msgid "[.filename]#boot0# Screenshot" +msgstr "Экран [.filename]#boot0#" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:143 +#, no-wrap +msgid "" +"F1 Win\n" +"F2 FreeBSD\n" +msgstr "" +"F1 Win\n" +"F2 FreeBSD\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:145 +#, no-wrap +msgid "Default: F2\n" +msgstr "Default: F2\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:151 +msgid "" +"Other operating systems will overwrite an existing MBR if they are installed " +"after FreeBSD. If this happens, or to replace the existing MBR with the " +"FreeBSD MBR, use the following command:" +msgstr "" +"Другие операционные системы перезапишут существующую MBR, если они " +"установлены после FreeBSD. Если это произошло или требуется заменить " +"существующую MBR на MBR FreeBSD, используйте следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:155 +#, no-wrap +msgid "# fdisk -B -b /boot/boot0 device\n" +msgstr "# fdisk -B -b /boot/boot0 device\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:159 +msgid "" +"where _device_ is the boot disk, such as [.filename]#ad0# for the first IDE " +"disk, [.filename]#ad2# for the first IDE disk on a second IDE controller, or " +"[.filename]#da0# for the first SCSI disk. To create a custom configuration " +"of the MBR, refer to man:boot0cfg[8]." +msgstr "" +"где _device_ — это загрузочный диск, например, [.filename]#ad0# для первого " +"IDE-диска, [.filename]#ad2# для первого IDE-диска на втором IDE-контроллере " +"или [.filename]#da0# для первого SCSI-диска. Для создания пользовательской " +"конфигурации MBR обратитесь к man:boot0cfg[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/boot/_index.adoc:161 +#, no-wrap +msgid "Stage One and Stage Two" +msgstr "Этап первый и Этап второй" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:166 +msgid "" +"Conceptually, the first and second stages are part of the same program on " +"the same area of the disk. Due to space constraints, they have been split " +"into two, but are always installed together. They are copied from the " +"combined [.filename]#/boot/boot# by the FreeBSD installer or `bsdlabel`." +msgstr "" +"Концептуально первая и вторая стадии являются частью одной программы и " +"расположены в одной области диска. Из-за ограничений по объёму они были " +"разделены на две части, но всегда устанавливаются вместе. Они копируются из " +"объединённого файла [.filename]#/boot/boot# с помощью установщика FreeBSD " +"или `bsdlabel`." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:169 +msgid "" +"These two stages are located outside file systems, in the first track of the " +"boot slice, starting with the first sector. This is where boot0, or any " +"other boot manager, expects to find a program to run which will continue the " +"boot process." +msgstr "" +"Эти два этапа расположены за пределами файловых систем, в первом треке " +"загрузочного раздела, начиная с первого сектора. Именно здесь boot0 или " +"любой другой загрузчик ожидает найти программу для запуска, которая " +"продолжит процесс загрузки." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:172 +msgid "" +"The first stage, [.filename]#boot1#, is very simple, since it can only be " +"512 bytes in size. It knows just enough about the FreeBSD _bsdlabel_, which " +"stores information about the slice, to find and execute [.filename]#boot2#." +msgstr "" +"Первая стадия, [.filename]#boot1#, очень проста, так как её размер может " +"составлять только 512 байт. Она знает ровно столько о _bsdlabel_ FreeBSD, в " +"котором хранится информация о слайсе, чтобы найти и выполнить " +"[.filename]#boot2#." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:177 +msgid "" +"Stage two, [.filename]#boot2#, is slightly more sophisticated, and " +"understands the FreeBSD file system enough to find files. It can provide a " +"simple interface to choose the kernel or loader to run. It runs loader, " +"which is much more sophisticated and provides a boot configuration file. If " +"the boot process is interrupted at stage two, the following interactive " +"screen is displayed:" +msgstr "" +"Этап два, [.filename]#boot2#, немного сложнее и понимает файловую систему " +"FreeBSD достаточно хорошо, чтобы находить файлы. Он может предоставить " +"простой интерфейс для выбора ядра или загрузчика для запуска. Он запускает " +"loader, который гораздо более продвинут и предоставляет файл конфигурации " +"загрузки. Если процесс загрузки прерывается на втором этапе, отображается " +"следующий интерактивный экран:" + +#. type: Block title +#: documentation/content/en/books/handbook/boot/_index.adoc:179 +#, no-wrap +msgid "[.filename]#boot2# Screenshot" +msgstr "Экран [.filename]#boot2#" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:188 +#, no-wrap +msgid "" +">> FreeBSD/i386 BOOT\n" +"Default: 0:ad(0,a)/boot/loader\n" +"boot:\n" +msgstr "" +">> FreeBSD/i386 BOOT\n" +"Default: 0:ad(0,a)/boot/loader\n" +"boot:\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:193 +msgid "" +"To replace the installed [.filename]#boot1# and [.filename]#boot2#, use " +"`bsdlabel`, where _diskslice_ is the disk and slice to boot from, such as " +"[.filename]#ad0s1# for the first slice on the first IDE disk:" +msgstr "" +"Для замены установленных [.filename]#boot1# и [.filename]#boot2# используйте " +"`bsdlabel`, где _diskslice_ — это диск и раздел, с которого производится " +"загрузка, например [.filename]#ad0s1# для первого раздела на первом IDE-" +"диске:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:197 +#, no-wrap +msgid "# bsdlabel -B diskslice\n" +msgstr "# bsdlabel -B diskslice\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:203 +msgid "" +"If just the disk name is used, such as [.filename]#ad0#, `bsdlabel` will " +"create the disk in \"dangerously dedicated mode\", without slices. This is " +"probably not the desired action, so double check the _diskslice_ before " +"pressing kbd:[Return]." +msgstr "" +"Если указано только имя диска, например [.filename]#ad0#, `bsdlabel` создаст " +"диск в «опасном выделенном режиме» (dangerously dedicated mode) без " +"разделов. Вероятно, это нежелательное действие, поэтому дважды проверьте " +"_дисковый раздел_ перед нажатием kbd:[Enter]." + +#. type: Title === +#: documentation/content/en/books/handbook/boot/_index.adoc:206 +#, no-wrap +msgid "Stage Three" +msgstr "Этап три" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:210 +msgid "" +"The loader is the final stage of the three-stage bootstrap process. It is " +"located on the file system, usually as [.filename]#/boot/loader#." +msgstr "" +"Загрузчик является завершающим этапом трёхэтапного процесса начальной " +"загрузки. Он располагается в файловой системе, обычно как [.filename]#/boot/" +"loader#." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:212 +msgid "" +"The loader is intended as an interactive method for configuration, using a " +"built-in command set, backed up by a more powerful interpreter which has a " +"more complex command set." +msgstr "" +"Загрузчик предназначен для интерактивной настройки с использованием " +"встроенного набора команд, а также поддерживается более мощным " +"интерпретатором с расширенным набором команд." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:215 +msgid "" +"During initialization, loader will probe for a console and for disks, and " +"figure out which disk it is booting from. It will set variables " +"accordingly, and an interpreter is started where user commands can be passed " +"from a script or interactively." +msgstr "" +"Во время инициализации загрузчик определит консоль и диски, а также выяснит, " +"с какого диска происходит загрузка. Он установит соответствующие переменные " +"и запустит интерпретатор, в котором пользовательские команды могут " +"передаваться из скрипта или вводиться в интерактивном режиме." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:218 +msgid "" +"The loader will then read [.filename]#/boot/loader.rc#, which by default " +"reads in [.filename]#/boot/defaults/loader.conf# which sets reasonable " +"defaults for variables and reads [.filename]#/boot/loader.conf# for local " +"changes to those variables. [.filename]#loader.rc# then acts on these " +"variables, loading whichever modules and kernel are selected." +msgstr "" +"Затем загрузчик прочитает [.filename]#/boot/loader.rc#, который по умолчанию " +"загружает [.filename]#/boot/defaults/loader.conf#, где задаются разумные " +"значения по умолчанию для переменных, а также читает [.filename]#/boot/" +"loader.conf# для локальных изменений этих переменных. После этого " +"[.filename]#loader.rc# действует в соответствии с этими переменными, " +"загружая выбранные модули и ядро." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:223 +msgid "" +"Finally, by default, loader issues a 10 second wait for key presses, and " +"boots the kernel if it is not interrupted. If interrupted, the user is " +"presented with a prompt which understands the command set, where the user " +"may adjust variables, unload all modules, load modules, and then finally " +"boot or reboot. crossref:boot[boot-loader-commands,Loader Built-In " +"Commands] lists the most commonly used loader commands. For a complete " +"discussion of all available commands, refer to man:loader[8]." +msgstr "" +"Наконец, по умолчанию загрузчик ожидает нажатия клавиш в течение 10 секунд и " +"загружает ядро, если не было прерывания. Если прерывание произошло, " +"пользователю предоставляется командная строка, поддерживающая набор команд, " +"где можно изменить переменные, выгрузить все модули, загрузить модули и, " +"наконец, загрузить или перезагрузить систему. crossref:boot[boot-loader-" +"commands,Встроенные команды загрузчика] перечисляет наиболее часто " +"используемые команды загрузчика. Для полного описания всех доступных команд " +"обратитесь к man:loader[8]." + +#. type: Block title +#: documentation/content/en/books/handbook/boot/_index.adoc:225 +#, no-wrap +msgid "Loader Built-In Commands" +msgstr "Встроенные команды загрузчика" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:229 +#, no-wrap +msgid "Variable" +msgstr "Переменная" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:231 +#: documentation/content/en/books/handbook/boot/_index.adoc:320 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:232 +#, no-wrap +msgid "autoboot _seconds_" +msgstr "autoboot _секунды_" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:234 +#, no-wrap +msgid "Proceeds to boot the kernel if not interrupted within the time span given, in seconds. It displays a countdown, and the default time span is 10 seconds." +msgstr "Продолжает загрузку ядра, если не прервано в течение указанного времени в секундах. Отображает обратный отсчет, а время по умолчанию составляет 10 секунд." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:235 +#, no-wrap +msgid "boot [`-options`] [`kernelname`]" +msgstr "boot [`-options`] [`kernelname`]" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:237 +#, no-wrap +msgid "Immediately proceeds to boot the kernel, with any specified options or kernel name. Providing a kernel name on the command-line is only applicable after an `unload` has been issued. Otherwise, the previously-loaded kernel will be used. If _kernelname_ is not qualified, it will be searched under _/boot/kernel_ and _/boot/modules_." +msgstr "Немедленно переходит к загрузке ядра с любыми указанными параметрами или именем ядра. Указание имени ядра в командной строке применимо только после выполнения команды `unload`. В противном случае будет использовано ранее загруженное ядро. Если _kernelname_ не указан полностью, поиск будет выполнен в _/boot/kernel_ и _/boot/modules_." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:238 +#, no-wrap +msgid "boot-conf" +msgstr "boot-conf" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:240 +#, no-wrap +msgid "Goes through the same automatic configuration of modules based on specified variables, most commonly `kernel`. This only makes sense if `unload` is used first, before changing some variables." +msgstr "Проходит ту же автоматическую настройку модулей на основе указанных переменных, чаще всего `kernel`. Имеет смысл только при использовании `unload` перед изменением некоторых переменных." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:241 +#, no-wrap +msgid "help [`_topic_`]" +msgstr "help [`_тема_`]" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:243 +#, no-wrap +msgid "Shows help messages read from [.filename]#/boot/loader.help#. If the topic given is `index`, the list of available topics is displayed." +msgstr "Показывает справочные сообщения, прочитанные из файла [.filename]#/boot/loader.help#. Если указана тема `index`, отображается список доступных тем." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:244 +#, no-wrap +msgid "include `_filename_` ..." +msgstr "include `_имяфайла_` ..." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:246 +#, no-wrap +msgid "Reads the specified file and interprets it line by line. An error immediately stops the `include`." +msgstr "Читает указанный файл и обрабатывает его построчно. Ошибка немедленно останавливает `include`." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:247 +#, no-wrap +msgid "load [-t ``_type_``] `_filename_`" +msgstr "load [-t ``_тип_``] `_имяфайла_`" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:249 +#, no-wrap +msgid "Loads the kernel, kernel module, or file of the type given, with the specified filename. Any arguments after _filename_ are passed to the file. If _filename_ is not qualified, it will be searched under _/boot/kernel_ and _/boot/modules_." +msgstr "Загружает ядро, модуль ядра или файл указанного типа с заданным именем. Все аргументы после _имяфайла_ передаются файлу. Если _имяфайла_ не указано полностью, файл будет искаться в _/boot/kernel_ и _/boot/modules_." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:250 +#, no-wrap +msgid "ls [-l] [``_path_``]" +msgstr "ls [-l] [``_путь_``]" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:252 +#, no-wrap +msgid "Displays a listing of files in the given path, or the root directory, if the path is not specified. If `-l` is specified, file sizes will also be shown." +msgstr "Отображает список файлов в указанном пути или в корневом каталоге, если путь не указан. Если указан параметр `-l`, также будут показаны размеры файлов." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:253 +#, no-wrap +msgid "lsdev [`-v`]" +msgstr "lsdev [`-v`]" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:255 +#, no-wrap +msgid "Lists all of the devices from which it may be possible to load modules. If `-v` is specified, more details are printed." +msgstr "Перечисляет все устройства, с которых возможно загрузить модули. Если указан параметр `-v`, выводится более подробная информация." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:256 +#, no-wrap +msgid "lsmod [`-v`]" +msgstr "lsmod [`-v`]" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:258 +#, no-wrap +msgid "Displays loaded modules. If `-v` is specified, more details are shown." +msgstr "Отображает загруженные модули. Если указан параметр `-v`, выводится более подробная информация." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:259 +#, no-wrap +msgid "more `_filename_`" +msgstr "more `_имяфайла_`" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:261 +#, no-wrap +msgid "Displays the files specified, with a pause at each `LINES` displayed." +msgstr "Отображает указанные файлы с паузой после каждых `LINES` выведенных строк." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:262 +#, no-wrap +msgid "reboot" +msgstr "reboot" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:264 +#, no-wrap +msgid "Immediately reboots the system." +msgstr "Немедленно перезагружает систему." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:265 +#, no-wrap +msgid "set `_variable_`, set `_variable=value_`" +msgstr "set `_variable_`, set `_variable=value_`" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:267 +#, no-wrap +msgid "Sets the specified environment variables." +msgstr "Устанавливает указанные переменные окружения." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:268 +#, no-wrap +msgid "unload" +msgstr "unload" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:269 +#, no-wrap +msgid "Removes all loaded modules." +msgstr "Удаляет все загруженные модули." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:273 +msgid "" +"Here are some practical examples of loader usage. To boot the usual kernel " +"in single-user mode:" +msgstr "" +"Вот несколько практических примеров использования загрузчика. Чтобы " +"загрузить обычное ядро в однопользовательском режиме:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:277 +#, no-wrap +msgid " boot -s\n" +msgstr " boot -s\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:280 +msgid "" +"To unload the usual kernel and modules and then load the previous or " +"another, specified kernel:" +msgstr "" +"Чтобы выгрузить обычное ядро и модули, а затем загрузить предыдущее или " +"другое указанное ядро:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:285 +#, no-wrap +msgid "" +" unload\n" +" load /path/to/kernelfile\n" +msgstr "" +" unload\n" +" load /путь/к/файлуядра\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:288 +msgid "" +"Use the qualified [.filename]#/boot/GENERIC/kernel# to refer to the default " +"kernel that comes with an installation, or [.filename]#/boot/kernel.old/" +"kernel#, to refer to the previously installed kernel before a system upgrade " +"or before configuring a custom kernel." +msgstr "" +"Используйте полный путь [.filename]#/boot/GENERIC/kernel# для ссылки на " +"стандартное ядро, поставляемое с установкой, или [.filename]#/boot/" +"kernel.old/kernel# для ссылки на предыдущую версию ядра до обновления " +"системы или до настройки собственного ядра." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:291 +msgid "" +"Use the following to load the usual modules with another kernel. Note that " +"in this case it is not necessary the qualified name:" +msgstr "" +"Используйте следующее для загрузки обычных модулей с другим ядром. Обратите " +"внимание, что в этом случае не обязательно указывать полное имя:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:297 +#, no-wrap +msgid "" +"unload\n" +"set kernel=\"mykernel\"\n" +"boot-conf\n" +msgstr "" +"unload\n" +"set kernel=\"mykernel\"\n" +"boot-conf\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:300 +msgid "To load an automated kernel configuration script:" +msgstr "Для загрузки автоматизированного сценария конфигурации ядра:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:304 +#, no-wrap +msgid " load -t userconfig_script /boot/kernel.conf\n" +msgstr " load -t userconfig_script /boot/kernel.conf\n" + +#. type: Title === +#: documentation/content/en/books/handbook/boot/_index.adoc:307 +#, no-wrap +msgid "Last Stage" +msgstr "Последний этап" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:312 +msgid "" +"Once the kernel is loaded by either loader or by boot2, which bypasses " +"loader, it examines any boot flags and adjusts its behavior as necessary. " +"crossref:boot[boot-kernel,Kernel Interaction During Boot] lists the commonly " +"used boot flags. Refer to man:boot[8] for more information on the other " +"boot flags." +msgstr "" +"После загрузки ядра с помощью `loader` или `boot2`, который обходит " +"`loader`, оно проверяет флаги загрузки и при необходимости корректирует свое " +"поведение. В crossref:boot[boot-kernel,Взаимодействие ядра во время " +"загрузки] приведены часто используемые флаги загрузки. Дополнительную " +"информацию о других флагах загрузки можно найти в man:boot[8]." + +#. type: Block title +#: documentation/content/en/books/handbook/boot/_index.adoc:314 +#, no-wrap +msgid "Kernel Interaction During Boot" +msgstr "Взаимодействие с ядром во время загрузки" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:318 +#, no-wrap +msgid "Option" +msgstr "Опция" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:321 +#, no-wrap +msgid "`-a`" +msgstr "`-a`" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:323 +#, no-wrap +msgid "During kernel initialization, ask for the device to mount as the root file system." +msgstr "Во время инициализации ядра запросить устройство для монтирования в качестве корневой файловой системы." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:324 +#, no-wrap +msgid "`-C`" +msgstr "`-C`" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:326 +#, no-wrap +msgid "Boot the root file system from a CDROM." +msgstr "Загрузка корневой файловой системы с CDROM." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:327 +#, no-wrap +msgid "`-s`" +msgstr "`-s`" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:329 +#, no-wrap +msgid "Boot into single-user mode." +msgstr "Загрузится в однопользовательский режим." + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:330 +#, no-wrap +msgid "`-v`" +msgstr "`-v`" + +#. type: Table +#: documentation/content/en/books/handbook/boot/_index.adoc:331 +#, no-wrap +msgid "Be more verbose during kernel startup." +msgstr "Более подробный вывод во время загрузки ядра." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:335 +msgid "" +"Once the kernel has finished booting, it passes control to the user process " +"man:init[8], which is located at [.filename]#/sbin/init#, or the program " +"path specified in the `init_path` variable in `loader`. This is the last " +"stage of the boot process." +msgstr "" +"После завершения загрузки ядро передает управление пользовательскому " +"процессу man:init[8], который находится в [.filename]#/sbin/init#, или " +"программе, указанной в переменной `init_path` в `loader`. Это последний этап " +"процесса загрузки." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:339 +msgid "" +"The boot sequence makes sure that the file systems available on the system " +"are consistent. If a UFS file system is not, and `fsck` cannot fix the " +"inconsistencies, init drops the system into single-user mode so that the " +"system administrator can resolve the problem directly. Otherwise, the " +"system boots into multi-user mode." +msgstr "" +"Последовательность загрузки гарантирует, что файловые системы, доступные в " +"системе, находятся в согласованном состоянии. Если файловая система UFS не " +"согласована и `fsck` не может исправить несоответствия, init переводит " +"систему в однопользовательский режим, чтобы администратор системы мог " +"устранить проблему вручную. В противном случае система загружается в " +"многопользовательский режим." + +#. type: Title ==== +#: documentation/content/en/books/handbook/boot/_index.adoc:341 +#, no-wrap +msgid "Single-User Mode" +msgstr "Однопользовательский режим" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:346 +msgid "" +"A user can specify this mode by booting with `-s` or by setting the " +"`boot_single` variable in loader. It can also be reached by running " +"`shutdown now` from multi-user mode. Single-user mode begins with this " +"message:" +msgstr "" +"Пользователь может указать этот режим, загрузившись с ключом `-s` или " +"установив переменную `boot_single` в загрузчике. Также можно перейти в этот " +"режим, выполнив команду `shutdown now` из многопользовательского режима. " +"Однопользовательский режим начинается со следующего сообщения:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:350 +#, no-wrap +msgid "Enter full pathname of shell or RETURN for /bin/sh:\n" +msgstr "Enter full pathname of shell or RETURN for /bin/sh:\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:354 +msgid "" +"If the user presses kbd:[Enter], the system will enter the default Bourne " +"shell. To specify a different shell, input the full path to the shell." +msgstr "" +"Если пользователь нажмёт kbd:[Enter], система запустит оболочку Bourne по " +"умолчанию. Чтобы указать другую оболочку, введите полный путь к ней." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:359 +msgid "" +"Single-user mode is usually used to repair a system that will not boot due " +"to an inconsistent file system or an error in a boot configuration file. It " +"can also be used to reset the `root` password when it is unknown. These " +"actions are possible as the single-user mode prompt gives full, local access " +"to the system and its configuration files. There is no networking in this " +"mode." +msgstr "" +"Однопользовательский режим обычно используется для восстановления системы, " +"которая не загружается из-за несогласованности файловой системы или ошибки в " +"конфигурационном файле загрузки. Он также может применяться для сброса " +"пароля `root`, если он неизвестен. Эти действия возможны, поскольку " +"приглашение однопользовательского режима предоставляет полный локальный " +"доступ к системе и её конфигурационным файлам. В этом режиме отсутствует " +"сетевое взаимодействие." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:362 +msgid "" +"While single-user mode is useful for repairing a system, it poses a security " +"risk unless the system is in a physically secure location. By default, any " +"user who can gain physical access to a system will have full control of that " +"system after booting into single-user mode." +msgstr "" +"Хотя однопользовательский режим полезен для восстановления системы, он " +"представляет угрозу безопасности, если система не находится в физически " +"защищенном месте. По умолчанию любой пользователь, имеющий физический доступ " +"к системе, получит полный контроль над ней после загрузки в " +"однопользовательском режиме." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:365 +msgid "" +"If the system `console` is changed to `insecure` in [.filename]#/etc/ttys#, " +"the system will first prompt for the `root` password before initiating " +"single-user mode. This adds a measure of security while removing the " +"ability to reset the `root` password when it is unknown." +msgstr "" +"Если в [.filename]#/etc/ttys# параметр `console` изменён на `insecure`, " +"система сначала запросит пароль `root` перед переходом в " +"однопользовательский режим. Это добавляет уровень безопасности, но лишает " +"возможности сбросить пароль `root`, если он неизвестен." + +#. type: Block title +#: documentation/content/en/books/handbook/boot/_index.adoc:367 +#, no-wrap +msgid "Configuring an Insecure Console in [.filename]#/etc/ttys#" +msgstr "Настройка небезопасной консоли в [.filename]#/etc/ttys#" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:377 +#, no-wrap +msgid "" +"# name getty type status comments\n" +"#\n" +"# If console is marked \"insecure\", then init will ask for the root password\n" +"# when going to single-user mode.\n" +"console none unknown off insecure\n" +msgstr "" +"# name getty type status comments\n" +"#\n" +"# If console is marked \"insecure\", then init will ask for the root password\n" +"# when going to single-user mode.\n" +"console none unknown off insecure\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:382 +msgid "" +"An `insecure` console means that physical security to the console is " +"considered to be insecure, so only someone who knows the `root` password may " +"use single-user mode." +msgstr "" +"`insecure` консоль означает, что физическая безопасность консоли считается " +"ненадежной, поэтому только тот, кто знает пароль `root`, может использовать " +"однопользовательский режим." + +#. type: Title ==== +#: documentation/content/en/books/handbook/boot/_index.adoc:384 +#, no-wrap +msgid "Multi-User Mode" +msgstr "Многопользовательский режим" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:387 +msgid "" +"If init finds the file systems to be in order, or once the user has finished " +"their commands in single-user mode and has typed `exit` to leave single-user " +"mode, the system enters multi-user mode, in which it starts the resource " +"configuration of the system." +msgstr "" +"Если `init` обнаруживает, что файловые системы в порядке, или после того, " +"как пользователь завершит свои команды в однопользовательском режиме и " +"введёт `exit` для выхода из этого режима, система переходит в " +"многопользовательский режим, в котором начинается настройка ресурсов системы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:391 +msgid "" +"The resource configuration system reads in configuration defaults from " +"[.filename]#/etc/defaults/rc.conf# and system-specific details from " +"[.filename]#/etc/rc.conf#. It then proceeds to mount the system file " +"systems listed in [.filename]#/etc/fstab#. It starts up networking " +"services, miscellaneous system daemons, then the startup scripts of locally " +"installed packages." +msgstr "" +"Система конфигурации ресурсов загружает настройки по умолчанию из " +"[.filename]#/etc/defaults/rc.conf# и специфичные для системы параметры из " +"[.filename]#/etc/rc.conf#. Затем она монтирует файловые системы, " +"перечисленные в [.filename]#/etc/fstab#. После этого запускаются сетевые " +"службы, различные системные демоны, а затем скрипты запуска локально " +"установленных пакетов." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:393 +msgid "" +"To learn more about the resource configuration system, refer to man:rc[8] " +"and examine the scripts located in [.filename]#/etc/rc.d#." +msgstr "" +"Чтобы узнать больше о системе настройки ресурсов, обратитесь к man:rc[8] и " +"изучите скрипты в [.filename]#/etc/rc.d#." + +#. type: Title == +#: documentation/content/en/books/handbook/boot/_index.adoc:395 +#, no-wrap +msgid "Device Hints" +msgstr "Подсказки устройств" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:400 +msgid "" +"During initial system startup, the boot man:loader[8] reads " +"man:device.hints[5]. This file stores kernel boot information known as " +"variables, sometimes referred to as \"device hints\". These \"device " +"hints\" are used by device drivers for device configuration." +msgstr "" +"Во время начальной загрузки системы загрузчик man:loader[8] читает файл " +"man:device.hints[5]. Этот файл хранит информацию о загрузке ядра, известную " +"как переменные, иногда называемые \"подсказками устройств\" (\"device " +"hints\"). Эти \"подсказки устройств\" используются драйверами устройств для " +"их конфигурации." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:406 +msgid "" +"Device hints may also be specified at the Stage 3 boot loader prompt, as " +"demonstrated in crossref:boot[boot-loader, Stage Three]. Variables can be " +"added using `set`, removed with `unset`, and viewed `show`. Variables set " +"in [.filename]#/boot/device.hints# can also be overridden. Device hints " +"entered at the boot loader are not permanent and will not be applied on the " +"next reboot." +msgstr "" +"Подсказки для устройств также могут быть указаны в строке загрузчика на " +"Этапе 3, как показано в crossref:boot[boot-loader, Третий Этап]. Переменные " +"можно добавить с помощью `set`, удалить с помощью `unset` и просмотреть с " +"помощью `show`. Переменные, заданные в [.filename]#/boot/device.hints#, " +"также могут быть переопределены. Подсказки для устройств, введённые в " +"загрузчике, не являются постоянными и не будут применены при следующей " +"перезагрузке." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:408 +msgid "" +"Once the system is booted, man:kenv[1] can be used to dump all of the " +"variables." +msgstr "" +"После загрузки системы все переменные можно вывести с помощью man:kenv[1]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:411 +msgid "" +"The syntax for [.filename]#/boot/device.hints# is one variable per line, " +"using the hash \"#\" as comment markers. Lines are constructed as follows:" +msgstr "" +"Синтаксис для [.filename]#/boot/device.hints# — одна переменная на строку, " +"символ \"#\" используется для комментариев. Строки формируются следующим " +"образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:415 +#, no-wrap +msgid " hint.driver.unit.keyword=\"value\"\n" +msgstr " hint.driver.unit.keyword=\"value\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:418 +msgid "The syntax for the Stage 3 boot loader is:" +msgstr "Синтаксис загрузчика Этапа 3 следующий:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:422 +#, no-wrap +msgid " set hint.driver.unit.keyword=value\n" +msgstr " set hint.driver.unit.keyword=value\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:426 +msgid "" +"where `driver` is the device driver name, `unit` is the device driver unit " +"number, and `keyword` is the hint keyword. The keyword may consist of the " +"following options:" +msgstr "" +"где `driver` — это имя драйвера устройства, `unit` — номер устройства " +"драйвера, а `keyword` — ключевое слово подсказки. Ключевое слово может " +"включать следующие варианты:" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:428 +msgid "`at`: specifies the bus which the device is attached to." +msgstr "`at`: указывает шину, к которой подключено устройство." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:429 +msgid "`port`: specifies the start address of the I/O to be used." +msgstr "" +"`port`: указывает начальный адрес ввода-вывода, который будет использоваться." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:430 +msgid "`irq`: specifies the interrupt request number to be used." +msgstr "" +"`irq`: указывает номер запроса на прерывание, который должен использоваться." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:431 +msgid "`drq`: specifies the DMA channel number." +msgstr "`drq`: указывает номер канала DMA." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:432 +msgid "`maddr`: specifies the physical memory address occupied by the device." +msgstr "`maddr`: указывает физический адрес памяти, занятый устройством." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:433 +msgid "`flags`: sets various flag bits for the device." +msgstr "`flags`: устанавливает различные биты флагов для устройства." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:434 +msgid "`disabled`: if set to `1` the device is disabled." +msgstr "`disabled`: если установлено в `1`, устройство отключено." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:437 +msgid "" +"Since device drivers may accept or require more hints not listed here, " +"viewing a driver's manual page is recommended. For more information, refer " +"to man:device.hints[5], man:kenv[1], man:loader.conf[5], and man:loader[8]." +msgstr "" +"Поскольку драйверы устройств могут принимать или требовать дополнительные " +"подсказки, не перечисленные здесь, рекомендуется ознакомиться с руководством " +"по конкретному драйверу. Для получения дополнительной информации обратитесь " +"к man:device.hints[5], man:kenv[1], man:loader.conf[5] и man:loader[8]." + +#. type: Title == +#: documentation/content/en/books/handbook/boot/_index.adoc:439 +#, no-wrap +msgid "Shutdown Sequence" +msgstr "Последовательность выключения" + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:442 +msgid "" +"Upon controlled shutdown using man:shutdown[8], man:init[8] will attempt to " +"run the script [.filename]#/etc/rc.shutdown#, and then proceed to send all " +"processes the `TERM` signal, and subsequently the `KILL` signal to any that " +"do not terminate in a timely manner." +msgstr "" +"При контролируемом завершении работы с помощью man:shutdown[8], man:init[8] " +"попытается выполнить скрипт [.filename]#/etc/rc.shutdown#, а затем отправит " +"всем процессам сигнал `TERM`, и после этого сигнал `KILL` всем процессам, " +"которые не завершатся своевременно." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:448 +msgid "" +"To power down a FreeBSD machine on architectures and systems that support " +"power management, use `shutdown -p now` to turn the power off immediately. " +"To reboot a FreeBSD system, use `shutdown -r now`. One must be `root` or a " +"member of `operator` in order to run man:shutdown[8]. One can also use " +"man:halt[8] and man:reboot[8]. Refer to their manual pages and to " +"man:shutdown[8] for more information." +msgstr "" +"Для выключения питания машины FreeBSD на архитектурах и системах, " +"поддерживающих управление питанием, используйте `shutdown -p now`, чтобы " +"немедленно отключить питание. Для перезагрузки системы FreeBSD используйте " +"`shutdown -r now`. Для выполнения man:shutdown[8] необходимо быть `root` или " +"членом группы `operator`. Также можно использовать man:halt[8] и " +"man:reboot[8]. Дополнительную информацию см. на их справочных страницах и в " +"man:shutdown[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/boot/_index.adoc:450 +msgid "" +"Modify group membership by referring to crossref:basics[users-" +"synopsis,“Users and Basic Account Management”]." +msgstr "" +"Измените членство в группе, обратившись к разделу crossref:basics[users-" +"synopsis,«Пользователи и основы управления учетными записями»]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/boot/_index.adoc:454 +msgid "" +"Power management requires man:acpi[4] to be loaded as a module or statically " +"compiled into a custom kernel." +msgstr "" +"Управление питанием требует, чтобы модуль man:acpi[4] был загружен как " +"модуль или статически скомпилирован в собственное ядро." diff --git a/documentation/content/ru/books/handbook/bsdinstall/_index.adoc b/documentation/content/ru/books/handbook/bsdinstall/_index.adoc index 8cd7fd9604..698f65e12d 100644 --- a/documentation/content/ru/books/handbook/bsdinstall/_index.adoc +++ b/documentation/content/ru/books/handbook/bsdinstall/_index.adoc @@ -1,23 +1,25 @@ --- -title: Глава 3. Установка FreeBSD версий 9.X и более поздних -part: Часть I. В начале -prev: books/handbook/introduction +description: 'Руководство по установке FreeBSD, минимальным требованиям к оборудованию и поддерживаемым архитектурам, созданию установочного диска и так далее' next: books/handbook/basics -showBookMenu: true -weight: 5 params: - path: "/books/handbook/bsdinstall/" + path: /books/handbook/bsdinstall/ +part: 'В начале' +prev: books/handbook/introduction +showBookMenu: true +tags: ["bsdinstall", "installing FreeBSD", "requirements", "tutorial", "guide"] +title: 'Глава 2. Установка FreeBSD' +weight: 4 --- [[bsdinstall]] -= Установка FreeBSD версий 9.X и более поздних += Установка FreeBSD :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 3 +:sectnumoffset: 2 :partnums: :source-highlighter: rouge :experimental: @@ -48,729 +50,475 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] [[bsdinstall-synopsis]] -== Краткий обзор +== Обзор -FreeBSD поставляется с простой в использовании текстовой программой установки. FreeBSD 9.0-RELEASE и более поздние укомплектованы установщиком, называемым bsdinstall, в то время как в релизах, предшествующих FreeBSD 9.0-RELEASE, для установки используется sysinstall. В этом разделе описана работа с программой bsdinstall. Работа с установщиком sysinstall описана в crossref:install[install, Установка FreeBSD версий 8.X и более ранних]. +FreeBSD поддерживает различные архитектуры, включая amd64, ARM(R), RISC-V(R) и PowerPC(R). В зависимости от архитектуры и платформы, различные образы могут быть link:https://www.freebsd.org/where/[скачены] для установки или непосредственного запуска FreeBSD. -После прочтения этого раздела вы будете знать: +Типы образов: -* Как создавать установочные носители для FreeBSD. -* Разбиение и именование разделов жестких дисков во FreeBSD. -* Как запустить bsdinstall. -* Вопросы, задаваемые утилитой bsdinstall, что они значат и как на них отвечать. +* Диски образов виртуальных машин, такие как `qcow2`, `vmdk`, `vhd`, и образы raw-устройств. Это не установочные образы, а образы с предустановленной FreeBSD, готовые к выполнению задач после установки. Образы виртуальных машин также часто используются в облачных средах. +* Образы SD-карт для встраиваемых систем, таких как Raspberry Pi. Эти файлы необходимо распаковать и записать как сырой образ на SD-карту, с которой будет загружаться плата. +* Установочные образы для загрузки с ISO или USB-устройства, чтобы установить FreeBSD на диск для обычной настольной, портативной или серверной системы. -Перед прочтением этого раздела вам необходимо: +Остальная часть этой главы описывает третий случай, объясняя, как установить FreeBSD с использованием текстовой программы установки под названием `bsdinstall`. Между установщиком и тем, что показано здесь, могут быть незначительные различия, поэтому используйте эту главу как общее руководство, а не как точную инструкцию. -* Прочитать список поддерживаемого оборудования, который прилагается к устанавливаемой вами версии FreeBSD, а также убедиться, что ваше оборудование поддерживается. +Прочитав эту главу, вы будете знать: -[NOTE] -==== -В общем, эти инструкции по установке написаны для машин архитектуры i386(TM) ("PC-совместимая"). Там, где это необходимо, будут даны указания для других платформ. Между установщиком и этим документом могут быть незначительные различия, поэтому используйте эту главу как общее руководство, а не как точную пошаговую инструкцию. -==== +* Как получить образы FreeBSD и создать установочные носители FreeBSD. +* Как запустить bsdinstall. +* Вопросы, которые задаст bsdinstall, их значение и как на них отвечать. +* Как решить проблемы неудачной установки. +* Как получить доступ к свежей версии FreeBSD перед установкой системы. [[bsdinstall-hardware]] -== Аппаратные требования +== Минимальные требования к оборудованию -[[bsdinstall-hardware-minimal]] -=== Минимальная конфигурация - -Минимальная аппаратная конфигурация, достаточная для установки FreeBSD, зависит от версии FreeBSD и от аппаратной архитектуры. - -Краткое изложение этой информации дано в следующих разделах. В зависимости от способа установки FreeBSD вам также может потребоваться поддерживаемый привод CDROM, а в некоторых случаях - сетевой адаптер. Об этом будет сказано в <<bsdinstall-installation-media>>. - -==== FreeBSD/i386 - -Для FreeBSD/i386 необходим 486 процессор или выше, а также - как минимум 64 МБ ОЗУ. Для самой минимальной установки потребуется не менее 1.1 ГБ свободного места на жестком диске. - -[NOTE] -==== -Для устаревших компьютеров более эффективным способом повышения производительности является увеличение объема ОЗУ и объема жесткого диска, нежели установка более быстродействующего процессора. -==== - -==== FreeBSD/amd64 - -Существует два класса процессоров, на которых может работать FreeBSD/amd64. К первому принадлежат процессоры AMD64, включая AMD Athlon(TM)64, AMD Athlon(TM)64-FX, AMD Opteron(TM) и более новые. - -Ко второму классу процессоров, на которых работает FreeBSD/amd64, принадлежат процессоры архитектуры Intel(R) EM64T. Перечень процессоров включает следующие семейства: Intel(R) Core(TM) 2 Duo, Quad, Extreme, семейства Intel(R) Xeon(TM) 3000, 5000 и 7000, а также Intel(R) Core(TM) i3, i5 и i7. - -Если ваш компьютер построен на чипсете nVidia nForce3 Pro-150, то вам _необходимо_ отключить IO APIC в BIOS. Если для этого нет опции в BIOS, отключите ACPI в операционной системе. В чипсете Pro-150 содержатся ошибки, для которых пока не существует исправлений. - -==== FreeBSD/powerpc Apple(R) Macintosh(R) - -Поддерживаются все американские системы Apple(R) Macintosh(R) с встроенным USB. Для многопроцессорных машин есть поддержка SMP. - -Ядро (32-бит) может адресовать лишь первые 2 ГБ ОЗУ. На Blue & White PowerMac G3 не поддерживается FireWire(R). - -==== FreeBSD/sparc64 - -Поддерживаемые FreeBSD/sparc64 системы перечислены в проекте http://www.freebsd.org/platforms/sparc/[ FreeBSD/sparc64]. - -Для FreeBSD/sparc64 требуется отдельный жесткий диск. На данный момент нет возможности разделять диск с другой операционной системой. - -[[bsdinstall-hardware-supported]] -=== Поддерживаемое оборудование - -Архитектуры и устройства, поддерживаемые каждым релизом FreeBSD, перечислены в файле Hardware Notes. Файл, как правило, называется [.filename]#HARDWARE.TXT#, и располагается в корневом каталоге установочного носителя. Также копии списка поддерживаемого оборудования находятся на странице http://www.FreeBSD.org/releases/[Release Information] веб сайта FreeBSD. +Требования к оборудованию для установки FreeBSD зависят от архитектуры и версии. Поддерживаемые аппаратные архитектуры и устройства для выпуска FreeBSD перечислены на странице link:https://www.FreeBSD.org/releases/[FreeBSD Release Information]. На странице link:https://www.FreeBSD.org/where/[FreeBSD download page] также приведены рекомендации по выбору правильного образа для различных архитектур. [[bsdinstall-pre]] -== Перед установкой - -=== Сделайте резервные копии данных - -Сделайте резервные копии всех важных данных с того компьютера, на который планируется установка FreeBSD. Проверьте пригодность резервных копий до начала установки. Перед внесением изменений на диск инсталлятор FreeBSD запросит подтверждение, но как только изменения будут внесены, то отменить их уже будет невозможно. - -[[bsdinstall-where]] -=== Решите куда установить FreeBSD - -Если FreeBSD будет единственной установленной операционной системой, и она будет занимать весь жесткий диск, то можете смело пропустить этот раздел. Но если FreeBSD будет разделять диск с другими операционными системами, то во время установки вам понадобится понимание принципов разбиения дисков. +== Задачи перед установкой -[[bsdinstall-where-i386]] -==== Разделы диска для FreeBSD/i386 и FreeBSD/amd64 +После того как будет подтверждено, что система соответствует минимальным требованиям для установки FreeBSD, необходимо загрузить установочный файл и подготовить установочный носитель. -Весь объем жестких дисков может быть разделен на множество частей. Эти части называются _разделами_. - -Есть два способа деления диска на разделы. Традиционный способ - _Master Boot Record_ (MBR) - хранит таблицу разделов, вмещающую до четырех _первичных разделов_. (Так сложилось исторически, что во FreeBSD эти разделы называются _слайсами_.) Возможны ситуации, в которых четыре раздела недостаточно, поэтому один из первичных разделов может быть превращен в _расширенный раздел_. Внутри расширенного раздела может быть создано несколько _логических разделов_. Результирующая структура выглядит немного неуклюже, но такова она есть. - -Создание _Таблицы Разделов GUID_ (GUID Partition Table, GPT) - это более новый и простой способ деления диска. Также новый способ (GPT) по сравнению с традиционным способом разбиения (MBR) гораздо более гибкий. Распространённые реализации GPT позволяют создавать до 128 разделов на одном диске, тем самым исключая необходимость создания неудобных сущностей наподобие логических дисков. - -[WARNING] -==== - -Некоторые старые операционные системы, например Windows(R) XP, не совместимы со схемой GPT. Если на один диск необходимо установить FreeBSD совместно с такой операционной системой, то следует воспользоваться схемой MBR. -==== - -Стандартному загрузчику FreeBSD необходим первичный раздел (MBR) или GPT раздел. (Обратитесь к crossref:boot[boot, Процесс загрузки FreeBSD] за более подробной информацией о процессе загрузки FreeBSD.) Если все первичные или GPT разделы уже задействованы, то для FreeBSD один из них необходимо будет освободить. - -Минимальная установка FreeBSD занимает ни много ни мало - 1 ГБ дискового пространства. Однако, это _очень_ минимальная установка, практически не оставляющая свободного места. Более реалистичным минимумом является 3 ГБ без графической подсистемы, а если будет использоваться графическая подсистема, то 5 ГБ или более. Свободное пространство также потребуется приложениям от третьих лиц. - -Для создания разделов существует разнообразие свободно распространяемых и коммерческих http://en.wikipedia.org/wiki/List_of_disk_partitioning_software[утилит]. http://gparted.sourceforge.net/livecd.php[GParted Live] это свободно распространяемый загрузочный дистрибутив, в который включен редактор разделов GParted. Также GParted включен в многие другие дистрибутивы Live CD от Linux. - -[WARNING] +[TIP] ==== - -Утилиты для создания разделов могут повредить ваши данные. Поэтому сделайте полную резервную копию и проверьте её целостность перед модификацией разделов диска. +Рассмотрите возможность использования crossref:virtualization[virtualization,Виртуализации], если вы хотите использовать FreeBSD на системе, где уже установлена другая операционная система. ==== -Определенные трудности составляет изменение размеров разделов Microsoft(R) Vista. В таких случаях может пригодиться установочный CDROM от самой Microsoft(R) Vista. +Прежде чем перейти к установке, убедитесь, что система готова, проверив пункты из этого контрольного списка: -.Использование существующего раздела -[example] +[.procedure] ==== -Компьютер с ОС Windows(R) имеет жесткий диск размером 40 ГБ, диск разбит на два раздела по 20 ГБ. Windows(R) именует их дисками [.filename]#C:# и [.filename]#D:#. На диске [.filename]#C:# данными занято 10 ГБ, а на диске [.filename]#D:# - 5 ГБ. +. *Back Up Important Data* ++ +Перед установкой любой операционной системы *всегда* создавайте резервную копию всех важных данных. Не храните резервную копию на системе, на которую производится установка. Вместо этого сохраните данные на съемный диск, такой как USB-накопитель, другую систему в сети или в онлайн-сервис резервного копирования. Проверьте резервную копию перед началом установки, чтобы убедиться, что она содержит все необходимые файлы. После того как установщик отформатирует диск системы, все данные, хранящиеся на этом диске, будут потеряны. +. *Decide Where to Install FreeBSD* ++ +Если FreeBSD будет единственной операционной системой, этот шаг можно пропустить. Но если FreeBSD будет находиться на диске вместе с другой операционной системой, определите, какой диск или раздел будет использоваться для FreeBSD. ++ +В архитектурах i386 и amd64 диски могут быть разделены на несколько разделов с использованием одной из двух схем разделения. Традиционная _Главная загрузочная запись_ (MBR) содержит таблицу разделов, определяющую до четырёх _основных разделов_. По историческим причинам FreeBSD называет эти основные разделы _слайсами_. Один из этих основных разделов может быть преобразован в _расширенный раздел_, содержащий несколько _логических разделов_. _Таблица разделов GUID_ (GPT) — это более новый и простой метод разделения диска. Стандартные реализации GPT позволяют создавать до 128 разделов на диске, что устраняет необходимость в логических разделах. ++ +Загрузчик FreeBSD требует наличия либо первичного, либо GPT-раздела. Если все первичные или GPT-разделы уже заняты, необходимо освободить один для FreeBSD. Чтобы создать раздел без удаления существующих данных, используйте инструмент для изменения размера разделов, чтобы уменьшить существующий раздел и создать новый раздел, используя освободившееся пространство. ++ +Альтернативой изменению существующих разделов диска системы является использование crossref:virtualization[virtualization, Виртуализации], которая позволяет одновременно запускать несколько операционных систем без необходимости изменения разделов. ++ +Различные бесплатные и коммерческие инструменты для изменения размера разделов перечислены в статье link:https://en.wikipedia.org/wiki/List_of_disk_partitioning_software[Список программ для работы с разделами диска на Википедии]. link:https://gparted.org/livecd.php[GParted Live] — это бесплатный Live CD, включающий редактор разделов GParted. ++ +[WARNING] +====== +При правильном использовании утилиты для сжатия дисков могут безопасно освободить место для создания нового раздела. Поскольку существует вероятность выбора неправильного раздела, всегда создавайте резервные копии важных данных и проверяйте их целостность перед изменением разделов диска. +====== ++ +Разделы диска с разными операционными системами позволяют установить несколько операционных систем на один компьютер. +. *Collect Network Information* ++ +Некоторые методы установки FreeBSD требуют наличия сетевого подключения для загрузки файлов установки. После одного из этапов установки программа-установщик предложит настроить сетевые интерфейсы системы. ++ +Если в сети есть DHCP-сервер, его можно использовать для автоматической настройки сети. Если DHCP недоступен, следующую информацию о сети для системы необходимо получить у локального сетевого администратора или интернет-провайдера: ++ +[[bsdinstall-collect-network-information]] +Необходимая сетевая информация -Перемещение данных с диска [.filename]#D:# на диск [.filename]#C:# освобождает второй раздел для установки FreeBSD. -==== +.. IP-адрес +.. Маска подсети +.. IP-адрес шлюза по умолчанию +.. Доменное имя сети +.. IP-адреса DNS-серверов сети -.Уменьшение размера существующего раздела -[example] +. *Check for FreeBSD Errata* ++ +Хотя проект FreeBSD стремится к тому, чтобы каждая версия FreeBSD была максимально стабильной, иногда в процессе могут возникать ошибки. В очень редких случаях эти ошибки влияют на процесс установки. Когда такие проблемы обнаруживаются и исправляются, они отмечаются на странице FreeBSD Errata для каждой версии. Перед установкой проверьте список errata, чтобы убедиться в отсутствии проблем, которые могут повлиять на установку. ++ +Информация и список ошибок для всех выпусков доступны на странице link:https://www.FreeBSD.org/releases/[Информация о релизе FreeBSD]. ==== -Компьютер с ОС Windows(R) имеет жесткий диск размером 40 ГБ, на котором создан один большой раздел, занимающий весь жесткий диск. Windows(R) именует этот раздел диском [.filename]#C:#. На этом разделе данные занимают 15 ГБ. Конечная цель - отвести для Windows(R) раздел размером 20 ГБ, а второй раздел размером 20 ГБ задействовать для установки FreeBSD. - -Подобное перераспределение можно выполнить одним из двух способов: -. Сделайте резервную копию данных вашей Windows(R). Далее, переустановите Windows(R), создав во время инсталляции раздел размером 20 ГБ. -. Используйте утилиту редактирования разделов (наподобие GParted) для уменьшения раздела Windows(R), а в освободившемся пространстве создайте новый раздел для установки FreeBSD. - -==== +[[bsdinstall-installation-media]] +=== Подготовьте установочный носитель -Разделы диска, содержащие разные операционные системы, делают возможной загрузку по выбору одной из имеющихся операционных систем. Альтернативный способ, позволяющий загружать несколько операционных систем в одно и то же время, описан в разделе, называемом crossref:virtualization[virtualization, virtualization]. +Установщик FreeBSD — это не приложение, которое можно запустить из другой операционной системы. Вместо этого скачайте файл установки FreeBSD, запишите его на носитель, соответствующий его типу и размеру (CD, DVD или USB), и загрузите систему для установки с этого носителя. -[[bsdinstall-collect-network-information]] -=== Соберите информацию о сетевых настройках +Файлы для установки FreeBSD доступны на link:https://www.FreeBSD.org/where/[странице скачивания FreeBSD]. Имя каждого файла установки включает версию выпуска FreeBSD, архитектуру и тип файла. -Некоторым вариантам установки FreeBSD для загрузки файлов необходимо наличие соединения с сетью. Инсталлятор запросит информацию о подключении для настройки соединения с сетью через интерфейс Ethernet (через кабельный модем или к модем DSL с интерфейсом Ethernet). +Файлы для установки доступны в нескольких форматах, сжатые с помощью man:xz[1] или несжатые. Форматы различаются в зависимости от архитектуры компьютера и типа носителя. -Для автоматического конфигурирования сетевых интерфейсов часто применяется протокол _DHCP_. Если в подключаемой сети сервис DHCP отсутствует, информацию о подключении к необходимо взять у системного администратора или провайдера Интернет. +Типы файлов установки: -. IP адрес -. Маска подсети -. IP адрес шлюза по умолчанию -. Доменное имя локальной сети -. IP адрес DNS сервера/серверов +* `*-bootonly.iso*` — это самый маленький установочный файл, так как он содержит только установщик. Для установки требуется работающее интернет-соединение, так как установщик загрузит файлы, необходимые для завершения установки FreeBSD. Этот файл следует записать на оптический носитель. +* `*-disc1.iso*` — этот файл содержит все необходимые файлы для установки FreeBSD, её исходных кодов и Коллекции портов. Данный файл следует записать на оптический носитель. +* `*-dvd1.iso*` — этот файл содержит все необходимые файлы для установки FreeBSD, его исходные коды и Коллекцию портов. Также в него включён набор популярных бинарных пакетов для установки оконного менеджера и некоторых приложений, что позволяет установить полноценную систему с носителя без подключения к Интернету. Этот файл следует записать на оптический диск. +* `*-memstick.img*` — этот файл содержит все необходимые файлы для установки FreeBSD, её исходных кодов и Коллекции портов. Запишите этот файл на USB-накопитель, как показано в crossref:bsdinstall[bsdinstall-usb, Запись образа на USB]. +* `*-mini-memstick.img*` — как и `*-bootonly.iso*`, не содержит файлов для установки, но загружает их по мере необходимости. Требуется работающее интернет-подключение во время установки. Этот образ должен быть записан на USB-накопитель, как показано в crossref:bsdinstall[bsdinstall-usb, Запись образа на USB]. -=== Проверьте сведения об обнаруженных ошибках FreeBSD +После загрузки файла образа загрузите как минимум один файл _контрольной суммы_ из того же каталога. Доступны два файла _контрольной суммы_, названные в соответствии с номером выпуска и архитектурой. Например: `CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64` и `CHECKSUM.SHA512-FreeBSD-13.1-RELEASE-amd64`. -Хотя проект FreeBSD борется за то, чтобы каждый релиз FreeBSD был настолько стабильным, насколько это возможно, ошибки порой вкрадываются в процесс разработки. В очень редких случаях эти ошибки влияют на процесс установки. Как только эти проблемы обнаруживаются и исправляются, их описание попадает в link:https://www.FreeBSD.org/releases/{rel120-current}R/errata/[сообщения об ошибках FreeBSD], находящиеся на сайте FreeBSD. Проверьте сообщения об ошибках перед установкой и убедитесь, что отсутствуют проблемы, которые могут затронуть установку. +После загрузки одного из файлов (или обоих) вычислите _контрольную сумму_ для файла образа и сравните её с указанной в файле _контрольной суммы_. Обратите внимание, что необходимо сравнивать вычисленную _контрольную сумму_ с правильным файлом, так как они соответствуют разным алгоритмам: SHA256 и SHA512. FreeBSD предоставляет утилиты man:sha256[1] и man:sha512[1], которые можно использовать для вычисления _контрольной суммы_. В других операционных системах существуют аналогичные программы. -Информация о всех релизах, включая сообщения об ошибках каждого релиза, может быть найдена на странице link:https://www.FreeBSD.org/releases/[информации о релизах] link:https://www.FreeBSD.org/[веб сайта FreeBSD]. +Проверка _контрольной суммы_ в FreeBSD может быть выполнена автоматически с помощью man:sha256sum[1] (и man:sha512sum[1]) путем выполнения: -[[bsdinstall-installation-media]] -=== Подготовка установочного носителя информации +[source, shell] +.... +% sha256sum -c CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64 FreeBSD-13.1-RELEASE-amd64-dvd1.iso +FreeBSD-13.1-RELEASE-amd64-dvd1.iso: OK +.... -Установка FreeBSD начинается с загрузки компьютера с установочного носителя, будь то CD, DVD или USB флеш-накопитель. Инсталлятор - это не та программа, которую можно запустить из другой операционной системы. +Хеш-суммы должны полностью совпадать. Если хеш-суммы не совпадают, образ файла повреждён и его необходимо загрузить заново. -В дополнение к стандартному установочному носителю, который содержит копии всех установочных файлов FreeBSD, также существует вариант, предназначенный исключительно для загрузки и называемый _bootonly_. Установочный носитель bootonly не содержит копий инсталляционных файлов, а загружает их из сети во время установки. Поэтому образ bootonly CD гораздо меньше объемом, а также при его использовании загружаются лишь необходимые файлы, тем самым уменьшается нагрузка на сетевое соединение. +[[bsdinstall-usb]] +==== Запись образа на USB-накопитель -Копии образов установочных носителей находятся на link:https://www.FreeBSD.org/where/[веб сайте FreeBSD]. Также, в каталоге с файлами установочных образов находится файл [.filename]#CHECKSUM.SHA256#, который понадобится вам для проверки целостности скачанного файла образа. Проверка целостности файла образа производится сравнением _контрольных сумм_. Для подсчета последних FreeBSD предоставляет man:sha256[1], другие операционные системы также располагают подобными программами. Сравните полученную контрольную сумму с одной из [.filename]#CHECKSUM.SHA256#. Контрольные суммы должны совпасть полностью. Несовпадение контрольных сумм значит, что файл поврежден и к использованию не пригоден. +Файл `\*memstick.img` представляет собой _образ_ полного содержимого USB-накопителя. Его _нельзя_ просто скопировать на целевое устройство как файл. Существует несколько программ для записи `*.img` на USB-накопитель. В этом разделе описаны две такие утилиты. -[TIP] +[IMPORTANT] ==== - -Если у вас уже имеется копия FreeBSD на CDROM, DVD, или USB флеш-накопителе, то нижеследующий текст можно опустить. +Прежде чем продолжить, создайте резервную копию всех важных данных на USB-накопителе. Эта процедура удалит все существующие данные на носителе. ==== -CD- и DVD-образы FreeBSD являются загрузочными. Для установки необходим один из них. Запишите образ на CD или DVD диск при помощи программы для записи CD, которая есть в вашей текущей операционной системе. Во FreeBSD запись дисков осуществляется утилитой man:cdrecord[1] из комплекта [.filename]#sysutils/cdrtools# Коллекции Портов. - -Для создания загрузочного флеш-накопителя выполните следующие шаги: - -[[bsdinstall-installation-media-memory-stick]] +[[bsdinstall-usb-dd]] [.procedure] ==== +*Procedure. Using `dd` to write the image* + -. Получение образа для флеш-накопителя -+ -Образы для флеш-накопителя для FreeBSD 9.0-RELEASE и более поздних могут быть скачаны с каталога [.filename]#ISO-IMAGES/# по адресу `ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/_arch_/_arch_/ISO-IMAGES/_version_/FreeBSD-_version_-RELEASE-_arch_-memstick.img`. Замените _arch_ и _version_ соответственно на архитектуру и номер версии которую вы планируете установить. Например, образы для флеш-накопителей FreeBSD/i386 9.0-RELEASE находятся на link:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-i386-memstick.img[ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-i386-memstick.img]. -+ -[TIP] -====== - -Для FreeBSD 8._X_ и более ранних версий используется иной путь каталогов. Детали загрузки и установки FreeBSD 8._X_ и более ранних версий описаны в crossref:install[install, Установка FreeBSD версий 8.X и более ранних]. -====== -+ -Имя образа для флеш-накопителя имеет суффикс [.filename]#.img#. Каталог [.filename]#ISO-IMAGES/# содержит определённое количество разных образов, и выбор конкретного образа зависит от устанавливаемой версии FreeBSD, а в некоторых случаях - и от аппаратного обеспечения. -+ -[IMPORTANT] -====== -Перед продолжением _сделайте резервную копию_ данных с флеш-накопителя, так как следующая процедура _уничтожит_ их. +[WARNING] ====== -+ -. Запись образа на флеш-накопитель -+ -[.procedure] +Этот пример использует `/dev/da0` в качестве целевого устройства, на которое будет записан образ. Будьте *очень внимательны* при выборе правильного устройства, так как эта команда уничтожит все существующие данные на указанном целевом устройстве. ====== -*Procedure: Использование FreeBSD для записи образа* - -[WARNING] -**** -В нижеследующем примере показано использование [.filename]#/dev/da0# в качестве устройства, на которое производится запись. Удостоверьтесь в том, что целевое устройство выбрано верно, иначе вы можете повредить существующие данные. -**** -.. Запись образа при помощи man:dd[1] -+ -Файл [.filename]#.img# не является обычным файлом. Это _образ_ всего содержимого флеш-накопителя. Этот файл _не может_ быть просто скопированным подобно обычному файлу, он должен быть записан непосредственно на целевое устройство при помощи man:dd[1]: +. Утилита командной строки доступна в системах BSD, Linux(R) и Mac OS(R). Чтобы записать образ с помощью `dd`, вставьте USB-накопитель и определите его имя устройства. Затем укажите имя загруженного файла установки и имя устройства USB-накопителя. В этом примере записывается образ установки amd64 на первое USB-устройство в существующей системе FreeBSD. + -[source,shell] +[source, shell] .... -# dd if=FreeBSD-9.0-RELEASE-i386-memstick.img of=/dev/da0 bs=64k +# dd if=FreeBSD-13.1-RELEASE-amd64-memstick.img of=/dev/da0 bs=1M conv=sync .... -====== + +Если команда завершается с ошибкой, убедитесь, что USB-накопитель не смонтирован и что указано имя диска, а не раздела. ++ +Некоторые операционные системы могут потребовать выполнения этой команды с man:sudo[8]. Синтаксис man:dd[1] немного различается на разных платформах; например, Mac OS(R) требует указания `bs=1m` в нижнем регистре. Системы, такие как Linux(R), могут буферизировать запись. Чтобы принудительно завершить все операции записи, используйте man:sync[8]. +==== + [.procedure] -====== -*Procedure: Использование Windows(R) для записи образа* +==== +*Procedure. Using Windows(R) to Write the Image* + [WARNING] -**** - -Удостоверьтесь в правильности выбора буквы диска, указываемой как целевое устройство, иначе вы перезапишете и повредите существующие данные. -**** -.. Получение Image Writer для Windows(R) -+ -Image Writer для Windows(R) - это свободно распространяемое приложение, при помощи которого можно корректно записать образ на флеш-накопитель. Скачайте его с https://launchpad.net/win32-image-writer/[https://launchpad.net/win32-image-writer/] и сохраните в любую директорию. -.. Запись образа при помощи Image Writer -+ -Кликните дважды на иконке Win32DiskImager для запуска приложения. Удостоверьтесь, что буква диска, отображаемая в боксе `Device`, соответствует устройству флеш-накопителя. Кликните на иконке с папкой и выберите образ, который будет записан на флеш-накопитель. Нажмите кнопку btn:[Save] для подтверждения выбора имени файла. Проверьте, что всё верно, а также что нет открытых директорий с флеш-накопителя в других окнах. Когда всё готово, нажмите кнопку btn:[Write] для записи образа на флеш-накопитель. ====== -==== +Убедитесь, что указали правильную букву диска, так как все существующие данные на указанном диске будут перезаписаны и уничтожены. +====== -[NOTE] -==== -Установка с дискет более не поддерживается. -==== +. *Obtaining Image Writer for Windows(R)* ++ +`Image Writer for Windows(R)` — это бесплатное приложение, которое позволяет корректно записать файл образа на USB-накопитель. Загрузите его с https://sourceforge.net/projects/win32diskimager/[официальной страницы win32diskimager] и распакуйте в нужную папку. -Теперь вы готовы начать установку FreeBSD. +. *Writing the Image with Image Writer* ++ +Дважды щелкните по значку Win32DiskImager, чтобы запустить программу. Убедитесь, что буква диска, указанная в разделе `Device`, соответствует диску с флеш-накопителем. Нажмите на значок папки и выберите образ, который нужно записать на флеш-накопитель. Нажмите btn:[Save], чтобы подтвердить имя файла образа. Убедитесь, что все правильно и что никакие папки на флеш-накопителе не открыты в других окнах. Когда все готово, нажмите btn:[Write], чтобы записать файл образа на флеш-накопитель. +==== [[bsdinstall-start]] == Начало установки [IMPORTANT] ==== -По умолчанию, установщик не изменяет данные на ваших дисках до тех пор, пока вы не увидите следующее сообщение: +По умолчанию установка не вносит никаких изменений на диск(и) до следующего сообщения: +[.programlisting] .... -Your changes will now be written to disk. If you +Your changes will now be written to disk. If you have chosen to overwrite existing data, it will be PERMANENTLY ERASED. Are you sure you want to commit your changes? .... -Установка может быть прервана в любой момент до появления этого предупреждения, при этом содержимое дисков изменено не будет. Если вы обеспокоены тем, что что-то было настроено неверно, то вы можете просто выключить компьютер до этого сообщения, при этом никаких повреждений существующих данных не произойдет. +Установку можно прервать в любой момент до этого предупреждения. Если есть опасения, что что-то настроено неправильно, просто выключите компьютер до этого момента, и никакие изменения не будут внесены в диски системы. ==== -[[bsdinstall-starting]] -=== Загрузка +В этом разделе описывается, как загрузить систему с установочного носителя, подготовленного в соответствии с инструкциями в пункте crossref:bsdinstall[bsdinstall-installation-media, Подготовка установочного носителя]. При использовании загрузочной USB-флешки подключите её к компьютеру перед включением. При загрузке с CD или DVD включите компьютер и вставьте носитель при первой возможности. Настройка системы для загрузки с подключённого носителя зависит от архитектуры. -[[bsdinstall-starting-i386]] -==== Загрузка на i386(TM) и amd64 +[[bsdinstall-view-probe]] +=== Меню загрузчика FreeBSD -[.procedure] -==== +После загрузки системы с установочного носителя появится меню, подобное следующему: -. Если вы подготовили "загрузочный" USB-накопитель, как описано в <<bsdinstall-installation-media>>, то вставьте его в USB гнездо перед включением компьютера. -+ -Если вы загружаетесь с CDROM, то вам необходимо будет включить компьютер и при первой возможности вставить CD диск. -. Настройте вашу машину на загрузку с CDROM или с USB, в зависимости от того, какое устройство используется для установки. Настройки BIOS позволяют выбрать конкретное загрузочное устройство. Большинство систем также предоставляют возможность выбрать загрузочное устройство во время запуска, часто эта возможность активируется по нажатию клавиши kbd:[F10], kbd:[F11], kbd:[F12] или kbd:[Escape]. -. Если ваш компьютер загружается как обычно и запускает существующую операционную систему, то: -.. Диск не был вставлен заблаговременно. Оставьте его в приводе и попробуйте перезагрузить ваш компьютер. -.. Ранее внесенные изменения в BIOS не сработали. Попробуйте повторить шаг настройки BIOS пока не получите необходимый порядок загрузки. -.. Ваш нынешний BIOS не поддерживает загрузку с имеющегося загрузочного накопителя. В этом случае можно использовать http://www.plop.at/en/bootmanager.html[Plop Boot Manager] для загрузки более старых машин с CD или USB. -+ -. 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] -\ -.... -+ -. Отображается меню загрузчика FreeBSD: -+ -[[bsdinstall-boot-loader-menu]] +[[bsdinstall-newboot-loader-menu]] .Меню загрузчика FreeBSD -image::bsdinstall-boot-loader-menu.png[] -+ -Выждите десять секунд или нажмите kbd:[Enter]. -==== - -==== Загрузка Macintosh(R) PowerPC(R) - -На большинстве машин удерживание клавиши kbd:[C] на клавиатуре во время начальной загрузки активирует загрузку с CD. Иначе, удерживайте kbd:[Command+Option+O+F], или kbd:[Windows+Alt+O+F] на не-Apple(R) клавиатурах. На приглашение `0 >` введите - -[source,shell] -.... - boot cd:,\ppc\loader cd:0 -.... - -Для Xserves без клавиатур, ознакомьтесь с загрузкой в Open Firmware, которая описана на http://support.apple.com/kb/TA26930[сайте поддержки Apple(R)]. - -==== Загрузка sparc64 - -Большинство систем sparc64 настроены на автоматическую загрузку с жесткого диска. Для того, чтобы установить FreeBSD, вам потребуется выполнить загрузку по сети или с CDROM, что подразумевает получение доступа к PROM (OpenFirmware). +image::bsdinstall-newboot-loader-menu.png["Меню загрузчика FreeBSD"] -Для того, чтобы получить доступ к PROM, перегрузите систему и дождитесь появления загрузочных сообщений. Вид сообщений зависит от модели машины, но должен выглядеть подобно следующему: +По умолчанию меню будет ждать десять секунд ввода пользователя перед загрузкой установщика FreeBSD или, если FreeBSD уже установлена, перед загрузкой системы. Чтобы приостановить таймер загрузки для просмотра вариантов, нажмите kbd:[Пробел]. Для выбора варианта нажмите соответствующую подсвеченную цифру, символ или клавишу. Доступны следующие варианты. -[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. -.... +* `Загрузка в многопользовательском режиме (Boot Multi User)`: Это продолжит процесс загрузки FreeBSD. Если таймер загрузки был приостановлен, нажмите kbd:[1], kbd:[B] (в верхнем или нижнем регистре) или kbd:[Enter]. +* `Загрузка в однопользовательском режиме (Boot Single User)`: Этот режим может быть использован для исправления существующей установки FreeBSD, как описано в crossref:boot[boot-singleuser,“Однопользовательский режим”]. Для входа в этот режим нажмите kbd:[2] или kbd:[S] в верхнем или нижнем регистре. +* `Выход в загрузчик (Escape to loader prompt)`: Это загрузит систему в режим восстановления с ограниченным набором низкоуровневых команд. Данный режим описан в разделе crossref:boot[boot-loader,“Этап три”]. Для загрузки в этом режиме нажмите kbd:[3] или kbd:[Esc]. +* `Перезагрузка (Reboot)`: Перезагружает систему. +* `Cons`: Позволяет продолжить установку через `видео`, `последовательный порт`, `двухконсольную конфигурацию (основная консоль — последовательный порт)` или `двухконсольную конфигурацию (основная консоль — видео)` +* `Ядро (Kernel)`: Загружает другое ядро. +* `Параметры загрузки (Boot Options)`: Открывает меню, показанное на рисунке crossref:bsdinstall[bsdinstall-boot-options-menu,Меню параметров загрузки FreeBSD] и описанное после него. -Если ваша система продолжает загружаться с жесткого диска, то чтобы получить приглашение PROM вам необходимо нажать на клавиатуре kbd:[L1+A] или kbd:[Stop+A], или же послать сигнал `BREAK` через последовательную консоль (используя, например, `~#` в man:tip[1] или man:cu[1]). Приглашение выглядит подобно следующему: +[[bsdinstall-boot-options-menu]] +.Меню параметров загрузки FreeBSD +image::bsdinstall-boot-options-menu.png["Меню с различными поддерживаемыми вариантами загрузки"] -[source,shell] -.... -ok <.> -ok {0} <.> -.... +Меню параметров загрузки разделено на две части. Первая часть позволяет либо вернуться в главное меню загрузки, либо сбросить все изменённые параметры к значениям по умолчанию. -<.> Приглашение, отображающееся на системах с одним центральным процессором. +Следующий раздел позволяет переключать доступные опции в состояние `Вкл` или `Выкл`, нажимая выделенную цифру или символ соответствующей опции. Система всегда будет загружаться с использованием текущих настроек этих опций, пока они не будут изменены. С помощью этого меню можно переключать несколько опций: -<.> Приглашение, отображающееся на многопроцессорных (SMP) системах, цифра указывает на количество активных центральных процессоров. +* `Поддержка ACPI (ACPI Support)`: Если система зависает во время загрузки, попробуйте переключить этот параметр в положение `Выкл.`. Этот параметр присутствует только в том случае, если поддержка ACPI доступна, но не обязательна. +* `Безопасный режим (Safe Mode)`: Если система всё ещё зависает во время загрузки, даже когда `Поддержка ACPI` установлена в `Выкл`, попробуйте установить этот параметр в `Вкл`. +* `Однопользовательский (Single User)`: Установите этот параметр в `Вкл`, чтобы исправить существующую установку FreeBSD, как описано в crossref:boot[boot-singleuser,“Однопользовательский режим”]. После устранения проблемы верните значение `Выкл`. +* `Подробно (Verbose)`: Установите этот параметр в `Вкл`, чтобы видеть более подробные сообщения в процессе загрузки. Это может быть полезно при диагностике проблем с оборудованием. -На этом этапе вставьте CDROM в привод и наберите `boot cdrom` в приглашении PROM. - -[[bsdinstall-view-probe]] -=== Просмотр результата определения устройств (device probe) - -Выводимые на экран во время начальной загрузки системы последние пару сотен строк сохраняются, и при необходимости могут быть просмотрены. - -Чтобы просмотреть содержимое буфера, нажмите kbd:[Scroll Lock]. Это включит режим буфера прокрутки. Далее, для просмотра сохраненных сообщений вы можете использовать клавиши навигации или клавиши kbd:[PageUp] и kbd:[PageDown]. Чтобы выйти из режима просмотра буфера нажмите еще раз kbd:[Scroll Lock]. - -Включите прокрутку экранного буфера и просмотрите сообщения, которые были вытеснены с экрана во время определения устройств ядром. Вы увидите текст, подобный к <<bsdinstall-dev-probe>>, однако его содержимое будет отличаться в зависимости от комплекта устройств, установленных в ваш компьютер. - -[[bsdinstall-dev-probe]] -.Типичный вывод сообщений определения устройств -[source,shell] -.... -Copyright (c) 1992-2011 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. -FreeBSD is a registered trademark of The FreeBSD Foundation. -FreeBSD 9.0-RELEASE #0 r225473M: Sun Sep 11 16:07:30 BST 2011 - root@psi:/usr/obj/usr/src/sys/GENERIC amd64 -CPU: Intel(R) Core(TM)2 Duo CPU T9400 @ 2.53GHz (2527.05-MHz K8-class CPU) - Origin = "GenuineIntel" Id = 0x10676 Family = 6 Model = 17 Stepping = 6 - Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> - Features2=0x8e3fd<SSE3,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1> - AMD Features=0x20100800<SYSCALL,NX,LM> - AMD Features2=0x1<LAHF> - TSC: P-state invariant, performance statistics -real memory = 3221225472 (3072 MB) -avail memory = 2926649344 (2791 MB) -Event timer "LAPIC" quality 400 -ACPI APIC Table: <TOSHIB A0064 > -FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs -FreeBSD/SMP: 1 package(s) x 2 core(s) - cpu0 (BSP): APIC ID: 0 - cpu1 (AP): APIC ID: 1 -ioapic0: Changing APIC ID to 1 -ioapic0 <Version 2.0> irqs 0-23 on motherboard -kbd1 at kbdmux0 -acpi0: <TOSHIB A0064> on motherboard -acpi0: Power Button (fixed) -acpi0: reservation of 0, a0000 (3) failed -acpi0: reservation of 100000, b6690000 (3) failed -Timecounter "ACPI-safe" frequency 3579545 Hz quality 850 -acpi_timer0: <24-bit timer at 3.579545MHz> port 0xd808-0xd80b on acpi0 -cpu0: <ACPI CPU> on acpi0 -ACPI Warning: Incorrect checksum in table [ASF!] - 0xFE, should be 0x9A (20110527/tbutils-282) -cpu1: <ACPI CPU> on acpi0 -pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0 -pci0: <ACPI PCI bus> on pcib0 -vgapci0: <VGA-compatible display> port 0xcff8-0xcfff mem 0xff400000-0xff7fffff,0xe0000000-0xefffffff irq 16 at device 2.0 on pci0 -agp0: <Intel GM45 SVGA controller> on vgapci0 -agp0: aperture size is 256M, detected 131068k stolen memory -vgapci1: <VGA-compatible display> mem 0xffc00000-0xffcfffff at device 2.1 on pci0 -pci0: <simple comms> at device 3.0 (no driver attached) -em0: <Intel(R) PRO/1000 Network Connection 7.2.3> port 0xcf80-0xcf9f mem 0xff9c0000-0xff9dffff,0xff9fe000-0xff9fefff irq 20 at device 25.0 on pci0 -em0: Using an MSI interrupt -em0: Ethernet address: 00:1c:7e:6a:ca:b0 -uhci0: <Intel 82801I (ICH9) USB controller> port 0xcf60-0xcf7f irq 16 at device 26.0 on pci0 -usbus0: <Intel 82801I (ICH9) USB controller> on uhci0 -uhci1: <Intel 82801I (ICH9) USB controller> port 0xcf40-0xcf5f irq 21 at device 26.1 on pci0 -usbus1: <Intel 82801I (ICH9) USB controller> on uhci1 -uhci2: <Intel 82801I (ICH9) USB controller> port 0xcf20-0xcf3f irq 19 at device 26.2 on pci0 -usbus2: <Intel 82801I (ICH9) USB controller> on uhci2 -ehci0: <Intel 82801I (ICH9) USB 2.0 controller> mem 0xff9ff800-0xff9ffbff irq 19 at device 26.7 on pci0 -usbus3: EHCI version 1.0 -usbus3: <Intel 82801I (ICH9) USB 2.0 controller> on ehci0 -hdac0: <Intel 82801I High Definition Audio Controller> mem 0xff9f8000-0xff9fbfff irq 22 at device 27.0 on pci0 -pcib1: <ACPI PCI-PCI bridge> irq 17 at device 28.0 on pci0 -pci1: <ACPI PCI bus> on pcib1 -iwn0: <Intel(R) WiFi Link 5100> mem 0xff8fe000-0xff8fffff irq 16 at device 0.0 on pci1 -pcib2: <ACPI PCI-PCI bridge> irq 16 at device 28.1 on pci0 -pci2: <ACPI PCI bus> on pcib2 -pcib3: <ACPI PCI-PCI bridge> irq 18 at device 28.2 on pci0 -pci4: <ACPI PCI bus> on pcib3 -pcib4: <ACPI PCI-PCI bridge> at device 30.0 on pci0 -pci5: <ACPI PCI bus> on pcib4 -cbb0: <RF5C476 PCI-CardBus Bridge> at device 11.0 on pci5 -cardbus0: <CardBus bus> on cbb0 -pccard0: <16-bit PCCard bus> on cbb0 -isab0: <PCI-ISA bridge> at device 31.0 on pci0 -isa0: <ISA bus> on isab0 -ahci0: <Intel ICH9M AHCI SATA controller> port 0x8f58-0x8f5f,0x8f54-0x8f57,0x8f48-0x8f4f,0x8f44-0x8f47,0x8f20-0x8f3f mem 0xff9fd800-0xff9fdfff irq 19 at device 31.2 on pci0 -ahci0: AHCI v1.20 with 4 3Gbps ports, Port Multiplier not supported -ahcich0: <AHCI channel> at channel 0 on ahci0 -ahcich1: <AHCI channel> at channel 1 on ahci0 -ahcich2: <AHCI channel> at channel 4 on ahci0 -acpi_lid0: <Control Method Lid Switch> on acpi0 -battery0: <ACPI Control Method Battery> on acpi0 -acpi_button0: <Power Button> on acpi0 -acpi_acad0: <AC Adapter> on acpi0 -acpi_toshiba0: <Toshiba HCI Extras> on acpi0 -acpi_tz0: <Thermal Zone> on acpi0 -attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0 -Timecounter "i8254" frequency 1193182 Hz quality 0 -Event timer "i8254" frequency 1193182 Hz quality 100 -atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0 -atkbd0: <AT Keyboard> irq 1 on atkbdc0 -kbd0 at atkbd0 -atkbd0: [GIANT-LOCKED] -psm0: <PS/2 Mouse> irq 12 on atkbdc0 -psm0: [GIANT-LOCKED] -psm0: model GlidePoint, device ID 0 -atrtc0: <AT realtime clock> port 0x70-0x71 irq 8 on acpi0 -Event timer "RTC" frequency 32768 Hz quality 0 -hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0 -Timecounter "HPET" frequency 14318180 Hz quality 950 -Event timer "HPET" frequency 14318180 Hz quality 450 -Event timer "HPET1" frequency 14318180 Hz quality 440 -Event timer "HPET2" frequency 14318180 Hz quality 440 -Event timer "HPET3" frequency 14318180 Hz quality 440 -uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 -sc0: <System console> at flags 0x100 on isa0 -sc0: VGA <16 virtual consoles, flags=0x300> -vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 -ppc0: cannot reserve I/O port range -est0: <Enhanced SpeedStep Frequency Control> on cpu0 -p4tcc0: <CPU Frequency Thermal Control> on cpu0 -est1: <Enhanced SpeedStep Frequency Control> on cpu1 -p4tcc1: <CPU Frequency Thermal Control> on cpu1 -Timecounters tick every 1.000 msec -hdac0: HDA Codec #0: Realtek ALC268 -hdac0: HDA Codec #1: Lucent/Agere Systems (Unknown) -pcm0: <HDA Realtek ALC268 PCM #0 Analog> at cad 0 nid 1 on hdac0 -pcm1: <HDA Realtek ALC268 PCM #1 Analog> at cad 0 nid 1 on hdac0 -usbus0: 12Mbps Full Speed USB v1.0 -usbus1: 12Mbps Full Speed USB v1.0 -usbus2: 12Mbps Full Speed USB v1.0 -usbus3: 480Mbps High Speed USB v2.0 -ugen0.1: <Intel> at usbus0 -uhub0: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0 -ugen1.1: <Intel> at usbus1 -uhub1: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1 -ugen2.1: <Intel> at usbus2 -uhub2: <Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2 -ugen3.1: <Intel> at usbus3 -uhub3: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3 -uhub0: 2 ports with 2 removable, self powered -uhub1: 2 ports with 2 removable, self powered -uhub2: 2 ports with 2 removable, self powered -uhub3: 6 ports with 6 removable, self powered -ugen2.2: <vendor 0x0b97> at usbus2 -uhub8: <vendor 0x0b97 product 0x7761, class 9/0, rev 1.10/1.10, addr 2> on usbus2 -ugen1.2: <Microsoft> at usbus1 -ada0 at ahcich0 bus 0 scbus1 target 0 lun 0 -ada0: <Hitachi HTS543225L9SA00 FBEOC43C> ATA-8 SATA 1.x device -ada0: 150.000MB/s transfers (SATA 1.x, UDMA6, PIO 8192bytes) -ada0: Command Queueing enabled -ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C) -ada0: Previously was known as ad4 -ums0: <Microsoft Microsoft 3-Button Mouse with IntelliEyeTM, class 0/0, rev 1.10/3.00, addr 2> on usbus1 -SMP: AP CPU #1 Launched! -cd0 at ahcich1 bus 0 scbus2 target 0 lun 0 -cd0: <TEAC DV-W28S-RT 7.0C> Removable CD-ROM SCSI-0 device -cd0: 150.000MB/s transfers (SATA 1.x, ums0: 3 buttons and [XYZ] coordinates ID=0 -UDMA2, ATAPI 12bytes, PIO 8192bytes) -cd0: cd present [1 x 2048 byte records] -ugen0.2: <Microsoft> at usbus0 -ukbd0: <Microsoft Natural Ergonomic Keyboard 4000, class 0/0, rev 2.00/1.73, addr 2> on usbus0 -kbd2 at ukbd0 -uhid0: <Microsoft Natural Ergonomic Keyboard 4000, class 0/0, rev 2.00/1.73, addr 2> on usbus0 -Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]... -.... - -Внимательно просмотрите вывод определения устройств и убедитесь, что FreeBSD обнаружила все ожидаемые вами устройства. Если устройство не было найдено, то оно не будет упомянуто в выводе. crossref:kernelconfig[kernelconfig-custom-kernel,Модули ядра] позволяют вам добавить поддержку устройств, драйвера которых отсутствуют в ядре [.filename]#GENERIC#. - -После процедуры определения устройств вы увидите <<bsdinstall-choose-mode>>. Установочный носитель может использоваться одним из трёх способов: для установки FreeBSD, как <<using-live-cd,Live CD>>, или просто для доступа к оболочке FreeBSD. Используйте клавиши навигации для выбора опции, а kbd:[Enter] - для подтверждения выбора. +После выбора необходимых параметров нажмите kbd:[1] или kbd:[Backspace], чтобы вернуться в главное меню загрузки, затем нажмите kbd:[Enter] для продолжения загрузки FreeBSD. Появится серия сообщений загрузки, пока FreeBSD выполняет обнаружение аппаратных устройств и загружает программу установки. После завершения загрузки будет отображено приветственное меню, показанное на рисунке crossref:bsdinstall[bsdinstall-choose-mode,Приветственное меню]. [[bsdinstall-choose-mode]] -.Выбор вариантов работы установочного носителя -image::bsdinstall-choose-mode.png[] - -Выбор опции btn:[Install] вызовет программу-установщик. - -[[using-bsdinstall]] -== Введение в bsdinstall +.Приветственное меню +image::bsdinstall-choose-mode.png["Приветственное меню установки FreeBSD"] -bsdinstall это текстовая программа для установки FreeBSD, созданная {nwhitehorn} и представленная в 2011 году для FreeBSD 9.0. +Нажмите kbd:[Enter], чтобы выбрать вариант по умолчанию btn:[Install] и перейти к установке. В остальной части этой главы описывается, как использовать этот установщик. В противном случае используйте стрелки вправо или влево или выделенную цветом букву, чтобы выбрать нужный пункт меню. Кнопка btn:[Shell] позволяет получить доступ к оболочке FreeBSD для использования командной строки и подготовки дисков перед установкой. Вариант btn:[Live CD] позволяет попробовать FreeBSD перед установкой. Версия Live CD описана в пункте crossref:bsdinstall[using-live-cd, Использование Live CD]. -[NOTE] +[TIP] ==== -В комплекте с http://pcbsd.org[PC-BSD] есть программа pc-sysinstall от {kmoore}, которая также может использоваться для http://wiki.pcbsd.org/index.php/Use_PC-BSD_Installer_to_Install_FreeBSD[ установки FreeBSD]. Несмотря на то, что эту программу путают с bsdinstall, обе они между собой никак не связаны. +Для просмотра загрузочных сообщений, включая информацию об обнаруженных аппаратных устройствах, нажмите kbd:[S] (верхний или нижний регистр) и затем kbd:[Enter], чтобы перейти в оболочку. В командной строке оболочки введите `more /var/run/dmesg.boot` и используйте пробел для прокрутки сообщений. По завершении введите `exit`, чтобы вернуться в меню приветствия. ==== -Система меню bsdinstall контролируется клавишами навигации, а также kbd:[Enter], kbd:[Tab], kbd:[Space] и другими. +[[using-bsdinstall]] +== Использование bsdinstall + +В этом разделе показана последовательность меню bsdinstall и тип информации, которая будет запрошена перед установкой системы. Используйте клавиши со стрелками, чтобы выделить пункт меню, затем kbd:[Space] для выбора или отмены выбора этого пункта. По завершении нажмите kbd:[Enter], чтобы сохранить выбор и перейти к следующему экрану. [[bsdinstall-keymap]] -=== Выбор раскладки клавиатуры (Keymap) +=== Меню выбора раскладки клавиатуры -В зависимости от используемой системной консоли, bsdinstall может предложить выбрать отличную от настроенной по умолчанию раскладку клавиатуры. +Перед началом процесса bsdinstall загрузит файлы раскладки клавиатуры, как показано на рисунке crossref:bsdinstall[bsdinstall-keymap-loading,Загрузка раскладки клавиатуры]. -[[bsdinstall-keymap-select-default]] -.Выбор раскладки клавиатуры -image::bsdinstall-keymap-select-default.png[] +[[bsdinstall-keymap-loading]] +.Загрузка раскладки клавиатуры +image::bsdinstall-keymap-loading.png["Загрузка раскладки клавиатуры"] -Если нажата кнопка btn:[YES], отобразится следующее меню выбора раскладки клавиатуры. Иначе, это меню выбора отображено не будет, а будет использоваться раскладка клавиатуры по умолчанию. +После загрузки раскладок клавиатур bsdinstall отображает меню, показанное на рисунке crossref:bsdinstall[bsdinstall-keymap-10,Меню выбора раскладки клавиатуры]. Используйте стрелки вверх и вниз, чтобы выбрать раскладку, наиболее точно соответствующую клавиатуре, подключенной к системе. Нажмите kbd:[Enter], чтобы сохранить выбор. -[[bsdinstall-config-keymap]] +[[bsdinstall-keymap-10]] .Меню выбора раскладки клавиатуры -image::bsdinstall-config-keymap.png[] - -Используя клавиши навигации и клавишу kbd:[Enter] выберите раскладку, которая наиболее близко соответствует клавиатуре, подключенной к системе. +image::bsdinstall-keymap-10.png["Меню выбора раскладки клавиатуры со списком всех поддерживаемых клавиатур"] [NOTE] ==== -Нажатие kbd:[Esc] приведет к выбору раскладки по умолчанию. Выбор опции [.guimenuitem]#United States of America ISO-8859-1# тоже является безопасным в том случае, если возникают трудности с определением раскладки. +Нажатие kbd:[Esc] выйдет из этого меню и использует раскладку по умолчанию. Если выбор раскладки неочевиден, [.guimenuitem]#United States of America ISO-8859-1# также является безопасным вариантом. ==== +Кроме того, при выборе другой раскладки клавиатуры пользователь может проверить её и убедиться в правильности перед продолжением, как показано на рисунке crossref:bsdinstall[bsdinstall-keymap-testing,Меню проверки раскладки клавиатуры]. + +[[bsdinstall-keymap-testing]] +.Меню тестирования раскладки клавиатуры +image::bsdinstall-keymap-testing.png["Меню тестирования раскладки клавиатуры"] + [[bsdinstall-hostname]] === Установка имени хоста -Далее, bsdinstall предложит указать имя хоста для устанавливаемой системы. +Следующее меню bsdinstall используется для установки имени хоста вновь устанавливаемой системы. [[bsdinstall-config-hostname]] .Установка имени хоста -image::bsdinstall-config-hostname.png[] +image::bsdinstall-config-hostname.png["Установка имени хоста"] -Вводимое имя хоста должно быть полным (fully-qualified), например: `machine3.example.com`. +Введите имя хоста, уникальное для сети. Оно должно быть полным доменным именем, например `machine3.example.com`. [[bsdinstall-components]] -=== Выбор устанавливаемых компонентов +=== Выбор компонентов для установки -Далее, bsdinstall предложит выбрать дополнительные компоненты для установки. +Затем `bsdinstall` предложит выбрать дополнительные компоненты для установки. [[bsdinstall-config-components]] -.Выбор устанавливаемых компонентов -image::bsdinstall-config-components.png[] - -Определение перечня компонентов для установки в наибольшей мере зависит от планируемого использования системы и от количества доступного дискового пространства. Ядро и набор утилит FreeBSD (вместе называемые "базовой системой") устанавливаются всегда. +.Выбор компонентов для установки +image::bsdinstall-config-components.png["Различные компоненты, которые могут быть установлены. Пример: `base-dbg`", lib32, ports, etc.] -В зависимости от типа установки, некоторые из следующих компонентов могут не появляться. +Выбор компонентов для установки в значительной степени зависит от предполагаемого использования системы и доступного дискового пространства. Базовая система FreeBSD, включающая ядро и пользовательское окружение (_base system_), устанавливается всегда. В зависимости от архитектуры некоторые из этих компонентов могут отсутствовать: -.Дополнительные компоненты -* `doc` - Дополнительная документация, преимущественно исторического характера. Документация, предоставляемая Проектом Документирования FreeBSD может быть установлена позже. -* `games` - Несколько традиционных игр BSD, в том числе fortune, rot13, и другие. -* `lib32` - Библиотеки совместимости для запуска 32-битных приложений на 64-битных версиях FreeBSD. -* `ports` - Коллекция Портов FreeBSD. -+ -Коллекция Портов - это простой и удобный способ установки программ. Она не содержит исходных кодов, необходимых для компиляции приложений. Коллекция Портов - это множество файлов, при помощи которого автоматизируется загрузка, компиляция и установка программных пакетов сторонних разработчиков. В crossref:ports[ports, Установка приложений. порты и пакеты] описано, как использовать коллекцию портов. +* `base-dbg` - Базовые инструменты, такие как cat и ls, среди многих других, с активированными отладочными символами. +* `kernel-dbg` - Ядро и модули с включенными отладочными символами. +* `lib32-dbg` - Совместимые библиотеки для запуска 32-битных приложений на 64-битной версии FreeBSD с активированными отладочными символами. +* `lib32` - Совместимые библиотеки для запуска 32-битных приложений на 64-битной версии FreeBSD. +* `ports` - Коллекция портов FreeBSD представляет собой набор файлов, автоматизирующих загрузку, компиляцию и установку сторонних программных пакетов. В разделе crossref:ports[ports,Установка приложений: Пакеты и Порты] рассматривается, как использовать Коллекцию портов. + [WARNING] ==== - -Программа установки не проверяет наличие свободного места. Поэтому выбирайте эту опцию лишь тогда, когда имеется достаточно свободного места на жестком диске. Что касается FreeBSD 9.0, Коллекция Портов занимает около {ports-size} дискового пространства. Учтите, что для более новых версий FreeBSD занимаемое Коллекцией Портов дисковое пространство будет расти. +Программа установки не проверяет наличие достаточного места на диске. Выбирайте этот вариант, только если доступно достаточно места на жестком диске. Коллекция портов FreeBSD занимает около {ports-size} места на диске. ==== -* `src` - Исходный код системы. -+ -FreeBSD распространяется с полным исходным кодом как для ядра, так и для программ базовой системы. Для большинства приложений исходный код системы не нужен, однако он может потребоваться при построении некоторых программ, распространяемых в виде исходных кодов (например, драйверов или модулей ядра), или для разработки FreeBSD. -+ -Полное дерево исходных кодов требует 1 ГБ дискового пространства, пересборка всей системы FreeBSD требует дополнительно 5 ГБ пространства. +* `src` - Полный исходный код FreeBSD, включая как ядро, так и пользовательское пространство. Хотя он не требуется для большинства приложений, он может быть необходим для сборки драйверов устройств, модулей ядра или некоторых приложений из коллекции портов. Также он используется для разработки самой FreeBSD. Полное дерево исходных кодов занимает 1 ГБ дискового пространства, а перекомпиляция всей системы FreeBSD требует дополнительно 5 ГБ пространства. +* `tests` — Набор тестов FreeBSD. [[bsdinstall-netinstall]] -== Установка по сети +=== Установка по сети -Установочный носитель _bootonly_ не содержит копий установочных файлов. В случае использования такого носителя необходимые файлы должны быть получены загрузкой из сети. +Меню, показанное на рисунке crossref:bsdinstall[bsdinstall-netinstall-notify,Установка из сети], появляется только при установке с `-bootonly.iso` или `-mini-memstick.img`, так как эти носители не содержат копий файлов установки. Поскольку файлы установки должны быть получены через сетевое соединение, это меню указывает на необходимость предварительной настройки сетевого интерфейса. Если это меню появляется на любом этапе процесса, не забудьте следовать инструкциям из раздела crossref:bsdinstall[bsdinstall-config-network-dev,Настройка сетевых интерфейсов]. [[bsdinstall-netinstall-notify]] .Установка по сети -image::bsdinstall-netinstall-files.png[] +image::bsdinstall-netinstall-files.png["Указывает, что определенные компоненты не были найдены и будут загружены через сеть."] -После настройки сетевого соединения, которая детально описана в <<bsdinstall-config-network-dev>>, выбирается зеркало сайта. Зеркала сайта содержат копии файлов FreeBSD. Выберите зеркало, размещенное в том регионе мира, что и компьютер, на который устанавливается FreeBSD. Если зеркало расположено ближе к целевому компьютеру, то файлы могут быть получены быстрее, тем самым уменьшится время установки. +[[bsdinstall-partitioning]] +== Выделение дискового пространства -[[bsdinstall-netinstall-mirror]] -.Выбор зеркала сайта -image::bsdinstall-netinstall-mirrorselect.png[] +Следующее меню используется для определения метода распределения дискового пространства. -Дальнейший сценарий одинаков для всех способов установки. +[[bsdinstall-zfs-partmenu]] +.Варианты разметки разделов +image::bsdinstall-zfs-partmenu.png["Показывает различные варианты разделов. Пример: Ручной", Shell, etc.] -[[bsdinstall-partitioning]] -== Выделение дискового пространства +bsdinstall предоставляет пользователю четыре метода распределения дискового пространства: + +* `Auto (ZFS)` — автоматическое разбиение на разделы создаёт систему с корневым разделом на ZFS и возможностью использования шифрования GELI для _загрузочных окружений_. +* `Auto (UFS)` — автоматическое разбиение диска с использованием файловой системы `UFS`. +* `Ручное (Manual)` разбиение позволяет опытным пользователям создавать настраиваемые разделы с помощью параметров меню. +* `Оболочка (Shell)` открывает командную оболочку, где опытные пользователи могут создавать настраиваемые разделы с помощью утилит командной строки, таких как man:gpart[8], man:fdisk[8] и man:bsdlabel[8]. + +Этот раздел описывает, что следует учитывать при разметке разделов диска. Затем демонстрируется, как использовать различные методы разметки. -Есть три способа осуществить разбиение дискового пространства для FreeBSD. _Шаблонное_ (_guided_) разбиение автоматически настраивает разделы диска, _ручное_ (_manual_) разбиение позволяет опытным пользователям создавать разделы согласно своим требованиям. И наконец, есть возможность вызвать командный интерпретатор, в котором можно будет непосредственно запускать утилиты наподобие man:gpart[8], man:fdisk[8] и man:bsdlabel[8]. +[[configtuning-initial]] +=== Проектирование разметки разделов -[[bsdinstall-part-guided-manual]] -.Выбор способа разбиения: шаблонное (guided) или ручное (manual) -image::bsdinstall-part-guided-manual.png[] +По умолчанию схема разметки разделов для файловых систем включает одну файловую систему для всей системы. При использовании `UFS` может быть целесообразно рассмотреть использование нескольких файловых систем, если у вас достаточно места на диске или несколько дисков. При разметке файловых систем учитывайте, что жёсткие диски передают данные быстрее с внешних дорожек по сравнению с внутренними. Таким образом, небольшие и часто используемые файловые системы должны располагаться ближе к внешней части диска, а крупные разделы, такие как `/usr`, следует размещать ближе к внутренней части диска. Рекомендуется создавать разделы в следующем порядке: `/`, раздел подкачки, `/var` и `/usr`. + +Размер раздела `/var` зависит от предполагаемого использования машины. Этот раздел используется для хранения почтовых ящиков, файлов журналов и очередей печати. Почтовые ящики и файлы журналов могут достигать неожиданно больших размеров в зависимости от количества пользователей и срока хранения журналов. В среднем большинству пользователей редко требуется более одного гигабайта свободного места на диске в `/var`. + +[NOTE] +==== +Иногда в `/var/tmp` требуется много дискового пространства. При установке нового программного обеспечения утилиты управления пакетами извлекают временную копию пакетов в `/var/tmp`. У крупных пакетов, таких как Firefox или LibreOffice, могут возникнуть сложности во время установки, если в `/var/tmp` недостаточно места на диске. +==== + +Раздел `/usr` содержит множество файлов, поддерживающих систему, включая коллекцию портов FreeBSD и исходный код системы. Для этого раздела рекомендуется выделить не менее 2 гигабайт пространства. Также учтите, что домашние каталоги пользователей по умолчанию размещаются в `/usr/home`, но могут быть расположены на другом разделе. По умолчанию `/home` является символической ссылкой на `/usr/home`. + +При выборе размера разделов учитывайте требования к пространству. Нехватка места в одном разделе при почти полном отсутствии использования другого может создать проблемы. + +Как правило, размер раздела подкачки должен быть примерно в два раза больше объема физической памяти (RAM). Системам с малым объемом RAM (меньше для конфигураций с большим объемом памяти) может быть полезно иметь больше область подкачки. Слишком маленький объем подкачки может привести к неэффективности работы кода сканирования страниц виртуальной памяти и создать проблемы в будущем при добавлении памяти. + +На больших системах с несколькими SCSI-дисками или несколькими IDE-дисками, работающими на разных контроллерах, рекомендуется настраивать раздел подкачки на каждом диске, вплоть до четырёх дисков. Разделы подкачки должны быть примерно одинакового размера. Ядро может обрабатывать разделы произвольного размера, но внутренние структуры данных масштабируются до 4-кратного размера наибольшего раздела подкачки. Поддержание разделов подкачки примерно одинакового размера позволит ядру оптимально распределять пространство подкачки по дискам. Большие размеры подкачки могут вызвать предупреждение ядра о суммарном объёме настроенной подкачки. Лимит можно увеличить, выделив больше памяти для отслеживания распределения подкачки, как указано в сообщении с предупреждением. Это может облегчить восстановление после сбоя программы без необходимости перезагрузки системы. + +Правильное разделение системы на разделы предотвращает распространение фрагментации, возникающей в небольших разделах с высокой нагрузкой на запись, на преимущественно читаемые разделы. Размещение разделов с высокой нагрузкой на запись ближе к краю диска повышает производительность ввода-вывода в тех разделах, где это наиболее критично. Хотя производительность ввода-вывода в крупных разделах также может быть важной, их смещение ближе к краю диска не даст значительного прироста производительности по сравнению с перемещением `/var` к краю. [[bsdinstall-part-guided]] -=== Шаблонное (guided) разбиение +=== Разметка диска с использованием UFS с помощью мастера -Если в системе есть несколько дисков, то выберите один, на который будет устанавливаться FreeBSD. +При выборе этого метода отобразится меню с доступными дисками. Если подключено несколько дисков, выберите тот, на который будет установлена FreeBSD. [[bsdinstall-part-guided-disk]] -.Выбор из множества дисков -image::bsdinstall-part-guided-disk.png[] +.Выбор из нескольких дисков +image::bsdinstall-part-guided-disk.png["Показывает список дисков, на которые может быть установлена FreeBSD"] -Для FreeBSD может быть выделен весь диск или только его часть. Если выбирается btn:[Entire Disk], то создается стандартное разбиение, занимающее весь диск. Выбрав btn:[Partition], вы получите создание разделов в неиспользуемой области диска. +После выбора диска в следующем меню предлагается установить систему на весь диск или создать раздел в свободном пространстве. Если выбран btn:[Весь диск], автоматически создаётся общая схема разделов, занимающая весь диск. При выборе btn:[Раздел] создаётся схема разделов из неиспользуемого пространства на диске. [[bsdinstall-part-entire-part]] .Выбор всего диска или раздела -image::bsdinstall-part-entire-part.png[] +image::bsdinstall-part-entire-part.png["Меню с вопросом к пользователю, хочет ли он использовать все доступное пространство на диске или создать раздел"] + +После выбора варианта btn:[Весь диск] программа bsdinstall отображает диалоговое окно с предупреждением о том, что диск будет очищен. + +[[bsdinstall-ufs-warning]] +.Подтверждение +image::bsdinstall-ufs-warning.png["Меню, предупреждающее пользователя о том, что все данные на диске будут удалены, и запрашивающее подтверждение"] -По завершении разбиения дискового пространства внимательно просмотрите результат. Если была допущена ошибка, то вам предоставляется возможность либо вернуть конфигурацию к исходному состоянию нажав btn:[Revert], либо выполнить автоматическое переразбиение выбрав btn:[Auto]. Также разделы могут быть созданы, изменены или удалены вручную. Если результат разбиения корректен, выберите btn:[Finish] для продолжения установки. +Следующее меню показывает список доступных типов схем разделов. GPT обычно является наиболее подходящим выбором для компьютеров amd64. Более старые компьютеры, несовместимые с GPT, должны использовать MBR. Остальные схемы разделов, как правило, применяются для редких или устаревших компьютеров. Дополнительная информация доступна в таблице crossref:bsdinstall[partition-schemes,Схемы разделов]. + +[[bsdinstall-ufs-scheme]] +.Выбор схемы разделов +image::bsdinstall-part-manual-partscheme.png["Меню, показывающее пользователю различные типы существующих разделов и запрашивающее выбор одного из них"] + +После создания разметки разделов просмотрите её, чтобы убедиться, что она соответствует требованиям установки. Выбор btn:[Отменить (Revert)] вернёт разделы к исходным значениям. Нажатие btn:[Автоматически (Auto)] воссоздаст автоматические разделы FreeBSD. Разделы также можно создавать, изменять или удалять вручную. Когда разметка разделов будет правильной, выберите btn:[Готово (Finish)] для продолжения установки. [[bsdinstall-part-review]] -.Просмотр созданных разделов -image::bsdinstall-part-review.png[] +.Проверка созданных разделов +image::bsdinstall-part-review.png["Меню с созданными разделами"] + +После настройки дисков в следующем меню предоставляется последняя возможность внести изменения перед форматированием выбранных накопителей. Если изменения необходимы, выберите btn:[Назад], чтобы вернуться в главное меню разметки. btn:[Отменить & Выйти] завершает работу установщика без внесения изменений в накопитель. В противном случае выберите btn:[Применить], чтобы начать процесс установки. + +[[bsdinstall-ufs-final-confirmation]] +.Окончательное подтверждение +image::bsdinstall-final-confirmation.png["Меню, уведомляющее пользователя о том, что все изменения будут записаны на диск, и предупреждающее, что в случае продолжения существующие данные будут безвозвратно удалены."] + +Для продолжения процесса установки перейдите к разделу crossref:bsdinstall[bsdinstall-fetching-distribution, Загрузка файлов дистрибутива]. [[bsdinstall-part-manual]] -=== Ручное (manual) разбиение +=== Ручное разбиение на разделы -Ручное разбиение начинается с редактора разделов. +Выбор этого метода открывает редактор разделов: [[bsdinstall-part-manual-create]] .Ручное создание разделов -image::bsdinstall-part-manual-create.png[] +image::bsdinstall-part-manual-create.png["Меню с отображением редактора разделов."] -Перемещение подсвечивания на имя устройства (в этом примере - [.filename]#ada0#) и выбор btn:[Create] приведет вас к меню с перечнем _схем разбиения_. +Выделите диск для установки (в данном примере `ada0`) и нажмите btn:[Создать (Create)], чтобы отобразить меню доступных схем разделов: [[bsdinstall-part-manual-partscheme]] -.Выбор схемы разбиения -image::bsdinstall-part-manual-partscheme.png[] +.Ручное создание разделов +image::bsdinstall-part-manual-partscheme.png["Меню с различными типами схем разделов"] -Как правило, схема GPT является наиболее подходящей для PC-совместимых компьютеров. Для более старых операционных систем, которые несовместимы с GPT, может потребоваться разбиение MBR. Остальные схемы разбиения в общем используются для нераспространенных или старых компьютерных систем. +Для компьютеров на архитектуре amd64 обычно наиболее подходящим выбором является GPT. Старые компьютеры, несовместимые с GPT, должны использовать MBR. Остальные схемы разделов, как правило, применяются для редких или устаревших компьютеров. -.Схемы разбиения -[cols="1,1", frame="none", options="header"] +[[partition-schemes]] +.Схемы разделов +[cols="25h,~", frame="none", options="header"] |=== -<| Аббревиатура +<| Сокращение <| Описание |APM -|http://support.apple.com/kb/TA21692[Apple Partition Map], используемая на PowerPC(R) Macintosh(R). +|Apple Partition Map, используется в PowerPC(R). |BSD -|Метки BSD без MBR, иногда называемые "dangerously dedicated mode". За подробностями обратитесь к man:bsdlabel[8]. +|Метка BSD без MBR, иногда называемая _опасно выделенным режимом_, так как не-BSD утилиты для работы с дисками могут её не распознать. |GPT -|http://en.wikipedia.org/wiki/GUID_Partition_Table[Таблица разделов GUID.] +|link:https://en.wikipedia.org/wiki/GUID_Partition_Table[GUID Partition Table]. |MBR -|http://en.wikipedia.org/wiki/Master_boot_record[Master Boot Record.] - -|PC98 -|http://en.wikipedia.org/wiki/Pc9801[Разновидность MBR, используемая компьютерами NEC PC-98.] - -|VTOC8 -|Volume Table Of Contents, используемая компьютерами Sun SPARC64 и UltraSPARC. +|link:https://en.wikipedia.org/wiki/Master_boot_record[Master Boot Record]. |=== -После того, как схема разбиения определена, повторный выбор btn:[Create] приводит к созданию новых разделов диска. +После выбора и создания схемы разделов снова выберите btn:[Создать], чтобы создать разделы. Клавиша kbd:[Tab] используется для перехода между полями (после перебора btn:[<OK>], btn:[<Параметры>] и btn:[<Отмена>]). [[bsdinstall-part-manual-addpart]] -.Создание нового раздела -image::bsdinstall-part-manual-addpart.png[] - -Стандартная установка FreeBSD со схемой GPT создаст как минимум три раздела: +.Ручное создание разделов +image::bsdinstall-part-manual-addpart.png["Тип запрашиваемого меню", size, mountpoint and label for the new partition.] -.Стандартные GPT разделы FreeBSD -* `freebsd-boot` - загрузочный код FreeBSD. -* `freebsd-ufs` - файловая система UFS FreeBSD. -* `freebsd-swap` - FreeBSD область подкачки. +Стандартная установка FreeBSD с использованием GPT включает как минимум три раздела, включая либо UFS, либо ZFS: -Также необходимо упомянуть, что для разделов, которые будут содержать файловую систему ZFS FreeBSD следует задействовать тип раздела `freebsd-zfs`. Обратитесь к crossref:disks[filesystems-zfs,Файловая система ZFS]. Сведения об имеющихся в наличии типах разделов GPT содержатся в man:gpart[8]. +* `freebsd-boot` или `efi` - Содержит загрузочный код FreeBSD. +* `freebsd-ufs` - Файловая система FreeBSD UFS. +* `freebsd-zfs` - Файловая система ZFS в FreeBSD. Дополнительная информация о ZFS доступна в crossref:zfs[zfs,Файловая система ZFS (ZFS)]. +* `freebsd-swap` - область подкачки FreeBSD. -Разумеется, возможно создание большего количества разделов с файловыми системами, и некоторые пользователи предпочитают выделять отдельные разделы для таких файловых систем, как [.filename]#/#, [.filename]#/var#, [.filename]#/tmp#, и [.filename]#/usr#. Иллюстрация подобного разбиения приведена в <<bsdinstall-part-manual-splitfs>>. +Обратитесь к man:gpart[8] для описания доступных типов разделов GPT. -При указании размеров допускается использование общепринятых аббревиатур, таких как _K_ для килобайт, _M_ для мегабайт, или _G_ для гигабайт. +Можно создать несколько разделов файловой системы. Некоторые предпочитают традиционную схему с отдельными разделами для `/`, `/var`, `/tmp` и `/usr`. [TIP] ==== - -Должное выравнивание секторов обеспечивает наилучшую производительность, а создание разделов с размерами, кратными 4 Кбайт, помогает обеспечить правильное выравнивание как на дисках с размером сектора 512 байт, так и на устройствах с размером сектора 4 Кбайт. В общем, задание размеров, кратных 1 Мбайт или 1 Гбайт - это наиболее простой способ выполнить выравнивание начал разделов на позицию, кратную 4 Кбайт. Исключение: на данный момент размер раздела _freebsd-boot_ не должен превышать 512 Кбайт из-за ограничений загрузочного кода. +Обратите внимание, что `/tmp` можно добавить позже как файловую систему в памяти (man:tmpfs[5]) на системах с достаточным объемом оперативной памяти. ==== -В случае, если раздел будет содержать файловую систему, ей потребуется точка монтирования. Если планируется создать единственный раздел UFS, то точка монтирования должна быть [.filename]#/#. +См. crossref:bsdinstall[bsdinstall-part-manual-splitfs,Создание традиционных разделов файловой системы с разделением] для примера. -Также будет запрошена _метка_. Метка - это имя, присвоенное разделу. Имя устройства или его номер может измениться если устройство будет подключено к другому контроллеру или порту, а метка раздела останется неизменной. Ссылки на метки вместо имён устройств и номеров разделов в файлах типа [.filename]#/etc/fstab# делают систему более толерантной к замене оборудования. Метки GPT появляются после подключения диска в каталоге [.filename]#/dev/gpt/#. У других схем разбиения есть свои особенности поддержки меток, и их метки располагаются в других подкаталогах каталога [.filename]#/dev/#. +`Размер (Size)` может быть указан с общепринятыми сокращениями: _K_ для килобайт, _M_ для мегабайт или _G_ для гигабайт. [TIP] ==== +Правильное выравнивание секторов обеспечивает наилучшую производительность, а создание разделов с размерами, кратными 4 КБ, помогает гарантировать выравнивание на дисках с секторами размером 512 байт или 4 КБ. Как правило, использование размеров разделов, кратных 1 МБ или 1 ГБ, — это самый простой способ убедиться, что каждый раздел начинается с адреса, кратного 4 КБ. Есть одно исключение: раздел _freebsd-boot_ для загрузки из BIOS не должен превышать 512 КБ из-за ограничений старого загрузочного кода. Для загрузки с поддержкой UEFI такого ограничения нет. +==== -Во избежание конфликтов имен меток используйте уникальные имена для каждой файловой системы. Несколько букв, взятых от имени компьютера, его назначения или размещения может быть добавлено к метке. Например, корневому разделу UFS для компьютера в лаборатории можно присвоить метку `labroot` или `rootfs-lab`. +Для раздела, который будет содержать файловую систему, требуется `точка монтирования (Mountpoint)`. Если создается только один раздел UFS, точкой монтирования должен быть `/`. + +`Метка (Label)` — это имя, по которому раздел будет известен. Имена или номера дисков могут измениться, если диск подключён к другому контроллеру или порту, но метка раздела остаётся неизменной. Использование меток вместо имён дисков и номеров разделов в файлах, таких как `/etc/fstab`, делает систему более устойчивой к изменениям оборудования. Метки GPT отображаются в `/dev/gpt/` при подключении диска. Другие схемы разделения имеют свои возможности для меток, и их метки отображаются в разных каталогах в `/dev/`. + +[TIP] +==== +Используйте уникальные метки для каждого раздела, чтобы избежать конфликтов из-за одинаковых меток. Можно добавить несколько букв из имени компьютера, его назначения или местоположения. Например, используйте `labroot` или `rootfslab` для корневого раздела UFS на компьютере с именем `lab`. ==== [[bsdinstall-part-manual-splitfs]] -.Создание традиционного разбиения под файловые системы. +.Создание традиционных разделов файловой системы с разделением [example] ==== -Для традиционного разбиения, в котором каталоги [.filename]#/#, [.filename]#/var#, [.filename]#/tmp# и [.filename]#/usr# представляют собой отдельные файловые системы на их собственных разделах, создайте схему разбиения GPT, потом создайте разделы, как это указано ниже. Показанные размеры разделов являются типичными для жесткого диска размером 20Гб. Если диск большего размера, то будет уместным отвести больше места для раздела подкачки или для раздела с файловой системой [.filename]#/var#. Задействованные в этом примере метки имеют префикс `ex`, от слова "example", вам же рекомендуется использовать другие уникальные имена меток. +Для традиционной схемы разделов, где `/`, `/var`, `/tmp` и `/usr` являются отдельными файловыми системами на своих разделах, создайте схему разделов GPT, затем создайте разделы, как показано ниже. Указанные размеры разделов типичны для целевого диска размером 20 ГБ. Если на целевом диске доступно больше места, могут быть полезны увеличенные разделы подкачки или `/var`. Метки, указанные здесь, имеют префикс `ex` (от "example"), но читателям следует использовать другие уникальные значения меток, как описано выше. -По умолчанию, загрузчик [.filename]#gptboot# FreeBSD ожидает, что первый найденный раздел UFS будет корневым разделом ([.filename]#/#). +По умолчанию `gptboot` в FreeBSD ожидает, что первый UFS-раздел будет разделом `/`. [.informaltable] [cols="1,1,1,1", frame="none", options="header"] @@ -778,489 +526,445 @@ image::bsdinstall-part-manual-addpart.png[] | Тип раздела | Размер | Точка монтирования -| Метка +| Label |`freebsd-boot` |`512K` -| -| +| +| |`freebsd-ufs` |`2G` -|[.filename]#/# +|`/` |`exrootfs` |`freebsd-swap` |`4G` -| +| |`exswap` |`freebsd-ufs` |`2G` -|[.filename]#/var# +|`/var` |`exvarfs` |`freebsd-ufs` |`1G` -|[.filename]#/tmp# +|`/tmp` |`extmpfs` |`freebsd-ufs` -|соглашайтесь со значением по умолчанию (оставшаяся часть объема диска) -|[.filename]#/usr# +|принять значение по умолчанию (оставшаяся часть диска) +|`/usr` |`exusrfs` |=== ==== -Для продолжения установки по завершении создания необходимых разделов выберите btn:[Finish]. +После создания пользовательских разделов выберите btn:[Завершить (Finish)], чтобы продолжить установку и перейти к разделу crossref:bsdinstall[bsdinstall-fetching-distribution, Загрузка файлов дистрибутива]. + +[[bsdinstall-part-zfs]] +=== Разметка диска с использованием Root-on-ZFS с помощью мастера + +Этот режим разметки работает только с целыми дисками и полностью сотрёт все данные на диске. Основное меню настройки ZFS предоставляет несколько вариантов управления созданием пула. + +[[bsdinstall-zfs-menu]] +.Меню разметки ZFS +image::bsdinstall-zfs-menu.png["Меню с различными вариантами настройки пула ZFS"] + +Вот краткое описание пунктов этого меню: + +* `Установить (Install)` - Приступить к установке с выбранными параметрами. +* `Тип пула/диски (Pool Type/Disks)` - Настройте `Тип пула` и диск(и), которые будут составлять пул. Автоматический установщик ZFS в настоящее время поддерживает создание только одного vdev верхнего уровня, за исключением режима stripe. Для создания более сложных пулов воспользуйтесь инструкциями в crossref:bsdinstall[bsdinstall-part-shell, Разметка в режиме оболочки], чтобы создать пул. +* `Сканировать диски (Rescan Devices)` - Обновить список доступных дисков. +* `Информация о диске (Disk Info)` - Это меню позволяет просматривать информацию о каждом диске, включая таблицу разделов и другие данные, такие как модель устройства и серийный номер, если они доступны. +* `Имя пула (Pool Name)` - Укажите имя пула. По умолчанию используется имя _zroot_. +* `Принудительно использовать секторы 4K? (Force 4K Sectors?)` — Принудительное использование секторов размером 4K. По умолчанию установщик автоматически создает разделы, выровненные по границам 4K, и принудительно устанавливает использование секторов 4K в ZFS. Это безопасно даже для дисков с секторами размером 512 байт и имеет дополнительное преимущество: пулы, созданные на дисках с 512-байтными секторами, смогут в будущем работать с дисками, имеющими секторы 4K, — как для расширения хранилища, так и для замены вышедших из строя дисков. Нажмите kbd:[Enter], чтобы выбрать активацию или отказ от нее. +* `Шифровать диски (Encrypt Disks)?` - Шифрование дисков позволяет пользователю зашифровать диски с помощью GELI. Дополнительная информация о шифровании дисков доступна в crossref:disks[disks-encrypting-geli,“Шифрование дисков с помощью geli”]. Нажмите клавишу kbd:[Enter], чтобы выбрать, активировать его или нет. +* `Схема разделов (Partition Scheme)` - Выберите схему разделов. GPT рекомендуется в большинстве случаев. Нажмите клавишу kbd:[Enter] для выбора между различными вариантами. +* `Размер подкачки (Swap Size)` - Установите объем области подкачки. +* `Зеркалировать подкачку (Mirror Swap)?` - Определяет, нужно ли зеркалировать раздел подкачки между дисками. Учтите, что включение зеркалирования swap может нарушить работу дампов аварийных завершений. Нажмите kbd:[Enter], чтобы активировать или отклонить этот параметр. +* `Шифровать раздел подкачки (Encrypt Swap)?` - Определяет, следует ли шифровать раздел подкачки. При каждом запуске системы раздел подкачки будет зашифрован временным ключом, который удаляется после перезагрузки. Нажмите kbd:[Enter], чтобы выбрать, активировать эту функцию или нет. Дополнительная информация о шифровании раздела подкачки приведена в crossref:disks[swap-encrypting,"Шифрование раздела подкачки"]. + +Выберите kbd:[T], чтобы настроить `Тип пула (Pool Type)` и диски, которые будут входить в пул. + +[[bsdinstall-zfs-vdev_type]] +.Тип пула ZFS +image::bsdinstall-zfs-vdev_type.png["Меню выбора типа виртуального устройства. Например: stripe", mirror, raidz1] + +Вот сводка по `Типу пула`, который можно выбрать в этом меню: -[[bsdinstall-final-warning]] -== Завершение установки +* `stripe` - Чередование (striping) обеспечивает максимальный объем хранилища из всех подключенных устройств, но не предоставляет избыточности. Если выйдет из строя хотя бы один диск, данные в пуле будут потеряны безвозвратно. +* `mirror` - Зеркалирование сохраняет полную копию всех данных на каждом диске. Зеркалирование обеспечивает высокую производительность чтения, поскольку данные считываются со всех дисков параллельно. Производительность записи ниже, так как данные должны быть записаны на все диски в пуле. Допускает отказ всех дисков, кроме одного. Для этого варианта требуется как минимум два диска. +* `raid10` - Чередующиеся зеркала. Обеспечивает наилучшую производительность, но наименьший объем хранилища. Для этого варианта требуется четное количество дисков, минимум четыре. +* `raidz1` - RAID с одинарной избыточностью. Позволяет одновременный отказ одного диска. Для этого варианта требуется как минимум три диска. +* `raidz2` - Двухдисковая избыточная RAID. Позволяет одновременно отказать двум дискам. Для этой конфигурации требуется как минимум четыре диска. +* `raidz3` - Трехкратно избыточный RAID. Позволяет одновременно отказать трем дискам. Для этого варианта требуется как минимум пять дисков. -Следующий шаг - ваш последний шанс прервать установку и предотвратить изменение данных на жестком диске. +После выбора `Типа пула` отображается список доступных дисков, и пользователю предлагается выбрать один или несколько дисков для создания пула. Затем конфигурация проверяется, чтобы убедиться, что выбрано достаточное количество дисков. Если проверка не пройдена, выберите btn:[<Изменить выбор>], чтобы вернуться к списку дисков, или btn:[<Назад>], чтобы изменить `Тип пула`. -[[bsdinstall-final-confirmation]] -.Заключительное подтверждение -image::bsdinstall-final-confirmation.png[] +[[bsdinstall-zfs-disk_select]] +.Выбор диска +image::bsdinstall-zfs-disk_select.png["Меню с запросом количества дисков, добавляемых в пул"] -Для продолжения выберите btn:[Commit]. Если необходимо внести изменения, для возвращения к редактору разделов нажмите btn:[Back]. Выбор btn:[Revert & Exit] дает возможность выйти из установщика без внесения изменений на жесткий диск. +[[bsdinstall-zfs-vdev_invalid]] +.Неверный выбор +image::bsdinstall-zfs-vdev_invalid.png["Меню, указывающее, что выбрано недостаточно дисков."] -Продолжительность установки варьируется в зависимости от выбранного дистрибутива, способа установки и быстродействия компьютера. Далее последует очередь сообщений, информирующих о ходе установки. +Если один или несколько дисков отсутствуют в списке или если диски были подключены после запуска установщика, выберите btn:[- Повторное сканирование устройств (Rescan Devices)], чтобы обновить список доступных дисков. -Первым делом установщик запишет информацию о разделах на диск и отформатирует разделы посредством `newfs`. +[[bsdinstall-zfs-rescan-devices]] +.Пересканировать Устройства +image::bsdinstall-zfs-rescan-devices.png["Пересканирование устройств"] -Если выполняется установка по сети, то bsdinstall продолжит загрузку необходимых файлов дистрибутива. +Чтобы случайно не стереть не тот диск, можно использовать меню btn:[- Disk Info] для просмотра информации о каждом диске, включая таблицу разделов и другие данные, такие как модель устройства и серийный номер, если они доступны. + +[[bsdinstall-zfs-disk_info]] +.Анализ диска +image::bsdinstall-zfs-disk_info.png["Меню с информацией о разделах."] + +Выберите kbd:[N] для настройки `Имени пула (Pool Name)`. Введите желаемое имя, затем выберите btn:[<OK>], чтобы установить его, или btn:[<Отмена>], чтобы вернуться в главное меню и оставить имя по умолчанию. + +[[bsdinstall-zfs-pool-name]] +.Имя пула +image::bsdinstall-zfs-pool-name.png["Меню с запросом имени пула."] + +Выберите kbd:[S], чтобы установить размер раздела подкачки. Введите желаемый размер раздела подкачки, затем выберите btn:[<OK>] для подтверждения или btn:[<Cancel>], чтобы вернуться в главное меню и оставить значение по умолчанию. + +[[bsdinstall-zfs-swap-amount]] +.Размер раздела подкачки +image::bsdinstall-zfs-swap-amount.png["Меню с запросом объема области подкачки"] + +После установки всех необходимых значений выберите в верхней части меню опцию btn:[>>> Установить]. Установщик предоставит последнюю возможность отменить процесс перед уничтожением содержимого выбранных дисков для создания пула ZFS. + +[[bsdinstall-zfs-warning]] +.Последний шанс +image::bsdinstall-zfs-warning.png["Меню, предупреждающее пользователя о потере данных"] + +Если включено шифрование дисков GELI, установщик дважды запросит парольную фразу, используемую для шифрования дисков. Затем начнётся инициализация шифрования. + +[[bsdinstall-zfs-geli_password]] +.Пароль для шифрования диска +image::bsdinstall-zfs-geli_password.png["Меню с запросом пароля для шифрования устройств."] + +[[bsdinstall-zfs-init-encription]] +.Инициализация шифрования +image::bsdinstall-zfs-init-encription.png["Меню, показывающее, что шифрование инициализируется."] + +Установка затем продолжается в обычном режиме. Для продолжения установки перейдите к разделу crossref:bsdinstall[bsdinstall-fetching-distribution, Получение файлов дистрибутива]. + +[[bsdinstall-part-shell]] +=== Режим разметки разделов в оболочке + +При создании сложных установок меню разметки `bsdinstall` может не предоставлять необходимого уровня гибкости. Опытные пользователи могут выбрать опцию btn:[Shell] в меню разметки, чтобы вручную разметить диски, создать файловую систему(ы), заполнить `/tmp/bsdinstall_etc/fstab` и смонтировать файловые системы в `/mnt`. После выполнения этих действий введите `exit`, чтобы вернуться в `bsdinstall` и продолжить установку. + +[[bsdinstall-fetching-distribution]] +== Загрузка файлов дистрибутива + +Время установки может варьироваться в зависимости от выбранных дистрибутивов, носителя установки и скорости компьютера. Серия сообщений будет показывать ход выполнения. + +Сначала установщик форматирует выбранный диск(и) и инициализирует разделы. Затем, в случае `bootonly media` или `mini memstick`, он загружает выбранные компоненты: [[bsdinstall-distfile-fetching]] .Загрузка файлов дистрибутива -image::bsdinstall-distfile-fetching.png[] +image::bsdinstall-distfile-fetching.png["Меню загрузки различных компонентов."] -Далее последует проверка целостности файлов дистрибутива, чтобы удостовериться, что они не были повреждены во время загрузки или чтения с установочного носителя. +Затем проверяется целостность файлов дистрибутива, чтобы убедиться, что они не были повреждены при загрузке или неправильно прочитаны с установочного носителя: [[bsdinstall-distfile-verify]] .Проверка файлов дистрибутива -image::bsdinstall-distfile-verifying.png[] +image::bsdinstall-distfile-verifying.png["Меню с проверкой различных компонентов."] -И в заключение, проверенные файлы распаковываются на диск. +Наконец, проверенные файлы дистрибутива извлекаются на диск: [[bsdinstall-distfile-extract]] .Извлечение файлов дистрибутива -image::bsdinstall-distfile-extracting.png[] +image::bsdinstall-distfile-extracting.png["Меню с извлечением различных компонентов."] -Как только запрошенные файлы дистрибутива распакуются, bsdinstall приступит к выполнению послеустановочных конфигурационных задач (смотрите <<bsdinstall-post>>). +После извлечения всех запрошенных файлов дистрибутива `bsdinstall` отображает первый экран настройки после установки. Доступные параметры пост-конфигурации описаны в следующем разделе. [[bsdinstall-post]] -== После установки - -После успешной установки FreeBSD последуют меню настройки различных опций. Настройки опций могут быть изменены путем повторного входа в соответствующие разделы финального конфигурационного меню перед загрузкой в свежеустановленную систему FreeBSD. +== Сетевые интерфейсы, учетные записи, часовой пояс, службы и защита [[bsdinstall-post-root]] -=== Установка пароля пользователя `root` +=== Установка пароля `root` -Установка пароля пользователя `root` - обязательна. Заметьте, что во время ввода пароля набираемые символы не отображаются на экране. После ввода будет запрошен повторный ввод пароля. Это помогает предотвратить опечатки при наборе. +Сначала необходимо установить пароль `root`. При вводе пароля символы не отображаются на экране. Пароль нужно ввести дважды, чтобы избежать ошибок при наборе. [[bsdinstall-post-set-root-passwd]] -.Установка пароля пользователя `root` -image::bsdinstall-post-root-passwd.png[] - -Настройки опций продолжатся после успешной установки пароля. +.Установка пароля `root` +image::bsdinstall-post-root-passwd.png["Меню с запросом пароля пользователя root."] [[bsdinstall-config-network-dev]] === Настройка сетевых интерфейсов -[NOTE] -==== -Настройка сетевых интерфейсов будет опущена в случае, если она уже была выполнена как часть подготовки при установке _bootonly_. -==== - -Далее будет отображен перечень всех сетевых интерфейсов, найденных на компьютере. Выберите тот, который планируете настроить. +Далее приведён список сетевых интерфейсов, обнаруженных на компьютере. Выберите интерфейс для настройки. [[bsdinstall-configure-net-interface]] .Выберите сетевой интерфейс -image::bsdinstall-configure-network-interface.png[] - -[[bsdinstall-configure-net-wireless]] -==== Настройка беспроводного сетевого интерфейса - -Если выбран беспроводной сетевой интерфейс, то для подключения к сети потребуется ввести параметры сетевой идентификации и безопасности. - -Беспроводные сети распознаются по так называемому Service Set Identifier, или SSID. SSID - это краткое уникальное имя, присваиваемое каждой сети. +image::bsdinstall-configure-network-interface.png["Меню с различными сетевыми интерфейсами для настройки."] -Большинство беспроводных сетей шифруют передаваемые данные чтобы защитить их от неавторизированного прослушивания. Настоятельно рекомендуется применять стандарт WPA2. Более старые стандарты, например WEP, не обеспечивают достаточного уровня безопасности. - -Первым делом, при подключении к беспроводной сети необходимо выполнить поиск беспроводных точек доступа. +Если выбран интерфейс Ethernet, установщик перейдет сразу к меню, показанному в crossref:bsdinstall[bsdinstall-configure-net-ipv4,Выбор IPv4-сети]. Если выбран беспроводной сетевой интерфейс, система выполнит поиск точек доступа: [[bsdinstall-wireless-scan]] -.Поиск беспроводных точек доступа -image::bsdinstall-configure-wireless-scan.png[] +.Сканирование беспроводных точек доступа +image::bsdinstall-configure-wireless-scan.png["Меню сканирования беспроводных сетей."] -Список найденных сетей будет содержать несколько SSID с описанием типов шифрования, поддерживаемых обнаруженными беспроводными сетями. Если искомый SSID не появляется в списке, то запустите сканирование повторно, выбрав btn:[Rescan]. Если искомая сеть снова не появится в списке, проверьте соединение с антенной или попробуйте разместить компьютер ближе к точке доступа. Запускайте повторный поиск после каждого вашего действия. +Беспроводные сети идентифицируются по имени Service Set Identifier (SSID) — короткому уникальному названию каждой сети. Обнаруженные при сканировании SSID перечислены ниже, вместе с описанием доступных типов шифрования для каждой сети. Если нужный SSID не отображается в списке, выберите btn:[Повторить сканирование (Rescan)], чтобы выполнить сканирование снова. Если нужная сеть по-прежнему не отображается, проверьте подключение антенны или попробуйте переместить компьютер ближе к точке доступа. После каждого изменения выполняйте повторное сканирование. [[bsdinstall-wireless-accesspoints]] .Выбор беспроводной сети -image::bsdinstall-configure-wireless-accesspoints.png[] +image::bsdinstall-configure-wireless-accesspoints.png["Меню с различными беспроводными сетями для подключения."] -После выбора сети потребуется ввести дополнительную информацию о соединении. Для WPA2 потребуется пароль (также известный как Pre-Shared Key или PSK). В целях безопасности набираемые в поле ввода пароля символы на экране отображаются звездочками. +Далее введите информацию для шифрования, чтобы подключиться к выбранной беспроводной сети. Настоятельно рекомендуется использовать шифрование WPA2 вместо устаревших типов, таких как WEP, которые обеспечивают низкий уровень безопасности. Если сеть использует WPA2, введите пароль, также известный как Pre-Shared Key (PSK). В целях безопасности вводимые символы отображаются звездочками. [[bsdinstall-wireless-wpa2]] .Настройка WPA2 -image::bsdinstall-configure-wireless-wpa2setup.png[] - -После выбора беспроводной сети и ввода сопутствующих параметров безопасности последует настройка сетевых протоколов. +image::bsdinstall-configure-wireless-wpa2setup.png["Меню с запросом пароля для беспроводной сети."] -[[bsdinstall-ipv4]] -==== Настройка сетевых протоколов: IPv4 - -Определитесь, есть ли необходимость в подключении к сети IPv4. Это наиболее распространённый сетевой протокол. +Затем выберите, нужно ли настраивать IPv4-адрес на Ethernet или беспроводном интерфейсе: [[bsdinstall-configure-net-ipv4]] -.Выберите настройку протокола IPv4 -image::bsdinstall-configure-network-interface-ipv4.png[] +.Выберите сеть IPv4 +image::bsdinstall-configure-network-interface-ipv4.png["Меню, указывающее, нужно ли настраивать IPv4 для выбранного интерфейса."] -Существует два способа настройки протокола IPv4 на сетевом интерфейсе. Сервис _DHCP_ автоматически установит корректную конфигурацию сетевого интерфейса, и это - предпочтительный способ настройки. _Статическая_ конфигурация требует ручного ввода настроек протокола IPv4. +Существует два способа настройки IPv4. DHCP автоматически правильно настроит сетевой интерфейс и должен использоваться, если в сети есть DHCP-сервер. В противном случае, информацию об адресации необходимо ввести вручную как статическую конфигурацию. [NOTE] ==== -Не пытайтесь ввести произвольные данные, они работать не будут. Получите перечисленную в <<bsdinstall-collect-network-information>> информацию у сетевого администратора или поставщика услуг Интернет. +Не вводите произвольные сетевые настройки, так как это не сработает. Если DHCP-сервер недоступен, получите информацию, указанную в crossref:bsdinstall[bsdinstall-collect-network-information, Необходимая информация о сети], у администратора сети или интернет-провайдера. ==== -[[bsdinstall-net-ipv4-dhcp-config]] -===== Настройка протокола IPv4 на сетевом интерфейсе посредством DHCP - -Если в сети есть сервис DHCP, то для автоматического конфигурирования сетевого интерфейса выберите btn:[Yes]. +Если доступен DHCP-сервер, выберите btn:[Да] в следующем меню для автоматической настройки сетевого интерфейса. Установщик может показаться зависшим на минуту или около того, пока он находит DHCP-сервер и получает адресную информацию для системы. [[bsdinstall-net-ipv4-dhcp]] -.Выбор настройки протокола IPv4 посредством DHCP -image::bsdinstall-configure-network-interface-ipv4-dhcp.png[] +.Выберите конфигурацию IPv4 DHCP +image::bsdinstall-configure-network-interface-ipv4-dhcp.png["Меню, указывающее, нужно ли настраивать DHCP для выбранного интерфейса."] -[[bsdinstall-net-ipv4-static-config]] -===== Статическая настройка протокола IPv4 на сетевом интерфейсе - -Статическая настройка сетевого интерфейса требует ввода некоторой информации о подключении IPv4. +Если DHCP-сервер недоступен, выберите btn:[Нет] и введите следующую информацию об адресации в этом меню: [[bsdinstall-net-ipv4-static]] -.Статическая настройка IPv4 на сетевом интерфейсе -image::bsdinstall-configure-network-interface-ipv4-static.png[] - -* `IP Address` - адрес IPv4, который должен быть установлен на этом компьютере. Этот адрес должен быть уникальным и не должен использоваться другим оборудованием в локальной сети. -* `Subnet Mask` - маска, используемая в локальной сети. Часто маска имеет значение `255.255.255.0`. -* `Default Router` - IP адрес маршрутизатора для этого подключения. Обычно этот адрес установлен на маршрутизаторе или ином сетевом оборудовании, которое соединяет локальную сеть с сетью Интернет. Также известен, как _шлюз по умолчанию (default gateway)_. +.Статическая настройка IPv4 +image::bsdinstall-configure-network-interface-ipv4-static.png["Меню запроса данных для настройки сети IPv4."] -[[bsdinstall-ipv6]] -==== Настройка сетевых протоколов: IPv6 +* `IP-адрес` - IPv4-адрес, назначенный этому компьютеру. Адрес должен быть уникальным и не должен уже использоваться другим устройством в локальной сети. +* `Маска подсети (Subnet Mask)` - Маска подсети для сети. +* `Шлюз по умолчанию (Default Router)` - IP-адрес сетевого шлюза по умолчанию. -IPv6 это более новый сетевой протокол. Если есть необходимость и возможность подключения к сети IPv6, выберите в этом меню btn:[Yes]. +Следующий экран спросит, нужно ли настраивать интерфейс для IPv6. Если IPv6 доступен и нужен, выберите btn:[Да], чтобы включить его. [[bsdinstall-net-ipv6]] -.Выберите настройку протокола IPv6 на сетевом интерфейсе -image::bsdinstall-configure-network-interface-ipv6.png[] +.Выберите сеть IPv6 +image::bsdinstall-configure-network-interface-ipv6.png["Меню, указывающее, требуется ли настройка IPv6 для выбранного интерфейса."] -Для протокола IPv6 также возможны два способа настройки сетевого интерфейса. _SLAAC_ или _StateLess Address AutoConfiguration_ автоматически установит корректные настройки сетевого интерфейса. _Статическая_ конфигурация требует ручного ввода настроек протокола IPv6. +В IPv6 также есть два метода настройки. Stateless Address Autoconfiguration (SLAAC) автоматически запрашивает правильную конфигурационную информацию у локального маршрутизатора. Подробнее см. http://tools.ietf.org/html/rfc4862[rfc4862]. Статическая настройка требует ручного ввода сетевой информации. -[[bsdinstall-net-ipv6-slaac-config]] -===== IPv6 SLAAC - -SLAAC позволяет сетевому элементу запросить у локального маршрутизатора необходимую для автоматической настройки информацию. За подробностями обратитесь к http://tools.ietf.org/html/rfc4862[RFC4862]. +Если доступен маршрутизатор IPv6, выберите btn:[Да] в следующем меню для автоматической настройки сетевого интерфейса. Установщик может на минуту или около того показаться зависшим, пока он ищет маршрутизатор и получает адресную информацию для системы. [[bsdinstall-net-ipv6-slaac]] -.Выберите настройку протокола IPv6 посредством SLAAC -image::bsdinstall-configure-network-interface-slaac.png[] - -[[bsdinstall-net-ipv6-static-config]] -===== Статическая настройка протокола IPv6 на сетевом интерфейсе +.Выберите конфигурацию IPv6 SLAAC +image::bsdinstall-configure-network-interface-slaac.png["Меню, указывающее, нужно ли настраивать SLAAC для выбранного интерфейса."] -Статическая настройка сетевого интерфейса требует ручного ввода информации о IPv6 подключении. +Если маршрутизатор IPv6 недоступен, выберите btn:[Нет] и введите следующую информацию о настройке адресации в этом меню: [[bsdinstall-net-ipv6-static]] -.Статическая настройка протокола IPv6 -image::bsdinstall-configure-network-interface-ipv6-static.png[] +.Статическая настройка IPv6 +image::bsdinstall-configure-network-interface-ipv6-static.png["Меню запрашивает данные для настройки сети IPv6."] -* `IPv6 Address` - вводимый вручную IP адрес, который присвоен этому компьютеру. Этот адрес должен быть уникальным и не должен быть занят другим оборудованием в локальной сети. -* `Default Router` - IPv6 адрес маршрутизатора для этой сети. Обычно, это адрес маршрутизатора или другого сетевого оборудования, которое соединяет локальную сеть с сетью Интернет. Также известен как _шлюз по умолчанию_. +* `IPv6-адрес` - IPv6-адрес, назначенный этому компьютеру. Адрес должен быть уникальным и не использоваться другим устройством в локальной сети. +* `Шлюз по умолчанию (Default Router)` - IPv6-адрес шлюза по умолчанию в сети. -[[bsdinstall-net-dns]] -==== Настройка Резолвера DNS - -_Domain Name System_ (или _DNS_) Резолвер выполняет преобразования имен хостов в сетевые адреса, а также преобразования сетевых адресов в имена хостов. Если для автоматического конфигурирования сетевого интерфейса использовался DHCP или SLAAC, то информация о Резолвере может уже присутствовать в системе. Иначе, впишите в поле Search имя локального домена. DNS #1 и DNS #2 - это IP адреса локальных серверов DNS. По крайней мере один сервер должен быть указан. +Последнее меню настройки сети используется для конфигурации резолвера Domain Name System (DNS), который преобразует имена хостов в сетевые адреса и обратно. Если для автоматической настройки сетевого интерфейса использовались DHCP или SLAAC, значения в `Resolver Configuration` могут быть уже заполнены. В противном случае введите имя домена локальной сети в поле `Search`. `DNS #1` и `DNS #2` — это IPv4 и/или IPv6-адреса DNS-серверов. Требуется указать хотя бы один DNS-сервер. [[bsdinstall-net-dns-config]] -.Конфигурирование Резолвера DNS -image::bsdinstall-configure-network-ipv4-dns.png[] +.Конфигурация DNS +image::bsdinstall-configure-network-ipv4-dns.png["Меню запрашивает данные для настройки DNS в сети."] -[[bsdinstall-timezone]] -=== Установка часового пояса +После настройки интерфейса выберите зеркальный сайт, расположенный в том же регионе мира, что и компьютер, на который устанавливается FreeBSD. Файлы можно загрузить быстрее, если зеркало находится ближе к целевому компьютеру, что сокращает время установки. + +[TIP] +==== +Выбор `ftp://download.freebsd.org (Основной сайт)` автоматически перенаправит на ближайший зеркальный сервер. +==== -Установка часового пояса для вашей машины позволит ей автоматически корректировать время согласно местным законам и правильно выполнять остальные зависимые от часового пояса функции. +[[bsdinstall-netinstall-mirror]] +.Выбор зеркала +image::bsdinstall-netinstall-mirrorselect.png["Меню выбора сетевого зеркала."] -Данный пример верен для машины, находящейся в восточном часовом поясе Соединенных Штатов. Разумеется, ваши настройки должны соответствовать вашему географическому местоположению. +[[bsdinstall-timezone]] +=== Установка часового пояса -[[bsdinstall-local-utc]] -.Выбор местного времени или времени UTC -image::bsdinstall-set-clock-local-utc.png[] +Следующая серия меню используется для определения правильного местного времени путем выбора географического региона, страны и часовой зоны. Установка часовой зоны позволяет системе автоматически корректировать региональные изменения времени, такие как переход на летнее время, и правильно выполнять другие функции, связанные с часовыми зонами. -Выберите btn:[Yes] или btn:[No] согласно тому, как настроены часы вашего компьютера, далее нажмите kbd:[Enter]. Если вы не знаете какое значение выбрать, UTC или местное, то нажмите btn:[No] для того, чтобы выбрать наиболее распространённую конфигурацию - местное время. +Пример, приведенный здесь, предназначен для машины, находящейся в материковой часовой зоне Испании, Европа. Выбор будет варьироваться в зависимости от географического местоположения. [[bsdinstall-timezone-region]] .Выберите регион -image::bsdinstall-timezone-region.png[] +image::bsdinstall-timezone-region.png["Меню выбора региона часовой зоны."] -Соответствующий регион выбирается при помощи клавиш навигации и подтверждается нажатием клавиши kbd:[Enter]. +Соответствующий регион выбирается с помощью клавиш со стрелками, а затем нажатием kbd:[Enter]. [[bsdinstall-timezone-country]] .Выберите страну -image::bsdinstall-timezone-country.png[] +image::bsdinstall-timezone-country.png["Меню выбора страны для часовой зоны."] -Выберите необходимую страну при помощи клавиш навигации и подтвердите выбор клавишей kbd:[Enter]. +Выберите соответствующую страну с помощью клавиш со стрелками и нажмите kbd:[Enter]. [[bsdinstall-timezone-zone]] -.Выберите часовой пояс -image::bsdinstall-timezone-zone.png[] +.Выбор часовой зоны +image::bsdinstall-timezone-zone.png["Меню запроса часовой зоны."] -Соответствующий часовой пояс выбирается клавишами навигации и подтверждается нажатием клавиши kbd:[Enter]. +Используя клавиши со стрелками, выберите подходящую часовую зону и нажмите kbd:[Enter]. [[bsdinstall-timezone-confirmation]] -.Подтверждение выбора часового пояса -image::bsdinstall-timezone-confirm.png[] +.Подтверждение часовой зоны +image::bsdinstall-timezone-confirm.png["Меню с запросом подтверждения выбранной часовой зоны."] -Подтвердите, что аббревиатура для часового пояса является приемлемой. Если данная опция настроена верно, то нажмите клавишу kbd:[Enter] для продолжения послеустановочного конфигурирования. +Убедитесь, что аббревиатура часовой зоны верна. -[[bsdinstall-sysconf]] -=== Активирование дополнительных сетевых сервисов +[[bsdinstall-timezone-date]] +.Выбор даты +image::bsdinstall-timezone-date.png["Меню запроса системной даты."] -На данном этапе установщик предлагает отметить дополнительные сетевые сервисы, которые будут запускаться при загрузке системы. Все нижеследующие сервисы не являются обязательными. +Выбор нужной даты осуществляется с помощью клавиш со стрелками, после чего нажимается btn:[Установить дату]. В противном случае можно пропустить выбор даты, нажав btn:[Пропустить]. -[[bsdinstall-config-serv]] -.Выбор дополнительных активируемых сервисов -image::bsdinstall-config-services.png[] +[[bsdinstall-timezone-time]] +.Выбор времени +image::bsdinstall-timezone-time.png["Меню запроса системного времени."] -.Дополнительные сервисы -* `sshd` - Secure Shell (SSH) демон для безопасного удаленного доступа. -* `moused` - Обеспечивает использование мыши в системной консоли. -* `ntpd` - Network Time Protocol (NTP) демон для автоматической синхронизации времени. -* `powerd` - Системная утилита для контроля потребляемой мощности и профилей энергосбережения. +Подходящее время выбирается с помощью клавиш со стрелками, а затем нажатием btn:[Установить время]. В противном случае можно пропустить выбор времени, нажав btn:[Пропустить]. -[[bsdinstall-crashdump]] -=== Разрешение сохранения аварийных дампов +[[bsdinstall-sysconf]] +=== Включение сервисов -Далее, bsdinstall запросит, будет ли разрешено создание аварийных дампов (crash dump) на целевой системе. Сохранение аварийных дампов может быть весьма полезным при поиске неполадок в системе, поэтому пользователям рекомендуется при всякой возможности включать сохранение аварийных дампов. Выберите btn:[Yes] для разрешения сохранения аварийных дампов или btn:[No] для отмены их сохранения и продолжения послеустановочной настройки. +Следующее меню используется для настройки системных служб, которые будут запускаться при загрузке системы. Все эти службы являются опциональными. Запускайте только те службы, которые необходимы для функционирования системы. -[[bsdinstall-config-crashdump]] -.Разрешение сохранения аварийных дампов -image::bsdinstall-config-crashdump.png[] +[[bsdinstall-config-serv]] +.Выбор дополнительных служб для включения +image::bsdinstall-config-services.png["Меню с доступными сервисами."] + +Вот перечень служб, которые можно включить в этом меню: + +* `local_unbound` — Включить локальный DNS-резолвер unbound. Необходимо учитывать, что данная конфигурация предназначена только для использования в качестве локального кэширующего пересылающего резолвера. Если цель - настроить резолвер для всей сети, установите пакет package:dns/unbound[]. +* `sshd` — демон Secure Shell (SSH), используемый для удалённого доступа к системе через зашифрованное соединение. Включайте эту службу только если системе необходимо быть доступной для удалённых входов. +* `moused` — Включите эту службу, если мышь будет использоваться в командной строке системной консоли. +* `ntpdate` — Включить автоматическую синхронизацию времени при загрузке. Обратите внимание, что функциональность этой программы теперь доступна в демоне man:ntpd[8], а утилита man:ntpdate[8] вскоре будет исключена. +* `ntpd` — демон протокола сетевого времени (NTP) для автоматической синхронизации часов. Включите эту службу, если хотите синхронизировать системные часы с удалённым сервером времени или пулом серверов. +* `powerd` — Утилита управления питанием системы для контроля питания и энергосбережения. +* `dumpdev` — Дампы памяти полезны при отладке проблем с системой, поэтому пользователям рекомендуется их включить. + +[[bsdinstall-hardening]] +=== Включение параметров усиленной безопасности + +Следующее меню используется для настройки параметров безопасности, которые будут включены. Все эти параметры необязательны, но их использование рекомендуется. + +[[bsdinstall-hardening-options]] +.Выбор параметров усиленной безопасности +image::bsdinstall-hardening.png["Меню, показывающее различные варианты усиления безопасности."] + +Вот сводка опций, которые можно включить в этом меню: + +* `hide_uids` — Скрывать процессы, выполняемые от имени других пользователей (UID). Это предотвращает возможность непривилегированным пользователям видеть запущенные процессы других пользователей. +* `hide_gids` — Скрывать процессы, выполняемые от имени других групп (GID). Это предотвращает возможность непривилегированных пользователей видеть выполняемые процессы других групп. +* `hide_jail` — Скрывать процессы, выполняющиеся в клетке. Это предотвращает возможность непривилегированным пользователям видеть процессы, выполняющиеся внутри клетки. +* `read_msgbuf` — Запретить чтение буфера сообщений ядра непривилегированным пользователям. Предотвращает возможность использования непривилегированными пользователями man:dmesg[8] для просмотра сообщений из буфера журнала ядра. +* `proc_debug` — Отключает средства отладки процессов для непривилегированных пользователей. Отключает различные сервисы отладки межпроцессного взаимодействия для непривилегированных пользователей, включая некоторую функциональность procfs, `ptrace()` и `ktrace()`. Обратите внимание, что это также заблокирует работу инструментов отладки, таких как man:lldb[1], man:truss[1] и man:procstat[1], а также некоторых встроенных средств отладки в определённых скриптовых языках, например PHP. +* `random_pid` — Рандомизировать PID процессов. +* `clear_tmp` — очистка `/tmp` при запуске системы. +* `disable_syslogd` — Отключить открытие сетевого сокета syslogd. По умолчанию FreeBSD запускает syslogd в безопасном режиме с параметром `-s`, что предотвращает прослушивание входящих UDP-запросов на порту 514. При включении этой опции syslogd будет запущен с параметром `-ss`, что запрещает ему открывать какие-либо порты. Подробнее см. man:syslogd[8]. +* `disable_sendmail` — Отключить почтовый транспортный агент sendmail. +* `secure_console` — заставляет командную строку запрашивать пароль `root` при входе в однопользовательский режим. +* `disable_ddtrace` — DTrace может работать в режиме, который влияет на работающее ядро. Деструктивные действия не могут быть использованы, если они явно не включены. Используйте `-w` для включения этой опции при работе с DTrace. Для получения дополнительной информации см. man:dtrace[1]. +* `enable_aslr` — Включить рандомизацию раскладки адресного пространства. Для получения дополнительной информации о рандомизации раскладки адресного пространства можно обратиться к link:https://en.wikipedia.org/wiki/Address_space_layout_randomization[статье в Википедии]. [[bsdinstall-addusers]] === Добавление пользователей -Добавление хотя бы одного пользователя в процессе установки позволит эксплуатировать систему исключая необходимость входа под учетной записью `root`. Работа в системе с правами пользователя `root` особенна тем, что по существу нет ограничений или защиты от действий пользователя. Вход под обычным пользователем является более благоразумным и безопасным. +Следующее меню предлагает создать хотя бы одну учетную запись пользователя. Рекомендуется входить в систему под учетной записью пользователя, а не как `root`. При входе под `root` практически отсутствуют ограничения или защита от возможных действий. Вход под обычным пользователем безопаснее и надежнее. -Для добавления новых пользователей выберите btn:[Yes]. +Выберите btn:[Да], чтобы добавить новых пользователей. [[bsdinstall-add-user1]] -.Добавление пользовательских учетных записей -image::bsdinstall-adduser1.png[] +.Добавить учетные записи пользователей +image::bsdinstall-adduser1.png["Меню с запросом о желании пользователя быть добавленным в систему."] -Введите информацию о новом пользователе. +Следуйте подсказкам и введите запрашиваемую информацию для учетной записи пользователя. Пример, показанный в crossref:bsdinstall[bsdinstall-add-user2,Ввод информации о пользователе], создает учетную запись пользователя `asample`. [[bsdinstall-add-user2]] -.Ввод информации о пользователе -image::bsdinstall-adduser2.png[] - -.Информация о пользователе -* `Username` - Имя, которое будет набирать пользователь для входа в систему. Часто оно формируется из объединенных вместе первой буквы имени и фамилии. -* `Full name` - Полное имя пользователя. -* `Uid` - Идентификатор пользователя. Обычно это поле не заполняется, система сама присвоит ему значение. -* `Login group` - Имя группы для этого пользователя. Обычно это поле также не заполняется, система поставит значение по умолчанию. -* `Invite _user_ into other groups?` - Перечень групп, в которые будет внесен пользователь. -* `Login class` - Обычно оставляется пустым для принятия значения по умолчанию. -* `Shell` - Интерактивная оболочка для этого пользователя. В данном примере была выбрана оболочка man:csh[1]. -* `Home directory` - Домашний каталог пользователя. Как правило, значение по умолчанию является корректным. -* `Home directory permissions` - Права на домашний каталог пользователя. Значение по умолчанию является корректным в большинстве случаев. -* `Use password-based authentication?` - Обычно "yes". -* `Use an empty password?` - Обычно "no". -* `Use a random password?` - Обычно "no". -* `Enter password` - Пароль для этого пользователя. Набираемые символы не отображаются на экране. -* `Enter password again` - Пароль необходимо ввести еще раз (для сверки). -* `Lock out the account after creation?` - Обычно "no". - -После заполнения необходимых полей будет отображен итог и система переспросит, корректны ли введённые данные. Если во время ввода информации была допущена ошибка, то необходимо ответить `no` и ввести данные еще раз. Если вас всё устраивает, выберите `yes` для создания новой учетной записи пользователя. +.Введите информацию о пользователе +image::bsdinstall-adduser2.png["Меню, запрашивающее различную информацию для нового пользователя."] + +Вот сводка информации для ввода: + +* `Имя пользователя (Username)` — Имя пользователя, которое будет использоваться для входа. Обычно применяется соглашение, согласно которому имя пользователя формируется из первой буквы имени и фамилии, при условии что каждое имя пользователя уникально в системе. Имя пользователя чувствительно к регистру и не должно содержать пробелов. +* `Полное имя (Full name)` — Полное имя пользователя. Может содержать пробелы и используется в качестве описания учётной записи пользователя. +* `Uid` - Идентификатор пользователя. Обычно оставляется пустым, чтобы система автоматически назначила значение. +* `Группа (Login group)` - Группа пользователя. Обычно оставляется пустым для использования значения по умолчанию. +* `Добавить _пользователя_ в другие группы?` — Дополнительные группы, в которые будет добавлен пользователь. Если пользователю нужны административные права, укажите здесь `wheel`. +* `Класс логина (Login class)` - Обычно оставляется пустым для значений по умолчанию. +* `Оболочка (Shell)` - Введите одно из предложенных значений, чтобы установить интерактивную оболочку для пользователя. Дополнительную информацию об оболочках см. в crossref:basics[shells,Оболочки]. +* `Домашний каталог (Home directory)` - Домашний каталог пользователя. Обычно значение по умолчанию является правильным. +* `Права доступа к домашнему каталогу (Home directory permissions)` - Права доступа к домашнему каталогу пользователя. Обычно значение по умолчанию является правильным. +* `Использовать аутентификацию на основе пароля (Use password-based authentication)?` - Обычно `yes`, чтобы пользователь вводил пароль при входе. +* `Использовать пустой пароль (Use an empty password)?` - Обычно `нет`, так как пустые или простые пароли ненадёжны. +* `Использовать случайный пароль (Use a random password)?` - Обычно `нет`, чтобы пользователь мог установить свой пароль в следующем запросе. +* `Введите пароль (Enter password)` - Пароль для этого пользователя. Вводимые символы не будут отображаться на экране. +* `Повторите пароль (Enter password again)` - Пароль должен быть введён повторно для проверки. +* `Заблокировать учетную запись после создания (Lock out the account after creation)?` - Обычно `нет`, чтобы пользователь мог войти в систему. + +После ввода всех данных отображается сводка для проверки. Если была допущена ошибка, введите `no`, чтобы исправить её. Когда всё верно, введите `yes` для создания нового пользователя. [[bsdinstall-add-user3]] -.Заполненная форма ввода информации о новом пользователе -image::bsdinstall-adduser3.png[] +.Выход из управления пользователями и группами +image::bsdinstall-adduser3.png["Меню с информацией о новом пользователе и запросом на подтверждение корректности данных."] -Ответьте `yes` на вопрос "Add another user?" если необходимо добавить другие учетные записи. Для завершения добавления пользователей и продолжения послеустановочной настройки выберите `no`. +Если нужно добавить других пользователей, ответьте `yes` на вопрос `Добавить другого пользователя (Add another user)?`. Введите `no`, чтобы завершить добавление пользователей и продолжить установку. -За более детальной информацией об управлении учетными записями обратитесь к crossref:basics[users-synopsis,Пользователи и основы управления учетными записями]. +Для получения дополнительной информации о добавлении пользователей и управлении учетными записями см. crossref:basics[users-synopsis,Пользователи и основы управления учетными записями]. [[bsdinstall-final-conf]] -=== Завершение настройки +=== Окончательная конфигурация -После того, как установка и конфигурирование завершены, вам предоставляется заключительная возможность подкорректировать настройки. +После установки и настройки всех компонентов предоставляется последняя возможность изменить параметры. [[bsdinstall-final-config]] -.Финальное конфигурационное меню -image::bsdinstall-finalconfiguration.png[] +.Окончательная конфигурация +image::bsdinstall-finalconfiguration.png["Меню с различными вариантами действий перед завершением установки. Например: Добавить пользователя", Time Zone, etc.] -Используйте это меню для внесения любых изменений или для выполнения дополнительного конфигурирования перед завершением установки. +Используйте это меню для внесения изменений или выполнения дополнительной настройки перед завершением установки. -.Опции финального конфигурационного меню -* `Add User` - Описано в <<bsdinstall-addusers>>. -* `Root Password` - Описано в <<bsdinstall-post-root>>. -* `Hostname` - Описано в <<bsdinstall-hostname>>. -* `Network` - Описано в <<bsdinstall-config-network-dev>>. -* `Services` - Описано в <<bsdinstall-sysconf>>. -* `Time Zone` - Описано в <<bsdinstall-timezone>>. -* `Handbook` - Загрузка и установка Руководства FreeBSD (которое вы в данный момент читаете). +* `Добавить пользователя (Add User)` - Описано в crossref:bsdinstall[bsdinstall-addusers, Добавление пользователей]. +* `Пароль root (Root Password)` - Описано в crossref:bsdinstall[bsdinstall-post-root, Установка пароля `root`]. +* `Имя хоста (Hostname)` - Описано в crossref:bsdinstall[bsdinstall-hostname, Установка имени хоста]. +* `Сеть (Network)` - Описано в crossref:bsdinstall[bsdinstall-config-network-dev, Настройка сетевых интерфейсов]. +* `Службы (Services)` - Описано в crossref:bsdinstall[bsdinstall-sysconf, Включение служб]. +* `Усиление защиты системы (System Hardening)` - Описано в crossref:bsdinstall[bsdinstall-hardening, Включение опций усиления безопасности]. +* `Часовая зона (Time Zone)` - Описано в crossref:bsdinstall[bsdinstall-timezone, Настройка часовой зоны]. +* `Руководство (Handbook)` - Загрузить и установить Руководство FreeBSD. -По завершении настройки для выхода из финального конфигурационного меню выберите btn:[Exit]. +После завершения настройки выберите btn:[Выход (Exit)]. [[bsdinstall-final-modification-shell]] .Ручная настройка -image::bsdinstall-final-modification-shell.png[] +image::bsdinstall-final-modification-shell.png["Меню, показывающее, что установка завершена. И спрашивающее, хотите ли вы открыть оболочку для внесения изменений вручную."] -bsdinstall уточнит, есть ли какие настройки, которые необходимо выполнить до перезагрузки в свежеустановленную систему. Для входа в командный интерпретатор новой системы выберите btn:[Yes], для перехода к последнему шагу установки нажмите btn:[No]. +bsdinstall предложит выполнить любую дополнительную настройку, необходимую перед перезагрузкой в новую систему. Выберите btn:[Да], чтобы выйти в оболочку новой системы, или btn:[Нет], чтобы перейти к последнему шагу установки. [[bsdinstall-final-main]] .Завершение установки -image::bsdinstall-mainexit.png[] - -Если необходимо дальнейшее конфигурирование или особая установка, то выбор btn:[Live CD] загрузит установочный носитель в режим Live CD. - -После того, как установка завершена, для перезагрузки компьютера и запуска новой системы FreeBSD выберите btn:[Reboot]. Не забудьте извлечь установочный CD, DVD или USB-накопитель, иначе компьютер может снова с него загрузиться. +image::bsdinstall-mainexit.png["Меню, показывающее завершение установки и предлагающее перезагрузить систему или получить доступ к Live CD."] -[[bsdinstall-freebsdboot]] -=== Загрузка и завершение работы FreeBSD +Если требуется дополнительная настройка или специальная установка, выберите btn:[Live CD], чтобы загрузить установочный носитель в режиме Live CD. -[[bsdinstall-freebsdboot-i386]] -==== (FreeBSD/i386 Booting) Загрузка FreeBSD/i386 +Если установка завершена, выберите btn:[Перезагрузка], чтобы перезагрузить компьютер и запустить новую систему FreeBSD. Не забудьте извлечь установочный носитель FreeBSD, иначе компьютер может снова загрузиться с него. -Во время загрузки FreeBSD отображается множество информационных сообщений. Большинство из них вытеснится за пределы экрана; это нормально. По завершении загрузки системы будет отображено приглашение ко входу (login prompt). Сообщения, которые переместились за пределы экрана, могут быть просмотрены: при нажатии kbd:[Scroll-Lock] включается режим _буфера прокрутки_. Клавиши kbd:[PgUp], kbd:[PgDn], а также клавиши навигации могут быть задействованы для прокручивания буфера. Повторное нажатие kbd:[Scroll-Lock] разблокирует дисплей и вернет его в нормальный режим. +При загрузке FreeBSD отображаются информационные сообщения. После завершения загрузки системы появляется приглашение для входа. В ответ на приглашение `login:` введите имя пользователя, добавленное во время установки. Избегайте входа в систему как `root`. Инструкции по получению прав суперпользователя, когда требуется административный доступ, приведены в crossref:basics[users-superuser,Учётная запись суперпользователя]. -На приглашение `login:` введите добавленное во время установки имя пользователя, в этом примере - `asample`. За исключением случаев крайней необходимости избегайте входа под учетной записью `root`. +Сообщения, появляющиеся во время загрузки, можно просмотреть, нажав kbd:[Scroll-Lock], чтобы включить буфер прокрутки. Для перемещения по сообщениям можно использовать клавиши kbd:[PgUp], kbd:[PgDn] и стрелки. По завершении нажмите kbd:[Scroll-Lock] снова, чтобы разблокировать экран и вернуться к консоли. Для просмотра этих сообщений после работы системы в течение некоторого времени введите `less /var/run/dmesg.boot` в командной строке. Нажмите kbd:[q], чтобы вернуться в командную строку после просмотра. -Упомянутый выше буфер прокрутки ограничен в размере, поэтому в него могут умещаться не все сообщения. После входа в систему большинство из них можно просмотреть подав команду `dmesg | less` из командной строки. Для возврата к командной строке после просмотра сообщений нажмите kbd:[q]. +Если в crossref:bsdinstall[bsdinstall-config-serv,Выбор дополнительных служб для включения] была включена служба sshd, первая загрузка может быть немного медленнее, так как система генерирует SSH-ключи хоста. Последующие загрузки будут быстрее. Отпечатки ключей отображаются, как в следующем примере: -Типичные сообщения загрузки (информация о версиях опущена): - -[source,shell] +[source, shell] .... -Copyright (c) 1992-2011 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. -FreeBSD is a registered trademark of The FreeBSD Foundation. - - root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 -CPU: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz (3007.77-MHz K8-class CPU) - Origin = "GenuineIntel" Id = 0x10676 Family = 6 Model = 17 Stepping = 6 - Features=0x783fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,SSE2> - Features2=0x209<SSE3,MON,SSSE3> - AMD Features=0x20100800<SYSCALL,NX,LM> - AMD Features2=0x1<LAHF> -real memory = 536805376 (511 MB) -avail memory = 491819008 (469 MB) -Event timer "LAPIC" quality 400 -ACPI APIC Table: <VBOX VBOXAPIC> -ioapic0: Changing APIC ID to 1 -ioapic0 <Version 1.1> irqs 0-23 on motherboard -kbd1 at kbdmux0 -acpi0: <VBOX VBOXXSDT> on motherboard -acpi0: Power Button (fixed) -acpi0: Sleep Button (fixed) -Timecounter "ACPI-fast" frequency 3579545 Hz quality 900 -acpi_timer0: <32-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0 -cpu0: <ACPI CPU> on acpi0 -pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0 -pci0: <ACPI PCI bus> on pcib0 -isab0: <PCI-ISA bridge> at device 1.0 on pci0 -isa0: <ISA bus> on isab0 -atapci0: <Intel PIIX4 UDMA33 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xd000-0xd00f at device 1.1 on pci0 -ata0: <ATA channel 0> on atapci0 -ata1: <ATA channel 1> on atapci0 -vgapci0: <VGA-compatible display> mem 0xe0000000-0xe0ffffff irq 18 at device 2.0 on pci0 -em0: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd010-0xd017 mem 0xf0000000-0xf001ffff irq 19 at device 3.0 on pci0 -em0: Ethernet address: 08:00:27:9f:e0:92 -pci0: <base peripheral> at device 4.0 (no driver attached) -pcm0: <Intel ICH (82801AA)> port 0xd100-0xd1ff,0xd200-0xd23f irq 21 at device 5.0 on pci0 -pcm0: <SigmaTel STAC9700/83/84 AC97 Codec> -ohci0: <OHCI (generic) USB controller> mem 0xf0804000-0xf0804fff irq 22 at device 6.0 on pci0 -usbus0: <OHCI (generic) USB controller> on ohci0 -pci0: <bridge> at device 7.0 (no driver attached) -acpi_acad0: <AC Adapter> on acpi0 -atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0 -atkbd0: <AT Keyboard> irq 1 on atkbdc0 -kbd0 at atkbd0 -atkbd0: [GIANT-LOCKED] -psm0: <PS/2 Mouse> irq 12 on atkbdc0 -psm0: [GIANT-LOCKED] -psm0: model IntelliMouse Explorer, device ID 4 -attimer0: <AT timer> port 0x40-0x43,0x50-0x53 on acpi0 -Timecounter "i8254" frequency 1193182 Hz quality 0 -Event timer "i8254" frequency 1193182 Hz quality 100 -sc0: <System console> at flags 0x100 on isa0 -sc0: VGA <16 virtual consoles, flags=0x300> -vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 -atrtc0: <AT realtime clock> at port 0x70 irq 8 on isa0 -Event timer "RTC" frequency 32768 Hz quality 0 -ppc0: cannot reserve I/O port range -Timecounters tick every 10.000 msec -pcm0: measured ac97 link rate at 485193 Hz -em0: link state changed to UP -usbus0: 12Mbps Full Speed USB v1.0 -ugen0.1: <Apple> at usbus0 -uhub0: <Apple OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0 -cd0 at ata1 bus 0 scbus1 target 0 lun 0 -cd0: <VBOX CD-ROM 1.0> Removable CD-ROM SCSI-0 device -cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes) -cd0: Attempt to query device size failed: NOT READY, Medium not present -ada0 at ata0 bus 0 scbus0 target 0 lun 0 -ada0: <VBOX HARDDISK 1.0> ATA-6 device -ada0: 33.300MB/s transfers (UDMA2, PIO 65536bytes) -ada0: 12546MB (25694208 512 byte sectors: 16H 63S/T 16383C) -ada0: Previously was known as ad0 -Timecounter "TSC" frequency 3007772192 Hz quality 800 -Root mount waiting for: usbus0 -uhub0: 8 ports with 8 removable, self powered -Trying to mount root from ufs:/dev/ada0p2 [rw]... -Setting hostuuid: 1848d7bf-e6a4-4ed4-b782-bd3f1685d551. -Setting hostid: 0xa03479b2. -Entropy harvesting: interrupts ethernet point_to_point kickstart. -Starting file system checks: -/dev/ada0p2: FILE SYSTEM CLEAN; SKIPPING CHECKS -/dev/ada0p2: clean, 2620402 free (714 frags, 327461 blocks, 0.0% fragmentation) -Mounting local file systems:. -vboxguest0 port 0xd020-0xd03f mem 0xf0400000-0xf07fffff,0xf0800000-0xf0803fff irq 20 at device 4.0 on pci0 -vboxguest: loaded successfully -Setting hostname: machine3.example.com. -Starting Network: lo0 em0. -lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 - options=3<RXCSUM,TXCSUM> - inet6 ::1 prefixlen 128 - inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 - inet 127.0.0.1 netmask 0xff000000 - nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> -em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 - options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM> - ether 08:00:27:9f:e0:92 - nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> - media: Ethernet autoselect (1000baseT <full-duplex>) - status: active -Starting devd. -Starting Network: usbus0. -DHCPREQUEST on em0 to 255.255.255.255 port 67 -DHCPACK from 10.0.2.2 -bound to 192.168.1.142 -- renewal in 43200 seconds. -add net ::ffff:0.0.0.0: gateway ::1 -add net ::0.0.0.0: gateway ::1 -add net fe80::: gateway ::1 -add net ff02::: gateway ::1 -ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib -32-bit compatibility ldconfig path: /usr/lib32 -Creating and/or trimming log files. -Starting syslogd. -No core dumps found. -Clearing /tmp (X related). -Updating motd:. -Configuring syscons: blanktime. 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. @@ -1296,73 +1000,44 @@ The key's randomart image is: | .o. . | +-----------------+ Starting sshd. -Starting cron. -Starting background file system checks in 60 seconds. - -Thu Oct 6 19:15:31 MDT 2011 - -FreeBSD/amd64 (machine3.example.com) (ttyv0) - -login: .... -На медленных машинах генерирование ключей RSA и DSA может занять ощутимое время. Это происходит лишь при первой загрузке новой системы, и лишь в случае, когда sshd настроен на автоматический запуск. Последующие загрузки будут проходить быстрее. +Обратитесь к crossref:security[openssh,"OpenSSH"] для получения дополнительной информации об отпечатках и SSH. -По умолчанию во FreeBSD не устанавливается никаких графических оболочек, однако в наличии они имеются. За более подробной информацией обратитесь к crossref:x11[x11, X Window System]. +FreeBSD не устанавливает графическое окружение по умолчанию. Дополнительную информацию об установке и настройке графического оконного менеджера можно найти в crossref:x11[x11,The X Window System]. -[[bsdinstall-shutdown]] -=== Завершение работы FreeBSD - -Корректное завершение работы компьютера с FreeBSD помогает защитить от повреждений не только данные, но даже и аппаратное обеспечение. Не стоит просто выключать питание. Если вы входите в группу `wheel`, то станьте суперпользователем набрав в командной строке команду `su` и введя пароль пользователя `root`. Или же, войдите в систему как `root` и наберите команду `shutdown -p now`. Система корректно завершит работу и выключится. - -Комбинация клавиш kbd:[Ctrl+Alt+Del] может быть задействована для перезагрузки системы, однако во время нормальной работы пользоваться ею не рекомендуется. +Правильное завершение работы компьютера под управлением FreeBSD помогает защитить данные и оборудование от повреждений. _Не отключайте питание до того, как система будет правильно остановлена!_ Если пользователь является членом группы `wheel`, необходимо стать суперпользователем, введя `su` в командной строке и указав пароль `root`. Затем введите `shutdown -p now`, и система корректно завершит работу, а если оборудование поддерживает такую возможность, выключится автоматически. [[bsdinstall-install-trouble]] -== Решение проблем - -Нижеследующий раздел описывает часто встречающиеся и сообщенные пользователями проблемы, возникающие в ходе установки. - -=== Что делать, если что-то идет не так +== Устранение неполадок -По причине различных ограничений архитектуры PC, определение периферийных устройств (device probing) не может быть достоверным на все 100%, однако, есть несколько шагов, которые вы можете предпринять, если определение завершится неудачно. +Этот раздел посвящён устранению основных проблем при установке, включая распространённые ошибки, о которых сообщали пользователи. -Просмотрите http://www.FreeBSD.org/releases/[Информацию об оборудовании (Hardware Notes)] для вашей версии FreeBSD чтобы убедиться, что ваше оборудование поддерживается. - -Если ваше оборудование поддерживается, а зависания или другие проблемы продолжаются, то вам необходимо будет построить crossref:kernelconfig[kernelconfig,собственное ядро]. Это позволит вам добавить поддержку устройств, которые отсутствуют в ядре [.filename]#GENERIC#. Ядро на установочных дисках сконфигурировано исходя из предположения, что большинство устройств находятся в настройках по умолчанию касательно прерываний, адресов ввода/вывода, каналов DMA. Если ваше оборудование было перенастроено, то вам скорее всего необходимо будет отредактировать конфигурационный файл ядра и пересобрать его, чтобы сообщить FreeBSD о настройках, отличных от предполагаемых. - -Также возможны случаи, когда процедура определения (probe) для отсутствующего устройства приводит к сбою процедуры определения для другого устройства, присутствующего в аппаратной конфигурации. В этом случае необходимо отключить процедуру (процедуры) определения для конфликтующего драйвера (драйверов). +Проверьте заметки о совместимости оборудования на странице link:https://www.FreeBSD.org/releases/[информации о выпусках FreeBSD] для соответствующей версии FreeBSD, чтобы убедиться, что оборудование поддерживается. [NOTE] ==== -Некоторое количество проблем с установкой может быть устранено или уменьшено путем обновления встроенного программного обеспечения различных аппаратных компонентов, особенно - материнской платы. Встроенное программное обеспечение материнской платы обычно называется BIOS. У большинства производителей материнских плат и компьютеров есть Web-сайты, содержащие как информацию об обновлениях, так и сами обновления. +Некоторые проблемы при установке можно избежать или уменьшить, обновив микропрограмму различных компонентов оборудования, в первую очередь материнской платы. Микропрограмма материнской платы обычно называется BIOS. У большинства производителей материнских плат и компьютеров есть веб-сайты с обновлениями и информацией о них. -В общем, производители не рекомендуют обновлять BIOS материнской платы, если на то нет веских причин, например, таких как появление критически важного обновления. Процесс обновления _может_ потерпеть неудачу, тем самым оставив BIOS поврежденным, а компьютер - нерабочим. +Производители, как правило, не рекомендуют обновлять BIOS материнской платы без веской причины, такой как критическое обновление. Процесс обновления _может_ пройти неудачно, что приведёт к повреждению BIOS и неработоспособности компьютера. ==== -=== Решение проблем: вопросы и ответы - -==== Моя система зависает во время загрузки на этапе определения устройств (probing), или она ведет себя странно во время установки. - -Касательно платформ i386, amd64 и ia64: если во время загрузки была обнаружена система ACPI, то FreeBSD повсеместно использует её для конфигурирования оборудования. К сожалению, до сих пор существуют неполадки как в драйвере ACPI, так и среди материнских плат и их BIOS. ACPI может быть отключена путём установки значения переменной `hint.acpi.0.disabled` на третьем этапе загрузки: +Если система зависает при проверке оборудования во время загрузки или ведет себя странно в процессе установки, причиной может быть ACPI. FreeBSD активно использует системную службу ACPI на платформах i386 и amd64 для помощи в настройке системы, если она обнаружена во время загрузки. К сожалению, в драйвере ACPI, а также в материнских платах и BIOS до сих пор существуют ошибки. ACPI можно отключить, установив подсказку `hint.acpi.0.disabled` в загрузчике третьей стадии: -[source,shell] +[source, shell] .... - set hint.acpi.0.disabled="1" +set hint.acpi.0.disabled="1" .... -Это значение сбрасывается каждый раз при загрузке системы, поэтому строку `hint.acpi.0.disabled="1"` необходимо добавить в файл [.filename]#/boot/loader.conf#. Информация о загрузчике приведена в crossref:boot[boot-synopsis,Описание]. +Этот параметр сбрасывается при каждой загрузке системы, поэтому необходимо добавить `hint.acpi.0.disabled="1"` в файл `/boot/loader.conf`. Дополнительную информацию о загрузчике можно найти в crossref:boot[boot-synopsis,"Synopsis"]. [[using-live-cd]] == Использование Live CD -FreeBSD Live CD находится на том же CD диске, что и установочная программа. Это удобно для тех пользователей, которые всё еще размышляют о пригодности для них ОС FreeBSD и желают проверить некоторые функциональные возможности до начала установки. +Меню приветствия `bsdinstall`, показанное в crossref:bsdinstall[bsdinstall-choose-mode,Меню приветствия], предоставляет опцию btn:[Live CD]. Это полезно для тех, кто ещё сомневается, подходит ли FreeBSD в качестве операционной системы, и хочет протестировать некоторые функции перед установкой. -[NOTE] -==== -При работе с Live CD следует учесть следующее: +Следует отметить следующие моменты перед использованием btn:[Live CD]: -* Для получения доступа к системе необходимо осуществить аутентификацию. Допустимое имя пользователя - `root`, пароль - пустой. -* Так как система работает непосредственно с CD, производительность будет заметно ниже чем у системы, установленной на жесткий диск. -* Live CD предоставляет в распоряжение командную строку, а не графический интерфейс. - -==== +* Для доступа к системе требуется аутентификация. Имя пользователя — `root`, пароль пустой. +* Поскольку система работает непосредственно с установочного носителя, производительность будет значительно ниже, чем у системы, установленной на жёсткий диск. +* Эта опция предоставляет только командную строку, а не графический интерфейс. diff --git a/documentation/content/ru/books/handbook/bsdinstall/_index.po b/documentation/content/ru/books/handbook/bsdinstall/_index.po new file mode 100644 index 0000000000..9dd2af3291 --- /dev/null +++ b/documentation/content/ru/books/handbook/bsdinstall/_index.po @@ -0,0 +1,4699 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-09-05 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookbsdinstall_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1 +#, no-wrap +msgid "Guide about how to install FreeBSD, the minimum hardware requirements and supported architectures, how to create the installation media, etc" +msgstr "Руководство по установке FreeBSD, минимальным требованиям к оборудованию и поддерживаемым архитектурам, созданию установочного диска и так далее" + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1 +#, no-wrap +msgid "Part I. Getting Started" +msgstr "В начале" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1 +#, no-wrap +msgid "Chapter 2. Installing FreeBSD" +msgstr "Глава 2. Установка FreeBSD" + +#. type: Title = +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:15 +#, no-wrap +msgid "Installing FreeBSD" +msgstr "Установка FreeBSD" + +#. type: Title == +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:57 +msgid "" +"FreeBSD supports different architectures including amd64, ARM(R), RISC-V(R), " +"and PowerPC(R). Depending on the architecture and platform, different " +"images can be link:https://www.freebsd.org/where/[downloaded] to install or " +"directly run FreeBSD." +msgstr "" +"FreeBSD поддерживает различные архитектуры, включая amd64, ARM(R), RISC-V(R) " +"и PowerPC(R). В зависимости от архитектуры и платформы, различные образы " +"могут быть link:https://www.freebsd.org/where/[скачены] для установки или " +"непосредственного запуска FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:59 +msgid "The image types are:" +msgstr "Типы образов:" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:61 +msgid "" +"Virtual Machine disk images, such as `qcow2`, `vmdk`, `vhd`, and raw device " +"images. These are not installation images, but images that have FreeBSD " +"preinstalled and ready for post-installation tasks. Virtual machine images " +"are also commonly used in cloud environments." +msgstr "" +"Диски образов виртуальных машин, такие как `qcow2`, `vmdk`, `vhd`, и образы " +"raw-устройств. Это не установочные образы, а образы с предустановленной " +"FreeBSD, готовые к выполнению задач после установки. Образы виртуальных " +"машин также часто используются в облачных средах." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:62 +msgid "" +"SD card images, for embedded systems such as Raspberry Pi. These files must " +"be uncompressed and written as a raw image to an SD card, from which the " +"board will boot." +msgstr "" +"Образы SD-карт для встраиваемых систем, таких как Raspberry Pi. Эти файлы " +"необходимо распаковать и записать как сырой образ на SD-карту, с которой " +"будет загружаться плата." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:63 +msgid "" +"Installation images to boot from an ISO or USB device to install FreeBSD on " +"a drive for the usual desktop, laptop, or server system." +msgstr "" +"Установочные образы для загрузки с ISO или USB-устройства, чтобы установить " +"FreeBSD на диск для обычной настольной, портативной или серверной системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:66 +msgid "" +"The rest of this chapter describes the third case, explaining how to install " +"FreeBSD using the text-based installation program named bsdinstall. There " +"may be minor differences between the installer and what is shown here, so " +"use this chapter as a general guide rather than as a set of literal " +"instructions." +msgstr "" +"Остальная часть этой главы описывает третий случай, объясняя, как установить " +"FreeBSD с использованием текстовой программы установки под названием " +"`bsdinstall`. Между установщиком и тем, что показано здесь, могут быть " +"незначительные различия, поэтому используйте эту главу как общее " +"руководство, а не как точную инструкцию." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:68 +msgid "After reading this chapter, you will know:" +msgstr "Прочитав эту главу, вы будете знать:" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:70 +msgid "How to obtain FreeBSD images and create FreeBSD installation media." +msgstr "Как получить образы FreeBSD и создать установочные носители FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:71 +msgid "How to start bsdinstall." +msgstr "Как запустить bsdinstall." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:72 +msgid "" +"The questions bsdinstall will ask, what they mean, and how to answer them." +msgstr "Вопросы, которые задаст bsdinstall, их значение и как на них отвечать." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:73 +msgid "How to troubleshoot a failed installation." +msgstr "Как решить проблемы неудачной установки." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:74 +msgid "" +"How to access a live version of FreeBSD before committing to an installation." +msgstr "Как получить доступ к свежей версии FreeBSD перед установкой системы." + +#. type: Title == +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:76 +#, no-wrap +msgid "Minimum Hardware Requirements" +msgstr "Минимальные требования к оборудованию" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:81 +msgid "" +"The hardware requirements to install FreeBSD vary by architecture and " +"version. Hardware architectures and devices supported by a FreeBSD release " +"are listed on the link:https://www.FreeBSD.org/releases/[FreeBSD Release " +"Information] page. The link:https://www.FreeBSD.org/where/[FreeBSD download " +"page] also has recommendations for choosing the correct image for different " +"architectures." +msgstr "" +"Требования к оборудованию для установки FreeBSD зависят от архитектуры и " +"версии. Поддерживаемые аппаратные архитектуры и устройства для выпуска " +"FreeBSD перечислены на странице link:https://www.FreeBSD.org/releases/" +"[FreeBSD Release Information]. На странице link:https://www.FreeBSD.org/" +"where/[FreeBSD download page] также приведены рекомендации по выбору " +"правильного образа для различных архитектур." + +#. type: Title == +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:83 +#, no-wrap +msgid "Pre-Installation Tasks" +msgstr "Задачи перед установкой" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:86 +msgid "" +"Once it has been determined that the system meets the minimum hardware " +"requirements for installing FreeBSD, the installation file should be " +"downloaded and the installation media prepared." +msgstr "" +"После того как будет подтверждено, что система соответствует минимальным " +"требованиям для установки FreeBSD, необходимо загрузить установочный файл и " +"подготовить установочный носитель." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:90 +msgid "" +"Consider using crossref:virtualization[virtualization,virtualization] if you " +"want to use FreeBSD on a system that already has another operating system " +"installed." +msgstr "" +"Рассмотрите возможность использования " +"crossref:virtualization[virtualization,Виртуализации], если вы хотите " +"использовать FreeBSD на системе, где уже установлена другая операционная " +"система." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:93 +msgid "" +"Before moving on to the installation, check that the system is ready by " +"verifying the items in this checklist:" +msgstr "" +"Прежде чем перейти к установке, убедитесь, что система готова, проверив " +"пункты из этого контрольного списка:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:97 +#, fuzzy +#| msgid "*Back Up Important Data*\n" +msgid "*Back Up Important Data*" +msgstr "*Резервное копирование важных данных*\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:103 +msgid "" +"Before installing any operating system, *always* backup all important data " +"first. Do not store the backup on the system being installed. Instead, " +"save the data to a removable disk such as a USB drive, another system on the " +"network, or an online backup service. Test the backup before starting the " +"installation to make sure it contains all of the needed files. Once the " +"installer formats the system's disk, all data stored on that disk will be " +"lost." +msgstr "" +"Перед установкой любой операционной системы *всегда* создавайте резервную " +"копию всех важных данных. Не храните резервную копию на системе, на которую " +"производится установка. Вместо этого сохраните данные на съемный диск, такой " +"как USB-накопитель, другую систему в сети или в онлайн-сервис резервного " +"копирования. Проверьте резервную копию перед началом установки, чтобы " +"убедиться, что она содержит все необходимые файлы. После того как установщик " +"отформатирует диск системы, все данные, хранящиеся на этом диске, будут " +"потеряны." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:104 +#, fuzzy +#| msgid "*Decide Where to Install FreeBSD*\n" +msgid "*Decide Where to Install FreeBSD*" +msgstr "*Выберите место для установки FreeBSD*\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:107 +msgid "" +"If FreeBSD will be the only operating system installed, this step can be " +"skipped. But if FreeBSD will share the disk with another operating system, " +"decide which disk or partition will be used for FreeBSD." +msgstr "" +"Если FreeBSD будет единственной операционной системой, этот шаг можно " +"пропустить. Но если FreeBSD будет находиться на диске вместе с другой " +"операционной системой, определите, какой диск или раздел будет " +"использоваться для FreeBSD." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:114 +msgid "" +"In the i386 and amd64 architectures, disks can be divided into multiple " +"partitions using one of two partitioning schemes. A traditional _Master " +"Boot Record_ (MBR) holds a partition table defining up to four _primary " +"partitions_. For historical reasons, FreeBSD calls these primary partition " +"_slices_. One of these primary partitions can be made into an _extended " +"partition_ containing multiple _logical partitions_. The _GUID Partition " +"Table_ (GPT) is a newer and simpler method of partitioning a disk. Common " +"GPT implementations allow up to 128 partitions per disk, eliminating the " +"need for logical partitions." +msgstr "" +"В архитектурах i386 и amd64 диски могут быть разделены на несколько разделов " +"с использованием одной из двух схем разделения. Традиционная _Главная " +"загрузочная запись_ (MBR) содержит таблицу разделов, определяющую до четырёх " +"_основных разделов_. По историческим причинам FreeBSD называет эти основные " +"разделы _слайсами_. Один из этих основных разделов может быть преобразован в " +"_расширенный раздел_, содержащий несколько _логических разделов_. _Таблица " +"разделов GUID_ (GPT) — это более новый и простой метод разделения диска. " +"Стандартные реализации GPT позволяют создавать до 128 разделов на диске, что " +"устраняет необходимость в логических разделах." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:118 +msgid "" +"The FreeBSD boot loader requires either a primary or GPT partition. If all " +"of the primary or GPT partitions are already in use, one must be freed for " +"FreeBSD. To create a partition without deleting existing data, use a " +"partition resizing tool to shrink an existing partition and create a new " +"partition using the freed space." +msgstr "" +"Загрузчик FreeBSD требует наличия либо первичного, либо GPT-раздела. Если " +"все первичные или GPT-разделы уже заняты, необходимо освободить один для " +"FreeBSD. Чтобы создать раздел без удаления существующих данных, используйте " +"инструмент для изменения размера разделов, чтобы уменьшить существующий " +"раздел и создать новый раздел, используя освободившееся пространство." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:120 +msgid "" +"An alternative to modifying the system's existing disk partitions is to use " +"crossref:virtualization[virtualization,virtualization], which allows " +"multiple operating systems to run at the same time without having to alter " +"partitions." +msgstr "" +"Альтернативой изменению существующих разделов диска системы является " +"использование crossref:virtualization[virtualization, Виртуализации], " +"которая позволяет одновременно запускать несколько операционных систем без " +"необходимости изменения разделов." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:123 +msgid "" +"A variety of free and commercial partition resizing tools are listed at " +"link:https://en.wikipedia.org/wiki/List_of_disk_partitioning_software[List " +"of disk partitioning software wikipedia entry]. link:https://gparted.org/" +"livecd.php[GParted Live] is a free live CD which includes the GParted " +"partition editor." +msgstr "" +"Различные бесплатные и коммерческие инструменты для изменения размера " +"разделов перечислены в статье link:https://en.wikipedia.org/wiki/" +"List_of_disk_partitioning_software[Список программ для работы с разделами " +"диска на Википедии]. link:https://gparted.org/livecd.php[GParted Live] — " +"это бесплатный Live CD, включающий редактор разделов GParted." + +#. type: delimited block = 6 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:128 +msgid "" +"When used properly, disk shrinking utilities can safely create space for " +"creating a new partition. Since the possibility of selecting the wrong " +"partition exists, always backup any important data and verify the integrity " +"of the backup before modifying disk partitions." +msgstr "" +"При правильном использовании утилиты для сжатия дисков могут безопасно " +"освободить место для создания нового раздела. Поскольку существует " +"вероятность выбора неправильного раздела, всегда создавайте резервные копии " +"важных данных и проверяйте их целостность перед изменением разделов диска." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:131 +msgid "" +"Disk partitions containing different operating systems make it possible to " +"install multiple operating systems on one computer." +msgstr "" +"Разделы диска с разными операционными системами позволяют установить " +"несколько операционных систем на один компьютер." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:132 +#, fuzzy +#| msgid "*Collect Network Information*\n" +msgid "*Collect Network Information*" +msgstr "*Соберите информацию о сети*\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:135 +msgid "" +"Some FreeBSD installation methods require a network connection in order to " +"download the installation files. After any installation, the installer will " +"offer to setup the system's network interfaces." +msgstr "" +"Некоторые методы установки FreeBSD требуют наличия сетевого подключения для " +"загрузки файлов установки. После одного из этапов установки программа-" +"установщик предложит настроить сетевые интерфейсы системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:138 +msgid "" +"If the network has a DHCP server, it can be used to provide automatic " +"network configuration. If DHCP is not available, the following network " +"information for the system must be obtained from the local network " +"administrator or Internet service provider:" +msgstr "" +"Если в сети есть DHCP-сервер, его можно использовать для автоматической " +"настройки сети. Если DHCP недоступен, следующую информацию о сети для " +"системы необходимо получить у локального сетевого администратора или " +"интернет-провайдера:" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:141 +msgid "Required Network Information" +msgstr "Необходимая сетевая информация" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:143 +msgid "IP address" +msgstr "IP-адрес" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:144 +msgid "Subnet mask" +msgstr "Маска подсети" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:145 +msgid "IP address of default gateway" +msgstr "IP-адрес шлюза по умолчанию" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:146 +msgid "Domain name of the network" +msgstr "Доменное имя сети" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:147 +msgid "IP addresses of the network's DNS servers" +msgstr "IP-адреса DNS-серверов сети" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:149 +#, fuzzy +#| msgid "*Check for FreeBSD Errata*\n" +msgid "*Check for FreeBSD Errata*" +msgstr "*Проверьте наличие исправлений в FreeBSD*\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:154 +msgid "" +"Although the FreeBSD Project strives to ensure that each release of FreeBSD " +"is as stable as possible, bugs occasionally creep into the process. On very " +"rare occasions those bugs affect the installation process. As these " +"problems are discovered and fixed, they are noted in the FreeBSD Errata page " +"of each version. Check the errata before installing to make sure that there " +"are no problems that might affect the installation." +msgstr "" +"Хотя проект FreeBSD стремится к тому, чтобы каждая версия FreeBSD была " +"максимально стабильной, иногда в процессе могут возникать ошибки. В очень " +"редких случаях эти ошибки влияют на процесс установки. Когда такие проблемы " +"обнаруживаются и исправляются, они отмечаются на странице FreeBSD Errata для " +"каждой версии. Перед установкой проверьте список errata, чтобы убедиться в " +"отсутствии проблем, которые могут повлиять на установку." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:156 +msgid "" +"Information and errata for all the releases can be found on the link:https://" +"www.FreeBSD.org/releases/[FreeBSD Release Information] page." +msgstr "" +"Информация и список ошибок для всех выпусков доступны на странице " +"link:https://www.FreeBSD.org/releases/[Информация о релизе FreeBSD]." + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:159 +#, no-wrap +msgid "Prepare the Installation Media" +msgstr "Подготовьте установочный носитель" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:163 +msgid "" +"The FreeBSD installer is not an application that can be run from within " +"another operating system. Instead, download a FreeBSD installation file, " +"burn it to the media associated with its file type and size (CD, DVD, or " +"USB), and boot the system to install from the inserted media." +msgstr "" +"Установщик FreeBSD — это не приложение, которое можно запустить из другой " +"операционной системы. Вместо этого скачайте файл установки FreeBSD, запишите " +"его на носитель, соответствующий его типу и размеру (CD, DVD или USB), и " +"загрузите систему для установки с этого носителя." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:166 +msgid "" +"FreeBSD installation files are available at the link:https://www.FreeBSD.org/" +"where/[FreeBSD download page]. Each installation file's name includes the " +"release version of FreeBSD, the architecture, and the type of file." +msgstr "" +"Файлы для установки FreeBSD доступны на link:https://www.FreeBSD.org/where/" +"[странице скачивания FreeBSD]. Имя каждого файла установки включает версию " +"выпуска FreeBSD, архитектуру и тип файла." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:169 +msgid "" +"Installation files are available in several formats, compressed with " +"man:xz[1] or uncompressed. The formats vary depending on computer " +"architecture and media type." +msgstr "" +"Файлы для установки доступны в нескольких форматах, сжатые с помощью " +"man:xz[1] или несжатые. Форматы различаются в зависимости от архитектуры " +"компьютера и типа носителя." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:171 +msgid "Installation file types:" +msgstr "Типы файлов установки:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:173 +msgid "" +"`*-bootonly.iso*`: This is the smallest installation file as it only " +"contains the installer. A working Internet connection is required during " +"installation as the installer will download the files it needs to complete " +"the FreeBSD installation. This file should be burned to optical media." +msgstr "" +"`*-bootonly.iso*` — это самый маленький установочный файл, так как он " +"содержит только установщик. Для установки требуется работающее интернет-" +"соединение, так как установщик загрузит файлы, необходимые для завершения " +"установки FreeBSD. Этот файл следует записать на оптический носитель." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:174 +msgid "" +"`*-disc1.iso*`: This file contains all of the files needed to install " +"FreeBSD, its source, and the Ports Collection. This file should be burned to " +"optical media." +msgstr "" +"`*-disc1.iso*` — этот файл содержит все необходимые файлы для установки " +"FreeBSD, её исходных кодов и Коллекции портов. Данный файл следует записать " +"на оптический носитель." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:175 +msgid "" +"`*-dvd1.iso*`: This file contains all of the files needed to install " +"FreeBSD, its source, and the Ports Collection. It also contains a set of " +"popular binary packages for installing a window manager and some " +"applications so that a complete system can be installed from media without " +"requiring a connection to the Internet. This file should be burned to " +"optical media." +msgstr "" +"`*-dvd1.iso*` — этот файл содержит все необходимые файлы для установки " +"FreeBSD, его исходные коды и Коллекцию портов. Также в него включён набор " +"популярных бинарных пакетов для установки оконного менеджера и некоторых " +"приложений, что позволяет установить полноценную систему с носителя без " +"подключения к Интернету. Этот файл следует записать на оптический диск." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:178 +msgid "" +"`*-memstick.img*`: This file contains all of the files needed to install " +"FreeBSD, its source, and the Ports Collection. Write this file to a USB " +"stick as shown in crossref:bsdinstall[bsdinstall-usb, Writing an Image File " +"to USB]." +msgstr "" +"`*-memstick.img*` — этот файл содержит все необходимые файлы для установки " +"FreeBSD, её исходных кодов и Коллекции портов. Запишите этот файл на USB-" +"накопитель, как показано в crossref:bsdinstall[bsdinstall-usb, Запись образа " +"на USB]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:182 +msgid "" +"`*-mini-memstick.img*`: Like `*-bootonly.iso*`, does not include " +"installation files, but downloads them as needed. A working internet " +"connection is required during installation. It should be written to a USB " +"stick as shown in crossref:bsdinstall[bsdinstall-usb, Writing an Image File " +"to USB]." +msgstr "" +"`*-mini-memstick.img*` — как и `*-bootonly.iso*`, не содержит файлов для " +"установки, но загружает их по мере необходимости. Требуется работающее " +"интернет-подключение во время установки. Этот образ должен быть записан на " +"USB-накопитель, как показано в crossref:bsdinstall[bsdinstall-usb, Запись " +"образа на USB]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:186 +msgid "" +"After downloading the image file, download at least one _checksum_ file from " +"the same directory. There are two _checksum_ files available, named after " +"the release number and the architecture name. For example: `CHECKSUM.SHA256-" +"FreeBSD-13.1-RELEASE-amd64` and `CHECKSUM.SHA512-FreeBSD-13.1-RELEASE-amd64`." +msgstr "" +"После загрузки файла образа загрузите как минимум один файл _контрольной " +"суммы_ из того же каталога. Доступны два файла _контрольной суммы_, " +"названные в соответствии с номером выпуска и архитектурой. Например: " +"`CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64` и `CHECKSUM.SHA512-FreeBSD-13.1-" +"RELEASE-amd64`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:191 +msgid "" +"After downloading one of the files (or both), calculate the _checksum_ for " +"the image file and compare it with the one shown in the _checksum_ file. " +"Note that you need to compare the calculated _checksum_ against the correct " +"file, as they correspond to two different algorithms: SHA256 and SHA512. " +"FreeBSD provides man:sha256[1] and man:sha512[1] that can be used for " +"calculating the _checksum_. Other operating systems have similar programs." +msgstr "" +"После загрузки одного из файлов (или обоих) вычислите _контрольную сумму_ " +"для файла образа и сравните её с указанной в файле _контрольной суммы_. " +"Обратите внимание, что необходимо сравнивать вычисленную _контрольную сумму_ " +"с правильным файлом, так как они соответствуют разным алгоритмам: SHA256 и " +"SHA512. FreeBSD предоставляет утилиты man:sha256[1] и man:sha512[1], которые " +"можно использовать для вычисления _контрольной суммы_. В других операционных " +"системах существуют аналогичные программы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:193 +msgid "" +"Verifying the _checksum_ in FreeBSD can be done automatically using " +"man:sha256sum[1] (and man:sha512sum[1]) by executing:" +msgstr "" +"Проверка _контрольной суммы_ в FreeBSD может быть выполнена автоматически с " +"помощью man:sha256sum[1] (и man:sha512sum[1]) путем выполнения:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:198 +#, no-wrap +msgid "" +"% sha256sum -c CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64 FreeBSD-13.1-RELEASE-amd64-dvd1.iso\n" +"FreeBSD-13.1-RELEASE-amd64-dvd1.iso: OK\n" +msgstr "" +"% sha256sum -c CHECKSUM.SHA256-FreeBSD-13.1-RELEASE-amd64 FreeBSD-13.1-RELEASE-amd64-dvd1.iso\n" +"FreeBSD-13.1-RELEASE-amd64-dvd1.iso: OK\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:202 +msgid "" +"The checksums must match exactly. If the checksums do not match, the image " +"file is corrupt and must be downloaded again." +msgstr "" +"Хеш-суммы должны полностью совпадать. Если хеш-суммы не совпадают, образ " +"файла повреждён и его необходимо загрузить заново." + +#. type: Title ==== +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:204 +#, no-wrap +msgid "Writing an Image File to USB" +msgstr "Запись образа на USB-накопитель" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:210 +msgid "" +"The `\\*memstick.img` file is an _image_ of the complete contents of a " +"memory stick. It _cannot_ be copied to the target device as a file. " +"Several applications are available for writing the `*.img` to a USB stick. " +"This section describes two of these utilities." +msgstr "" +"Файл `\\*memstick.img` представляет собой _образ_ полного содержимого USB-" +"накопителя. Его _нельзя_ просто скопировать на целевое устройство как файл. " +"Существует несколько программ для записи `*.img` на USB-накопитель. В этом " +"разделе описаны две такие утилиты." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:215 +msgid "" +"Before proceeding, back up any important data on the USB stick. This " +"procedure will erase the existing data on the stick." +msgstr "" +"Прежде чем продолжить, создайте резервную копию всех важных данных на USB-" +"накопителе. Эта процедура удалит все существующие данные на носителе." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:221 +#, fuzzy +#| msgid "*Procedure. Using `dd` to write the image* +\n" +msgid "*Procedure. Using `dd` to write the image* +" +msgstr "*Процедура. Использование `dd` для записи образа* +\n" + +#. type: delimited block = 6 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:226 +msgid "" +"This example uses `/dev/da0` as the target device where the image will be " +"written. Be *very careful* that the correct device is used as this command " +"will destroy the existing data on the specified target device." +msgstr "" +"Этот пример использует `/dev/da0` в качестве целевого устройства, на которое " +"будет записан образ. Будьте *очень внимательны* при выборе правильного " +"устройства, так как эта команда уничтожит все существующие данные на " +"указанном целевом устройстве." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:229 +msgid "" +"The command-line utility is available on BSD, Linux(R), and Mac OS(R) " +"systems. To burn the image using `dd`, insert the USB stick and determine " +"its device name. Then, specify the name of the downloaded installation file " +"and the device name for the USB stick. This example burns the amd64 " +"installation image to the first USB device on an existing FreeBSD system." +msgstr "" +"Утилита командной строки доступна в системах BSD, Linux(R) и Mac OS(R). " +"Чтобы записать образ с помощью `dd`, вставьте USB-накопитель и определите " +"его имя устройства. Затем укажите имя загруженного файла установки и имя " +"устройства USB-накопителя. В этом примере записывается образ установки amd64 " +"на первое USB-устройство в существующей системе FreeBSD." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:233 +#, no-wrap +msgid "# dd if=FreeBSD-13.1-RELEASE-amd64-memstick.img of=/dev/da0 bs=1M conv=sync\n" +msgstr "# dd if=FreeBSD-13.1-RELEASE-amd64-memstick.img of=/dev/da0 bs=1M conv=sync\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:236 +msgid "" +"If this command fails, verify that the USB stick is not mounted and that the " +"device name is for the disk, not a partition." +msgstr "" +"Если команда завершается с ошибкой, убедитесь, что USB-накопитель не " +"смонтирован и что указано имя диска, а не раздела." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:241 +msgid "" +"Some operating systems might require this command to be run with " +"man:sudo[8]. The man:dd[1] syntax varies slightly across different " +"platforms; for example, Mac OS(R) requires a lower-case `bs=1m`. Systems " +"like Linux(R) might buffer writes. To force all writes to complete, use " +"man:sync[8]." +msgstr "" +"Некоторые операционные системы могут потребовать выполнения этой команды с " +"man:sudo[8]. Синтаксис man:dd[1] немного различается на разных платформах; " +"например, Mac OS(R) требует указания `bs=1m` в нижнем регистре. Системы, " +"такие как Linux(R), могут буферизировать запись. Чтобы принудительно " +"завершить все операции записи, используйте man:sync[8]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:246 +#, fuzzy +#| msgid "*Procedure. Using Windows(R) to Write the Image* +\n" +msgid "*Procedure. Using Windows(R) to Write the Image* +" +msgstr "*Процедура. Запись образа с использованием Windows(R)* +\n" + +#. type: delimited block = 6 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:250 +msgid "" +"Be sure to give the correct drive letter as the existing data on the " +"specified drive will be overwritten and destroyed." +msgstr "" +"Убедитесь, что указали правильную букву диска, так как все существующие " +"данные на указанном диске будут перезаписаны и уничтожены." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:253 +#, fuzzy +#| msgid "*Obtaining Image Writer for Windows(R)*\n" +msgid "*Obtaining Image Writer for Windows(R)*" +msgstr "*Получение Image Writer для Windows(R)*\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:256 +msgid "" +"Image Writer for Windows(R) is a free application that can correctly write " +"an image file to a memory stick. Download it from https://sourceforge.net/" +"projects/win32diskimager/[win32diskimager home page] and extract it into a " +"folder." +msgstr "" +"`Image Writer for Windows(R)` — это бесплатное приложение, которое позволяет " +"корректно записать файл образа на USB-накопитель. Загрузите его с https://" +"sourceforge.net/projects/win32diskimager/[официальной страницы " +"win32diskimager] и распакуйте в нужную папку." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:258 +#, fuzzy +#| msgid "*Writing the Image with Image Writer*\n" +msgid "*Writing the Image with Image Writer*" +msgstr "*Запись образа с помощью Image Writer*\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:265 +msgid "" +"Double-click the Win32DiskImager icon to start the program. Verify that the " +"drive letter shown under `Device` is the drive with the memory stick. Click " +"the folder icon and select the image to be written to the memory stick. " +"Click btn:[Save] to accept the image file name. Verify that everything is " +"correct, and that no folders on the memory stick are open in other windows. " +"When everything is ready, click btn:[Write] to write the image file to the " +"memory stick." +msgstr "" +"Дважды щелкните по значку Win32DiskImager, чтобы запустить программу. " +"Убедитесь, что буква диска, указанная в разделе `Device`, соответствует " +"диску с флеш-накопителем. Нажмите на значок папки и выберите образ, который " +"нужно записать на флеш-накопитель. Нажмите btn:[Save], чтобы подтвердить имя " +"файла образа. Убедитесь, что все правильно и что никакие папки на флеш-" +"накопителе не открыты в других окнах. Когда все готово, нажмите btn:[Write], " +"чтобы записать файл образа на флеш-накопитель." + +#. type: Title == +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:268 +#, no-wrap +msgid "Starting the Installation" +msgstr "Начало установки" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:273 +msgid "" +"By default, the installation will not make any changes to the disk(s) before " +"the following message:" +msgstr "" +"По умолчанию установка не вносит никаких изменений на диск(и) до следующего " +"сообщения:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:280 +#, no-wrap +msgid "" +"Your changes will now be written to disk. If you\n" +"have chosen to overwrite existing data, it will\n" +"be PERMANENTLY ERASED. Are you sure you want to\n" +"commit your changes?\n" +msgstr "" +"Your changes will now be written to disk. If you\n" +"have chosen to overwrite existing data, it will\n" +"be PERMANENTLY ERASED. Are you sure you want to\n" +"commit your changes?\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:284 +msgid "" +"The install can be exited at any time prior to this warning. If there is a " +"concern that something is incorrectly configured, just turn the computer off " +"before this point and no changes will be made to the system's disks." +msgstr "" +"Установку можно прервать в любой момент до этого предупреждения. Если есть " +"опасения, что что-то настроено неправильно, просто выключите компьютер до " +"этого момента, и никакие изменения не будут внесены в диски системы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:292 +msgid "" +"This section describes how to boot the system from the installation media " +"which was prepared using the instructions in crossref:bsdinstall[bsdinstall-" +"installation-media, Prepare the Installation Media]. When using a bootable " +"USB stick, plug in the USB stick before turning on the computer. When " +"booting from CD or DVD, turn on the computer and insert the media at the " +"first opportunity. How to configure the system to boot from the inserted " +"media depends upon the architecture." +msgstr "" +"В этом разделе описывается, как загрузить систему с установочного носителя, " +"подготовленного в соответствии с инструкциями в пункте " +"crossref:bsdinstall[bsdinstall-installation-media, Подготовка установочного " +"носителя]. При использовании загрузочной USB-флешки подключите её к " +"компьютеру перед включением. При загрузке с CD или DVD включите компьютер и " +"вставьте носитель при первой возможности. Настройка системы для загрузки с " +"подключённого носителя зависит от архитектуры." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:294 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:299 +#, no-wrap +msgid "FreeBSD Boot Loader Menu" +msgstr "Меню загрузчика FreeBSD" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:297 +msgid "" +"Once the system boots from the installation media, a menu similar to the " +"following will be displayed:" +msgstr "" +"После загрузки системы с установочного носителя появится меню, подобное " +"следующему:" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:300 +#, no-wrap +msgid "FreeBSD boot loader menu" +msgstr "Меню загрузчика FreeBSD" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:300 +#, no-wrap +msgid "bsdinstall-newboot-loader-menu.png" +msgstr "bsdinstall-newboot-loader-menu.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:306 +msgid "" +"By default, the menu will wait ten seconds for user input before booting " +"into the FreeBSD installer or, if FreeBSD is already installed, before " +"booting into FreeBSD. To pause the boot timer in order to review the " +"selections, press kbd:[Space]. To select an option, press its highlighted " +"number, character, or key. The following options are available." +msgstr "" +"По умолчанию меню будет ждать десять секунд ввода пользователя перед " +"загрузкой установщика FreeBSD или, если FreeBSD уже установлена, перед " +"загрузкой системы. Чтобы приостановить таймер загрузки для просмотра " +"вариантов, нажмите kbd:[Пробел]. Для выбора варианта нажмите соответствующую " +"подсвеченную цифру, символ или клавишу. Доступны следующие варианты." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:308 +msgid "" +"`Boot Multi User`: This will continue the FreeBSD boot process. If the boot " +"timer has been paused, press kbd:[1], upper- or lower-case kbd:[B], or kbd:" +"[Enter]." +msgstr "" +"`Загрузка в многопользовательском режиме (Boot Multi User)`: Это продолжит " +"процесс загрузки FreeBSD. Если таймер загрузки был приостановлен, нажмите " +"kbd:[1], kbd:[B] (в верхнем или нижнем регистре) или kbd:[Enter]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:309 +msgid "" +"`Boot Single User`: This mode can be used to fix an existing FreeBSD " +"installation as described in crossref:boot[boot-singleuser,“Single-User " +"Mode”]. Press kbd:[2] or the upper- or lower-case kbd:[S] to enter this mode." +msgstr "" +"`Загрузка в однопользовательском режиме (Boot Single User)`: Этот режим " +"может быть использован для исправления существующей установки FreeBSD, как " +"описано в crossref:boot[boot-singleuser,“Однопользовательский режим”]. Для " +"входа в этот режим нажмите kbd:[2] или kbd:[S] в верхнем или нижнем регистре." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:310 +msgid "" +"`Escape to loader prompt`: This will boot the system into a repair prompt " +"that contains a limited number of low-level commands. This prompt is " +"described in crossref:boot[boot-loader,“Stage Three”]. Press kbd:[3] or kbd:" +"[Esc] to boot into this prompt." +msgstr "" +"`Выход в загрузчик (Escape to loader prompt)`: Это загрузит систему в режим " +"восстановления с ограниченным набором низкоуровневых команд. Данный режим " +"описан в разделе crossref:boot[boot-loader,“Этап три”]. Для загрузки в этом " +"режиме нажмите kbd:[3] или kbd:[Esc]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:311 +msgid "`Reboot`: Reboots the system." +msgstr "`Перезагрузка (Reboot)`: Перезагружает систему." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:312 +msgid "" +"`Cons`: Allow to continue the installation by `video`, `serial`, `Dual " +"(serial primary)` or `Dual (Video primary)`" +msgstr "" +"`Cons`: Позволяет продолжить установку через `видео`, `последовательный " +"порт`, `двухконсольную конфигурацию (основная консоль — последовательный " +"порт)` или `двухконсольную конфигурацию (основная консоль — видео)`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:313 +msgid "`Kernel`: Loads a different kernel." +msgstr "`Ядро (Kernel)`: Загружает другое ядро." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:315 +msgid "" +"`Boot Options`: Opens the menu shown in, and described under, " +"crossref:bsdinstall[bsdinstall-boot-options-menu,FreeBSD Boot Options Menu]." +msgstr "" +"`Параметры загрузки (Boot Options)`: Открывает меню, показанное на рисунке " +"crossref:bsdinstall[bsdinstall-boot-options-menu,Меню параметров загрузки " +"FreeBSD] и описанное после него." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:317 +#, no-wrap +msgid "FreeBSD Boot Options Menu" +msgstr "Меню параметров загрузки FreeBSD" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:318 +#, no-wrap +msgid "Menu showing the different boot options supported" +msgstr "Меню с различными поддерживаемыми вариантами загрузки" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:318 +#, no-wrap +msgid "bsdinstall-boot-options-menu.png" +msgstr "bsdinstall-boot-options-menu.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:322 +msgid "" +"The boot options menu is divided into two sections. The first section can " +"be used to either return to the main boot menu or to reset any toggled " +"options back to their defaults." +msgstr "" +"Меню параметров загрузки разделено на две части. Первая часть позволяет либо " +"вернуться в главное меню загрузки, либо сбросить все изменённые параметры к " +"значениям по умолчанию." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:326 +msgid "" +"The next section is used to toggle the available options to `On` or `Off` by " +"pressing the option's highlighted number or character. The system will " +"always boot using the settings for these options until they are modified. " +"Several options can be toggled using this menu:" +msgstr "" +"Следующий раздел позволяет переключать доступные опции в состояние `Вкл` или " +"`Выкл`, нажимая выделенную цифру или символ соответствующей опции. Система " +"всегда будет загружаться с использованием текущих настроек этих опций, пока " +"они не будут изменены. С помощью этого меню можно переключать несколько " +"опций:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:328 +msgid "" +"`ACPI Support`: If the system hangs during boot, try toggling this option to " +"`Off`. This option is only present when ACPI support is available but not " +"required." +msgstr "" +"`Поддержка ACPI (ACPI Support)`: Если система зависает во время загрузки, " +"попробуйте переключить этот параметр в положение `Выкл.`. Этот параметр " +"присутствует только в том случае, если поддержка ACPI доступна, но не " +"обязательна." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:329 +msgid "" +"`Safe Mode`: If the system still hangs during boot even with `ACPI Support` " +"set to `Off`, try setting this option to `On`." +msgstr "" +"`Безопасный режим (Safe Mode)`: Если система всё ещё зависает во время " +"загрузки, даже когда `Поддержка ACPI` установлена в `Выкл`, попробуйте " +"установить этот параметр в `Вкл`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:330 +msgid "" +"`Single User`: Toggle this option to `On` to fix an existing FreeBSD " +"installation as described in crossref:boot[boot-singleuser,“Single-User " +"Mode”]. Once the problem is fixed, set it back to `Off`." +msgstr "" +"`Однопользовательский (Single User)`: Установите этот параметр в `Вкл`, " +"чтобы исправить существующую установку FreeBSD, как описано в " +"crossref:boot[boot-singleuser,“Однопользовательский режим”]. После " +"устранения проблемы верните значение `Выкл`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:331 +msgid "" +"`Verbose`: Toggle this option to `On` to see more detailed messages during " +"the boot process. This can be useful when troubleshooting a piece of " +"hardware." +msgstr "" +"`Подробно (Verbose)`: Установите этот параметр в `Вкл`, чтобы видеть более " +"подробные сообщения в процессе загрузки. Это может быть полезно при " +"диагностике проблем с оборудованием." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:336 +msgid "" +"After making the needed selections, press kbd:[1] or kbd:[Backspace] to " +"return to the main boot menu, then press kbd:[Enter] to continue booting " +"into FreeBSD. A series of boot messages will appear as FreeBSD carries out " +"its hardware device probes and loads the installation program. Once the " +"boot is complete, the welcome menu shown in crossref:bsdinstall[bsdinstall-" +"choose-mode,Welcome Menu] will be displayed." +msgstr "" +"После выбора необходимых параметров нажмите kbd:[1] или kbd:[Backspace], " +"чтобы вернуться в главное меню загрузки, затем нажмите kbd:[Enter] для " +"продолжения загрузки FreeBSD. Появится серия сообщений загрузки, пока " +"FreeBSD выполняет обнаружение аппаратных устройств и загружает программу " +"установки. После завершения загрузки будет отображено приветственное меню, " +"показанное на рисунке crossref:bsdinstall[bsdinstall-choose-" +"mode,Приветственное меню]." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:338 +#, no-wrap +msgid "Welcome Menu" +msgstr "Приветственное меню" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:339 +#, no-wrap +msgid "FreeBSD installation welcome menu" +msgstr "Приветственное меню установки FreeBSD" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:339 +#, no-wrap +msgid "bsdinstall-choose-mode.png" +msgstr "bsdinstall-choose-mode.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:347 +msgid "" +"Press kbd:[Enter] to select the default of btn:[Install] to enter the " +"installer. The rest of this chapter describes how to use this installer. " +"Otherwise, use the right or left arrows or the colorized letter to select " +"the desired menu item. The btn:[Shell] can be used to access a FreeBSD " +"shell in order to use command line utilities to prepare the disks before " +"installation. The btn:[Live CD] option can be used to try out FreeBSD " +"before installing it. The live version is described in " +"crossref:bsdinstall[using-live-cd, Using the Live CD]." +msgstr "" +"Нажмите kbd:[Enter], чтобы выбрать вариант по умолчанию btn:[Install] и " +"перейти к установке. В остальной части этой главы описывается, как " +"использовать этот установщик. В противном случае используйте стрелки вправо " +"или влево или выделенную цветом букву, чтобы выбрать нужный пункт меню. " +"Кнопка btn:[Shell] позволяет получить доступ к оболочке FreeBSD для " +"использования командной строки и подготовки дисков перед установкой. Вариант " +"btn:[Live CD] позволяет попробовать FreeBSD перед установкой. Версия Live CD " +"описана в пункте crossref:bsdinstall[using-live-cd, Использование Live CD]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:353 +msgid "" +"To review the boot messages, including the hardware device probe, press the " +"upper- or lower-case kbd:[S] and then kbd:[Enter] to access a shell. At the " +"shell prompt, type `more /var/run/dmesg.boot` and use the space bar to " +"scroll through the messages. When finished, type `exit` to return to the " +"welcome menu." +msgstr "" +"Для просмотра загрузочных сообщений, включая информацию об обнаруженных " +"аппаратных устройствах, нажмите kbd:[S] (верхний или нижний регистр) и затем " +"kbd:[Enter], чтобы перейти в оболочку. В командной строке оболочки введите " +"`more /var/run/dmesg.boot` и используйте пробел для прокрутки сообщений. По " +"завершении введите `exit`, чтобы вернуться в меню приветствия." + +#. type: Title == +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:356 +#, no-wrap +msgid "Using bsdinstall" +msgstr "Использование bsdinstall" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:361 +msgid "" +"This section shows the order of the bsdinstall menus and the type of " +"information that will be asked before the system is installed. Use the " +"arrow keys to highlight a menu option, then kbd:[Space] to select or " +"deselect that menu item. When finished, press kbd:[Enter] to save the " +"selection and move onto the next screen." +msgstr "" +"В этом разделе показана последовательность меню bsdinstall и тип информации, " +"которая будет запрошена перед установкой системы. Используйте клавиши со " +"стрелками, чтобы выделить пункт меню, затем kbd:[Space] для выбора или " +"отмены выбора этого пункта. По завершении нажмите kbd:[Enter], чтобы " +"сохранить выбор и перейти к следующему экрану." + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:363 +#, no-wrap +msgid "Selecting the Keymap Menu" +msgstr "Меню выбора раскладки клавиатуры" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:367 +msgid "" +"Before starting the process, bsdinstall will load the keymap files as shown " +"in crossref:bsdinstall[bsdinstall-keymap-loading,Keymap Loading]." +msgstr "" +"Перед началом процесса bsdinstall загрузит файлы раскладки клавиатуры, как " +"показано на рисунке crossref:bsdinstall[bsdinstall-keymap-loading,Загрузка " +"раскладки клавиатуры]." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:369 +#, no-wrap +msgid "Keymap Loading" +msgstr "Загрузка раскладки клавиатуры" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:370 +#, no-wrap +msgid "Keymap loading" +msgstr "Загрузка раскладки клавиатуры" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:370 +#, no-wrap +msgid "bsdinstall-keymap-loading.png" +msgstr "bsdinstall-keymap-loading.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:376 +msgid "" +"After the keymaps have been loaded, bsdinstall displays the menu shown in " +"crossref:bsdinstall[bsdinstall-keymap-10,Keymap Selection Menu]. Use the up " +"and down arrows to select the keymap that most closely represents the " +"mapping of the keyboard attached to the system. Press kbd:[Enter] to save " +"the selection." +msgstr "" +"После загрузки раскладок клавиатур bsdinstall отображает меню, показанное на " +"рисунке crossref:bsdinstall[bsdinstall-keymap-10,Меню выбора раскладки " +"клавиатуры]. Используйте стрелки вверх и вниз, чтобы выбрать раскладку, " +"наиболее точно соответствующую клавиатуре, подключенной к системе. Нажмите " +"kbd:[Enter], чтобы сохранить выбор." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:378 +#, no-wrap +msgid "Keymap Selection Menu" +msgstr "Меню выбора раскладки клавиатуры" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:379 +#, no-wrap +msgid "Keymap selection menu showing all supported keyboards" +msgstr "Меню выбора раскладки клавиатуры со списком всех поддерживаемых клавиатур" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:379 +#, no-wrap +msgid "bsdinstall-keymap-10.png" +msgstr "bsdinstall-keymap-10.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:385 +msgid "" +"Pressing kbd:[Esc] will exit this menu and use the default keymap. If the " +"choice of keymap is not clear, [.guimenuitem]#United States of America " +"ISO-8859-1# is also a safe option." +msgstr "" +"Нажатие kbd:[Esc] выйдет из этого меню и использует раскладку по умолчанию. " +"Если выбор раскладки неочевиден, [.guimenuitem]#United States of America " +"ISO-8859-1# также является безопасным вариантом." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:390 +msgid "" +"In addition, when selecting a different keymap, the user can try the keymap " +"and ensure it is correct before proceeding, as shown in " +"crossref:bsdinstall[bsdinstall-keymap-testing,Keymap Testing Menu]." +msgstr "" +"Кроме того, при выборе другой раскладки клавиатуры пользователь может " +"проверить её и убедиться в правильности перед продолжением, как показано на " +"рисунке crossref:bsdinstall[bsdinstall-keymap-testing,Меню проверки " +"раскладки клавиатуры]." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:392 +#, no-wrap +msgid "Keymap Testing Menu" +msgstr "Меню тестирования раскладки клавиатуры" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:393 +#, no-wrap +msgid "Keymap testing menu" +msgstr "Меню тестирования раскладки клавиатуры" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:393 +#, no-wrap +msgid "bsdinstall-keymap-testing.png" +msgstr "bsdinstall-keymap-testing.png" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:396 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:401 +#, no-wrap +msgid "Setting the Hostname" +msgstr "Установка имени хоста" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:399 +msgid "" +"The next bsdinstall menu is used to set the hostname for the newly installed " +"system." +msgstr "" +"Следующее меню bsdinstall используется для установки имени хоста вновь " +"устанавливаемой системы." + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:402 +#, no-wrap +msgid "Setting the hostname" +msgstr "Установка имени хоста" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:402 +#, no-wrap +msgid "bsdinstall-config-hostname.png" +msgstr "bsdinstall-config-hostname.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:406 +msgid "" +"Type in a hostname that is unique for the network. It should be a fully-" +"qualified hostname, such as `machine3.example.com`." +msgstr "" +"Введите имя хоста, уникальное для сети. Оно должно быть полным доменным " +"именем, например `machine3.example.com`." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:408 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:413 +#, no-wrap +msgid "Selecting Components to Install" +msgstr "Выбор компонентов для установки" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:411 +msgid "Next, bsdinstall will prompt to select optional components to install." +msgstr "" +"Затем `bsdinstall` предложит выбрать дополнительные компоненты для установки." + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:414 +#, no-wrap +msgid "Different components that can be installed. Example: base-dbg" +msgstr "Различные компоненты, которые могут быть установлены. Пример: `base-dbg`" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:414 +#, no-wrap +msgid "bsdinstall-config-components.png" +msgstr "bsdinstall-config-components.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:419 +msgid "" +"Deciding which components to install will depend largely on the intended use " +"of the system and the amount of disk space available. The FreeBSD kernel " +"and userland, collectively known as the _base system_, are always " +"installed. Depending on the architecture, some of these components may not " +"appear:" +msgstr "" +"Выбор компонентов для установки в значительной степени зависит от " +"предполагаемого использования системы и доступного дискового пространства. " +"Базовая система FreeBSD, включающая ядро и пользовательское окружение (_base " +"system_), устанавливается всегда. В зависимости от архитектуры некоторые из " +"этих компонентов могут отсутствовать:" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:421 +msgid "" +"`base-dbg` - Base tools like cat and ls, among many others, with debug " +"symbols activated." +msgstr "" +"`base-dbg` - Базовые инструменты, такие как cat и ls, среди многих других, с " +"активированными отладочными символами." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:422 +msgid "`kernel-dbg` - Kernel and modules with debug symbols activated." +msgstr "`kernel-dbg` - Ядро и модули с включенными отладочными символами." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:423 +msgid "" +"`lib32-dbg` - Compatibility libraries for running 32-bit applications on a " +"64-bit version of FreeBSD with debug symbols activated." +msgstr "" +"`lib32-dbg` - Совместимые библиотеки для запуска 32-битных приложений на 64-" +"битной версии FreeBSD с активированными отладочными символами." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:424 +msgid "" +"`lib32` - Compatibility libraries for running 32-bit applications on a 64-" +"bit version of FreeBSD." +msgstr "" +"`lib32` - Совместимые библиотеки для запуска 32-битных приложений на 64-" +"битной версии FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:425 +msgid "" +"`ports` - The FreeBSD Ports Collection is a collection of files which " +"automates the downloading, compiling and installation of third-party " +"software packages. crossref:ports[ports,Installing Applications: Packages " +"and Ports] discusses how to use the Ports Collection." +msgstr "" +"`ports` - Коллекция портов FreeBSD представляет собой набор файлов, " +"автоматизирующих загрузку, компиляцию и установку сторонних программных " +"пакетов. В разделе crossref:ports[ports,Установка приложений: Пакеты и " +"Порты] рассматривается, как использовать Коллекцию портов." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:431 +msgid "" +"The installation program does not check for adequate disk space. Select " +"this option only if sufficient hard disk space is available. The FreeBSD " +"Ports Collection takes up about {ports-size} of disk space." +msgstr "" +"Программа установки не проверяет наличие достаточного места на диске. " +"Выбирайте этот вариант, только если доступно достаточно места на жестком " +"диске. Коллекция портов FreeBSD занимает около {ports-size} места на диске." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:434 +msgid "" +"`src` - The complete FreeBSD source code for both the kernel and the " +"userland. Although not required for the majority of applications, it may be " +"required to build device drivers, kernel modules, or some applications from " +"the Ports Collection. It is also used for developing FreeBSD itself. The " +"full source tree requires 1 GB of disk space and recompiling the entire " +"FreeBSD system requires an additional 5 GB of space." +msgstr "" +"`src` - Полный исходный код FreeBSD, включая как ядро, так и " +"пользовательское пространство. Хотя он не требуется для большинства " +"приложений, он может быть необходим для сборки драйверов устройств, модулей " +"ядра или некоторых приложений из коллекции портов. Также он используется для " +"разработки самой FreeBSD. Полное дерево исходных кодов занимает 1 ГБ " +"дискового пространства, а перекомпиляция всей системы FreeBSD требует " +"дополнительно 5 ГБ пространства." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:435 +msgid "`tests` - FreeBSD Test Suite." +msgstr "`tests` — Набор тестов FreeBSD." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:437 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:445 +#, no-wrap +msgid "Installing from the Network" +msgstr "Установка по сети" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:443 +msgid "" +"The menu shown in crossref:bsdinstall[bsdinstall-netinstall-" +"notify,Installing from the Network] only appears when installing from a `-" +"bootonly.iso` or `-mini-memstick.img`, as this installation media does not " +"hold copies of the installation files. Since the installation files must be " +"retrieved over a network connection, this menu indicates that the network " +"interface must be configured first. If this menu is shown in any step of " +"the process, remember to follow the instructions in " +"crossref:bsdinstall[bsdinstall-config-network-dev, Configuring Network " +"Interfaces]." +msgstr "" +"Меню, показанное на рисунке crossref:bsdinstall[bsdinstall-netinstall-" +"notify,Установка из сети], появляется только при установке с `-bootonly.iso` " +"или `-mini-memstick.img`, так как эти носители не содержат копий файлов " +"установки. Поскольку файлы установки должны быть получены через сетевое " +"соединение, это меню указывает на необходимость предварительной настройки " +"сетевого интерфейса. Если это меню появляется на любом этапе процесса, не " +"забудьте следовать инструкциям из раздела crossref:bsdinstall[bsdinstall-" +"config-network-dev,Настройка сетевых интерфейсов]." + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:446 +#, no-wrap +msgid "Indicates that certain components have not been found and will be downloaded using the network." +msgstr "Указывает, что определенные компоненты не были найдены и будут загружены через сеть." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:446 +#, no-wrap +msgid "bsdinstall-netinstall-files.png" +msgstr "bsdinstall-netinstall-files.png" + +#. type: Title == +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:449 +#, no-wrap +msgid "Allocating Disk Space" +msgstr "Выделение дискового пространства" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:452 +msgid "" +"The next menu is used to determine the method for allocating disk space." +msgstr "" +"Следующее меню используется для определения метода распределения дискового " +"пространства." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:454 +#, no-wrap +msgid "Partitioning Choices" +msgstr "Варианты разметки разделов" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:455 +#, no-wrap +msgid "Shows the different partition options. Example: Manual" +msgstr "Показывает различные варианты разделов. Пример: Ручной" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:455 +#, no-wrap +msgid "bsdinstall-zfs-partmenu.png" +msgstr "bsdinstall-zfs-partmenu.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:458 +msgid "bsdinstall gives the user four methods for allocating disk space:" +msgstr "" +"bsdinstall предоставляет пользователю четыре метода распределения дискового " +"пространства:" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:460 +msgid "" +"`Auto (ZFS)` partitioning creates a root-on-ZFS system with optional GELI " +"encryption support for _boot environments_." +msgstr "" +"`Auto (ZFS)` — автоматическое разбиение на разделы создаёт систему с " +"корневым разделом на ZFS и возможностью использования шифрования GELI для " +"_загрузочных окружений_." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:461 +msgid "" +"`Auto (UFS)` partitioning automatically sets up the disk partitions using " +"the `UFS` file system." +msgstr "" +"`Auto (UFS)` — автоматическое разбиение диска с использованием файловой " +"системы `UFS`." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:462 +msgid "" +"`Manual` partitioning allows advanced users to create customized partitions " +"from menu options." +msgstr "" +"`Ручное (Manual)` разбиение позволяет опытным пользователям создавать " +"настраиваемые разделы с помощью параметров меню." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:463 +msgid "" +"`Shell` opens a shell prompt where advanced users can create customized " +"partitions using command-line utilities like man:gpart[8], man:fdisk[8], and " +"man:bsdlabel[8]." +msgstr "" +"`Оболочка (Shell)` открывает командную оболочку, где опытные пользователи " +"могут создавать настраиваемые разделы с помощью утилит командной строки, " +"таких как man:gpart[8], man:fdisk[8] и man:bsdlabel[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:466 +msgid "" +"This section describes what to consider when laying out the disk " +"partitions. It then demonstrates how to use the different partitioning " +"methods." +msgstr "" +"Этот раздел описывает, что следует учитывать при разметке разделов диска. " +"Затем демонстрируется, как использовать различные методы разметки." + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:468 +#, no-wrap +msgid "Designing the Partition Layout" +msgstr "Проектирование разметки разделов" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:475 +msgid "" +"The default partition layout for file systems includes one file system for " +"the entire system. When using `UFS` it may be worth considering the use of " +"multiple file systems if you have sufficient disk space or multiple disks. " +"When laying out file systems, remember that hard drives transfer data faster " +"from the outer tracks to the inner. Thus, smaller and heavier-accessed file " +"systems should be closer to the outside of the drive, while larger " +"partitions like `/usr` should be placed toward the inner parts of the disk. " +"It is a good idea to create partitions in an order similar to: `/`, swap, `/" +"var`, and `/usr`." +msgstr "" +"По умолчанию схема разметки разделов для файловых систем включает одну " +"файловую систему для всей системы. При использовании `UFS` может быть " +"целесообразно рассмотреть использование нескольких файловых систем, если у " +"вас достаточно места на диске или несколько дисков. При разметке файловых " +"систем учитывайте, что жёсткие диски передают данные быстрее с внешних " +"дорожек по сравнению с внутренними. Таким образом, небольшие и часто " +"используемые файловые системы должны располагаться ближе к внешней части " +"диска, а крупные разделы, такие как `/usr`, следует размещать ближе к " +"внутренней части диска. Рекомендуется создавать разделы в следующем порядке: " +"`/`, раздел подкачки, `/var` и `/usr`." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:480 +msgid "" +"The size of the `/var` partition reflects the intended machine's usage. " +"This partition is used to hold mailboxes, log files, and printer spools. " +"Mailboxes and log files can grow to unexpected sizes depending on the number " +"of users and how long log files are kept. On average, most users rarely " +"need more than about a gigabyte of free disk space in `/var`." +msgstr "" +"Размер раздела `/var` зависит от предполагаемого использования машины. Этот " +"раздел используется для хранения почтовых ящиков, файлов журналов и очередей " +"печати. Почтовые ящики и файлы журналов могут достигать неожиданно больших " +"размеров в зависимости от количества пользователей и срока хранения " +"журналов. В среднем большинству пользователей редко требуется более одного " +"гигабайта свободного места на диске в `/var`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:486 +msgid "" +"Sometimes, a lot of disk space is required in `/var/tmp`. When new software " +"is installed, the packaging tools extract a temporary copy of the packages " +"under `/var/tmp`. Large software packages, like Firefox or LibreOffice may " +"be tricky to install if there is not enough disk space under `/var/tmp`." +msgstr "" +"Иногда в `/var/tmp` требуется много дискового пространства. При установке " +"нового программного обеспечения утилиты управления пакетами извлекают " +"временную копию пакетов в `/var/tmp`. У крупных пакетов, таких как Firefox " +"или LibreOffice, могут возникнуть сложности во время установки, если в `/var/" +"tmp` недостаточно места на диске." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:492 +msgid "" +"The `/usr` partition holds many of the files which support the system, " +"including the FreeBSD Ports Collection and system source code. At least 2 " +"gigabytes of space is recommended for this partition. Also, note that home " +"directories for users are placed in `/usr/home` by default, but can be " +"placed on another partition. By default, `/home` is a symbolic link to `/" +"usr/home`." +msgstr "" +"Раздел `/usr` содержит множество файлов, поддерживающих систему, включая " +"коллекцию портов FreeBSD и исходный код системы. Для этого раздела " +"рекомендуется выделить не менее 2 гигабайт пространства. Также учтите, что " +"домашние каталоги пользователей по умолчанию размещаются в `/usr/home`, но " +"могут быть расположены на другом разделе. По умолчанию `/home` является " +"символической ссылкой на `/usr/home`." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:495 +msgid "" +"When selecting partition sizes, keep the space requirements in mind. " +"Running out of space in one partition while barely using another can be a " +"hassle." +msgstr "" +"При выборе размера разделов учитывайте требования к пространству. Нехватка " +"места в одном разделе при почти полном отсутствии использования другого " +"может создать проблемы." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:499 +msgid "" +"As a rule of thumb, the swap partition should be about double the size of " +"physical memory (RAM). Systems with minimal RAM (less for larger-memory " +"configurations) may perform better with more swap. Configuring too little " +"swap can lead to inefficiencies in the VM page scanning code and might " +"create issues later if more memory is added." +msgstr "" +"Как правило, размер раздела подкачки должен быть примерно в два раза больше " +"объема физической памяти (RAM). Системам с малым объемом RAM (меньше для " +"конфигураций с большим объемом памяти) может быть полезно иметь больше " +"область подкачки. Слишком маленький объем подкачки может привести к " +"неэффективности работы кода сканирования страниц виртуальной памяти и " +"создать проблемы в будущем при добавлении памяти." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:507 +msgid "" +"On larger systems with multiple SCSI disks or multiple IDE disks operating " +"on different controllers, it is recommended that swap be configured on each " +"drive, up to four drives. The swap partitions should be approximately the " +"same size. The kernel can handle arbitrary sizes, but internal data " +"structures scale to 4 times the largest swap partition. Keeping the swap " +"partitions near the same size will allow the kernel to optimally stripe swap " +"space across disks. Large swap sizes may elicit a kernel warning message " +"about the total configured swap. The limit is raised by increasing the " +"amount of memory allowed for keeping track of swap allocations, as " +"instructed by the warning message. It might be easier to recover from a " +"runaway program before being forced to reboot." +msgstr "" +"На больших системах с несколькими SCSI-дисками или несколькими IDE-дисками, " +"работающими на разных контроллерах, рекомендуется настраивать раздел " +"подкачки на каждом диске, вплоть до четырёх дисков. Разделы подкачки должны " +"быть примерно одинакового размера. Ядро может обрабатывать разделы " +"произвольного размера, но внутренние структуры данных масштабируются до 4-" +"кратного размера наибольшего раздела подкачки. Поддержание разделов подкачки " +"примерно одинакового размера позволит ядру оптимально распределять " +"пространство подкачки по дискам. Большие размеры подкачки могут вызвать " +"предупреждение ядра о суммарном объёме настроенной подкачки. Лимит можно " +"увеличить, выделив больше памяти для отслеживания распределения подкачки, " +"как указано в сообщении с предупреждением. Это может облегчить " +"восстановление после сбоя программы без необходимости перезагрузки системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:511 +msgid "" +"By properly partitioning a system, fragmentation introduced in the smaller " +"write-heavy partitions will not bleed over into the mostly read partitions. " +"Keeping the write-loaded partitions closer to the disk's edge will increase " +"I/O performance in the partitions where it occurs the most. While I/O " +"performance in the larger partitions may be needed, shifting them more " +"toward the edge of the disk will not lead to a significant performance " +"improvement over moving `/var` to the edge." +msgstr "" +"Правильное разделение системы на разделы предотвращает распространение " +"фрагментации, возникающей в небольших разделах с высокой нагрузкой на " +"запись, на преимущественно читаемые разделы. Размещение разделов с высокой " +"нагрузкой на запись ближе к краю диска повышает производительность ввода-" +"вывода в тех разделах, где это наиболее критично. Хотя производительность " +"ввода-вывода в крупных разделах также может быть важной, их смещение ближе к " +"краю диска не даст значительного прироста производительности по сравнению с " +"перемещением `/var` к краю." + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:513 +#, no-wrap +msgid "Guided Partitioning Using UFS" +msgstr "Разметка диска с использованием UFS с помощью мастера" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:517 +msgid "" +"When this method is selected, a menu will display the available disk(s). If " +"multiple disks are connected, choose the one where FreeBSD is to be " +"installed." +msgstr "" +"При выборе этого метода отобразится меню с доступными дисками. Если " +"подключено несколько дисков, выберите тот, на который будет установлена " +"FreeBSD." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:519 +#, no-wrap +msgid "Selecting from Multiple Disks" +msgstr "Выбор из нескольких дисков" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:520 +#, no-wrap +msgid "Shows the list of disks on which FreeBSD can be installed" +msgstr "Показывает список дисков, на которые может быть установлена FreeBSD" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:520 +#, no-wrap +msgid "bsdinstall-part-guided-disk.png" +msgstr "bsdinstall-part-guided-disk.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:525 +msgid "" +"Once the disk is selected, the next menu prompts to install to either the " +"entire disk or to create a partition using free space. If btn:[Entire Disk] " +"is chosen, a general partition layout filling the whole disk is " +"automatically created. Selecting btn:[Partition] creates a partition layout " +"from the unused space on the disk." +msgstr "" +"После выбора диска в следующем меню предлагается установить систему на весь " +"диск или создать раздел в свободном пространстве. Если выбран btn:[Весь " +"диск], автоматически создаётся общая схема разделов, занимающая весь диск. " +"При выборе btn:[Раздел] создаётся схема разделов из неиспользуемого " +"пространства на диске." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:527 +#, no-wrap +msgid "Selecting Entire Disk or Partition" +msgstr "Выбор всего диска или раздела" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:528 +#, no-wrap +msgid "Menu asking the user if he wants to use all the available space on the disk or wants to make a partition" +msgstr "Меню с вопросом к пользователю, хочет ли он использовать все доступное пространство на диске или создать раздел" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:528 +#, no-wrap +msgid "bsdinstall-part-entire-part.png" +msgstr "bsdinstall-part-entire-part.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:531 +msgid "" +"After the btn:[Entire Disk] option is chosen, bsdinstall displays a dialog " +"indicating that the disk will be erased." +msgstr "" +"После выбора варианта btn:[Весь диск] программа bsdinstall отображает " +"диалоговое окно с предупреждением о том, что диск будет очищен." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:533 +#, no-wrap +msgid "Confirmation" +msgstr "Подтверждение" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:534 +#, no-wrap +msgid "Menu indicating the user that all data on the disk will be deleted and asking for confirmation" +msgstr "Меню, предупреждающее пользователя о том, что все данные на диске будут удалены, и запрашивающее подтверждение" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:534 +#, no-wrap +msgid "bsdinstall-ufs-warning.png" +msgstr "bsdinstall-ufs-warning.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:541 +msgid "" +"The next menu shows a list with the available partition scheme types. GPT " +"is usually the most appropriate choice for amd64 computers. Older computers " +"that are not compatible with GPT should use MBR. The other partition " +"schemes are generally used for uncommon or older computers. More " +"information is available in crossref:bsdinstall[partition-" +"schemes,Partitioning Schemes]." +msgstr "" +"Следующее меню показывает список доступных типов схем разделов. GPT обычно " +"является наиболее подходящим выбором для компьютеров amd64. Более старые " +"компьютеры, несовместимые с GPT, должны использовать MBR. Остальные схемы " +"разделов, как правило, применяются для редких или устаревших компьютеров. " +"Дополнительная информация доступна в таблице crossref:bsdinstall[partition-" +"schemes,Схемы разделов]." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:543 +#, no-wrap +msgid "Select Partition Scheme" +msgstr "Выбор схемы разделов" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:544 +#, no-wrap +msgid "Menu showing the user the different the different types of partition that exist and requesting one of them" +msgstr "Меню, показывающее пользователю различные типы существующих разделов и запрашивающее выбор одного из них" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:544 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:580 +#, no-wrap +msgid "bsdinstall-part-manual-partscheme.png" +msgstr "bsdinstall-part-manual-partscheme.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:550 +msgid "" +"After the partition layout has been created, review it to ensure it meets " +"the needs of the installation. Selecting btn:[Revert] will reset the " +"partitions to their original values. Pressing btn:[Auto] will recreate the " +"automatic FreeBSD partitions. Partitions can also be manually created, " +"modified, or deleted. When the partitioning is correct, select btn:[Finish] " +"to continue with the installation." +msgstr "" +"После создания разметки разделов просмотрите её, чтобы убедиться, что она " +"соответствует требованиям установки. Выбор btn:[Отменить (Revert)] вернёт " +"разделы к исходным значениям. Нажатие btn:[Автоматически (Auto)] воссоздаст " +"автоматические разделы FreeBSD. Разделы также можно создавать, изменять или " +"удалять вручную. Когда разметка разделов будет правильной, выберите btn:" +"[Готово (Finish)] для продолжения установки." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:552 +#, no-wrap +msgid "Review Created Partitions" +msgstr "Проверка созданных разделов" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:553 +#, no-wrap +msgid "Menu showing created partitions" +msgstr "Меню с созданными разделами" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:553 +#, no-wrap +msgid "bsdinstall-part-review.png" +msgstr "bsdinstall-part-review.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:559 +msgid "" +"Once the disks are configured, the next menu provides the last chance to " +"make changes before the selected drives are formatted. If changes need to " +"be made, select btn:[Back] to return to the main partitioning menu. btn:" +"[Revert & Exit] exits the installer without making any changes to the " +"drive. Otherwise, select btn:[Commit] to start the installation process." +msgstr "" +"После настройки дисков в следующем меню предоставляется последняя " +"возможность внести изменения перед форматированием выбранных накопителей. " +"Если изменения необходимы, выберите btn:[Назад], чтобы вернуться в главное " +"меню разметки. btn:[Отменить & Выйти] завершает работу установщика без " +"внесения изменений в накопитель. В противном случае выберите btn:" +"[Применить], чтобы начать процесс установки." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:561 +#, no-wrap +msgid "Final Confirmation" +msgstr "Окончательное подтверждение" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:562 +#, no-wrap +msgid "Menu indicating to the user that all changes will be written to disk and informing that if he decides to continue the existing data will be permanently deleted." +msgstr "Меню, уведомляющее пользователя о том, что все изменения будут записаны на диск, и предупреждающее, что в случае продолжения существующие данные будут безвозвратно удалены." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:562 +#, no-wrap +msgid "bsdinstall-final-confirmation.png" +msgstr "bsdinstall-final-confirmation.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:566 +msgid "" +"To continue with the installation process, go to " +"crossref:bsdinstall[bsdinstall-fetching-distribution, Fetching Distribution " +"Files]." +msgstr "" +"Для продолжения процесса установки перейдите к разделу " +"crossref:bsdinstall[bsdinstall-fetching-distribution, Загрузка файлов " +"дистрибутива]." + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:568 +#, no-wrap +msgid "Manual Partitioning" +msgstr "Ручное разбиение на разделы" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:571 +msgid "Selecting this method opens the partition editor:" +msgstr "Выбор этого метода открывает редактор разделов:" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:573 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:579 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:610 +#, no-wrap +msgid "Manually Create Partitions" +msgstr "Ручное создание разделов" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:574 +#, no-wrap +msgid "Menu showing the Partition Editor." +msgstr "Меню с отображением редактора разделов." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:574 +#, no-wrap +msgid "bsdinstall-part-manual-create.png" +msgstr "bsdinstall-part-manual-create.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:577 +msgid "" +"Highlight the installation drive (`ada0` in this example) and select btn:" +"[Create] to display a menu of available partition schemes:" +msgstr "" +"Выделите диск для установки (в данном примере `ada0`) и нажмите btn:[Создать " +"(Create)], чтобы отобразить меню доступных схем разделов:" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:580 +#, no-wrap +msgid "Menu showing the different kind of partition schemes" +msgstr "Меню с различными типами схем разделов" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:585 +msgid "" +"GPT is usually the most appropriate choice for amd64 computers. Older " +"computers that are not compatible with GPT should use MBR. The other " +"partition schemes are generally used for uncommon or older computers." +msgstr "" +"Для компьютеров на архитектуре amd64 обычно наиболее подходящим выбором " +"является GPT. Старые компьютеры, несовместимые с GPT, должны использовать " +"MBR. Остальные схемы разделов, как правило, применяются для редких или " +"устаревших компьютеров." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:587 +#, no-wrap +msgid "Partitioning Schemes" +msgstr "Схемы разделов" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:591 +#, no-wrap +msgid "Abbreviation" +msgstr "Сокращение" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:593 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:594 +#, no-wrap +msgid "APM" +msgstr "APM" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:596 +#, no-wrap +msgid "Apple Partition Map, used by PowerPC(R)." +msgstr "Apple Partition Map, используется в PowerPC(R)." + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:597 +#, no-wrap +msgid "BSD" +msgstr "BSD" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:599 +#, no-wrap +msgid "BSD label without an MBR, sometimes called _dangerously dedicated mode_ as non-BSD disk utilities may not recognize it." +msgstr "Метка BSD без MBR, иногда называемая _опасно выделенным режимом_, так как не-BSD утилиты для работы с дисками могут её не распознать." + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:600 +#, no-wrap +msgid "GPT" +msgstr "GPT" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:602 +#, no-wrap +msgid "link:https://en.wikipedia.org/wiki/GUID_Partition_Table[GUID Partition Table]." +msgstr "link:https://en.wikipedia.org/wiki/GUID_Partition_Table[GUID Partition Table]." + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:603 +#, no-wrap +msgid "MBR" +msgstr "MBR" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:604 +#, no-wrap +msgid "link:https://en.wikipedia.org/wiki/Master_boot_record[Master Boot Record]." +msgstr "link:https://en.wikipedia.org/wiki/Master_boot_record[Master Boot Record]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:608 +msgid "" +"After the partitioning scheme has been selected and created, select btn:" +"[Create] again to create the partitions. The kbd:[Tab] key is used to give " +"focus to the fields (after cycling through btn:[<OK>], btn:[<Options>], and " +"btn:[<Cancel>])." +msgstr "" +"После выбора и создания схемы разделов снова выберите btn:[Создать], чтобы " +"создать разделы. Клавиша kbd:[Tab] используется для перехода между полями " +"(после перебора btn:[<OK>], btn:[<Параметры>] и btn:[<Отмена>])." + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:611 +#, no-wrap +msgid "Menu requesting type" +msgstr "Тип запрашиваемого меню" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:611 +#, no-wrap +msgid "bsdinstall-part-manual-addpart.png" +msgstr "bsdinstall-part-manual-addpart.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:614 +msgid "" +"A standard FreeBSD GPT installation uses at least three partitions, " +"including either UFS or ZFS:" +msgstr "" +"Стандартная установка FreeBSD с использованием GPT включает как минимум три " +"раздела, включая либо UFS, либо ZFS:" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:616 +msgid "`freebsd-boot` or `efi` - Holds the FreeBSD boot code." +msgstr "`freebsd-boot` или `efi` - Содержит загрузочный код FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:617 +msgid "`freebsd-ufs` - A FreeBSD UFS file system." +msgstr "`freebsd-ufs` - Файловая система FreeBSD UFS." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:618 +msgid "" +"`freebsd-zfs` - A FreeBSD ZFS file system. More information about ZFS is " +"available in crossref:zfs[zfs,The Z File System (ZFS)]." +msgstr "" +"`freebsd-zfs` - Файловая система ZFS в FreeBSD. Дополнительная информация о " +"ZFS доступна в crossref:zfs[zfs,Файловая система ZFS (ZFS)]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:619 +msgid "`freebsd-swap` - FreeBSD swap space." +msgstr "`freebsd-swap` - область подкачки FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:621 +msgid "" +"Refer to man:gpart[8] for descriptions of the available GPT partition types." +msgstr "Обратитесь к man:gpart[8] для описания доступных типов разделов GPT." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:623 +msgid "" +"Multiple file system partitions can be created. Some people prefer a " +"traditional layout with separate partitions for `/`, `/var`, `/tmp`, and `/" +"usr`." +msgstr "" +"Можно создать несколько разделов файловой системы. Некоторые предпочитают " +"традиционную схему с отдельными разделами для `/`, `/var`, `/tmp` и `/usr`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:627 +msgid "" +"Note that `/tmp` can be added later as a memory-based file system " +"(man:tmpfs[5]) on systems with sufficient memory." +msgstr "" +"Обратите внимание, что `/tmp` можно добавить позже как файловую систему в " +"памяти (man:tmpfs[5]) на системах с достаточным объемом оперативной памяти." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:630 +msgid "" +"See crossref:bsdinstall[bsdinstall-part-manual-splitfs,Creating Traditional " +"Split File System Partitions] for an example." +msgstr "" +"См. crossref:bsdinstall[bsdinstall-part-manual-splitfs,Создание традиционных " +"разделов файловой системы с разделением] для примера." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:632 +msgid "" +"The `Size` may be entered with common abbreviations: _K_ for kilobytes, _M_ " +"for megabytes, or _G_ for gigabytes." +msgstr "" +"`Размер (Size)` может быть указан с общепринятыми сокращениями: _K_ для " +"килобайт, _M_ для мегабайт или _G_ для гигабайт." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:639 +msgid "" +"Proper sector alignment provides the best performance, and making partition " +"sizes even multiples of 4K bytes helps to ensure alignment on drives with " +"either 512-byte or 4K-byte sectors. Generally, using partition sizes that " +"are even multiples of 1M or 1G is the easiest way to make sure every " +"partition starts at an even multiple of 4K. There is one exception: a " +"_freebsd-boot_ partition for BIOS booting should be no larger than 512K due " +"to legacy boot code limitations. This limitation does not apply to UEFI " +"booting." +msgstr "" +"Правильное выравнивание секторов обеспечивает наилучшую производительность, " +"а создание разделов с размерами, кратными 4 КБ, помогает гарантировать " +"выравнивание на дисках с секторами размером 512 байт или 4 КБ. Как правило, " +"использование размеров разделов, кратных 1 МБ или 1 ГБ, — это самый простой " +"способ убедиться, что каждый раздел начинается с адреса, кратного 4 КБ. Есть " +"одно исключение: раздел _freebsd-boot_ для загрузки из BIOS не должен " +"превышать 512 КБ из-за ограничений старого загрузочного кода. Для загрузки с " +"поддержкой UEFI такого ограничения нет." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:643 +msgid "" +"A `Mountpoint` is needed if the partition will contain a file system. If " +"only a single UFS partition will be created, the mountpoint should be `/`." +msgstr "" +"Для раздела, который будет содержать файловую систему, требуется `точка " +"монтирования (Mountpoint)`. Если создается только один раздел UFS, точкой " +"монтирования должен быть `/`." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:649 +msgid "" +"The `Label` is a name by which the partition will be known. Drive names or " +"numbers can change if the drive is connected to a different controller or " +"port, but the partition label does not change. Referring to labels instead " +"of drive names and partition numbers in files like `/etc/fstab` makes the " +"system more tolerant to hardware changes. GPT labels appear in `/dev/gpt/` " +"when a disk is attached. Other partitioning schemes have different label " +"capabilities and their labels appear in different directories in `/dev/`." +msgstr "" +"`Метка (Label)` — это имя, по которому раздел будет известен. Имена или " +"номера дисков могут измениться, если диск подключён к другому контроллеру " +"или порту, но метка раздела остаётся неизменной. Использование меток вместо " +"имён дисков и номеров разделов в файлах, таких как `/etc/fstab`, делает " +"систему более устойчивой к изменениям оборудования. Метки GPT отображаются в " +"`/dev/gpt/` при подключении диска. Другие схемы разделения имеют свои " +"возможности для меток, и их метки отображаются в разных каталогах в `/dev/`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:655 +msgid "" +"Use a unique label on every partition to avoid conflicts from identical " +"labels. A few letters from the computer's name, use, or location can be " +"added to the label. For instance, use `labroot` or `rootfslab` for the UFS " +"root partition on the computer named `lab`." +msgstr "" +"Используйте уникальные метки для каждого раздела, чтобы избежать конфликтов " +"из-за одинаковых меток. Можно добавить несколько букв из имени компьютера, " +"его назначения или местоположения. Например, используйте `labroot` или " +"`rootfslab` для корневого раздела UFS на компьютере с именем `lab`." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:658 +#, no-wrap +msgid "Creating Traditional Split File System Partitions" +msgstr "Создание традиционных разделов файловой системы с разделением" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:665 +msgid "" +"For a traditional partition layout where the `/`, `/var`, `/tmp`, and `/usr` " +"directories are separate file systems on their own partitions, create a GPT " +"partitioning scheme, then create the partitions as shown. Partition sizes " +"shown are typical for a 20G target disk. If more space is available on the " +"target disk, larger swap or `/var` partitions may be useful. Labels shown " +"here are prefixed with `ex` for \"example\", but readers should use other " +"unique label values as described above." +msgstr "" +"Для традиционной схемы разделов, где `/`, `/var`, `/tmp` и `/usr` являются " +"отдельными файловыми системами на своих разделах, создайте схему разделов " +"GPT, затем создайте разделы, как показано ниже. Указанные размеры разделов " +"типичны для целевого диска размером 20 ГБ. Если на целевом диске доступно " +"больше места, могут быть полезны увеличенные разделы подкачки или `/var`. " +"Метки, указанные здесь, имеют префикс `ex` (от \"example\"), но читателям " +"следует использовать другие уникальные значения меток, как описано выше." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:667 +msgid "" +"By default, FreeBSD's `gptboot` expects the first UFS partition to be the `/" +"` partition." +msgstr "" +"По умолчанию `gptboot` в FreeBSD ожидает, что первый UFS-раздел будет " +"разделом `/`." + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:672 +#, no-wrap +msgid "Partition Type" +msgstr "Тип раздела" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:673 +#, no-wrap +msgid "Size" +msgstr "Размер" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:674 +#, no-wrap +msgid "Mountpoint" +msgstr "Точка монтирования" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:676 +#, no-wrap +msgid "Label" +msgstr "Label" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:677 +#, no-wrap +msgid "`freebsd-boot`" +msgstr "`freebsd-boot`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:678 +#, no-wrap +msgid "`512K`" +msgstr "`512K`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:682 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:692 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:697 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:702 +#, no-wrap +msgid "`freebsd-ufs`" +msgstr "`freebsd-ufs`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:683 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:693 +#, no-wrap +msgid "`2G`" +msgstr "`2G`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:684 +#, no-wrap +msgid "`/`" +msgstr "`/`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:686 +#, no-wrap +msgid "`exrootfs`" +msgstr "`exrootfs`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:687 +#, no-wrap +msgid "`freebsd-swap`" +msgstr "`freebsd-swap`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:688 +#, no-wrap +msgid "`4G`" +msgstr "`4G`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:691 +#, no-wrap +msgid "`exswap`" +msgstr "`exswap`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:694 +#, no-wrap +msgid "`/var`" +msgstr "`/var`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:696 +#, no-wrap +msgid "`exvarfs`" +msgstr "`exvarfs`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:698 +#, no-wrap +msgid "`1G`" +msgstr "`1G`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:699 +#, no-wrap +msgid "`/tmp`" +msgstr "`/tmp`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:701 +#, no-wrap +msgid "`extmpfs`" +msgstr "`extmpfs`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:703 +#, no-wrap +msgid "accept the default (remainder of the disk)" +msgstr "принять значение по умолчанию (оставшаяся часть диска)" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:704 +#, no-wrap +msgid "`/usr`" +msgstr "`/usr`" + +#. type: Table +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:705 +#, no-wrap +msgid "`exusrfs`" +msgstr "`exusrfs`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:711 +msgid "" +"After the custom partitions have been created, select btn:[Finish] to " +"continue with the installation and go to crossref:bsdinstall[bsdinstall-" +"fetching-distribution, Fetching Distribution Files]." +msgstr "" +"После создания пользовательских разделов выберите btn:[Завершить (Finish)], " +"чтобы продолжить установку и перейти к разделу " +"crossref:bsdinstall[bsdinstall-fetching-distribution, Загрузка файлов " +"дистрибутива]." + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:713 +#, no-wrap +msgid "Guided Partitioning Using Root-on-ZFS" +msgstr "Разметка диска с использованием Root-on-ZFS с помощью мастера" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:717 +msgid "" +"This partitioning mode only works with whole disks and will erase the " +"contents of the entire disk. The main ZFS configuration menu offers a " +"number of options to control the creation of the pool." +msgstr "" +"Этот режим разметки работает только с целыми дисками и полностью сотрёт все " +"данные на диске. Основное меню настройки ZFS предоставляет несколько " +"вариантов управления созданием пула." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:719 +#, no-wrap +msgid "ZFS Partitioning Menu" +msgstr "Меню разметки ZFS" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:720 +#, no-wrap +msgid "Menu showing the different options to configure the ZFS pool" +msgstr "Меню с различными вариантами настройки пула ZFS" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:720 +#, no-wrap +msgid "bsdinstall-zfs-menu.png" +msgstr "bsdinstall-zfs-menu.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:723 +msgid "Here is a summary of the options in this menu:" +msgstr "Вот краткое описание пунктов этого меню:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:725 +msgid "`Install` - Proceed with the installation with the selected options." +msgstr "" +"`Установить (Install)` - Приступить к установке с выбранными параметрами." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:730 +msgid "" +"`Pool Type/Disks` - Configure the `Pool Type` and the disk(s) that will " +"constitute the pool. The automatic ZFS installer currently only supports the " +"creation of a single top level vdev, except in stripe mode. To create more " +"complex pools, use the instructions in crossref:bsdinstall[bsdinstall-part-" +"shell, Shell Mode Partitioning] to create the pool." +msgstr "" +"`Тип пула/диски (Pool Type/Disks)` - Настройте `Тип пула` и диск(и), которые " +"будут составлять пул. Автоматический установщик ZFS в настоящее время " +"поддерживает создание только одного vdev верхнего уровня, за исключением " +"режима stripe. Для создания более сложных пулов воспользуйтесь инструкциями " +"в crossref:bsdinstall[bsdinstall-part-shell, Разметка в режиме оболочки], " +"чтобы создать пул." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:731 +msgid "`Rescan Devices` - Repopulate the list of available disks." +msgstr "" +"`Сканировать диски (Rescan Devices)` - Обновить список доступных дисков." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:732 +msgid "" +"`Disk Info` - This menu can be used to inspect each disk, including its " +"partition table and various other information such as the device model " +"number and serial number, if available." +msgstr "" +"`Информация о диске (Disk Info)` - Это меню позволяет просматривать " +"информацию о каждом диске, включая таблицу разделов и другие данные, такие " +"как модель устройства и серийный номер, если они доступны." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:733 +msgid "" +"`Pool Name` - Establish the name of the pool. The default name is _zroot_." +msgstr "" +"`Имя пула (Pool Name)` - Укажите имя пула. По умолчанию используется имя " +"_zroot_." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:734 +msgid "" +"`Force 4K Sectors?` - Force the use of 4K sectors. By default, the installer " +"will automatically create partitions aligned to 4K boundaries and force ZFS " +"to use 4K sectors. This is safe even with 512 byte sector disks, and has the " +"added benefit of ensuring that pools created on 512 byte disks will be able " +"to have 4K sector disks added in the future, either as additional storage " +"space or as replacements for failed disks. Press the kbd:[Enter] key to " +"chose to activate it or not." +msgstr "" +"`Принудительно использовать секторы 4K? (Force 4K Sectors?)` — " +"Принудительное использование секторов размером 4K. По умолчанию установщик " +"автоматически создает разделы, выровненные по границам 4K, и принудительно " +"устанавливает использование секторов 4K в ZFS. Это безопасно даже для дисков " +"с секторами размером 512 байт и имеет дополнительное преимущество: пулы, " +"созданные на дисках с 512-байтными секторами, смогут в будущем работать с " +"дисками, имеющими секторы 4K, — как для расширения хранилища, так и для " +"замены вышедших из строя дисков. Нажмите kbd:[Enter], чтобы выбрать " +"активацию или отказ от нее." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:735 +msgid "" +"`Encrypt Disks?` - Encrypting the disks allows the user to encrypt the disks " +"using GELI. More information about disk encryption is available in " +"crossref:disks[disks-encrypting-geli,“Disk Encryption with geli”]. Press the " +"kbd:[Enter] key to choose whether to activate it or not." +msgstr "" +"`Шифровать диски (Encrypt Disks)?` - Шифрование дисков позволяет " +"пользователю зашифровать диски с помощью GELI. Дополнительная информация о " +"шифровании дисков доступна в crossref:disks[disks-encrypting-" +"geli,“Шифрование дисков с помощью geli”]. Нажмите клавишу kbd:[Enter], чтобы " +"выбрать, активировать его или нет." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:736 +msgid "" +"`Partition Scheme` - Choose the partition scheme. GPT is the recommended " +"option in most cases. Press the kbd:[Enter] key to chose between the " +"different options." +msgstr "" +"`Схема разделов (Partition Scheme)` - Выберите схему разделов. GPT " +"рекомендуется в большинстве случаев. Нажмите клавишу kbd:[Enter] для выбора " +"между различными вариантами." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:737 +msgid "`Swap Size` - Establish the amount of swap space." +msgstr "`Размер подкачки (Swap Size)` - Установите объем области подкачки." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:738 +msgid "" +"`Mirror Swap?` - Whether to mirror the swap between the disks. Be aware that " +"enabling mirror swap will break crash dumps. Press the kbd:[Enter] key to " +"activate it or not." +msgstr "" +"`Зеркалировать подкачку (Mirror Swap)?` - Определяет, нужно ли зеркалировать " +"раздел подкачки между дисками. Учтите, что включение зеркалирования swap " +"может нарушить работу дампов аварийных завершений. Нажмите kbd:[Enter], " +"чтобы активировать или отклонить этот параметр." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:739 +msgid "" +"`Encrypt Swap?` - Whether to encrypt the swap. This will encrypt the swap " +"with a temporary key each time the system boots, and discards it on reboot. " +"Press the kbd:[Enter] key to choose to activate it or not. More information " +"about swap encryption in crossref:disks[swap-encrypting,“Encrypting Swap”]." +msgstr "" +"`Шифровать раздел подкачки (Encrypt Swap)?` - Определяет, следует ли " +"шифровать раздел подкачки. При каждом запуске системы раздел подкачки будет " +"зашифрован временным ключом, который удаляется после перезагрузки. Нажмите " +"kbd:[Enter], чтобы выбрать, активировать эту функцию или нет. Дополнительная " +"информация о шифровании раздела подкачки приведена в crossref:disks[swap-" +"encrypting,\"Шифрование раздела подкачки\"]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:741 +msgid "" +"Select kbd:[T] to configure the `Pool Type` and the disk(s) that will " +"constitute the pool." +msgstr "" +"Выберите kbd:[T], чтобы настроить `Тип пула (Pool Type)` и диски, которые " +"будут входить в пул." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:743 +#, no-wrap +msgid "ZFS Pool Type" +msgstr "Тип пула ZFS" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:744 +#, no-wrap +msgid "Menu requesting the Virtual Device type. Ex: stripe" +msgstr "Меню выбора типа виртуального устройства. Например: stripe" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:744 +#, no-wrap +msgid "bsdinstall-zfs-vdev_type.png" +msgstr "bsdinstall-zfs-vdev_type.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:747 +msgid "Here is a summary of the `Pool Type` that can be selected in this menu:" +msgstr "Вот сводка по `Типу пула`, который можно выбрать в этом меню:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:749 +msgid "" +"`stripe` - Striping provides maximum storage of all connected devices, but " +"no redundancy. If just one disk fails the data on the pool is lost " +"irrevocably." +msgstr "" +"`stripe` - Чередование (striping) обеспечивает максимальный объем хранилища " +"из всех подключенных устройств, но не предоставляет избыточности. Если " +"выйдет из строя хотя бы один диск, данные в пуле будут потеряны безвозвратно." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:750 +msgid "" +"`mirror` - Mirroring stores a complete copy of all data on every disk. " +"Mirroring provides good read performance because data is read from all disks " +"in parallel. Write performance is slower as the data must be written to all " +"disks in the pool. Allows all but one disk to fail. This option requires at " +"least two disks." +msgstr "" +"`mirror` - Зеркалирование сохраняет полную копию всех данных на каждом " +"диске. Зеркалирование обеспечивает высокую производительность чтения, " +"поскольку данные считываются со всех дисков параллельно. Производительность " +"записи ниже, так как данные должны быть записаны на все диски в пуле. " +"Допускает отказ всех дисков, кроме одного. Для этого варианта требуется как " +"минимум два диска." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:751 +msgid "" +"`raid10` - Striped mirrors. Provides the best performance, but the least " +"storage. This option needs at least an even number of disks and a minimum of " +"four disks." +msgstr "" +"`raid10` - Чередующиеся зеркала. Обеспечивает наилучшую производительность, " +"но наименьший объем хранилища. Для этого варианта требуется четное " +"количество дисков, минимум четыре." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:752 +msgid "" +"`raidz1` - Single Redundant RAID. Allow one disk to fail concurrently. This " +"option needs at least three disks." +msgstr "" +"`raidz1` - RAID с одинарной избыточностью. Позволяет одновременный отказ " +"одного диска. Для этого варианта требуется как минимум три диска." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:753 +msgid "" +"`raidz2` - Double Redundant RAID. Allows two disks to fail concurrently. " +"This option needs at least four disks." +msgstr "" +"`raidz2` - Двухдисковая избыточная RAID. Позволяет одновременно отказать " +"двум дискам. Для этой конфигурации требуется как минимум четыре диска." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:754 +msgid "" +"`raidz3` - Triple Redundant RAID. Allows three disks to fail concurrently. " +"This option needs at least five disks." +msgstr "" +"`raidz3` - Трехкратно избыточный RAID. Позволяет одновременно отказать трем " +"дискам. Для этого варианта требуется как минимум пять дисков." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:758 +msgid "" +"Once a `Pool Type` has been selected, a list of available disks is " +"displayed, and the user is prompted to select one or more disks to make up " +"the pool. The configuration is then validated to ensure that enough disks " +"are selected. If validation fails, select btn:[<Change Selection>] to " +"return to the list of disks or btn:[<Back>] to change the `Pool Type`." +msgstr "" +"После выбора `Типа пула` отображается список доступных дисков, и " +"пользователю предлагается выбрать один или несколько дисков для создания " +"пула. Затем конфигурация проверяется, чтобы убедиться, что выбрано " +"достаточное количество дисков. Если проверка не пройдена, выберите btn:" +"[<Изменить выбор>], чтобы вернуться к списку дисков, или btn:[<Назад>], " +"чтобы изменить `Тип пула`." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:760 +#, no-wrap +msgid "Disk Selection" +msgstr "Выбор диска" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:761 +#, no-wrap +msgid "Menu requesting how many disks will be added to the pool" +msgstr "Меню с запросом количества дисков, добавляемых в пул" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:761 +#, no-wrap +msgid "bsdinstall-zfs-disk_select.png" +msgstr "bsdinstall-zfs-disk_select.png" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:764 +#, no-wrap +msgid "Invalid Selection" +msgstr "Неверный выбор" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:765 +#, no-wrap +msgid "Menu indicating that not enough disks have been selected." +msgstr "Меню, указывающее, что выбрано недостаточно дисков." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:765 +#, no-wrap +msgid "bsdinstall-zfs-vdev_invalid.png" +msgstr "bsdinstall-zfs-vdev_invalid.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:768 +msgid "" +"If one or more disks are missing from the list, or if disks were attached " +"after the installer was started, select btn:[- Rescan Devices] to repopulate " +"the list of available disks." +msgstr "" +"Если один или несколько дисков отсутствуют в списке или если диски были " +"подключены после запуска установщика, выберите btn:[- Повторное сканирование " +"устройств (Rescan Devices)], чтобы обновить список доступных дисков." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:770 +#, no-wrap +msgid "Rescan Devices" +msgstr "Пересканировать Устройства" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:771 +#, no-wrap +msgid "Device rescan" +msgstr "Пересканирование устройств" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:771 +#, no-wrap +msgid "bsdinstall-zfs-rescan-devices.png" +msgstr "bsdinstall-zfs-rescan-devices.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:774 +msgid "" +"To avoid accidentally erasing the wrong disk, the btn:[- Disk Info] menu can " +"be used to inspect each disk, including its partition table and various " +"other information such as the device model number and serial number, if " +"available." +msgstr "" +"Чтобы случайно не стереть не тот диск, можно использовать меню btn:[- Disk " +"Info] для просмотра информации о каждом диске, включая таблицу разделов и " +"другие данные, такие как модель устройства и серийный номер, если они " +"доступны." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:776 +#, no-wrap +msgid "Analyzing a Disk" +msgstr "Анализ диска" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:777 +#, no-wrap +msgid "Menu showing the information of the partitions." +msgstr "Меню с информацией о разделах." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:777 +#, no-wrap +msgid "bsdinstall-zfs-disk_info.png" +msgstr "bsdinstall-zfs-disk_info.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:781 +msgid "" +"Select kbd:[N] to configure the `Pool Name`. Enter the desired name, then " +"select btn:[<OK>] to establish it or btn:[<Cancel>] to return to the main " +"menu and leave the default name." +msgstr "" +"Выберите kbd:[N] для настройки `Имени пула (Pool Name)`. Введите желаемое " +"имя, затем выберите btn:[<OK>], чтобы установить его, или btn:[<Отмена>], " +"чтобы вернуться в главное меню и оставить имя по умолчанию." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:783 +#, no-wrap +msgid "Pool Name" +msgstr "Имя пула" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:784 +#, no-wrap +msgid "Menu requesting the name of the pool." +msgstr "Меню с запросом имени пула." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:784 +#, no-wrap +msgid "bsdinstall-zfs-pool-name.png" +msgstr "bsdinstall-zfs-pool-name.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:788 +msgid "" +"Select kbd:[S] to set the amount of swap. Enter the desired amount of swap, " +"then select btn:[<OK>] to establish it or btn:[<Cancel>] to return to the " +"main menu and let the default amount." +msgstr "" +"Выберите kbd:[S], чтобы установить размер раздела подкачки. Введите желаемый " +"размер раздела подкачки, затем выберите btn:[<OK>] для подтверждения или btn:" +"[<Cancel>], чтобы вернуться в главное меню и оставить значение по умолчанию." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:790 +#, no-wrap +msgid "Swap Amount" +msgstr "Размер раздела подкачки" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:791 +#, no-wrap +msgid "Menu requesting the amount of swap memory" +msgstr "Меню с запросом объема области подкачки" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:791 +#, no-wrap +msgid "bsdinstall-zfs-swap-amount.png" +msgstr "bsdinstall-zfs-swap-amount.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:795 +msgid "" +"Once all options have been set to the desired values, select the btn:[>>> " +"Install] option at the top of the menu. The installer then offers a last " +"chance to cancel before the contents of the selected drives are destroyed to " +"create the ZFS pool." +msgstr "" +"После установки всех необходимых значений выберите в верхней части меню " +"опцию btn:[>>> Установить]. Установщик предоставит последнюю возможность " +"отменить процесс перед уничтожением содержимого выбранных дисков для " +"создания пула ZFS." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:797 +#, no-wrap +msgid "Last Chance" +msgstr "Последний шанс" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:798 +#, no-wrap +msgid "Menu indicating to the user that the data will be lost" +msgstr "Меню, предупреждающее пользователя о потере данных" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:798 +#, no-wrap +msgid "bsdinstall-zfs-warning.png" +msgstr "bsdinstall-zfs-warning.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:802 +msgid "" +"If GELI disk encryption was enabled, the installer will prompt twice for the " +"passphrase to be used to encrypt the disks. Initialization of the " +"encryption then begins." +msgstr "" +"Если включено шифрование дисков GELI, установщик дважды запросит парольную " +"фразу, используемую для шифрования дисков. Затем начнётся инициализация " +"шифрования." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:804 +#, no-wrap +msgid "Disk Encryption Password" +msgstr "Пароль для шифрования диска" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:805 +#, no-wrap +msgid "Menu requesting the password to encrypt the devices." +msgstr "Меню с запросом пароля для шифрования устройств." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:805 +#, no-wrap +msgid "bsdinstall-zfs-geli_password.png" +msgstr "bsdinstall-zfs-geli_password.png" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:808 +#, no-wrap +msgid "Initializing Encryption" +msgstr "Инициализация шифрования" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:809 +#, no-wrap +msgid "Menu showing that the encryption is initializing." +msgstr "Меню, показывающее, что шифрование инициализируется." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:809 +#, no-wrap +msgid "bsdinstall-zfs-init-encription.png" +msgstr "bsdinstall-zfs-init-encription.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:814 +msgid "" +"The installation then proceeds normally. To continue with the installation, " +"go to crossref:bsdinstall[bsdinstall-fetching-distribution, Fetching " +"Distribution Files]." +msgstr "" +"Установка затем продолжается в обычном режиме. Для продолжения установки " +"перейдите к разделу crossref:bsdinstall[bsdinstall-fetching-distribution, " +"Получение файлов дистрибутива]." + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:816 +#, no-wrap +msgid "Shell Mode Partitioning" +msgstr "Режим разметки разделов в оболочке" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:821 +msgid "" +"When creating advanced installations, the bsdinstall partitioning menus may " +"not provide the level of flexibility required. Advanced users can select " +"the btn:[Shell] option from the partitioning menu in order to manually " +"partition the drives, create the file system(s), populate `/tmp/" +"bsdinstall_etc/fstab`, and mount the file systems under `/mnt`. Once this " +"is done, type `exit` to return to bsdinstall and continue the installation." +msgstr "" +"При создании сложных установок меню разметки `bsdinstall` может не " +"предоставлять необходимого уровня гибкости. Опытные пользователи могут " +"выбрать опцию btn:[Shell] в меню разметки, чтобы вручную разметить диски, " +"создать файловую систему(ы), заполнить `/tmp/bsdinstall_etc/fstab` и " +"смонтировать файловые системы в `/mnt`. После выполнения этих действий " +"введите `exit`, чтобы вернуться в `bsdinstall` и продолжить установку." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:823 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:832 +#, no-wrap +msgid "Fetching Distribution Files" +msgstr "Загрузка файлов дистрибутива" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:827 +msgid "" +"Installation time will vary depending on the distributions chosen, " +"installation media, and speed of the computer. A series of messages will " +"indicate the progress." +msgstr "" +"Время установки может варьироваться в зависимости от выбранных " +"дистрибутивов, носителя установки и скорости компьютера. Серия сообщений " +"будет показывать ход выполнения." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:830 +msgid "" +"First, the installer formats the selected disk(s) and initializes the " +"partitions. Next, in the case of a `bootonly media` or `mini memstick`, it " +"downloads the selected components:" +msgstr "" +"Сначала установщик форматирует выбранный диск(и) и инициализирует разделы. " +"Затем, в случае `bootonly media` или `mini memstick`, он загружает выбранные " +"компоненты:" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:833 +#, no-wrap +msgid "Menu showing the download of the different components." +msgstr "Меню загрузки различных компонентов." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:833 +#, no-wrap +msgid "bsdinstall-distfile-fetching.png" +msgstr "bsdinstall-distfile-fetching.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:836 +msgid "" +"Next, the integrity of the distribution files is verified to ensure they " +"have not been corrupted during download or misread from the installation " +"media:" +msgstr "" +"Затем проверяется целостность файлов дистрибутива, чтобы убедиться, что они " +"не были повреждены при загрузке или неправильно прочитаны с установочного " +"носителя:" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:838 +#, no-wrap +msgid "Verifying Distribution Files" +msgstr "Проверка файлов дистрибутива" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:839 +#, no-wrap +msgid "Menu showing the verification of the different components." +msgstr "Меню с проверкой различных компонентов." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:839 +#, no-wrap +msgid "bsdinstall-distfile-verifying.png" +msgstr "bsdinstall-distfile-verifying.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:842 +msgid "Finally, the verified distribution files are extracted to the disk:" +msgstr "Наконец, проверенные файлы дистрибутива извлекаются на диск:" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:844 +#, no-wrap +msgid "Extracting Distribution Files" +msgstr "Извлечение файлов дистрибутива" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:845 +#, no-wrap +msgid "Menu showing the extraction of the different components." +msgstr "Меню с извлечением различных компонентов." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:845 +#, no-wrap +msgid "bsdinstall-distfile-extracting.png" +msgstr "bsdinstall-distfile-extracting.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:849 +msgid "" +"Once all requested distribution files have been extracted, bsdinstall " +"displays the first post-installation configuration screen. The available " +"post-configuration options are described in the next section." +msgstr "" +"После извлечения всех запрошенных файлов дистрибутива `bsdinstall` " +"отображает первый экран настройки после установки. Доступные параметры пост-" +"конфигурации описаны в следующем разделе." + +#. type: Title == +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:851 +#, no-wrap +msgid "Network Interfaces, Accounts, Time Zone, Services and Hardening" +msgstr "Сетевые интерфейсы, учетные записи, часовой пояс, службы и защита" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:854 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:861 +#, no-wrap +msgid "Setting the `root` Password" +msgstr "Установка пароля `root`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:859 +msgid "" +"First, the `root` password must be set. While entering the password, the " +"characters being typed are not displayed on the screen. The password must " +"be entered twice to prevent typing errors." +msgstr "" +"Сначала необходимо установить пароль `root`. При вводе пароля символы не " +"отображаются на экране. Пароль нужно ввести дважды, чтобы избежать ошибок " +"при наборе." + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:862 +#, no-wrap +msgid "Menu showing requesting the password for the root user." +msgstr "Меню с запросом пароля пользователя root." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:862 +#, no-wrap +msgid "bsdinstall-post-root-passwd.png" +msgstr "bsdinstall-post-root-passwd.png" + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:865 +#, no-wrap +msgid "Configuring Network Interfaces" +msgstr "Настройка сетевых интерфейсов" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:869 +msgid "" +"Next, a list of the network interfaces found on the computer is shown. " +"Select the interface to configure." +msgstr "" +"Далее приведён список сетевых интерфейсов, обнаруженных на компьютере. " +"Выберите интерфейс для настройки." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:871 +#, no-wrap +msgid "Choose a Network Interface" +msgstr "Выберите сетевой интерфейс" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:872 +#, no-wrap +msgid "Menu showing the different network interfaces to configure." +msgstr "Меню с различными сетевыми интерфейсами для настройки." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:872 +#, no-wrap +msgid "bsdinstall-configure-network-interface.png" +msgstr "bsdinstall-configure-network-interface.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:877 +msgid "" +"If an Ethernet interface is selected, the installer will skip ahead to the " +"menu shown in crossref:bsdinstall[bsdinstall-configure-net-ipv4,Choose IPv4 " +"Networking]. If a wireless network interface is chosen, the system will " +"instead scan for wireless access points:" +msgstr "" +"Если выбран интерфейс Ethernet, установщик перейдет сразу к меню, " +"показанному в crossref:bsdinstall[bsdinstall-configure-net-ipv4,Выбор IPv4-" +"сети]. Если выбран беспроводной сетевой интерфейс, система выполнит поиск " +"точек доступа:" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:879 +#, no-wrap +msgid "Scanning for Wireless Access Points" +msgstr "Сканирование беспроводных точек доступа" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:880 +#, no-wrap +msgid "Menu showing wireless network scanning." +msgstr "Меню сканирования беспроводных сетей." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:880 +#, no-wrap +msgid "bsdinstall-configure-wireless-scan.png" +msgstr "bsdinstall-configure-wireless-scan.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:887 +msgid "" +"Wireless networks are identified by a Service Set Identifier (SSID); a " +"short, unique name given to each network. SSIDs found during the scan are " +"listed, followed by a description of the encryption types available for that " +"network. If the desired SSID does not appear in the list, select btn:" +"[Rescan] to scan again. If the desired network still does not appear, check " +"for problems with antenna connections or try moving the computer closer to " +"the access point. Rescan after each change is made." +msgstr "" +"Беспроводные сети идентифицируются по имени Service Set Identifier (SSID) — " +"короткому уникальному названию каждой сети. Обнаруженные при сканировании " +"SSID перечислены ниже, вместе с описанием доступных типов шифрования для " +"каждой сети. Если нужный SSID не отображается в списке, выберите btn:" +"[Повторить сканирование (Rescan)], чтобы выполнить сканирование снова. Если " +"нужная сеть по-прежнему не отображается, проверьте подключение антенны или " +"попробуйте переместить компьютер ближе к точке доступа. После каждого " +"изменения выполняйте повторное сканирование." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:889 +#, no-wrap +msgid "Choosing a Wireless Network" +msgstr "Выбор беспроводной сети" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:890 +#, no-wrap +msgid "Menu showing the different wireless networks to connect to." +msgstr "Меню с различными беспроводными сетями для подключения." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:890 +#, no-wrap +msgid "bsdinstall-configure-wireless-accesspoints.png" +msgstr "bsdinstall-configure-wireless-accesspoints.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:896 +msgid "" +"Next, enter the encryption information for connecting to the selected " +"wireless network. WPA2 encryption is strongly recommended over older " +"encryption types such as WEP, which offer little security. If the network " +"uses WPA2, input the password, also known as the Pre-Shared Key (PSK). For " +"security reasons, the characters typed into the input box are displayed as " +"asterisks." +msgstr "" +"Далее введите информацию для шифрования, чтобы подключиться к выбранной " +"беспроводной сети. Настоятельно рекомендуется использовать шифрование WPA2 " +"вместо устаревших типов, таких как WEP, которые обеспечивают низкий уровень " +"безопасности. Если сеть использует WPA2, введите пароль, также известный как " +"Pre-Shared Key (PSK). В целях безопасности вводимые символы отображаются " +"звездочками." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:898 +#, no-wrap +msgid "WPA2 Setup" +msgstr "Настройка WPA2" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:899 +#, no-wrap +msgid "Menu requesting the wireless network password." +msgstr "Меню с запросом пароля для беспроводной сети." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:899 +#, no-wrap +msgid "bsdinstall-configure-wireless-wpa2setup.png" +msgstr "bsdinstall-configure-wireless-wpa2setup.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:902 +msgid "" +"Next, choose whether or not an IPv4 address should be configured on the " +"Ethernet or wireless interface:" +msgstr "" +"Затем выберите, нужно ли настраивать IPv4-адрес на Ethernet или беспроводном " +"интерфейсе:" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:904 +#, no-wrap +msgid "Choose IPv4 Networking" +msgstr "Выберите сеть IPv4" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:905 +#, no-wrap +msgid "Menu indicating if IPv4 wants to be configured for the selected interface." +msgstr "Меню, указывающее, нужно ли настраивать IPv4 для выбранного интерфейса." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:905 +#, no-wrap +msgid "bsdinstall-configure-network-interface-ipv4.png" +msgstr "bsdinstall-configure-network-interface-ipv4.png" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:910 +msgid "" +"There are two methods of IPv4 configuration. DHCP will automatically " +"configure the network interface correctly and should be used if the network " +"provides a DHCP server. Otherwise, the addressing information needs to be " +"input manually as a static configuration." +msgstr "" +"Существует два способа настройки IPv4. DHCP автоматически правильно настроит " +"сетевой интерфейс и должен использоваться, если в сети есть DHCP-сервер. В " +"противном случае, информацию об адресации необходимо ввести вручную как " +"статическую конфигурацию." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:916 +msgid "" +"Do not enter random network information as it will not work. If a DHCP " +"server is not available, obtain the information listed in " +"crossref:bsdinstall[bsdinstall-collect-network-information, Required Network " +"Information] from the network administrator or Internet service provider." +msgstr "" +"Не вводите произвольные сетевые настройки, так как это не сработает. Если " +"DHCP-сервер недоступен, получите информацию, указанную в " +"crossref:bsdinstall[bsdinstall-collect-network-information, Необходимая " +"информация о сети], у администратора сети или интернет-провайдера." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:920 +msgid "" +"If a DHCP server is available, select btn:[Yes] in the next menu to " +"automatically configure the network interface. The installer will appear to " +"pause for a minute or so as it finds the DHCP server and obtains the " +"addressing information for the system." +msgstr "" +"Если доступен DHCP-сервер, выберите btn:[Да] в следующем меню для " +"автоматической настройки сетевого интерфейса. Установщик может показаться " +"зависшим на минуту или около того, пока он находит DHCP-сервер и получает " +"адресную информацию для системы." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:922 +#, no-wrap +msgid "Choose IPv4 DHCP Configuration" +msgstr "Выберите конфигурацию IPv4 DHCP" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:923 +#, no-wrap +msgid "Menu indicating if DHCP wants to be configured for the selected interface." +msgstr "Меню, указывающее, нужно ли настраивать DHCP для выбранного интерфейса." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:923 +#, no-wrap +msgid "bsdinstall-configure-network-interface-ipv4-dhcp.png" +msgstr "bsdinstall-configure-network-interface-ipv4-dhcp.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:926 +msgid "" +"If a DHCP server is not available, select btn:[No] and input the following " +"addressing information in this menu:" +msgstr "" +"Если DHCP-сервер недоступен, выберите btn:[Нет] и введите следующую " +"информацию об адресации в этом меню:" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:928 +#, no-wrap +msgid "IPv4 Static Configuration" +msgstr "Статическая настройка IPv4" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:929 +#, no-wrap +msgid "Menu requesting data to configure IPv4 network." +msgstr "Меню запроса данных для настройки сети IPv4." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:929 +#, no-wrap +msgid "bsdinstall-configure-network-interface-ipv4-static.png" +msgstr "bsdinstall-configure-network-interface-ipv4-static.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:932 +msgid "" +"`IP Address` - The IPv4 address assigned to this computer. The address must " +"be unique and not already in use by another device on the local network." +msgstr "" +"`IP-адрес` - IPv4-адрес, назначенный этому компьютеру. Адрес должен быть " +"уникальным и не должен уже использоваться другим устройством в локальной " +"сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:933 +msgid "`Subnet Mask` - The subnet mask for the network." +msgstr "`Маска подсети (Subnet Mask)` - Маска подсети для сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:934 +msgid "`Default Router` - The IP address of the network's default gateway." +msgstr "" +"`Шлюз по умолчанию (Default Router)` - IP-адрес сетевого шлюза по умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:936 +msgid "" +"The next screen will ask if the interface should be configured for IPv6. If " +"IPv6 is available and desired, choose btn:[Yes] to select it." +msgstr "" +"Следующий экран спросит, нужно ли настраивать интерфейс для IPv6. Если IPv6 " +"доступен и нужен, выберите btn:[Да], чтобы включить его." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:938 +#, no-wrap +msgid "Choose IPv6 Networking" +msgstr "Выберите сеть IPv6" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:939 +#, no-wrap +msgid "Menu indicating if IPv6 wants to be configured for the selected interface." +msgstr "Меню, указывающее, требуется ли настройка IPv6 для выбранного интерфейса." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:939 +#, no-wrap +msgid "bsdinstall-configure-network-interface-ipv6.png" +msgstr "bsdinstall-configure-network-interface-ipv6.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:945 +msgid "" +"IPv6 also has two methods of configuration. StateLess Address " +"AutoConfiguration (SLAAC) will automatically request the correct " +"configuration information from a local router. Refer to http://" +"tools.ietf.org/html/rfc4862[rfc4862] for more information. Static " +"configuration requires manual entry of network information." +msgstr "" +"В IPv6 также есть два метода настройки. Stateless Address Autoconfiguration " +"(SLAAC) автоматически запрашивает правильную конфигурационную информацию у " +"локального маршрутизатора. Подробнее см. http://tools.ietf.org/html/" +"rfc4862[rfc4862]. Статическая настройка требует ручного ввода сетевой " +"информации." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:948 +msgid "" +"If an IPv6 router is available, select btn:[Yes] in the next menu to " +"automatically configure the network interface. The installer will appear to " +"pause for a minute or so as it finds the router and obtains the addressing " +"information for the system." +msgstr "" +"Если доступен маршрутизатор IPv6, выберите btn:[Да] в следующем меню для " +"автоматической настройки сетевого интерфейса. Установщик может на минуту или " +"около того показаться зависшим, пока он ищет маршрутизатор и получает " +"адресную информацию для системы." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:950 +#, no-wrap +msgid "Choose IPv6 SLAAC Configuration" +msgstr "Выберите конфигурацию IPv6 SLAAC" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:951 +#, no-wrap +msgid "Menu indicating if SLAAC wants to be configured for the selected interface." +msgstr "Меню, указывающее, нужно ли настраивать SLAAC для выбранного интерфейса." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:951 +#, no-wrap +msgid "bsdinstall-configure-network-interface-slaac.png" +msgstr "bsdinstall-configure-network-interface-slaac.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:954 +msgid "" +"If an IPv6 router is not available, select btn:[No] and input the following " +"addressing information in this menu:" +msgstr "" +"Если маршрутизатор IPv6 недоступен, выберите btn:[Нет] и введите следующую " +"информацию о настройке адресации в этом меню:" + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:956 +#, no-wrap +msgid "IPv6 Static Configuration" +msgstr "Статическая настройка IPv6" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:957 +#, no-wrap +msgid "Menu requesting data to configure IPv6 network." +msgstr "Меню запрашивает данные для настройки сети IPv6." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:957 +#, no-wrap +msgid "bsdinstall-configure-network-interface-ipv6-static.png" +msgstr "bsdinstall-configure-network-interface-ipv6-static.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:960 +msgid "" +"`IPv6 Address` - The IPv6 address assigned to this computer. The address " +"must be unique and not already in use by another device on the local network." +msgstr "" +"`IPv6-адрес` - IPv6-адрес, назначенный этому компьютеру. Адрес должен быть " +"уникальным и не использоваться другим устройством в локальной сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:961 +msgid "`Default Router` - The IPv6 address of the network's default gateway." +msgstr "" +"`Шлюз по умолчанию (Default Router)` - IPv6-адрес шлюза по умолчанию в сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:967 +msgid "" +"The last network configuration menu is used to configure the Domain Name " +"System (DNS) resolver, which converts hostnames to and from network " +"addresses. If DHCP or SLAAC was used to autoconfigure the network " +"interface, the `Resolver Configuration` values may already be filled in. " +"Otherwise, enter the local network's domain name in the `Search` field. " +"`DNS #1` and `DNS #2` are the IPv4 and/or IPv6 addresses of the DNS " +"servers. At least one DNS server is required." +msgstr "" +"Последнее меню настройки сети используется для конфигурации резолвера Domain " +"Name System (DNS), который преобразует имена хостов в сетевые адреса и " +"обратно. Если для автоматической настройки сетевого интерфейса " +"использовались DHCP или SLAAC, значения в `Resolver Configuration` могут " +"быть уже заполнены. В противном случае введите имя домена локальной сети в " +"поле `Search`. `DNS #1` и `DNS #2` — это IPv4 и/или IPv6-адреса DNS-" +"серверов. Требуется указать хотя бы один DNS-сервер." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:969 +#, no-wrap +msgid "DNS Configuration" +msgstr "Конфигурация DNS" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:970 +#, no-wrap +msgid "Menu requesting data to configure DNS for the network." +msgstr "Меню запрашивает данные для настройки DNS в сети." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:970 +#, no-wrap +msgid "bsdinstall-configure-network-ipv4-dns.png" +msgstr "bsdinstall-configure-network-ipv4-dns.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:974 +msgid "" +"Once the interface is configured, select a mirror site that is located in " +"the same region of the world as the computer on which FreeBSD is being " +"installed. Files can be retrieved more quickly when the mirror is close to " +"the target computer, reducing installation time." +msgstr "" +"После настройки интерфейса выберите зеркальный сайт, расположенный в том же " +"регионе мира, что и компьютер, на который устанавливается FreeBSD. Файлы " +"можно загрузить быстрее, если зеркало находится ближе к целевому компьютеру, " +"что сокращает время установки." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:978 +msgid "" +"Selecting `ftp://download.freebsd.org (Main Site)` will automatically route " +"to the nearest mirror." +msgstr "" +"Выбор `ftp://download.freebsd.org (Основной сайт)` автоматически " +"перенаправит на ближайший зеркальный сервер." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:981 +#, no-wrap +msgid "Choosing a Mirror" +msgstr "Выбор зеркала" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:982 +#, no-wrap +msgid "Menu requesting a network mirror." +msgstr "Меню выбора сетевого зеркала." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:982 +#, no-wrap +msgid "bsdinstall-netinstall-mirrorselect.png" +msgstr "bsdinstall-netinstall-mirrorselect.png" + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:985 +#, no-wrap +msgid "Setting the Time Zone" +msgstr "Установка часового пояса" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:989 +msgid "" +"The next series of menus are used to determine the correct local time by " +"selecting the geographic region, country, and time zone. Setting the time " +"zone allows the system to automatically correct for regional time changes, " +"such as daylight savings time, and perform other time zone related functions " +"properly." +msgstr "" +"Следующая серия меню используется для определения правильного местного " +"времени путем выбора географического региона, страны и часовой зоны. " +"Установка часовой зоны позволяет системе автоматически корректировать " +"региональные изменения времени, такие как переход на летнее время, и " +"правильно выполнять другие функции, связанные с часовыми зонами." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:992 +msgid "" +"The example shown here is for a machine located in the mainland time zone of " +"Spain, Europe. The selections will vary according to the geographical " +"location." +msgstr "" +"Пример, приведенный здесь, предназначен для машины, находящейся в " +"материковой часовой зоне Испании, Европа. Выбор будет варьироваться в " +"зависимости от географического местоположения." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:994 +#, no-wrap +msgid "Select a Region" +msgstr "Выберите регион" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:995 +#, no-wrap +msgid "Menu requesting the timezone region." +msgstr "Меню выбора региона часовой зоны." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:995 +#, no-wrap +msgid "bsdinstall-timezone-region.png" +msgstr "bsdinstall-timezone-region.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:998 +msgid "" +"The appropriate region is selected using the arrow keys and then pressing " +"kbd:[Enter]." +msgstr "" +"Соответствующий регион выбирается с помощью клавиш со стрелками, а затем " +"нажатием kbd:[Enter]." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1000 +#, no-wrap +msgid "Select a Country" +msgstr "Выберите страну" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1001 +#, no-wrap +msgid "Menu requesting the timezone country." +msgstr "Меню выбора страны для часовой зоны." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1001 +#, no-wrap +msgid "bsdinstall-timezone-country.png" +msgstr "bsdinstall-timezone-country.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1004 +msgid "" +"Select the appropriate country using the arrow keys and press kbd:[Enter]." +msgstr "" +"Выберите соответствующую страну с помощью клавиш со стрелками и нажмите kbd:" +"[Enter]." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1006 +#, no-wrap +msgid "Select a Time Zone" +msgstr "Выбор часовой зоны" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1007 +#, no-wrap +msgid "Menu requesting the timezone zone." +msgstr "Меню запроса часовой зоны." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1007 +#, no-wrap +msgid "bsdinstall-timezone-zone.png" +msgstr "bsdinstall-timezone-zone.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1010 +msgid "" +"The appropriate time zone is selected using the arrow keys and pressing kbd:" +"[Enter]." +msgstr "" +"Используя клавиши со стрелками, выберите подходящую часовую зону и нажмите " +"kbd:[Enter]." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1012 +#, no-wrap +msgid "Confirm Time Zone" +msgstr "Подтверждение часовой зоны" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1013 +#, no-wrap +msgid "Menu requesting confirmation of the selected timezone." +msgstr "Меню с запросом подтверждения выбранной часовой зоны." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1013 +#, no-wrap +msgid "bsdinstall-timezone-confirm.png" +msgstr "bsdinstall-timezone-confirm.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1016 +msgid "Confirm the abbreviation for the time zone is correct." +msgstr "Убедитесь, что аббревиатура часовой зоны верна." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1018 +#, no-wrap +msgid "Select Date" +msgstr "Выбор даты" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1019 +#, no-wrap +msgid "Menu requesting the system date." +msgstr "Меню запроса системной даты." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1019 +#, no-wrap +msgid "bsdinstall-timezone-date.png" +msgstr "bsdinstall-timezone-date.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1023 +msgid "" +"The appropriate date is selected using the arrow keys and then pressing btn:" +"[Set Date]. Otherwise, the date selection can be skipped by pressing btn:" +"[Skip]." +msgstr "" +"Выбор нужной даты осуществляется с помощью клавиш со стрелками, после чего " +"нажимается btn:[Установить дату]. В противном случае можно пропустить выбор " +"даты, нажав btn:[Пропустить]." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1025 +#, no-wrap +msgid "Select Time" +msgstr "Выбор времени" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1026 +#, no-wrap +msgid "Menu requesting the system time." +msgstr "Меню запроса системного времени." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1026 +#, no-wrap +msgid "bsdinstall-timezone-time.png" +msgstr "bsdinstall-timezone-time.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1030 +msgid "" +"The appropriate time is selected using the arrow keys and then pressing btn:" +"[Set Time]. Otherwise, the time selection can be skipped by pressing btn:" +"[Skip]." +msgstr "" +"Подходящее время выбирается с помощью клавиш со стрелками, а затем нажатием " +"btn:[Установить время]. В противном случае можно пропустить выбор времени, " +"нажав btn:[Пропустить]." + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1032 +#, no-wrap +msgid "Enabling Services" +msgstr "Включение сервисов" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1037 +msgid "" +"The next menu is used to configure which system services will be started " +"whenever the system boots. All of these services are optional. Only start " +"the services that are needed for the system to function." +msgstr "" +"Следующее меню используется для настройки системных служб, которые будут " +"запускаться при загрузке системы. Все эти службы являются опциональными. " +"Запускайте только те службы, которые необходимы для функционирования системы." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1039 +#, no-wrap +msgid "Selecting Additional Services to Enable" +msgstr "Выбор дополнительных служб для включения" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1040 +#, no-wrap +msgid "Menu showing the different services available." +msgstr "Меню с доступными сервисами." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1040 +#, no-wrap +msgid "bsdinstall-config-services.png" +msgstr "bsdinstall-config-services.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1043 +msgid "Here is a summary of the services that can be enabled in this menu:" +msgstr "Вот перечень служб, которые можно включить в этом меню:" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1045 +msgid "" +"`local_unbound` - Enable the DNS local unbound. It is necessary to keep in " +"mind that this is a configuration only meant for use as a local caching " +"forwarding resolver. If the objective is to set up a resolver for the entire " +"network, install package:dns/unbound[]." +msgstr "" +"`local_unbound` — Включить локальный DNS-резолвер unbound. Необходимо " +"учитывать, что данная конфигурация предназначена только для использования в " +"качестве локального кэширующего пересылающего резолвера. Если цель - " +"настроить резолвер для всей сети, установите пакет package:dns/unbound[]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1046 +msgid "" +"`sshd` - The Secure Shell (SSH) daemon is used to remotely access a system " +"over an encrypted connection. Only enable this service if the system should " +"be available for remote logins." +msgstr "" +"`sshd` — демон Secure Shell (SSH), используемый для удалённого доступа к " +"системе через зашифрованное соединение. Включайте эту службу только если " +"системе необходимо быть доступной для удалённых входов." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1047 +msgid "" +"`moused` - Enable this service if the mouse will be used from the command-" +"line system console." +msgstr "" +"`moused` — Включите эту службу, если мышь будет использоваться в командной " +"строке системной консоли." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1048 +msgid "" +"`ntpdate` - Enable automatic clock synchronization at boot time. Note that " +"the functionality of this program is now available in the man:ntpd[8] daemon " +"and the man:ntpdate[8] utility will soon be retired." +msgstr "" +"`ntpdate` — Включить автоматическую синхронизацию времени при загрузке. " +"Обратите внимание, что функциональность этой программы теперь доступна в " +"демоне man:ntpd[8], а утилита man:ntpdate[8] вскоре будет исключена." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1049 +msgid "" +"`ntpd` - The Network Time Protocol (NTP) daemon for automatic clock " +"synchronization. Enable this service if you wish to synchronise your system " +"clock with a remote time server or pool." +msgstr "" +"`ntpd` — демон протокола сетевого времени (NTP) для автоматической " +"синхронизации часов. Включите эту службу, если хотите синхронизировать " +"системные часы с удалённым сервером времени или пулом серверов." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1050 +msgid "" +"`powerd` - System power control utility for power control and energy saving." +msgstr "" +"`powerd` — Утилита управления питанием системы для контроля питания и " +"энергосбережения." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1051 +msgid "" +"`dumpdev` - Crash dumps are useful when debugging issues with the system, so " +"users are encouraged to enable them." +msgstr "" +"`dumpdev` — Дампы памяти полезны при отладке проблем с системой, поэтому " +"пользователям рекомендуется их включить." + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1053 +#, no-wrap +msgid "Enabling Hardening Security Options" +msgstr "Включение параметров усиленной безопасности" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1058 +msgid "" +"The next menu is used to configure which security options will be enabled. " +"All of these options are optional. But their use is encouraged." +msgstr "" +"Следующее меню используется для настройки параметров безопасности, которые " +"будут включены. Все эти параметры необязательны, но их использование " +"рекомендуется." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1060 +#, no-wrap +msgid "Selecting Hardening Security Options" +msgstr "Выбор параметров усиленной безопасности" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1061 +#, no-wrap +msgid "Menu shoring the different hardening security options." +msgstr "Меню, показывающее различные варианты усиления безопасности." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1061 +#, no-wrap +msgid "bsdinstall-hardening.png" +msgstr "bsdinstall-hardening.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1064 +msgid "Here is a summary of the options that can be enabled in this menu:" +msgstr "Вот сводка опций, которые можно включить в этом меню:" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1066 +msgid "" +"`hide_uids` - Hide processes running as other users (UID). This prevents " +"unprivileged users from seeing running processes from other users." +msgstr "" +"`hide_uids` — Скрывать процессы, выполняемые от имени других пользователей " +"(UID). Это предотвращает возможность непривилегированным пользователям " +"видеть запущенные процессы других пользователей." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1067 +msgid "" +"`hide_gids` - Hide processes running as other groups (GID). This prevents " +"unprivileged users from seeing running processes from other groups." +msgstr "" +"`hide_gids` — Скрывать процессы, выполняемые от имени других групп (GID). " +"Это предотвращает возможность непривилегированных пользователей видеть " +"выполняемые процессы других групп." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1068 +msgid "" +"`hide_jail` - Hide processes running in jails. This prevents unprivileged " +"users from seeing processes running inside jails." +msgstr "" +"`hide_jail` — Скрывать процессы, выполняющиеся в клетке. Это предотвращает " +"возможность непривилегированным пользователям видеть процессы, выполняющиеся " +"внутри клетки." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1069 +msgid "" +"`read_msgbuf` - Disable reading kernel message buffer for unprivileged " +"users. Prevent unprivileged users from using man:dmesg[8] to view messages " +"from the kernel's log buffer." +msgstr "" +"`read_msgbuf` — Запретить чтение буфера сообщений ядра непривилегированным " +"пользователям. Предотвращает возможность использования непривилегированными " +"пользователями man:dmesg[8] для просмотра сообщений из буфера журнала ядра." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1070 +msgid "" +"`proc_debug` - Disable process debugging facilities for unprivileged users. " +"Disables a variety of unprivileged inter-process debugging services, " +"including some procfs functionality, `ptrace()`, and `ktrace()`. Please note " +"that this will also prevent debugging tools such as man:lldb[1], " +"man:truss[1] and man:procstat[1], as well as some built-in debugging " +"facilities in certain scripting languages like PHP." +msgstr "" +"`proc_debug` — Отключает средства отладки процессов для непривилегированных " +"пользователей. Отключает различные сервисы отладки межпроцессного " +"взаимодействия для непривилегированных пользователей, включая некоторую " +"функциональность procfs, `ptrace()` и `ktrace()`. Обратите внимание, что это " +"также заблокирует работу инструментов отладки, таких как man:lldb[1], " +"man:truss[1] и man:procstat[1], а также некоторых встроенных средств отладки " +"в определённых скриптовых языках, например PHP." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1071 +msgid "`random_pid` - Randomize the PID of processes." +msgstr "`random_pid` — Рандомизировать PID процессов." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1072 +msgid "`clear_tmp` - Clean `/tmp` when the system starts up." +msgstr "`clear_tmp` — очистка `/tmp` при запуске системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1073 +msgid "" +"`disable_syslogd` - Disable opening the syslogd network socket. By default, " +"FreeBSD runs syslogd in a secure way with `-s`. This prevents the daemon " +"from listening for incoming UDP requests on port 514. With this option " +"enabled, syslogd will instead run with `-ss`, which prevents syslogd from " +"opening any port. For more information, see man:syslogd[8]." +msgstr "" +"`disable_syslogd` — Отключить открытие сетевого сокета syslogd. По умолчанию " +"FreeBSD запускает syslogd в безопасном режиме с параметром `-s`, что " +"предотвращает прослушивание входящих UDP-запросов на порту 514. При " +"включении этой опции syslogd будет запущен с параметром `-ss`, что запрещает " +"ему открывать какие-либо порты. Подробнее см. man:syslogd[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1074 +msgid "`disable_sendmail` - Disable the sendmail mail transport agent." +msgstr "`disable_sendmail` — Отключить почтовый транспортный агент sendmail." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1075 +msgid "" +"`secure_console` - Make the command prompt request the `root` password when " +"entering single-user mode." +msgstr "" +"`secure_console` — заставляет командную строку запрашивать пароль `root` при " +"входе в однопользовательский режим." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1076 +msgid "" +"`disable_ddtrace` - DTrace can run in a mode that affects the running " +"kernel. Destructive actions may not be used unless explicitly enabled. Use `-" +"w` to enable this option when using DTrace. For more information, see " +"man:dtrace[1]." +msgstr "" +"`disable_ddtrace` — DTrace может работать в режиме, который влияет на " +"работающее ядро. Деструктивные действия не могут быть использованы, если они " +"явно не включены. Используйте `-w` для включения этой опции при работе с " +"DTrace. Для получения дополнительной информации см. man:dtrace[1]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1077 +msgid "" +"`enable_aslr` - Enable address layout randomization. For more information " +"about address layout randomization the link:https://en.wikipedia.org/wiki/" +"Address_space_layout_randomization[Wikipedia article] can be consulted." +msgstr "" +"`enable_aslr` — Включить рандомизацию раскладки адресного пространства. Для " +"получения дополнительной информации о рандомизации раскладки адресного " +"пространства можно обратиться к link:https://en.wikipedia.org/wiki/" +"Address_space_layout_randomization[статье в Википедии]." + +#. type: Title === +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1079 +#, no-wrap +msgid "Add Users" +msgstr "Добавление пользователей" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1085 +msgid "" +"The next menu prompts to create at least one user account. It is " +"recommended to log into the system using a user account rather than as " +"`root`. When logged in as `root`, there are essentially no limits or " +"protection on what can be done. Logging in as a normal user is safer and " +"more secure." +msgstr "" +"Следующее меню предлагает создать хотя бы одну учетную запись пользователя. " +"Рекомендуется входить в систему под учетной записью пользователя, а не как " +"`root`. При входе под `root` практически отсутствуют ограничения или защита " +"от возможных действий. Вход под обычным пользователем безопаснее и надежнее." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1087 +msgid "Select btn:[Yes] to add new users." +msgstr "Выберите btn:[Да], чтобы добавить новых пользователей." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1089 +#, no-wrap +msgid "Add User Accounts" +msgstr "Добавить учетные записи пользователей" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1090 +#, no-wrap +msgid "Menu requesting if a user want to be added to the system." +msgstr "Меню с запросом о желании пользователя быть добавленным в систему." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1090 +#, no-wrap +msgid "bsdinstall-adduser1.png" +msgstr "bsdinstall-adduser1.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1094 +msgid "" +"Follow the prompts and input the requested information for the user " +"account. The example shown in crossref:bsdinstall[bsdinstall-add-" +"user2,Enter User Information] creates the `asample` user account." +msgstr "" +"Следуйте подсказкам и введите запрашиваемую информацию для учетной записи " +"пользователя. Пример, показанный в crossref:bsdinstall[bsdinstall-add-" +"user2,Ввод информации о пользователе], создает учетную запись пользователя " +"`asample`." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1096 +#, no-wrap +msgid "Enter User Information" +msgstr "Введите информацию о пользователе" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1097 +#, no-wrap +msgid "Menu requesting different information for the new user." +msgstr "Меню, запрашивающее различную информацию для нового пользователя." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1097 +#, no-wrap +msgid "bsdinstall-adduser2.png" +msgstr "bsdinstall-adduser2.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1100 +msgid "Here is a summary of the information to input:" +msgstr "Вот сводка информации для ввода:" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1102 +msgid "" +"`Username` - The name the user will enter to log in. A common convention is " +"to use the first letter of the first name combined with the last name, as " +"long as each username is unique for the system. The username is case " +"sensitive and should not contain any spaces." +msgstr "" +"`Имя пользователя (Username)` — Имя пользователя, которое будет " +"использоваться для входа. Обычно применяется соглашение, согласно которому " +"имя пользователя формируется из первой буквы имени и фамилии, при условии " +"что каждое имя пользователя уникально в системе. Имя пользователя " +"чувствительно к регистру и не должно содержать пробелов." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1103 +msgid "" +"`Full name` - The user's full name. This can contain spaces and is used as a " +"description for the user account." +msgstr "" +"`Полное имя (Full name)` — Полное имя пользователя. Может содержать пробелы " +"и используется в качестве описания учётной записи пользователя." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1104 +msgid "" +"`Uid` - User ID. This is typically left blank so the system automatically " +"assigns a value." +msgstr "" +"`Uid` - Идентификатор пользователя. Обычно оставляется пустым, чтобы система " +"автоматически назначила значение." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1105 +msgid "" +"`Login group` - The user's group. This is typically left blank to accept the " +"default." +msgstr "" +"`Группа (Login group)` - Группа пользователя. Обычно оставляется пустым для " +"использования значения по умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1106 +msgid "" +"`Invite _user_ into other groups?` - Additional groups to which the user " +"will be added as a member. If the user needs administrative access, type " +"`wheel` here." +msgstr "" +"`Добавить _пользователя_ в другие группы?` — Дополнительные группы, в " +"которые будет добавлен пользователь. Если пользователю нужны " +"административные права, укажите здесь `wheel`." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1107 +msgid "`Login class` - Typically left blank for the default." +msgstr "" +"`Класс логина (Login class)` - Обычно оставляется пустым для значений по " +"умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1108 +msgid "" +"`Shell` - Type in one of the listed values to set the interactive shell for " +"the user. Refer to crossref:basics[shells,Shells] for more information about " +"shells." +msgstr "" +"`Оболочка (Shell)` - Введите одно из предложенных значений, чтобы установить " +"интерактивную оболочку для пользователя. Дополнительную информацию об " +"оболочках см. в crossref:basics[shells,Оболочки]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1109 +msgid "" +"`Home directory` - The user's home directory. The default is usually correct." +msgstr "" +"`Домашний каталог (Home directory)` - Домашний каталог пользователя. Обычно " +"значение по умолчанию является правильным." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1110 +msgid "" +"`Home directory permissions` - Permissions on the user's home directory. The " +"default is usually correct." +msgstr "" +"`Права доступа к домашнему каталогу (Home directory permissions)` - Права " +"доступа к домашнему каталогу пользователя. Обычно значение по умолчанию " +"является правильным." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1111 +msgid "" +"`Use password-based authentication?` - Typically `yes` so that the user is " +"prompted to input their password at login." +msgstr "" +"`Использовать аутентификацию на основе пароля (Use password-based " +"authentication)?` - Обычно `yes`, чтобы пользователь вводил пароль при входе." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1112 +msgid "" +"`Use an empty password?` - Typically `no` as empty or blank passwords are " +"insecure." +msgstr "" +"`Использовать пустой пароль (Use an empty password)?` - Обычно `нет`, так " +"как пустые или простые пароли ненадёжны." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1113 +msgid "" +"`Use a random password?` - Typically `no` so that the user can set their own " +"password in the next prompt." +msgstr "" +"`Использовать случайный пароль (Use a random password)?` - Обычно `нет`, " +"чтобы пользователь мог установить свой пароль в следующем запросе." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1114 +msgid "" +"`Enter password` - The password for this user. Typed-in characters will not " +"be shown on the screen." +msgstr "" +"`Введите пароль (Enter password)` - Пароль для этого пользователя. Вводимые " +"символы не будут отображаться на экране." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1115 +msgid "" +"`Enter password again` - The password must be typed again for verification." +msgstr "" +"`Повторите пароль (Enter password again)` - Пароль должен быть введён " +"повторно для проверки." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1116 +msgid "" +"`Lock out the account after creation?` - Typically `no` so that the user can " +"log in." +msgstr "" +"`Заблокировать учетную запись после создания (Lock out the account after " +"creation)?` - Обычно `нет`, чтобы пользователь мог войти в систему." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1120 +msgid "" +"After entering all the details, a summary is shown for review. If a mistake " +"was made, enter `no` to correct it. Once everything is correct, enter `yes` " +"to create the new user." +msgstr "" +"После ввода всех данных отображается сводка для проверки. Если была допущена " +"ошибка, введите `no`, чтобы исправить её. Когда всё верно, введите `yes` для " +"создания нового пользователя." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1122 +#, no-wrap +msgid "Exit User and Group Management" +msgstr "Выход из управления пользователями и группами" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1123 +#, no-wrap +msgid "Menu showing the information of the new user and requesting if everything is correct." +msgstr "Меню с информацией о новом пользователе и запросом на подтверждение корректности данных." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1123 +#, no-wrap +msgid "bsdinstall-adduser3.png" +msgstr "bsdinstall-adduser3.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1127 +msgid "" +"If there are more users to add, answer the `Add another user?` question with " +"`yes`. Enter `no` to finish adding users and continue the installation." +msgstr "" +"Если нужно добавить других пользователей, ответьте `yes` на вопрос `Добавить " +"другого пользователя (Add another user)?`. Введите `no`, чтобы завершить " +"добавление пользователей и продолжить установку." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1129 +msgid "" +"For more information on adding users and user management, see " +"crossref:basics[users-synopsis,Users and Basic Account Management]." +msgstr "" +"Для получения дополнительной информации о добавлении пользователей и " +"управлении учетными записями см. crossref:basics[users-synopsis,Пользователи " +"и основы управления учетными записями]." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1131 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1136 +#, no-wrap +msgid "Final Configuration" +msgstr "Окончательная конфигурация" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1134 +msgid "" +"After everything has been installed and configured, a final chance is " +"provided to modify settings." +msgstr "" +"После установки и настройки всех компонентов предоставляется последняя " +"возможность изменить параметры." + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1137 +#, no-wrap +msgid "Menu showing different options to perform before finishing the installation. Ex: Add user" +msgstr "Меню с различными вариантами действий перед завершением установки. Например: Добавить пользователя" + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1137 +#, no-wrap +msgid "bsdinstall-finalconfiguration.png" +msgstr "bsdinstall-finalconfiguration.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1140 +msgid "" +"Use this menu to make any changes or to do any additional configuration " +"before completing the installation." +msgstr "" +"Используйте это меню для внесения изменений или выполнения дополнительной " +"настройки перед завершением установки." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1142 +msgid "" +"`Add User` - Described in crossref:bsdinstall[bsdinstall-addusers, Add " +"Users]." +msgstr "" +"`Добавить пользователя (Add User)` - Описано в " +"crossref:bsdinstall[bsdinstall-addusers, Добавление пользователей]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1143 +msgid "" +"`Root Password` - Described in crossref:bsdinstall[bsdinstall-post-root, " +"Setting the `root` Password]." +msgstr "" +"`Пароль root (Root Password)` - Описано в crossref:bsdinstall[bsdinstall-" +"post-root, Установка пароля `root`]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1144 +msgid "" +"`Hostname` - Described in crossref:bsdinstall[bsdinstall-hostname, Setting " +"the Hostname]." +msgstr "" +"`Имя хоста (Hostname)` - Описано в crossref:bsdinstall[bsdinstall-hostname, " +"Установка имени хоста]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1145 +msgid "" +"`Network` - Described in crossref:bsdinstall[bsdinstall-config-network-dev, " +"Configuring Network Interfaces]." +msgstr "" +"`Сеть (Network)` - Описано в crossref:bsdinstall[bsdinstall-config-network-" +"dev, Настройка сетевых интерфейсов]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1146 +msgid "" +"`Services` - Described in crossref:bsdinstall[bsdinstall-sysconf, Enabling " +"Services]." +msgstr "" +"`Службы (Services)` - Описано в crossref:bsdinstall[bsdinstall-sysconf, " +"Включение служб]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1147 +msgid "" +"`System Hardening` - Described in crossref:bsdinstall[bsdinstall-hardening, " +"Enabling Hardening Security Options]." +msgstr "" +"`Усиление защиты системы (System Hardening)` - Описано в " +"crossref:bsdinstall[bsdinstall-hardening, Включение опций усиления " +"безопасности]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1148 +msgid "" +"`Time Zone` - Described in crossref:bsdinstall[bsdinstall-timezone, Setting " +"the Time Zone]." +msgstr "" +"`Часовая зона (Time Zone)` - Описано в crossref:bsdinstall[bsdinstall-" +"timezone, Настройка часовой зоны]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1149 +msgid "`Handbook` - Download and install the FreeBSD Handbook." +msgstr "`Руководство (Handbook)` - Загрузить и установить Руководство FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1151 +msgid "Once configuration is complete, select btn:[Exit]." +msgstr "После завершения настройки выберите btn:[Выход (Exit)]." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1153 +#, no-wrap +msgid "Manual Configuration" +msgstr "Ручная настройка" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1154 +#, no-wrap +msgid "Menu showing that the installation has finished. And asking if you want to open a shell to make manual changes." +msgstr "Меню, показывающее, что установка завершена. И спрашивающее, хотите ли вы открыть оболочку для внесения изменений вручную." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1154 +#, no-wrap +msgid "bsdinstall-final-modification-shell.png" +msgstr "bsdinstall-final-modification-shell.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1158 +msgid "" +"bsdinstall will prompt for any additional configuration that needs to be " +"done before rebooting into the new system. Select btn:[Yes] to exit to a " +"shell within the new system or btn:[No] to proceed to the last step of the " +"installation." +msgstr "" +"bsdinstall предложит выполнить любую дополнительную настройку, необходимую " +"перед перезагрузкой в новую систему. Выберите btn:[Да], чтобы выйти в " +"оболочку новой системы, или btn:[Нет], чтобы перейти к последнему шагу " +"установки." + +#. type: Block title +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1160 +#, no-wrap +msgid "Complete the Installation" +msgstr "Завершение установки" + +#. type: Positional ($1) AttributeList argument for macro 'image' +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1161 +#, no-wrap +msgid "Menu showing that the installation has finished and asking whether to reboot the system or access the Live CD." +msgstr "Меню, показывающее завершение установки и предлагающее перезагрузить систему или получить доступ к Live CD." + +#. type: Target for macro image +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1161 +#, no-wrap +msgid "bsdinstall-mainexit.png" +msgstr "bsdinstall-mainexit.png" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1164 +msgid "" +"If further configuration or special setup is needed, select btn:[Live CD] to " +"boot the install media into Live CD mode." +msgstr "" +"Если требуется дополнительная настройка или специальная установка, выберите " +"btn:[Live CD], чтобы загрузить установочный носитель в режиме Live CD." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1167 +msgid "" +"If the installation is complete, select btn:[Reboot] to reboot the computer " +"and start the new FreeBSD system. Do not forget to remove the FreeBSD " +"install media or the computer might boot from it again." +msgstr "" +"Если установка завершена, выберите btn:[Перезагрузка], чтобы перезагрузить " +"компьютер и запустить новую систему FreeBSD. Не забудьте извлечь " +"установочный носитель FreeBSD, иначе компьютер может снова загрузиться с " +"него." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1173 +msgid "" +"As FreeBSD boots, informational messages are displayed. After the system " +"finishes booting, a login prompt is displayed. At the `login:` prompt, " +"enter the username added during the installation. Avoid logging in as " +"`root`. Refer to crossref:basics[users-superuser,The Superuser Account] for " +"instructions on how to become the superuser when administrative access is " +"needed." +msgstr "" +"При загрузке FreeBSD отображаются информационные сообщения. После завершения " +"загрузки системы появляется приглашение для входа. В ответ на приглашение " +"`login:` введите имя пользователя, добавленное во время установки. Избегайте " +"входа в систему как `root`. Инструкции по получению прав суперпользователя, " +"когда требуется административный доступ, приведены в crossref:basics[users-" +"superuser,Учётная запись суперпользователя]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1179 +msgid "" +"The messages that appear during boot can be reviewed by pressing kbd:[Scroll-" +"Lock] to turn on the scroll-back buffer. The kbd:[PgUp], kbd:[PgDn], and " +"arrow keys can be used to scroll back through the messages. When finished, " +"press kbd:[Scroll-Lock] again to unlock the display and return to the " +"console. To review these messages once the system has been up for some " +"time, type `less /var/run/dmesg.boot` from a command prompt. Press kbd:[q] " +"to return to the command line after viewing." +msgstr "" +"Сообщения, появляющиеся во время загрузки, можно просмотреть, нажав kbd:" +"[Scroll-Lock], чтобы включить буфер прокрутки. Для перемещения по сообщениям " +"можно использовать клавиши kbd:[PgUp], kbd:[PgDn] и стрелки. По завершении " +"нажмите kbd:[Scroll-Lock] снова, чтобы разблокировать экран и вернуться к " +"консоли. Для просмотра этих сообщений после работы системы в течение " +"некоторого времени введите `less /var/run/dmesg.boot` в командной строке. " +"Нажмите kbd:[q], чтобы вернуться в командную строку после просмотра." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1183 +msgid "" +"If sshd was enabled in crossref:bsdinstall[bsdinstall-config-serv,Selecting " +"Additional Services to Enable], the first boot might be a bit slower as the " +"system generates SSH host keys. Subsequent boots will be faster. The " +"fingerprints of the keys are then displayed as in the following example:" +msgstr "" +"Если в crossref:bsdinstall[bsdinstall-config-serv,Выбор дополнительных служб " +"для включения] была включена служба sshd, первая загрузка может быть немного " +"медленнее, так как система генерирует SSH-ключи хоста. Последующие загрузки " +"будут быстрее. Отпечатки ключей отображаются, как в следующем примере:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1221 +#, no-wrap +msgid "" +"Generating public/private rsa1 key pair.\n" +"Your identification has been saved in /etc/ssh/ssh_host_key.\n" +"Your public key has been saved in /etc/ssh/ssh_host_key.pub.\n" +"The key fingerprint is:\n" +"10:a0:f5:af:93:ae:a3:1a:b2:bb:3c:35:d9:5a:b3:f3 root@machine3.example.com\n" +"The key's randomart image is:\n" +"+--[RSA1 1024]----+\n" +"| o.. |\n" +"| o . . |\n" +"| . o |\n" +"| o |\n" +"| o S |\n" +"| + + o |\n" +"|o . + * |\n" +"|o+ ..+ . |\n" +"|==o..o+E |\n" +"+-----------------+\n" +"Generating public/private dsa key pair.\n" +"Your identification has been saved in /etc/ssh/ssh_host_dsa_key.\n" +"Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.\n" +"The key fingerprint is:\n" +"7e:1c:ce:dc:8a:3a:18:13:5b:34:b5:cf:d9:d1:47:b2 root@machine3.example.com\n" +"The key's randomart image is:\n" +"+--[ DSA 1024]----+\n" +"| .. . .|\n" +"| o . . + |\n" +"| . .. . E .|\n" +"| . . o o . . |\n" +"| + S = . |\n" +"| + . = o |\n" +"| + . * . |\n" +"| . . o . |\n" +"| .o. . |\n" +"+-----------------+\n" +"Starting sshd.\n" +msgstr "" +"Generating public/private rsa1 key pair.\n" +"Your identification has been saved in /etc/ssh/ssh_host_key.\n" +"Your public key has been saved in /etc/ssh/ssh_host_key.pub.\n" +"The key fingerprint is:\n" +"10:a0:f5:af:93:ae:a3:1a:b2:bb:3c:35:d9:5a:b3:f3 root@machine3.example.com\n" +"The key's randomart image is:\n" +"+--[RSA1 1024]----+\n" +"| o.. |\n" +"| o . . |\n" +"| . o |\n" +"| o |\n" +"| o S |\n" +"| + + o |\n" +"|o . + * |\n" +"|o+ ..+ . |\n" +"|==o..o+E |\n" +"+-----------------+\n" +"Generating public/private dsa key pair.\n" +"Your identification has been saved in /etc/ssh/ssh_host_dsa_key.\n" +"Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.\n" +"The key fingerprint is:\n" +"7e:1c:ce:dc:8a:3a:18:13:5b:34:b5:cf:d9:d1:47:b2 root@machine3.example.com\n" +"The key's randomart image is:\n" +"+--[ DSA 1024]----+\n" +"| .. . .|\n" +"| o . . + |\n" +"| . .. . E .|\n" +"| . . o o . . |\n" +"| + S = . |\n" +"| + . = o |\n" +"| + . * . |\n" +"| . . o . |\n" +"| .o. . |\n" +"+-----------------+\n" +"Starting sshd.\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1224 +msgid "" +"Refer to crossref:security[openssh,\"OpenSSH\"] for more information about " +"fingerprints and SSH." +msgstr "" +"Обратитесь к crossref:security[openssh,\"OpenSSH\"] для получения " +"дополнительной информации об отпечатках и SSH." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1227 +msgid "" +"FreeBSD does not install a graphical environment by default. Refer to " +"crossref:x11[x11,The X Window System] for more information about installing " +"and configuring a graphical window manager." +msgstr "" +"FreeBSD не устанавливает графическое окружение по умолчанию. Дополнительную " +"информацию об установке и настройке графического оконного менеджера можно " +"найти в crossref:x11[x11,The X Window System]." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1231 +msgid "" +"Proper shutdown of a FreeBSD computer helps protect data and hardware from " +"damage. _Do not turn off the power before the system has been properly shut " +"down!_ If the user is a member of the `wheel` group, become the superuser by " +"typing `su` at the command line and entering the `root` password. Then, " +"type `shutdown -p now` and the system will shut down cleanly, and, if the " +"hardware supports it, turn itself off." +msgstr "" +"Правильное завершение работы компьютера под управлением FreeBSD помогает " +"защитить данные и оборудование от повреждений. _Не отключайте питание до " +"того, как система будет правильно остановлена!_ Если пользователь является " +"членом группы `wheel`, необходимо стать суперпользователем, введя `su` в " +"командной строке и указав пароль `root`. Затем введите `shutdown -p now`, и " +"система корректно завершит работу, а если оборудование поддерживает такую " +"возможность, выключится автоматически." + +#. type: Title == +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1233 +#, no-wrap +msgid "Troubleshooting" +msgstr "Устранение неполадок" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1236 +msgid "" +"This section covers basic installation troubleshooting, such as common " +"problems people have reported." +msgstr "" +"Этот раздел посвящён устранению основных проблем при установке, включая " +"распространённые ошибки, о которых сообщали пользователи." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1238 +msgid "" +"Check the Hardware Notes listed on the link:https://www.FreeBSD.org/releases/" +"[FreeBSD Release Information] page for the version of FreeBSD to make sure " +"the hardware is supported." +msgstr "" +"Проверьте заметки о совместимости оборудования на странице link:https://" +"www.FreeBSD.org/releases/[информации о выпусках FreeBSD] для соответствующей " +"версии FreeBSD, чтобы убедиться, что оборудование поддерживается." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1244 +msgid "" +"Some installation problems can be avoided or alleviated by updating the " +"firmware on various hardware components, most notably the motherboard. " +"Motherboard firmware is usually referred to as the BIOS. Most motherboard " +"and computer manufacturers have a website for upgrades and upgrade " +"information." +msgstr "" +"Некоторые проблемы при установке можно избежать или уменьшить, обновив " +"микропрограмму различных компонентов оборудования, в первую очередь " +"материнской платы. Микропрограмма материнской платы обычно называется BIOS. " +"У большинства производителей материнских плат и компьютеров есть веб-сайты с " +"обновлениями и информацией о них." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1247 +msgid "" +"Manufacturers generally advise against upgrading the motherboard BIOS unless " +"there is a good reason for doing so, like a critical update. The upgrade " +"process _can_ go wrong, leaving the BIOS incomplete and the computer " +"inoperative." +msgstr "" +"Производители, как правило, не рекомендуют обновлять BIOS материнской платы " +"без веской причины, такой как критическое обновление. Процесс обновления " +"_может_ пройти неудачно, что приведёт к повреждению BIOS и " +"неработоспособности компьютера." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1253 +msgid "" +"If the system hangs while probing hardware during boot or behaves strangely " +"during the installation process, ACPI may be the culprit. FreeBSD makes " +"extensive use of the system ACPI service on the i386 and amd64 platforms to " +"aid in system configuration if it is detected during boot. Unfortunately, " +"some bugs still exist in both the ACPI driver and within system motherboards " +"and BIOS firmware. ACPI can be disabled by setting the " +"`hint.acpi.0.disabled` hint in the third stage boot loader:" +msgstr "" +"Если система зависает при проверке оборудования во время загрузки или ведет " +"себя странно в процессе установки, причиной может быть ACPI. FreeBSD активно " +"использует системную службу ACPI на платформах i386 и amd64 для помощи в " +"настройке системы, если она обнаружена во время загрузки. К сожалению, в " +"драйвере ACPI, а также в материнских платах и BIOS до сих пор существуют " +"ошибки. ACPI можно отключить, установив подсказку `hint.acpi.0.disabled` в " +"загрузчике третьей стадии:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1257 +#, no-wrap +msgid "set hint.acpi.0.disabled=\"1\"\n" +msgstr "set hint.acpi.0.disabled=\"1\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1261 +msgid "" +"This is reset each time the system is booted, so it is necessary to add " +"`hint.acpi.0.disabled=\"1\"` to the file `/boot/loader.conf`. More " +"information about the boot loader can be found in crossref:boot[boot-" +"synopsis,“Synopsis”]." +msgstr "" +"Этот параметр сбрасывается при каждой загрузке системы, поэтому необходимо " +"добавить `hint.acpi.0.disabled=\"1\"` в файл `/boot/loader.conf`. " +"Дополнительную информацию о загрузчике можно найти в crossref:boot[boot-" +"synopsis,\"Synopsis\"]." + +#. type: Title == +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1263 +#, no-wrap +msgid "Using the Live CD" +msgstr "Использование Live CD" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1268 +msgid "" +"The welcome menu of bsdinstall, shown in crossref:bsdinstall[bsdinstall-" +"choose-mode,Welcome Menu], provides a btn:[Live CD] option. This is useful " +"for those who are still wondering whether FreeBSD is the right operating " +"system for them and want to test some of the features before installing." +msgstr "" +"Меню приветствия `bsdinstall`, показанное в crossref:bsdinstall[bsdinstall-" +"choose-mode,Меню приветствия], предоставляет опцию btn:[Live CD]. Это " +"полезно для тех, кто ещё сомневается, подходит ли FreeBSD в качестве " +"операционной системы, и хочет протестировать некоторые функции перед " +"установкой." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1270 +msgid "The following points should be noted before using the btn:[Live CD]:" +msgstr "Следует отметить следующие моменты перед использованием btn:[Live CD]:" + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1272 +msgid "" +"To gain access to the system, authentication is required. The username is " +"`root` and the password is blank." +msgstr "" +"Для доступа к системе требуется аутентификация. Имя пользователя — `root`, " +"пароль пустой." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1273 +msgid "" +"As the system runs directly from the installation media, performance will be " +"significantly slower than that of a system installed on a hard disk." +msgstr "" +"Поскольку система работает непосредственно с установочного носителя, " +"производительность будет значительно ниже, чем у системы, установленной на " +"жёсткий диск." + +#. type: Plain text +#: documentation/content/en/books/handbook/bsdinstall/_index.adoc:1273 +msgid "" +"This option only provides a command prompt and not a graphical interface." +msgstr "" +"Эта опция предоставляет только командную строку, а не графический интерфейс." diff --git a/documentation/content/ru/books/handbook/colophon.adoc b/documentation/content/ru/books/handbook/colophon.adoc new file mode 100644 index 0000000000..99ad60d901 --- /dev/null +++ b/documentation/content/ru/books/handbook/colophon.adoc @@ -0,0 +1,48 @@ +--- +description: 'Руководство FreeBSD: сведения об издании' +params: + path: /books/handbook/colophon/ +prev: books/handbook/glossary +showBookMenu: true +title: 'Сведения об издании' +weight: 46 +--- + +[colophon] +[[colophon]] += Сведения об издании +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:!sectnums: +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/handbook/colophon/ + +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::[] + +Эта книга — результат совместной работы сотен участников «The FreeBSD Documentation Project». Текст написан в формате AsciiDoc. diff --git a/documentation/content/ru/books/handbook/colophon.po b/documentation/content/ru/books/handbook/colophon.po new file mode 100644 index 0000000000..4d91113903 --- /dev/null +++ b/documentation/content/ru/books/handbook/colophon.po @@ -0,0 +1,41 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-06-04 18:10+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookcolophon/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/colophon.adoc:1 +#, no-wrap +msgid "FreeBSD Handbook Colophon" +msgstr "Руководство FreeBSD: сведения об издании" + +#. type: Title = +#: documentation/content/en/books/handbook/colophon.adoc:1 +#: documentation/content/en/books/handbook/colophon.adoc:13 +#, no-wrap +msgid "Colophon" +msgstr "Сведения об издании" + +#. type: colophon +#: documentation/content/en/books/handbook/colophon.adoc:49 +msgid "" +"This book is the combined work of hundreds of contributors to \"The FreeBSD " +"Documentation Project\". The text is authored in AsciiDoc." +msgstr "" +"Эта книга — результат совместной работы сотен участников «The FreeBSD " +"Documentation Project». Текст написан в формате AsciiDoc." diff --git a/documentation/content/ru/books/handbook/config/_index.adoc b/documentation/content/ru/books/handbook/config/_index.adoc index 294582080a..f13fba0153 100644 --- a/documentation/content/ru/books/handbook/config/_index.adoc +++ b/documentation/content/ru/books/handbook/config/_index.adoc @@ -1,23 +1,25 @@ --- -title: Глава 12. Настройка и оптимизация -part: Часть III. Системное администрирование -prev: books/handbook/partiii +description: 'Эта глава объясняет большинство файлов конфигурации FreeBSD, как включить или отключить службу, как настроить систему ведения журналов и область управления питанием.' next: books/handbook/boot -showBookMenu: true -weight: 16 params: - path: "/books/handbook/config/" + path: /books/handbook/config/ +part: 'Часть III. Администрирование системы' +prev: books/handbook/partiii +showBookMenu: true +tags: ["configuration", "services", "cron", "periodic", "logging", "configuration files", "sysctl", "swap", "power management"] +title: 'Глава 14. Конфигурация, сервисы, журналирование и управление питанием' +weight: 18 --- [[config-tuning]] -= Настройка и оптимизация += Конфигурация, сервисы, журналирование и управление питанием :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 12 +:sectnumoffset: 14 :partnums: :source-highlighter: rouge :experimental: @@ -48,1252 +50,1439 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] [[config-synopsis]] -== Введение +== Обзор -Один из важных аспектов FreeBSD это настройка системы. Правильная настройка системы поможет избежать головной боли при последующих обновлениях. Эта глава описывает большую часть процесса настройки FreeBSD, включая некоторые параметры, которые можно установить для оптимизации системы FreeBSD. +Одним из важных аспектов FreeBSD является правильная настройка системы. В этой главе описывается процесс настройки FreeBSD, включая некоторые параметры, которые можно задать для тонкой настройки системы FreeBSD. -После прочтения этой главы вы узнаете: +Прежде чем читать эту главу, вы должны: -* Как эффективно работать с файловыми системами и разделами подкачки. -* Основы настройки [.filename]#rc.conf# и системы запуска приложений [.filename]#/usr/local/etc/rc.d#. -* Как настроить и протестировать сетевую карту. -* Как настроить виртуальные хосты на сетевых устройствах. -* Как использовать различные файлы конфигурации в [.filename]#/etc#. -* Как оптимизировать FreeBSD, используя переменные `sysctl`. -* Как увеличить скорость работы дисков и изменить ограничения, накладываемые ядром. +* Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics,Основы FreeBSD]). -Перед прочтением этой главы вам следует: +Прочитав эту главу, вы будете знать: -* Понять основы UNIX(R) и FreeBSD (crossref:basics[basics, Основы UNIX]). -* Ознакомиться с основами конфигурации/компиляции ядра (crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]). +* Как использовать различные конфигурационные файлы в [.filename]#/etc#. +* Основы настройки [.filename]#rc.conf# и скриптов запуска в [.filename]#/usr/local/etc/rc.d#. +* Как настроить FreeBSD с помощью переменных man:sysctl[8]. +* Как настроить управление питанием в FreeBSD. -[[configtuning-initial]] -== Начальное конфигурирование - -=== Разделы диска +[[configtuning-configfiles]] +== Файлы конфигурации -==== Основы построения разделов +FreeBSD поддерживает четкое разделение между базовой системой и сторонними приложениями, что влияет на расположение их конфигурационных файлов. -Во время разметки жёсткого диска с помощью man:bsdlabel[8] или man:sysinstall[8], важно помнить, что скорость чтения и записи данных уменьшается от внешних к внутренним трекам диска. Самые маленькие и самые часто используемые файловые системы (корневая и раздел подкачки) должны быть расположены в начале диска, в то время как самые большие, такие, как [.filename]#/usr#, в конце. Самым оптимальным считается следующий порядок расположения файловых систем: root, swap, [.filename]#/var#, [.filename]#/usr#. +Конфигурация базовой системы FreeBSD находится в каталоге [.filename]#/etc#, а в каталоге [.filename]#/usr/local/etc# содержатся все конфигурационные файлы приложений, установленных в систему через коллекцию портов и пакеты. -Размер файловой системы [.filename]#/var# определяется предназначением машины. [.filename]#/var# используется для хранения почтовых ящиков, очередей печати и лог файлов. Размер почтовых ящиков и лог файлов может расти неограниченно в зависимости от количества пользователей системы и от того, как долго хранятся лог-файлы. Большинству пользователей никогда не потребуется гигабайт, но помните, что [.filename]#/var/tmp# должен быть достаточно большим для пакетов. +Конфигурация состояния ядра находится в файле [.filename]#/etc/sysctl.conf#. В разделе crossref:config[configtuning-sysctl, Утилита sysctl] работа man:sysctl[8] будет рассмотрена более подробно. -В разделе [.filename]#/usr# содержит большинство файлов, необходимых для поддержки системы, порты (man:ports[7], рекомендуется) и исходные тексты (опционально). Оба эти каталога опциональны при установке. Для этого раздела рекомендуется как минимум 2 гигабайта. +Для получения дополнительной информации о структуре файловой системы FreeBSD обратитесь к man:hier[7]. -При установке размера разделов, не забудьте принять во внимание рост размера требуемого системе дискового пространства. Переполнение одного раздела даже при наличии свободного места на другом может вызвать затруднения. +Как правило, конфигурационные файлы не придерживаются единого стандарта в отношении синтаксиса. Хотя верно, что символ `#` обычно используется для комментирования строки и что каждая строка содержит переменную конфигурации. [NOTE] ==== -Многие пользователи обнаружили, что размер разделов, предлагаемый man:sysinstall[8]'ом по умолчанию, иногда меньше подходящего для разделов [.filename]#/var# и [.filename]#/#. Тщательно планируйте размер разделов и не жалейте места. +Некоторые приложения, такие как man:pkg[8], начинают использовать link:https://github.com/vstakhov/libucl[Universal Configuration Language (UCL)]. ==== -[[swap-design]] -==== Раздел подкачки +=== Каталог [.filename]#/etc# -Как правило, размер раздела подкачки должен быть равен удвоенному размеру оперативной памяти. Например, если на машине установлено 128 мегабайт памяти, раздел подкачки должен быть 256 мегабайт. Системы с меньшим количеством памяти могут работать лучше с большим объёмом раздела подкачки. Не рекомендуется устанавливать размер раздела подкачки меньше 256 мегабайт, необходимо также принять во внимание возможное наращивание объема установленной на машине памяти. Алгоритмы кэширования VM настроены на максимальное быстродействие, когда размер раздела подкачки равен как минимум удвоенному размеру памяти. Заниженный размер раздела подкачки может привести к неэффективной работе постраничного сканирования VM и вызвать проблемы при увеличении объёма памяти. +Каталог [.filename]#/etc# содержит все файлы конфигурации базовой системы FreeBSD, которые отвечают за её настройку. -На больших системах с несколькими SCSI дисками (или несколькими IDE дисками, находящимися на разных контроллерах), рекомендуется создавать раздел подкачки на каждом диске (до четырёх дисков). Разделы подкачки должны быть примерно одного размера. Ядро не накладывает ограничений на размер раздела подкачки, но внутренние структуры позволяют иметь общий размер разделов подкачки, равный наибольшему, умноженному на четыре. Выделение под разделы подкачки примерно одинакового места позволить ядру оптимально расположить разделы подкачки. Установка размера подкачки больше требуемого нормальна, даже если этот объем не используется. В этих условиях может быть проще восстановиться после зависания программы перед тем, как возникнет необходимость перезагрузки. +[CAUTION] +==== +*Extreme* caution must be taken when modifying files in the [.filename]#/etc# directory; misconfiguration could make FreeBSD unbootable or malfunction. +==== -==== Зачем нужны разделы? +[.informaltable] +[cols="1,1", frame="none"] +|=== -Некоторые пользователи считают, что лучше использовать один большой раздел, но есть несколько причин, по которым этого лучше не делать. Во-первых, у каждого раздела свои характеристики, и отделяя их, можно выполнить соответствующие настройки. Например, корневая и файловая система и [.filename]#/usr# в основном предназначены для чтения, без большого объема записи. В то же время множество операций чтения и записи выполняется в [.filename]#/var# и [.filename]#/var/tmp#. +|[.filename]#/etc# +|Системные конфигурационные файлы и скрипты. -При правильном размещении и выборе размера разделов системы, фрагментация в более маленьких разделах, куда часто записываются данные, не перенесётся на остальные разделы. Размещение самых часто используемых разделов ближе к началу диска увеличит скорость ввода/вывода там, где она нужна больше всего. Хотя производительность важна и для больших дисков, передвижение их ближе к концу диска не повлечёт значительного уменьшения быстродействия по сравнению с перемещением ближе к концу диска [.filename]#/var#. И, наконец, разделы существуют и из соображений безопасности. Наличие маленького аккуратного корневого раздела, доступного только для чтения даёт значительные шансы на "выживание" после краха системы. +|[.filename]#/etc/defaults# +|Файлы конфигурации системы по умолчанию, подробности см. в man:rc[8]. -[[configtuning-core-configuration]] -== Основные настройки +|[.filename]#/etc/fstab# +|man:fstab[5] содержит описательную информацию о различных файловых системах. -Основные настройки системы располагаются в [.filename]#/etc/rc.conf#. Этот файл вмещает широкий спектр конфигурационной информации, используемой при загрузке системы. Имя этого файла прямо отражает его назначение, это файл настройки для файлов [.filename]#rc*#. +|[.filename]#/etc/mail# +|Дополнительная конфигурация man:sendmail[8] и другие файлы конфигурации MTA. -Администратор должен сделать записи в [.filename]#rc.conf#, чтобы переопределить строки по умолчанию из [.filename]#/etc/defaults/rc.conf#. Файлы по умолчанию нельзя копировать в [.filename]#/etc# - они вмещают значения по умолчанию, а не примеры значений. Все специфичные для данной системы изменения должны быть сделаны в файле [.filename]#rc.conf#. +|[.filename]#/etc/mtree# +|Файлы конфигурации mtree, подробнее см. man:mtree[8]. -Существует несколько методов для отделения общей конфигурации для группы систем от конкретной для данной системы в целях уменьшения объема работы администратора. Рекомендуемый метод - прописать общую конфигурацию в отдельный файл, например, в [.filename]#/etc/rc.conf.site#, и включить его название в [.filename]#/etc/rc.conf#, который вмещает только специфичную для данной системы информацию. +|[.filename]#/etc/pam.d# +|Файлы конфигурации библиотеки Pluggable Authentication Modules (PAM). -Поскольку [.filename]#rc.conf# читается man:sh[1], есть тривиальный способ сделать это. Например: +|[.filename]#/etc/periodic# +|Скрипты, выполняемые ежедневно, еженедельно и ежемесячно через man:cron[8]. Подробнее см. man:periodic[8]. -* rc.conf: -+ -[.programlisting] -.... - . /etc/rc.conf.site - hostname="node15.example.com" - network_interfaces="fxp0 lo0" - ifconfig_fxp0="inet 10.1.1.1" -.... +|[.filename]#/etc/rc.d# +|Системные и демон-скрипты запуска/управления, подробнее см. в man:rc[8]. -* rc.conf.site: -+ -[.programlisting] -.... - defaultrouter="10.1.1.254" - saver="daemon" - blanktime="100" -.... +|[.filename]#/etc/rc.conf# +|Содержит описательную информацию о локальном имени хоста, +настройках сетевых интерфейсов и службах, которые должны +запускаться при начальной загрузке системы. Подробнее в разделе + crossref:bsdinstall[configtuning-core-configuration, Управление системными настройками] -Файл [.filename]#rc.conf.site# может быть распространён на все системы, используя `rsync` или подобную ей программу, в то время, как [.filename]#rc.conf# должен остаться только на одной машине. +|[.filename]#/etc/security# +|Файлы конфигурации аудита OpenBSM, дополнительную информацию смотрите в man:audit[8]. -Обновление системы с помощью man:sysinstall[8] или `make world` не повлекут за собой перезапись [.filename]#rc.conf#. Вся информация в этом файле сохранится. +|[.filename]#/etc/ppp# +|Файлы конфигурации ppp, подробности смотрите в man:ppp[8]. -[[configtuning-appconfig]] -== Настройка приложений +|[.filename]#/etc/ssh# +|Файлы конфигурации OpenSSH, подробности см. в man:ssh[1]. -Обычно, установленные приложения имеют свои конфигурационные файлы, со своим собственным синтаксисом. Важно хранить эти файлы отдельно от файлов основной системы, чтобы их можно было легко администрировать с помощью средств управления пакетами. +|[.filename]#/etc/ssl# +|Конфигурационные файлы OpenSSL. -Обычно эти файлы устанавливаются в [.filename]#/usr/local/etc#. В случае, если приложению нужно большое количество конфигурационных файлов, для их хранения будет создан подкаталог. +|[.filename]#/etc/sysctl.conf# +|Содержит настройки ядра. Дополнительная информация в +crossref:bsdinstall[configtuning-sysctl, Утилита sysctl] -Обычно, вместе с установкой портов и пакетов, устанавливаются и примеры конфигурационных файлов. Обычно они имеют расширение [.filename]#.default#. Если не существует конфигурационных файлов для этого приложения, они будут созданы путём копирования [.filename]#.default# файлов. +|=== -Например, [.filename]#/usr/local/etc/apache#: +[[configtuning-sysctl]] +=== Утилита sysctl -.... --rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf --rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default --rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf --rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default --rw-r--r-- 1 root wheel 12205 May 20 1998 magic --rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default --rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types --rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default --rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf --rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default -.... +Утилита man:sysctl[8] используется для внесения изменений в работающую систему FreeBSD. -Размеры файлов показывают, что только файл [.filename]#srm.conf# был изменён. При следующем обновлении Apache этот файл уже не будет перезаписан. +Утилита man:sysctl[8] позволяет получать состояние ядра и, при наличии соответствующих привилегий, изменять его. Состояние, которое требуется получить или установить, описывается с использованием имени в стиле "Базы управляющей информации" ("MIB"), представленного в виде набора компонентов, разделённых точками. -[[configtuning-starting-services]] -== Запуск сервисов +.База управляющей информации +[.informaltable] +[cols="1,1", frame="none"] +|=== -Многие пользователи предпочитают устанавливать программы сторонних производителей в FreeBSD из набора портов. В подобных случаях может потребоваться сконфигурировать программы так, чтобы они запускались при инициализации системы. Сервисы, такие как package:mail/postfix[] или package:www/apache13[], - это лишь два примера множества программных пакетов, которые можно запускать при инициализации системы. В этом разделе описывается процедура, предназначенная для запуска программ сторонних разработчиков. +|sysctl +|«Волшебные» числа -Большинство входящих в FreeBSD сервисов, таких как man:cron[8], запускается с помощью стартовых скриптов системы. Эти скрипты могут различаться в зависимости от версии FreeBSD или ее производителя; однако важнее всего учитывать, что их начальную конфигурацию можно задать с помощью простых стартовых скриптов. +|kern +|Ядро: функции и возможности -До появления [.filename]#rc.d# приложения должны были помещать простой стартовый скрипт в каталог [.filename]#/usr/local/etc/rc.d#, который затем читался скриптами инициализации системы. Эти скрипты затем выполнялись в ходе последующих стадий запуска системы. +|vm +|Виртуальная память -Хотя много разработчиков потратили часы на попытки внедрить старый стиль конфигурирования в новую систему, остаётся фактом, что для некоторых утилит сторонних производителей по-прежнему необходим скрипт, помещённый в указанный выше каталог. Незначительные различия в скриптах зависят от того, используется ли [.filename]#rc.d#. До версии FreeBSD 5.1 использовались скрипты в старом стиле, и почти во всех случаях скрипты в новом стиле должны подойти так же хорошо. +|vfs +|Файловая система -Хотя каждый скрипт должен соответствовать некоторым минимальным требованиям, в большинстве случаев эти требования не зависят от версии FreeBSD. Каждый скрипт должен иметь в конце расширение [.filename]#.sh# и каждый скрипт должен быть выполняемым. Последнее требование может быть выполнено путем установки командой `chmod` уникальных прав доступа `755`. Также, как минимум, должна быть опция `start` для запуска приложения и опция `stop` для его остановки. +|net +|Сеть -Простейший стартовый скрипт, пожалуй, будет похож на следующий: +|debug +|Параметры отладки -[.programlisting] -.... -#!/bin/sh -echo -n ' utility' +|hw +|Оборудование -case "$1" in -start) - /usr/local/bin/utility - ;; -stop) - kill -9 `cat /var/run/utility.pid` - ;; -*) - echo "Usage: `basename $0` {start|stop}" 2 - exit 64 - ;; -esac +|machdep +|Зависимые от аппаратного обеспечения -exit 0 -.... +|user +|Пользовательское пространство -Этот скрипт поддерживает опции `stop` и `start` для приложения, которое мы здесь называем просто - `utility`. +|p1003_1b +|POSIX 1003.1B -А можно запускать его и вручную, с помощью команды: +|=== -[source,shell] -.... -# /usr/local/etc/rc.d/utility.sh start -.... +В основе своей man:sysctl[8] выполняет две функции: чтение и изменение системных настроек. -Хотя и не все программы сторонних производителей требуют добавления строки в файл [.filename]#rc.conf#, практически каждый день очередной новый порт меняется так, чтобы поддерживать подобную конфигурацию. Поищите в результатах, выдаваемых после установки более детальную информацию по конкретному приложению. Некоторые программы сторонних производителей будут включать стартовые скрипты, позволяющие использовать приложение с [.filename]#rc.d#; но это мы еще обсудим в следующем разделе. +Для просмотра всех доступных для чтения переменных: -=== Расширенное конфигурирование приложения +[source, shell] +.... +% sysctl -a +.... -Теперь, когда FreeBSD включает [.filename]#rc.d#, конфигурирование запуска приложений стало более оптимальным; фактически, оно стало более тщательным. С помощью ключевых слов, рассмотренных в разделе <<configtuning-rcd,rc.d>>, приложения теперь можно настроить для запуска после других заданных сервисов, например, DNS; можно разрешить передачу дополнительных флагов через [.filename]#rc.conf# вместо жесткого задания флагов в стартовых скриптах, и т.д. Простой скрипт может иметь следующий вид: +Вывод должен быть похож на следующий: [.programlisting] .... -#!/bin/sh -# -# PROVIDE: utility -# REQUIRE: DAEMON -# KEYWORD: shutdown +kern.ostype: FreeBSD +... +vm.swap_enabled: 1 +vm.overcommit: 0 +vm.domain.0.pidctrl.kdd: 8 +vm.domain.0.pidctrl.kid: 4 +vm.domain.0.pidctrl.kpd: 3 +... +vfs.zfs.sync_pass_rewrite: 2 +vfs.zfs.sync_pass_dont_compress: 8 +vfs.zfs.sync_pass_deferred_free: 2 +.... -. /etc/rc.subr +Чтобы прочитать конкретную переменную, укажите её имя: -name=utility -rcvar=utility_pidfile +[source, shell] +.... +% sysctl kern.maxproc +.... -command="/usr/local/sbin/utility" +Вывод должен быть похож на следующий: -load_rc_config $name +[.programlisting] +.... +kern.maxproc: 1044 +.... -# -# НЕ МЕНЯЙТЕ ЗДЕСЬ ЭТИ СТАНДАРТНЫЕ ЗНАЧЕНИЯ -# ЗАДАВАЙТЕ ИХ В ФАЙЛЕ /etc/rc.conf -# -utility_enable=${utility_enable-"NO"} -pidfile=${utility_pidfile-"/var/run/utility.pid"} +База управляющей информации (MIB) иерархична, поэтому указание префикса выводит все узлы, зависящие от него: -run_rc_command "$1" +[source, shell] +.... +% sysctl net .... -Этот скрипт будет гарантировать, что указанное приложение utility будет запущено после сервиса `daemon`. Он также предоставляет метод для создания и отслеживания файла идентификатора процесса, PID. - -Для этого приложения затем можно поместить следующую строку в файл [.filename]#/etc/rc.conf#: +Вывод должен быть похож на следующий: [.programlisting] .... -utility_enable="YES" +net.local.stream.recvspace: 8192 +net.local.stream.sendspace: 8192 +net.local.dgram.recvspace: 16384 +net.local.dgram.maxdgram: 2048 +net.local.seqpacket.recvspace: 8192 +net.local.seqpacket.maxseqpacket: 8192 +net.local.sockcount: 60 +net.local.taskcount: 25 +net.local.recycled: 0 +net.local.deferred: 0 +net.local.inflight: 0 +net.inet.ip.portrange.randomtime: 1 +net.inet.ip.portrange.randomcps: 9999 +[...] .... -Этот новый метод также позволяет легко работать с аргументами командной строки, включать стандартные функции из файла [.filename]#/etc/rc.subr#, обеспечивает совместимость с утилитой man:rcorder[8] и упрощает конфигурирование с помощью файла [.filename]#rc.conf#. +Чтобы установить конкретную переменную, используйте синтаксис _переменная_=_значение_: -=== Использование сервисов для запуска сервисов +[source, shell] +.... +# sysctl kern.maxfiles=5000 +.... -Другие сервисы, такие как даемоны сервера POP3, IMAP, и т.п. могут быть запущены с помощью man:inetd[8]. Для этого необходимо установить сервисную утилиту из набора портов и добавить соответствующую строчку конфигурации в файл [.filename]#/etc/inetd.conf# или раскомментировать подходящую строку конфигурации из уже имеющихся. Работа с даемоном inetd и его конфигурирование подробно описаны в разделе crossref:network-servers[network-inetd,inetd]. +Вывод должен быть похож на следующий: -В некоторых случаях использование для запуска системных служб даемона man:cron[8] может оказаться более приемлемым. Этот подход имеет несколько преимуществ, поскольку даемон `cron` запускает эти процессы от имени владельца файла [.filename]#crontab#. Это позволяет обычным пользователям запускать и поддерживать некоторые приложения. +[.programlisting] +.... +kern.maxfiles: 2088 -> 5000 +.... -Утилита `cron` поддерживает уникальную возможность, `@reboot`, - это значение можно использовать вместо спецификации времени. В результате, задание будет выполнено при запуске man:cron[8], обычно - в ходе инициализации системы. +[NOTE] +==== +Чтобы сохранить настройки после перезагрузки, необходимо добавить эти переменные в файл [.filename]#/etc/sysctl.conf#, как описано ниже. +==== -[[configtuning-cron]] -== Настройка утилиты `cron` +[[configtuning-sysctlconf]] +=== Файл [.filename]#/etc/sysctl.conf# -Одна из наиболее полезных утилит FreeBSD это man:cron[8]. Утилита `cron` работает в фоновом режиме и постоянно проверяет файл [.filename]#/etc/crontab#. Утилита `cron` проверяет также каталог [.filename]#/var/cron/tabs# в поиске новых файлов [.filename]#crontab#. Файлы [.filename]#crontab# содержат информацию об определенных функциях, которые `cron` выполняет в указанное время. +Файл конфигурации для man:sysctl[8], [.filename]#/etc/sysctl.conf#, выглядит очень похоже на [.filename]#/etc/rc.conf#. -Утилита `cron` использует два разных типа конфигурационных файлов, системный и пользовательский. Все различие между этими двумя форматами заключается в шестом поле. В системном файле шестое поля это имя пользователя, с правами которого будет запущена команда. Это позволяет запускать команды из системного crontab от любого пользователя. В пользовательском файле шестое поле указывает запускаемую команду, и все команды запускаются от пользователя, который создал crontab; это важно для безопасности. +Значения задаются с использованием синтаксиса `переменная=значение`. [NOTE] ==== -Пользовательские crontab позволяют индивидуальным пользователям планировать задачи без привилегий суперпользователя (`root`). Команды из crontab пользователя запускаются с привилегиями этого пользователя. - -Пользователь `root` может использовать собственный crontab, как и любой другой пользователь. Он будет отличаться от системного crontab [.filename]#/etc/crontab#. Поскольку существует системный crontab, обычно не требуется создавать пользовательский crontab для `root`. +Указанные значения устанавливаются после перехода системы в многопользовательский режим. Не все переменные могут быть установлены в этом режиме. ==== -Давайте заглянем в файл [.filename]#/etc/crontab# (системный crontab): +Например, чтобы отключить запись завершений по фатальным сигналам и запретить пользователям видеть процессы, запущенные другими пользователями, в файле [.filename]#/etc/sysctl.conf# можно установить следующие параметры: [.programlisting] .... -# /etc/crontab - root's crontab for FreeBSD -# -# $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $ -## <.> -# -SHELL=/bin/sh -PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <.> -HOME=/var/log -# -# -#minute hour mday month wday who command <.> -# -# -*/5 * * * * root /usr/libexec/atrun <.> -.... - -<.> Как и в большинстве файлов настройки FreeBSD, символы "#" означают комментарии. Комментарии нужны для напоминания о том, что означает строка и зачем она добавлена. Комментарии не могут находиться на той же строке, что и команда, или они будут восприняты как часть команды; располагайте их на новой строке. Пустые строки игнорируются. - -<.> Сначала должны быть заданы переменные окружения. Знак равно (`=`) используется для задания переменных окружения, в этом примере `SHELL`, `PATH`, и `HOME`. Если переменная для оболочки не задана, `cron` использует оболочку по умолчанию, `sh`. Если не задана переменная `PATH`, значение по умолчанию не устанавливается и пути к файлам должны быть полными. Если не задана переменная `HOME`, `cron` будет использовать домашний каталог соответствующего пользователя. - -<.> В строке всего семь полей. Их значения `minute`, `hour`, `mday`, `month`, `wday`, `who` (кто), и `command`. Значение полей почти очевидно. `minute` это время в минутах, когда будет запущена команда. `hour` означает то же самое для часов. `mday` означает день месяца. `month`, это то же самое, что час и минута, но для месяцев. Параметр `wday` это день недели. Все эти поля должны быть в числовом формате, время в двадцатичетырехчасовом исчислении. Поле `who` имеет специальное значение, и присутствует только в файле [.filename]#/etc/crontab#. Это поле определяет пользователя, с правами которого должна быть запущена команда. Когда пользователь устанавливает собственный файл [.filename]#crontab#, он не указывает этот параметр. Последний параметр `command`. Он указывает команду, которая должна быть запущена. - -<.> Последняя строка определяет параметры, описанные выше. Здесь задано значение `\*/5`, и несколько символов `\*`. Эти символы `*` означают "первый-последний", и могут быть интерпретированы как _каждый_. Таким образом, для этой строки соответствующая команда `atrun` вызывается под пользователем `root` каждые пять минут независимо от дня или месяца. За дополнительной информацией по команде `atrun` обращайтесь к странице справочника man:atrun[8].Команды могут принимать любое количество параметров; однако команды, состоящие из нескольких строк, должны быть объединены символом "\". +# Do not log fatal signal exits (e.g., sig 11) +kern.logsigexit=0 -Этот формат одинаков для каждого файла [.filename]#crontab#, за исключением одной детали. Шестое поле, где указано имя пользователя, присутствует только в файле [.filename]#/etc/crontab#. Это поле должно быть исключено из [.filename]#crontab# файлов пользователей. +# Prevent users from seeing information about processes that +# are being run under another UID. +security.bsd.see_other_uids=0 +.... -[[configtuning-installcrontab]] -=== Установка crontab +Чтобы получить дополнительную информацию о функции конкретного sysctl, можно выполнить следующую команду: -[IMPORTANT] -==== -Вы не должны использовать процедуру, описанную здесь, для установки системного crontab. Просто используйте свой любимый текстовый редактор: утилита `cron` узнает о том, что файл изменился и сразу начнет использовать обновленную версию. Обратитесь к extref:{faq}[этой части FAQ, ROOT-NOT-FOUND-CRON-ERRORS] за дальнейшей информацией. -==== +[source, shell] +.... +% sysctl -d kern.dfldsiz +.... -Для установки готового [.filename]#crontab# пользователя, сначала создайте в вашем любимом редакторе файл соответствующего формата, а затем воспользуйтесь утилитой `crontab`. Обычно она запускается так: +Вывод должен быть похож на следующий: -[source,shell] +[.programlisting] .... -% crontab crontab-file +kern.dfldsiz: Initial data size limit .... -В этом примере, [.filename]#crontab-file# это имя файла crontab, который только что был создан. +[[configtuning-core-configuration]] +=== Управление конфигурацией, специфичной для системы -Существует также параметр для просмотра установленных файлов [.filename]#crontab#: задайте `crontab` параметр `-l`. +Основное расположение информации о конфигурации системы — это [.filename]#/etc/rc.conf#. -Для пользователей, составляющих crontab вручную, без временного файла, существует параметр `crontab -e`. Она вызовет редактор с пустым файлом. Когда файл будет сохранен, `crontab` автоматически установит его. +Этот файл содержит обширную информацию о конфигурации и читается при запуске системы для её настройки. Он предоставляет конфигурационную информацию для файлов [.filename]#rc*#. -Если позднее вы захотите полностью удалить свой [.filename]#crontab#, используйте `crontab` с параметром `-r`. +Записи в [.filename]#/etc/rc.conf# переопределяют настройки по умолчанию из [.filename]#/etc/defaults/rc.conf#. -[[configtuning-rcd]] -== Использование rc во FreeBSD 5.X и последующих версиях +[TIP] +==== +Файл [.filename]#/etc/defaults/rc.conf#, содержащий настройки по умолчанию, не следует редактировать. Вместо этого все специфичные для системы изменения должны вноситься в [.filename]#/etc/rc.conf#. +==== -Во FreeBSD недавно была интегрирована из NetBSD система [.filename]#rc.d#, используемая для старта системы. Многие из файлов в каталоге [.filename]#/etc/rc.d# предназначены для основных сервисов, они могут управляться параметрами `start`, `stop`, и `restart`. Например, man:sshd[8] может быть перезапущен следующей командой: +В кластеризованных приложениях может быть применен ряд стратегий для разделения общесайтовой конфигурации и системно-специфичной конфигурации с целью снижения административной нагрузки. -[source,shell] -.... -# /etc/rc.d/sshd restart -.... +Рекомендуемый подход заключается в размещении специфичной для системы конфигурации в [.filename]#/etc/rc.conf.local#. -Эта процедура похожа для других сервисов. Конечно, сервисы обычно запускаются автоматически при загрузке системы, как указано в man:rc.conf[5]. Например, включение даемона Network Address Translation при запуске выполняется простым добавлением следующей строки в [.filename]#/etc/rc.conf#: +Например, эти записи в [.filename]#/etc/rc.conf# применяются ко всем системам: [.programlisting] .... -natd_enable="YES" +sshd_enable="YES" +keyrate="fast" +defaultrouter="10.1.1.254" .... -Если `natd_enable="NO"` уже присутствует, просто измените `NO` на `YES`. Скрипты rc автоматически загрузят все другие зависимые сервисы, как описано ниже. +В то время как эти записи в [.filename]#/etc/rc.conf.local# применяются только к этой системе: -Поскольку система [.filename]#rc.d# в основном предназначена для запуска/отключения сервисов во время запуска/отключения системы, стандартные параметры `start`, `stop` и `restart` будут работать только если установлена соответствующая переменная в [.filename]#/etc/rc.conf#. Например, команда выше `sshd restart` будет работать только если переменная `sshd_enable` в файле [.filename]#/etc/rc.conf# установлена в `YES`. Для выполнения скриптов независимо от установок в [.filename]#/etc/rc.conf#, параметры `start`, `stop` или `restart` необходимо задавать с префиксом "force". Например, для перезапуска `sshd` независимо от установок в [.filename]#/etc/rc.conf#, выполните следующую команду: - -[source,shell] +[.programlisting] .... -# /etc/rc.d/sshd forcerestart +hostname="node1.example.org" +ifconfig_fxp0="inet 10.1.1.1/8" .... -Проверить состояние переменной в файле [.filename]#/etc/rc.conf# легко: запустите соответствующий скрипт из [.filename]#rc.d# с параметром `rcvar`. Проверка переменной для `sshd` выполняется следующей командой: +Распределите [.filename]#/etc/rc.conf# на каждую систему с помощью таких приложений, как rsync или puppet, в то время как [.filename]#/etc/rc.conf.local# остается уникальным. -[source,shell] -.... -# /etc/rc.d/sshd rcvar -# sshd -$sshd_enable=YES -.... +Обновление системы не перезапишет [.filename]#/etc/rc.conf#, поэтому системные настройки не будут потеряны. -[NOTE] +[TIP] ==== -Вторая строка (`# sshd`) это вывод команды `sshd`, а не консоль `root`. +Оба файла [.filename]#/etc/rc.conf# и [.filename]#/etc/rc.conf.local# обрабатываются man:sh[1]. Это позволяет системным операторам создавать сложные сценарии конфигурации. Дополнительную информацию по этой теме можно найти в man:rc.conf[5]. ==== -Чтобы определить, запущен ли сервис, существует параметр `status`. Например для проверки того, запущен ли `sshd`, выполните: +[[configtuning-rcd]] +== Управление службами в FreeBSD -[source,shell] -.... -# /etc/rc.d/sshd status -sshd is running as pid 433. -.... +FreeBSD использует систему стартовых сценариев man:rc[8] для инициализации системы и управления службами. -В некоторых случаях возможна также перегрузка (`reload`) сервиса. Скрипт, запущенный с этим параметром, попытается отправить сервису сигнал, вызывающий перезагрузку файлов настройки. В большинстве случаев это означает отправку сервису сигнала `SIGHUP`. Следует помнить, что эту функцию поддерживают не все сервисы. +Скрипты, перечисленные в [.filename]#/etc/rc.d#, предоставляют базовые сервисы, которыми можно управлять с помощью опций `start`, `stop` и `restart` команды man:service[8]. -Система [.filename]#rc.d# используется не только для сетевых серверов, она отвечает также за большую часть инициализации системы. Рассмотрим, к примеру, файл [.filename]#bgfsck#. Во время выполнения этот скрипт выводит следующее сообщение: +Базовый скрипт может выглядеть следующим образом: -[source,shell] -.... -Starting background file system checks in 60 seconds. +[.programlisting] .... +#!/bin/sh +# +# PROVIDE: utility +# REQUIRE: DAEMON +# KEYWORD: shutdown -Следовательно, этот файл используется для фоновой проверки файловых систем, которая выполняется только в процессе инициализации системы. +. /etc/rc.subr -Функционирование многих сервисов системы зависит от корректной работы других сервисов. Например, NIS и другие основанные на RPC сервисы могут не запуститься, пока не загрузится `rpcbind` (portmapper). Для разрешения этой проблемы, в начале каждого скрипта в комментарии включаются информация о зависимостях и другие метаданные. Программа man:rcorder[8] используется для разбора этих комментариев во время старта системы для определения порядка, в котором должны вызываться системные сервисы в соответствии с зависимостями. В начало каждого стартового файла должны быть включены следующие строки: +name=utility +rcvar=utility_enable -* `PROVIDE`: Задает имя сервиса, предоставляемого этим файлом. -* `REQUIRE`: Список сервисов, необходимых этому сервису. Этот файл будет запущен _после_ указанных сервисов. -* `BEFORE`: Список сервисов, зависящих от этого сервиса. Этот файл будет запущен _до_ указанных сервисов. +command="/usr/local/sbin/utility" -Используя этот метод, администратор может легко контролировать системные сервисы без использования "уровней запуска", как в некоторых других операционных системах UNIX(R). +load_rc_config $name -Дополнительную информацию о системе [.filename]#rc.d# можно найти на страницах справочника man:rc[8] и man:rc.subr[8]. +# +# DO NOT CHANGE THESE DEFAULT VALUES HERE +# SET THEM IN THE /etc/rc.conf FILE +# +utility_enable=${utility_enable-"NO"} +pidfile=${utility_pidfile-"/var/run/utility.pid"} + +run_rc_command "$1" +.... -[[config-network-setup]] -== Настройка карт сетевых интерфейсов +Обратитесь к extref:{rc-scripting}[этой статье] для получения инструкций по созданию пользовательских сценариев man:rc[8]. -В наши дни мы не представляем себе компьютера без сетевого подключения. Добавление и настройка сетевой карты это обычная задача любого администратора FreeBSD. +[[configtuning-starting-services]] +=== Запуск служб -=== Поиск подходящего драйвера +Многие пользователи устанавливают стороннее программное обеспечение на FreeBSD из Коллекции портов и требуют, чтобы установленные службы запускались при инициализации системы. -В первую очередь определите тип используемой карты (PCI или ISA), модель карты и используемый в ней чип. FreeBSD поддерживает многие PCI и ISA карты. Обратитесь к Списку поддерживаемого оборудования вашего релиза чтобы узнать, поддерживается ли карта. +Службы, такие как package:security/openssh-portable[] или package:www/nginx[], являются лишь двумя из множества программных пакетов, которые могут запускаться при инициализации системы. В этом разделе описаны доступные процедуры для запуска служб. -Как только вы убедились, что карта поддерживается, потребуется определить подходящий драйвер. В файлах [.filename]#/usr/src/sys/conf/NOTES# и [.filename]#/usr/src/sys/arch/conf/NOTES# находится список драйверов сетевых интерфейсов с информацией о поддерживаемых чипсетах/картах. Если вы сомневаетесь в том, какой драйвер подойдет, прочтите страницу справочника к драйверу. Страница справочника содержит больше информации о поддерживаемом оборудовании и даже о проблемах, которые могут возникнуть. +Поскольку система man:rc[8] в первую очередь предназначена для запуска и остановки служб во время загрузки и выключения системы, опции `start`, `stop` и `restart` выполнят соответствующие действия только в том случае, если установлена соответствующая переменная в [.filename]#/etc/rc.conf#. -Если ваша карта широко распространена, вам скорее всего не потребуется долго искать драйвер. Драйверы для широко распространенных карт представлены в ядре [.filename]#GENERIC#, так что ваша карта должна определиться при загрузке, примерно так: +Итак, первый шаг для запуска службы, например package:www/nginx[], — это добавить её в [.filename]#/etc/rc.conf#, выполнив следующую команду: -[source,shell] +[source, shell] .... -dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38 -000ff irq 15 at device 11.0 on pci0 -dc0: Ethernet address: 00:a0:cc:da:da:da -miibus0: <MII bus> on dc0 -ukphy0: <Generic IEEE 802.3u media interface> on miibus0 -ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto -dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30 -000ff irq 11 at device 12.0 on pci0 -dc1: Ethernet address: 00:a0:cc:da:da:db -miibus1: <MII bus> on dc1 -ukphy1: <Generic IEEE 802.3u media interface> on miibus1 -ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto +# sysrc nginx_enable="YES" .... -В этом примере две карты используют имеющийся в системе драйвер man:dc[4]. - -Если драйвер вашей сетевой карты отсутствует в [.filename]#GENERIC#, для ее использования потребуется загрузить подходящий драйвер. Это может быть сделано одним из двух способов: - -* Простейший способ - просто загрузить модуль ядра сетевой карты с помощью man:kldload[8]. Не все драйверы доступны в виде модулей; например, модули отсутствуют для ISA карт. -* Вместо этого, вы можете статически включить поддержку карты, скомпилировав собственное ядро. Информацию о том, какие параметры нужно включать в ядро, можно получить из [.filename]#/usr/src/sys/conf/NOTES#, [.filename]#/usr/src/sys/arch/conf/NOTES# и страницы справочника драйвера сетевой карты. За более подробной информацией о сборке собственного ядра обращайтесь к crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]. Если карта была обнаружена вашим ядром ([.filename]#GENERIC#) во время загрузки, собирать ядро не потребуется. - -=== Настройка сетевой карты - -Как только для сетевой карты загружен подходящий драйвер, ее потребуется настроить. Как и многое другое, сетевая карта может быть настроена во время установки с помощью sysinstall. - -Для вывода информации о настройке сетевых интерфейсов системы, введите следующую команду: +Затем nginx можно запустить, выполнив следующую команду: -[source,shell] +[source, shell] .... -% ifconfig -dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 - ether 00:a0:cc:da:da:da - media: Ethernet autoselect (100baseTX <full-duplex>) - status: active -dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 - inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255 - ether 00:a0:cc:da:da:db - media: Ethernet 10baseT/UTP - status: no carrier -lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 -lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 - inet 127.0.0.1 netmask 0xff000000 -tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 +# service nginx start .... -[NOTE] +[TIP] ==== -Старые версии FreeBSD могут потребовать запуска man:ifconfig[8] с параметром `-a`, за более подробным описанием синтаксиса man:ifconfig[8] обращайтесь к странице справочника. Учтите также, что строки, относящиеся к IPv6 (`inet6` и т.п.) убраны из этого примера. +Для запуска (`start`), остановки (`stop`) или перезапуска (`restart`) службы независимо от настроек в [.filename]#/etc/rc.conf#, перед этими командами следует добавить "one". Например, чтобы запустить package:www/nginx[] независимо от текущих настроек в [.filename]#/etc/rc.conf#, выполните следующую команду: + +[source, shell] +.... +# service nginx onestart +.... ==== -В этом примере были показаны следующие устройства: +Также возможно автоматическое размещение службы в jail, см. соответствующее пояснение в разделе crossref:jails[service-jails,Сервисные клетки]. -* [.filename]#dc0#: первый Ethernet интерфейс -* [.filename]#dc1#: второй Ethernet интерфейс -* [.filename]#lp0#: интерфейс параллельного порта -* [.filename]#lo0#: устройство loopback -* [.filename]#tun0#: туннельное устройство, используемое ppp +[[configtuning-status-services]] +=== Состояние службы -Для присвоения имени сетевой карте FreeBSD использует имя драйвера и порядковый номер, в котором карта обнаруживается при инициализации устройств. Например, [.filename]#sis2# это третья сетевая карта, использующая драйвер man:sis[4]. +Чтобы определить, запущена ли служба, используйте подкоманду `status`. -В этом примере, устройство [.filename]#dc0# включено и работает. Ключевые признаки таковы: +Например, чтобы проверить, что package:www/nginx[] работает: -. `UP` означает, что карта настроена и готова. -. У карты есть интернет (`inet`) адрес (в данном случае `192.168.1.3`). -. Установлена маска подсети (`netmask`; `0xffffff00`, то же, что и `255.255.255.0`). -. Широковещательный адрес (в данном случае, `192.168.1.255`). -. Значение MAC адреса карты (`ether`) `00:a0:cc:da:da:da` -. Выбор физической среды передачи данных в режиме автовыбора (`media: Ethernet autoselect (100baseTX full-duplex)`). Мы видим, что [.filename]#dc1# была настроена для работы с `10baseT/UTP`. За более подробной информацией о доступных драйверу типах среды обращайтесь к странице справочника. -. Статус соединения (`status`) `active`, т.е. несущая обнаружена. Для [.filename]#dc1#, мы видим `status: no carrier`. Это нормально, когда Ethernet кабель не подключен к карте. +[source, shell] +.... +# service nginx status +.... -Если man:ifconfig[8] показывает примерно следующее: +Вывод должен быть похож на следующий: -[source,shell] +[.programlisting] .... -dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 - ether 00:a0:cc:da:da:da +nginx is running as pid 27871. .... -это означает, что карта не была настроена. +[[configtuning-reload-services]] +=== Перезагрузить службу -Для настройки карты вам потребуются привилегии пользователя `root`. Настройка сетевой карты может быть выполнена из командной строки с помощью man:ifconfig[8], но вам потребуется делать это после каждой перезагрузки системы. Подходящее место для настройки сетевых карт это файл [.filename]#/etc/rc.conf#. +В некоторых случаях также можно `перезагрузить` службу. Это попытка отправить сигнал отдельной службе, заставляя её перезагрузить свои конфигурационные файлы. -Откройте [.filename]#/etc/rc.conf# в текстовом редакторе. Вам потребуется добавить строку для каждой сетевой карты, имеющейся в системе, например, в нашем случае, было добавлено две строки: +В большинстве случаев это означает отправку службе сигнала `SIGHUP`. -[.programlisting] +*Not all services support this feature.* + +Система man:rc[8] используется для сетевых сервисов, а также играет важную роль в большинстве процессов инициализации системы. Например, при выполнении скрипта [.filename]#/etc/rc.d/bgfsck# выводится следующее сообщение: + +[source, shell] .... -ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0" -ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP" +Starting background file system checks in 60 seconds. .... -Замените [.filename]#dc0#, [.filename]#dc1#, и так далее на соответствующие имена ваших карт, подставьте соответствующие адреса. Обратитесь к страницам справочника сетевой карты и man:ifconfig[8], за подробной информацией о доступных опциях и к странице справочника man:rc.conf[5] за дополнительной информацией о синтаксисе [.filename]#/etc/rc.conf#. +Этот скрипт используется для фоновой проверки файловых систем, которая выполняется только во время инициализации системы. -Если вы настроили сетевую карту в процессе установки системы, некоторые строки, касающиеся сетевой карты, могут уже присутствовать. Внимательно проверьте [.filename]#/etc/rc.conf# перед добавлением каких-либо строк. +Многие системные службы зависят от других служб для корректной работы. Например, man:yp[8] и другие службы на основе RPC могут не запуститься, пока не будет запущена служба man:rpcbind[8]. -Отредактируйте также файл [.filename]#/etc/hosts# для добавления имен и IP адресов различных компьютеров сети, если их еще там нет. За дополнительной информацией обращайтесь к man.hosts.5; и к [.filename]#/usr/shared/examples/etc/hosts#. +Дополнительную информацию можно найти в man:rc[8] и man:rc.subr[8]. -=== Тестирование и решение проблем +=== Использование служб для запуска сервисов -Как только вы внесете необходимые изменения в [.filename]#/etc/rc.conf#, перегрузите компьютер. Изменения настроек интерфейсов будут применены, кроме того будет проверена правильность настроек. +Другие службы могут быть запущены с помощью man:inetd[8]. Работа с man:inetd[8] и его настройка подробно описаны в crossref:network-servers[network-inetd,«Суперсервер inetd»]. -Как только система перезагрузится, проверьте сетевые интерфейсы. +В некоторых случаях может быть целесообразнее использовать man:cron[8] для запуска системных служб. Такой подход имеет ряд преимуществ, поскольку man:cron[8] запускает эти процессы от имени владельца man:crontab[5]. Это позволяет обычным пользователям запускать и поддерживать свои собственные приложения. -==== Проверка Ethernet карты +Функция `@reboot` в man:cron[8] может быть использована вместо указания времени. Это приводит к запуску задачи при старте man:cron[8], обычно во время инициализации системы. -Для проверки правильности настройки сетевой карты, попробуйте выполнить ping для самого интерфейса, а затем для другой машины в локальной сети. +[[cron-periodic]] +== Cron и Periodic -Сначала проверьте локальный интерфейс: +Планирование задач на определенный день или время — очень распространенная задача в FreeBSD. Инструмент, отвечающий за выполнение этой задачи, — это man:cron[8]. -[source,shell] -.... -% ping -c5 192.168.1.3 -PING 192.168.1.3 (192.168.1.3): 56 data bytes -64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms -64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms -64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms -64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms -64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms +В дополнение к задачам, которые пользователь может запланировать с помощью man:cron[8], FreeBSD выполняет фоновые задачи, управляемые man:periodic[8]. ---- 192.168.1.3 ping statistics --- -5 packets transmitted, 5 packets received, 0% packet loss -round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms -.... - -Затем проверьте другую машину в локальной сети: - -[source,shell] -.... -% ping -c5 192.168.1.2 -PING 192.168.1.2 (192.168.1.2): 56 data bytes -64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms -64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms -64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms -64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms -64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms +[[configtuning-cron]] +=== Cron ---- 192.168.1.2 ping statistics --- -5 packets transmitted, 5 packets received, 0% packet loss -round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms -.... +Утилита man:cron[8] работает в фоновом режиме и периодически проверяет файл [.filename]#/etc/crontab# на наличие задач для выполнения, а также ищет пользовательские файлы crontab в каталоге [.filename]#/var/cron/tabs#. -Вы можете также использовать имя машины вместо `192.168.1.2`, если настроен файл [.filename]#/etc/hosts#. +Эти файлы используются для планирования задач, которые cron запускает в указанное время. -==== Решение проблем +Каждая запись в crontab определяет задачу для выполнения и называется _cron job_. -Решение проблем с аппаратным и программным обеспечением всегда вызывает сложности, которые можно уменьшить, проверив сначала самые простые варианты. Подключен ли сетевой кабель? Правильно ли настроены сетевые сервисы? Правильно ли настроен брандмауэр? Поддерживается ли используемая карта в FreeBSD? Всегда проверяйте информацию об оборудовании перед отправкой сообщения об ошибке. Обновите FreeBSD до последней версии STABLE. Просмотрите архивы списков рассылки, или поищите информацию в интернет. +Используются два типа конфигурационных файлов: системный crontab, который не следует изменять, и пользовательские crontabs, которые можно создавать и редактировать по необходимости. Формат этих файлов описан в man:crontab[5]. Формат системного crontab, [.filename]#/etc/crontab#, включает столбец `who`, который отсутствует в пользовательских crontabs. В системном crontab команды выполняются от имени пользователя, указанного в этом столбце. В пользовательском crontab все команды выполняются от имени пользователя, создавшего crontab. -Если карта работает, но производительность низка, может помочь чтение страницы справочника man:tuning[7]. Проверьте также настройки сети, поскольку неправильные настройки могут стать причиной низкой скорости соединения. +Пользовательские crontab-файлы позволяют отдельным пользователям планировать свои собственные задачи. У пользователя `root` также может быть пользовательский [.filename]#crontab#, который можно использовать для планирования задач, отсутствующих в системном [.filename]#crontab#. -Некоторые пользователи встречаются с несколькими `device timeouts`, что нормально для некоторых сетевых карт. Если это продолжается и надоедает, убедитесь, что устройство не конфликтует с другим устройством. Внимательно проверьте подключение кабеля. Возможно также, что вам просто надо установить другую карту. +Вот пример записи из системного crontab, [.filename]#/etc/crontab#: -Время от времени, пользователи видят несколько ошибок `watchdog timeout`. Первое, что требуется сделать, это проверить сетевой кабель. Многие карты требуют поддержки Bus Mastering слотом PCI. На некоторых старых материнских платах, только один PCI слот имеет такую поддержку (обычно слот 0). Сверьтесь с документацией на сетевую карту и материнскую плату, чтобы определить, может ли это быть проблемой. +[.programlisting] +.... +# /etc/crontab - root's crontab for FreeBSD +# +# <.> +# +SHELL=/bin/sh +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin <.> +# +#minute hour mday month wday who command <.> +# +# Save some entropy so that /dev/random can re-seed on boot. +*/11 * * * * operator /usr/libexec/save-entropy <.> +# +# Rotate log files every hour, if necessary. +0 * * * * root newsyslog +# +# Perform daily/weekly/monthly maintenance. +1 3 * * * root periodic daily +15 4 * * 6 root periodic weekly +30 5 1 * * root periodic monthly +# +# Adjust the time zone if the CMOS clock keeps local time, as opposed to +# UTC time. See adjkerntz(8) for details. +1,31 0-5 * * * root adjkerntz -a -Сообщение `No route to host` появляются, если система не в состоянии доставить пакеты к хосту назначения. Это может случиться, если не определен маршрут по умолчанию, или кабель не подключен. Проверьте вывод команды `netstat -rn` и убедитесь, что к соответствующему хосту есть работающий маршрут. Если это не так, прочтите crossref:advanced-networking[advanced-networking, Сложные вопросы работы в сети]. +.... -Сообщения `ping: sendto: Permission denied` зачастую появляются при неправильно настроенном брандмауэре. Если `ipfw` включен в ядре, но правила не определены, правило по умолчанию блокирует весь трафик, даже запросы ping! Прочтите crossref:firewalls[firewalls, Межсетевые экраны] с более подробной информацией. +<.> Строки, начинающиеся с символа `+#+`, являются комментариями. Комментарий можно добавить в файл как напоминание о том, что и зачем выполняется. Комментарии не могут находиться на одной строке с командой, иначе они будут восприняты как часть команды; они должны быть на отдельной строке. Пустые строки игнорируются. -Иногда скорость карты недостаточна, или ниже среднего. В этих случаях лучше всего изменить режим выбора типа подключения с `autoselect` на правильный тип. Обычно это работает для большинства оборудования, но не может решить проблему во всех случаях. Проверьте еще раз настройки сети и прочтите страницу справочника man:tuning[7]. +<.> Символ равенства (`=`) используется для определения параметров окружения. В данном примере он применяется для задания переменных `SHELL` и `PATH`. Если `SHELL` не указана, cron будет использовать оболочку Bourne по умолчанию. Если `PATH` не указан, необходимо указывать полный путь к команде или скрипту, который требуется выполнить. -[[configtuning-virtual-hosts]] -== Настройка виртуальных серверов +<.> Эта строка определяет семь полей, используемых в системном crontab: `minute`, `hour`, `mday`, `month`, `wday`, `who` и `command`. Поле `minute` указывает время в минутах, когда должна выполняться указанная команда, `hour` — час, `mday` — день месяца, `month` — месяц, а `wday` — день недели. Эти поля должны содержать числовые значения в 24-часовом формате или символ `*`, обозначающий все возможные значения для данного поля. Поле `who` существует только в системном crontab и указывает, от имени какого пользователя должна выполняться команда. Последнее поле — это команда, которую нужно выполнить. -Очень часто FreeBSD используется для размещения сайтов, когда один сервер работает в сети как несколько серверов. Это достигается присвоением нескольких сетевых адресов одному интерфейсу. +<.> Эта запись определяет значения для этого задания cron. Комбинация `\*/11`, за которой следует несколько символов `*`, указывает, что `/usr/libexec/save-entropy` запускается от имени пользователя `operator` каждые одиннадцать минут каждого часа, каждого дня и дня недели, каждого месяца. Команды могут включать любое количество параметров. Однако команды, занимающие несколько строк, должны быть разделены символом продолжения обратной косой черты "\". -У сетевого интерфейса всегда есть один "настоящий" адрес, хотя он может иметь любое количество "синонимов" (alias). Эти синонимы обычно добавляются путём помещения соответствующих записей в [.filename]#/etc/rc.conf#. +[[configtuning-installcrontab]] +=== Создание пользовательского Crontab -Синоним для интерфейса [.filename]#fxp0# выглядит следующим образом: +Чтобы создать пользовательский crontab, вызовите `crontab` в режиме редактора: -[.programlisting] +[source, shell] .... -ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx" +% crontab -e .... -Заметьте, что записи синонимов должны начинаться с `alias0` и идти далее в определенном порядке (например, `_alias1`, `_alias2`, и т.д.). Конфигурационный процесс остановится на первом по порядку отсутствующем числе. +Это откроет crontab пользователя в текстовом редакторе по умолчанию. При первом запуске этой команды откроется пустой файл. После создания crontab эта команда будет открывать его для редактирования. -Определение маски подсети для синонима очень важно, но к счастью, так же просто. Для каждого интерфейса должен быть один адрес с истинной маской подсети. Любой другой адрес в сети должен иметь маску подсети, состоящую из всех единичек (что выражается как `255.255.255.255` или как `0xffffffff`). +Полезно добавить следующие строки в начало файла crontab, чтобы установить переменные окружения и запомнить назначение полей в crontab: -Например, рассмотрим случай, когда интерфейс [.filename]#fxp0# подключён к двум сетям, к сети `10.1.1.0` с маской подсети `255.255.255.0` и к сети `202.0.75.16` с маской `255.255.255.240`. Мы хотим, чтобы система была видна по IP, начиная с `10.1.1.1` по `10.1.1.5` и с `202.0.75.17` по `202.0.75.20`. Как было сказано выше, только первый адрес в заданном диапазоне (в данном случае, `10.0.1.1` и `202.0.75.17`) должен иметь реальную маску сети; все остальные (с `10.1.1.2` по `10.1.1.5` и с `202.0.75.18` по `202.0.75.20`) должны быть сконфигурированы с маской сети `255.255.255.255`. +[.programlisting] +.... +SHELL=/bin/sh +PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin +# Order of crontab fields +# minute hour mday month wday command +.... -Для этого в файл [.filename]#/etc/rc.conf# должны быть внесены следующие записи: +Затем добавьте строку для каждой команды или скрипта, указав время их выполнения. В этом примере указанный пользовательский скрипт Bourne shell будет запускаться каждый день в два часа дня. Поскольку путь к скрипту не указан в `PATH`, указывается полный путь к скрипту: [.programlisting] .... -ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" -ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" -ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" -ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" -ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" -ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" -ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" -ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" -ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255" +0 14 * * * /home/user/bin/mycustomscript.sh .... -[[configtuning-configfiles]] -== Файлы настройки - -=== Каталог [.filename]#/etc# +[TIP] +==== +Перед использованием пользовательского скрипта убедитесь, что он исполняемый, и протестируйте его с ограниченным набором переменных окружения, установленных cron. Чтобы воспроизвести окружение, которое будет использоваться для выполнения вышеуказанной записи cron, используйте: -Во FreeBSD определён ряд каталогов, предназначенных для хранения конфигурационных файлов. Это: +[.programlisting] +.... +env -i SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/home/user LOGNAME=user /home/user/bin/mycustomscript.sh +.... -[.informaltable] -[cols="1,1", frame="none"] -|=== +Окружение, устанавливаемое cron, описано в man:crontab[5]. Особенно важно проверять корректность работы скриптов в окружении cron, если они содержат команды удаления файлов с использованием шаблонов. +==== -|[.filename]#/etc# -|Основные файлы конфигурации системы. Тут размещены системно-зависимые данные. +После завершения редактирования файла crontab сохраните его. Он будет автоматически установлен, и cron прочитает crontab и запустит задания по расписанию. Для просмотра списка заданий в crontab используйте следующую команду: -|[.filename]#/etc/defaults# -|Версии системных конфигурационных файлов по умолчанию. +[source, shell] +.... +% crontab -l +.... -|[.filename]#/etc/mail# -|Дополнительные конфигурационные файлы man:sendmail[8], другие конфигурационные файлы MTA. +Вывод должен быть похож на следующий: -|[.filename]#/etc/ppp# -|Настройка для user- и kernel-ppp программ. +[.programlisting] +.... +0 14 * * * /home/user/bin/mycustomscript.sh +.... -|[.filename]#/etc/namedb# -|Основное место расположения данных man:named[8]. Обычно [.filename]#named.conf# и файлы зон расположены здесь. +Удалить все задания cron из пользовательского crontab: -|[.filename]#/usr/local/etc# -|Конфигурационные файлы установленных приложений. Могут содержать подкаталоги приложений. +[source, shell] +.... +% crontab -r +.... -|[.filename]#/usr/local/etc/rc.d# -|Скрипты запуска/остановки установленных приложений. +Вывод должен быть похож на следующий: -|[.filename]#/var/db# -|Автоматически генерируемые системно-специфичные файлы баз данных, такие как база данных пакетов, и так далее -|=== +[.programlisting] +.... +remove crontab for user? y +.... -=== Имена хостов +[[configtuning-periodic]] +=== Периодические задачи (Periodic) -==== [.filename]#/etc/resolv.conf# +FreeBSD предоставляет набор скриптов для управления системой, которые проверяют состояние различных подсистем, выполняют проверки, связанные с безопасностью, осуществляют ротацию файлов журналов и т.д. Эти скрипты запускаются периодически: ежедневно, еженедельно или ежемесячно. Управление этими задачами осуществляется с помощью man:periodic[8], а его конфигурация находится в man:periodic.conf[5]. Периодические задачи инициируются записями в системном crontab, как показано выше. -[.filename]#/etc/resolv.conf# определяет, как резолвер (resolver) FreeBSD получает доступ к Системе Доменных Имён (DNS). +Скрипты, выполняемые man:periodic[8], расположены в [.filename]#/etc/periodic/# для базовых утилит и в [.filename]#/usr/local/etc/periodic/# для стороннего программного обеспечения. -Основные записи [.filename]#resolv.conf#: +Они организованы в 4 подкаталога: daily, weekly, monthly и security. -[.informaltable] -[cols="1,1", frame="none"] -|=== +[[enable-disable-periodic]] +=== Включение или отключение периодических задач -|`nameserver` -|IP адрес сервера имён. Сервера опрашиваются в порядке описания. Максимальное количество адресов - три. +FreeBSD имеет некоторые скрипты, включённые по умолчанию для периодического выполнения. -|`search` -|Список доменов для поиска с помощью hostname lookup. Обычно определяется доменом, в котором находится компьютер. +Чтобы включить или отключить задачу, первым шагом необходимо отредактировать файл [.filename]#/etc/periodic.conf#, выполнив следующую команду: -|`domain` -|Домен, в котором находится компьютер. -|=== +[source, shell] +.... +# ee /etc/periodic.conf +.... -Типичный вид [.filename]#resolv.conf#: +И затем, чтобы включить, например, `daily_status_zfs_enable`, поместите следующее содержимое в файл: [.programlisting] .... -search example.com -nameserver 147.11.1.11 -nameserver 147.11.100.30 +daily_status_zfs_enable="YES" .... -[NOTE] -==== -Опции `search` и `domain` нельзя использовать совместно. -==== +Чтобы отключить задание, которое активно по умолчанию, достаточно изменить `YES` на `NO`. -Если вы используете DHCP, man:dhclient[8] обычно перезаписывает [.filename]#resolv.conf# информацией, полученной от серверов DHCP. +[[configuring-output-periodic-tasks]] +=== Настройка вывода периодических задач -==== [.filename]#/etc/hosts# +В файле [.filename]#/etc/periodic.conf# переменные `daily_output`, `weekly_output` и `monthly_output` определяют, куда отправлять результаты выполнения скриптов. -[.filename]#/etc/hosts# - простая текстовая база данных, напоминающая старый Интернет. Она работает совместно с DNS и NIS, сопоставляя доменные имена IP адресу. Отдельные компьютеры, соединённые с помощью локальной сети, могут быть записаны тут вместо man:named[8] сервера с целью упрощения. Кроме того, [.filename]#/etc/hosts# используется для записи IP адресов и соответствующих им доменов, избавляя от внешнего трафика, используемого для запросов к DNS серверам. +По умолчанию результаты работы периодических скриптов отправляются по электронной почте пользователю root, поэтому рекомендуется либо читать почту root, либо настроить пересылку писем root на почтовый ящик, который регулярно проверяется. + +Чтобы отправить результаты на другой адрес электронной почты или на несколько адресов, добавьте email-адреса через пробел в файл [.filename]#/etc/periodic.conf#: [.programlisting] .... -# $FreeBSD$ -# -# Host Database -# This file should contain the addresses and aliases -# for local hosts that share this file. -# In the presence of the domain name service or NIS, this file may -# not be consulted at all; see /etc/nsswitch.conf for the resolution order. -# -# -::1 localhost localhost.my.domain myname.my.domain -127.0.0.1 localhost localhost.my.domain myname.my.domain - -# -# Imaginary network. -#10.0.0.2 myname.my.domain myname -#10.0.0.3 myfriend.my.domain myfriend -# -# According to RFC 1918, you can use the following IP networks for -# private nets which will never be connected to the Internet: -# -# 10.0.0.0 - 10.255.255.255 -# 172.16.0.0 - 172.31.255.255 -# 192.168.0.0 - 192.168.255.255 -# -# In case you want to be able to connect to the Internet, you need -# real official assigned numbers. PLEASE PLEASE PLEASE do not try -# to invent your own network numbers but instead get one from your -# network provider (if any) or from the Internet Registry (ftp to -# rs.internic.net, directory `/templates'). -# +daily_output="email1@example.com email2@example.com" +weekly_output="email1@example.com email2@example.com" +monthly_output="email1@example.com email2@example.com" .... -Формат [.filename]#/etc/hosts#: +Для записи периодического вывода в журнал вместо получения его по электронной почте добавьте следующие строки в [.filename]#/etc/periodic.conf#. Утилита man:newsyslog[8] будет выполнять ротацию этих файлов в соответствующее время: [.programlisting] .... -[IP адрес в Интернете] [имя компьютера] [alias1] [alias2] ... +daily_output=/var/log/daily.log +weekly_output=/var/log/weekly.log +monthly_output=/var/log/monthly.log .... -Например: +[[configtuning-syslog]] +== Настройка системного журналирования -[.programlisting] -.... -10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2 -.... +Генерация и чтение системных журналов — важный аспект администрирования системы. Информация в системных журналах может использоваться для выявления проблем с оборудованием и программным обеспечением, а также ошибок в конфигурации приложений и системы. Эти данные также играют важную роль в аудите безопасности и реагировании на инциденты. Большинство системных демонов и приложений создают записи в журналах. + +FreeBSD предоставляет системный модуль журналирования man:syslogd[8] для управления журналированием. По умолчанию syslogd включен и запускается при загрузке системы. -За дополнительной информацией обращайтесь к man:hosts[5]. +В этом разделе описывается, как настроить системный модуль журналирования FreeBSD для локального и удалённого ведения журналов, а также как выполнять ротацию и управление журналами. -=== Настройка лог файлов +=== Настройка локального журналирования -==== [.filename]#syslog.conf# +Файл конфигурации [.filename]#/etc/syslog.conf# определяет, как syslogd обрабатывает поступающие записи журналов. Существует несколько параметров для управления обработкой входящих событий. _Facility_ (источник) указывает, какая подсистема сгенерировала сообщение, например, ядро или демон, а _level_ (уровень) описывает степень серьезности произошедшего события. Это позволяет настроить, будет ли сообщение зарегистрировано и куда, в зависимости от категории и уровня. Также можно выполнять действия в зависимости от приложения, отправившего сообщение, а в случае удалённого журналирования — от имени хоста машины, генерирующей событие. -[.filename]#syslog.conf# is является файлом конфигурации для man:syslogd[8]. В нём указываются, типы сообщений генерируемые `syslog`, и лог файлы, в которые они записываются. +Этот файл конфигурации содержит по одной строке для каждого действия, где синтаксис каждой строки представляет собой поле селектора, за которым следует поле действия. Синтаксис поля селектора — _facility.level_, что соответствует журнальным сообщениям от _facility_ уровня _level_ и выше. Также можно добавить необязательный флаг сравнения перед уровнем, чтобы точнее указать, что регистрируется. Для одного действия можно использовать несколько полей селектора, разделённых точкой с запятой (`;`). Использование `*` соответствует всем сообщениям. Поле действия указывает, куда отправлять журнальное сообщение, например, в файл или на удалённый хост для журналирования. + +В качестве примера приведен стандартный файл [.filename]#/etc/syslog.conf# из FreeBSD: [.programlisting] .... -# $FreeBSD$ -# # Spaces ARE valid field separators in this file. However, # other *nix-like systems still insist on using tabs as field # separators. If you are sharing this file between systems, you # may want to use only tabs as field separators here. -# Consult the syslog.conf(5) manual page. -*.err;kern.debug;auth.notice;mail.crit /dev/console -*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages +# Consult the syslog.conf(5) manpage. +*.err;kern.warning;auth.notice;mail.crit /dev/console <.> +*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages security.* /var/log/security -mail.info /var/log/maillog -lpr.info /var/log/lpd-errs +auth.info;authpriv.info /var/log/auth.log +mail.info /var/log/maillog <.> cron.* /var/log/cron -*.err root -*.notice;news.err root -*.alert root +!-devd +*.=debug /var/log/debug.log <.> *.emerg * +daemon.info /var/log/daemon.log # uncomment this to log all writes to /dev/console to /var/log/console.log +# touch /var/log/console.log and chmod it to mode 600 before it will work #console.info /var/log/console.log # uncomment this to enable logging of all log messages to /var/log/all.log +# touch /var/log/all.log and chmod it to mode 600 before it will work #*.* /var/log/all.log -# uncomment this to enable logging to a remote log host named loghost +# uncomment this to enable logging to a remote loghost named loghost #*.* @loghost # uncomment these if you're running inn # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice -!startslip -*.* /var/log/slip.log -!ppp -*.* /var/log/ppp.log +# Uncomment this if you wish to see messages produced by devd +# !devd +# *.>=notice /var/log/devd.log <.> +!* +include /etc/syslog.d +include /usr/local/etc/syslog.d .... -За более полной информацией обратитесь к man:syslog.conf[5]. +<.> Соответствует всем сообщениям с уровнем `err` или выше, а также `kern.warning`, `auth.notice` и `mail.crit`, и отправляет эти сообщения журнала на консоль ([.filename]#/dev/console#). +<.> Соответствует всем сообщениям из источника `mail` уровня `info` и выше и записывает их в [.filename]#/var/log/maillog#. +<.> Использует флаг сравнения (`=`) для совпадения только с сообщениями уровня `debug` и записывает их в [.filename]#/var/log/debug.log#. +<.> Пример использования спецификации программы. Это делает следующие правила действительными только для указанной программы. В данном случае только сообщения, генерируемые man:devd[8], записываются в [.filename]#/var/log/devd.log#. -==== [.filename]#newsyslog.conf# +Для получения дополнительной информации о [.filename]#/etc/syslog.conf#, его синтаксисе и более сложных примерах использования см. man:syslog.conf[5]. -[.filename]#newsyslog.conf# - конфигурационный файл man:newsyslog[8], программы, обычно контролируемой man:cron[8]. man:newsyslog[8] определяет, когда лог-файлы нуждаются в архивировании и перегруппировке. [.filename]#logfile# перемещается в [.filename]#logfile.0#, [.filename]#logfile.0# перемещается в [.filename]#logfile.1#, и так далее. Другое именование получится при архивировании с помощью man:gzip[1]: [.filename]#logfile.0.gz#, [.filename]#logfile.1.gz#, и т.д. +[[logging-facilities]] +=== Источники системы журналирования -[.filename]#newsyslog.conf# показывает, какие лог файлы должны быть проинспектированы, сколько их должно быть сохранено, и когда они должны быть пересмотрены. Лог файлы могут быть перегруппированы и/или заархивированы, когда они либо достигнут определённого размера, либо при достижении определённых даты/времени. +Источник описывает часть системы, генерирующую сообщение. Источники — это способ разделения различных сообщений, чтобы пользователю было проще анализировать журналы. -[.programlisting] -.... -# configuration file for newsyslog -# $FreeBSD$ -# -# filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num] -/var/log/cron 600 3 100 * Z -/var/log/amd.log 644 7 100 * Z -/var/log/kerberos.log 644 7 100 * Z -/var/log/lpd-errs 644 7 100 * Z -/var/log/maillog 644 7 * @T00 Z -/var/log/sendmail.st 644 10 * 168 B -/var/log/messages 644 5 100 * Z -/var/log/all.log 600 7 * @T00 Z -/var/log/slip.log 600 3 100 * Z -/var/log/ppp.log 600 3 100 * Z -/var/log/security 600 10 100 * Z -/var/log/wtmp 644 3 * @01T05 B -/var/log/daily.log 640 7 * @T00 Z -/var/log/weekly.log 640 5 1 $W6D0 Z -/var/log/monthly.log 640 12 * $M1D0 Z -/var/log/console.log 640 5 100 * Z -.... - -За дополнительной информацией обращайтесь к man:newsyslog[8]. +.Источники системных журналов (syslog) +[options="header", cols="1,1"] +|=== +| Имя | Описание -[[configtuning-sysctlconf]] -=== [.filename]#sysctl.conf# +| auth +| Система авторизации: man:login[1], man:su[1], man:getty[8] и т.д. -[.filename]#sysctl.conf# очень похож на [.filename]#rc.conf#. Значения устанавливаются в виде `variable=value`. Указанные значения устанавливаются после перевода системы в многопользовательский режим. Однако не все переменные могут быть установлены в этом режиме. +| authpriv +| То же, что и auth, но записывается в файл, доступный только для чтения root. -Пример [.filename]#sysctl.conf#, настроенного для выключения протоколирования фатальных ошибок программ и разрешения Linux-программам определять, что они запускаются под FreeBSD: +| console +| Сообщения, записываемые драйвером вывода консоли ядра в [.filename]#/dev/console#. -[.programlisting] -.... -kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11) -compat.linux.osname=FreeBSD -compat.linux.osrelease=4.3-STABLE -.... +| cron +| Сообщения, записываемые демоном man:cron[8]. -[[configtuning-sysctl]] -== Настройка с помощью sysctl +| daemon +| Системные демоны, такие как man:routed[8], которые не предусмотрены явно другими средствами. -man:sysctl[8] - это интерфейс, позволяющий вам вносить изменения в работающую систему FreeBSD. Эти изменения касаются многих опций стека TCP/IP и виртуальной памяти; опытный системный администратор может использовать их для существенного увеличения производительности. Более пяти тысяч системных переменных могут быть прочитаны и записаны с помощью man:sysctl[8]. +| ftp +| Демоны протокола передачи файлов: man:ftpd[8], man:tftpd[8]. -По своей сути, man:sysctl[8] выполняет две функции: чтение и изменение настроек системы. +| kern +| Сообщения, генерируемые ядром. Они не могут быть созданы какими-либо пользовательскими процессами. -Для просмотра всех доступных для чтения переменных: +| lpr +| Система буферизации принтеров: man:lpr[1], man:lpc[8], man:lpd[8] и т.д. -[source,shell] -.... -% sysctl -a -.... +| mail +| Почтовая система. -Чтобы прочитать определённую переменную, например, `kern.maxproc`, введите: +| mark +| Этот механизм добавляет запись каждые 20 минут. -[source,shell] -.... -% sysctl kern.maxproc -kern.maxproc: 1044 -.... +| news +| Система сетевых новостей. -Для присвоения значения переменной, используйте выражение вида _переменная_=_значение_: +| ntp +| Система протокола сетевого времени. -[source,shell] -.... -# sysctl kern.maxfiles=5000 -kern.maxfiles: 2088 -> 5000 -.... +| security +| Подсистемы безопасности, такие как man:ipfw[4]. -Изменяемые с помощью sysctl переменные обычно принимают значения либо строкового, либо целого, либо булевого типа. Переменные булевого типа могут принимать два значения (`1` (истина) и `0` (ложь)). +| syslog +| Сообщения, генерируемые внутренне syslogd(8). -Если вы хотите устанавливать некоторые переменные автоматически при каждой загрузке компьютера, добавьте их в файл [.filename]#/etc/sysctl.conf#. За дополнительной информацией обращайтесь к странице справочника man:sysctl.conf[5] и к <<configtuning-sysctlconf>>. +| user +| Сообщения, генерируемые случайными пользовательскими процессами. *Это идентификатор источника по умолчанию, если не указан другой*. -[[sysctl-readonly]] -=== Переменные man:sysctl[8] только для чтения +| uucp +| Система Unix-to-Unix Copy. Устаревший протокол. Очень странно видеть сообщения от этого сервиса. -В некоторых случаях желательно изменить переменные man:sysctl[8] только для чтения. Иногда другого способа решить проблему нет; при этом, результат может быть достигнут только на этапе начальной загрузки. +| от `local0`до `local7` +| Зарезервировано для локального использования. -Например, на некоторых моделях лэптопов диапазон памяти устройства man:cardbus[4] не определяется и выдается приблизительно такая ошибка: +|=== -[source,shell] -.... -cbb0: Could not map register memory -device_probe_and_attach: cbb0 attach returned 12 -.... +[[logging-levels]] +=== Уровни журналирования -Ситуации, похожие на эту, требуют изменения некоторых значений man:sysctl[8], модификация которых запрещена. Для разрешения этой ситуации пользователь может поместить man:sysctl[8] "OID" в файл [.filename]#/boot/loader.conf#. Значения по умолчанию хранятся в файле [.filename]#/boot/defaults/loader.conf#. +Уровень описывает степень важности сообщения и является ключевым словом из следующего упорядоченного списка (от высшего к низшему): -Решение проблемы, приведенной выше, потребует помещения строки `hw.pci.allow_unsupported_io_range=1` в вышеупомянутый файл. Теперь man:cardbus[4] будет работать нормально. +.Уровни в syslog +[options="header", cols="1,1"] +|=== +| Имя | Описание -[[configtuning-disk]] -== Оптимизация дисков +| emerg +| Паника. Обычно это сообщение рассылается всем пользователям. -=== Переменные Sysctl +| alert +| Условие, которое должно быть немедленно исправлено, например, повреждение системной базы данных. -==== `vfs.vmiodirenable` +| crit +| Критические условия, например, аппаратные ошибки устройств. -Значением переменной `vfs.vmiodirenable` может быть установлено в 0 (выключено) или 1 (включено); по умолчанию 1. Эта переменная отвечает за метод кэширования каталогов. Размер большинства каталогов невелик. Они могут поместиться в одном фрагменте (обычно 1K), и могут занимать ещё меньше места (обычно 512 байт) в кэше буфера. При отключении этой переменной (при установке значения 0) буфер прокэширует только заданное число каталогов даже если у вас много памяти. При включении (при установке значения 1) эта переменная sysctl позволит использовать страничное кэширование VM, делая доступным для кэширования каталогов весь объём памяти. Однако, минимальный объём памяти, используемой для кэширования каталогов стал равен объёму страницы (обычно 4 K) вместо 512 байт. Мы рекомендуем оставлять эту опцию включенной, если ваш компьютер исполняет программы, манипулирующие значительным количеством файлов. Примером таких программ могут быть кэширующие прокси-серверы, большие почтовые серверы и серверы новостей. Обычно включение этой опции не понижает производительности, однако лучше поэкспериментировать, чтобы узнать оптимальное значение для вашей машины. +| err +| Ошибки. -==== `vfs.write_behind` +| warning +| Предупреждающие сообщения. -Переменная sysctl `vfs.write_behind` по умолчанию установлена в `1` (включено). Она указывает системе выполнять запись на носитель по кластерам, что обычно делается для больших файлов. Идея в том, чтобы избежать заполнения кэша неполными буферами, когда это не увеличивает производительность. Однако, это может заблокировать процессы и в некоторых случаях вам может понадобиться отключить этот параметр. +| notice +| Условия, которые не являются ошибочными, но, возможно, требуют специальной обработки. -==== `vfs.hirunningspace` +| info +| Информационные сообщения. -Переменная sysctl `vfs.hirunningspace` определяет число запросов записи на диск, которые могут быть поставлены в очередь. Значение по умолчанию обычно подходит, но на компьютерах с большим количеством дисков вы можете увеличить его до четырех или пяти _мегабайт_. Учтите, что установка слишком большого значения (превышающего размер буфера записи) может привести к очень значительному падению общей производительности. Не делайте это значение произвольно большим! Большие значения могут привести к задержкам чтения, выполняемого в то же время +| debug +| Сообщения, содержащие информацию, которая обычно полезна только при отладке программы. -Есть много других переменных sysctl, относящихся к кэшированию в буфер и страничному кэшированию VM. Мы не рекомендуем изменять эти значения, поскольку система VM делает отличную работу по автоматической самонастройке. +| none +| Этот специальный уровень отключает определённую функцию. -==== `vm.swap_idle_enabled` +|=== -Переменная sysctl `vm.swap_idle_enabled` полезна в больших многопользовательских системах, где есть много пользователей, входящих и выходящих из системы, и множество ожидающих процессов. Такие системы обычно генерируют большое количество запросов на выделение памяти. Включение этой переменной и настройка задержки выгрузки (swapout hysteresis, в секундах) установкой переменных `vm.swap_idle_threshold1` и `vm.swap_idle_threshold2` позволит освобождать страницы памяти, занятые ожидающими процессами, более быстро, чем при нормальном алгоритме выгрузки. Это помогает даемону выгрузки страниц. Не включайте этот параметр, пока он на самом деле вам не понадобится, поскольку его действие в сущности заключается в более ранней выгрузке страниц из памяти; это повышает нагрузку на подкачку и диск. В малых системах эффект от включения этого параметра предсказуем, но в больших системах нагруженной на подкачкой этот параметр позволяет системе VM проще загружать и выгружать процессы из памяти. +[[read-log-messages]] +=== Как читать сообщения журналов -==== `hw.ata.wc` +По умолчанию журнальные файлы FreeBSD используют формат link:https://datatracker.ietf.org/doc/html/rfc3164[rfc3164], также известный как протокол BSD syslog. Подробнее о других форматах и их использовании можно узнать в man:syslog[8]. -Во FreeBSD 4.3 кэширование записи на IDE диски было отключено. Это понижало производительность IDE дисков в тестах, но было необходимо для лучшей сохранности данных. Проблема состоит в том, что IDE диски неправильно указывают время завершения записи на диск. При включенном кэшировании IDE диски могут не только записать данные в неправильном порядке - при большой нагрузке на диск некоторые блоки могут задержаться до бесконечности. Сбой, или отключение питания могут могут стать причиной серьёзных повреждений в файловой системе. Поэтому для безопасности системы значение по умолчанию этого параметра было изменено. К сожалению, результатом этого стало столь значительная потеря производительности, что после выхода релиза значение этого параметра было возвращено в первоначальное состояние. Вам следует проверить значение переменной sysctl `hw.ata.wc` на вашей машине. Если кэширование выключено - вы можете включить его, установив значение переменной ядра, равное 1. Это должно быть сделано при помощи загрузчика при загрузке. Если вы сделаете это позже - изменения не будут иметь силы. +Обычно журналы имеют следующий синтаксис: -За более подробной информацией обращайтесь к man:ata[4]. +[.programlisting] +.... +date time hostname program[pid]: the message +.... -==== `SCSI_DELAY` (`kern.cam.scsi_delay`) +В качестве примера будет использоваться вывод файла [.filename]#/var/log/cron#: -Параметр настройки ядра `SCSI_DELAY` может использоваться для уменьшения времени загрузки системы. Значение по умолчанию велико и может составлять более `15` секунд в процессе загрузки. Уменьшение его до `5` секунд обычно работает (особенно с современными дисками). В новых версиях FreeBSD (5.0 и выше) должен использоваться параметр `kern.cam.scsi_delay`, настраиваемый во время загрузки. Этот параметр и параметр настройки ядра принимают значения в _миллисекундах_, а _не_ в _секундах_. +[.programlisting] +.... +[...] +Jul 16 12:40:00 FreeBSD /usr/sbin/cron[81519]: (root) CMD (/usr/libexec/atrun) +Jul 16 12:44:00 FreeBSD /usr/sbin/cron[83072]: (operator) CMD (/usr/libexec/save-entropy) +[...] +.... + +Подробное журналирование, при котором к каждому сообщению добавляются данные о facility и level, можно включить в man:syslog[8], выполнив следующую команду: -[[soft-updates]] -=== Soft Updates +[source, shell] +.... +# sysrc syslogd_flags="-vv" +.... -Программа man:tunefs[8] используется для настройки файловой системы. Эта программа может принимать большое количество параметров, но мы рассмотрим лишь один из них - включение и выключение Soft Updates, что может быть достигнуто следующим образом: +После активации функции источник и уровень будут отображаться в журнале, как показано в следующем примере: -[source,shell] +[.programlisting] .... -# tunefs -n enable /filesystem -# tunefs -n disable /filesystem +[...] +Jul 16 17:40:00 <cron.info> FreeBSD /usr/sbin/cron[1016]: (root) CMD (/usr/libexec/atrun) +Jul 16 17:44:00 <cron.info> FreeBSD /usr/sbin/cron[1030]: (operator) CMD (/usr/libexec/save-entropy) +[...] .... -Нельзя изменять файловую систему с помощью man:tunefs[8] когда она смонтирована. Самое подходящее время для включения "Soft Updates" - перед монтированием разделов, в однопользовательском режиме. +=== Управление журналами и их ротация -Soft Updates существенно увеличивают скорость создания и удаления файлов путём использования кэширования. Мы рекомендуем использовать Soft Updates на всех ваших файловых системах. Однако у Soft Updates есть и обратные стороны: во-первых, Soft Updates гарантирует целостность файловой системы в случае сбоя, но может наблюдаться задержка в несколько секунд (или даже минуту!) перед записью на жесткий диск. Если система зависнет - вы можете потерять больше, чем, если бы вы не включили Soft Updates. Во-вторых, Soft Updates задерживает освобождение блоков файловой системы. Если ваша файловая система заполнена, выполнение значительного обновления, например, `make installworld`, может вызвать переполнение. +Файлы журналов могут быстро увеличиваться в размере, занимая место на диске и затрудняя поиск полезной информации. -==== Дополнительная информация о Soft Updates +В FreeBSD для управления файлами журналов и предотвращения этой проблемы используется man:newsyslog[8]. -Есть два традиционных способа записи метаданных файловых систем на диск (пример метаданных: индексные дескрипторы и каталоги). +Эта встроенная программа периодически выполняет ротацию и сжатие файлов журналов, а также при необходимости создает отсутствующие файлы журналов и отправляет сигналы программам при перемещении файлов журналов. -Исторически, поведение по умолчанию заключается в синхронном обновлении метаданных. Если каталог был изменен, система ждет, пока изменение не будет физически записано на диск. Содержимое файлов проходит через кэш и записывается на диск асинхронно. Преимущество этого способа в его надежности. При сбое во время обновления метаданные остаются в нормальном состоянии. Файл либо создается целиком, либо вообще не создается. Если блоки данных не были записаны в файл из буфера во время сбоя, man:fsck[8] сможет определить это и восстановить файловую систему, установив длину файла в 0. Кроме того, реализация этого способа проста и понятна. Недостаток в том, что обновление метаданных занимает много времени. Команда `rm -r`, например, последовательно удаляет все файлы в каталоге, и каждое изменение в каталоге (удаление файла) будет синхронно записано на диск. Сюда включаются обновления самого каталога, таблицы индексных дескрипторов, и возможно блоков, занятых файлом. Те же соглашения работают при распаковке больших иерархий (`tar -x`). +[NOTE] +==== +Поскольку newsyslog запускается через man:cron[8], он не может выполнять ротацию файлов чаще, чем запланировано в man:cron[8]. В стандартной конфигурации он запускается каждый час. +==== -Другой вариант это асинхронное обновление метаданных. Это поведение по умолчанию для Linux/ext2fs и *BSD ufs с параметром `mount -o async`. Все обновления метаданных просто пропускаются через кэш буфера, как и содержимое файлов. Преимущество этой реализации в том, что нет необходимости ждать каждый раз, пока метаданные будут записаны на диск, поэтому все операции с большим объемом обновления метаданных будут происходить гораздо быстрее, чем при синхронном обновлении. Кроме того, реализация все еще проста и понятна, поэтому риск появления ошибок в коде невелик. Недостаток в том, что нет никаких гарантий исправности файловой системы. Если во время обновления большого объема метаданных произойдет сбой (например, отключение питания, или нажатие кнопки reset), файловая система останется в непредсказуемом состоянии. Нет возможности определить состояние файловой системы после такого сбоя; блоки данных файла могут быть уже записаны на диск, а обновления таблицы индексных дескрипторов нет. Невозможно реализовать `fsck`, которая могла бы исправить получившийся хаос (поскольку необходимой информации нет на диске). Если файловая система была уничтожена во время восстановления, единственный способ восстановления - запустить man:newfs[8] и воспользоваться резервной копией. +Вот стандартная конфигурация в FreeBSD, подробнее можно узнать в man:newsyslog.conf[5]: -Обычное решение этой проблемы состояло в реализации _протоколировании проблемной области (dirty region logging)_, известном как _журналирование_, хотя этот термин использовался неправильно и порой также применялся к другим формам протоколирования транзакций. Обновление метаданных как и прежде происходит синхронно, но в отдельную область диска. Позже они перемещаются туда, где должны быть. Поскольку область протоколирования это небольшая, последовательная область диска, головкам жесткого диска не приходится перемещаться на большие расстояния даже во время значительных обновлений, поэтому такой способ быстрее, чем синхронные обновления. Кроме того, сложность реализации довольно ограничена, поэтому риск внесения ошибок невелик. Недостаток в том, что все обновления метаданных записываются дважды (один раз в область протоколирования и один раз окончательно), поэтому при обычной работе производительность может понизиться. С другой стороны, в случае сбоя все незаконченные действия с метаданными могут быть быстро отменены, или завершены после загрузки системы, поэтому система после сбоя загружается быстрее. +[.programlisting] +.... +# configuration file for newsyslog +# +# Entries which do not specify the '/pid_file' field will cause the +# syslogd process to be signalled when that log file is rotated. This +# action is only appropriate for log files which are written to by the +# syslogd process (ie, files listed in /etc/syslog.conf). If there +# is no process which needs to be signalled when a given log file is +# rotated, then the entry for that file should include the 'N' flag. +# +# Note: some sites will want to select more restrictive protections than the +# defaults. In particular, it may be desirable to switch many of the 644 +# entries to 640 or 600. For example, some sites will consider the +# contents of maillog, messages, and lpd-errs to be confidential. In the +# future, these defaults may change to more conservative ones. +# +# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] +/var/log/all.log 600 7 * @T00 J +/var/log/auth.log 600 7 1000 @0101T JC +/var/log/console.log 600 5 1000 * J +/var/log/cron 600 3 1000 * JC +/var/log/daily.log 640 7 * @T00 JN +/var/log/debug.log 600 7 1000 * JC +/var/log/init.log 644 3 1000 * J +/var/log/kerberos.log 600 7 1000 * J +/var/log/maillog 640 7 * @T00 JC +/var/log/messages 644 5 1000 @0101T JC +/var/log/monthly.log 640 12 * $M1D0 JN +/var/log/devd.log 644 3 1000 * JC +/var/log/security 600 10 1000 * JC +/var/log/utx.log 644 3 * @01T05 B +/var/log/weekly.log 640 5 * $W6D0 JN +/var/log/daemon.log 644 5 1000 @0101T JC + +<include> /etc/newsyslog.conf.d/[!.]*.conf +<include> /usr/local/etc/newsyslog.conf.d/[!.]*.conf +.... + +. `logfilename` - Имя файла системного журнала, предназначенного для архивирования. +. `[owner:group]` - Это необязательное поле указывает владельца и группу для архивируемого файла. +. `mode` - Указывает режим доступа к файлу журнала и архивам. Допустимые биты режима - 0666. (То есть, права на чтение и запись для ротированного журнала могут быть заданы для владельца, группы и остальных пользователей.) +. `count` - Указывает максимальное количество архивных файлов, которые могут существовать. +. `size` — Когда размер файла журнала достигает указанного размера в килобайтах, файл журнала будет обрезан, как описано выше. Если в этом поле указана звёздочка ('*'), файл журнала не будет обрезаться по размеру. +. `when` - Может состоять из интервала, конкретного времени или обоих вариантов. Поддерживаемые опции описаны в man:newsyslog.conf[5]. +. `flags` - Указывает флаги, которые принимает newsyslog, поддерживаемые опции описаны в man:newsyslog.conf[5]. +. `[/pid_file]` - Это необязательное поле указывает имя файла, содержащего идентификатор процесса (PID) демона или идентификатор группы процессов. +. `[sig_num]` - Это необязательное поле указывает сигнал, который будет отправлен процессу демона. -Kirk McKusick, разработчик Berkeley FFS, решил эту проблему с помощью Soft Updates: все незавершенные обновления метаданных находятся в памяти и записываются на диск в упорядоченном виде ("упорядоченное обновления метаданных"). При значительных обновлениях метаданных более поздние обновления "присоединяются" к предыдущим, если они все еще находятся в памяти и еще не записаны на диск. Поэтому все операции, скажем, над каталогом, обычно выполняются в памяти перед записью обновления на диск (блоки данных сортируются в соответствии с их положением, так что они не будут записаны на диск до метаданных. При крахе операционной системы выполняется "откат": считается, что все операции, не записанные на диск, никогда не происходили. Файловая система находится в том состоянии, в котором она была за 30-60 секунд до сбоя. Используемый алгоритм гарантирует, что все используемые ресурсы маркированы соответствующим образом в своих областях: блоки и индексные дескрипторы. После сбоя могут остаться только ошибки выделения ресурсов, они помечаются как "используемые", хотя на самом деле "свободны". man:fsck[8] разбирается в ситуации и освобождает более не используемые ресурсы. После сбоя система может быть безопасно смонтирована с опцией `mount -f`. Для освобождения ресурсов, которые могут не использоваться, в дальнейшем потребуется запустить man:fsck[8]. Эта идея лежит в основе _background (фоновая) fsck_: во время запуска системы записывается только _снимок_ файловой системы. Все системы могут быть смонтированы в "грязном" состоянии, и система загружается в многопользовательский режим. Затем, фоновые `fsck` ставятся в очередь для всех систем, где это требуется, чтобы освободить неиспользуемые ресурсы. (Файловые системы, где не используются Soft Updates, все еще требуют запуска `fsck` в обычном режиме). +[NOTE] +==== +Последние два поля необязательны и указывают имя файла ID процесса (PID) и номер сигнала, который будет отправлен этому процессу при ротации файла. +==== -Преимущество этого способа в том, что обновления метаданных происходят почти так же быстро, как при асинхронных обновлениях (т.е. быстрее, чем при _журналировании_, когда метаданные записываются дважды). Недостаток в сложности кода (подразумевающим больший риск появления ошибок в области, где вероятность потери данных пользователя особенно высока) и в более высоких требованиях к объему памяти. К тому же могут возникнуть некоторые странные на первый взгляд ситуации. После сбоя состояние файловой системы несколько более "старое". В ситуации, когда стандартный способ синхронизации оставит несколько файлов нулевой длины после выполнения `fsck`, в файловой системе с Soft Updates их не останется вовсе, поскольку ни метаданные, ни содержимое файлов не были записаны на диск. Дисковое пространство не будет освобождено пока обновления не будут записаны на диск, что может занять некоторое время после выполнения `rm`. Это может повлечь проблемы при установке большого количества файлов на файловую систему, где не хватает места для помещения всех файлов дважды. +[[network-syslogd]] +=== Настройка удаленного журналирования -[[configtuning-kernel-limits]] -== Изменение ограничений, накладываемых ядром +Мониторинг журналов событий на нескольких хостах может стать громоздким по мере увеличения количества систем. Настройка централизованного журналирования позволяет снизить нагрузку на администратора при управлении журналами. -[[file-process-limits]] -=== Ограничения на Файлы/Процессы +В FreeBSD централизованная агрегация, объединение и ротация файлов журналов могут быть настроены с помощью `syslogd` и `newsyslog`. -[[kern-maxfiles]] -==== `kern.maxfiles` +В этом разделе приведен пример конфигурации, в которой хост `A` с именем `logserv.example.com` будет собирать информацию журналирования для локальной сети. -Значение `kern.maxfiles` может быть увеличено или уменьшено в зависимости от потребностей вашей системы. Эта переменная определяет максимальное число дескрипторов файлов. Когда таблица дескрипторов файлов полна, в очереди системных сообщений появится сообщение `file: table is full`. Это сообщение может быть прочитано с помощью команды `dmesg`. +Узел `B` с именем `logclient.example.com` будет настроен для передачи информации журналирования на сервер журналирования. -Каждый открытый файл, сокет или буфер использует дескриптор файла. Широкомасштабному серверу может понадобиться много тысяч дескрипторов файлов, в зависимости от количества программ, одновременно выполняемых на сервере. +==== Конфигурация сервера журналов -Стандартное значение `kern.maxfile` определяется переменной `maxusers` в вашем файле конфигурации ядра. Значение `kern.maxfiles` увеличивается пропорционально значению `maxusers`. При компилировании ядра, нужно установить эту переменную согласно потребностям вашей системы. Исходя из значения этой переменной, ядро устанавливает значения большинства предопределённых переменных. Даже если предполагается, что к компьютеру не будут одновременно подсоединяться 256 пользователей, требуемые ресурсы могут быть такими же, как у крупномасштабного сервера. +Сервер журналов — это система, настроенная для приёма информации журналирования с других узлов. -Система автоматически настроит `maxusers`, если вы явно установите его в `0`. Если вы желаете выставить значение самостоятельно, то задайте `maxusers` по меньшей мере равным 4, особенно если вы используйте X Window System или компилируйте программное обеспечение. Причина в том, что самая значимая таблица, устанавливаемая `maxusers` - это максимальное количество процессов, которая устанавливается равным `20 + 16 * maxusers`, и поэтому, если вы установите `maxusers` в 1, то вы сможете иметь только 36 одновременных процессов, включая 18 или около того, что система запустит во время загрузки и 15 или около того, что вы создадите при запуске X Window System. Даже простая задача, как чтение страницы справочника породит 9 процессов для фильтрации, декомпрессии и её просмотра. Установка `maxusers` в 64 позволит иметь вам до 1044 одновременных процессов, чего должно быть достаточно примерно для всех использований. Если, тем не менее, вы увидите пугающую ошибку при попытке запуска другой программы, или вы используйте сервер с большим количеством одновременных пользователей (как `ftp.FreeBSD.org`), то вы всегда можете увеличить значение и пересобрать систему. +Перед настройкой сервера журналов проверьте следующее: -[NOTE] -==== -`maxusers` _не_ ограничивает количество пользователей, которые могут заходить на вашу машину. Оно просто устанавливает различные размеры таблиц в разумные значения, учитывая максимальное количество пользователей, вы вероятно будете иметь на вашей системе и как много процессов каждый из них сможет запускать. Ключевое слово, которое ограничивает количество одновременных удаленных входов и терминальных X окон - это crossref:kernelconfig[kernelconfig-ptys,`pseudo-device pty 16`]. С FreeBSD 5.X вам не надо беспокоиться об этом значении, так как man:pty[4] драйвер является "автоматически клонирующим"; вы просто используйте `device pty` в вашем конфигурационном файле. +* Если между сервером журналирования и клиентами журналирования есть межсетевой экран, убедитесь, что набор правил межсетевого экрана разрешает UDP-порт 514 как для клиентов, так и для сервера. +* Сервер журналирования и все клиентские машины должны иметь прямые и обратные записи в локальной DNS. Если в сети нет DNS-сервера, создайте записи в файле [.filename]#/etc/hosts# каждой системы. Корректное разрешение имен необходимо для того, чтобы записи журналов не отклонялись сервером журналирования. + +На сервере журналов отредактируйте файл [.filename]#/etc/syslog.conf#, указав имя клиента, от которого будут приниматься записи журнала, используемое средство ведения журнала и имя файла для хранения записей журнала данного хоста. В этом примере добавляется имя хоста `B`, регистрируются все средства и записи журнала сохраняются в файле [.filename]#/var/log/logclient.log#. + +.Пример конфигурации сервера журналов +[example] ==== -==== `kern.ipc.somaxconn` +[.programlisting] +.... ++logclient.example.com +*.* /var/log/logclient.log +.... -Переменная sysctl `kern.ipc.somaxconn` ограничивает размер очереди для приема новых TCP соединений. Значение по умолчанию `128` слишком мало для надежной обработки новых соединений для нагруженного web сервера. Для такого сервера рекомендуется увеличить это значение до `1024` или выше. Даемон сервиса может сам ограничивать очередь приема новых соединений (например, man:sendmail[8], или Apache), но обычно в файле настройки даемона есть директива для настройки длины очереди. Более длинная очередь также помогает избежать атак Denial of Service (). +==== + +При добавлении нескольких клиентов для журналирования добавьте аналогичную запись из двух строк для каждого клиента. Дополнительную информацию о доступных средствах можно найти в man:syslog.conf[5]. -[[nmbclusters]] -=== Сетевые Ограничения +Далее выполните следующие команды: -Опция ядра `NMBCLUSTERS` обуславливает количество Mbuf, доступных на машине. На сервере с большим трафиком и маленьким Mbuf производительность будет пониженной. Каждый кластер представлен двумя килобайтами памяти, поэтому значение 1024 означает 2 мегабайта памяти ядра, зарезервированной для сетевых буферов. Для определения оптимального значения необходимо провести простые вычисления. Если у вас веб сервер, который может обслуживать 1000 одновременных соединений, и каждое соединение "съедает" 16 K буфера приема и 16 K буфера отправки, вам потребуется 32 MB памяти под буферы. Хорошее правило - умножение этого значения на 2, 2x32 MB / 2 KB = 64 MB / 2 kB = 32768. Мы рекомендуем значения между 4096 и 32768 для машин с большим объемом памяти. Не указывайте произвольно большое значение параметра, это может привести к падению системы при загрузке. Используйте man:netstat[1] с опцией `-m` для определения количества используемых сетевых кластеров. +[source, shell] +.... +# sysrc syslogd_enable="YES" +# sysrc syslogd_flags="-a logclient.example.com -v -v" +.... -Для настройки в процессе загрузки используйте в loader переменную `kern.ipc.nmbclusters`. Только в старых версиях FreeBSD потребуется пересобрать ядро (man:config[8]) с измененным параметром `NMBCLUSTERS`. +Первый параметр запускает syslogd при загрузке системы. Второй параметр разрешает записи журналов от указанного клиента. Опция `-v -v` увеличивает подробность записываемых сообщений. Это полезно для настройки категорий, так как администраторы могут видеть, какие типы сообщений записываются в каждой категории. -Для нагруженных серверов, интенсивно использующих системный вызов man:sendfile[2], может потребоваться увеличения буферов man:sendfile[2] с помощью параметра конфигурации ядра `NSFBUFS`, или изменения значения путем установки переменной в [.filename]#/boot/loader.conf# (обратитесь к man:loader[8] за подробностями). Общий признак того, что параметр требуется изменить - состояние процессов `sfbufa`. Переменная sysctl `kern.ipc.nsfbufs` установлена только для чтения. Этот параметр увеличивается вместе с `kern.maxusers`, хотя может потребоваться увеличить его отдельно. +Можно указать несколько параметров `-a`, чтобы разрешить ведение журнала от нескольких клиентов. Также можно указывать IP-адреса и целые сетевые блоки. Полный список возможных параметров приведён в man:syslogd[8]. -[IMPORTANT] -==== -Даже если сокет помечен как неблокирующий, вызов man:sendfile[2] на неблокирующем сокете может вызвать блокирование man:sendfile[2], пока не станет доступным достаточное количество `struct sf_buf`. -==== +Наконец, создайте файл журнала: -==== `net.inet.ip.portrange.*` +[source, shell] +.... +# touch /var/log/logclient.log +.... -Переменные sysctl `net.inet.ip.portrange.*` контролируют диапазоны номеров портов, автоматически привязываемых к TCP и UDP сокетам. Есть три диапазона: нижний диапазон, диапазон по умолчанию и верхний диапазон. Большинство сетевых программ используют диапазон по умолчанию, контролируемый `net.inet.ip.portrange.first` и `net.inet.ip.portrange.last`, установленными соответственно в 1024 и 5000. Диапазоны портов привязки используются для исходящих соединений и при некоторых условиях портов может не хватить. Это чаще всего происходит на сильно загруженном прокси сервере. Диапазон портов не становится проблемой при работе серверов, которые обрабатывают в основном входящие соединения, или с небольшим количеством исходящих соединений, например mail relay. Для ситуаций, когда возможен недостаток портов, рекомендуется немного увеличить `net.inet.ip.portrange.last`. Может подойти значение `10000`, `20000`, или `30000`. Учтите также возможное влияние брандмауэра при изменении диапазона портов. Некоторые могут блокировать большие диапазоны портов (обычно с небольшими номерами) и вынуждают использовать более высокие диапазоны для исходящих соединений. По этой причине не рекомендуется уменьшать значение `net.inet.ip.portrange.first`. +На этом этапе следует перезапустить и проверить syslogd: -==== TCP Bandwidth Delay Product +[source, shell] +.... +# service syslogd restart +# pgrep syslog +.... -TCP Bandwidth Delay Product Limiting похоже на TCP/Vegas в NetBSD. Оно может быть включено установкой переменной sysctl `net.inet.tcp.inflight.enable` в `1`. Система попытается вычислить задержку пакетов для каждого соединения и ограничить объем данных в очереди сети до значения, требуемого для поддержания оптимальной пропускной способности. +Если возвращен PID, сервер успешно перезапущен, и можно приступать к настройке клиента. Если сервер не перезапустился, проверьте ошибку в [.filename]#/var/log/messages#. -Эта возможность полезна при передаче данных через модемы, Gigabit Ethernet, или даже через высокоскоростные WAN соединения (или любые другие соединения с большой задержкой передачи), особенно если вы также используете изменение размера окна или настроили большое окно передачи. Если вы включили этот параметр, убедитесь также, что переменная `net.inet.tcp.inflight.debug` установлена в `0` (отладка выключена), а для использования в реальных задачах может понадобиться установка переменной `net.inet.tcp.inflight.min` к значению как минимум `6144`. Но учтите, что установка большого значения этой переменной может фактически отключить ограничение в зависимости от вида соединения. Ограничение уменьшает количество данных на определенном маршруте и управляет очередью пакетов, как и уменьшает общее количество данных в очереди локального интерфейса хоста. С меньшим количеством пакетов в очереди двусторонние интерактивные соединения, особенно на медленных линиях, могут проходить быстрее. Но имейте ввиду, что эта функция работает только при передаче данных (передача данных / сторона сервера). Она не работает при получении данных (загрузке). +==== Конфигурация клиента журналирования -Изменение значения переменной `net.inet.tcp.inflight.stab` _не_ рекомендуется. Этот параметр по умолчанию равен 20, что означает добавление 2 пакетов к вычислению задержки передачи. Дополнительное окно требуется для стабилизации алгоритма и улучшения ответной реакции на изменение условий, но также приводит к большему времени ping на медленных соединениях (задержка все же гораздо меньше, чем без алгоритма inflight). Вы можете попробовать уменьшить этот параметр до 15, 10 или 5; а также уменьшить `net.inet.tcp.inflight.min` (например, до 3500) для получения желаемого эффекта. Уменьшение значений этих параметров может использоваться только как крайняя мера. +Клиент системы журналирования отправляет записи журналов на сервер журналирования в сети. Клиент также сохраняет локальную копию своих собственных журналов. -=== Виртуальная память +После настройки сервера журналирования выполните следующие команды на клиенте журналирования: -==== `kern.maxvnodes` +[source, shell] +.... +# sysrc syslogd_enable="YES" +# sysrc syslogd_flags="-s -v -v" +.... -Файлы и каталоги в ядре представлены при помощи vnode (виртуальных узлов). Увеличение их числа может помочь уменьшить нагрузку на дисковую подсистему. Как правило, специальной настройки это значение не требует, однако, в некоторых случаях дисковая активность является узким местом, и система исчерпывает таблицу vnode, значение этой переменной следует увеличить. При этом необходимо оценить объем неактивной и свободной памяти. +Первый параметр включает запуск syslogd при загрузке системы. Второй параметр запрещает получение журналов от других хостов (`-s`) и увеличивает детализацию записываемых сообщений. -Текущее количество использованных vnode можно посмотреть при помощи команды: +Затем определите сервер журналирования в файле [.filename]#/etc/syslog.conf# клиента. В этом примере все журналируемые источники отправляются на удалённую систему, обозначенную символом `@`, с указанным именем хоста: [.programlisting] .... -# sysctl vfs.numvnodes -vfs.numvnodes: 91349 +*.* @logserv.example.com .... -Максимальное количество vnode, доступных системе: +После сохранения изменений перезапустите syslogd, чтобы изменения вступили в силу: -[.programlisting] +[source, shell] .... -# sysctl kern.maxvnodes -kern.maxvnodes: 100000 +# service syslogd restart .... -Если количество использованных vnode близко к максимуму, значение переменной `kern.maxvnodes` следует увеличить на 1000. Следите за динамикой изменения `vfs.numvnodes`. Если оно увеличивается, приближаясь к вновь установленному максимуму, процесс следует повторить. Изменение в распределении памяти должно быть видно в выводе утилиты man:top[1]: больше памяти перейдет в разряд активной. +Для проверки отправки журнальных сообщений по сети используйте man:logger[1] на клиенте, чтобы отправить сообщение в syslogd: -[[adding-swap-space]] -== Увеличение объема подкачки +[source, shell] +.... +# logger "Test message from logclient" +.... -Вне зависимости от того, что вы планировали, иногда система ведет себя неожиданно. Если вам потребовался дополнительный объем подкачки, его довольно просто добавить. Есть три способа увеличения объема подкачки: добавить новый жесткий диск, включить подкачку по NFS, или создать файл подкачки на существующем разделе. +Это сообщение теперь должно присутствовать как в [.filename]#/var/log/messages# на клиенте, так и в [.filename]#/var/log/logclient.log# на сервере журналов. -За информацией о криптовании раздела подкачки обращайтесь к crossref:disks[swap-encrypting,Шифрование области подкачки] данного Руководства. +==== Отладка серверов журналов -[[new-drive-swap]] -=== Подкачка на новом жестком диске +Если на сервере журналов не поступают сообщения, скорее всего, причина в проблеме с сетевым подключением, разрешении имён или опечатке в конфигурационном файле. Чтобы выявить причину, убедитесь, что и сервер журналов, и клиент могут `ping` друг друга, используя имя хоста, указанное в их [.filename]#/etc/rc.conf#. Если это не удаётся, проверьте сетевые кабели, набор правил межсетевого экрана и записи имён хостов на DNS-сервере или в [.filename]#/etc/hosts# как на сервере журналов, так и на клиентах. Повторяйте проверки, пока `ping` не будет успешным с обоих хостов. -Лучший способ добавить подкачку, конечно, использовать еще один жесткий диск. Вы можете сделать это в любой момент. Если такой способ подходит, прочтите еще раз информацию по пространству подкачки в <<configtuning-initial>> Руководства, где рассказывается о наилучшем способе организации раздела подкачки. +Если команда `ping` выполняется успешно на обоих хостах, но сообщения журнала по-прежнему не поступают, временно увеличьте уровень детализации журналирования, чтобы сузить круг поиска проблемы в конфигурации. В следующем примере файл [.filename]#/var/log/logclient.log# на сервере журналирования пуст, а файл [.filename]#/var/log/messages# на клиенте журналирования не указывает на причину сбоя. -[[nfs-swap]] -=== Подкачка через NFS +Для увеличения уровня отладочной информации отредактируйте параметр `syslogd_flags` на сервере журналирования и выполните перезапуск: -Подкачка через NFS рекомендуется только в том случае, если в системе отсутствует жесткий диск; подкачка через NFS ограничена скоростью сетевого подключения и к тому же дополнительно нагружает NFS сервер. +[source, shell] +.... +sysrc syslogd_flags="-d -a logclient.example.com -v -v" +.... -[[create-swapfile]] -=== Файлы подкачки +[source, shell] +.... +# service syslogd restart +.... -Вы можете создать файл определенного размера и использовать его как файл подкачки. В нашем примере будет использован файл [.filename]#/usr/swap0# размером 64MB. Конечно, вы можете использовать любое имя. +На консоли сразу после перезагрузки появится отладочная информация, подобная следующей: -.Создание файла подкачки в FreeBSD -[example] -==== -. Убедитесь, что в файле настройки ядра присутствует драйвер виртуального диска (man:md[4]). Он есть в ядре [.filename]#GENERIC#. -+ [.programlisting] .... -device md # Memory "disks" +logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart +syslogd: restarted +logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel +Logging to FILE /var/log/messages +syslogd: kernel boot file is /boot/kernel/kernel +cvthname(192.168.1.10) +validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com; +rejected in rule 0 due to name mismatch. .... -. Создайте файл подкачки ([.filename]#/usr/swap0#): -+ -[source,shell] +В этом примере сообщения журнала отклоняются из-за опечатки, которая приводит к несоответствию имени хоста. Имя хоста клиента должно быть `logclient`, а не `logclien`. Исправьте опечатку, выполните перезапуск и проверьте результат: + +[source, shell] .... -# dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 +# service syslogd restart .... -. Установите подходящие права на ([.filename]#/usr/swap0#): -+ -[source,shell] +Вывод должен быть похож на следующий: + +[.programlisting] .... -# chmod 0600 /usr/swap0 +logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart +syslogd: restarted +logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel +syslogd: kernel boot file is /boot/kernel/kernel +logmsg: pri 166, flags 17, from logserv.example.com, +msg Dec 10 20:55:02 <syslog.err> logserv.example.com syslogd: exiting on signal 2 +cvthname(192.168.1.10) +validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com; +accepted in rule 0. +logmsg: pri 15, flags 0, from logclient.example.com, msg Dec 11 02:01:28 trhodes: Test message 2 +Logging to FILE /var/log/logclient.log +Logging to FILE /var/log/messages .... -. Включите файл подкачки в [.filename]#/etc/rc.conf#: -+ -[.programlisting] +На данном этапе сообщения правильно принимаются и помещаются в нужный файл. + +==== Безопасность + +Как и в случае с любой сетевой службой, перед внедрением сервера журналирования следует учитывать требования безопасности. Журналы могут содержать конфиденциальные данные о службах, включенных на локальном хосте, учетных записях пользователей и конфигурации. Данные, передаваемые по сети от клиента к серверу, не шифруются и не защищаются паролем. Если требуется шифрование, можно использовать package:security/stunnel[], который передает данные журналирования через зашифрованный туннель. + +Локальная безопасность также является важным вопросом. Журналы не шифруются ни во время использования, ни после ротации. Локальные пользователи могут получить доступ к файлам журналов для сбора дополнительной информации о конфигурации системы. Установка правильных разрешений для файлов журналов крайне важна. Встроенный ротатор журналов newsyslog поддерживает установку разрешений для вновь создаваемых и ротируемых файлов журналов. Установка режима `600` для файлов журналов должна предотвратить нежелательный доступ со стороны локальных пользователей. Дополнительную информацию можно найти в man:newsyslog.conf[5]. + +[[acpi-overview]] +== Управление питанием и ресурсами + +Важно эффективно использовать аппаратные ресурсы. Управление питанием и ресурсами позволяет операционной системе отслеживать системные ограничения и, возможно, выполнять некоторые действия, вызванные событиями, связанными с этими ограничениями. + +[[acpi-config]] +=== Конфигурация ACPI + +На FreeBSD управление этими ресурсами осуществляется с помощью устройства ядра man:acpi[4]. + +[NOTE] +==== +В FreeBSD драйвер man:acpi[4] загружается по умолчанию при загрузке системы. + +Этот драйвер *нельзя выгрузить после загрузки*, так как системная шина использует его для различных взаимодействий с оборудованием. +==== + +В дополнение к man:acpi[4], FreeBSD имеет несколько специализированных модулей ядра для различных подсистем ACPI от производителей. Эти модули добавляют дополнительную функциональность, такую как управление скоростью вентилятора, подсветкой клавиатуры или яркостью экрана. + +Список можно получить, выполнив следующую команду: + +[source, shell] .... -swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. +% ls /boot/kernel | grep acpi .... -. Перегрузите компьютер или для включения подкачки прямо сейчас введите: -+ -[source,shell] +Вывод должен быть похож на следующий: + +[.programlisting] .... -# mdconfig -a -t vnode -f /usr/swap0 -u 0 swapon /dev/md0 +acpi_asus.ko +acpi_asus_wmi.ko +acpi_dock.ko +acpi_fujitsu.ko +acpi_hp.ko +acpi_ibm.ko +acpi_panasonic.ko +acpi_sony.ko +acpi_toshiba.ko +acpi_video.ko +acpi_wmi.ko +sdhci_acpi.ko +uacpi.ko .... -==== +В случае, если используется ноутбук IBM/Lenovo, необходимо загрузить модуль man:acpi_ibm[4], выполнив следующую команду: -[[acpi-overview]] -== Управление питанием и ресурсами +[source, shell] +.... +# kldload acpi_ibm +.... + +И добавьте эту строку в [.filename]#/boot/loader.conf#, чтобы загружать модуль при запуске: -Очень важно использовать аппаратные ресурсы эффективно. До того, как появился ACPI, управление потреблением питания и температурными характеристиками системы было очень сложной для операционной системы задачей. Аппаратное обеспечение контролировалось одним из видов встроенного интерфейса BIOS, таким как: _Plug and Play BIOS (PNPBIOS)_, _Advanced Power Management (APM)_ и так далее. Управление питанием и ресурсами это один из ключевых компонентов современной операционной системы. Например, вам может потребоваться, чтобы операционная система следила за температурными ограничениями и возможно, предупреждала при неожиданном росте температуры. +[.programlisting] +.... +acpi_ibm_load="YES" +.... -В этом разделе Руководства FreeBSD, мы предоставим исчерпывающую информацию о ACPI. В конце раздела есть ссылки для дальнейшего чтения. +Альтернативой модулю man:acpi_video[4] является драйвер man:backlight[9]. Он предоставляет универсальный способ управления подсветкой экрана. Этот драйвер включён в стандартное ядро GENERIC. Утилита man:backlight[8] позволяет запрашивать и изменять яркость подсветки экрана. В этом примере яркость уменьшается на 10%: -[[acpi-intro]] -=== Что такое ACPI? +[source, shell] +.... +% backlight decr 10 +.... -Advanced Configuration and Power Interface (ACPI) это стандарт, написанный объединением поставщиков в целях предоставления стандартного интерфейса для аппаратных ресурсов и управления питанием (отсюда и название). Это ключевой элемент _Operating System-directed configuration and Power Management_, т.е.: он предоставляет операционной системе (OS) больше контроля и более универсален. Современные системы вышли за пределы ограничений существующих Plug and Play интерфейсов до появления ACPI. ACPI это прямой наследник APM (Advanced Power Management). +[[cpu-power-management]] +=== Управление питанием процессора -[[acpi-old-spec]] -=== Недостатки Advanced Power Management (APM) +`CPU` — это наиболее энергозатратная часть системы. Знание того, как повысить эффективность использования `CPU`, является важной частью нашей системы для экономии энергии. -Средства _Advanced Power Management (APM)_ управляют энергопотреблением системы в зависимости от нагрузки. APM BIOS предоставляется поставщиком системы и специфичен для данной аппаратной платформы. Драйвер APM в OS обеспечивает доступ к _APM Software Interface_, который позволяет управлять уровнями потребления питания. +Для правильного и эффективного использования ресурсов системы FreeBSD поддерживает такие технологии, как Intel Turbo Boost, AMD Turbo Core, Intel Speed Shift и другие, с помощью man:powerd[8] и man:cpufreq[4]. -В APM имеется четыре основных проблемы. Во-первых, управление энергопотреблением осуществляется через зависимый от поставщика BIOS, и OS ничего не знает нем. Один пример: когда пользователь устанавливает время ожидания для жесткого диска в APM BIOS, и это время истекает, BIOS останавливает жесткий диск без согласования с OS. Во-вторых, алгоритм APM встроен в BIOS, и все действия происходят вне контроля OS. Это означает, что пользователи могут решить проблемы с APM BIOS только путем перепрошивки его ROM; это очень опасная процедура, и если она завершится неудачно, система может оказаться в невосстановимом состоянии. В-третьих, реализация технологии APM зависит от поставщика, что означает дублирование усилий и если в BIOS одного из поставщиков будет найдена и исправлена ошибка, ее могли не исправить другие поставщики. Наконец, объем APM BIOS недостаточно велик для реализации сложной политики управления питанием, или такой политики, которая может хорошо адаптироваться к потребностям компьютера. +Первым шагом будет получение информации о процессоре с помощью выполнения следующей команды: -_Plug and Play BIOS (PNPBIOS)_ был неудобен во многих ситуациях. PNPBIOS это 16-битная технология, поэтому OS требовалось использовать 16-битную эмуляцию для "взаимодействия" с методами PNPBIOS. +[source, shell] +.... +% sysctl dev.cpu.0 <.> +.... -FreeBSD драйвер APM документирован в странице справочника man:apm[4]. +<.> В этом случае цифра `0` обозначает первое ядро процессора. -[[acpi-config]] -=== Настройка ACPI +Вывод должен быть похож на следующий: -man:loader[8] загружает драйвер [.filename]#acpi.ko# по умолчанию, его _не_ надо встраивать в ядро. Причина в том, что с модулями проще работать, например переключиться на другой [.filename]#acpi.ko# без пересборки ядра. Преимущество в упрощении тестирования. Другая причина в том, что запуск ACPI после старта системы не очень полезен и при некоторых условиях может приводить к краху. Если вы сомневаетесь, отключите ACPI совсем. Драйвер не должен и не может быть выгружен, поскольку системная шина используется для различных взаимодействий оборудования. ACPI может быть выключен с помощью утилиты man:acpiconf[8]. Фактически большинство взаимодействий с ACPI может быть выполнено через man:acpiconf[8]. В основном это означает, что если в выводе man:dmesg[8] есть что-то об ACPI, он скорее всего работает. +[.programlisting] +.... +dev.cpu.0.cx_method: C1/mwait/hwc C2/mwait/hwc C3/mwait/hwc/bma +dev.cpu.0.cx_usage_counters: 3507294 0 0 +dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 3804us +dev.cpu.0.cx_lowest: C3 <1> +dev.cpu.0.cx_supported: C1/1/1 C2/2/1 C3/3/57 <2> +dev.cpu.0.freq_levels: 2267/35000 2266/35000 1600/15000 800/12000 <3> +dev.cpu.0.freq: 1600 <4> +dev.cpu.0.temperature: 40.0C <5> +dev.cpu.0.coretemp.throttle_log: 0 +dev.cpu.0.coretemp.tjmax: 105.0C +dev.cpu.0.coretemp.resolution: 1 +dev.cpu.0.coretemp.delta: 65 +dev.cpu.0.%parent: acpi0 +dev.cpu.0.%pnpinfo: _HID=none _UID=0 _CID=none +dev.cpu.0.%location: handle=\_PR_.CPU0 +dev.cpu.0.%driver: cpu +dev.cpu.0.%desc: ACPI CPU +.... + +<1> Наименьшее состояние Cx, используемое для бездействия процессора. +<2> Поддерживаемые процессором состояния Cx. +<3> Доступные в настоящее время уровни для CPU (частота/потребление энергии). +<4> Текущая активная частота CPU в МГц. +<5> Текущая температура процессора. [NOTE] ==== -ACPI и APM не могут сосуществовать и должны использоваться раздельно. Каждый из них прервет загрузку, если обнаружит загруженный драйвер другого. +Если информация о температуре не отображается, загрузите модуль man:coretemp[4]. В случае использования процессора AMD загрузите модуль man:amdtemp[4]. ==== -В простейшей форме, ACPI может использоваться для перевода системы в спящий режим с помощью man:acpiconf[8], с флагом `-s` и параметром `1-5`. Большинству пользователей нужен только параметр `1`. Параметр `5` сделает "мягкое" завершение работы, так же как и: +Как только информация о CPU станет доступной, самый простой способ настроить энергосбережение — позволить man:powerd[8] взять управление на себя. -[source,shell] +Включите службу man:powerd[8] в [.filename]#/etc/rc.conf# для запуска при загрузке системы: + +[source, shell] .... -# halt -p +# sysrc powerd_enable=YES .... -Доступны и другие параметры. Обратитесь к странице справочника man:acpiconf[8] за дополнительной информацией. +Также необходимо указать определённые параметры для man:powerd[8], чтобы сообщить ему, как управлять состоянием CPU, выполнив следующую команду: -[[ACPI-debug]] -== Использование и отладка FreeBSD ACPI +[source, shell] +.... +# sysrc powerd_flags="-a hiadaptive -i 25 -r 85 -N" +.... -ACPI это фундаментально новый способ обнаружения устройств, управления энергопотреблением и предоставления стандартизированного доступа к различному оборудованию, ранее управлявшемуся BIOS. Был достигнут определенный прогресс в приспособлении ACPI к работе со всеми системами, но все еще встречаются ошибки в байткоде _ACPI Machine Language_ (AML) некоторых материнских плат, незавершенные участки кода в подсистемах ядра FreeBSD и ошибки в интерпретаторе Intel(R) ACPI-CA. +. `-a`: Выбирает режим, используемый при работе от сети переменного тока. +. `hiadaptive`: Режим работы. Подробнее см. в man:powerd[8]. +. `-i`: Указывает уровень загрузки процессора в процентах, при котором адаптивный режим должен начать снижать производительность для экономии энергии. +. `-r`: Указывает уровень загрузки процессора в процентах, при котором адаптивный режим считает, что процессор работает, и повышает производительность. +. `-N`: Рассматривать время выполнения "nice"-процессов как время простоя при расчете нагрузки; т.е. не увеличивать частоту CPU, если он занят только "nice"-процессами. -Этот раздел предназначен для того, чтобы упростить ваше содействие разработчикам FreeBSD ACPI в определении причин наблюдаемых вами проблем, выполнении отладки и выработке решения. Спасибо за помощь и надеемся, что мы сможем помочь в решении проблем вашей системы. +И затем включите службу, выполнив следующую команду: -[[ACPI-submitdebug]] -=== Отправка отладочной информации +[source, shell] +.... +# service powerd start +.... -[NOTE] -==== -Перед отправкой сообщения об ошибке убедитесь, что у вас последняя версия BIOS, и, если доступна, последняя версия firmware встроенного контроллера. -==== +[[cpufreq]] +=== Управление частотой процессора + +FreeBSD включает универсальный драйвер man:cpufreq[4], который позволяет администратору или программам, таким как man:powerd[8] и package:sysutils/powerdxx[], управлять частотой CPU для достижения желаемого баланса между производительностью и энергопотреблением. Более низкая настройка сэкономит энергию, уменьшая нагрев CPU. Более высокая настройка увеличит производительность за счёт большего энергопотребления и усиленного нагрева. + +[[est]] +=== Intel(R) Enhanced SpeedStep(TM) + +Драйвер Intel(R) Enhanced Speed Step(TM), man:est[4], заменяет универсальный драйвер man:cpufreq[4] для процессоров, поддерживающих эту функцию. Частота процессора может быть статически настроена с помощью man:sysctl[8] или скрипта запуска `/etc/rc.d/power_profile`. Дополнительное программное обеспечение, такое как man:powerd[8] или package:sysutils/powerdxx[], может использоваться для автоматической регулировки частоты процессора на основе его загрузки. + +Все поддерживаемые частоты, а также ожидаемое энергопотребление, можно узнать, изучив дерева man:sysctl[3]: + +[source, shell] +.... +# sysctl dev.cpufreq.0.freq_driver dev.cpu.0.freq_levels dev.cpu.0.freq +.... + +Вывод должен быть похож на следующий: + +[.programlisting] +.... +dev.cpufreq.0.freq_driver: est0 +dev.cpu.0.freq_levels: 3001/53000 3000/53000 2900/50301 2700/46082 2600/43525 2400/39557 2300/37137 2100/33398 2000/31112 1800/27610 1700/25455 1500/22171 1400/20144 1200/17084 1100/15181 900/12329 800/10550 +dev.cpu.0.freq: 800 +.... + +Частота на 1 МГц выше максимальной частоты процессора указывает на наличие технологии Intel(R) Turbo Boost(TM). + +[[hwpstate_intel]] +=== Intel Speed Shift(TM) + +Пользователи, работающие на новых процессорах Intel(R), могут заметить некоторые различия в динамическом управлении частотой при обновлении до FreeBSD 13. Новый драйвер для технологии Intel(R) Speed Shift(TM), доступной в определённых моделях, предоставляет возможность аппаратного изменения частоты ядер, в том числе для каждого ядра отдельно. FreeBSD 13 включает драйвер man:hwpstate_intel[4] для автоматического включения управления Speed Shift(TM) на поддерживаемых процессорах, заменяя старый драйвер Enhanced Speed Step(TM) man:est[4]. Значение `dev.cpufreq.%d.freq_driver` в man:sysctl[8] покажет, использует ли система Speed Shift. -Те из вас, кто желает составить сообщение о проблеме прямо сейчас, могут воспользоваться адресом link:mailto:freebsd-acpi@FreeBSD.org[ freebsd-acpi@FreeBSD.org], отправив на него следующую информацию: +Чтобы определить, какой драйвер управления частотой используется, изучите OID `dev.cpufreq.0.freq_driver`. -* Описание неправильного поведения, включая тип системы, модель и все, что приводит к появлению ошибки. Кроме того, сообщите настолько точно, насколько возможно, когда появилась ошибка, если ранее вы ее не видели. -* Вывод man:dmesg[8] после "boot ``-v``", включая все сообщения, появившиеся при изучении ошибки. -* Вывод man:dmesg[8] после "boot ``-v``" с выключенным ACPI, если его отключение помогает решить проблему. -* Вывод `sysctl hw.acpi`. Это также хороший способ получения списка возможностей системы. -* URL где можно найти ваш _ACPI Source Language_ (ASL). _Не_ отправляйте ASL непосредственно в список рассылки, поскольку он может быть очень большим. Копия ASL может быть создана командой: -+ -[source,shell] +[source, shell] .... -# acpidump -t -d name-system.asl +# sysctl dev.cpufreq.0.freq_driver .... -+ -(Замените вашим логином [.filename]#name# и производителем/моделью [.filename]#system#. Пример: [.filename]#njl-FooCo6000.asl#) -Большинство разработчиков читают {freebsd-current}, но для уверенности, что проблему увидят, отправьте ее в {freebsd-acpi}. Будьте терпеливы, все мы заняты полный рабочий день где-то еще. Если ваше сообщение не заметили сразу, мы возможно попросим вас отправить PR (сообщение о проблеме) через man:send-pr[1]. При вводе PR, включайте ту же информацию, что запрошена выше. Это поможет нам отследить проблему и решить ее. Не отправляйте PR без предварительной отправки письма в {freebsd-acpi}, поскольку мы используем PR в качестве напоминаний о существующих проблемах, а не как механизм сообщений об ошибках. Вероятно, о вашей проблеме кто-то уже сообщал ранее. +Вывод должен быть похож на следующий: -[[ACPI-background]] -=== Общие сведения +[.programlisting] +.... +dev.cpufreq.0.freq_driver: hwpstate_intel0 +.... -ACPI представлен во всех современных компьютерах, соответствующих архитектурам ia32 (x86), ia64 (Itanium) и amd64 (AMD). Полный стандарт включает множество возможностей, в том числе управление производительностью CPU, уровнем питания, температурой, различными системами аккумуляторов, встроенными контроллерами и опросом шины. В большинстве систем стандарт реализован не полностью. Например, настольные системы обычно реализуют только опрос шины, а портативные компьютеры кроме того могут поддерживать управление охлаждением и энергопотреблением. Они также поддерживают приостановку и последующий запуск системы различного уровня сложности. +Это указывает на использование нового драйвера man:hwpstate_intel[4]. В таких системах OID `dev.cpu.%d.freq_levels` будет показывать только максимальную частоту CPU и указывать уровень энергопотребления `-1`. -ACPI-совместимые системы состоят из различных компонентов. Производители BIOS и чипсетов предоставляют различные жестко заданные таблицы, (например, FADT), которые определяют функции вроде карты APIC (используется для SMP), регистры настройки и простые значения параметров. Кроме того, предоставляется таблица байткода (_Differentiated System Description Table_, DSDT), определяющая древоподобное пространство имен устройств и методов. +Текущая частота процессора может быть определена путем проверки OID `dev.cpu.%d.freq`. -Драйвер ACPI должен прочесть заданные таблицы, реализовать интерпретатор для байткода, модифицировать драйвера устройств и ядро для приема информации от подсистемы ACPI. Для FreeBSD Intel(R) предоставила интерпретатор (ACPI-CA), тот же что для Linux и NetBSD. Исходный код ACPI-CA находится в каталоге [.filename]#src/sys/contrib/dev/acpica#. Код для приспособления ACPI-CA к работе в FreeBSD, находится в [.filename]#src/sys/dev/acpica/Osd#. Наконец, драйвера, реализующие различные ACPI устройства, находятся в [.filename]#src/sys/dev/acpica#. +[source, shell] +.... +# sysctl dev.cpu.0.freq_levels dev.cpu.0.freq +.... -[[ACPI-comprob]] -=== Часто встречающиеся проблемы +Вывод должен быть похож на следующий: -Для правильной работы ACPI все ее части должны работать правильно. Вот некоторые часто встречающиеся проблемы, в порядке частоты появления, и некоторые обходные пути или исправления. +[.programlisting] +.... +dev.cpu.0.freq_levels: 3696/-1 +dev.cpu.0.freq: 898 +.... -==== Проблемы с мышью +Для получения дополнительной информации, включая сведения о балансировке производительности и энергопотребления, а также о том, как отключить этот драйвер, обратитесь к справочной странице man:hwpstate_intel[4]. -В некоторых случаях при возобновлении работы после приостановки перестает работать мышь. Известным решением проблемы является добавление строки `hint.psm.0.flags="0x3000"` в файл [.filename]#/boot/loader.conf#. Если это не помогло, стоит сообщить о проблеме, как описано выше. +[NOTE] +==== +Пользователи, привыкшие к использованию man:powerd[8] или package:sysutils/powerdxx[], обнаружат, что эти утилиты были заменены драйвером man:hwpstate_intel[4] и больше не работают как ожидалось. +==== -==== Приостановка/возобновление работы +[[graphics-card-power-management]] +=== Управление энергопотреблением графической карты -ACPI поддерживает три состояния приостановки в RAM (STR), `S1`-`S3`, и одно состояние приостановки на диск (`STD`), называемое `S4`. `S5` это "мягкое выключение" и это нормальное состояние системы, когда она подключена к сети, но не включена. `S4` может быть реализован двумя различными путями. ``S4``BIOS это BIOS-поддерживаемая приостановка на диск. ``S4``OS реализуется полностью операционной системой. +Графические карты стали неотъемлемой частью современных компьютеров. Некоторые графические карты могут потреблять чрезмерное количество энергии. FreeBSD позволяет настраивать определённые параметры для снижения энергопотребления. -Начните с проверки переменных `sysctl hw.acpi`, относящихся к приостановке (suspend). Вот результат для Thinkpad: +В случае использования видеокарты Intel(R) с драйвером package:graphics/drm-kmod[] следующие параметры можно добавить в [.filename]#/boot/loader.conf#: -[source,shell] +[.programlisting] .... -hw.acpi.supported_sleep_state: S3 S4 S5 -hw.acpi.s4bios: 0 +compat.linuxkpi.fastboot=1 <.> +compat.linuxkpi.enable_dc=2 <.> +compat.linuxkpi.enable_fbc=1 <.> .... -Это означает, что мы можем использовать `acpiconf -s` для тестирования `S3`, ``S4``OS, и `S5`. Если `s4bios` был единицей (`1`), это означает поддержку ``S4``BIOS вместо ``S4``OS. +<.> Попытайтесь пропустить ненужные установки режимов во время загрузки. +<.> Включить энергосберегающие состояния C для дисплея. +<.> Включить сжатие кадрового буфера для экономии энергии -При тестировании приостановки/возобновления работы, начните с `S1`, если этот режим поддерживается. Это состояние скорее всего поддерживается, поскольку не требует слишком серьезной поддержки со стороны драйвера. Никто не реализовал `S2`, который похож на `S1`. Следующий режим для тестирования это `S3`. Это наиболее глубокое STR состояние, оно требует существенной поддержки со стороны драйвера, чтобы правильно реинициализировать оборудование. Если у вас возникли проблемы при выходе из этого состояния, отправьте письмо в рассылку {freebsd-acpi}, но не ждите, что проблема будет обязательно решена, поскольку существует множество драйверов/оборудования, нуждающихся в дальнейшем тестировании и разработке. +=== Приостановка/возобновление -Для изоляции проблемы удалите из ядра столько драйверов, сколько возможно. Если это работает, вы можете выяснить, какой драйвер вызывает проблему путем загрузки драйверов до тех пор, пока опять не произойдет сбой. Обычно бинарные драйвера, такие как [.filename]#nvidia.ko#, драйвера дисплея X11 и USB вызывают большинство проблем, а драйвера Ethernet интерфейсов как правило работают отлично. Если вы можете нормально загрузить/выгрузить драйвера, автоматизируйте этот процесс, поместив соответствующие команды в [.filename]#/etc/rc.suspend# и [.filename]#/etc/rc.resume#. Это закомментированные примеры выгрузки и загрузки драйверов. Попробуйте установить параметр `hw.acpi.reset_video` в нуль (`0`), если ваш дисплей не включается после возобновления работы. Попробуйте установить большие или меньшие значения для `hw.acpi.sleep_delay`, чтобы проверить, поможет ли это. +Функция приостановки/возобновления позволяет перевести машину в состояние с низким энергопотреблением и возобновить работу системы без потери состояния запущенных программ. -Другой способ, который можно попробовать, это запуск последнего дистрибутива Linux с поддержкой ACPI и тестирование поддержки остановки/возобновления работы на том же оборудовании. Если она работает на Linux, проблема скорее всего в драйверах FreeBSD и поиск драйвера, вызывающего проблему, поможет разрешить ситуацию. Имейте ввиду, что разработчики ACPI обычно не поддерживают другие драйверы (звук, ATA, и т.п.), так что все результаты работы по поиску проблемы возможно необходимо отправить в список рассылки {freebsd-current} и человеку, поддерживающему драйвер. Если вы решитесь заняться отладкой, поместите соответствующий код (man:printf[3]) в вызывающий проблему драйвер для обнаружения места, где прерывается функция восстановления. +[NOTE] +==== +Для корректной работы функции приостановки/возобновления в системе должны быть загружены графические драйверы. В видеокартах без поддержки KMS следует использовать man:sc[4], чтобы не нарушить функциональность приостановки/возобновления. -Наконец, попробуйте отключить ACPI и включить APM. Если приостановка/возобновление работает с APM, вам возможно лучше подойдет APM, особенно на старом оборудовании (до 2000). Включение корректной поддержки ACPI поставщиками оборудования требует времени и вероятно в старом оборудовании поддержка ACPI в BIOS была некорректна. +Дополнительная информация о том, какой драйвер использовать и как его настроить, доступна в главе crossref:x11[x11, Система X Window]. +==== -==== Система останавливается (временно или постоянно) +man:acpi[4] поддерживает следующий список состояний сна: -Большинство систем останавливаются в результате потери прерываний или "шторма" прерываний. В чипсетах существует много проблем, связанных с тем, как BIOS настраивает прерывания перед загрузкой, правильностью таблицы APIC (MADT), и маршрутизации _System Control Interrupt_ (SCI). +.Поддерживаемые состояния сна +[options="header", cols="1,1"] +|=== + +|S1 +|Быстрый переход в режим ожидания с сохранением в оперативной памяти. ЦП переходит в состояние пониженного энергопотребления, но большинство периферийных устройств остаются активными. + +|S2 +|Состояние с меньшим энергопотреблением, чем S1, но с теми же основными характеристиками. Не поддерживается многими системами. -"Шторм" прерываний может быть обнаружен по потерянным прерываниям путем проверки вывода строки с `acpi0` команды `vmstat -i`. Если счетчик увеличивается более, чем несколько раз в секунду, это "шторм" прерываний. Если система останавливается, попробуйте войти в DDB (kbd:[CTRL+ALT+ESC] на консоли) и ввести `show interrupts`. +|S3 (Режим сна) +|Режим приостановки с сохранением в ОЗУ. Большинство устройств отключается, и система перестает работать, за исключением обновления памяти. -Наиболее надежный способ избавиться от проблемы с прерываниями, это отключение поддержки APIC с помощью параметра [.filename]#loader.conf#`hint.apic.0.disabled="1"`. +|S4 (Режим гибернации) +|Приостановка с сохранением состояния на диск. Все устройства отключаются, и система прекращает работу. При возобновлении система запускается, как после холодного включения. *Пока не поддерживается в FreeBSD*. -==== Паника +|S5 +|Система корректно завершает работу и выключается. -Паника, связанная с ACPI, случается довольно редко и имеет наибольший приоритет исправления. Первый шаг это изоляция действий, приводящих к панике (если это возможно) и получение отладки. Следуйте инструкции по включению `options DDB` и настройке последовательной консоли (смотрите crossref:serialcomms[serialconsole-ddb,Вход в отладчик DDB с последовательной линии]) или настройке раздела man:dump[8]. Вы можете получить отладочную информацию DDB с помощью `tr`. Если вы записываете отладку вручную, убедитесь, что переписали как минимум пять (5) строк снизу и пять (5) строк сверху. +|=== -Затем попробуйте изолировать проблему, загрузившись с выключенным ACPI. Если это работает, вы можете изолировать подсистему ACPI, используя различные параметры `debug.acpi.disable`. Обратитесь к странице справочника man:acpi[4] за примерами. +[[configure-suspend-resume]] +==== Настройка приостановки/возобновления -==== Система включается после приостановки или завершения работы +Первым шагом будет определение типов состояний сна, которые поддерживает используемое оборудование, выполнив следующую команду: -Во-первых, попробуйте установить в man:loader.conf[5] параметр `hw.acpi.disable_on_poweroff="0"`. Это предотвращает отключение различных событий в ACPI во время завершения работы. В некоторых системах этот параметр необходимо установить в `1` (по умолчанию) по тем же причинам. Обычно это решает проблему, если система неожиданно включается после приостановки или отключения питания. +[source, shell] +.... +% sysctl hw.acpi.supported_sleep_state +.... -==== Другие проблемы +Вывод должен быть похож на следующий: -Если вы наблюдаете другие проблемы с ACPI (работа с внешним оборудованием, проблемы с обнаружением устройств, и т.д.), отправьте описание проблемы в список рассылки; однако, некоторые из этих проблем могут относиться к незавершенным частям подсистемы ACPI, поэтому может потребоваться время на их реализацию. Будьте терпеливы, и подготовьтесь к тестированию исправлений, которые мы можем вам выслать. +[.programlisting] +.... +hw.acpi.supported_sleep_state: S3 S4 S5 +.... -[[ACPI-aslanddump]] -=== ASL, `acpidump`, и IASL +[WARNING] +==== +Как упоминалось выше, FreeBSD *пока* не поддерживает состояние `S4`. +==== -Наиболее часто встречается проблема, связанная с предоставлением поставщиками BIOS некорректного (или полностью ошибочного!) байткода. Это обычно проявляется появлением консольных сообщений ядра, подобных этому: +man:acpiconf[8] можно использовать для проверки корректности работы состояния `S3`, выполнив следующую команду. Если команда выполнится успешно, экран погаснет и компьютер выключится: -[source,shell] +[source, shell] .... -ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\ - (Node 0xc3f6d160), AE_NOT_FOUND +# acpiconf -s 3 .... -Зачастую вы можете разрешить эти проблемы путем обновления BIOS до последней ревизии. Большинство консольных сообщений безвредны, но если существуют другие проблемы, такие как не работающий статус батареи, возможно существуют проблемы в AML. Байткод, известный как AML, компилируется из исходного текста на языке ASL. AML находится в таблице, известной как DSDT. Для получения копии ASL, используйте man:acpidump[8]. Вы можете использовать оба параметра `-t` (показывать содержимое постоянных таблиц) и `-d` (дизассемблировать AML в ASL). Обратитесь к разделу <<ACPI-submitdebug,Отправка отладочной информации>> за примером синтаксиса. +В подавляющем большинстве случаев функциональность Suspend/Resume предназначена для использования на ноутбуке. -Простейшая первая проверка, которую вы можете провести, это перекомпиляция ASL для поиска ошибок. Предупреждения обычно могут быть проигнорированы, но ошибки обычно не позволяют ACPI работать правильно. Для перекомпиляции ASL, выполните следующую команду: +FreeBSD можно настроить для перехода в состояние `S3` при закрытии крышки, добавив следующую строку в файл [.filename]#/etc/sysctl.conf#. -[source,shell] +[.programlisting] .... -# iasl your.asl +hw.acpi.lid_switch_state=S3 .... -[[ACPI-fixasl]] -=== Исправление ASL +[[troubleshooting-suspend-resume]] +==== Устранение неполадок при приостановке/возобновлении работы -В дальней перспективе, наша задача состоит в том, чтобы обеспечить поддержку ACPI практически для каждой системы без вмешательства пользователя. Однако, на данный момент мы все еще разрабатываем обходные пути для ошибок, которые часто делают поставщики BIOS. Интерпретатор Microsoft(R) ([.filename]#acpi.sys# и [.filename]#acpiec.sys#) не занимается проверкой четкости соблюдения стандартов, поэтому многие поставщики BIOS, проверяющие ACPI только под Windows(R), никогда не исправляют ASL. Мы надеемся продолжать обнаружение и документацию нестандартных поведений, позволяемых интерпретатором Microsoft(R), и воспроизводить их, чтобы FreeBSD могла работать без необходимости исправления ASL пользователями. В качестве обходного пути для обнаружения неправильного поведения, вы можете исправить ASL вручную. Если исправления будут работать, пожалуйста отправьте man:diff[1] между старым и новым ASL, чтобы мы могли реализовать обходной путь для неправильного поведения ACPI-CA, чтобы исправление вручную больше не требовалось. +Много усилий было приложено, чтобы функции приостановки (Suspend) и возобновления (Resume) работали корректно и наилучшим образом в FreeBSD. Однако в настоящее время эти функции работают правильно только на некоторых определенных моделях ноутбуков. -Вот список наиболее часто встречающихся проблем, их причин и способы исправления: +Некоторые проверки можно выполнить, если система работает некорректно. -==== OS зависимости +В некоторых случаях достаточно выключить bluetooth. В других — загрузить правильный драйвер для видеокарты и т.д. -Некоторые AML предполагают, что мир состоит из различных версий Windows(R). Вы можете настроить FreeBSD, чтобы она сообщала любое другое имя OS и посмотреть, исправит ли это имеющуюся проблему. Простой способ указания другого имени системы это установка переменной [.filename]#/boot/loader.conf#`hw.acpi.osname="Windows 2001"` или в другое подобное значение, имеющееся в ASL. +В случае, если это работает некорректно, некоторые рекомендации можно найти на FreeBSD Wiki в разделе link:https://wiki.freebsd.org/SuspendResume[Приостановка/возобновление]. -==== Отсутствие возврата значения +[[adding-swap-space]] +== Добавление swap-пространства + +Иногда системе FreeBSD требуется больше места в подкачке. В этом разделе описаны два способа увеличения пространства подкачки: добавление раздела подкачки к существующему разделу или новому жесткому диску и создание файла подкачки в существующей файловой системе. + +Для получения информации о том, как зашифровать пространство подкачки, какие существуют варианты и почему это следует делать, обратитесь к crossref:disks[swap-encrypting,"Шифрование подкачки"]. -Некоторые методы не возвращают значение явно, как того требует стандарт. Хотя ACPI-CA не обрабатывает эту ситуацию, в FreeBSD существует обходной путь, позволяющей ей явно возвращать значение. Вы можете также добавить явные операторы Return (возврат) там, где требуется, если знаете, что значение должно быть возвращено. Для принудительного компилирования ASL командой `iasl`, используйте флаг `-f`. +[[new-drive-swap]] +=== Раздел подкачки на новом жестком диске или существующем разделе + +Добавление нового диска для раздела подкачки обеспечивает лучшую производительность по сравнению с использованием раздела на существующем диске. Настройка разделов и дисков описана в crossref:disks[disks-adding,"Добавление дисков"], а crossref:bsdinstall[configtuning-initial,"Проектирование разметки разделов"] рассматривает варианты разметки разделов и вопросы выбора размера раздела подкачки. -==== Перезапись AML по умолчанию +[WARNING] +==== +Можно использовать любой раздел, который в данный момент не смонтирован, даже если он уже содержит данные. Использование `swapon` на разделе с данными приведёт к их перезаписи и уничтожению. Перед выполнением `swapon` убедитесь, что выбранный раздел действительно предназначен для добавления в swap. +==== -После настройки [.filename]#your.asl# для компиляции запустите: +man:swapon[8] может использоваться для добавления раздела подкачки в систему выполнением следующей команды: -[source,shell] +[source, shell] .... -# iasl your.asl +# swapon /dev/ada1p2 .... -Вы можете добавить флаг `-f` для создания AML даже при наличии ошибок компиляции. Помните, что некоторые ошибки (например, отсутствующие операторы Return), автоматически обходятся интерпретатором. - -Файл [.filename]#DSDT.aml# используется `iasl` по умолчанию. Вы можете загрузить его вместо ошибочной копии BIOS (которая остается в постоянной памяти) путем редактирования [.filename]#/boot/loader.conf#: +Для автоматического добавления этого раздела подкачки при загрузке добавьте запись в [.filename]#/etc/fstab#: [.programlisting] .... -acpi_dsdt_load="YES" -acpi_dsdt_name="/boot/DSDT.aml" +/dev/ada1p2 none swap sw 0 0 .... -Убедитесь, что скопировали [.filename]#DSDT.aml# в каталог [.filename]#/boot#. +См. man:fstab[5] для объяснения записей в [.filename]#/etc/fstab#. -[[ACPI-debugoutput]] -=== Получение отладочной информации ACPI +[[create-swapfile]] +=== Создание файла подкачки -Возможности отладки драйвера ACPI очень гибкие. Они позволяют вам указывать набор подсистем, а также уровень отладки. Подсистемы, которые вы хотите отлаживать, указываются как "слои", и подразделяются на компоненты ACPI-CA (ACPI_ALL_COMPONENTS) и поддержку оборудования ACPI (ACPI_ALL_DRIVERS). Уровень отладки варьируется от ACPI_LV_ERROR (только сообщать об ошибках) до ACPI_LV_VERBOSE (все сообщения). Уровень отладки представляет собой битовую маску, поэтому возможна одновременная установка нескольких параметров, разделенных пробелами. На практике, при использовании для получения отладочной информации последовательной консоли, слишком большое количество информации может переполнить буфер консоли. Полный список отдельных слоев и уровней можно найти на странице справочника man:acpi[4]. +[[swapfile-10-and-later]] +Эти примеры создают файл подкачки размером 512 МБ с именем [.filename]#/usr/swap0#. -Вывод отладочной информации по умолчанию не включен. Для его включения добавьте параметр `options ACPI_DEBUG` к файлу настройки ядра, если ACPI встроен в ядро. Вы можете добавить параметр `ACPI_DEBUG=1` в файл [.filename]#/etc/make.conf# для глобального включения этого параметра. Если вы используете модуль [.filename]#acpi.ko# , его можно пересобрать индивидуально: +[WARNING] +==== +Файлы подкачки на файловых системах ZFS крайне не рекомендуются, так как подкачка может привести к зависанию системы. +==== + +Первым шагом является создание файла подкачки: -[source,shell] +[source, shell] .... -# cd /sys/modules/acpi/acpi - make clean make -ACPI_DEBUG=1 +# dd if=/dev/zero of=/usr/swap0 bs=1m count=512 .... -Установите [.filename]#acpi.ko# в [.filename]#/boot/kernel# и добавьте предпочитаемый уровень и слой к [.filename]#loader.conf#. Этот пример включает отладочные сообщения для всех компонентов ACPI-CA и всех драйверов оборудования ACPI (CPU, LID и т.д.). Будут выводиться только сообщения об ошибках, наименьший уровень отладки. +Второй шаг — установить соответствующие разрешения для нового файла: -[.programlisting] +[source, shell] .... -debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS" -debug.acpi.level="ACPI_LV_ERROR" +# chmod 0600 /usr/swap0 .... -Если требуемая информация получается в результате определенного события (скажем, приостановка и восстановление), вы можете не изменять [.filename]#loader.conf# и использовать для указания слоя и уровня `sysctl` после загрузки и подготовки системы к определенному событию. Имена переменных `sysctl` те же, что и имена параметров настройки в [.filename]#loader.conf#. +Третий шаг — сообщить системе о файле подкачки, добавив строку в [.filename]#/etc/fstab#: -[[ACPI-References]] -=== Ссылки +[.programlisting] +.... +md none swap sw,file=/usr/swap0,late 0 0 +.... -Дальнейшую информацию о ACPI можно найти по следующим ссылкам: +Раздел подкачки будет добавлен при запуске системы. Чтобы добавить раздел подкачки немедленно, используйте man:swapon[8]: -* {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/] -* 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, но обычно полезен.) +[source, shell] +.... +# swapon -aL +.... diff --git a/documentation/content/ru/books/handbook/config/_index.po b/documentation/content/ru/books/handbook/config/_index.po new file mode 100644 index 0000000000..00f29035c3 --- /dev/null +++ b/documentation/content/ru/books/handbook/config/_index.po @@ -0,0 +1,4207 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-09-26 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookconfig_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/config/_index.adoc:1 +#, no-wrap +msgid "This chapter explains much of the FreeBSD configuration files, how to enable or disable a service, how to configure the logging system and the power management area." +msgstr "Эта глава объясняет большинство файлов конфигурации FreeBSD, как включить или отключить службу, как настроить систему ведения журналов и область управления питанием." + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/config/_index.adoc:1 +#, no-wrap +msgid "Part III. System Administration" +msgstr "Часть III. Администрирование системы" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/config/_index.adoc:1 +#, no-wrap +msgid "Chapter 14. Configuration, Services, Logging and Power Management" +msgstr "Глава 14. Конфигурация, сервисы, журналирование и управление питанием" + +#. type: Title = +#: documentation/content/en/books/handbook/config/_index.adoc:15 +#, no-wrap +msgid "Configuration, Services, Logging and Power Management" +msgstr "Конфигурация, сервисы, журналирование и управление питанием" + +#. type: Title == +#: documentation/content/en/books/handbook/config/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:57 +msgid "" +"One of the important aspects of FreeBSD is proper system configuration. " +"This chapter explains much of the FreeBSD configuration process, including " +"some of the parameters which can be set to tune a FreeBSD system." +msgstr "" +"Одним из важных аспектов FreeBSD является правильная настройка системы. В " +"этой главе описывается процесс настройки FreeBSD, включая некоторые " +"параметры, которые можно задать для тонкой настройки системы FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:59 +msgid "Before reading this chapter, you should:" +msgstr "Прежде чем читать эту главу, вы должны:" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:61 +msgid "" +"Understand UNIX(R) and FreeBSD basics (crossref:basics[basics,FreeBSD " +"Basics])." +msgstr "" +"Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics,Основы FreeBSD])." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:63 +msgid "After reading this chapter, you will know:" +msgstr "Прочитав эту главу, вы будете знать:" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:65 +msgid "How to use the various configuration files in [.filename]#/etc#." +msgstr "Как использовать различные конфигурационные файлы в [.filename]#/etc#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:66 +msgid "" +"The basics of [.filename]#rc.conf# configuration and [.filename]#/usr/local/" +"etc/rc.d# startup scripts." +msgstr "" +"Основы настройки [.filename]#rc.conf# и скриптов запуска в [.filename]#/usr/" +"local/etc/rc.d#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:67 +msgid "How to tune FreeBSD using man:sysctl[8] variables." +msgstr "Как настроить FreeBSD с помощью переменных man:sysctl[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:68 +msgid "How to configure the power management in FreeBSD." +msgstr "Как настроить управление питанием в FreeBSD." + +#. type: Title == +#: documentation/content/en/books/handbook/config/_index.adoc:70 +#, no-wrap +msgid "Configuration Files" +msgstr "Файлы конфигурации" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:73 +msgid "" +"FreeBSD maintains a clear separation between the base system and third party " +"applications and therefore this affects where the configuration files of " +"these applications are located." +msgstr "" +"FreeBSD поддерживает четкое разделение между базовой системой и сторонними " +"приложениями, что влияет на расположение их конфигурационных файлов." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:76 +msgid "" +"FreeBSD base system configuration is located at the [.filename]#/etc# " +"directory, and the [.filename]#/usr/local/etc# directory contains all the " +"configuration files of the applications installed on the system through the " +"ports collection and packages." +msgstr "" +"Конфигурация базовой системы FreeBSD находится в каталоге [.filename]#/etc#, " +"а в каталоге [.filename]#/usr/local/etc# содержатся все конфигурационные " +"файлы приложений, установленных в систему через коллекцию портов и пакеты." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:79 +msgid "" +"The kernel state configuration is located in [.filename]#/etc/sysctl.conf#. " +"In the section crossref:config[configtuning-sysctl, The sysctl utility], the " +"operation of man:sysctl[8] will be explained in more detail." +msgstr "" +"Конфигурация состояния ядра находится в файле [.filename]#/etc/sysctl.conf#. " +"В разделе crossref:config[configtuning-sysctl, Утилита sysctl] работа " +"man:sysctl[8] будет рассмотрена более подробно." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:81 +msgid "" +"For more information about the FreeBSD file system structure refer to " +"man:hier[7]." +msgstr "" +"Для получения дополнительной информации о структуре файловой системы FreeBSD " +"обратитесь к man:hier[7]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:84 +msgid "" +"As a general rule, configuration files do not use a standard on what syntax " +"they must follow. Although it is true that the `#` character is normally " +"used to comment a line and that each line has a configuration variable." +msgstr "" +"Как правило, конфигурационные файлы не придерживаются единого стандарта в " +"отношении синтаксиса. Хотя верно, что символ `#` обычно используется для " +"комментирования строки и что каждая строка содержит переменную конфигурации." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:88 +msgid "" +"Some applications like man:pkg[8] are starting to use the link:https://" +"github.com/vstakhov/libucl[Universal Configuration Language (UCL)]." +msgstr "" +"Некоторые приложения, такие как man:pkg[8], начинают использовать " +"link:https://github.com/vstakhov/libucl[Universal Configuration Language " +"(UCL)]." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:90 +#, no-wrap +msgid "The [.filename]#/etc# directory" +msgstr "Каталог [.filename]#/etc#" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:93 +msgid "" +"The [.filename]#/etc# directory contains all of the FreeBSD base system " +"configuration files that are responsible for configuring FreeBSD." +msgstr "" +"Каталог [.filename]#/etc# содержит все файлы конфигурации базовой системы " +"FreeBSD, которые отвечают за её настройку." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:97 +#, fuzzy +#| msgid "" +#| "*Extreme* caution must be taken when modifying files in the [.filename]#/" +#| "etc# directory; misconfiguration could make FreeBSD unbootable or " +#| "malfunction.\n" +msgid "" +"*Extreme* caution must be taken when modifying files in the [.filename]#/" +"etc# directory; misconfiguration could make FreeBSD unbootable or " +"malfunction." +msgstr "" +"*Крайнюю* осторожность следует соблюдать при изменении файлов в каталоге " +"[.filename]#/etc#; неправильная настройка может сделать FreeBSD " +"незагружаемой или неработоспособной.\n" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:104 +#, no-wrap +msgid "[.filename]#/etc#" +msgstr "[.filename]#/etc#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:106 +#, no-wrap +msgid "System configuration files and scripts." +msgstr "Системные конфигурационные файлы и скрипты." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:107 +#, no-wrap +msgid "[.filename]#/etc/defaults#" +msgstr "[.filename]#/etc/defaults#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:109 +#, no-wrap +msgid "Default system configuration files, see man:rc[8] for more information." +msgstr "Файлы конфигурации системы по умолчанию, подробности см. в man:rc[8]." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:110 +#, no-wrap +msgid "[.filename]#/etc/fstab#" +msgstr "[.filename]#/etc/fstab#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:112 +#, no-wrap +msgid "man:fstab[5] contains descriptive information about the various file systems." +msgstr "man:fstab[5] содержит описательную информацию о различных файловых системах." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:113 +#, no-wrap +msgid "[.filename]#/etc/mail#" +msgstr "[.filename]#/etc/mail#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:115 +#, no-wrap +msgid "Extra man:sendmail[8] configuration and other MTA configuration files." +msgstr "Дополнительная конфигурация man:sendmail[8] и другие файлы конфигурации MTA." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:116 +#, no-wrap +msgid "[.filename]#/etc/mtree#" +msgstr "[.filename]#/etc/mtree#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:118 +#, no-wrap +msgid "mtree configuration files, see man: mtree[8] for more information." +msgstr "Файлы конфигурации mtree, подробнее см. man:mtree[8]." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:119 +#, no-wrap +msgid "[.filename]#/etc/pam.d#" +msgstr "[.filename]#/etc/pam.d#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:121 +#, no-wrap +msgid "Configuration files for the Pluggable Authentication Modules (PAM) library." +msgstr "Файлы конфигурации библиотеки Pluggable Authentication Modules (PAM)." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:122 +#, no-wrap +msgid "[.filename]#/etc/periodic#" +msgstr "[.filename]#/etc/periodic#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:124 +#, no-wrap +msgid "Scripts that are run daily, weekly, and monthly, via man:cron[8], see man:periodic[8] for more information." +msgstr "Скрипты, выполняемые ежедневно, еженедельно и ежемесячно через man:cron[8]. Подробнее см. man:periodic[8]." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:125 +#, no-wrap +msgid "[.filename]#/etc/rc.d#" +msgstr "[.filename]#/etc/rc.d#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:127 +#, no-wrap +msgid "System and daemon startup/control scripts, see man:rc[8] for more information." +msgstr "Системные и демон-скрипты запуска/управления, подробнее см. в man:rc[8]." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:128 +#, no-wrap +msgid "[.filename]#/etc/rc.conf#" +msgstr "[.filename]#/etc/rc.conf#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:133 +#, no-wrap +msgid "" +"Contains descriptive information about the local host name, configuration\n" +"details for any potential network interfaces and which services should be\n" +"started up at system initial boot time. More information in\n" +"crossref:bsdinstall[configtuning-core-configuration, Managing System-Specific Configuration]" +msgstr "" +"Содержит описательную информацию о локальном имени хоста,\n" +"настройках сетевых интерфейсов и службах, которые должны\n" +"запускаться при начальной загрузке системы. Подробнее в разделе\n" +" crossref:bsdinstall[configtuning-core-configuration, Управление системными настройками]" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:134 +#, no-wrap +msgid "[.filename]#/etc/security#" +msgstr "[.filename]#/etc/security#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:136 +#, no-wrap +msgid "OpenBSM audit configuration files, see man:audit[8] for more information." +msgstr "Файлы конфигурации аудита OpenBSM, дополнительную информацию смотрите в man:audit[8]." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:137 +#, no-wrap +msgid "[.filename]#/etc/ppp#" +msgstr "[.filename]#/etc/ppp#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:139 +#, no-wrap +msgid "ppp configuration files, see man:ppp[8] for more information." +msgstr "Файлы конфигурации ppp, подробности смотрите в man:ppp[8]." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:140 +#, no-wrap +msgid "[.filename]#/etc/ssh#" +msgstr "[.filename]#/etc/ssh#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:142 +#, no-wrap +msgid "OpenSSH configuration files, see man:ssh[1] for more information." +msgstr "Файлы конфигурации OpenSSH, подробности см. в man:ssh[1]." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:143 +#, no-wrap +msgid "[.filename]#/etc/ssl#" +msgstr "[.filename]#/etc/ssl#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:145 +#, no-wrap +msgid "OpenSSL configuration files." +msgstr "Конфигурационные файлы OpenSSL." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:146 +#, no-wrap +msgid "[.filename]#/etc/sysctl.conf#" +msgstr "[.filename]#/etc/sysctl.conf#" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:149 +#, no-wrap +msgid "" +"Contains settings for the kernel. More information in\n" +"crossref:bsdinstall[configtuning-sysctl, The sysctl utility]" +msgstr "" +"Содержит настройки ядра. Дополнительная информация в\n" +"crossref:bsdinstall[configtuning-sysctl, Утилита sysctl]" + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:152 +#, no-wrap +msgid "The sysctl utility" +msgstr "Утилита sysctl" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:155 +msgid "" +"The man:sysctl[8] utility is used to make changes to a running FreeBSD " +"system." +msgstr "" +"Утилита man:sysctl[8] используется для внесения изменений в работающую " +"систему FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:158 +msgid "" +"The man:sysctl[8] utility retrieves kernel state and allows processes with " +"appropriate privilege to set kernel state. The state to be retrieved or set " +"is described using a \"Management Information Base\" (\"MIB\") style name, " +"described as a dotted set of components." +msgstr "" +"Утилита man:sysctl[8] позволяет получать состояние ядра и, при наличии " +"соответствующих привилегий, изменять его. Состояние, которое требуется " +"получить или установить, описывается с использованием имени в стиле \"Базы " +"управляющей информации\" (\"MIB\"), представленного в виде набора " +"компонентов, разделённых точками." + +#. type: Block title +#: documentation/content/en/books/handbook/config/_index.adoc:159 +#, no-wrap +msgid "Management Information Base" +msgstr "База управляющей информации" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:165 +#, no-wrap +msgid "sysctl" +msgstr "sysctl" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:167 +#, no-wrap +msgid "\"Magic\" numbers" +msgstr "«Волшебные» числа" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:168 +#: documentation/content/en/books/handbook/config/_index.adoc:803 +#, no-wrap +msgid "kern" +msgstr "kern" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:170 +#, no-wrap +msgid "Kernel functions and features" +msgstr "Ядро: функции и возможности" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:171 +#, no-wrap +msgid "vm" +msgstr "vm" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:173 +#, no-wrap +msgid "virtual memory" +msgstr "Виртуальная память" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:174 +#, no-wrap +msgid "vfs" +msgstr "vfs" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:176 +#, no-wrap +msgid "Filesystem" +msgstr "Файловая система" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:177 +#, no-wrap +msgid "net" +msgstr "net" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:179 +#, no-wrap +msgid "Network" +msgstr "Сеть" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:180 +#: documentation/content/en/books/handbook/config/_index.adoc:869 +#, no-wrap +msgid "debug" +msgstr "debug" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:182 +#, no-wrap +msgid "Debugging parameters" +msgstr "Параметры отладки" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:183 +#, no-wrap +msgid "hw" +msgstr "hw" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:185 +#, no-wrap +msgid "Hardware" +msgstr "Оборудование" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:186 +#, no-wrap +msgid "machdep" +msgstr "machdep" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:188 +#, no-wrap +msgid "Machine dependent" +msgstr "Зависимые от аппаратного обеспечения" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:189 +#: documentation/content/en/books/handbook/config/_index.adoc:827 +#, no-wrap +msgid "user" +msgstr "user" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:191 +#, no-wrap +msgid "Userland" +msgstr "Пользовательское пространство" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:192 +#, no-wrap +msgid "p1003_1b" +msgstr "p1003_1b" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:194 +#, no-wrap +msgid "POSIX 1003.1B" +msgstr "POSIX 1003.1B" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:197 +msgid "" +"At its core, man:sysctl[8] serves two functions: to read and to modify " +"system settings." +msgstr "" +"В основе своей man:sysctl[8] выполняет две функции: чтение и изменение " +"системных настроек." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:199 +msgid "To view all readable variables:" +msgstr "Для просмотра всех доступных для чтения переменных:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:203 +#, no-wrap +msgid "% sysctl -a\n" +msgstr "% sysctl -a\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:206 +#: documentation/content/en/books/handbook/config/_index.adoc:230 +#: documentation/content/en/books/handbook/config/_index.adoc:244 +#: documentation/content/en/books/handbook/config/_index.adoc:271 +#: documentation/content/en/books/handbook/config/_index.adoc:315 +#: documentation/content/en/books/handbook/config/_index.adoc:457 +#: documentation/content/en/books/handbook/config/_index.adoc:621 +#: documentation/content/en/books/handbook/config/_index.adoc:635 +#: documentation/content/en/books/handbook/config/_index.adoc:1146 +#: documentation/content/en/books/handbook/config/_index.adoc:1209 +#: documentation/content/en/books/handbook/config/_index.adoc:1271 +#: documentation/content/en/books/handbook/config/_index.adoc:1356 +#: documentation/content/en/books/handbook/config/_index.adoc:1382 +#: documentation/content/en/books/handbook/config/_index.adoc:1399 +#: documentation/content/en/books/handbook/config/_index.adoc:1479 +msgid "The output should be similar to the following:" +msgstr "Вывод должен быть похож на следующий:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:220 +#, no-wrap +msgid "" +"kern.ostype: FreeBSD\n" +"...\n" +"vm.swap_enabled: 1\n" +"vm.overcommit: 0\n" +"vm.domain.0.pidctrl.kdd: 8\n" +"vm.domain.0.pidctrl.kid: 4\n" +"vm.domain.0.pidctrl.kpd: 3\n" +"...\n" +"vfs.zfs.sync_pass_rewrite: 2\n" +"vfs.zfs.sync_pass_dont_compress: 8\n" +"vfs.zfs.sync_pass_deferred_free: 2\n" +msgstr "" +"kern.ostype: FreeBSD\n" +"...\n" +"vm.swap_enabled: 1\n" +"vm.overcommit: 0\n" +"vm.domain.0.pidctrl.kdd: 8\n" +"vm.domain.0.pidctrl.kid: 4\n" +"vm.domain.0.pidctrl.kpd: 3\n" +"...\n" +"vfs.zfs.sync_pass_rewrite: 2\n" +"vfs.zfs.sync_pass_dont_compress: 8\n" +"vfs.zfs.sync_pass_deferred_free: 2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:223 +msgid "To read a particular variable, specify its name:" +msgstr "Чтобы прочитать конкретную переменную, укажите её имя:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:227 +#, no-wrap +msgid "% sysctl kern.maxproc\n" +msgstr "% sysctl kern.maxproc\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:234 +#, no-wrap +msgid "kern.maxproc: 1044\n" +msgstr "kern.maxproc: 1044\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:237 +msgid "" +"The Management Information Base (MIB) is hierarchical and hence, specifying " +"a prefix prints all the nodes hanging from it:" +msgstr "" +"База управляющей информации (MIB) иерархична, поэтому указание префикса " +"выводит все узлы, зависящие от него:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:241 +#, no-wrap +msgid "% sysctl net\n" +msgstr "% sysctl net\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:261 +#, no-wrap +msgid "" +"net.local.stream.recvspace: 8192\n" +"net.local.stream.sendspace: 8192\n" +"net.local.dgram.recvspace: 16384\n" +"net.local.dgram.maxdgram: 2048\n" +"net.local.seqpacket.recvspace: 8192\n" +"net.local.seqpacket.maxseqpacket: 8192\n" +"net.local.sockcount: 60\n" +"net.local.taskcount: 25\n" +"net.local.recycled: 0\n" +"net.local.deferred: 0\n" +"net.local.inflight: 0\n" +"net.inet.ip.portrange.randomtime: 1\n" +"net.inet.ip.portrange.randomcps: 9999\n" +"[...]\n" +msgstr "" +"net.local.stream.recvspace: 8192\n" +"net.local.stream.sendspace: 8192\n" +"net.local.dgram.recvspace: 16384\n" +"net.local.dgram.maxdgram: 2048\n" +"net.local.seqpacket.recvspace: 8192\n" +"net.local.seqpacket.maxseqpacket: 8192\n" +"net.local.sockcount: 60\n" +"net.local.taskcount: 25\n" +"net.local.recycled: 0\n" +"net.local.deferred: 0\n" +"net.local.inflight: 0\n" +"net.inet.ip.portrange.randomtime: 1\n" +"net.inet.ip.portrange.randomcps: 9999\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:264 +msgid "To set a particular variable, use the _variable_=_value_ syntax:" +msgstr "" +"Чтобы установить конкретную переменную, используйте синтаксис " +"_переменная_=_значение_:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:268 +#, no-wrap +msgid "# sysctl kern.maxfiles=5000\n" +msgstr "# sysctl kern.maxfiles=5000\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:275 +#, no-wrap +msgid "kern.maxfiles: 2088 -> 5000\n" +msgstr "kern.maxfiles: 2088 -> 5000\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:280 +msgid "" +"To keep the configuration after a reboot it is necessary to add these " +"variables to the [.filename]#/etc/sysctl.conf# file as explained below." +msgstr "" +"Чтобы сохранить настройки после перезагрузки, необходимо добавить эти " +"переменные в файл [.filename]#/etc/sysctl.conf#, как описано ниже." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:283 +#, no-wrap +msgid "The [.filename]#/etc/sysctl.conf# file" +msgstr "Файл [.filename]#/etc/sysctl.conf#" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:286 +msgid "" +"The configuration file for man:sysctl[8], [.filename]#/etc/sysctl.conf#, " +"looks much like [.filename]#/etc/rc.conf#." +msgstr "" +"Файл конфигурации для man:sysctl[8], [.filename]#/etc/sysctl.conf#, выглядит " +"очень похоже на [.filename]#/etc/rc.conf#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:288 +msgid "Values are set using a `variable=value` syntax." +msgstr "Значения задаются с использованием синтаксиса `переменная=значение`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:293 +msgid "" +"The specified values are set after the system goes into multi-user mode. " +"Not all variables are settable in this mode." +msgstr "" +"Указанные значения устанавливаются после перехода системы в " +"многопользовательский режим. Не все переменные могут быть установлены в этом " +"режиме." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:296 +msgid "" +"For example, to turn off logging of fatal signal exits and prevent users " +"from seeing processes started by other users, the following tunables can be " +"set in [.filename]#/etc/sysctl.conf#:" +msgstr "" +"Например, чтобы отключить запись завершений по фатальным сигналам и " +"запретить пользователям видеть процессы, запущенные другими пользователями, " +"в файле [.filename]#/etc/sysctl.conf# можно установить следующие параметры:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:301 +#, no-wrap +msgid "" +"# Do not log fatal signal exits (e.g., sig 11)\n" +"kern.logsigexit=0\n" +msgstr "" +"# Do not log fatal signal exits (e.g., sig 11)\n" +"kern.logsigexit=0\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:305 +#, no-wrap +msgid "" +"# Prevent users from seeing information about processes that\n" +"# are being run under another UID.\n" +"security.bsd.see_other_uids=0\n" +msgstr "" +"# Prevent users from seeing information about processes that\n" +"# are being run under another UID.\n" +"security.bsd.see_other_uids=0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:308 +msgid "" +"To obtain more information about what function a particular sysctl has, the " +"following command can be executed:" +msgstr "" +"Чтобы получить дополнительную информацию о функции конкретного sysctl, можно " +"выполнить следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:312 +#, no-wrap +msgid "% sysctl -d kern.dfldsiz\n" +msgstr "% sysctl -d kern.dfldsiz\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:319 +#, no-wrap +msgid "kern.dfldsiz: Initial data size limit\n" +msgstr "kern.dfldsiz: Initial data size limit\n" + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:322 +#, no-wrap +msgid "Managing System-Specific Configuration" +msgstr "Управление конфигурацией, специфичной для системы" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:325 +msgid "" +"The principal location for system configuration information is [.filename]#/" +"etc/rc.conf#." +msgstr "" +"Основное расположение информации о конфигурации системы — это [.filename]#/" +"etc/rc.conf#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:328 +msgid "" +"This file contains a wide range of configuration information and it is read " +"at system startup to configure the system. It provides the configuration " +"information for the [.filename]#rc*# files." +msgstr "" +"Этот файл содержит обширную информацию о конфигурации и читается при запуске " +"системы для её настройки. Он предоставляет конфигурационную информацию для " +"файлов [.filename]#rc*#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:330 +msgid "" +"The entries in [.filename]#/etc/rc.conf# override the default settings in " +"[.filename]#/etc/defaults/rc.conf#." +msgstr "" +"Записи в [.filename]#/etc/rc.conf# переопределяют настройки по умолчанию из " +"[.filename]#/etc/defaults/rc.conf#." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:335 +msgid "" +"The file [.filename]#/etc/defaults/rc.conf# containing the default settings " +"should not be edited. Instead, all system-specific changes should be made " +"to [.filename]#/etc/rc.conf#." +msgstr "" +"Файл [.filename]#/etc/defaults/rc.conf#, содержащий настройки по умолчанию, " +"не следует редактировать. Вместо этого все специфичные для системы изменения " +"должны вноситься в [.filename]#/etc/rc.conf#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:338 +msgid "" +"A number of strategies may be applied in clustered applications to separate " +"site-wide configuration from system-specific configuration in order to " +"reduce administration overhead." +msgstr "" +"В кластеризованных приложениях может быть применен ряд стратегий для " +"разделения общесайтовой конфигурации и системно-специфичной конфигурации с " +"целью снижения административной нагрузки." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:340 +msgid "" +"The recommended approach is to place system-specific configuration into " +"[.filename]#/etc/rc.conf.local#." +msgstr "" +"Рекомендуемый подход заключается в размещении специфичной для системы " +"конфигурации в [.filename]#/etc/rc.conf.local#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:342 +msgid "" +"For example, these entries in [.filename]#/etc/rc.conf# apply to all systems:" +msgstr "" +"Например, эти записи в [.filename]#/etc/rc.conf# применяются ко всем " +"системам:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:348 +#, no-wrap +msgid "" +"sshd_enable=\"YES\"\n" +"keyrate=\"fast\"\n" +"defaultrouter=\"10.1.1.254\"\n" +msgstr "" +"sshd_enable=\"YES\"\n" +"keyrate=\"fast\"\n" +"defaultrouter=\"10.1.1.254\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:351 +msgid "" +"Whereas these entries in [.filename]#/etc/rc.conf.local# apply to this " +"system only:" +msgstr "" +"В то время как эти записи в [.filename]#/etc/rc.conf.local# применяются " +"только к этой системе:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:356 +#, no-wrap +msgid "" +"hostname=\"node1.example.org\"\n" +"ifconfig_fxp0=\"inet 10.1.1.1/8\"\n" +msgstr "" +"hostname=\"node1.example.org\"\n" +"ifconfig_fxp0=\"inet 10.1.1.1/8\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:359 +msgid "" +"Distribute [.filename]#/etc/rc.conf# to every system using an application " +"such as rsync or puppet, while [.filename]#/etc/rc.conf.local# remains " +"unique." +msgstr "" +"Распределите [.filename]#/etc/rc.conf# на каждую систему с помощью таких " +"приложений, как rsync или puppet, в то время как [.filename]#/etc/" +"rc.conf.local# остается уникальным." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:361 +msgid "" +"Upgrading the system will not overwrite [.filename]#/etc/rc.conf#, so system " +"configuration information will not be lost." +msgstr "" +"Обновление системы не перезапишет [.filename]#/etc/rc.conf#, поэтому " +"системные настройки не будут потеряны." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:367 +msgid "" +"Both [.filename]#/etc/rc.conf# and [.filename]#/etc/rc.conf.local# are " +"parsed by man:sh[1]. This allows system operators to create complex " +"configuration scenarios. Refer to man:rc.conf[5] for further information on " +"this topic." +msgstr "" +"Оба файла [.filename]#/etc/rc.conf# и [.filename]#/etc/rc.conf.local# " +"обрабатываются man:sh[1]. Это позволяет системным операторам создавать " +"сложные сценарии конфигурации. Дополнительную информацию по этой теме можно " +"найти в man:rc.conf[5]." + +#. type: Title == +#: documentation/content/en/books/handbook/config/_index.adoc:370 +#, no-wrap +msgid "Managing Services in FreeBSD" +msgstr "Управление службами в FreeBSD" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:373 +msgid "" +"FreeBSD uses the man:rc[8] system of startup scripts during system " +"initialization and for managing services." +msgstr "" +"FreeBSD использует систему стартовых сценариев man:rc[8] для инициализации " +"системы и управления службами." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:375 +msgid "" +"The scripts listed in [.filename]#/etc/rc.d# provide basic services which " +"can be controlled with the `start`, `stop`, and `restart` options to " +"man:service[8]." +msgstr "" +"Скрипты, перечисленные в [.filename]#/etc/rc.d#, предоставляют базовые " +"сервисы, которыми можно управлять с помощью опций `start`, `stop` и " +"`restart` команды man:service[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:377 +msgid "A basic script may look similar to the following:" +msgstr "Базовый скрипт может выглядеть следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:385 +#, no-wrap +msgid "" +"#!/bin/sh\n" +"#\n" +"# PROVIDE: utility\n" +"# REQUIRE: DAEMON\n" +"# KEYWORD: shutdown\n" +msgstr "" +"#!/bin/sh\n" +"#\n" +"# PROVIDE: utility\n" +"# REQUIRE: DAEMON\n" +"# KEYWORD: shutdown\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:387 +#, no-wrap +msgid ". /etc/rc.subr\n" +msgstr ". /etc/rc.subr\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:390 +#, no-wrap +msgid "" +"name=utility\n" +"rcvar=utility_enable\n" +msgstr "" +"name=utility\n" +"rcvar=utility_enable\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:392 +#, no-wrap +msgid "command=\"/usr/local/sbin/utility\"\n" +msgstr "command=\"/usr/local/sbin/utility\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:394 +#, no-wrap +msgid "load_rc_config $name\n" +msgstr "load_rc_config $name\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:401 +#, no-wrap +msgid "" +"#\n" +"# DO NOT CHANGE THESE DEFAULT VALUES HERE\n" +"# SET THEM IN THE /etc/rc.conf FILE\n" +"#\n" +"utility_enable=${utility_enable-\"NO\"}\n" +"pidfile=${utility_pidfile-\"/var/run/utility.pid\"}\n" +msgstr "" +"#\n" +"# DO NOT CHANGE THESE DEFAULT VALUES HERE\n" +"# SET THEM IN THE /etc/rc.conf FILE\n" +"#\n" +"utility_enable=${utility_enable-\"NO\"}\n" +"pidfile=${utility_pidfile-\"/var/run/utility.pid\"}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:403 +#, no-wrap +msgid "run_rc_command \"$1\"\n" +msgstr "run_rc_command \"$1\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:406 +msgid "" +"Refer to extref:{rc-scripting}[this article] for instructions on how to " +"create custom man:rc[8] scripts." +msgstr "" +"Обратитесь к extref:{rc-scripting}[этой статье] для получения инструкций по " +"созданию пользовательских сценариев man:rc[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:408 +#, no-wrap +msgid "Starting Services" +msgstr "Запуск служб" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:411 +msgid "" +"Many users install third party software on FreeBSD from the Ports Collection " +"and require the installed services to be started upon system initialization." +msgstr "" +"Многие пользователи устанавливают стороннее программное обеспечение на " +"FreeBSD из Коллекции портов и требуют, чтобы установленные службы " +"запускались при инициализации системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:414 +msgid "" +"Services, such as package:security/openssh-portable[] or package:www/nginx[] " +"are just two of the many software packages which may be started during " +"system initialization. This section explains the procedures available for " +"starting services." +msgstr "" +"Службы, такие как package:security/openssh-portable[] или package:www/" +"nginx[], являются лишь двумя из множества программных пакетов, которые могут " +"запускаться при инициализации системы. В этом разделе описаны доступные " +"процедуры для запуска служб." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:416 +msgid "" +"Since the man:rc[8] system is primarily intended to start and stop services " +"at system startup and shutdown time, the `start`, `stop` and `restart` " +"options will only perform their action if the appropriate [.filename]#/etc/" +"rc.conf# variable is set." +msgstr "" +"Поскольку система man:rc[8] в первую очередь предназначена для запуска и " +"остановки служб во время загрузки и выключения системы, опции `start`, " +"`stop` и `restart` выполнят соответствующие действия только в том случае, " +"если установлена соответствующая переменная в [.filename]#/etc/rc.conf#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:418 +msgid "" +"So the first step to start a service, like for example package:www/nginx[] " +"is to add it to [.filename]#/etc/rc.conf# by executing the following command:" +msgstr "" +"Итак, первый шаг для запуска службы, например package:www/nginx[], — это " +"добавить её в [.filename]#/etc/rc.conf#, выполнив следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:422 +#, no-wrap +msgid "# sysrc nginx_enable=\"YES\"\n" +msgstr "# sysrc nginx_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:425 +msgid "Then nginx can be started executing the following command:" +msgstr "Затем nginx можно запустить, выполнив следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:429 +#, no-wrap +msgid "# service nginx start\n" +msgstr "# service nginx start\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:435 +msgid "" +"To `start`, `stop` or `restart` a service regardless of the settings in " +"[.filename]#/etc/rc.conf#, these commands should be prefixed with \"one\". " +"For instance, to start package:www/nginx[] regardless of the current " +"[.filename]#/etc/rc.conf# setting, execute the following command:" +msgstr "" +"Для запуска (`start`), остановки (`stop`) или перезапуска (`restart`) службы " +"независимо от настроек в [.filename]#/etc/rc.conf#, перед этими командами " +"следует добавить \"one\". Например, чтобы запустить package:www/nginx[] " +"независимо от текущих настроек в [.filename]#/etc/rc.conf#, выполните " +"следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:439 +#, no-wrap +msgid "# service nginx onestart\n" +msgstr "# service nginx onestart\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:443 +msgid "" +"It is also possible to put a service automatically into a jail, see the " +"corresponding crossref:jails[service-jails,Service Jails] explanation." +msgstr "" +"Также возможно автоматическое размещение службы в jail, см. соответствующее " +"пояснение в разделе crossref:jails[service-jails,Сервисные клетки]." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:445 +#, no-wrap +msgid "Status of a Service" +msgstr "Состояние службы" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:448 +msgid "To determine if a service is running, use the `status` subcommand." +msgstr "Чтобы определить, запущена ли служба, используйте подкоманду `status`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:450 +msgid "For example, to verify that package:www/nginx[] is running:" +msgstr "Например, чтобы проверить, что package:www/nginx[] работает:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:454 +#, no-wrap +msgid "# service nginx status\n" +msgstr "# service nginx status\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:461 +#, no-wrap +msgid "nginx is running as pid 27871.\n" +msgstr "nginx is running as pid 27871.\n" + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:464 +#, no-wrap +msgid "Reload a Service" +msgstr "Перезагрузить службу" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:468 +msgid "" +"In some cases, it is also possible to `reload` a service. This attempts to " +"send a signal to an individual service, forcing the service to reload its " +"configuration files." +msgstr "" +"В некоторых случаях также можно `перезагрузить` службу. Это попытка " +"отправить сигнал отдельной службе, заставляя её перезагрузить свои " +"конфигурационные файлы." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:470 +msgid "In most cases, this means sending the service a `SIGHUP` signal." +msgstr "В большинстве случаев это означает отправку службе сигнала `SIGHUP`." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:472 +#, fuzzy +#| msgid "*Not all services support this feature.*\n" +msgid "*Not all services support this feature.*" +msgstr "*Не все службы поддерживают эту возможность.*\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:475 +msgid "" +"The man:rc[8] system is used for network services and it also contributes to " +"most of the system initialization. For instance, when the [.filename]#/etc/" +"rc.d/bgfsck# script is executed, it prints out the following message:" +msgstr "" +"Система man:rc[8] используется для сетевых сервисов, а также играет важную " +"роль в большинстве процессов инициализации системы. Например, при выполнении " +"скрипта [.filename]#/etc/rc.d/bgfsck# выводится следующее сообщение:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:479 +#, no-wrap +msgid "Starting background file system checks in 60 seconds.\n" +msgstr "Starting background file system checks in 60 seconds.\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:482 +msgid "" +"This script is used for background file system checks, which occur only " +"during system initialization." +msgstr "" +"Этот скрипт используется для фоновой проверки файловых систем, которая " +"выполняется только во время инициализации системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:485 +msgid "" +"Many system services depend on other services to function properly. For " +"example, man:yp[8] and other RPC-based services may fail to start until " +"after the man:rpcbind[8] service has started." +msgstr "" +"Многие системные службы зависят от других служб для корректной работы. " +"Например, man:yp[8] и другие службы на основе RPC могут не запуститься, пока " +"не будет запущена служба man:rpcbind[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:487 +msgid "Additional information can be found in man:rc[8] and man:rc.subr[8]." +msgstr "Дополнительную информацию можно найти в man:rc[8] и man:rc.subr[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:488 +#, no-wrap +msgid "Using Services to Start Services" +msgstr "Использование служб для запуска сервисов" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:492 +msgid "" +"Other services can be started using man:inetd[8]. Working with man:inetd[8] " +"and its configuration is described in depth in crossref:network-" +"servers[network-inetd,“The inetd Super-Server”]." +msgstr "" +"Другие службы могут быть запущены с помощью man:inetd[8]. Работа с " +"man:inetd[8] и его настройка подробно описаны в crossref:network-" +"servers[network-inetd,«Суперсервер inetd»]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:496 +msgid "" +"In some cases, it may make more sense to use man:cron[8] to start system " +"services. This approach has a number of advantages as man:cron[8] runs " +"these processes as the owner of the man:crontab[5]. This allows regular " +"users to start and maintain their own applications." +msgstr "" +"В некоторых случаях может быть целесообразнее использовать man:cron[8] для " +"запуска системных служб. Такой подход имеет ряд преимуществ, поскольку " +"man:cron[8] запускает эти процессы от имени владельца man:crontab[5]. Это " +"позволяет обычным пользователям запускать и поддерживать свои собственные " +"приложения." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:499 +msgid "" +"The `@reboot` feature of man:cron[8], may be used in place of the time " +"specification. This causes the job to run when man:cron[8] is started, " +"normally during system initialization." +msgstr "" +"Функция `@reboot` в man:cron[8] может быть использована вместо указания " +"времени. Это приводит к запуску задачи при старте man:cron[8], обычно во " +"время инициализации системы." + +#. type: Title == +#: documentation/content/en/books/handbook/config/_index.adoc:501 +#, no-wrap +msgid "Cron and Periodic" +msgstr "Cron и Periodic" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:505 +msgid "" +"Scheduling tasks to run at a certain day or time is a very common task on " +"FreeBSD. The tool in charge of performing this task is man:cron[8]." +msgstr "" +"Планирование задач на определенный день или время — очень распространенная " +"задача в FreeBSD. Инструмент, отвечающий за выполнение этой задачи, — это " +"man:cron[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:507 +msgid "" +"In addition to tasks that can be scheduled by the user via man:cron[8], " +"FreeBSD performs routine background tasks managed by man:periodic[8]." +msgstr "" +"В дополнение к задачам, которые пользователь может запланировать с помощью " +"man:cron[8], FreeBSD выполняет фоновые задачи, управляемые man:periodic[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:509 +#, no-wrap +msgid "Cron" +msgstr "Cron" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:512 +msgid "" +"The man:cron[8] utility runs in the background and regularly checks " +"[.filename]#/etc/crontab# for tasks to execute and searches [.filename]#/var/" +"cron/tabs# for custom crontab files." +msgstr "" +"Утилита man:cron[8] работает в фоновом режиме и периодически проверяет файл " +"[.filename]#/etc/crontab# на наличие задач для выполнения, а также ищет " +"пользовательские файлы crontab в каталоге [.filename]#/var/cron/tabs#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:514 +msgid "" +"These files are used to schedule tasks which cron runs at the specified " +"times." +msgstr "" +"Эти файлы используются для планирования задач, которые cron запускает в " +"указанное время." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:516 +msgid "" +"Each entry in a crontab defines a task to run and is known as a _cron job_." +msgstr "" +"Каждая запись в crontab определяет задачу для выполнения и называется _cron " +"job_." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:522 +msgid "" +"Two different types of configuration files are used: the system crontab, " +"which should not be modified, and user crontabs, which can be created and " +"edited as needed. The format used by these files is documented in " +"man:crontab[5]. The format of the system crontab, [.filename]#/etc/crontab# " +"includes a `who` column which does not exist in user crontabs. In the " +"system crontab, cron runs the command as the user specified in this column. " +"In a user crontab, all commands run as the user who created the crontab." +msgstr "" +"Используются два типа конфигурационных файлов: системный crontab, который не " +"следует изменять, и пользовательские crontabs, которые можно создавать и " +"редактировать по необходимости. Формат этих файлов описан в man:crontab[5]. " +"Формат системного crontab, [.filename]#/etc/crontab#, включает столбец " +"`who`, который отсутствует в пользовательских crontabs. В системном crontab " +"команды выполняются от имени пользователя, указанного в этом столбце. В " +"пользовательском crontab все команды выполняются от имени пользователя, " +"создавшего crontab." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:525 +msgid "" +"User crontabs allow individual users to schedule their own tasks. The " +"`root` user can also have a user [.filename]#crontab# which can be used to " +"schedule tasks that do not exist in the system [.filename]#crontab#." +msgstr "" +"Пользовательские crontab-файлы позволяют отдельным пользователям планировать " +"свои собственные задачи. У пользователя `root` также может быть " +"пользовательский [.filename]#crontab#, который можно использовать для " +"планирования задач, отсутствующих в системном [.filename]#crontab#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:527 +msgid "" +"Here is a sample entry from the system crontab, [.filename]#/etc/crontab#:" +msgstr "Вот пример записи из системного crontab, [.filename]#/etc/crontab#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:553 +#, no-wrap +msgid "" +"# /etc/crontab - root's crontab for FreeBSD\n" +"#\n" +"# <.>\n" +"#\n" +"SHELL=/bin/sh\n" +"PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin <.>\n" +"#\n" +"#minute hour mday month wday who command <.>\n" +"#\n" +"# Save some entropy so that /dev/random can re-seed on boot.\n" +"*/11 * * * * operator /usr/libexec/save-entropy <.>\n" +"#\n" +"# Rotate log files every hour, if necessary.\n" +"0 * * * * root newsyslog\n" +"#\n" +"# Perform daily/weekly/monthly maintenance.\n" +"1 3 * * * root periodic daily\n" +"15 4 * * 6 root periodic weekly\n" +"30 5 1 * * root periodic monthly\n" +"#\n" +"# Adjust the time zone if the CMOS clock keeps local time, as opposed to\n" +"# UTC time. See adjkerntz(8) for details.\n" +"1,31 0-5 * * * root adjkerntz -a\n" +msgstr "" +"# /etc/crontab - root's crontab for FreeBSD\n" +"#\n" +"# <.>\n" +"#\n" +"SHELL=/bin/sh\n" +"PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin <.>\n" +"#\n" +"#minute hour mday month wday who command <.>\n" +"#\n" +"# Save some entropy so that /dev/random can re-seed on boot.\n" +"*/11 * * * * operator /usr/libexec/save-entropy <.>\n" +"#\n" +"# Rotate log files every hour, if necessary.\n" +"0 * * * * root newsyslog\n" +"#\n" +"# Perform daily/weekly/monthly maintenance.\n" +"1 3 * * * root periodic daily\n" +"15 4 * * 6 root periodic weekly\n" +"30 5 1 * * root periodic monthly\n" +"#\n" +"# Adjust the time zone if the CMOS clock keeps local time, as opposed to\n" +"# UTC time. See adjkerntz(8) for details.\n" +"1,31 0-5 * * * root adjkerntz -a\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:557 +msgid "" +"Lines that begin with the `+#+` character are comments. A comment can be " +"placed in the file as a reminder of what and why a desired action is " +"performed. Comments cannot be on the same line as a command or else they " +"will be interpreted as part of the command; they must be on a new line. " +"Blank lines are ignored." +msgstr "" +"Строки, начинающиеся с символа `+#+`, являются комментариями. Комментарий " +"можно добавить в файл как напоминание о том, что и зачем выполняется. " +"Комментарии не могут находиться на одной строке с командой, иначе они будут " +"восприняты как часть команды; они должны быть на отдельной строке. Пустые " +"строки игнорируются." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:559 +msgid "" +"The equals (`=`) character is used to define any environment settings. In " +"this example, it is used to define the `SHELL` and `PATH`. If the `SHELL` is " +"omitted, cron will use the default Bourne shell. If the `PATH` is omitted, " +"the full path must be given to the command or script to run." +msgstr "" +"Символ равенства (`=`) используется для определения параметров окружения. В " +"данном примере он применяется для задания переменных `SHELL` и `PATH`. Если " +"`SHELL` не указана, cron будет использовать оболочку Bourne по умолчанию. " +"Если `PATH` не указан, необходимо указывать полный путь к команде или " +"скрипту, который требуется выполнить." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:561 +msgid "" +"This line defines the seven fields used in a system crontab: `minute`, " +"`hour`, `mday`, `month`, `wday`, `who`, and `command`. The `minute` field is " +"the time in minutes when the specified command will be run, the `hour` is " +"the hour when the specified command will be run, the `mday` is the day of " +"the month, `month` is the month, and `wday` is the day of the week. These " +"fields must be numeric values, representing the twenty-four hour clock, or a " +"`*`, representing all values for that field. The `who` field only exists in " +"the system crontab and specifies which user the command should be run as. " +"The last field is the command to be executed." +msgstr "" +"Эта строка определяет семь полей, используемых в системном crontab: " +"`minute`, `hour`, `mday`, `month`, `wday`, `who` и `command`. Поле `minute` " +"указывает время в минутах, когда должна выполняться указанная команда, " +"`hour` — час, `mday` — день месяца, `month` — месяц, а `wday` — день недели. " +"Эти поля должны содержать числовые значения в 24-часовом формате или символ " +"`*`, обозначающий все возможные значения для данного поля. Поле `who` " +"существует только в системном crontab и указывает, от имени какого " +"пользователя должна выполняться команда. Последнее поле — это команда, " +"которую нужно выполнить." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:563 +msgid "" +"This entry defines the values for this cron job. The `\\*/11`, followed by " +"several more `*` characters, specifies that `/usr/libexec/save-entropy` is " +"invoked by `operator` every eleven minutes of every hour, of every day and " +"day of the week, of every month. Commands can include any number of " +"switches. However, commands which extend to multiple lines need to be broken " +"with the backslash \"\\\" continuation character." +msgstr "" +"Эта запись определяет значения для этого задания cron. Комбинация `\\*/11`, " +"за которой следует несколько символов `*`, указывает, что `/usr/libexec/save-" +"entropy` запускается от имени пользователя `operator` каждые одиннадцать " +"минут каждого часа, каждого дня и дня недели, каждого месяца. Команды могут " +"включать любое количество параметров. Однако команды, занимающие несколько " +"строк, должны быть разделены символом продолжения обратной косой черты \"\\" +"\"." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:565 +#, no-wrap +msgid "Creating a User Crontab" +msgstr "Создание пользовательского Crontab" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:568 +msgid "To create a user crontab, invoke `crontab` in editor mode:" +msgstr "" +"Чтобы создать пользовательский crontab, вызовите `crontab` в режиме " +"редактора:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:572 +#, no-wrap +msgid "% crontab -e\n" +msgstr "% crontab -e\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:577 +msgid "" +"This will open the user's crontab using the default text editor. The first " +"time a user runs this command, it will open an empty file. Once a user " +"creates a crontab, this command will open that file for editing." +msgstr "" +"Это откроет crontab пользователя в текстовом редакторе по умолчанию. При " +"первом запуске этой команды откроется пустой файл. После создания crontab " +"эта команда будет открывать его для редактирования." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:579 +msgid "" +"It is useful to add these lines to the top of the crontab file in order to " +"set the environment variables and to remember the meanings of the fields in " +"the crontab:" +msgstr "" +"Полезно добавить следующие строки в начало файла crontab, чтобы установить " +"переменные окружения и запомнить назначение полей в crontab:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:586 +#, no-wrap +msgid "" +"SHELL=/bin/sh\n" +"PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin\n" +"# Order of crontab fields\n" +"# minute hour mday month wday command\n" +msgstr "" +"SHELL=/bin/sh\n" +"PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin\n" +"# Order of crontab fields\n" +"# minute hour mday month wday command\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:591 +msgid "" +"Then add a line for each command or script to run, specifying the time to " +"run the command. This example runs the specified custom Bourne shell script " +"every day at two in the afternoon. Since the path to the script is not " +"specified in `PATH`, the full path to the script is given:" +msgstr "" +"Затем добавьте строку для каждой команды или скрипта, указав время их " +"выполнения. В этом примере указанный пользовательский скрипт Bourne shell " +"будет запускаться каждый день в два часа дня. Поскольку путь к скрипту не " +"указан в `PATH`, указывается полный путь к скрипту:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:595 +#: documentation/content/en/books/handbook/config/_index.adoc:625 +#, no-wrap +msgid "0 14 * * * /home/user/bin/mycustomscript.sh\n" +msgstr "0 14 * * * /home/user/bin/mycustomscript.sh\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:601 +msgid "" +"Before using a custom script, make sure it is executable and test it with " +"the limited set of environment variables set by cron. To replicate the " +"environment that would be used to run the above cron entry, use:" +msgstr "" +"Перед использованием пользовательского скрипта убедитесь, что он " +"исполняемый, и протестируйте его с ограниченным набором переменных " +"окружения, установленных cron. Чтобы воспроизвести окружение, которое будет " +"использоваться для выполнения вышеуказанной записи cron, используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:605 +#, no-wrap +msgid "env -i SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/home/user LOGNAME=user /home/user/bin/mycustomscript.sh\n" +msgstr "env -i SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin HOME=/home/user LOGNAME=user /home/user/bin/mycustomscript.sh\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:609 +msgid "" +"The environment set by cron is discussed in man:crontab[5]. Checking that " +"scripts operate correctly in a cron environment is especially important if " +"they include any commands that delete files using wildcards." +msgstr "" +"Окружение, устанавливаемое cron, описано в man:crontab[5]. Особенно важно " +"проверять корректность работы скриптов в окружении cron, если они содержат " +"команды удаления файлов с использованием шаблонов." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:614 +msgid "" +"When finished editing the crontab, save the file. It will automatically be " +"installed, and cron will read the crontab and run its cron jobs at their " +"specified times. To list the cron jobs in a crontab, use this command:" +msgstr "" +"После завершения редактирования файла crontab сохраните его. Он будет " +"автоматически установлен, и cron прочитает crontab и запустит задания по " +"расписанию. Для просмотра списка заданий в crontab используйте следующую " +"команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:618 +#, no-wrap +msgid "% crontab -l\n" +msgstr "% crontab -l\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:628 +msgid "To remove all of the cron jobs in a user crontab:" +msgstr "Удалить все задания cron из пользовательского crontab:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:632 +#, no-wrap +msgid "% crontab -r\n" +msgstr "% crontab -r\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:639 +#, no-wrap +msgid "remove crontab for user? y\n" +msgstr "remove crontab for user? y\n" + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:642 +#, no-wrap +msgid "Periodic" +msgstr "Периодические задачи (Periodic)" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:648 +msgid "" +"FreeBSD provides a set of system management scripts to check status of " +"various subsystems, perform security-related checks, rotate log files, etc. " +"These scripts are run on a periodic basis: daily. weekly, or monthly. The " +"management of these tasks is performed by man:periodic[8] and its " +"configuration resides in man:periodic.conf[5]. The periodic tasks are " +"initiated by entries in the system crontab, shown above." +msgstr "" +"FreeBSD предоставляет набор скриптов для управления системой, которые " +"проверяют состояние различных подсистем, выполняют проверки, связанные с " +"безопасностью, осуществляют ротацию файлов журналов и т.д. Эти скрипты " +"запускаются периодически: ежедневно, еженедельно или ежемесячно. Управление " +"этими задачами осуществляется с помощью man:periodic[8], а его конфигурация " +"находится в man:periodic.conf[5]. Периодические задачи инициируются записями " +"в системном crontab, как показано выше." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:650 +msgid "" +"Scripts executed by man:periodic[8] are located in [.filename]#/etc/periodic/" +"# for base utilities and in [.filename]#/usr/local/etc/periodic/# for third-" +"party software." +msgstr "" +"Скрипты, выполняемые man:periodic[8], расположены в [.filename]#/etc/" +"periodic/# для базовых утилит и в [.filename]#/usr/local/etc/periodic/# для " +"стороннего программного обеспечения." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:652 +msgid "" +"They are organized in 4 subdirectories, daily, weekly, monthly and security." +msgstr "Они организованы в 4 подкаталога: daily, weekly, monthly и security." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:654 +#, no-wrap +msgid "Enable or Disable Periodic Tasks" +msgstr "Включение или отключение периодических задач" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:657 +msgid "FreeBSD has some scripts enabled by default to run periodically." +msgstr "" +"FreeBSD имеет некоторые скрипты, включённые по умолчанию для периодического " +"выполнения." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:659 +msgid "" +"To enable or disable a task, the first step is to edit [.filename]#/etc/" +"periodic.conf# executing the following command:" +msgstr "" +"Чтобы включить или отключить задачу, первым шагом необходимо отредактировать " +"файл [.filename]#/etc/periodic.conf#, выполнив следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:663 +#, no-wrap +msgid "# ee /etc/periodic.conf\n" +msgstr "# ee /etc/periodic.conf\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:666 +msgid "" +"And then to enable, for example, `daily_status_zfs_enable` put the following " +"content in the file:" +msgstr "" +"И затем, чтобы включить, например, `daily_status_zfs_enable`, поместите " +"следующее содержимое в файл:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:670 +#, no-wrap +msgid "daily_status_zfs_enable=\"YES\"\n" +msgstr "daily_status_zfs_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:673 +msgid "" +"To disable a task that is active by default, all that needs to be done is to " +"change `YES` to `NO`." +msgstr "" +"Чтобы отключить задание, которое активно по умолчанию, достаточно изменить " +"`YES` на `NO`." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:675 +#, no-wrap +msgid "Configuring the Output of Periodic Tasks" +msgstr "Настройка вывода периодических задач" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:678 +msgid "" +"In [.filename]#/etc/periodic.conf# the variables `daily_output`, " +"`weekly_output` and `monthly_output` specifies where to send the results of " +"the script execution." +msgstr "" +"В файле [.filename]#/etc/periodic.conf# переменные `daily_output`, " +"`weekly_output` и `monthly_output` определяют, куда отправлять результаты " +"выполнения скриптов." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:680 +msgid "" +"By default the output of the periodic scripts are emailed to root, and " +"therefore it is best to read root's mail or alias root to a mailbox that is " +"monitored." +msgstr "" +"По умолчанию результаты работы периодических скриптов отправляются по " +"электронной почте пользователю root, поэтому рекомендуется либо читать почту " +"root, либо настроить пересылку писем root на почтовый ящик, который " +"регулярно проверяется." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:682 +msgid "" +"To send the results to another email or to other emails, add the email " +"addresses separated by spaces to [.filename]#/etc/periodic.conf#:" +msgstr "" +"Чтобы отправить результаты на другой адрес электронной почты или на " +"несколько адресов, добавьте email-адреса через пробел в файл [.filename]#/" +"etc/periodic.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:688 +#, no-wrap +msgid "" +"daily_output=\"email1@example.com email2@example.com\"\n" +"weekly_output=\"email1@example.com email2@example.com\"\n" +"monthly_output=\"email1@example.com email2@example.com\"\n" +msgstr "" +"daily_output=\"email1@example.com email2@example.com\"\n" +"weekly_output=\"email1@example.com email2@example.com\"\n" +"monthly_output=\"email1@example.com email2@example.com\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:691 +msgid "" +"To log periodic output instead of receiving it as email, add the following " +"lines to [.filename]#/etc/periodic.conf#. man:newsyslog[8] will rotate these " +"files at the appropriate times:" +msgstr "" +"Для записи периодического вывода в журнал вместо получения его по " +"электронной почте добавьте следующие строки в [.filename]#/etc/" +"periodic.conf#. Утилита man:newsyslog[8] будет выполнять ротацию этих файлов " +"в соответствующее время:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:697 +#, no-wrap +msgid "" +"daily_output=/var/log/daily.log\n" +"weekly_output=/var/log/weekly.log\n" +"monthly_output=/var/log/monthly.log\n" +msgstr "" +"daily_output=/var/log/daily.log\n" +"weekly_output=/var/log/weekly.log\n" +"monthly_output=/var/log/monthly.log\n" + +#. type: Title == +#: documentation/content/en/books/handbook/config/_index.adoc:700 +#, no-wrap +msgid "Configuring System Logging" +msgstr "Настройка системного журналирования" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:706 +msgid "" +"Generating and reading system logs is an important aspect of system " +"administration. The information in system logs can be used to detect " +"hardware and software issues as well as application and system configuration " +"errors. This information also plays an important role in security auditing " +"and incident response. Most system daemons and applications will generate " +"log entries." +msgstr "" +"Генерация и чтение системных журналов — важный аспект администрирования " +"системы. Информация в системных журналах может использоваться для выявления " +"проблем с оборудованием и программным обеспечением, а также ошибок в " +"конфигурации приложений и системы. Эти данные также играют важную роль в " +"аудите безопасности и реагировании на инциденты. Большинство системных " +"демонов и приложений создают записи в журналах." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:709 +msgid "" +"FreeBSD provides a system logger, man:syslogd[8], to manage logging. By " +"default, syslogd is enabled and started when the system boots." +msgstr "" +"FreeBSD предоставляет системный модуль журналирования man:syslogd[8] для " +"управления журналированием. По умолчанию syslogd включен и запускается при " +"загрузке системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:711 +msgid "" +"This section describes how to configure the FreeBSD system logger for both " +"local and remote logging and how to perform log rotation and log management." +msgstr "" +"В этом разделе описывается, как настроить системный модуль журналирования " +"FreeBSD для локального и удалённого ведения журналов, а также как выполнять " +"ротацию и управление журналами." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:712 +#, no-wrap +msgid "Configuring Local Logging" +msgstr "Настройка локального журналирования" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:719 +msgid "" +"The configuration file, [.filename]#/etc/syslog.conf#, controls what syslogd " +"does with log entries as they are received. There are several parameters to " +"control the handling of incoming events. The _facility_ describes which " +"subsystem generated the message, such as the kernel or a daemon, and the " +"_level_ describes the severity of the event that occurred. This makes it " +"possible to configure if and where a log message is logged, depending on the " +"facility and level. It is also possible to take action depending on the " +"application that sent the message, and in the case of remote logging, the " +"hostname of the machine generating the logging event." +msgstr "" +"Файл конфигурации [.filename]#/etc/syslog.conf# определяет, как syslogd " +"обрабатывает поступающие записи журналов. Существует несколько параметров " +"для управления обработкой входящих событий. _Facility_ (источник) указывает, " +"какая подсистема сгенерировала сообщение, например, ядро или демон, а " +"_level_ (уровень) описывает степень серьезности произошедшего события. Это " +"позволяет настроить, будет ли сообщение зарегистрировано и куда, в " +"зависимости от категории и уровня. Также можно выполнять действия в " +"зависимости от приложения, отправившего сообщение, а в случае удалённого " +"журналирования — от имени хоста машины, генерирующей событие." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:726 +msgid "" +"This configuration file contains one line per action, where the syntax for " +"each line is a selector field followed by an action field. The syntax of " +"the selector field is _facility.level_ which will match log messages from " +"_facility_ at level _level_ or higher. It is also possible to add an " +"optional comparison flag before the level to specify more precisely what is " +"logged. Multiple selector fields can be used for the same action, and are " +"separated with a semicolon (`;`). Using `*` will match everything. The " +"action field denotes where to send the log message, such as to a file or " +"remote log host." +msgstr "" +"Этот файл конфигурации содержит по одной строке для каждого действия, где " +"синтаксис каждой строки представляет собой поле селектора, за которым " +"следует поле действия. Синтаксис поля селектора — _facility.level_, что " +"соответствует журнальным сообщениям от _facility_ уровня _level_ и выше. " +"Также можно добавить необязательный флаг сравнения перед уровнем, чтобы " +"точнее указать, что регистрируется. Для одного действия можно использовать " +"несколько полей селектора, разделённых точкой с запятой (`;`). Использование " +"`*` соответствует всем сообщениям. Поле действия указывает, куда отправлять " +"журнальное сообщение, например, в файл или на удалённый хост для " +"журналирования." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:728 +msgid "" +"As an example, here is the default [.filename]#/etc/syslog.conf# from " +"FreeBSD:" +msgstr "" +"В качестве примера приведен стандартный файл [.filename]#/etc/syslog.conf# " +"из FreeBSD:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:764 +#, no-wrap +msgid "" +"# Spaces ARE valid field separators in this file. However,\n" +"# other *nix-like systems still insist on using tabs as field\n" +"# separators. If you are sharing this file between systems, you\n" +"# may want to use only tabs as field separators here.\n" +"# Consult the syslog.conf(5) manpage.\n" +"*.err;kern.warning;auth.notice;mail.crit /dev/console <.>\n" +"*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages\n" +"security.* /var/log/security\n" +"auth.info;authpriv.info /var/log/auth.log\n" +"mail.info /var/log/maillog <.>\n" +"cron.* /var/log/cron\n" +"!-devd\n" +"*.=debug /var/log/debug.log <.>\n" +"*.emerg *\n" +"daemon.info /var/log/daemon.log\n" +"# uncomment this to log all writes to /dev/console to /var/log/console.log\n" +"# touch /var/log/console.log and chmod it to mode 600 before it will work\n" +"#console.info /var/log/console.log\n" +"# uncomment this to enable logging of all log messages to /var/log/all.log\n" +"# touch /var/log/all.log and chmod it to mode 600 before it will work\n" +"#*.* /var/log/all.log\n" +"# uncomment this to enable logging to a remote loghost named loghost\n" +"#*.* @loghost\n" +"# uncomment these if you're running inn\n" +"# news.crit /var/log/news/news.crit\n" +"# news.err /var/log/news/news.err\n" +"# news.notice /var/log/news/news.notice\n" +"# Uncomment this if you wish to see messages produced by devd\n" +"# !devd\n" +"# *.>=notice /var/log/devd.log <.>\n" +"!*\n" +"include /etc/syslog.d\n" +"include /usr/local/etc/syslog.d\n" +msgstr "" +"# Spaces ARE valid field separators in this file. However,\n" +"# other *nix-like systems still insist on using tabs as field\n" +"# separators. If you are sharing this file between systems, you\n" +"# may want to use only tabs as field separators here.\n" +"# Consult the syslog.conf(5) manpage.\n" +"*.err;kern.warning;auth.notice;mail.crit /dev/console <.>\n" +"*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages\n" +"security.* /var/log/security\n" +"auth.info;authpriv.info /var/log/auth.log\n" +"mail.info /var/log/maillog <.>\n" +"cron.* /var/log/cron\n" +"!-devd\n" +"*.=debug /var/log/debug.log <.>\n" +"*.emerg *\n" +"daemon.info /var/log/daemon.log\n" +"# uncomment this to log all writes to /dev/console to /var/log/console.log\n" +"# touch /var/log/console.log and chmod it to mode 600 before it will work\n" +"#console.info /var/log/console.log\n" +"# uncomment this to enable logging of all log messages to /var/log/all.log\n" +"# touch /var/log/all.log and chmod it to mode 600 before it will work\n" +"#*.* /var/log/all.log\n" +"# uncomment this to enable logging to a remote loghost named loghost\n" +"#*.* @loghost\n" +"# uncomment these if you're running inn\n" +"# news.crit /var/log/news/news.crit\n" +"# news.err /var/log/news/news.err\n" +"# news.notice /var/log/news/news.notice\n" +"# Uncomment this if you wish to see messages produced by devd\n" +"# !devd\n" +"# *.>=notice /var/log/devd.log <.>\n" +"!*\n" +"include /etc/syslog.d\n" +"include /usr/local/etc/syslog.d\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:767 +msgid "" +"Matches all messages with a level of `err` or higher, as well as " +"`kern.warning`, `auth.notice` and `mail.crit`, and sends these log messages " +"to the console ([.filename]#/dev/console#)." +msgstr "" +"Соответствует всем сообщениям с уровнем `err` или выше, а также " +"`kern.warning`, `auth.notice` и `mail.crit`, и отправляет эти сообщения " +"журнала на консоль ([.filename]#/dev/console#)." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:768 +msgid "" +"Matches all messages from the `mail` facility at level `info` or above and " +"logs the messages to [.filename]#/var/log/maillog#." +msgstr "" +"Соответствует всем сообщениям из источника `mail` уровня `info` и выше и " +"записывает их в [.filename]#/var/log/maillog#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:769 +msgid "" +"Uses a comparison flag (`=`) to only match messages at level `debug` and " +"logs them to [.filename]#/var/log/debug.log#." +msgstr "" +"Использует флаг сравнения (`=`) для совпадения только с сообщениями уровня " +"`debug` и записывает их в [.filename]#/var/log/debug.log#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:770 +msgid "" +"Is an example usage of a program specification. This makes the rules " +"following it only valid for the specified program. In this case, only the " +"messages generated by man:devd[8] are logged to [.filename]#/var/log/" +"devd.log#." +msgstr "" +"Пример использования спецификации программы. Это делает следующие правила " +"действительными только для указанной программы. В данном случае только " +"сообщения, генерируемые man:devd[8], записываются в [.filename]#/var/log/" +"devd.log#." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:772 +msgid "" +"For more information about [.filename]#/etc/syslog.conf#, its syntax, and " +"more advanced usage examples, see man:syslog.conf[5]." +msgstr "" +"Для получения дополнительной информации о [.filename]#/etc/syslog.conf#, его " +"синтаксисе и более сложных примерах использования см. man:syslog.conf[5]." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:774 +#, no-wrap +msgid "Logging Facilities" +msgstr "Источники системы журналирования" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:778 +msgid "" +"A facility describes the part of the system generating the message. " +"Facilities are a way of separating the different messages so that it is " +"easier for the user to consult the logs." +msgstr "" +"Источник описывает часть системы, генерирующую сообщение. Источники — это " +"способ разделения различных сообщений, чтобы пользователю было проще " +"анализировать журналы." + +#. type: Block title +#: documentation/content/en/books/handbook/config/_index.adoc:779 +#, no-wrap +msgid "syslog facilities" +msgstr "Источники системных журналов (syslog)" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:782 +#: documentation/content/en/books/handbook/config/_index.adoc:845 +#, no-wrap +msgid "Name" +msgstr "Имя" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:784 +#: documentation/content/en/books/handbook/config/_index.adoc:847 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:785 +#, no-wrap +msgid "auth" +msgstr "auth" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:787 +#, no-wrap +msgid "The authorization system: man:login[1], man:su[1], man:getty[8], etc." +msgstr "Система авторизации: man:login[1], man:su[1], man:getty[8] и т.д." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:788 +#, no-wrap +msgid "authpriv" +msgstr "authpriv" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:790 +#, no-wrap +msgid "The same as auth, but logged to a file readable only by root." +msgstr "То же, что и auth, но записывается в файл, доступный только для чтения root." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:791 +#, no-wrap +msgid "console" +msgstr "console" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:793 +#, no-wrap +msgid "Messages written to [.filename]#/dev/console# by the kernel console output driver." +msgstr "Сообщения, записываемые драйвером вывода консоли ядра в [.filename]#/dev/console#." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:794 +#, no-wrap +msgid "cron" +msgstr "cron" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:796 +#, no-wrap +msgid "Messages written by the man:cron[8] daemon." +msgstr "Сообщения, записываемые демоном man:cron[8]." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:797 +#, no-wrap +msgid "daemon" +msgstr "daemon" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:799 +#, no-wrap +msgid "System daemons, such as man:routed[8], that are not provided for explicitly by other facilities." +msgstr "Системные демоны, такие как man:routed[8], которые не предусмотрены явно другими средствами." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:800 +#, no-wrap +msgid "ftp" +msgstr "ftp" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:802 +#, no-wrap +msgid "The file transfer protocol daemons: man:ftpd[8], man:tftpd[8]." +msgstr "Демоны протокола передачи файлов: man:ftpd[8], man:tftpd[8]." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:805 +#, no-wrap +msgid "Messages generated by the kernel. These cannot be generated by any user processes." +msgstr "Сообщения, генерируемые ядром. Они не могут быть созданы какими-либо пользовательскими процессами." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:806 +#, no-wrap +msgid "lpr" +msgstr "lpr" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:808 +#, no-wrap +msgid "The line printer spooling system: man:lpr[1], man:lpc[8], man:lpd[8], etc." +msgstr "Система буферизации принтеров: man:lpr[1], man:lpc[8], man:lpd[8] и т.д." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:809 +#, no-wrap +msgid "mail" +msgstr "mail" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:811 +#, no-wrap +msgid "The mail system." +msgstr "Почтовая система." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:812 +#, no-wrap +msgid "mark" +msgstr "mark" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:814 +#, no-wrap +msgid "This facility adds a record every 20 minutes." +msgstr "Этот механизм добавляет запись каждые 20 минут." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:815 +#, no-wrap +msgid "news" +msgstr "news" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:817 +#, no-wrap +msgid "The network news system." +msgstr "Система сетевых новостей." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:818 +#, no-wrap +msgid "ntp" +msgstr "ntp" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:820 +#, no-wrap +msgid "The network time protocol system." +msgstr "Система протокола сетевого времени." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:821 +#, no-wrap +msgid "security" +msgstr "security" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:823 +#, no-wrap +msgid "Security subsystems, such as man:ipfw[4]." +msgstr "Подсистемы безопасности, такие как man:ipfw[4]." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:824 +#, no-wrap +msgid "syslog" +msgstr "syslog" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:826 +#, no-wrap +msgid "Messages generated internally by syslogd(8)." +msgstr "Сообщения, генерируемые внутренне syslogd(8)." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:829 +#, no-wrap +msgid "Messages generated by random user processes. *This is the default facility identifier if none is specified*." +msgstr "Сообщения, генерируемые случайными пользовательскими процессами. *Это идентификатор источника по умолчанию, если не указан другой*." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:830 +#, no-wrap +msgid "uucp" +msgstr "uucp" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:832 +#, no-wrap +msgid "The Unix-to-Unix Copy system. An ancient protocol. Really weird to see messages from this facility." +msgstr "Система Unix-to-Unix Copy. Устаревший протокол. Очень странно видеть сообщения от этого сервиса." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:833 +#, no-wrap +msgid "local0 through local7" +msgstr "от `local0`до `local7`" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:835 +#, no-wrap +msgid "Reserved for local use." +msgstr "Зарезервировано для локального использования." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:838 +#, no-wrap +msgid "Logging Levels" +msgstr "Уровни журналирования" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:841 +msgid "" +"The level describes the severity of the message, and is a keyword from the " +"following ordered list (higher to lower):" +msgstr "" +"Уровень описывает степень важности сообщения и является ключевым словом из " +"следующего упорядоченного списка (от высшего к низшему):" + +#. type: Block title +#: documentation/content/en/books/handbook/config/_index.adoc:842 +#, no-wrap +msgid "syslog levels" +msgstr "Уровни в syslog" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:848 +#, no-wrap +msgid "emerg" +msgstr "emerg" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:850 +#, no-wrap +msgid "A panic condition. This is normally broadcast to all users." +msgstr "Паника. Обычно это сообщение рассылается всем пользователям." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:851 +#, no-wrap +msgid "alert" +msgstr "alert" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:853 +#, no-wrap +msgid "A condition that should be corrected immediately, such as a corrupted system database." +msgstr "Условие, которое должно быть немедленно исправлено, например, повреждение системной базы данных." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:854 +#, no-wrap +msgid "crit" +msgstr "crit" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:856 +#, no-wrap +msgid "Critical conditions, e.g., hard device errors." +msgstr "Критические условия, например, аппаратные ошибки устройств." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:857 +#, no-wrap +msgid "err" +msgstr "err" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:859 +#, no-wrap +msgid "Errors." +msgstr "Ошибки." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:860 +#, no-wrap +msgid "warning" +msgstr "warning" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:862 +#, no-wrap +msgid "Warning messages." +msgstr "Предупреждающие сообщения." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:863 +#, no-wrap +msgid "notice" +msgstr "notice" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:865 +#, no-wrap +msgid "Conditions that are not error conditions, but should possibly be handled specially." +msgstr "Условия, которые не являются ошибочными, но, возможно, требуют специальной обработки." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:866 +#, no-wrap +msgid "info" +msgstr "info" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:868 +#, no-wrap +msgid "Informational messages." +msgstr "Информационные сообщения." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:871 +#, no-wrap +msgid "Messages that contain information normally of use only when debugging a program." +msgstr "Сообщения, содержащие информацию, которая обычно полезна только при отладке программы." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:872 +#, no-wrap +msgid "none" +msgstr "none" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:874 +#, no-wrap +msgid "This special level disables a particular facility." +msgstr "Этот специальный уровень отключает определённую функцию." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:877 +#, no-wrap +msgid "Read Log Messages" +msgstr "Как читать сообщения журналов" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:881 +msgid "" +"By default FreeBSD log files use the format link:https://" +"datatracker.ietf.org/doc/html/rfc3164[rfc3164], also known as The BSD syslog " +"Protocol. Learn more about other formats and how to use them at " +"man:syslog[8]." +msgstr "" +"По умолчанию журнальные файлы FreeBSD используют формат link:https://" +"datatracker.ietf.org/doc/html/rfc3164[rfc3164], также известный как протокол " +"BSD syslog. Подробнее о других форматах и их использовании можно узнать в " +"man:syslog[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:883 +msgid "Typically the logs have the following syntax:" +msgstr "Обычно журналы имеют следующий синтаксис:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:887 +#, no-wrap +msgid "date time hostname program[pid]: the message\n" +msgstr "date time hostname program[pid]: the message\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:890 +msgid "" +"The output of the [.filename]#/var/log/cron# file will be used as an example:" +msgstr "" +"В качестве примера будет использоваться вывод файла [.filename]#/var/log/" +"cron#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:897 +#, no-wrap +msgid "" +"[...]\n" +"Jul 16 12:40:00 FreeBSD /usr/sbin/cron[81519]: (root) CMD (/usr/libexec/atrun)\n" +"Jul 16 12:44:00 FreeBSD /usr/sbin/cron[83072]: (operator) CMD (/usr/libexec/save-entropy)\n" +"[...]\n" +msgstr "" +"[...]\n" +"Jul 16 12:40:00 FreeBSD /usr/sbin/cron[81519]: (root) CMD (/usr/libexec/atrun)\n" +"Jul 16 12:44:00 FreeBSD /usr/sbin/cron[83072]: (operator) CMD (/usr/libexec/save-entropy)\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:900 +msgid "" +"Verbose logging, so the facility and the level on each message will be " +"added, can be enabled in man:syslog[8] by running the following command:" +msgstr "" +"Подробное журналирование, при котором к каждому сообщению добавляются данные " +"о facility и level, можно включить в man:syslog[8], выполнив следующую " +"команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:904 +#, no-wrap +msgid "# sysrc syslogd_flags=\"-vv\"\n" +msgstr "# sysrc syslogd_flags=\"-vv\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:907 +msgid "" +"Once the function is activated, the facility and the level will be displayed " +"in the log as shown in the following example:" +msgstr "" +"После активации функции источник и уровень будут отображаться в журнале, как " +"показано в следующем примере:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:914 +#, no-wrap +msgid "" +"[...]\n" +"Jul 16 17:40:00 <cron.info> FreeBSD /usr/sbin/cron[1016]: (root) CMD (/usr/libexec/atrun)\n" +"Jul 16 17:44:00 <cron.info> FreeBSD /usr/sbin/cron[1030]: (operator) CMD (/usr/libexec/save-entropy)\n" +"[...]\n" +msgstr "" +"[...]\n" +"Jul 16 17:40:00 <cron.info> FreeBSD /usr/sbin/cron[1016]: (root) CMD (/usr/libexec/atrun)\n" +"Jul 16 17:44:00 <cron.info> FreeBSD /usr/sbin/cron[1030]: (operator) CMD (/usr/libexec/save-entropy)\n" +"[...]\n" + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:916 +#, no-wrap +msgid "Log Management and Rotation" +msgstr "Управление журналами и их ротация" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:919 +msgid "" +"Log files can grow quickly, taking up disk space and making it more " +"difficult to locate useful information." +msgstr "" +"Файлы журналов могут быстро увеличиваться в размере, занимая место на диске " +"и затрудняя поиск полезной информации." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:921 +msgid "" +"In FreeBSD, man:newsyslog[8] is used to manage log files and attempt to " +"mitigate this." +msgstr "" +"В FreeBSD для управления файлами журналов и предотвращения этой проблемы " +"используется man:newsyslog[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:923 +msgid "" +"This built-in program periodically rotates and compresses log files, and " +"optionally creates missing log files and signals programs when log files are " +"moved." +msgstr "" +"Эта встроенная программа периодически выполняет ротацию и сжатие файлов " +"журналов, а также при необходимости создает отсутствующие файлы журналов и " +"отправляет сигналы программам при перемещении файлов журналов." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:928 +msgid "" +"Since newsyslog is run from man:cron[8], it cannot rotate files more often " +"than it is scheduled to run from man:cron[8]. In the default configuration, " +"it runs every hour." +msgstr "" +"Поскольку newsyslog запускается через man:cron[8], он не может выполнять " +"ротацию файлов чаще, чем запланировано в man:cron[8]. В стандартной " +"конфигурации он запускается каждый час." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:931 +msgid "" +"Here is the default configuration in FreeBSD, more information in " +"man:newsyslog.conf[5]:" +msgstr "" +"Вот стандартная конфигурация в FreeBSD, подробнее можно узнать в " +"man:newsyslog.conf[5]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:966 +#, no-wrap +msgid "" +"# configuration file for newsyslog\n" +"#\n" +"# Entries which do not specify the '/pid_file' field will cause the\n" +"# syslogd process to be signalled when that log file is rotated. This\n" +"# action is only appropriate for log files which are written to by the\n" +"# syslogd process (ie, files listed in /etc/syslog.conf). If there\n" +"# is no process which needs to be signalled when a given log file is\n" +"# rotated, then the entry for that file should include the 'N' flag.\n" +"#\n" +"# Note: some sites will want to select more restrictive protections than the\n" +"# defaults. In particular, it may be desirable to switch many of the 644\n" +"# entries to 640 or 600. For example, some sites will consider the\n" +"# contents of maillog, messages, and lpd-errs to be confidential. In the\n" +"# future, these defaults may change to more conservative ones.\n" +"#\n" +"# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]\n" +"/var/log/all.log 600 7 * @T00 J\n" +"/var/log/auth.log 600 7 1000 @0101T JC\n" +"/var/log/console.log 600 5 1000 * J\n" +"/var/log/cron 600 3 1000 * JC\n" +"/var/log/daily.log 640 7 * @T00 JN\n" +"/var/log/debug.log 600 7 1000 * JC\n" +"/var/log/init.log 644 3 1000 * J\n" +"/var/log/kerberos.log 600 7 1000 * J\n" +"/var/log/maillog 640 7 * @T00 JC\n" +"/var/log/messages 644 5 1000 @0101T JC\n" +"/var/log/monthly.log 640 12 * $M1D0 JN\n" +"/var/log/devd.log 644 3 1000 * JC\n" +"/var/log/security 600 10 1000 * JC\n" +"/var/log/utx.log 644 3 * @01T05 B\n" +"/var/log/weekly.log 640 5 * $W6D0 JN\n" +"/var/log/daemon.log 644 5 1000 @0101T JC\n" +msgstr "" +"# configuration file for newsyslog\n" +"#\n" +"# Entries which do not specify the '/pid_file' field will cause the\n" +"# syslogd process to be signalled when that log file is rotated. This\n" +"# action is only appropriate for log files which are written to by the\n" +"# syslogd process (ie, files listed in /etc/syslog.conf). If there\n" +"# is no process which needs to be signalled when a given log file is\n" +"# rotated, then the entry for that file should include the 'N' flag.\n" +"#\n" +"# Note: some sites will want to select more restrictive protections than the\n" +"# defaults. In particular, it may be desirable to switch many of the 644\n" +"# entries to 640 or 600. For example, some sites will consider the\n" +"# contents of maillog, messages, and lpd-errs to be confidential. In the\n" +"# future, these defaults may change to more conservative ones.\n" +"#\n" +"# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]\n" +"/var/log/all.log 600 7 * @T00 J\n" +"/var/log/auth.log 600 7 1000 @0101T JC\n" +"/var/log/console.log 600 5 1000 * J\n" +"/var/log/cron 600 3 1000 * JC\n" +"/var/log/daily.log 640 7 * @T00 JN\n" +"/var/log/debug.log 600 7 1000 * JC\n" +"/var/log/init.log 644 3 1000 * J\n" +"/var/log/kerberos.log 600 7 1000 * J\n" +"/var/log/maillog 640 7 * @T00 JC\n" +"/var/log/messages 644 5 1000 @0101T JC\n" +"/var/log/monthly.log 640 12 * $M1D0 JN\n" +"/var/log/devd.log 644 3 1000 * JC\n" +"/var/log/security 600 10 1000 * JC\n" +"/var/log/utx.log 644 3 * @01T05 B\n" +"/var/log/weekly.log 640 5 * $W6D0 JN\n" +"/var/log/daemon.log 644 5 1000 @0101T JC\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:969 +#, no-wrap +msgid "" +"<include> /etc/newsyslog.conf.d/[!.]*.conf\n" +"<include> /usr/local/etc/newsyslog.conf.d/[!.]*.conf\n" +msgstr "" +"<include> /etc/newsyslog.conf.d/[!.]*.conf\n" +"<include> /usr/local/etc/newsyslog.conf.d/[!.]*.conf\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:972 +msgid "`logfilename` - Name of the system log file to be archived." +msgstr "" +"`logfilename` - Имя файла системного журнала, предназначенного для " +"архивирования." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:973 +msgid "" +"`[owner:group]` - This optional field specifies the owner and group for the " +"archive file." +msgstr "" +"`[owner:group]` - Это необязательное поле указывает владельца и группу для " +"архивируемого файла." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:974 +msgid "" +"`mode` - Specify the file mode of the log file and archives. Valid mode bits " +"are 0666. (That is, read and write permissions for the rotated log may be " +"specified for the owner, group, and others.)" +msgstr "" +"`mode` - Указывает режим доступа к файлу журнала и архивам. Допустимые биты " +"режима - 0666. (То есть, права на чтение и запись для ротированного журнала " +"могут быть заданы для владельца, группы и остальных пользователей.)" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:975 +msgid "`count` - Specify the maximum number of archive files which may exist." +msgstr "" +"`count` - Указывает максимальное количество архивных файлов, которые могут " +"существовать." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:976 +msgid "" +"`size` - When the size of the log file reaches size in kilobytes, the log " +"file will be trimmed as described above. If this field contains an asterisk " +"('*'), the log file will not be trimmed based on size." +msgstr "" +"`size` — Когда размер файла журнала достигает указанного размера в " +"килобайтах, файл журнала будет обрезан, как описано выше. Если в этом поле " +"указана звёздочка ('*'), файл журнала не будет обрезаться по размеру." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:977 +msgid "" +"`when` - Consist of an interval, a specific time, or both. Supported options " +"in man:newsyslog.conf[5]." +msgstr "" +"`when` - Может состоять из интервала, конкретного времени или обоих " +"вариантов. Поддерживаемые опции описаны в man:newsyslog.conf[5]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:978 +msgid "" +"`flags` - Indicates the flags that newsyslog accepts, supported options in " +"man:newsyslog.conf[5]." +msgstr "" +"`flags` - Указывает флаги, которые принимает newsyslog, поддерживаемые опции " +"описаны в man:newsyslog.conf[5]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:979 +msgid "" +"`[/pid_file]` - This optional field specifies the file name containing a " +"daemon's process ID or to find a group process ID." +msgstr "" +"`[/pid_file]` - Это необязательное поле указывает имя файла, содержащего " +"идентификатор процесса (PID) демона или идентификатор группы процессов." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:980 +msgid "" +"`[sig_num]` - This optional field specifies the signal that will be sent to " +"the daemon process." +msgstr "" +"`[sig_num]` - Это необязательное поле указывает сигнал, который будет " +"отправлен процессу демона." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:984 +msgid "" +"The last two fields are optional and specify the name of the Process ID " +"(PID) file of a process and a signal number to send to that process when the " +"file is rotated." +msgstr "" +"Последние два поля необязательны и указывают имя файла ID процесса (PID) и " +"номер сигнала, который будет отправлен этому процессу при ротации файла." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:987 +#, no-wrap +msgid "Configuring Remote Logging" +msgstr "Настройка удаленного журналирования" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:991 +msgid "" +"Monitoring the log files of multiple hosts can become unwieldy as the number " +"of systems increases. Configuring centralized logging can reduce some of " +"the administrative burden of log file administration." +msgstr "" +"Мониторинг журналов событий на нескольких хостах может стать громоздким по " +"мере увеличения количества систем. Настройка централизованного " +"журналирования позволяет снизить нагрузку на администратора при управлении " +"журналами." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:993 +msgid "" +"In FreeBSD, centralized log file aggregation, merging, and rotation can be " +"configured using syslogd and newsyslog." +msgstr "" +"В FreeBSD централизованная агрегация, объединение и ротация файлов журналов " +"могут быть настроены с помощью `syslogd` и `newsyslog`." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:995 +msgid "" +"This section demonstrates an example configuration, where host `A`, named " +"`logserv.example.com`, will collect logging information for the local " +"network." +msgstr "" +"В этом разделе приведен пример конфигурации, в которой хост `A` с именем " +"`logserv.example.com` будет собирать информацию журналирования для локальной " +"сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:997 +msgid "" +"Host `B`, named `logclient.example.com`, will be configured to pass logging " +"information to the logging server." +msgstr "" +"Узел `B` с именем `logclient.example.com` будет настроен для передачи " +"информации журналирования на сервер журналирования." + +#. type: Title ==== +#: documentation/content/en/books/handbook/config/_index.adoc:998 +#, no-wrap +msgid "Log Server Configuration" +msgstr "Конфигурация сервера журналов" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1001 +msgid "" +"A log server is a system that has been configured to accept logging " +"information from other hosts." +msgstr "" +"Сервер журналов — это система, настроенная для приёма информации " +"журналирования с других узлов." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1003 +msgid "Before configuring a log server, check the following:" +msgstr "Перед настройкой сервера журналов проверьте следующее:" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1005 +msgid "" +"If there is a firewall between the logging server and any logging clients, " +"ensure that the firewall ruleset allows UDP port 514 for both the clients " +"and the server." +msgstr "" +"Если между сервером журналирования и клиентами журналирования есть " +"межсетевой экран, убедитесь, что набор правил межсетевого экрана разрешает " +"UDP-порт 514 как для клиентов, так и для сервера." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1006 +msgid "" +"The logging server and all client machines must have forward and reverse " +"entries in the local DNS. If the network does not have a DNS server, create " +"entries in each system's [.filename]#/etc/hosts#. Proper name resolution is " +"required so that log entries are not rejected by the logging server." +msgstr "" +"Сервер журналирования и все клиентские машины должны иметь прямые и обратные " +"записи в локальной DNS. Если в сети нет DNS-сервера, создайте записи в файле " +"[.filename]#/etc/hosts# каждой системы. Корректное разрешение имен " +"необходимо для того, чтобы записи журналов не отклонялись сервером " +"журналирования." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1009 +msgid "" +"On the log server, edit [.filename]#/etc/syslog.conf# to specify the name of " +"the client to receive log entries from, the logging facility to be used, and " +"the name of the log to store the host's log entries. This example adds the " +"hostname of `B`, logs all facilities, and stores the log entries in " +"[.filename]#/var/log/logclient.log#." +msgstr "" +"На сервере журналов отредактируйте файл [.filename]#/etc/syslog.conf#, " +"указав имя клиента, от которого будут приниматься записи журнала, " +"используемое средство ведения журнала и имя файла для хранения записей " +"журнала данного хоста. В этом примере добавляется имя хоста `B`, " +"регистрируются все средства и записи журнала сохраняются в файле " +"[.filename]#/var/log/logclient.log#." + +#. type: Block title +#: documentation/content/en/books/handbook/config/_index.adoc:1010 +#, no-wrap +msgid "Sample Log Server Configuration" +msgstr "Пример конфигурации сервера журналов" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1018 +#, no-wrap +msgid "" +"+logclient.example.com\n" +"*.* /var/log/logclient.log\n" +msgstr "" +"+logclient.example.com\n" +"*.* /var/log/logclient.log\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1024 +msgid "" +"When adding multiple log clients, add a similar two-line entry for each " +"client. More information about the available facilities may be found in " +"man:syslog.conf[5]." +msgstr "" +"При добавлении нескольких клиентов для журналирования добавьте аналогичную " +"запись из двух строк для каждого клиента. Дополнительную информацию о " +"доступных средствах можно найти в man:syslog.conf[5]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1026 +msgid "Next, execute the following commands:" +msgstr "Далее выполните следующие команды:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1031 +#, no-wrap +msgid "" +"# sysrc syslogd_enable=\"YES\"\n" +"# sysrc syslogd_flags=\"-a logclient.example.com -v -v\"\n" +msgstr "" +"# sysrc syslogd_enable=\"YES\"\n" +"# sysrc syslogd_flags=\"-a logclient.example.com -v -v\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1037 +msgid "" +"The first entry starts syslogd at system boot. The second entry allows log " +"entries from the specified client. The `-v -v` increases the verbosity of " +"logged messages. This is useful for tweaking facilities as administrators " +"are able to see what type of messages are being logged under each facility." +msgstr "" +"Первый параметр запускает syslogd при загрузке системы. Второй параметр " +"разрешает записи журналов от указанного клиента. Опция `-v -v` увеличивает " +"подробность записываемых сообщений. Это полезно для настройки категорий, так " +"как администраторы могут видеть, какие типы сообщений записываются в каждой " +"категории." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1041 +msgid "" +"Multiple `-a` options may be specified to allow logging from multiple " +"clients. IP addresses and whole netblocks may also be specified. Refer to " +"man:syslogd[8] for a full list of possible options." +msgstr "" +"Можно указать несколько параметров `-a`, чтобы разрешить ведение журнала от " +"нескольких клиентов. Также можно указывать IP-адреса и целые сетевые блоки. " +"Полный список возможных параметров приведён в man:syslogd[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1043 +msgid "Finally, create the log file:" +msgstr "Наконец, создайте файл журнала:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1047 +#, no-wrap +msgid "# touch /var/log/logclient.log\n" +msgstr "# touch /var/log/logclient.log\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1050 +msgid "At this point, syslogd should be restarted and verified:" +msgstr "На этом этапе следует перезапустить и проверить syslogd:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1055 +#, no-wrap +msgid "" +"# service syslogd restart\n" +"# pgrep syslog\n" +msgstr "" +"# service syslogd restart\n" +"# pgrep syslog\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1059 +msgid "" +"If a PID is returned, the server restarted successfully, and client " +"configuration can begin. If the server did not restart, consult " +"[.filename]#/var/log/messages# for the error." +msgstr "" +"Если возвращен PID, сервер успешно перезапущен, и можно приступать к " +"настройке клиента. Если сервер не перезапустился, проверьте ошибку в " +"[.filename]#/var/log/messages#." + +#. type: Title ==== +#: documentation/content/en/books/handbook/config/_index.adoc:1060 +#, no-wrap +msgid "Log Client Configuration" +msgstr "Конфигурация клиента журналирования" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1064 +msgid "" +"A logging client sends log entries to a logging server on the network. The " +"client also keeps a local copy of its own logs." +msgstr "" +"Клиент системы журналирования отправляет записи журналов на сервер " +"журналирования в сети. Клиент также сохраняет локальную копию своих " +"собственных журналов." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1066 +msgid "" +"Once a logging server has been configured, execute the following commands on " +"the logging client:" +msgstr "" +"После настройки сервера журналирования выполните следующие команды на " +"клиенте журналирования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1071 +#, no-wrap +msgid "" +"# sysrc syslogd_enable=\"YES\"\n" +"# sysrc syslogd_flags=\"-s -v -v\"\n" +msgstr "" +"# sysrc syslogd_enable=\"YES\"\n" +"# sysrc syslogd_flags=\"-s -v -v\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1075 +msgid "" +"The first entry enables syslogd on boot up. The second entry prevents logs " +"from being accepted by this client from other hosts (`-s`) and increases the " +"verbosity of logged messages." +msgstr "" +"Первый параметр включает запуск syslogd при загрузке системы. Второй " +"параметр запрещает получение журналов от других хостов (`-s`) и увеличивает " +"детализацию записываемых сообщений." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1078 +msgid "" +"Next, define the logging server in the client's [.filename]#/etc/" +"syslog.conf#. In this example, all logged facilities are sent to a remote " +"system, denoted by the `@` symbol, with the specified hostname:" +msgstr "" +"Затем определите сервер журналирования в файле [.filename]#/etc/syslog.conf# " +"клиента. В этом примере все журналируемые источники отправляются на " +"удалённую систему, обозначенную символом `@`, с указанным именем хоста:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1082 +#, no-wrap +msgid "*.* @logserv.example.com\n" +msgstr "*.* @logserv.example.com\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1085 +msgid "After saving the edit, restart syslogd for the changes to take effect:" +msgstr "" +"После сохранения изменений перезапустите syslogd, чтобы изменения вступили в " +"силу:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1089 +#: documentation/content/en/books/handbook/config/_index.adoc:1120 +#: documentation/content/en/books/handbook/config/_index.adoc:1143 +#, no-wrap +msgid "# service syslogd restart\n" +msgstr "# service syslogd restart\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1092 +msgid "" +"To test that log messages are being sent across the network, use " +"man:logger[1] on the client to send a message to syslogd:" +msgstr "" +"Для проверки отправки журнальных сообщений по сети используйте man:logger[1] " +"на клиенте, чтобы отправить сообщение в syslogd:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1096 +#, no-wrap +msgid "# logger \"Test message from logclient\"\n" +msgstr "# logger \"Test message from logclient\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1099 +msgid "" +"This message should now exist both in [.filename]#/var/log/messages# on the " +"client and [.filename]#/var/log/logclient.log# on the log server." +msgstr "" +"Это сообщение теперь должно присутствовать как в [.filename]#/var/log/" +"messages# на клиенте, так и в [.filename]#/var/log/logclient.log# на сервере " +"журналов." + +#. type: Title ==== +#: documentation/content/en/books/handbook/config/_index.adoc:1100 +#, no-wrap +msgid "Debugging Log Servers" +msgstr "Отладка серверов журналов" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1106 +msgid "" +"If no messages are being received on the log server, the cause is most " +"likely a network connectivity issue, a hostname resolution issue, or a typo " +"in a configuration file. To isolate the cause, ensure that both the logging " +"server and the logging client are able to `ping` each other using the " +"hostname specified in their [.filename]#/etc/rc.conf#. If this fails, check " +"the network cabling, the firewall ruleset, and the hostname entries in the " +"DNS server or [.filename]#/etc/hosts# on both the logging server and " +"clients. Repeat until the `ping` is successful from both hosts." +msgstr "" +"Если на сервере журналов не поступают сообщения, скорее всего, причина в " +"проблеме с сетевым подключением, разрешении имён или опечатке в " +"конфигурационном файле. Чтобы выявить причину, убедитесь, что и сервер " +"журналов, и клиент могут `ping` друг друга, используя имя хоста, указанное в " +"их [.filename]#/etc/rc.conf#. Если это не удаётся, проверьте сетевые кабели, " +"набор правил межсетевого экрана и записи имён хостов на DNS-сервере или в " +"[.filename]#/etc/hosts# как на сервере журналов, так и на клиентах. " +"Повторяйте проверки, пока `ping` не будет успешным с обоих хостов." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1109 +msgid "" +"If the `ping` succeeds on both hosts but log messages are still not being " +"received, temporarily increase logging verbosity to narrow down the " +"configuration issue. In the following example, [.filename]#/var/log/" +"logclient.log# on the logging server is empty and [.filename]#/var/log/" +"messages# on the logging client does not indicate a reason for the failure." +msgstr "" +"Если команда `ping` выполняется успешно на обоих хостах, но сообщения " +"журнала по-прежнему не поступают, временно увеличьте уровень детализации " +"журналирования, чтобы сузить круг поиска проблемы в конфигурации. В " +"следующем примере файл [.filename]#/var/log/logclient.log# на сервере " +"журналирования пуст, а файл [.filename]#/var/log/messages# на клиенте " +"журналирования не указывает на причину сбоя." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1111 +msgid "" +"To increase debugging output, edit the `syslogd_flags` entry on the logging " +"server and issue a restart:" +msgstr "" +"Для увеличения уровня отладочной информации отредактируйте параметр " +"`syslogd_flags` на сервере журналирования и выполните перезапуск:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1115 +#, no-wrap +msgid "sysrc syslogd_flags=\"-d -a logclient.example.com -v -v\"\n" +msgstr "sysrc syslogd_flags=\"-d -a logclient.example.com -v -v\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1123 +msgid "" +"Debugging data similar to the following will flash on the console " +"immediately after the restart:" +msgstr "" +"На консоли сразу после перезагрузки появится отладочная информация, подобная " +"следующей:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1134 +#, no-wrap +msgid "" +"logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart\n" +"syslogd: restarted\n" +"logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel\n" +"Logging to FILE /var/log/messages\n" +"syslogd: kernel boot file is /boot/kernel/kernel\n" +"cvthname(192.168.1.10)\n" +"validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;\n" +"rejected in rule 0 due to name mismatch.\n" +msgstr "" +"logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart\n" +"syslogd: restarted\n" +"logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel\n" +"Logging to FILE /var/log/messages\n" +"syslogd: kernel boot file is /boot/kernel/kernel\n" +"cvthname(192.168.1.10)\n" +"validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;\n" +"rejected in rule 0 due to name mismatch.\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1139 +msgid "" +"In this example, the log messages are being rejected due to a typo which " +"results in a hostname mismatch. The client's hostname should be " +"`logclient`, not `logclien`. Fix the typo, issue a restart, and verify the " +"results:" +msgstr "" +"В этом примере сообщения журнала отклоняются из-за опечатки, которая " +"приводит к несоответствию имени хоста. Имя хоста клиента должно быть " +"`logclient`, а не `logclien`. Исправьте опечатку, выполните перезапуск и " +"проверьте результат:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1161 +#, no-wrap +msgid "" +"logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart\n" +"syslogd: restarted\n" +"logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel\n" +"syslogd: kernel boot file is /boot/kernel/kernel\n" +"logmsg: pri 166, flags 17, from logserv.example.com,\n" +"msg Dec 10 20:55:02 <syslog.err> logserv.example.com syslogd: exiting on signal 2\n" +"cvthname(192.168.1.10)\n" +"validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;\n" +"accepted in rule 0.\n" +"logmsg: pri 15, flags 0, from logclient.example.com, msg Dec 11 02:01:28 trhodes: Test message 2\n" +"Logging to FILE /var/log/logclient.log\n" +"Logging to FILE /var/log/messages\n" +msgstr "" +"logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart\n" +"syslogd: restarted\n" +"logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel\n" +"syslogd: kernel boot file is /boot/kernel/kernel\n" +"logmsg: pri 166, flags 17, from logserv.example.com,\n" +"msg Dec 10 20:55:02 <syslog.err> logserv.example.com syslogd: exiting on signal 2\n" +"cvthname(192.168.1.10)\n" +"validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;\n" +"accepted in rule 0.\n" +"logmsg: pri 15, flags 0, from logclient.example.com, msg Dec 11 02:01:28 trhodes: Test message 2\n" +"Logging to FILE /var/log/logclient.log\n" +"Logging to FILE /var/log/messages\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1164 +msgid "" +"At this point, the messages are being properly received and placed in the " +"correct file." +msgstr "" +"На данном этапе сообщения правильно принимаются и помещаются в нужный файл." + +#. type: Title ==== +#: documentation/content/en/books/handbook/config/_index.adoc:1165 +#, no-wrap +msgid "Security Considerations" +msgstr "Безопасность" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1171 +msgid "" +"As with any network service, security requirements should be considered " +"before implementing a logging server. Log files may contain sensitive data " +"about services enabled on the local host, user accounts, and configuration " +"data. Network data sent from the client to the server will not be encrypted " +"or password protected. If a need for encryption exists, consider using " +"package:security/stunnel[], which will transmit the logging data over an " +"encrypted tunnel." +msgstr "" +"Как и в случае с любой сетевой службой, перед внедрением сервера " +"журналирования следует учитывать требования безопасности. Журналы могут " +"содержать конфиденциальные данные о службах, включенных на локальном хосте, " +"учетных записях пользователей и конфигурации. Данные, передаваемые по сети " +"от клиента к серверу, не шифруются и не защищаются паролем. Если требуется " +"шифрование, можно использовать package:security/stunnel[], который передает " +"данные журналирования через зашифрованный туннель." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1179 +msgid "" +"Local security is also an issue. Log files are not encrypted during use or " +"after log rotation. Local users may access log files to gain additional " +"insight into system configuration. Setting proper permissions on log files " +"is critical. The built-in log rotator, newsyslog, supports setting " +"permissions on newly created and rotated log files. Setting log files to " +"mode `600` should prevent unwanted access by local users. Refer to " +"man:newsyslog.conf[5] for additional information." +msgstr "" +"Локальная безопасность также является важным вопросом. Журналы не шифруются " +"ни во время использования, ни после ротации. Локальные пользователи могут " +"получить доступ к файлам журналов для сбора дополнительной информации о " +"конфигурации системы. Установка правильных разрешений для файлов журналов " +"крайне важна. Встроенный ротатор журналов newsyslog поддерживает установку " +"разрешений для вновь создаваемых и ротируемых файлов журналов. Установка " +"режима `600` для файлов журналов должна предотвратить нежелательный доступ " +"со стороны локальных пользователей. Дополнительную информацию можно найти в " +"man:newsyslog.conf[5]." + +#. type: Title == +#: documentation/content/en/books/handbook/config/_index.adoc:1181 +#, no-wrap +msgid "Power and Resource Management" +msgstr "Управление питанием и ресурсами" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1185 +msgid "" +"It is important to utilize hardware resources in an efficient manner. Power " +"and resource management allows the operating system to monitor system limits " +"and to possibly run some actions triggered by events related to those limits." +msgstr "" +"Важно эффективно использовать аппаратные ресурсы. Управление питанием и " +"ресурсами позволяет операционной системе отслеживать системные ограничения " +"и, возможно, выполнять некоторые действия, вызванные событиями, связанными с " +"этими ограничениями." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:1187 +#, no-wrap +msgid "ACPI configuration" +msgstr "Конфигурация ACPI" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1190 +msgid "" +"On FreeBSD the management of these resources is managed by the man:acpi[4] " +"kernel device." +msgstr "" +"На FreeBSD управление этими ресурсами осуществляется с помощью устройства " +"ядра man:acpi[4]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1194 +msgid "In FreeBSD the man:acpi[4] driver is loaded by default at system boot." +msgstr "" +"В FreeBSD драйвер man:acpi[4] загружается по умолчанию при загрузке системы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1196 +msgid "" +"This driver *cannot be unloaded after boot* because the system bus uses it " +"for various hardware interactions." +msgstr "" +"Этот драйвер *нельзя выгрузить после загрузки*, так как системная шина " +"использует его для различных взаимодействий с оборудованием." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1200 +msgid "" +"In addition to man:acpi[4], FreeBSD has several dedicated kernel modules for " +"various ACPI vendor subsystems. These modules will add some extra " +"functionality like fan speed, keyboard backlit or screen brightness." +msgstr "" +"В дополнение к man:acpi[4], FreeBSD имеет несколько специализированных " +"модулей ядра для различных подсистем ACPI от производителей. Эти модули " +"добавляют дополнительную функциональность, такую как управление скоростью " +"вентилятора, подсветкой клавиатуры или яркостью экрана." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1202 +msgid "The list can be obtained by running the following command:" +msgstr "Список можно получить, выполнив следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1206 +#, no-wrap +msgid "% ls /boot/kernel | grep acpi\n" +msgstr "% ls /boot/kernel | grep acpi\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1225 +#, no-wrap +msgid "" +"acpi_asus.ko\n" +"acpi_asus_wmi.ko\n" +"acpi_dock.ko\n" +"acpi_fujitsu.ko\n" +"acpi_hp.ko\n" +"acpi_ibm.ko\n" +"acpi_panasonic.ko\n" +"acpi_sony.ko\n" +"acpi_toshiba.ko\n" +"acpi_video.ko\n" +"acpi_wmi.ko\n" +"sdhci_acpi.ko\n" +"uacpi.ko\n" +msgstr "" +"acpi_asus.ko\n" +"acpi_asus_wmi.ko\n" +"acpi_dock.ko\n" +"acpi_fujitsu.ko\n" +"acpi_hp.ko\n" +"acpi_ibm.ko\n" +"acpi_panasonic.ko\n" +"acpi_sony.ko\n" +"acpi_toshiba.ko\n" +"acpi_video.ko\n" +"acpi_wmi.ko\n" +"sdhci_acpi.ko\n" +"uacpi.ko\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1228 +msgid "" +"In the event that, for example, an IBM/Lenovo laptop is used, it will be " +"necessary to load the module man:acpi_ibm[4] by executing the following " +"command:" +msgstr "" +"В случае, если используется ноутбук IBM/Lenovo, необходимо загрузить модуль " +"man:acpi_ibm[4], выполнив следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1232 +#, no-wrap +msgid "# kldload acpi_ibm\n" +msgstr "# kldload acpi_ibm\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1235 +msgid "And add this line to [.filename]#/boot/loader.conf# to load it at boot:" +msgstr "" +"И добавьте эту строку в [.filename]#/boot/loader.conf#, чтобы загружать " +"модуль при запуске:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1239 +#, no-wrap +msgid "acpi_ibm_load=\"YES\"\n" +msgstr "acpi_ibm_load=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1247 +msgid "" +"An alternative to the man:acpi_video[4] module is the man:backlight[9] " +"driver. It provides a generic way for handling a panel backlight. The " +"default GENERIC kernel includes this driver. The man:backlight[8] utility " +"can be used to query and adjust the brightness of the panel backlight. In " +"this example the brightness is decreased by 10%:" +msgstr "" +"Альтернативой модулю man:acpi_video[4] является драйвер man:backlight[9]. Он " +"предоставляет универсальный способ управления подсветкой экрана. Этот " +"драйвер включён в стандартное ядро GENERIC. Утилита man:backlight[8] " +"позволяет запрашивать и изменять яркость подсветки экрана. В этом примере " +"яркость уменьшается на 10%:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1251 +#, no-wrap +msgid "% backlight decr 10\n" +msgstr "% backlight decr 10\n" + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:1254 +#, no-wrap +msgid "CPU Power Management" +msgstr "Управление питанием процессора" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1258 +msgid "" +"CPU is the most consuming part of the system. Knowing how to improve CPU " +"efficiency is a fundamental part of our system in order to save energy." +msgstr "" +"`CPU` — это наиболее энергозатратная часть системы. Знание того, как " +"повысить эффективность использования `CPU`, является важной частью нашей " +"системы для экономии энергии." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1260 +msgid "" +"In order to make proper use of the machine's resources in a correct way, " +"FreeBSD supports technologies such as Intel Turbo Boost, AMD Turbo Core, " +"Intel Speed Shift among others through the use of man:powerd[8] and " +"man:cpufreq[4]." +msgstr "" +"Для правильного и эффективного использования ресурсов системы FreeBSD " +"поддерживает такие технологии, как Intel Turbo Boost, AMD Turbo Core, Intel " +"Speed Shift и другие, с помощью man:powerd[8] и man:cpufreq[4]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1262 +msgid "" +"The first step will be to obtain the CPU information by executing the " +"following command:" +msgstr "" +"Первым шагом будет получение информации о процессоре с помощью выполнения " +"следующей команды:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1266 +#, no-wrap +msgid "% sysctl dev.cpu.0 <.>\n" +msgstr "% sysctl dev.cpu.0 <.>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1269 +msgid "In this case the `0` digit represents the first core of the CPU." +msgstr "В этом случае цифра `0` обозначает первое ядро процессора." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1291 +#, no-wrap +msgid "" +"dev.cpu.0.cx_method: C1/mwait/hwc C2/mwait/hwc C3/mwait/hwc/bma\n" +"dev.cpu.0.cx_usage_counters: 3507294 0 0\n" +"dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 3804us\n" +"dev.cpu.0.cx_lowest: C3 <1>\n" +"dev.cpu.0.cx_supported: C1/1/1 C2/2/1 C3/3/57 <2>\n" +"dev.cpu.0.freq_levels: 2267/35000 2266/35000 1600/15000 800/12000 <3>\n" +"dev.cpu.0.freq: 1600 <4>\n" +"dev.cpu.0.temperature: 40.0C <5>\n" +"dev.cpu.0.coretemp.throttle_log: 0\n" +"dev.cpu.0.coretemp.tjmax: 105.0C\n" +"dev.cpu.0.coretemp.resolution: 1\n" +"dev.cpu.0.coretemp.delta: 65\n" +"dev.cpu.0.%parent: acpi0\n" +"dev.cpu.0.%pnpinfo: _HID=none _UID=0 _CID=none\n" +"dev.cpu.0.%location: handle=\\_PR_.CPU0\n" +"dev.cpu.0.%driver: cpu\n" +"dev.cpu.0.%desc: ACPI CPU\n" +msgstr "" +"dev.cpu.0.cx_method: C1/mwait/hwc C2/mwait/hwc C3/mwait/hwc/bma\n" +"dev.cpu.0.cx_usage_counters: 3507294 0 0\n" +"dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 3804us\n" +"dev.cpu.0.cx_lowest: C3 <1>\n" +"dev.cpu.0.cx_supported: C1/1/1 C2/2/1 C3/3/57 <2>\n" +"dev.cpu.0.freq_levels: 2267/35000 2266/35000 1600/15000 800/12000 <3>\n" +"dev.cpu.0.freq: 1600 <4>\n" +"dev.cpu.0.temperature: 40.0C <5>\n" +"dev.cpu.0.coretemp.throttle_log: 0\n" +"dev.cpu.0.coretemp.tjmax: 105.0C\n" +"dev.cpu.0.coretemp.resolution: 1\n" +"dev.cpu.0.coretemp.delta: 65\n" +"dev.cpu.0.%parent: acpi0\n" +"dev.cpu.0.%pnpinfo: _HID=none _UID=0 _CID=none\n" +"dev.cpu.0.%location: handle=\\_PR_.CPU0\n" +"dev.cpu.0.%driver: cpu\n" +"dev.cpu.0.%desc: ACPI CPU\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1294 +msgid "Lowest Cx state to use for idling the CPU." +msgstr "Наименьшее состояние Cx, используемое для бездействия процессора." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1295 +msgid "CPU supported Cx states." +msgstr "Поддерживаемые процессором состояния Cx." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1296 +msgid "Currently available levels for the CPU (frequency/power usage)." +msgstr "" +"Доступные в настоящее время уровни для CPU (частота/потребление энергии)." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1297 +msgid "Current active CPU frequency in MHz." +msgstr "Текущая активная частота CPU в МГц." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1298 +msgid "Current temperature of the CPU." +msgstr "Текущая температура процессора." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1303 +msgid "" +"If the temperature information is not displayed, load the man:coretemp[4] " +"module. In case of using an AMD CPU, load the man:amdtemp[4] module." +msgstr "" +"Если информация о температуре не отображается, загрузите модуль " +"man:coretemp[4]. В случае использования процессора AMD загрузите модуль " +"man:amdtemp[4]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1306 +msgid "" +"Once the CPU information is available the easiest way to configure power " +"saving is to let man:powerd[8] take over." +msgstr "" +"Как только информация о CPU станет доступной, самый простой способ настроить " +"энергосбережение — позволить man:powerd[8] взять управление на себя." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1308 +msgid "" +"Enable man:powerd[8] service in [.filename]#/etc/rc.conf# to start at system " +"boot:" +msgstr "" +"Включите службу man:powerd[8] в [.filename]#/etc/rc.conf# для запуска при " +"загрузке системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1312 +#, no-wrap +msgid "# sysrc powerd_enable=YES\n" +msgstr "# sysrc powerd_enable=YES\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1315 +msgid "" +"It will also be necessary to indicate certain parameters to man:powerd[8] to " +"tell it how to manage the state of the CPU executing the following command:" +msgstr "" +"Также необходимо указать определённые параметры для man:powerd[8], чтобы " +"сообщить ему, как управлять состоянием CPU, выполнив следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1319 +#, no-wrap +msgid "# sysrc powerd_flags=\"-a hiadaptive -i 25 -r 85 -N\"\n" +msgstr "# sysrc powerd_flags=\"-a hiadaptive -i 25 -r 85 -N\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1322 +msgid "`-a`: Selects the mode to use while on AC power." +msgstr "" +"`-a`: Выбирает режим, используемый при работе от сети переменного тока." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1323 +msgid "`hiadaptive`: Operation mode. More info at man:powerd[8]." +msgstr "`hiadaptive`: Режим работы. Подробнее см. в man:powerd[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1324 +msgid "" +"`-i`: Specifies the CPU load percent level when adaptive mode should begin " +"to degrade performance to save power." +msgstr "" +"`-i`: Указывает уровень загрузки процессора в процентах, при котором " +"адаптивный режим должен начать снижать производительность для экономии " +"энергии." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1325 +msgid "" +"`-r`: Specifies the CPU load percent level where adaptive mode should " +"consider the CPU running and increase performance." +msgstr "" +"`-r`: Указывает уровень загрузки процессора в процентах, при котором " +"адаптивный режим считает, что процессор работает, и повышает " +"производительность." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1326 +msgid "" +"`-N`: Treat \"nice\" time as idle for the purpose of load calculation; i.e., " +"do not increase the CPU frequency if the CPU is only busy with \"nice\" " +"processes." +msgstr "" +"`-N`: Рассматривать время выполнения \"nice\"-процессов как время простоя " +"при расчете нагрузки; т.е. не увеличивать частоту CPU, если он занят только " +"\"nice\"-процессами." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1328 +msgid "And then enable the service executing the following command:" +msgstr "И затем включите службу, выполнив следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1332 +#, no-wrap +msgid "# service powerd start\n" +msgstr "# service powerd start\n" + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:1335 +#, no-wrap +msgid "CPU Frequency Control" +msgstr "Управление частотой процессора" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1340 +msgid "" +"FreeBSD includes a generic man:cpufreq[4] driver to allow the administrator, " +"or software such as man:powerd[8] and package:sysutils/powerdxx[], to manage " +"the frequency of the CPU to achieve the desired balance between performance " +"and economy. A lower setting will save power while reducing the heat " +"generated by the CPU. A higher setting will increase performance at the " +"cost of using additional power and generating more heat." +msgstr "" +"FreeBSD включает универсальный драйвер man:cpufreq[4], который позволяет " +"администратору или программам, таким как man:powerd[8] и package:sysutils/" +"powerdxx[], управлять частотой CPU для достижения желаемого баланса между " +"производительностью и энергопотреблением. Более низкая настройка сэкономит " +"энергию, уменьшая нагрев CPU. Более высокая настройка увеличит " +"производительность за счёт большего энергопотребления и усиленного нагрева." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:1342 +#, no-wrap +msgid "Intel(R) Enhanced Speed Step(TM)" +msgstr "Intel(R) Enhanced SpeedStep(TM)" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1347 +msgid "" +"The Intel(R) Enhanced Speed Step(TM) driver, man:est[4], replaces the " +"generic man:cpufreq[4] driver for CPUs that provide this feature. The CPU " +"frequency can be statically adjusted using man:sysctl[8], or with the `/etc/" +"rc.d/power_profile` startup script. Additional software, such as " +"man:powerd[8] or package:sysutils/powerdxx[], can be used to automatically " +"adjust the CPU frequency based on processor utilization." +msgstr "" +"Драйвер Intel(R) Enhanced Speed Step(TM), man:est[4], заменяет универсальный " +"драйвер man:cpufreq[4] для процессоров, поддерживающих эту функцию. Частота " +"процессора может быть статически настроена с помощью man:sysctl[8] или " +"скрипта запуска `/etc/rc.d/power_profile`. Дополнительное программное " +"обеспечение, такое как man:powerd[8] или package:sysutils/powerdxx[], может " +"использоваться для автоматической регулировки частоты процессора на основе " +"его загрузки." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1349 +msgid "" +"Each supported frequency, along with its expected power consumption, can be " +"listed by examining the man:sysctl[3] tree:" +msgstr "" +"Все поддерживаемые частоты, а также ожидаемое энергопотребление, можно " +"узнать, изучив дерева man:sysctl[3]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1353 +#, no-wrap +msgid "# sysctl dev.cpufreq.0.freq_driver dev.cpu.0.freq_levels dev.cpu.0.freq\n" +msgstr "# sysctl dev.cpufreq.0.freq_driver dev.cpu.0.freq_levels dev.cpu.0.freq\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1362 +#, no-wrap +msgid "" +"dev.cpufreq.0.freq_driver: est0\n" +"dev.cpu.0.freq_levels: 3001/53000 3000/53000 2900/50301 2700/46082 2600/43525 2400/39557 2300/37137 2100/33398 2000/31112 1800/27610 1700/25455 1500/22171 1400/20144 1200/17084 1100/15181 900/12329 800/10550\n" +"dev.cpu.0.freq: 800\n" +msgstr "" +"dev.cpufreq.0.freq_driver: est0\n" +"dev.cpu.0.freq_levels: 3001/53000 3000/53000 2900/50301 2700/46082 2600/43525 2400/39557 2300/37137 2100/33398 2000/31112 1800/27610 1700/25455 1500/22171 1400/20144 1200/17084 1100/15181 900/12329 800/10550\n" +"dev.cpu.0.freq: 800\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1365 +msgid "" +"A frequency 1 MHz higher than the maximum frequency of the CPU indicates the " +"Intel(R) Turbo Boost(TM) feature." +msgstr "" +"Частота на 1 МГц выше максимальной частоты процессора указывает на наличие " +"технологии Intel(R) Turbo Boost(TM)." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:1367 +#, no-wrap +msgid "Intel Speed Shift(TM)" +msgstr "Intel Speed Shift(TM)" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1373 +msgid "" +"Users running newer Intel(R) CPUs may find some differences in dynamic " +"frequency control when upgrading to FreeBSD 13. A new driver for the " +"Intel(R) Speed Shift(TM) feature set, available on certain SKUs, exposes the " +"ability for the hardware to dynamically vary the core frequencies, including " +"on a per core basis. FreeBSD 13 comes with the man:hwpstate_intel[4] driver " +"to automatically enable Speed Shift(TM) control on equipped CPUs, replacing " +"the older Enhanced Speed Step(TM) man:est[4] driver. The man:sysctl[8] " +"`dev.cpufreq.%d.freq_driver` will indicate if the system is using Speed " +"Shift." +msgstr "" +"Пользователи, работающие на новых процессорах Intel(R), могут заметить " +"некоторые различия в динамическом управлении частотой при обновлении до " +"FreeBSD 13. Новый драйвер для технологии Intel(R) Speed Shift(TM), доступной " +"в определённых моделях, предоставляет возможность аппаратного изменения " +"частоты ядер, в том числе для каждого ядра отдельно. FreeBSD 13 включает " +"драйвер man:hwpstate_intel[4] для автоматического включения управления Speed " +"Shift(TM) на поддерживаемых процессорах, заменяя старый драйвер Enhanced " +"Speed Step(TM) man:est[4]. Значение `dev.cpufreq.%d.freq_driver` в " +"man:sysctl[8] покажет, использует ли система Speed Shift." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1375 +msgid "" +"To determine which frequency control driver is being used, examining the " +"`dev.cpufreq.0.freq_driver` oid." +msgstr "" +"Чтобы определить, какой драйвер управления частотой используется, изучите " +"OID `dev.cpufreq.0.freq_driver`." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1379 +#, no-wrap +msgid "# sysctl dev.cpufreq.0.freq_driver\n" +msgstr "# sysctl dev.cpufreq.0.freq_driver\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1386 +#, no-wrap +msgid "dev.cpufreq.0.freq_driver: hwpstate_intel0\n" +msgstr "dev.cpufreq.0.freq_driver: hwpstate_intel0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1390 +msgid "" +"This indicates that the new man:hwpstate_intel[4] driver is in use. On such " +"systems, the oid `dev.cpu.%d.freq_levels` will show only the maximum CPU " +"frequency, and will indicate a power consumption level of `-1`." +msgstr "" +"Это указывает на использование нового драйвера man:hwpstate_intel[4]. В " +"таких системах OID `dev.cpu.%d.freq_levels` будет показывать только " +"максимальную частоту CPU и указывать уровень энергопотребления `-1`." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1392 +msgid "" +"The current CPU frequency can be determined by examining the `dev.cpu." +"%d.freq` oid." +msgstr "" +"Текущая частота процессора может быть определена путем проверки OID `dev.cpu." +"%d.freq`." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1396 +#, no-wrap +msgid "# sysctl dev.cpu.0.freq_levels dev.cpu.0.freq\n" +msgstr "# sysctl dev.cpu.0.freq_levels dev.cpu.0.freq\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1404 +#, no-wrap +msgid "" +"dev.cpu.0.freq_levels: 3696/-1\n" +"dev.cpu.0.freq: 898\n" +msgstr "" +"dev.cpu.0.freq_levels: 3696/-1\n" +"dev.cpu.0.freq: 898\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1407 +msgid "" +"For more information, including on how to balance performance and energy " +"use, and on how to disable this driver, refer to the man page " +"man:hwpstate_intel[4]." +msgstr "" +"Для получения дополнительной информации, включая сведения о балансировке " +"производительности и энергопотребления, а также о том, как отключить этот " +"драйвер, обратитесь к справочной странице man:hwpstate_intel[4]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1411 +msgid "" +"Users accustomed to using man:powerd[8] or package:sysutils/powerdxx[] will " +"find these utilities have been superseded by the man:hwpstate_intel[4] " +"driver and no longer work as expected." +msgstr "" +"Пользователи, привыкшие к использованию man:powerd[8] или package:sysutils/" +"powerdxx[], обнаружат, что эти утилиты были заменены драйвером " +"man:hwpstate_intel[4] и больше не работают как ожидалось." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:1414 +#, no-wrap +msgid "Graphics Card Power Management" +msgstr "Управление энергопотреблением графической карты" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1419 +msgid "" +"Graphics cards have become a fundamental part of computing in recent years. " +"Some graphics cards may have excessive power consumption. FreeBSD allows " +"certain configurations to improve power consumption." +msgstr "" +"Графические карты стали неотъемлемой частью современных компьютеров. " +"Некоторые графические карты могут потреблять чрезмерное количество энергии. " +"FreeBSD позволяет настраивать определённые параметры для снижения " +"энергопотребления." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1421 +msgid "" +"In case of using a Intel(R) graphics card with the package:graphics/drm-" +"kmod[] driver these options can be added to [.filename]#/boot/loader.conf#:" +msgstr "" +"В случае использования видеокарты Intel(R) с драйвером package:graphics/drm-" +"kmod[] следующие параметры можно добавить в [.filename]#/boot/loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1427 +#, no-wrap +msgid "" +"compat.linuxkpi.fastboot=1 <.>\n" +"compat.linuxkpi.enable_dc=2 <.>\n" +"compat.linuxkpi.enable_fbc=1 <.>\n" +msgstr "" +"compat.linuxkpi.fastboot=1 <.>\n" +"compat.linuxkpi.enable_dc=2 <.>\n" +"compat.linuxkpi.enable_fbc=1 <.>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1430 +msgid "Try to skip unnecessary mode sets at boot time." +msgstr "Попытайтесь пропустить ненужные установки режимов во время загрузки." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1431 +msgid "Enable power-saving display C-states." +msgstr "Включить энергосберегающие состояния C для дисплея." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1432 +msgid "Enable frame buffer compression for power savings" +msgstr "Включить сжатие кадрового буфера для экономии энергии" + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:1433 +#, no-wrap +msgid "Suspend/Resume" +msgstr "Приостановка/возобновление" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1436 +msgid "" +"The suspend/resume function allows the machine to be kept in a state in " +"which there is no a big energy consumption and allows the system to be " +"resumed without having to lose the state of the running programs." +msgstr "" +"Функция приостановки/возобновления позволяет перевести машину в состояние с " +"низким энергопотреблением и возобновить работу системы без потери состояния " +"запущенных программ." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1441 +msgid "" +"In order for the suspend/resume functionality to work correctly the graphics " +"drivers must be loaded on the system. In non-KMS-supported graphics cards " +"man:sc[4] must be used not to break the suspend/resume functionality." +msgstr "" +"Для корректной работы функции приостановки/возобновления в системе должны " +"быть загружены графические драйверы. В видеокартах без поддержки KMS следует " +"использовать man:sc[4], чтобы не нарушить функциональность приостановки/" +"возобновления." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1443 +msgid "" +"More information about which driver to use and how to configure it can be " +"found at the crossref:x11[x11, The X Window System chapter]." +msgstr "" +"Дополнительная информация о том, какой драйвер использовать и как его " +"настроить, доступна в главе crossref:x11[x11, Система X Window]." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1446 +msgid "man:acpi[4] supports the next list of sleep states:" +msgstr "man:acpi[4] поддерживает следующий список состояний сна:" + +#. type: Block title +#: documentation/content/en/books/handbook/config/_index.adoc:1447 +#, no-wrap +msgid "Supported Sleep States" +msgstr "Поддерживаемые состояния сна" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:1452 +#, no-wrap +msgid "S1" +msgstr "S1" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:1454 +#, no-wrap +msgid "Quick suspend to RAM. The CPU enters a lower power state, but most peripherals are left running." +msgstr "Быстрый переход в режим ожидания с сохранением в оперативной памяти. ЦП переходит в состояние пониженного энергопотребления, но большинство периферийных устройств остаются активными." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:1455 +#, no-wrap +msgid "S2" +msgstr "S2" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:1457 +#, no-wrap +msgid "Lower power state than S1, but with the same basic characteristics. Not supported by many systems." +msgstr "Состояние с меньшим энергопотреблением, чем S1, но с теми же основными характеристиками. Не поддерживается многими системами." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:1458 +#, no-wrap +msgid "S3 (Sleep mode)" +msgstr "S3 (Режим сна)" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:1460 +#, no-wrap +msgid "Suspend to RAM. Most devices are powered off, and the system stops running except for memory refresh." +msgstr "Режим приостановки с сохранением в ОЗУ. Большинство устройств отключается, и система перестает работать, за исключением обновления памяти." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:1461 +#, no-wrap +msgid "S4 (Hibernation)" +msgstr "S4 (Режим гибернации)" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:1463 +#, no-wrap +msgid "Suspend to disk. All devices are powered off, and the system stops running. When resuming, the system starts as if from a cold power on. *Not yet supported by FreeBSD*." +msgstr "Приостановка с сохранением состояния на диск. Все устройства отключаются, и система прекращает работу. При возобновлении система запускается, как после холодного включения. *Пока не поддерживается в FreeBSD*." + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:1464 +#, no-wrap +msgid "S5" +msgstr "S5" + +#. type: Table +#: documentation/content/en/books/handbook/config/_index.adoc:1466 +#, no-wrap +msgid "System shuts down cleanly and powers off." +msgstr "Система корректно завершает работу и выключается." + +#. type: Title ==== +#: documentation/content/en/books/handbook/config/_index.adoc:1469 +#, no-wrap +msgid "Configuring Suspend/Resume" +msgstr "Настройка приостановки/возобновления" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1472 +msgid "" +"The first step will be to know which type of sleep states supports the " +"hardware we are using executing the following command:" +msgstr "" +"Первым шагом будет определение типов состояний сна, которые поддерживает " +"используемое оборудование, выполнив следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1476 +#, no-wrap +msgid "% sysctl hw.acpi.supported_sleep_state\n" +msgstr "% sysctl hw.acpi.supported_sleep_state\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1483 +#, no-wrap +msgid "hw.acpi.supported_sleep_state: S3 S4 S5\n" +msgstr "hw.acpi.supported_sleep_state: S3 S4 S5\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1488 +msgid "As stated above FreeBSD does *not* yet support the `S4` state." +msgstr "Как упоминалось выше, FreeBSD *пока* не поддерживает состояние `S4`." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1491 +msgid "" +"man:acpiconf[8] can be used to check if the `S3` state works correctly by " +"running the following command, if it succeeds, the screen should go black " +"and the machine will turn off:" +msgstr "" +"man:acpiconf[8] можно использовать для проверки корректности работы " +"состояния `S3`, выполнив следующую команду. Если команда выполнится успешно, " +"экран погаснет и компьютер выключится:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1495 +#, no-wrap +msgid "# acpiconf -s 3\n" +msgstr "# acpiconf -s 3\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1498 +msgid "" +"In the vast majority of cases the Suspend/Resume functionality wants to be " +"used on a laptop." +msgstr "" +"В подавляющем большинстве случаев функциональность Suspend/Resume " +"предназначена для использования на ноутбуке." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1500 +msgid "" +"FreeBSD can be configured to enter the `S3` state when closing the lid by " +"adding the following line to the [.filename]#/etc/sysctl.conf# file." +msgstr "" +"FreeBSD можно настроить для перехода в состояние `S3` при закрытии крышки, " +"добавив следующую строку в файл [.filename]#/etc/sysctl.conf#." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1504 +#, no-wrap +msgid "hw.acpi.lid_switch_state=S3\n" +msgstr "hw.acpi.lid_switch_state=S3\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/config/_index.adoc:1507 +#, no-wrap +msgid "Troubleshooting in Suspend/Resume" +msgstr "Устранение неполадок при приостановке/возобновлении работы" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1511 +msgid "" +"A lot of effort has been made to make the Suspend and Resume functions work " +"properly and in the best way on FreeBSD. But currently the Suspend and " +"Resume functions only work properly on some specific laptops." +msgstr "" +"Много усилий было приложено, чтобы функции приостановки (Suspend) и " +"возобновления (Resume) работали корректно и наилучшим образом в FreeBSD. " +"Однако в настоящее время эти функции работают правильно только на некоторых " +"определенных моделях ноутбуков." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1513 +msgid "Some checks can be done in case it doesn't work properly." +msgstr "Некоторые проверки можно выполнить, если система работает некорректно." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1516 +msgid "" +"In some cases it is enough to turn off the bluetooth. In others it is " +"enough loading the correct driver for the graphics card, etc." +msgstr "" +"В некоторых случаях достаточно выключить bluetooth. В других — загрузить " +"правильный драйвер для видеокарты и т.д." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1518 +msgid "" +"In case it doesn't work correctly, some tips can be found on the FreeBSD " +"Wiki in the section link:https://wiki.freebsd.org/SuspendResume[Suspend/" +"Resume]." +msgstr "" +"В случае, если это работает некорректно, некоторые рекомендации можно найти " +"на FreeBSD Wiki в разделе link:https://wiki.freebsd.org/" +"SuspendResume[Приостановка/возобновление]." + +#. type: Title == +#: documentation/content/en/books/handbook/config/_index.adoc:1520 +#, no-wrap +msgid "Adding Swap Space" +msgstr "Добавление swap-пространства" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1524 +msgid "" +"Sometimes a FreeBSD system requires more swap space. This section describes " +"two methods to increase swap space: adding swap to an existing partition or " +"new hard drive, and creating a swap file on an existing file system." +msgstr "" +"Иногда системе FreeBSD требуется больше места в подкачке. В этом разделе " +"описаны два способа увеличения пространства подкачки: добавление раздела " +"подкачки к существующему разделу или новому жесткому диску и создание файла " +"подкачки в существующей файловой системе." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1526 +msgid "" +"For information on how to encrypt swap space, which options exist, and why " +"it should be done, refer to crossref:disks[swap-encrypting,“Encrypting " +"Swap”]." +msgstr "" +"Для получения информации о том, как зашифровать пространство подкачки, какие " +"существуют варианты и почему это следует делать, обратитесь к " +"crossref:disks[swap-encrypting,\"Шифрование подкачки\"]." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:1528 +#, no-wrap +msgid "Swap on a New Hard Drive or Existing Partition" +msgstr "Раздел подкачки на новом жестком диске или существующем разделе" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1532 +msgid "" +"Adding a new drive for swap gives better performance than using a partition " +"on an existing drive. Setting up partitions and drives is explained in " +"crossref:disks[disks-adding,\"Adding Disks\"] while " +"crossref:bsdinstall[configtuning-initial,\"Designing the Partition Layout\"] " +"discusses partition layouts and swap partition size considerations." +msgstr "" +"Добавление нового диска для раздела подкачки обеспечивает лучшую " +"производительность по сравнению с использованием раздела на существующем " +"диске. Настройка разделов и дисков описана в crossref:disks[disks-adding," +"\"Добавление дисков\"], а crossref:bsdinstall[configtuning-initial," +"\"Проектирование разметки разделов\"] рассматривает варианты разметки " +"разделов и вопросы выбора размера раздела подкачки." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1538 +msgid "" +"It is possible to use any partition not currently mounted, even if it " +"already contains data. Using `swapon` on a partition that contains data " +"will overwrite and destroy that data. Make sure that the partition to be " +"added as swap is really the intended partition before running `swapon`." +msgstr "" +"Можно использовать любой раздел, который в данный момент не смонтирован, " +"даже если он уже содержит данные. Использование `swapon` на разделе с " +"данными приведёт к их перезаписи и уничтожению. Перед выполнением `swapon` " +"убедитесь, что выбранный раздел действительно предназначен для добавления в " +"swap." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1541 +msgid "" +"man:swapon[8] can be used to add a swap partition to the system executing " +"the following command:" +msgstr "" +"man:swapon[8] может использоваться для добавления раздела подкачки в систему " +"выполнением следующей команды:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1545 +#, no-wrap +msgid "# swapon /dev/ada1p2\n" +msgstr "# swapon /dev/ada1p2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1548 +msgid "" +"To automatically add this swap partition on boot, add an entry to " +"[.filename]#/etc/fstab#:" +msgstr "" +"Для автоматического добавления этого раздела подкачки при загрузке добавьте " +"запись в [.filename]#/etc/fstab#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1552 +#, no-wrap +msgid "/dev/ada1p2 none swap sw 0 0\n" +msgstr "/dev/ada1p2 none swap sw 0 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1555 +msgid "" +"See man:fstab[5] for an explanation of the entries in [.filename]#/etc/" +"fstab#." +msgstr "См. man:fstab[5] для объяснения записей в [.filename]#/etc/fstab#." + +#. type: Title === +#: documentation/content/en/books/handbook/config/_index.adoc:1557 +#, no-wrap +msgid "Creating a Swap File" +msgstr "Создание файла подкачки" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1561 +msgid "These examples create a 512M swap file called [.filename]#/usr/swap0#." +msgstr "" +"Эти примеры создают файл подкачки размером 512 МБ с именем [.filename]#/usr/" +"swap0#." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1565 +msgid "" +"Swap files on ZFS file systems are strongly discouraged, as swapping can " +"lead to system hangs." +msgstr "" +"Файлы подкачки на файловых системах ZFS крайне не рекомендуются, так как " +"подкачка может привести к зависанию системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1568 +msgid "The first step is to create the swap file:" +msgstr "Первым шагом является создание файла подкачки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1572 +#, no-wrap +msgid "# dd if=/dev/zero of=/usr/swap0 bs=1m count=512\n" +msgstr "# dd if=/dev/zero of=/usr/swap0 bs=1m count=512\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1575 +msgid "The second step is to put the proper permissions on the new file:" +msgstr "Второй шаг — установить соответствующие разрешения для нового файла:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1579 +#, no-wrap +msgid "# chmod 0600 /usr/swap0\n" +msgstr "# chmod 0600 /usr/swap0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1582 +msgid "" +"The third step is to inform the system about the swap file by adding a line " +"to [.filename]#/etc/fstab#:" +msgstr "" +"Третий шаг — сообщить системе о файле подкачки, добавив строку в " +"[.filename]#/etc/fstab#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1586 +#, no-wrap +msgid "md none swap sw,file=/usr/swap0,late 0 0\n" +msgstr "md none swap sw,file=/usr/swap0,late 0 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/config/_index.adoc:1589 +msgid "" +"Swap space will be added on system startup. To add swap space immediately, " +"use man:swapon[8]:" +msgstr "" +"Раздел подкачки будет добавлен при запуске системы. Чтобы добавить раздел " +"подкачки немедленно, используйте man:swapon[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/config/_index.adoc:1593 +#, no-wrap +msgid "# swapon -aL\n" +msgstr "# swapon -aL\n" diff --git a/documentation/content/ru/books/handbook/cutting-edge/_index.adoc b/documentation/content/ru/books/handbook/cutting-edge/_index.adoc index b7dc4fb8ba..9cb3c24d83 100644 --- a/documentation/content/ru/books/handbook/cutting-edge/_index.adoc +++ b/documentation/content/ru/books/handbook/cutting-edge/_index.adoc @@ -1,23 +1,25 @@ --- -title: Глава 21. Обновление системы и смена версии FreeBSD -part: Часть III. Системное администрирование +description: 'Информация о том, как поддерживать систему FreeBSD в актуальном состоянии с помощью `freebsd-update` или Git, как пересобрать и переустановить всю базовую систему и так далее' +next: books/handbook/dtrace +params: + path: /books/handbook/cutting-edge/ +part: 'Часть III. Администрирование системы' prev: books/handbook/l10n -next: books/handbook/partiv showBookMenu: true -weight: 25 -params: - path: "/books/handbook/cutting-edge/" +tags: ["updating", "upgrading", "documentation", "FreeBSD-STABLE", "FreeBSD-CURRENT", "Security Patches"] +title: 'Глава 26. Обновление и смена версии FreeBSD' +weight: 30 --- [[updating-upgrading]] -= Обновление системы и смена версии FreeBSD += Обновление и смена версии FreeBSD :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 21 +:sectnumoffset: 26 :partnums: :source-highlighter: rouge :experimental: @@ -48,48 +50,48 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] [[updating-upgrading-synopsis]] -== Краткий обзор +== Обзор -Между релизами над FreeBSD ведется постоянная работа. Некоторые отдают предпочтение официально выпущенным версиям, в то время как остальные предпочитают использовать последние разработки. Тем не менее, даже для официальных версий часто выходят обновления, связанные с безопасностью и другими критическими исправлениями. Независимо от используемой версии FreeBSD предоставляет все необходимые инструменты для поддержания системы в актуальном состоянии, а также позволяет легко перейти на другую версию. Эта глава описывает, как отслеживать систему в процессе её разработки, а также основные инструменты для поддержания системы FreeBSD в актуальном состоянии. +FreeBSD постоянно развивается между выпусками. Некоторые предпочитают использовать официальные выпущенные версии, в то время как другие следят за последними изменениями в разработке. Однако даже официальные выпуски часто обновляются с исправлениями безопасности и другими критическими исправлениями. Независимо от используемой версии, FreeBSD предоставляет все необходимые инструменты для поддержания системы в актуальном состоянии и позволяет легко обновляться между версиями. В этой главе описывается, как отслеживать разработку системы и основные инструменты для поддержания FreeBSD в актуальном состоянии. -После чтения этой главы вы будете знать: +Прочитав эту главу, вы будете знать: -* Как поддерживать систему FreeBSD в актуальном состоянии при помощи freebsd-update, Subversion или CTM. -* Как узнать состояние установленной системы по отношению к известной нетронутой копии. -* Как поддерживать установленную документацию в актуальном состоянии при помощи Subversion или портов документации. -* Разницу между двумя ветвями разработки: FreeBSD-STABLE и FreeBSD-CURRENT. -* Как перестраивать и переустанавливать всю базовую систему. +* Как поддерживать систему FreeBSD в актуальном состоянии с помощью freebsd-update или Git. +* Как сравнить состояние установленной системы с известной чистой копией. +* Как поддерживать установленную документацию в актуальном состоянии с помощью Git или портов документации. +* Разница между двумя ветвями разработки: FreeBSD-STABLE и FreeBSD-CURRENT. +* Как пересобрать и переустановить всю базовую систему. -Перед чтением этой главы вы должны: +Прежде чем читать эту главу, вы должны: -* Правильно настроить сетевое подключение (crossref:advanced-networking[advanced-networking, Сложные вопросы работы в сети]). -* Знать, как устанавливать дополнительное стороннее программное обеспечение (crossref:ports[ports, Установка приложений. порты и пакеты]). +* Правильно настроить сетевое подключение (crossref:advanced-networking[advanced-networking,Сложные вопросы работы в сети]). +* Знать, как устанавливать дополнительное стороннее программное обеспечение (crossref:ports[ports,Установка приложений: Пакеты и Порты]). [NOTE] ==== -В этой главе для получения и обновления исходных текстов FreeBSD используется команда `svn`. Для этого нужно сперва установить порт или пакет package:devel/subversion[]. +В этой главе для получения и обновления исходных кодов FreeBSD используется `git`. При желании можно использовать порт или пакет package:devel/git[]. ==== [[updating-upgrading-freebsdupdate]] == Обновление FreeBSD -Своевременное применение обновлений безопасности и переход на более новую версию операционной системы - важные аспекты системного администрирования. FreeBSD включает в себя программу `freebsd-update`, которую можно использовать для решения обеих задач. +Применение исправлений безопасности своевременно и обновление до более новой версии операционной системы являются важными аспектами текущего администрирования системы. FreeBSD включает утилиту `freebsd-update`, которую можно использовать для выполнения обеих задач. -Эта программа используется для установки распространяемых в двоичном виде обновлений безопасности и исправлений для FreeBSD без необходимости ручной компиляции и установки патчей или нового ядра. Двоичные обновления доступны для всех архитектур и версий, поддерживаемых группой безопасности. Перечень поддерживаемых версий и их ожидаемые даты окончания поддержки указаны на странице http://www.FreeBSD.org/security/[http://www.FreeBSD.org/security/]. +Этот инструмент поддерживает бинарные обновления безопасности и исправления ошибок в FreeBSD без необходимости ручной компиляции и установки патчей или нового ядра. Бинарные обновления доступны для всех архитектур и выпусков, которые в настоящее время поддерживаются командой безопасности. Список поддерживаемых выпусков и их предполагаемые даты окончания поддержки приведены на странице https://www.FreeBSD.org/security/[https://www.FreeBSD.org/security/]. -Эта программа также используется для незначительных обновлений версии операционной системы, а также для перехода на другую ветвь выпуска релизов. Перед обновлением следует ознакомиться с объявлением о выпуске новой версии, так как там может содержаться важная информация, применимая к версии, на которую намечен переход. С соответствующими объявлениями можно ознакомиться по ссылке http://www.FreeBSD.org/releases/[http://www.FreeBSD.org/releases/]. +Эта утилита также поддерживает обновления операционной системы со сменой младших версий, а также переход на другую ветку выпусков. Перед обновлением до нового выпуска ознакомьтесь с его анонсом, так как он содержит важную информацию, относящуюся к выпуску. Анонсы выпусков доступны по адресу https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/]. [NOTE] ==== -Если имеется задание `crontab`, запускающее man:freebsd-update[8], то перед сменой версии операционной системы его обязательно нужно выключить. +Если существует man:crontab[5], использующий возможности man:freebsd-update[8], его необходимо отключить перед обновлением операционной системы. ==== -В этом разделе описывается конфигурационный файл `freebsd-update`, демонстрируется применение исправлений безопасности и обновление операционной системы со сменой младшей или старшей версии, а также обсуждаются некоторые соображения касаемо смены версии операционной системы. +В этом разделе описывается файл конфигурации, используемый `freebsd-update`, демонстрируется применение патча безопасности, обновление со сменой мледшей или старшей версии операционной системы, а также рассматриваются некоторые аспекты, которые следует учитывать при обновлении ОС. [[freebsdupdate-config-file]] -=== Конфигурационный файл +=== Файл конфигурации -Конфигурационный файл `freebsd-update` самодостаточен и работает по умолчанию. Некоторые пользователи могут пожелать отредактировать конфигурационный файл [.filename]#/etc/freebsd-update.conf# для лучшего контроля над процессом обновления. В комментариях описываются доступные в этом файле параметры, но для следующих из них может потребоваться дополнительное разъяснение: +Файл конфигурации по умолчанию для `freebsd-update` работает без изменений. Некоторые пользователи могут захотеть настроить конфигурацию по умолчанию в [.filename]#/etc/freebsd-update.conf#, чтобы лучше контролировать процесс. Комментарии в этом файле объясняют доступные опции, но следующие моменты могут потребовать дополнительного пояснения: [.programlisting] .... @@ -97,7 +99,7 @@ endif::[] Components world kernel .... -Данный параметр определяет, какие части FreeBSD будут обновлены. По умолчанию обновляется вся базовая система (world) и ядро (kernel). Вместо этого можно указать отдельные компоненты, такие как `src/base` или `src/sys`. Тем не менее, лучшим вариантом будет оставить всё как есть, поскольку изменение этого перечня с целью добавления особых пунктов потребует от пользователя указания подряд всех пунктов. Со временем это может привести к негативным последствиям из-за возможной рассинхронизации между исходными текстами и двоичными файлами. +Этот параметр определяет, какие части FreeBSD будут поддерживаться в актуальном состоянии. По умолчанию обновляется вся базовая система и ядро. Вместо этого можно указать отдельные компоненты, например `src/base` или `src/sys`. Однако лучшим вариантом будет оставить значение по умолчанию, так как изменение параметра для включения конкретных компонентов требует перечисления всех необходимых элементов. Со временем это может привести к катастрофическим последствиям, поскольку исходный код и исполняемые файлы могут перестать быть синхронизированными. [.programlisting] .... @@ -106,7 +108,7 @@ Components world kernel IgnorePaths /boot/kernel/linker.hints .... -Добавьте сюда пути к каталогам (например, [.filename]#/bin# или [.filename]#/sbin#), которые вы бы хотели оставить нетронутыми в процессе обновления. Этот параметр можно использовать для предотвращения перезаписывания локальных изменений программой `freebsd-update`. +Чтобы оставить указанные каталоги, такие как [.filename]#/bin# или [.filename]#/sbin#, без изменений в процессе обновления, добавьте их пути в эту инструкцию. Эта опция может быть использована для предотвращения перезаписи локальных изменений с помощью `freebsd-update`. [.programlisting] .... @@ -116,7 +118,7 @@ IgnorePaths /boot/kernel/linker.hints UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile .... -Этот параметр позволяет обновлять конфигурационные файлы в указанных каталогах, только если они не содержат изменений. При наличии каких-либо изменений со стороны пользователя автоматическое обновление таких файлов отменяется. Есть другой параметр `KeepModifiedMetadata`, который предписывает команде `freebsd-update` сохранять изменения в процессе слияния. +Эта опция будет обновлять только неизмененные конфигурационные файлы в указанных каталогах. Любые изменения, внесенные пользователем, предотвратят автоматическое обновление этих файлов. Существует другая опция, `KeepModifiedMetadata`, которая предписывает `freebsd-update` сохранять изменения во время слияния. [.programlisting] .... @@ -125,7 +127,7 @@ UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile MergeChanges /etc/ /var/named/etc/ /boot/device.hints .... -Список каталогов с конфигурационными файлами, для которых `freebsd-update` попытается выполнить слияние. Процесс слияния файла представляет собой последовательность изменений в формате man:diff[1], похожую на man:mergemaster[8], но с меньшим количеством параметров. Результат слияния принимается, открывается редактор или `freebsd-update` прекращает работу. В случае сомнений сделайте резервную копию [.filename]#/etc# и просто согласитесь со всеми изменениями. Для получения подробной информации по команде `mergemaster` смотрите <<mergemaster>>. +Список каталогов с файлами конфигурации, которые `freebsd-update` должен попытаться объединить. Процесс объединения файлов представляет собой серию патчей man:diff[1]. Объединения могут быть приняты, открыты в редакторе или привести к прерыванию работы `freebsd-update`. В случае сомнений создайте резервную копию [.filename]#/etc# и просто примите объединения. [.programlisting] .... @@ -134,7 +136,7 @@ MergeChanges /etc/ /var/named/etc/ /boot/device.hints # WorkDir /var/db/freebsd-update .... -Этот каталог предназначен для размещения патчей и временных файлов. В случае, когда пользователь выполняет обновление со сменой версии, в этом месте нужно иметь по крайней мере гигабайт свободного дискового пространства. +Этот каталог предназначен для всех патчей и временных файлов. В случае обновления версии в этом расположении должно быть доступно как минимум гигабайт дискового пространства. [.programlisting] .... @@ -145,76 +147,115 @@ MergeChanges /etc/ /var/named/etc/ /boot/device.hints # StrictComponents no .... -Если выставлено значение `yes`, то `freebsd-update` будет исходить из того, что список `Components` является полным, и не будет пытаться выполнить изменения за пределами этого списка. В действительности `freebsd-update` попытается обновить все файлы, которые принадлежат списку `Components`. +Когда эта опция установлена в `yes`, `freebsd-update` будет считать список `Components` полным и не будет пытаться вносить изменения за его пределами. Фактически, `freebsd-update` попытается обновить каждый файл, принадлежащий списку `Components`. + +Обратитесь к man:freebsd-update.conf[5] для получения дополнительной информации. [[freebsdupdate-security-patches]] -=== Обновления безопасности +=== Применение обновлений безопасности -Процесс применения обновлений безопасности FreeBSD был упрощён, что позволяет поддерживать систему в актуальном состоянии, используя `freebsd-update`. Для получения дополнительной информации по бюллетеням безопасности FreeBSD смотрите crossref:security[security-advisories,Сообщения безопасности FreeBSD]. +Процесс применения патчей безопасности FreeBSD был упрощен, что позволяет администратору поддерживать систему в полностью обновленном состоянии с помощью `freebsd-update`. Дополнительная информация о выпусках безопасности FreeBSD доступна в crossref:security[security-advisories,"Рекомендации по безопасности FreeBSD"]. -Обновления безопасности можно загрузить и установить с использованием следующих команд. Первая команда определяет наличие незагруженных обновлений и показывает файлы, которые будут изменены в процессе обновления. Вторая команда выполняет обновление. +Обновления безопасности FreeBSD могут быть загружены и установлены с помощью следующих команд. Первая команда проверит наличие доступных обновлений и, если они есть, выведет список файлов, которые будут изменены при их применении. Вторая команда применит обновления. -[source,shell] +[source, shell] .... # freebsd-update fetch # freebsd-update install .... -Если были установлены обновления ядра, то после этого нужно перезагрузить систему. Если обновление установилось для какого-либо работающего в системе двоичного файла, то следует перезапустить затронутые приложения, чтобы использовалась исправленная версия двоичного файла. +Если обновление включает какие-либо исправления для ядра, системе потребуется перезагрузка для загрузки исправленного ядра. Если исправление было применено к каким-либо выполняемым файлам, затронутые приложения следует перезапустить, чтобы использовалась исправленная версия бинарного файла. -Можно настроить ежедневную автоматическую проверку наличия обновлений, добавив следующую запись в [.filename]#/etc/crontab#: +[NOTE] +==== +Обычно пользователь должен быть готов перезагрузить систему. Чтобы проверить, требуется ли перезагрузка из-за обновления ядра, выполните команды `freebsd-version -k` и `uname -r`. Перезагрузите систему, если их вывод различается. +==== + +Систему можно настроить для автоматической проверки обновлений раз в день, добавив следующую запись в [.filename]#/etc/crontab#: [.programlisting] .... @daily root freebsd-update cron .... -При наличии обновлений они будут автоматически загружены. Пользователю `root` будет отправлено письмо, так что эти обновления можно будет просмотреть и установить самостоятельно командой `freebsd-update install`. +Если существуют патчи, они будут автоматически загружены, но не применены. Пользователь `root` получит письмо, чтобы патчи можно было просмотреть и установить вручную с помощью `freebsd-update install`. -На случай, если что-то пошло не так, в `freebsd-update` предусмотрен механизм возврата последнего набора изменений с использованием следующей команды: +Если что-то пойдет не так, `freebsd-update` может откатить последние изменения с помощью следующей команды: -[source,shell] +[source, shell] .... # freebsd-update rollback Uninstalling updates... done. .... -Если после завершения всех действий было изменено ядро или какой-либо из его модулей, система должна быть перезагружена, а все затронутые исполняемые файлы нужно перезапустить. +Вновь, система должна быть перезапущена, если ядро или какие-либо модули ядра были изменены, и все затронутые бинарные файлы должны быть перезапущены. -Команда `freebsd-update` позволяет автоматически обновлять только ядро [.filename]#GENERIC#. Если используется ядро с собственной конфигурацией, его понадобится пересобрать и переустановить после того, как `freebsd-update` завершит установку обновлений. Тем не менее, `freebsd-update` обнаружит и обновит ядро [.filename]#GENERIC# при наличии [.filename]#/boot/GENERIC#, даже если оно не является текущим используемым ядром в системе. +Только ядро [.filename]#GENERIC# может быть автоматически обновлено с помощью `freebsd-update`. Если установлено пользовательское ядро, его необходимо пересобрать и переустановить после завершения установки обновлений `freebsd-update`. Имя ядра по умолчанию — _GENERIC_. Для проверки его установки можно использовать команду man:uname[1]. [NOTE] ==== -Всегда храните копию ядра [.filename]#GENERIC# в [.filename]#/boot/GENERIC#. Оно пригодится при решении различных проблем, а также при выполнении обновления со сменой версии. Смотрите <<freebsd-update-custom-kernel-9x>> для описания получения копии ядра [.filename]#GENERIC#. +Всегда сохраняйте копию ядра [.filename]#GENERIC# в [.filename]#/boot/GENERIC#. Оно может быть полезно при диагностике различных проблем и при обновлении версий. Инструкции по получению копии ядра [.filename]#GENERIC# можно найти в crossref:cutting-edge[freebsd-update-custom-kernel-9x, Custom Kernels with FreeBSD 9.X and Later]. ==== -Если конфигурация в [.filename]#/etc/freebsd-update.conf# не изменялась, `freebsd-update` вместе с остальными обновлениями установит обновлённые исходные тексты ядра. После этого можно обычным способом выполнить перестроение и переустановку нового ядра с собственной конфигурацией. +Если конфигурация по умолчанию в [.filename]#/etc/freebsd-update.conf# не была изменена, `freebsd-update` установит обновленные исходные коды ядра вместе с остальными обновлениями. Затем пересборка и переустановка нового пользовательского ядра могут быть выполнены обычным способом. -Обновления, получаемые с помощью `freebsd-update`, не всегда затрагивают ядро. Перестроение собственного ядра не является обязательным, если исходные тексты ядра не были изменены при выполнении `freebsd-update install`. Тем не менее, `freebsd-update` всегда обновляет [.filename]#/usr/src/sys/conf/newvers.sh#. Текущий набор изменений, как указано в номере `-p` в выводе `uname -r`, получается из этого файла. Перестроение собственного ядра, даже если ничего больше не менялось, позволяет `uname` правильно сообщать текущий набор изменений в системе. Это в частности может помочь при сопровождении множества систем, поскольку позволяет быстро оценить наличие установленных обновлений в каждой из них. +Обновления, распространяемые через `freebsd-update`, не всегда затрагивают ядро. Нет необходимости пересобирать собственное ядро, если исходные коды ядра не были изменены командой `freebsd-update install`. Однако `freebsd-update` всегда обновляет файл [.filename]#/usr/src/sys/conf/newvers.sh#. Текущий уровень патча, обозначаемый числом после `-p` в выводе `uname -r`, берётся из этого файла. Пересборка собственного ядра, даже если ничего больше не менялось, позволяет `uname` точно отображать текущий уровень патча системы. Это особенно полезно при обслуживании нескольких систем, так как позволяет быстро оценить установленные обновления на каждой из них. [[freebsdupdate-upgrade]] -=== Обновления со сменой старшей и младшей версий +=== Выполнение обновлений с изменением младших и старших версий + +Обновления с изменением младшей версии FreeBSD называются _минорными обновлениями_. Пример: + +- FreeBSD 13.1 до 13.2. + +_Мажорные_ обновления увеличивают номер старшей версии. Пример: + +- FreeBSD 13.2 до 14.0. + +Оба типа обновления могут быть выполнены путем указания `freebsd-update` целевой версии выпуска. + +[WARNING] +==== +После каждого нового выпуска `RELEASE` серверы сборки пакетов FreeBSD в течение ограниченного периода времени *не* используют новую версию операционной системы. Это обеспечивает преемственность для многих пользователей, которые не обновляются сразу после объявления о выпуске. Например: + +* Пакеты для пользователей версий 13.1 и 13.2 будут собираться на сервере под управлением 13.1, пока поддержка 13.1 не прекратится + +-- и, что критически важно: -Обновление с FreeBSD 9.0 на FreeBSD 9.1, называется обновлением со сменой младшего номера версии. Смена старшего номера версии происходит, когда FreeBSD переходит с одной значительной версии на другую, как, например, при обновлении с FreeBSD 9.X на FreeBSD 10.X. Оба типа обновлений можно произвести, указав `freebsd-update` версию, на которую нужно перейти. +* модуль ядра, собранный в версии 13.1, *может* не подойти для версии 13.2. + +Итак, при любом обновлении ОС, будь то обновление младшей или старшей версии, если ваш пакет требует включить какой-либо модуль ядра: + +* *be prepared to build the module from source*. + +==== [NOTE] ==== -Если в системе используется ядро с собственной конфигурацией, убедитесь перед началом обновления в наличии копии ядра [.filename]#GENERIC# в [.filename]#/boot/GENERIC#. Смотрите <<freebsd-update-custom-kernel-9x>> для описания получения копии ядра [.filename]#GENERIC#. +Если система работает на собственном ядре, убедитесь перед началом обновления, что копия ядра [.filename]#GENERIC# осталась в [.filename]#/boot/GENERIC#. Обратитесь к crossref:cutting-edge[freebsd-update-custom-kernel-9x, Собственные ядра системы в FreeBSD 9.X и более поздних версиях] для получения инструкций о том, как получить копию ядра [.filename]#GENERIC#. ==== -Следующая команда, будучи запущенной на FreeBSD 9.0, выполнит обновление до версии FreeBSD 9.1: +Перед обновлением до новой версии убедитесь, что текущая установка FreeBSD обновлена с учетом исправлений безопасности и ошибок: + +[source, shell] +.... +# freebsd-update fetch +# freebsd-update install +.... + +Следующая команда, выполненная на системе FreeBSD 13.1, обновит её до версии FreeBSD 13.2: -[source,shell] +[source, shell] .... -# freebsd-update -r 9.1-RELEASE upgrade +# freebsd-update -r 13.2-RELEASE upgrade .... -После своего запуска `freebsd-update` анализирует содержимое конфигурационного файла и собирает необходимую для проведения обновления информацию о текущей установленной системе. На экран будет выдан перечень компонентов, которые удалось и не удалось обнаружить установленными. Например: +После получения команды `freebsd-update` оценит файл конфигурации и текущую систему, чтобы собрать информацию, необходимую для выполнения обновления. На экране появится список компонентов, которые были и не были обнаружены. Например: -[source,shell] +[source, shell] .... Looking up update.FreeBSD.org mirrors... 1 mirrors found. -Fetching metadata signature for 9.0-RELEASE from update1.FreeBSD.org... done. +Fetching metadata signature for 13.1-RELEASE from update1.FreeBSD.org... done. Fetching metadata index... done. Inspecting system... done. @@ -231,148 +272,146 @@ world/proflibs Does this look reasonable (y/n)? y .... -Следующим шагом `freebsd-update` попытается загрузить по сети файлы, необходимые для выполнения обновления. В некоторых случаях может потребоваться ответить на вопросы относительно того, что и как устанавливать. +На этом этапе `freebsd-update` попытается загрузить все файлы, необходимые для обновления. В некоторых случаях пользователю могут быть заданы вопросы относительно того, что установить или как продолжить. -Если используется ядро с собственной конфигурацией, то в этом случае появится предупреждение следующего вида: +При использовании собственного ядра вышеуказанный шаг вызовет предупреждение, подобное следующему: -[source,shell] +[source, shell] .... WARNING: This system is running a "MYKERNEL" kernel, which is not a -kernel configuration distributed as part of FreeBSD 9.0-RELEASE. +kernel configuration distributed as part of FreeBSD 13.1-RELEASE. This kernel will not be updated: you MUST update the kernel manually before running "/usr/sbin/freebsd-update install" .... -На этом этапе предупреждение можно проигнорировать. На промежуточном этапе процесса обновления будет использовано обновлённое ядро [.filename]#GENERIC#. +Это предупреждение можно безопасно проигнорировать на данном этапе. Обновлённое ядро [.filename]#GENERIC# будет использовано как промежуточный шаг в процессе обновления. -После того, как все изменения были загружены, они будут применены. Этот процесс может занять определённое время, в зависимости от производительности и текущей загруженности компьютера. Затем будет выполнено слияние конфигурационных файлов. Процесс слияния требует от пользователя определённого вмешательства, так как для файла можно выполнить слияние автоматически, а можно открыть текстовый редактор для слияния вручную. Результат успешного слияния будет показан на экране. Неудачное или пропущенное слияние вызовет преждевременное завершение программы. Можно подготовить резервную копию каталога [.filename]#/etc# для таких важных файлов как [.filename]#master.passwd# и [.filename]#group# и выполнить их слияние вручную позднее. +После загрузки всех патчей в локальную систему они будут применены. Этот процесс может занять некоторое время в зависимости от скорости и загруженности машины. Затем будут объединены конфигурационные файлы. Процесс объединения требует вмешательства пользователя, так как файл может быть объединен автоматически или на экране появится редактор для ручного объединения. Результаты каждого успешного объединения будут отображаться пользователю по мере выполнения процесса. Неудачное или пропущенное объединение приведет к прерыванию процесса. Пользователям рекомендуется создать резервную копию [.filename]#/etc# и вручную объединить важные файлы, такие как [.filename]#master.passwd# или [.filename]#group#, позже. [NOTE] ==== -На данном этапе система еще не модифицирована, и все изменения и слияния происходят в отдельном каталоге. Теперь, когда все изменения успешно применены, все конфигурационные файлы объединены и кажется, что процесс должен пройти плавно, изменения могут быть установлены на диск с помощью следующей команды: +Система пока не изменяется, так как все исправления и слияния происходят в другом каталоге. Как только все исправления будут успешно применены, все конфигурационные файлы объединены и процесс, по всей видимости, пройдёт без проблем, пользователь может записать изменения на диск с помощью следующей команды: -[source,shell] +[source, shell] .... # freebsd-update install .... ==== -В первую очередь изменения будут применены к ядру и его модулям. При использовании ядра с собственной конфигурацией укажите для следующей загрузки обновлённое ядро [.filename]#/boot/GENERIC# с помощью man:nextboot[8]: +Ядро и модули ядра будут пропатчены первыми. Если система работает с пользовательским ядром, используйте man:nextboot[8], чтобы установить ядро для следующей загрузки в обновлённый [.filename]#/boot/GENERIC#: -[source,shell] +[source, shell] .... # nextboot -k GENERIC .... [WARNING] ==== - -Перед перезагрузкой с ядром [.filename]#GENERIC# убедитесь, что оно содержит все необходимые драйвера для системы для корректной загрузки и подключения к сети, если машина обновляется удалённо. В частности, если в ядре содержится встроенная функциональность, которая обычно обеспечивается модулями ядра, загрузите эти драйвера с ядром [.filename]#GENERIC#, временно указав их как модули в [.filename]#/boot/loader.conf#. Рекомендуется отключить несущественные службы, а также любые локальные и сетевые диски до завершения процесса обновления. +Перед перезагрузкой с ядром [.filename]#GENERIC# убедитесь, что оно содержит все драйверы, необходимые для корректной загрузки системы и подключения к сети, если обновляемая машина доступна удалённо. В частности, если текущее кастомное ядро включает встроенную функциональность, обычно предоставляемую модулями ядра, убедитесь, что временно загрузили эти модули в ядро [.filename]#GENERIC# с помощью механизма [.filename]#/boot/loader.conf#. Также рекомендуется отключить несущественные сервисы, а также любые монтирования дисков и сетевые подключения до завершения процесса обновления. ==== -Теперь компьютер должен быть перезагружен с новым ядром: +Машину теперь следует перезагрузить с обновлённым ядром: -[source,shell] +[source, shell] .... # shutdown -r now .... -После перезагрузки нужно повторно запустить команду `freebsd-update`. Команда прочитает, на каком этапе она находится, и перейдёт к удалению старых объектных файлов и совместно используемых библиотек. +После того как система снова станет доступной, перезапустите `freebsd-update` с помощью следующей команды. Поскольку состояние процесса сохранено, `freebsd-update` начнёт не с начала, а перейдёт к следующему этапу и удалит все старые общие библиотеки и объектные файлы. -[source,shell] +[source, shell] .... # freebsd-update install .... [NOTE] ==== -Количество этапов установки обновлений может быть два вместо трёх и зависит от того, были ли изменены номера версий каких-либо совместно используемых библиотек. +В зависимости от того, были ли изменены номера версий библиотек, может быть только две фазы установки вместо трёх. ==== -На этом процесс завершён. Если было выполнено обновление со сменой старшего номера версии, переустановите все порты и пакеты в соответствии с описанием, которое предоставляет <<freebsdupdate-portsrebuild>>. +Обновление завершено. Если было выполнено обновление старшей версии, переустановите все порты и пакеты, как описано в crossref:cutting-edge[freebsdupdate-portsrebuild,Обновление пакетов после обновления старшей версии]. [[freebsd-update-custom-kernel-9x]] -==== Собственная конфигурация ядра в FreeBSD 9.X и более поздних версиях +==== Собственные ядра в FreeBSD 9.X и более поздних версиях -Перед использованием `freebsd-update` убедитесь в наличии копии ядра [.filename]#GENERIC# в [.filename]#/boot/GENERIC#. Если ядро с собственной конфигурацией было собрано единожды, то в [.filename]#/boot/kernel.old# будет находиться ядро `GENERIC`. Просто переименуйте этот каталог в [.filename]#/boot/kernel#. +Перед использованием `freebsd-update` убедитесь, что копия ядра [.filename]#GENERIC# осталось в [.filename]#/boot/GENERIC#. Если собственное ядро собиралось только один раз, ядро в [.filename]#/boot/kernel.old# является ядром `GENERIC`. Просто переименуйте этот каталог в [.filename]#/boot/GENERIC#. -Если ядро с собственной конфигурацией было собрано более одного раза, получите копию ядра `GENERIC`, соответствующую текущей версии операционной системы. При наличии физического доступа копию ядра `GENERIC` можно установить с установочного носителя: +Если собственное ядро собиралось более одного раза или неизвестно, сколько раз оно пересобиралось, необходимо получить копию ядра `GENERIC`, соответствующую текущей версии операционной системы. Если есть физический доступ к системе, копию ядра `GENERIC` можно установить с установочного носителя: -[source,shell] +[source, shell] .... # mount /cdrom # cd /cdrom/usr/freebsd-dist # tar -C/ -xvf kernel.txz boot/kernel/kernel .... -Иначе, ядро `GENERIC` можно собрать и установить из исходных текстов: +Или ядро `GENERIC` может быть пересобрано и установлено из исходного кода: -[source,shell] +[source, shell] .... # cd /usr/src # make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null .... -Чтобы такое ядро было определено как ядро `GENERIC` программой `freebsd-update`, в файле конфигурации [.filename]#GENERIC# должны отсутствовать изменения. Также предлагается, что ядро было собрано без использования каких-либо специальных параметров. +Чтобы ядро было идентифицировано как `GENERIC` с помощью `freebsd-update`, конфигурационный файл [.filename]#GENERIC# не должен быть каким-либо образом изменён. Также рекомендуется собирать ядро без каких-то дополнительных специальных опций. -Загрузка с [.filename]#GENERIC# не требуется, поскольку для `freebsd-update` достаточно существования [.filename]#/boot/GENERIC#. +Перезагрузка с ядром [.filename]#GENERIC# не требуется, так как `freebsd-update` нужен только файл [.filename]#/boot/GENERIC#. [[freebsdupdate-portsrebuild]] -==== Обновление пакетов после смены старшей версии системы +==== Обновление пакетов после обновления старшей версии -После обновления системы со сменой младшей версии установленные приложения, в целом, продолжают работать без каких-либо проблем. Различные старшие версии используют различающиеся двоичные интерфейсы приложений (Application Binary Interface, ABI), из-за чего перестаёт работать большинство сторонних приложений. После обновления системы со сменой старшей версии все установленные пакеты и порты также нуждаются в обновлении. Пакеты можно обновить с использованием `pkg upgrade`. Для обновления установленных портов используется package:ports-mgmt/portmaster[]. +Обычно установленные приложения продолжают работать без проблем после обновления младших версий. Старшие версии используют разные бинарные интерфейсы приложений (ABI), что приведёт к неработоспособности большинства сторонних приложений. После обновления старшей версии необходимо обновить все установленные пакеты и порты. Пакеты можно обновить с помощью `pkg upgrade`. Для обновления установленных портов используйте утилиты, например package:ports-mgmt/portmaster[]. -Принудительное обновление все установленных пакетов приведёт к их замене на последние версии из репозитория, даже если номер версии при этом не увеличивался. Это требуется из-за смены версии ABI при обновлении на другую старшую версию FreeBSD. Принудительное обновление можно выполнить так: +Принудительное обновление всех установленных пакетов заменит пакеты на новые версии из репозитория, даже если номер версии не увеличился. Это необходимо из-за изменения версии ABI при обновлении между старшими версиями FreeBSD. Принудительное обновление можно выполнить с помощью команды: -[source,shell] +[source, shell] .... # pkg-static upgrade -f .... -Перестроение всех установленных приложений можно выполнить этой командой: +Перестройка всех приложений, установленных из коллекции портов, может быть выполнена с помощью следующей команды: -[source,shell] +[source, shell] .... # portmaster -af .... -Эта команда будет отображать экран выбора конфигурации для каждого приложения, в котором доступны параметры конфигурации, с ожиданием пользовательского ввода. Чтобы не использовать такое поведение и всегда выбирать параметры по умолчанию, добавьте ключ `-G` в вышеприведённую команду. +Эта команда отобразит экраны конфигурации для каждого приложения, имеющего настраиваемые параметры, и будет ожидать взаимодействия пользователя с этими экранами. Чтобы предотвратить такое поведение и использовать только параметры по умолчанию, добавьте `-G` в указанную выше команду. -После завершения процесса обновления программного обеспечения закончите процесс обновления последним запуском `freebsd-update`, для того чтобы убедиться, что ничто не было пропущено в процессе обновления: +После завершения обновления программного обеспечения завершите процесс обновления, выполнив последний вызов `freebsd-update`, чтобы устранить все нерешенные вопросы, оставшиеся в процессе обновления: -[source,shell] +[source, shell] .... # freebsd-update install .... -Если в качестве временной меры использовалось ядро [.filename]#GENERIC#, то это подходящее время для построения и установки нового ядра с собственной конфигурацией в соответствии с инструкциями в crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]. +Если временно использовалось ядро [.filename]#GENERIC#, сейчас самое время собрать и установить новое пользовательское ядро, следуя инструкциям из раздела crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]. -Перезагрузите машину с новой версией FreeBSD. На этом процесс обновления завершён. +Перезагрузите машину с новой версией FreeBSD. Процесс обновления завершен. [[freebsdupdate-system-comparison]] === Сравнение состояния системы -С помощью команды `freebsd-update IDS` можно получить состояние установленной версии FreeBSD относительно известной доверенной копии. Эта команда проверяет текущую версию системных утилит, библиотек и конфигурационных файлов, и её можно использовать в качестве встроенной системы обнаружения вторжений (Intrusion Detection System, IDS). +Состояние установленной версии FreeBSD можно проверить с помощью `freebsd-update IDS`, сравнив его с известной исправной копией. Эта команда оценивает текущие версии системных утилит, библиотек и конфигурационных файлов и может использоваться как встроенная система обнаружения вторжений (IDS — Intrusion Detection System). [WARNING] ==== - -Эта команда не является заменой IDS, такой как package:security/snort[]. Поскольку `freebsd-update` сохраняет свои данные на диске, возможность подмены становится очевидной. И хотя эта возможность может быть уменьшена при использовании настройки `kern.securelevel`, а также используя для записи данных `freebsd-update` файловую систему, которая в остальное время смонтирована только на чтение, лучшим решением будет сравнить систему относительно эталона на физически защищенном носителе, таком как DVD или внешний USB диск с включённой защитой от записи. +Эта команда не является заменой настоящей системы обнаружения вторжений, такой как package:security/snort[]. Поскольку `freebsd-update` хранит данные на диске, возможность их подделки очевидна. Хотя эту возможность можно уменьшить, используя `kern.securelevel` и сохраняя данные `freebsd-update` на файловой системе только для чтения, когда они не используются, лучшее решение — сравнить систему с защищённым диском, таким как DVD или надёжно хранимое внешнее USB-устройство. Альтернативный метод обеспечения функциональности системы обнаружения вторжений с использованием встроенной утилиты описан в crossref:security[security-ids,"Проверка двоичных файлов"] ==== -Для того, чтобы начать сравнение, укажите файл для сохранения результатов: +Для начала сравнения укажите выходной файл для сохранения результатов: -[source,shell] +[source, shell] .... # freebsd-update IDS >> outfile.ids .... -Запустится проверка системы, результат которой будет записан в указанный файл в виде списка файлов вместе с их контрольными суммами в формате SHA256 - для известных файлов из релиза и текущих в системе. +Система будет проверена, и в указанный выходной файл будет отправлен длинный список файлов вместе с хеш-значениями SHA256, как для известного значения в релизе, так и для текущей установки. -Строки в списке чрезмерно длинные, но зато такой формат вывода удобен для разбора. Так, для получения списка всех отличающихся от релиза файлов достаточно выполнить такую команду: +Записи в списке очень длинные, но формат вывода легко анализировать. Например, чтобы получить список всех файлов, которые отличаются от файлов в выпуске, выполните следующую команду: -[source,shell] +[source, shell] .... # cat outfile.ids | awk '{ print $1 }' | more /etc/master.passwd @@ -381,678 +420,553 @@ before running "/usr/sbin/freebsd-update install" /etc/pf.conf .... -Вывод специально обрезан, на самом деле файлов намного больше. Некоторые из них изменены в ходе нормальной работы: так, файл [.filename]#/etc/passwd# был изменён после заведения пользователей в системе. Модули ядра могли измениться вследствие обновления через `freebsd-update`. Для исключения из проверки конкретных файлов и каталогов укажите их в качестве значения параметра `IDSIgnorePaths` в [.filename]#/etc/freebsd-update.conf#. +Этот пример вывода был сокращён, так как существует гораздо больше файлов. Некоторые файлы имеют естественные изменения. Например, [.filename]#/etc/passwd# будет изменён, если в систему были добавлены пользователи. Модули ядра могут отличаться, так как `freebsd-update` мог их обновить. Чтобы исключить определённые файлы или каталоги, добавьте их в параметр `IDSIgnorePaths` в файле [.filename]#/etc/freebsd-update.conf#. + +[[updating-bootcode]] +== Обновление загрузочного кода + +Следующие руководства описывают процесс обновления загрузочного кода и загрузчиков: man:gpart[8], man:gptboot[8], man:gptzfsboot[8] и man:loader.efi[8]. [[updating-upgrading-documentation]] == Обновление документации -Документация является неотъемлемой частью операционной системы FreeBSD. И хотя актуальная версия документации FreeBSD всегда доступна на сайте FreeBSD (link:https://www.FreeBSD.org/doc/[http://www.freebsd.org/doc/]), может быть удобно иметь под рукой актуальную локальную копию сайта FreeBSD, руководств, FAQ и статей. +Документация является неотъемлемой частью операционной системы FreeBSD. Хотя актуальная версия документации FreeBSD всегда доступна на сайте FreeBSD (link:https://docs.FreeBSD.org[Портал документации]), может быть удобно иметь актуальную локальную копию веб-сайта FreeBSD, руководств, FAQ и статей. -В этом разделе описывается, как использовать исходный текст или Коллекцию Портов FreeBSD для организации актуальной локальной копии документации FreeBSD. +Этот раздел описывает, как использовать исходный код или коллекцию портов FreeBSD для поддержания локальной копии документации FreeBSD в актуальном состоянии. -За информацией о редактировании и отправке изменений для документации обращайтесь к FreeBSD Documentation Project Primer for New Contributors (extref:{fdp-primer}[FreeBSD Documentation Project Primer]). +Для получения информации о редактировании и отправке исправлений в документацию обратитесь к руководству "Проект документации FreeBSD: введение для новых участников" (extref:{fdp-primer}[Проект документации FreeBSD: введение для новых участников]). [[updating-installed-documentation]] -=== Обновление документации из исходного кода +=== Обновление документации из исходных текстов -Для перестроения документации FreeBSD из исходного текста требуется набор инструментов, который не является частью основной системы FreeBSD. Требуемые инструменты, включая svn, можно установить из пакета или порта package:textproc/docproj[], разработанного в рамках проекта документации FreeBSD. +Пересборка документации FreeBSD из исходных текстов требует набора инструментов, которые не входят в базовую систему FreeBSD. Необходимые инструменты можно установить, следуя extref:{fdp-primer}[этим шагам, overview-quick-start] из вводного руководства Проекта документации FreeBSD. -После установки используйте svn для получения копии исходных текстов документации: +После установки используйте `git`, чтобы получить чистую копию исходного кода документации: -[source,shell] +[source, shell] .... -# svn checkout https://svn.FreeBSD.org/doc/head /usr/doc +# git clone https://git.FreeBSD.org/doc.git /usr/doc .... -Первоначальная загрузка исходных текстов документации может занять некоторое время. Дайте ей завершиться. +Первоначальная загрузка исходного кода документации может занять некоторое время. Дождитесь завершения процесса. -Последующие обновления можно получить, выполнив: +Будущие обновления исходного кода документации можно получить, выполнив: -[source,shell] +[source, shell] .... -# svn update /usr/doc +# git pull .... -После того как в [.filename]#/usr/doc# была загружена актуальная копия исходных текстов, всё готово для обновления установленной документации. +После того как актуальный снимок исходников документации будет загружен в [.filename]#/usr/doc#, всё готово для обновления установленной документации. -Полное обновление всех доступных языковых версий можно выполнить, набрав команду: +Полное обновление можно выполнить, набрав: -[source,shell] +[source, shell] .... # cd /usr/doc -# make install clean +# make .... -Для обновления только указанной языковой версии команду `make` можно запустить в соответствующем подкаталоге [.filename]#/usr/doc#: - -[source,shell] -.... -# cd /usr/doc/en_US.ISO8859-1 -# make install clean -.... - -Альтернативный способ обновления документации заключается в запуске следующей команды из из [.filename]#/usr/doc# или подкаталога с желаемой языковой версией: +[[current-stable]] +== Отслеживание ветки разработки -[source,shell] -.... -# make update -.... +FreeBSD имеет две ветви разработки: FreeBSD-CURRENT и FreeBSD-STABLE. -Используемый при установке формат можно указать через `FORMATS`: +Этот раздел содержит объяснение каждой ветки и её целевой аудитории, а также инструкции по поддержанию системы в актуальном состоянии для каждой из веток. -[source,shell] -.... -# cd /usr/doc -# make FORMATS='html html-split' install clean -.... +[[current]] +=== Использование FreeBSD-CURRENT -Для упрощения процесса частичного обновления документации и построения только нужных переводов имеется несколько параметров. Их можно задать как на общесистемном уровне, указав в [.filename]#/etc/make.conf#, так и непосредственно в команде `make`. +FreeBSD-CURRENT — это "передовой край" разработки FreeBSD, и от пользователей FreeBSD-CURRENT ожидается высокий уровень технической подготовки. Менее опытным пользователям, которые хотят следить за веткой разработки, рекомендуется использовать FreeBSD-STABLE. -Данные параметры включают: +FreeBSD-CURRENT - это самые последние исходные коды FreeBSD, включающие текущие работы, экспериментальные изменения и переходные механизмы, которые могут как присутствовать, так и отсутствовать в следующем официальном выпуске. Хотя многие разработчики FreeBSD компилируют исходный код FreeBSD-CURRENT ежедневно, бывают короткие периоды, когда сборка кода может быть невозможна. Эти проблемы решаются как можно быстрее, но приведёт ли FreeBSD-CURRENT к катастрофе или новым возможностям, может зависеть от того, когда исходный код был синхронизирован. -`DOC_LANG`:: -Перечень языков и кодировок для построения и установки, например, `en_US.ISO8859-1` для англоязычной документации. +FreeBSD-CURRENT доступен для трёх основных групп пользователей: -`FORMATS`:: -Единый формат или набор форматов для построения. На данный момент поддерживаются `html`, `html-split`, `txt`, `ps` и `pdf`. +. Участники сообщества FreeBSD, которые активно работают над какой-либо частью дерева исходного кода. +. Участники сообщества FreeBSD, которые активно тестируют. Они готовы тратить время на решение проблем, высказывать тематические предложения по изменениям и общему направлению развития FreeBSD, а также предоставлять патчи. +. Пользователи, которые хотят следить за происходящим, использовать текущие исходные коды для справки или иногда делать комментарии или вклад в код. -`DOCDIR`:: -Путь для установки документации. По умолчанию [.filename]#/usr/shared/doc#. +Версия FreeBSD-CURRENT _не_ должна рассматриваться как быстрый способ получить новые функции до следующего релиза, так как предрелизные функции ещё не полностью протестированы и, скорее всего, содержат ошибки. Это не быстрый способ исправления багов, так как каждый коммит с такой же вероятностью может добавить новые ошибки, как и исправить существующие. FreeBSD-CURRENT ни в коем случае не является "официально поддерживаемой". -Для получения других переменных `make`, также работающих во FreeBSD в качестве общесистемных, обратитесь к man:make.conf[5]. +Для отслеживания FreeBSD-CURRENT: -[[doc-ports-install-package]] -=== Обновление документации из портов +. Присоединитесь к спискам рассылки {freebsd-current} и {dev-commits-src-main}. Это _важно_ для того, чтобы видеть комментарии пользователей о текущем состоянии системы и получать важные уведомления о состоянии FreeBSD-CURRENT. ++ +Список {dev-commits-src-main} фиксирует запись журнала изменений для каждого внесённого изменения, а также любую сопутствующую информацию о возможных побочных эффектах. ++ +Чтобы присоединиться к этим спискам, перейдите на {mailing-lists}, выберите список, к которому хотите подписаться, и следуйте инструкциям. Для отслеживания изменений во всём дереве исходного кода, а не только в FreeBSD-CURRENT, подпишитесь на {dev-commits-src-all}. +. Синхронизация с исходным кодом FreeBSD-CURRENT. Обычно для получения кода -CURRENT из ветки `main` репозитория FreeBSD Git используется `git` (подробности см. в crossref:mirrors[git,“Использование Git”]). +. Из-за размера репозитория некоторые пользователи предпочитают синхронизировать только те разделы исходного кода, которые их интересуют или для которых они готовят патчи. Однако пользователи, планирующие собирать операционную систему из исходных кодов, должны загрузить _весь_ FreeBSD-CURRENT, а не только отдельные его части. ++ +Перед компиляцией FreeBSD-CURRENT внимательно прочитайте [.filename]#/usr/src/Makefile# и следуйте инструкциям в crossref:cutting-edge[makeworld,Обновление FreeBSD из исходного кода]. Ознакомьтесь с {freebsd-current} и [.filename]#/usr/src/UPDATING#, чтобы быть в курсе других процедур начальной загрузки, которые иногда становятся необходимыми на пути к следующему выпуску. +. Будьте активными! Пользователям FreeBSD-CURRENT рекомендуется предлагать свои идеи по улучшению или исправлению ошибок. Предложения с приложенным кодом всегда приветствуются. -В предыдущем разделе был представлен метод обновления документации FreeBSD из исходных текстов. В этом разделе описывается альтернативный метод с использованием Коллекции Портов, который позволяет: +[[stable]] +=== Использование FreeBSD-STABLE -* Установить предварительно собранный пакет документации без необходимости локального построения чего-либо или установки инструментария документации. -* Выполнить построение исходных текстов документации через инфраструктуру портов, что несколько упрощает этапы загрузки и построения. +FreeBSD-STABLE - это ветка разработки, из которой создаются основные выпуски. Изменения попадают в эту ветку медленнее и с общим предположением, что они сначала были протестированы в FreeBSD-CURRENT. Это _всё ещё_ ветка разработки, и в любой момент исходный код FreeBSD-STABLE может быть или не быть пригодным для общего использования. Это просто ещё один инженерный трек разработки, а не ресурс для конечных пользователей. Пользователям, у которых нет ресурсов для тестирования, следует использовать последний выпуск FreeBSD. -Данный метод обновления документации FreeBSD предоставляется портами и пакетами документации, которые ежемесячно обновляет {doceng}. Они перечислены в Коллекции Портов FreeBSD в категории docs (http://www.freshports.org/docs/[http://www.freshports.org/docs/]). +Те, кто заинтересован в отслеживании или участии в процессе разработки FreeBSD, особенно в контексте следующего выпуска FreeBSD, могут рассмотреть возможность подписки на FreeBSD-STABLE. -Порты документации организованы следующим образом: +Хотя ветка FreeBSD-STABLE должна компилироваться и работать в любое время, это не может быть гарантировано. Поскольку больше людей используют FreeBSD-STABLE, чем FreeBSD-CURRENT, неизбежно, что иногда в FreeBSD-STABLE будут обнаружены ошибки и крайние случаи, которые не были очевидны в FreeBSD-CURRENT. По этой причине не следует слепо следовать за FreeBSD-STABLE. Особенно важно _не_ обновлять какие-либо производственные серверы до FreeBSD-STABLE без тщательного тестирования кода в среде разработки или тестирования. -* Пакет или порт package:misc/freebsd-doc-en[] устанавливает всю англоязычную документацию. -* Метапакет или порт package:misc/freebsd-doc-all[] устанавливает всю документацию на всех доступных языках. -* Имеются пакеты и порты для каждого перевода, например, package:misc/freebsd-doc-hu[] для венгерской документации. +Для отслеживания FreeBSD-STABLE: -При использовании двоичных пакетов документация FreeBSD будет установлена во всех доступных форматах для данного языка. Например, следующая команда установит последнюю версию пакета венгерской документации: +. Присоединяйтесь к рассылке {freebsd-stable}, чтобы быть в курсе зависимостей сборки, которые могут появиться в FreeBSD-STABLE, или других вопросов, требующих особого внимания. Разработчики также будут объявлять в этой рассылке о рассмотрении спорных исправлений или обновлений, давая пользователям возможность высказаться, если у них есть замечания по предлагаемым изменениям. ++ +Присоединяйтесь к соответствующему списку рассылки git для отслеживаемой ветки. Например, пользователи, отслеживающие ветку {betarel-current-major}-STABLE, должны подписаться на {dev-commits-src-branches}. Этот список рассылает сообщения с комментарием коммита для каждого внесённого изменения, как только оно сделано, а также любую соответствующую информацию о возможных побочных эффектах. ++ +Чтобы присоединиться к этим спискам, перейдите на {mailing-lists}, выберите список для подписки и следуйте инструкциям. Для отслеживания изменений во всём дереве исходного кода подпишитесь на {dev-commits-src-all}. +. Для установки новой системы FreeBSD-STABLE установите последний выпуск FreeBSD-STABLE с crossref:mirrors[mirrors,сайтов зеркал FreeBSD] или используйте ежемесячный снимок, собранный из FreeBSD-STABLE. Дополнительную информацию о снимках можно найти на link:https://www.FreeBSD.org/snapshots/[www.freebsd.org/snapshots]. ++ +Для компиляции или обновления существующей системы FreeBSD до FreeBSD-STABLE используйте `git` для получения исходного кода нужной ветки. Имена веток, например `stable/13`, перечислены на сайте link:https://www.FreeBSD.org/releng/[www.freebsd.org/releng]. +. Перед компиляцией или обновлением до FreeBSD-STABLE внимательно прочитайте файл [.filename]#/usr/src/Makefile# и следуйте инструкциям в crossref:cutting-edge[makeworld,Обновление FreeBSD из исходного кода]. Ознакомьтесь с {freebsd-stable} и файлом [.filename]#/usr/src/UPDATING#, чтобы быть в курсе других процедур начальной загрузки, которые иногда становятся необходимыми на пути к следующему выпуску. -[source,shell] +[[translate-n-number]] +=== N-номер +При поиске ошибок важно знать, какие версии исходного кода использовались для создания системы, в которой обнаружена проблема. FreeBSD предоставляет информацию о версии, встроенную в ядро. man:uname[1] извлекает эту информацию, например: +[source, shell] .... -# pkg install hu-freebsd-doc +% uname -v +FreeBSD 14.0-CURRENT #112 main-n247514-031260d64c18: Tue Jun 22 20:43:19 MDT 2021 fred@machine:/usr/home/fred/obj/usr/home/fred/git/head/amd64.amd64/sys/FRED .... +Последнее поле содержит информацию о названии ядра, человеке, который его собрал, и месте, где оно было скомпилировано. Рассматривая 4-е поле, можно увидеть, что оно состоит из нескольких частей: +[source, shell] +.... +main-n247514-031260d64c18 -[NOTE] -==== -Для пакетов используется другая схема наименования, которая отличается от названия соответствующего порта: `_lang_-freebsd-doc`, где _lang_ соответствует сокращённому языковому коду, такому как `hu` для венгерского или `zh_cn` для упрощённого китайского. -==== - -Чтобы указать используемый формат документации, для этого вместо установки готового пакета нужно собрать порт самостоятельно. Ниже приводится пример построения и установки английской документации: +main <.> +n247514 <.> +031260d64c18 <.> + <.> +.... +<.> Имя ветки Git. Примечание: сравнения n-номеров действительны только для веток, опубликованных проектом (`main`, `stable/XX` и `releng/XX`). Локальные ветки будут иметь n-номера, которые могут пересекаться с коммитами их родительской ветки. +<.> n-номер — это линейный счетчик коммитов от начала репозитория Git, начиная с хэша Git, указанного в строке. +<.> Хэш Git дерева исходного кода +<.> Иногда добавляется суффикс `-dirty`, если ядро было собрано в дереве с незафиксированными изменениями. В данном примере он отсутствует, так как ядро FRED было собрано из чистой копии репозитория. -[source,shell] +Команда `git rev-list` используется для нахождения n-номера, соответствующего хэшу Git. Например: +[source, shell] .... -# cd /usr/ports/misc/freebsd-doc-en -# make install clean +% git rev-list --first-parent --count 031260d64c18 <.> +247514 <.> .... +<.> Хеш git для перевода (используется тот же хеш из приведённого выше примера) +<.> n-номер. -В порте имеется меню конфигурации, в котором можно указать нужный формат. По умолчанию выбирается HTML с разделителями, такой как на http://www.FreeBSD.org[http://www.FreeBSD.org], а также PDF. +Обычно этот номер не так важен. Однако, когда фиксы ошибок попадают в репозиторий, это число позволяет быстро определить, присутствует ли исправление в текущей работающей системе. Разработчики часто ссылаются на хэш коммита (или предоставляют URL, содержащий этот хэш), но не указывают n-номер, так как хэш является легко видимым идентификатором изменения, в отличие от n-номера. В уведомлениях о безопасности и бюллетенях исправлений также указывается n-номер, который можно напрямую сравнить с вашей системой. Если вы используете неполные (shallow) клоны Git, вы не сможете надежно сравнивать n-номера, так как команда `git rev-list` подсчитывает все ревизии в репозитории, которые неполный клон пропускает. -Иначе, при построении порта документации можно указать параметры `make`, которые включают в себя: +[[makeworld]] +== Обновление FreeBSD из исходного кода -`WITH_HTML`:: -Документ в формате HTML на одной странице. Сформированная документация сохраняется в файле [.filename]#article.html# или [.filename]#book.html#. +Обновление FreeBSD путем компиляции из исходного кода предоставляет несколько преимуществ по сравнению с бинарными обновлениями. Код может быть собран с опциями, позволяющими использовать преимущества конкретного оборудования. Части базовой системы могут быть собраны с нестандартными настройками или полностью исключены, если они не нужны или нежелательны. Процесс сборки занимает больше времени для обновления системы по сравнению с установкой бинарных обновлений, но позволяет полностью настроить систему для создания адаптированной версии FreeBSD. -`WITH_PDF`:: -Сформированная документация сохраняется в файле [.filename]#article.pdf# или [.filename]#book.pdf#. +[[updating-src-quick-start]] +=== Быстрый старт -`DOCBASE`:: -Указывает место размещения документации. По умолчанию [.filename]#/usr/local/shared/doc/freebsd#. +Это краткая справка по типовым шагам, используемым для обновления FreeBSD путем сборки из исходного кода. Более подробное описание процесса приведено в следующих разделах. -В примере ниже демонстрируется использование переменных для установки венгерской документации в PDF в указанный каталог: +[WARNING] +==== +При переходе с man:mergemaster[8] на man:etcupdate[8] первый запуск может некорректно объединить изменения, создавая ложные конфликты. Чтобы избежать этого, выполните следующие действия *перед* обновлением исходных кодов и сборкой нового мира: -[source,shell] +[source, shell] .... -# cd /usr/ports/misc/freebsd-doc-hu -# make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean +# etcupdate extract <.> +# etcupdate diff <.> .... -Пакеты или порты документации обновляются согласно инструкциям в crossref:ports[ports, Установка приложений. порты и пакеты]. Например, следующая команда выполняет обновление установленной документации на венгерском языке с помощью package:ports-mgmt/portmaster[] в режиме использования только готовых пакетов: +<.> Загрузите базы данных стандартных файлов [.filename]#/etc#; дополнительную информацию смотрите в man:etcupdate[8]. + +<.> Проверьте изменения после начальной настройки. Удалите все локальные изменения, которые больше не нужны, чтобы уменьшить вероятность конфликтов при будущих обновлениях. +==== -[source,shell] +[.procedure] +==== +* Обновление и сборка ++ +[source, shell] .... -# portmaster -PP hu-freebsd-doc +# git -C /usr/src pull <.> +check /usr/src/UPDATING <.> +# cd /usr/src <.> +# make -j4 buildworld <.> +# make -j4 kernel <.> +# shutdown -r now <.> +# etcupdate -p <.> +# cd /usr/src <.> +# make installworld <.> +# etcupdate -B <.> +# shutdown -r now <.> .... -[[current-stable]] -== Использование ветви разработки +<.> Получите последнюю версию исходного кода. Подробнее о получении и обновлении исходного кода см. в crossref:cutting-edge[updating-src-obtaining-src, Обновление исходного кода]. -Во FreeBSD имеется две ветки разработки: FreeBSD-CURRENT и FreeBSD-STABLE. +<.> Проверьте [.filename]#/usr/src/UPDATING# на наличие необходимых действий перед или после сборки из исходного кода. -В этом разделе даётся объяснение для каждой из них и их предназначение, а также рассказывается, как синхронизировать систему с любой из этих веток. +<.> Перейдите в исходный каталог. -[[current]] -=== Использование FreeBSD-CURRENT +<.> Соберите систему (world), всё кроме ядра системы. -FreeBSD-CURRENT является "передним краем" разработки FreeBSD и предназначена для пользователей с высокой технической грамотностью. Менее продвинутым пользователям, также желающим отслеживать ветку разработки, следует использовать FreeBSD-STABLE. +<.> Скомпилируйте и установите ядро системы. Это эквивалентно `make buildkernel installkernel`. -FreeBSD-CURRENT обозначает последнюю версию исходных текстов FreeBSD и включает в себя незавершённые работы, экспериментальные изменения и переходные механизмы, которые могут отсутствовать в следующем официальном релизе. Хотя многие разработчики FreeBSD выполняют компиляцию исходных текстов FreeBSD-CURRENT ежедневно, бывают периоды, когда исходные тексты могут не компилироваться. Обычно такие проблемы решаются сразу по мере возможности, но всё же выбор точки синхронизации исходных текстов является определяющим фактором, содержит ли FreeBSD-CURRENT новую функциональность или же мину замедленного действия. +<.> Перезагрузите систему с новым ядром. -FreeBSD-CURRENT предназначена для трёх основных групп: +<.> Обновите и объедините конфигурационные файлы в [.filename]#/etc/#, это обязательно перед выполнением installworld. -. Члены сообщества FreeBSD, активно работающие над некоторой частью дерева исходных текстов. -. Члены сообщества FreeBSD, которые являются активными тестерами. Они тратят свое время на исправление проблем, вносят важные предложения по изменениям и общему развитию FreeBSD, присылают патчи. -. Пользователи, которые хотят быть в курсе изменений, используют текущие исходные тексты для ознакомительных целей либо же иногда высказывают замечания или предоставляют собственный код. +<.> Перейдите в исходный каталог. -FreeBSD-CURRENT _не_ должна использоваться в качестве быстрого способа получить новые возможности, не дожидаясь выпуска следующей версии, поскольку предварительная версия не является полностью проверенной и скорее всего содержит ошибки. FreeBSD-CURRENT не является быстрым способом получения исправлений, поскольку любое изменение является в равной мере источником исправления существующих ошибок и появления новых. FreeBSD-CURRENT не является "официально поддерживаемой" каким бы то ни было способом. +<.> Установить систему (world). -Чтобы отслеживать изменения во FreeBSD-CURRENT: +<.> Обновите и объедините конфигурационные файлы в [.filename]#/etc/#. -. Подпишитесь на списки рассылки {freebsd-current} и {svn-src-head}. Это _необходимо_ для того, чтобы получать сообщения и важные бюллетени относительно текущего состояния FreeBSD-CURRENT. -+ -Список рассылки {svn-src-head} содержит записи из журнала коммитов по каждому изменению, а также сопутствующую информацию о возможных побочных эффектах. -+ -Чтобы подписаться на эти списки рассылки, перейдите по ссылке {mailing-lists-url}, щёлкните на нужном списке и следуйте дальнейшим инструкциям. Для того чтобы отслеживать изменения всего дерева исходных текстов, а не только FreeBSD-CURRENT, подпишитесь на {svn-src-all}. -. Загрузите исходные тексты FreeBSD-CURRENT. Обычно для этого используется crossref:mirrors[svn,svn], с помощью которого можно загрузить исходные тексты -CURRENT из ветки `head` с одного из зеркал Subversion, перечисленных в crossref:mirrors[svn-mirrors,Сайты зеркала Subversion]. -+ -Пользователи с очень медленным или ограниченным подключением могут рассматривать использование CTM, который описывается в crossref:mirrors[ctm,Использование CTM], однако этот способ является менее надёжным по сравнению с рекомендуемым способом синхронизации исходных текстов посредством svn. -. Вследствие больших размеров репозитория некоторые пользователи для ознакомления или изготовления патчей выбирают частичную загрузку. Тем не менее, для компиляции операционной системы из исходных текстов требуется загрузить FreeBSD-CURRENT _полностью_, а не только лишь выбранные части. -+ -Перед началом компиляции FreeBSD-CURRENT внимательно прочтите файл [.filename]#/usr/src/Makefile# и следуйте инструкциям в <<makeworld>>. {freebsd-current} и [.filename]#/usr/src/UPDATING# позволят быть в курсе прочих процедур, которые иногда бывают необходимы в процессе перехода к следующему релизу. -. Будьте активным участником! Пользователям FreeBSD-CURRENT предлагается высказывать свои соображения по улучшению или исправлению ошибок. Предложения, к которым прилагается код, всегда приветствуются! +<.> Перезагрузите систему для использования новой собранной системы (world) и ядра. +==== -[[stable]] -=== Использование FreeBSD-STABLE +[[updating-src-preparing]] +=== Подготовка к обновлению исходного кода -FreeBSD-STABLE является веткой разработки, из которой выпускаются основные релизы. Изменения в этой ветке происходят с меньшей скоростью и в предположении, что они сперва были проверены во FreeBSD-CURRENT. При этом она _остаётся_ веткой разработки, и в любой момент времени исходные тексты FreeBSD-STABLE могут оказаться не готовы для обычного использования. Это просто другая ветка разработки, не предназначенная для конечных пользователей. Пользователям, у которых нет возможности заниматься тестированием, следует использовать самый последний выпуск FreeBSD. +Прочитайте файл [.filename]#/usr/src/UPDATING#. В этом файле описаны все необходимые действия, которые нужно выполнить до или после обновления. -Тем, кто заинтересован процессом разработки FreeBSD или желает поучаствовать, особенно поскольку от этого зависит следующий релиз FreeBSD, стоит отслеживать FreeBSD-STABLE. +[[updating-src-obtaining-src]] +=== Обновление исходного кода -Хотя ветка FreeBSD-STABLE должна всегда компилироваться и работать, это невозможно гарантировать. Поскольку гораздо больше людей работает с FreeBSD-STABLE, неудивительно, что в FreeBSD-STABLE иногда обнаруживаются ошибки и всплывают непредвиденные ситуации, которые не проявляли себя в FreeBSD-CURRENT. По этим причинам не рекомендуется слепо использовать FreeBSD-STABLE. Особенно важно _не_ обновлять какие-либо сервера, находящиеся в эксплуатации, до FreeBSD-STABLE без тщательного тестирования кода в среде разработки. +Исходный код FreeBSD находится в [.filename]#/usr/src/#. Предпочтительный метод обновления этого исходного кода — через систему управления версиями Git. Проверьте, что исходный код находится под управлением версий: -Чтобы отслеживать изменения во FreeBSD-STABLE: +[source, shell] +.... +# cd /usr/src +# git remote --v +origin https://git.freebsd.org/src.git (fetch) +origin https://git.freebsd.org/src.git (push) +.... -. Подпишитесь на список рассылки {freebsd-stable}, чтобы быть в курсе о зависимостях процесса компиляции, которые могут появиться во FreeBSD-STABLE или любых других проблемах, требующих особого внимания. Также в этом списке рассылки разработчики делают объявления о спорных исправлениях или добавлениях, давая пользователям возможность высказать свое мнение о возможных тонких моментах. -+ -Подпишитесь на список рассылки svn, соответствующий используемой ветви. Например, при использовании 9-STABLE следует подписаться на {svn-src-stable-9}. Этот список рассылки содержит записи из журнала коммитов по каждому изменению, а также сопутствующую информацию о возможных побочных эффектах. -+ -Чтобы подписаться на эти списки рассылки, перейдите по ссылке {mailing-lists-url}, щёлкните на нужном списке, и следуйте дальнейшим инструкциям. Для того чтобы отслеживать изменения всего дерева исходных текстов, подпишитесь на {svn-src-all}. -. Чтобы установить новую систему FreeBSD-STABLE, установите самый последний релиз FreeBSD-STABLE, загрузив его с crossref:mirrors[mirrors,зеркалирующих сайтов FreeBSD] или используйте ежемесячную стандартную сборку FreeBSD-STABLE. Обратитесь к link:https://www.FreeBSD.org/snapshots/[www.freebsd.org/snapshots] для получения дополнительной информации о снэпшотах. -+ -Чтобы скомпилировать новую или обновить существующую систему FreeBSD до FreeBSD-STABLE, используйте crossref:mirrors[svn,svn] для загрузки исходных текстов нужной ветки. Имена веток вида `stable/9` перечислены на странице link:https://www.FreeBSD.org/releng/[www.freebsd.org/releng]. При отсутствии надёжного Интернет-соединения можно воспользоваться CTM (crossref:mirrors[ctm,Использование CTM]). -. Перед началом компиляции или обновления до FreeBSD-STABLE внимательно прочтите файл [.filename]#/usr/src/Makefile# и следуйте инструкциям в <<makeworld>>. {freebsd-stable} и [.filename]#/usr/src/UPDATING# позволят быть в курсе прочих процедур, которые иногда бывают необходимы в процессе перехода к следующему релизу. +Это указывает, что [.filename]#/usr/src/# находится под управлением версий и может быть обновлён с помощью man:git[1]: [[synching]] -== Синхронизация исходных текстов +[source, shell] +.... +# git -C /usr/src pull +.... -Имеются различные способы синхронизации с исходными текстами FreeBSD. В этом разделе сравниваются основные из них, Subversion и CTM. +Процесс обновления может занять некоторое время, если каталог не обновлялся в течение долгого периода. После завершения исходный код будет актуальным, и можно приступать к процессу сборки, описанному в следующем разделе. -[WARNING] +[NOTE] ==== +Получение исходного кода: -Хотя возможно частичное обновление дерева исходных текстов, единственной поддерживаемой процедурой обновления является обновление всего дерева и перекомпиляция всех программ, работающих в контексте пользователя, например тех, что находятся в каталогах [.filename]#/bin# и [.filename]#/sbin#, а также исходных текстов ядра. Обновление только части дерева исходных текстов, только ядра или только программ часто приводит к возникновению проблем от ошибок компиляции до аварийных остановов системы или потери данных. +Если вывод содержит `fatal: not a git repository`, значит, файлы отсутствуют или были установлены другим способом. Необходимо выполнить новое получение исходного кода. ==== -Subversion для обновления исходных текстов использует модель _pull_. Пользователь или сценарий `cron` запускают программу `svn`, которая обновляет локальную версию исходных текстов. Subversion является предпочтительным способом обновления локального дерева исходных текстов, поскольку обновления являются актуальными с точностью до минуты и пользователь управляет временем их загрузки. Загрузку определённых файлов и каталогов легко ограничить, а запрашиваемые обновления формируются на лету на стороне сервера. О том, как актуализировать исходные тексты с использованием Subversion, описано в crossref:mirrors[svn,svn]. +[[updating-src-obtaining-src-repopath]] +.Версии FreeBSD и ветви репозиториев +[cols="10%,10%,80%", options="header"] +|=== +| uname ‑r Output +| Путь репозитория +| Описание -CTM не выполняет интерактивное сравнение имеющихся исходных текстов с находящимися в главном архиве, и не выполняет их загрузку. Вместо этого несколько раз в день на главной машине CTM запускается скрипт, находящий изменения в файлах с момента своего предыдущего запуска. Все обнаруженные изменения сжимаются, помечаются последовательным номером и кодируются для передачи по электронной почте в печатном формате ASCII. После получения эти "дельта-файлы CTM" могут быть переданы утилите `ctm.rmail`, которая осуществляет автоматическое декодирование, проверку и применение изменений к пользовательской копии исходных текстов. Этот процесс более эффективен по сравнению с используемым в Subversion и требует меньше ресурсов сервера, так как он выполнен по модели _push_, а не _pull_. Инструкции по использованию CTM для синхронизации исходных текстов даны в crossref:mirrors[ctm,Использование CTM]. +|`_X.Y_-RELEASE` +|`releng/_X.Y_` +|Версия Release с добавлением только критических исправлений безопасности и ошибок. Эта ветка рекомендуется для большинства пользователей. -Если пользователь случайно уничтожил часть своего архива, Subversion обнаружит и перестроит повреждённую часть. CTM этого не делает, поэтому если пользователь удалил часть дерева исходных текстов и не имеет архивной копии, то нужно будет начать с самого начала (с последнего "базового дельта-файла"), перестроив всё с помощью CTM. +|`_X.Y_-STABLE` +|`stable/_X_` +| -[[makeworld]] -== Пересборка мира +Версия Release и все дополнительные разработки в этой ветке. _STABLE_ означает, что двоичный интерфейс приложений (ABI) не изменяется, поэтому программное обеспечение, скомпилированное для более ранних версий, продолжает работать. Например, программное обеспечение, скомпилированное для работы на FreeBSD 10.1, будет работать и на FreeBSD 10-STABLE, собранной позже. -После того, как локальное дерево исходных текстов было синхронизировано с некоторой версией FreeBSD (FreeBSD-STABLE или FreeBSD-CURRENT), его можно использовать для перестроения системы. Этот процесс известен как перестроение мира. +Ветки STABLE иногда содержат ошибки или несовместимости, которые могут повлиять на пользователей, хотя они обычно быстро исправляются. -_Перед_ перестроением мира убедитесь в выполнении следующих действий: +|`_X_-CURRENT` +|`main` +|Последняя невыпущенная разрабатываемая версия FreeBSD. Ветка CURRENT может содержать серьёзные ошибки или проблемы совместимости и рекомендуется только для опытных пользователей. +|=== -[.procedure] -==== -*Procedure: _Перед_ тем как приступать к построению мира* +Определите версию FreeBSD с помощью man:uname[1]: -. Сохраните резервную копию всех важных данных на другую систему или съёмный носитель, проверьте её целостность и держите под рукой загрузочный носитель. Невозможно переоценить важность создания резервной копии системы _до_ начала перестроения системы. Хотя перестроение системы является простой задачей, неизбежно возникают ситуации, при которых ошибки в исходных текстах приводят к тому, что система перестаёт загружаться. Возможно, вам никогда не придётся этим воспользоваться, но, постучав по дереву, всегда лучше подстраховаться. -. Проверьте последние сообщения в списке рассылки {freebsd-stable} или {freebsd-current} (в зависимости от отслеживаемой ветки). Будьте в курсе любых известных проблем, и тех систем, которые они затрагивают. В случае возникновения подобной проблемы, дождитесь сообщения о том, что эта проблема решена. После этого повторите синхронизацию исходных текстов для получения необходимого исправления. -. Прочтите [.filename]#/usr/src/UPDATING# для получения информации о дополнительных шагах, необходимых для данной версии исходных текстов. В этом файле содержится важная информация о возможных проблемах и может быть указан порядок выполнения соответствующих команд. При большинстве обновлений требуются дополнительные шаги, например, переименование или удаление определённых файлов перед установкой нового мира. Эти шаги будут перечислены в конце файла, где в явном виде описывается текущая рекомендуемая последовательность действий при обновлении. Если содержимое [.filename]#UPDATING# противоречит каким-либо шагам в этой главе, руководствуйтесь инструкциями в файле [.filename]#UPDATING#, которые имеют больший приоритет. -==== +[source, shell] +.... +# uname -r +13.2-RELEASE +.... -[WARNING] -.Не используйте `make world` -==== -В некоторой устаревшей документации рекомендуется использование `make world`. Эта команда пропускает некоторые важные шаги, поэтому использовать её следует лишь в том случае, если вы точно знаете, что делаете. Почти во всех случаях `make world` - это неправильный способ, вместо этого следует использовать описанную здесь процедуру. -==== +На основе crossref:cutting-edge[updating-src-obtaining-src-repopath,Версии FreeBSD и ветви репозиториев], исходный код для обновления `13.2-RELEASE` имеет путь в репозитории `releng/13.2`. Этот путь используется при проверке исходного кода: + +[source, shell] +.... +# mv /usr/src /usr/src.bak <.> +# git clone --branch releng/13.2 https://git.FreeBSD.org/src.git /usr/src <.> +.... -[[canonical-build]] -=== Обзор процесса +<.> Переместите старую директорию в другое место. Если в этой директории нет локальных изменений, её можно удалить. -Процесс построения мира подразумевает переход с более старой версии FreeBSD с использованием исходных текстов более новой версии, которые были получены согласно инструкциям в <<synching>>. +<.> Путь из crossref:cutting-edge[updating-src-obtaining-src-repopath,Версии FreeBSD и ветви репозитория] добавляется к URL репозитория. Третий параметр — это целевой каталог для исходного кода в локальной системе. -Во FreeBSD термин "world" обозначает ядро, исполняемые файлы основой системы, библиотеки, файлы для программирования и встроенный компилятор. Имеет значение порядок, при котором эти компоненты собираются и устанавливаются. +[[updating-src-building]] +=== Сборка из исходного кода -Например, из-за ошибки в старом компиляторе невозможно было бы скомпилировать новое ядре. Поскольку новое ядро должно быть собрано новым компилятором, для этого в свою очередь необходимо собрать новый компилятор, но устанавливать его перед сборкой ядра необязательно. +_Система (world)_ , или вся операционная система, за исключением ядра, компилируется. Это делается в первую очередь, чтобы предоставить актуальные инструменты для сборки ядра. Затем компилируется само ядро: -Новый мир может зависеть от особенностей нового ядра, поэтому новое ядро должно быть установлено до установки нового мира. Старый мир может работать неправильно на новом ядре, поэтому новый мир должен быть установлен сразу после установки нового ядра. +[source, shell] +.... +# cd /usr/src +# make buildworld +# make buildkernel +.... -Перед установкой нового мира могут потребоваться изменения в конфигурации, но некоторые из изменений могут не работать со старым миром. Следовательно, используются два разных этапа обновления конфигурации. В основной части процесса обновления выполняется только замена или добавление файлов. Существующие файлы при этом не удаляются. Поскольку это может повлечь проблемы, в [.filename]#/usr/src/UPDATING# содержится информация о том, какие из файлов и на каком шаге нужно удалить вручную. +Скомпилированный код записывается в [.filename]#/usr/obj#. -Исходя из этих соображений в следующей процедуре описана рекомендуемая последовательность обновления. +Вот основные шаги. Дополнительные параметры для управления сборкой описаны ниже. -[NOTE] -==== -Хорошей практикой является запись в файл вывода команды `make`. Если что-то пошло не так, копию сообщения об ошибке можно отправить в один из списков рассылки FreeBSD. +[[updating-src-building-clean-build]] +==== Выполнение чистой сборки -Проще всего использовать для этого `script` с параметром, задающим имя файла для сохранения всего вывода. Не сохраняйте вывод в [.filename]#/tmp#, так как этот каталог может быть очищен при следующей перезагрузке. Более подходящим местом является [.filename]#/var/tmp#. Запустите команду непосредственно перед перестроением мира, а после завершения процесса наберите `exit`: +Некоторые версии системы сборки FreeBSD оставляют ранее скомпилированный код во временном каталоге объектов [.filename]#/usr/obj#. Это может ускорить последующие сборки, избегая перекомпиляции неизменившегося кода. Для принудительной чистой пересборки всего используйте `cleanworld` перед началом сборки: -[source,shell] +[source, shell] .... -# script /var/tmp/mw.out -Script started, output file is /var/tmp/mw.out +# make cleanworld .... -==== +[[updating-src-building-jobs]] +==== Установка количества задач -[.procedure] -==== -*Procedure: Обзор процесса построения мира* +Увеличение количества задач сборки на многоядерных процессорах может повысить скорость сборки. Определите количество ядер с помощью `sysctl hw.ncpu`. Процессоры различаются, как и системы сборки, используемые в разных версиях FreeBSD, поэтому тестирование — единственный надежный способ определить, как разное количество задач влияет на скорость сборки. В качестве отправной точки рассмотрите значения от половины до удвоенного количества ядер. Количество задач указывается с помощью `-j`. -Команды для построения мира должны запускаться в указанном здесь порядке. В этом разделе даётся краткое описание назначения каждой из команд. +[[updating-src-building-jobs-example]] +.Увеличение количества заданий сборки +[example] +==== +Сборка системы и ядра с использованием четырех задач: -. Если процесс построения мира уже запускался ранее на этой системе, то в [.filename]#/usr/obj# могла остаться копия предыдущей сборки. Удалите этот каталог для ускорения процесса построения нового мира и возможного сокращений работы по разрешению зависимостей. -+ -[source,shell] +[source, shell] .... -# chflags -R noschg /usr/obj/* -# rm -rf /usr/obj +# make -j4 buildworld buildkernel .... -+ -. Скомпилируйте новый компилятор и несколько сопутствующих инструментов и используйте их для компиляции остальной части мира. Результаты сохраняются в [.filename]#/usr/obj#. -+ -[source,shell] + +==== + +[[updating-src-building-only-kernel]] +==== Сборка только ядра + +`buildworld` должен быть выполнен, если исходный код изменился. После этого `buildkernel` для сборки ядра может быть запущен в любое время. Чтобы собрать только ядро: + +[source, shell] .... # cd /usr/src -# make buildworld -.... -+ -. Для построения нового ядра используйте компилятор, расположенный в [.filename]#/usr/obj#, чтобы защититься от ошибок несоответствия между компилятором и ядром. Это необходимо, так как определённые структуры данных могут поменяться, и при использовании различных версий ядра и исходных текстов перестанут работать `ps` и `top`. -+ -[source,shell] -.... # make buildkernel .... -+ -. Установите новое ядро и модули, чтобы их можно было использовать для загрузки. Если используется `kern.securelevel` со значением выше `1` _и_ на файле ядра установлен `noschg` или подобный флаг, то для этого сперва придётся дополнительно перейти в однопользовательский режим. В противном случае эту команду можно без проблем запустить в многопользовательском режиме. Смотрите страницу Справочника man:init[8] для получения информации о `kern.securelevel`, а также man:chflags[1] для информации об использовании различных файловых флагов. -+ -[source,shell] -.... -# make installkernel -.... -+ -. Переведите систему в однопользовательский режим для минимизации проблем при обновлении уже работающих исполняемых файлов. Это также уменьшит вероятность возникновения проблем при работе старого мира на новом ядре. -+ -[source,shell] -.... -# shutdown now -.... -+ -После перехода в однопользовательский режим, запустите эти команды, если в системе используется UFS: -+ -[source,shell] -.... -# mount -u / -# mount -a -t ufs -# swapon -a -.... -+ -Если используется ZFS, запустите другие две команды. В данном примере zpool называется `zroot`: -+ -[source,shell] -.... -# zfs set readonly=off zroot -# zfs mount -a -.... -+ -. Дополнительно: Если желаемая картография клавиатуры отличается от используемой по умолчанию US English, её можно изменить с помощью man:kbdmap[1]: -+ -[source,shell] -.... -# kbdmap -.... -+ -. Затем, если часы CMOS установлены на местное время (это так, если вывод man:date[1] не содержит правильное время и часовой пояс), выполните: -+ -[source,shell] -.... -# adjkerntz -i -.... -+ -. Пересборка мира не включает в себя добавление или обновление конфигурационных файлов в [.filename]#/etc#, [.filename]#/var#, [.filename]#/usr# и некоторых других каталогах. Следующим шагом является выполнение первоначального обновления файлов конфигурации в [.filename]#/etc# для подготовки к новому миру. Следующая команда ограничивается сравнением файлов, необходимых для успешного выполнения цели `installworld`. В частности, на этом шаге могут быть добавлены новые пользовательские группы, служебные учётные записи и сценарии автозапуска, которые были добавлены во FreeBSD со времени последнего обновления. Это необходимо для их использования при выполнении шага `installworld`. Смотрите <<mergemaster>> для получения более подробных инструкций по этой команде: -+ -[source,shell] -.... -# mergemaster -p -.... -+ -. Установите новый мир и служебные исполняемые файлы, находящиеся в [.filename]#/usr/obj#. -+ -[source,shell] -.... -# cd /usr/src -# make installworld -.... -+ -. Обновите остальные файлы конфигурации. -+ -[source,shell] -.... -# mergemaster -iF -.... -+ -. Удалите устаревшие файлы. Это важно, так как в противном случае они могут вызвать проблемы. -+ -[source,shell] -.... -# make delete-old -.... -+ -. Теперь нужна полная перезагрузка системы для того, чтобы загрузить новое ядро и мир с использованием новых конфигурационных файлов. -+ -[source,shell] -.... -# reboot -.... -+ -. Убедитесь, что перед удалением старых версий библиотек все установленные порты были пересобраны согласно инструкциям в crossref:ports[ports-upgrading,Обновление портов]. По завершению удалите все старые библиотеки во избежание конфликтов с их новыми версиями. За подробным описанием этого шага обратитесь к <<make-delete-old>>. -+ -[source,shell] -.... -# make delete-old-libs -.... -==== - -Если для системы доступно окно обслуживания, обдумайте возможность компиляции системы в однопользовательском режиме вместо использования для этого многопользовательского режима с переводом в однопользовательский режим для установки. Переустановка системы затрагивает множество важных системных файлов, все стандартные системные исполняемые файлы, библиотеки и заголовочные файлы. Замена этих файлов на работающей системе (в частности, используемых в данный момент пользователями) может привести к неприятностям. -[[src-updating]] -=== Файлы конфигурации +[[updating-src-building-custom-kernel]] +==== Сборка собственного ядра -В процессе построения мира используется несколько файлов конфигурации. +Стандартное ядро FreeBSD основано на _конфигурационном файле ядра_ [.filename]#GENERIC#. Ядро [.filename]#GENERIC# включает наиболее часто востребованные драйверы устройств и параметры. Иногда полезно или необходимо собрать собственное ядро, добавляя или удаляя драйверы устройств и параметры для соответствия конкретным требованиям. -[.filename]#Makefile#, расположенный в [.filename]#/usr/src#, описывает правила и порядок построения программ, составляющих FreeBSD. +Например, разработчик компактного встраиваемого компьютера с крайне ограниченным объёмом оперативной памяти может удалить ненужные драйверы устройств или опции, чтобы немного уменьшить размер ядра. -В man:make.conf[5] описаны параметры, доступные для `make`, а также несколько общих примеров имеется в [.filename]#/usr/shared/examples/etc/make.conf#. Добавляемые в [.filename]#/etc/make.conf# параметры определяют поведение `make` при построении программ. Эти параметры действуют при каждом использовании `make`, включая компиляцию приложений из Коллекции Портов, компиляцию собственных программ на Си и построение операционной системы FreeBSD. Изменение некоторых настроек может иметь далекоидущие и порой неожиданные последствия. Прочтите комментарии в обоих местах и примите к сведению, что значения по умолчанию были выбраны как компромисс между производительностью и надёжностью. +Файлы конфигурации ядра находятся в [.filename]#/usr/src/sys/arch/conf/#, где _arch_ — это результат выполнения команды `uname -m`. На большинстве компьютеров это `amd64`, что соответствует каталогу с конфигурационными файлами [.filename]#/usr/src/sys/amd64/conf/#. -Поведение при сборке операционной системы из исходных текстов задаётся в [.filename]#/etc/src.conf#. В отличие от [.filename]#/etc/make.conf#, содержимое [.filename]#/etc/src.conf# влияет только на сборку самой операционной системы FreeBSD. Описание многих параметров, доступных в этом файле, имеется в man:src.conf[5]. Будьте осторожны при выключении на первый взгляд ненужных модулей ядра или параметров сборки. Иногда между ними имеются неожиданные или неочевидные взаимозависимости. - -[[make-buildworld]] -=== Переменные и цели выполнения +[TIP] +==== +[.filename]#/usr/src# можно удалить или создать заново, поэтому предпочтительнее хранить конфигурационные файлы собственного ядра в отдельном каталоге, например, в [.filename]#/root#. Свяжите конфигурационный файл ядра с каталогом [.filename]#conf#. Если этот каталог будет удалён или перезаписан, конфигурацию ядра можно снова связать с новым каталогом. +==== -Общий формат использования `make`: +Собственный конфигурационный файл можно создать, скопировав файл [.filename]#GENERIC#. В этом примере новое собственное ядро предназначено для сервера хранения данных, поэтому он назван [.filename]#STORAGESERVER#: -[source,shell] +[source, shell] .... -# make -x -DVARIABLE target +# cp /usr/src/sys/amd64/conf/GENERIC /root/STORAGESERVER +# cd /usr/src/sys/amd64/conf +# ln -s /root/STORAGESERVER . .... -В этом примере параметр `-_x_` передаётся `make`. Обратитесь к странице Справочника man:make[1] для получения примеров использования имеющихся параметров. +Затем отредактируйте файл [.filename]#/root/STORAGESERVER#, добавляя или удаляя устройства или параметры, как показано в man:config[5]. -Чтобы передать переменную, укажите её имя с использованием `-D_VARIABLE_`. Поведение [.filename]#Makefile# зависит от переменных. Они могут быть заданы в [.filename]#/etc/make.conf# или указаны при использовании `make`. Например, эта переменная указывает, что библиотеки для профилирования собирать не нужно: +Собственное ядро собирается путем установки `KERNCONF` в файл конфигурации ядра в командной строке: -[source,shell] +[source, shell] .... -# make -DNO_PROFILE target +# make buildkernel KERNCONF=STORAGESERVER .... -Это соответствует настройке в [.filename]#/etc/make.conf#: +[[updating-src-installing]] +=== Установка скомпилированного кода -[.programlisting] +После завершения шагов `buildworld` и `buildkernel` новые ядро и система устанавливаются: + +[source, shell] .... -NO_PROFILE= true # Обход построения библиотек для профилирования +# cd /usr/src +# make installkernel +# shutdown -r now +# cd /usr/src +# make installworld +# shutdown -r now .... -_target_ указывает программе `make` на то, что нужно сделать, а [.filename]#Makefile# определяет доступные цели. Некоторые цели используются в процессе построения для разбиения его на этапы. - -Разделение опций удобно по двум причинам. Во-первых, это позволяет выполнять сборку, не затрагивая компоненты рабочей системы. По этой причине можно спокойно запустить `buildworld` на машине, работающей в многопользовательском режиме. Но цель `installworld` всё же рекомендуется запускать в однопользовательском режиме. +Если было собрано собственное ядро, `KERNCONF` также должен быть установлен для использования нового собственного ядра: -Во-вторых, это позволяет использовать монтирование по NFS для обновления многих машин по сети согласно описанию в <<small-lan>>. +[source, shell] +.... +# cd /usr/src +# make installkernel KERNCONF=STORAGESERVER +# shutdown -r now +# cd /usr/src +# make installworld +# shutdown -r now +.... -Параметр `-j` приводит к запуску нескольких одновременно работающих процессов `make`. Поскольку процесс компиляции больше всего требователен к подсистеме ввода/вывода, а не к производительности процессора, это можно использовать и на машинах с одним процессором. +[[updating-src-completing]] +=== Завершение обновления -Используйте следующую команду на машине с одним CPU, чтобы иметь до 4 одновременно работающих процессов. Опубликованные в списке рассылки практические замеры показывают, что в среднем это даёт наибольший выигрыш в производительности. +Для окончания обновления выполняется несколько завершающих задач. Изменённые конфигурационные файлы объединяются с новыми версиями, устаревшие библиотеки находятся и удаляются, после чего система перезагружается. -[source,shell] -.... -# make -j4 buildworld -.... +[[updating-src-completing-merge-etcupdate]] +==== Объединение конфигурационных файлов с помощью man:etcupdate[8] -На многопроцессорной машине попробуйте подобрать значение между `6` и `10`, и посмотрите, как это отразится на скорости работы. +man:etcupdate[8] — это инструмент для управления обновлениями файлов, которые не обновляются в процессе выполнения `installworld`, таких как файлы в [.filename]#/etc/#. Он управляет обновлениями, выполняя трёхстороннее слияние изменений, внесённых в эти файлы, с локальными версиями. man:etcupdate[8] разработан для минимизации вмешательства пользователя. [NOTE] ==== -Если при выполнении команды `make buildworld` были заданы значения каких-либо переменных, то при выполнении `make installworld` нужно задать те же самые переменные. При этом `-j` _нельзя_ использовать совместно с `installworld`. - -Например, если выполнялась эта команда: +В общем, man:etcupdate[8] не требует специальных аргументов для своей работы. Однако есть удобная промежуточная команда для проверки того, что будет сделано при первом использовании man:etcupdate[8]: -[source,shell] +[source, shell] .... -# make -DNO_PROFILE buildworld +# etcupdate diff .... -то результат её выполнения должен устанавливаться командой: +Эта команда позволяет пользователю отслеживать изменения конфигурации. +==== + +Если man:etcupdate[8] не может автоматически объединить файл, конфликты слияния можно разрешить вручную, выполнив: -[source,shell] +[source, shell] .... -# make -DNO_PROFILE installworld +# etcupdate resolve .... -В противном случае вторая команда попытается установить библиотеки для профилирования, которые не компилировались на этапе выполнения команды `make buildworld`. +[WARNING] ==== +При переходе с man:mergemaster[8] на man:etcupdate[8] первый запуск может некорректно объединить изменения, создавая ложные конфликты. Чтобы избежать этого, выполните следующие действия *перед* обновлением исходных кодов и сборкой нового мира: -[[mergemaster]] -=== Объединение файлов конфигурации - -FreeBSD предоставляет утилиту man:mergemaster[8], которая является скриптом для оболочки Боурна и предназначена для определения разницы между конфигурационными файлами в каталоге [.filename]#/etc# и конфигурационными файлами из дерева исходных текстов [.filename]#/usr/src/etc#. Это является рекомендуемым способом синхронизации системных конфигурационных файлов с теми, что размещены в дереве исходных текстов. - -Перед использованием `mergemaster` рекомендуется скопировать имеющийся каталог [.filename]#/etc# в какое-нибудь безопасное место. `-R` задает выполнение рекурсивного копирования, а `-p` сохраняет даты и владельца файлов: - -[source,shell] +[source, shell] .... -# cp -Rp /etc /etc.old +# etcupdate extract <.> +# etcupdate diff <.> .... -При запуске `mergemaster` строит временное корневое окружение, начиная с [.filename]#/#, и заполняет его различными системными конфигурационными файлами. Затем эти файлы сравниваются с текущими установленными в системе. Файлы, которые имеют отличия, будут выданы в формате man:diff[1], где знак `+` означает добавленные или изменённые строки, а знак `-` означает строки, которые будут либо полностью удалены, либо заменены на новый файл. Обратитесь к страницам справочной системы по команде man:diff[1] для получения более полной информации о формате выдачи отличий в файлах. - -Затем `mergemaster` выдаст каждый файл, в котором есть изменения, с вариантами действий: удалить новый файл, упоминаемый здесь как временный, установить временный файл в его неизменённом виде, объединить временный файл с установленным на данный момент, либо просмотреть результат ещё раз. - -Выбор удаления временного файла укажет `mergemaster` оставить текущий файл без изменений и удалить его новую версию. Делать это не рекомендуется. Чтобы получить помощь в любое время, наберите kbd:[?] в приглашении `mergemaster`. Если пользователь выбирает пропуск файла, запрос появится снова, после того как будут обработаны все остальные файлы. - -Выбор установки немодифицированного временного файла приведёт к замене текущего файла новым. Для большинства немодифицированных файлов это является подходящим вариантом. - -Выбор варианта с объединением файла приведёт к вызову текстового редактора, содержащего текст обоих файлов. Файлы можно объединить, просматривая оба файла на экране и выбирая те части из обоих, которые подходят для окончательного варианта. При сравнении файлов нажатие kbd:[l] выбирает содержимое слева, нажатие kbd:[r] выбирает содержимое справа. В окончательном варианте будет файл, состоящий из обеих частей, который и будет установлен. Этот вариант обычно используется для файлов, настройки в которых изменялись пользователем. - -Выбор повторного просмотра результатов выдаст разницу между файлами. - -После того как утилита `mergemaster` закончит работу с системными файлами, она выдаст запрос относительно других параметров. Она может запросить перестроение файла паролей и завершится запросом на удаление оставшихся временных файлов. +<.> Загрузите базы данных стандартных файлов [.filename]#/etc#; дополнительную информацию смотрите в man:etcupdate[8]. -[[make-delete-old]] -=== Удаление устаревших файлов и библиотек +<.> Проверьте изменения после начальной настройки. Удалите все локальные изменения, которые больше не нужны, чтобы уменьшить вероятность конфликтов при будущих обновлениях. +==== -В ходе жизненного цикла разработки FreeBSD файлы с их содержимым иногда становятся устаревшими. Это может быть вызвано тем, что функциональность реализуется в другом месте, сменился номер версии библиотеки или файл был целиком удалён из системы. Такие устаревшие файлы, библиотеки и каталоги следует удалять вместе с обновлением системы. Это не даст захламить систему старыми файлами, которые занимают место на диске и на архивных носителях. Кроме того, если в старой библиотеке имеется проблема безопасности или стабильности, такую систему следует обновить до более новой библиотеки, чтобы предотвратить крахи, вызванные работой старой версии. Файлы, каталоги и библиотеки, которые признаны устаревшими, перечислены в [.filename]#/usr/src/ObsoleteFiles.inc#. Для удаления устаревших файлов в процессе обновления системы следует пользоваться следующими инструкциями. +[[updating-src-completing-check-old]] +==== Проверка устаревших файлов и библиотек -После выполнения `make installworld` и последующего `mergemaster` проверьте наличие устаревших файлов и библиотек: +Некоторые устаревшие файлы или каталоги могут остаться после обновления. Эти файлы могут быть найдены: -[source,shell] +[source, shell] .... -# cd /usr/src # make check-old .... -Если были найдены какие-либо устаревшие файлы, их можно удалить с помощью следующей команды: +и удалены: -[source,shell] +[source, shell] .... # make delete-old .... -Перед удалением каждого устаревшего файла запрашивается подтверждение. Используйте `BATCH_DELETE_OLD_FILES`, чтобы сократить этот процесс и позволить системе удалить эти файлы автоматически: +Некоторые устаревшие библиотеки также могут остаться. Их можно обнаружить с помощью: -[source,shell] +[source, shell] .... -# make -DBATCH_DELETE_OLD_FILES delete-old +# make check-old-libs .... -Аналогичного эффекта можно достичь, пропустив эти команды через `yes`: +и удалить -[source,shell] +[source, shell] .... -# yes|make delete-old +# make delete-old-libs .... -.Предупреждение -[WARNING] +Программы, которые всё ещё использовали эти старые библиотеки, перестанут работать после удаления библиотек. Эти программы необходимо пересобрать или заменить после удаления старых библиотек. + +[TIP] ==== +Когда известно, что все старые файлы или каталоги можно безопасно удалить, нажатие kbd:[y] и kbd:[Enter] для подтверждения удаления каждого файла можно избежать, установив параметр `BATCH_DELETE_OLD_FILES` в команде. Например: + +[source, shell] +.... +# make BATCH_DELETE_OLD_FILES=yes delete-old-libs +.... -Удаление устаревших файлов приведёт к нарушению работы программ, которые всё ещё зависят от этих устаревших файлов. Это особенно верно для старых библиотек. В большинстве случаев программы, порты или библиотеки, использующие такую старую библиотеку, нужно перекомпилировать перед выполнением `make delete-old-libs`. ==== -Программы для проверки наличия зависимостей от совместно используемых библиотек включают в себя package:sysutils/libchk[] и package:sysutils/bsdadminscripts[]. +[[updating-src-completing-restart]] +==== Перезагрузка после обновления -Устаревшие совместно используемые библиотеки могут конфликтовать с более новыми библиотеками, что приводит к сообщениям следующего вида: +Последним шагом после обновления является перезагрузка компьютера, чтобы все изменения вступили в силу: -[source,shell] +[source, shell] .... -/usr/bin/ld: warning: libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5 -/usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so, may conflict with librpcsvc.so.5 +# shutdown -r now .... -Для решения этих проблем выясните, какой именно порт установил данную библиотеку: +[[small-lan]] +== Распространение обновлений на несколько машин -[source,shell] -.... -# pkg which /usr/local/lib/libtiff.so - /usr/local/lib/libtiff.so was installed by package tiff-3.9.4 -# pkg which /usr/local/lib/libXext.so - /usr/local/lib/libXext.so was installed by package libXext-1.1.1,1 -.... +Когда несколько машин должны отслеживать одно и то же дерево исходных кодов, это приводит к расточительному использованию дискового пространства, пропускной способности сети и процессорного времени, если каждая система загружает исходные коды и пересобирает всё самостоятельно. Решение заключается в том, чтобы одна машина выполняла основную часть работы, а остальные монтировали результаты через NFS. В этом разделе описывается метод организации такого процесса. Дополнительные сведения об использовании NFS см. в crossref:network-servers[network-nfs,"Network File System (NFS)"]. -Затем данный порт нужно удалить, пересобрать и переустановить. Для автоматизации этого процесса можно использовать package:ports-mgmt/portmaster[]. После того как все порты пересобраны и более не используют старые библиотеки, удалите эти старые библиотеки с помощью следующей команды: +Сначала определите набор машин, которые будут запускать один и тот же набор бинарных файлов, известный как _набор сборки_. На каждой машине может быть своё собственное ядро, но пользовательские бинарные файлы должны быть одинаковыми. Из этого набора выберите машину, которая будет _машиной для сборки_, на которой будут собираться система и ядро. В идеале это должна быть производительная машина с достаточным количеством свободных ресурсов CPU для выполнения команд `make buildworld` и `make buildkernel`. -[source,shell] -.... -# make delete-old-libs -.... +Выберите машину, которая будет _тестовой машиной_ для проверки обновлений программного обеспечения перед их внедрением в производство. Это _должна_ быть машина, которая может позволить себе длительный простой. Она может быть той же машиной, что и сборщик, но это не обязательно. -Если что-то работает неправильно, можно с лёгкостью перестроить конкретную часть системы. Например, если файл [.filename]#/etc/magic# был случайно удалён в процессе обновления или переноса [.filename]#/etc#, то команда `file` перестанет работать. В таком случае это можно исправить вот так: +Все машины в этом наборе сборки должны монтировать [.filename]#/usr/obj# и [.filename]#/usr/src# сборочной машины через NFS. Для нескольких наборов сборки [.filename]#/usr/src# должен находиться на одной сборочной машине и монтироваться по NFS на остальных. -[source,shell] -.... -# cd /usr/src/usr.bin/file -# make all install -.... +Убедитесь, что файлы [.filename]#/etc/make.conf# и [.filename]#/etc/src.conf# на всех машинах в наборе сборки соответствуют таковым на машине сборки. Это означает, что машина сборки должна собирать все части базовой системы, которые будут устанавливаться на любой машине из набора сборки. Кроме того, каждая машина сборки должна иметь имя ядра, указанное с помощью `KERNCONF` в [.filename]#/etc/make.conf#, а машина сборки должна перечислить их все в своем `KERNCONF`, указав собственное ядро первым. Машина сборки должна иметь конфигурационные файлы ядра для каждой машины в своем каталоге [.filename]#/usr/src/sys/arch/conf#. -[[updating-questions]] -=== Вопросы общего характера +На машине для сборки соберите ядро и систему, как описано в crossref:cutting-edge[makeworld,Обновление FreeBSD из исходного кода], но не устанавливайте ничего на машину для сборки. Вместо этого установите собранное ядро на тестовую машину. На тестовой машине смонтируйте [.filename]#/usr/src# и [.filename]#/usr/obj# через NFS. Затем выполните `shutdown now`, чтобы перейти в однопользовательский режим для установки нового ядра и системы, а также запустите `etcupdate` как обычно. По завершении перезагрузитесь, чтобы вернуться к обычной многопользовательской работе. -Нужно ли полностью перестраивать систему при каждом изменении?:: -Это зависит от характера изменения. Например, если svn показывает, что с момента последнего запуска были изменены только следующие файлы: -+ -[source,shell] -.... -src/games/cribbage/instr.c -src/games/sail/pl_main.c -src/release/sysinstall/config.c -src/release/sysinstall/media.c -src/shared/mk/bsd.port.mk -.... -+ -то перестраивать всю систему возможно незачем. Вместо этого можно перейти в соответствующие подкаталоги и выдать команду `make all install`. Однако если меняется что-то важное, например, [.filename]#src/lib/libc/stdlib#, то вы должны перестроить всю систему. -+ -Некоторые пользователи перестраивают систему каждые две недели, позволяя изменениям накопиться за это время. Другие перестраивают только те вещи, которые менялись, и внимательно отслеживают все зависимости. Всё это зависит от того, как часто пользователь хочет делать обновление и отслеживает ли он FreeBSD-STABLE или FreeBSD-CURRENT. +После проверки того, что все на тестовой машине работает правильно, используйте ту же процедуру для установки нового программного обеспечения на каждой из остальных машин в наборе сборки. -Почему прерывается компиляция с большим количеством ошибок по сигналу 11 (или с другим номером сигнала)?:: -Как правило, это говорит о проблемах с оборудованием. Построение системы является эффективным стресс-тестом для оборудования, в особенности памяти. Явным указателем на это является то, что при перезапуске make процедура построения прекращается в различные моменты времени. -+ -Для исправления этой ошибки попробуйте заменить комплектующие машины, начиная с оперативной памяти, для определения сбоящей компоненты. +Тот же метод можно применить к дереву портов. Первый шаг — предоставить общий доступ через NFS к [.filename]#/usr/ports# для всех машин в наборе сборки. Чтобы настроить [.filename]#/etc/make.conf# для совместного использования distfiles, установите `DISTDIR` в общий каталог, доступный для записи пользователем, в которого отображается `root` при монтировании NFS. Каждая машина должна установить `WRKDIRPREFIX` в локальный каталог сборки, если порты собираются локально. В качестве альтернативы, если система сборки предназначена для создания и распространения пакетов на машины в наборе сборки, установите `PACKAGES` в системе сборки в каталог, аналогичный `DISTDIR`. -Можно ли удалить [.filename]#/usr/obj# после окончания?:: -В этом каталоге содержатся все объектные файлы, которые создаются во время фазы компиляции. Обычно одним из первых шагов в процессе `make buildworld` является удаление этого каталога, чтобы начать заново. Сохранение [.filename]#/usr/obj# после окончания имеет мало смысла, а его удаление освободит приблизительно 2 ГБ дискового пространства. +[[building-on-non-freebsd-hosts]] +== Сборка на хостах, отличных от FreeBSD -Могут ли быть продолжены прерванные процессы построения?:: -Это зависит от того, насколько далеко зашел процесс построения перед тем, как была обнаружена проблема. В общем случае процесс `make buildworld` строит новые копии необходимых инструментальных средств и системные библиотеки. Затем эти средства и библиотеки устанавливаются. Новые инструментальные средства и библиотеки затем используются для перестроения самих себя и повторно устанавливаются. Система в целом теперь перестраивается с новыми системными файлами. -+ -На последней стадии выполнение этих команд является достаточно безопасным, поскольку они не отменяют работу предыдущего `make buildworld`: -+ -[source,shell] -.... -# cd /usr/src -# make -DNO_CLEAN all -.... -+ -Если в выводе `make buildworld` появляется такое сообщение: -+ -[source,shell] -.... --------------------------------------------------------------- -Building everything.. --------------------------------------------------------------- -.... -+ -то делать так вероятно достаточно безопасно. -+ -Если такое сообщение не выводится, всегда лучше подстраховаться и запустить сборку с самого начала. +Исторически для сборки требовался хост с FreeBSD. В настоящее время FreeBSD можно собирать на Linux и macOS. -Можно ли ускорить сборку мира?:: -Ускорить процесс сборки мира может несколько действий. Например, весь процесс можно выполнять в однопользовательском режиме. Однако, это не позволит пользователям иметь доступ к системе, пока этот процесс не завершится. -+ -Тщательный подход к проектированию файловой системы или использование датасетов ZFS позволит почувствовать разницу. Задумайтесь о размещении [.filename]#/usr/src# и [.filename]#/usr/obj# на различных файловых системах. По возможности размещайте файловые системы на различных дисках и дисковых контроллерах. При монтировании [.filename]#/usr/src# используйте параметр `noatime`, который отключает запись информации о времени доступа к файлу. Если [.filename]#/usr/src# не расположен на собственной файловой системе, подумайте о перемонтировании [.filename]#/usr# с `noatime`. -+ -Файловая система, на которой располагается [.filename]#/usr/obj#, может быть смонтирована (или перемонтирована) с параметром `async`. Это приведёт к тому, что операции записи на диск будут выполняться асинхронно. Другими словами, запись будет завершаться немедленно, но данные записываться на диск несколькими секундами позже. Это позволит объединять операции записи и приведёт к значительному приросту производительности. -+ -Файловую систему с [.filename]#/usr/obj# можно смонтировать с `async` для записи на диск в асинхронном режиме. В этом случае операции записи завершаются мгновенно, а сами данные записываются на диск через несколько секунд. Это позволяет писать кластеризованно, что может дать значительный прирост производительности. -+ -[WARNING] +Для сборки на хосте, отличном от FreeBSD, рекомендуется использовать скрипт `tools/build/make.py`. Этот скрипт служит обёрткой для `bmake` — реализации make, используемой в FreeBSD. Он обеспечивает загрузку необходимых инструментов, включая man:make[1] из FreeBSD, и правильную настройку среды сборки. В частности, он устанавливает переменные внешнего инструментария, такие как `XCC`, `XLD` и другие. Кроме того, скрипт может передавать дополнительные аргументы командной строки, например `-j 4` для параллельной сборки или конкретные цели make, в `bmake`. + +[NOTE] +==== +Вместо скрипта `tools/build/make.py` также можно использовать свежую версию `bmake`. Однако в этом случае необходимые переменные окружения нужно задавать вручную (проще всего получить их список, выполнив `tools/build/make.py --debug`). ==== -Имейте в виду, что эта опция делает вашу файловую систему менее устойчивой. С этой опцией имеется больше шансов, что при перезагрузке машины после неожиданного сбоя при пропадании напряжения файловая система окажется в невосстановимом состоянии. +В противном случае список требований для сборки FreeBSD довольно короткий. Фактически, он сводится к установке нескольких зависимостей. -Если каталог [.filename]#/usr/obj# - это всё, что есть на этой файловой системе, то это не проблема. Если на той же самой файловой системе имеются какие-то важные данные, то проверьте давность ваших резервных копий перед включением этой опции. -==== -+ -Выключите генерацию профилирующего кода, установив "NO_PROFILE=true" в файле [.filename]#/etc/make.conf#. -+ -Передайте утилите man:make[1] параметр `-j__n__` для запуска параллельно нескольких процессов. Обычно это помогает вне зависимости от того, сколько процессоров установлено в машине. +На macOS единственная зависимость — LLVM. Необходимые зависимости можно установить с помощью менеджера пакетов (например, link:https://brew.sh/[Homebrew]): -Что делать, если что-то пошло не так?:: -Скрупулезно проверьте, чтобы в вашем окружении не было мешающих остатков от предыдущих построений: -+ -[source,shell] +[source, shell] .... -# chflags -R noschg /usr/obj/usr -# rm -rf /usr/obj/usr -# cd /usr/src -# make cleandir -# make cleandir +brew install llvm .... -+ -Да, команду `make cleandir` действительно нужно выполнять дважды. -+ -После этого повторите весь процесс снова, начиная с `make buildworld`. -+ -Если у вас всё ещё есть проблемы, пришлите текст ошибки и вывод команды `uname -a` в {freebsd-questions}. Будьте готовы ответить на другие вопросы о конфигурации вашей системы! - -[[small-lan]] -== Отслеживание исходных текстов для нескольких машин -Если нужно отслеживать одно и то же дерево исходных текстов на множестве машин, то загрузка кода и полное перестроение системы на каждой из них выглядит как ненужная трата ресурсов: дискового пространства, пропускной способности сети и процессорного времени. Решением является выделение одной машины, которая выполняет основной объём работы, в то время как остальные используют результаты работы посредством NFS. В этом разделе описывается именно этот метод. Для получения информации об использовании NFS обращайтесь в crossref:network-servers[network-nfs,Network File System (NFS)]. +На дистрибутивах Linux установите link:https://clang.llvm.org/[Clang] версии 10.0 или новее, а также заголовочные файлы для libarchive и libbz2 (обычно поставляются в пакетах libarchive-dev и libbz2-dev). -Первым делом определите набор машин, на которых будет выполняться единый набор программ, который мы будем называть _набором для построения_. Каждая машина может иметь собственное уникальное ядро, но они будут работать с одними и теми же программами пользователя. Из этого набора выберите машину, которая будет являться _машиной построения_, на которой будут строиться ядро и всё окружение. В идеальном случае это быстрая машина с достаточно незагруженным CPU для выполнения команд `make buildworld` и `make buildkernel`. +После установки зависимостей система должна быть способна собрать FreeBSD. -Выберите _тестовую машину_, которая будет выполнять проверку обновлений программного обеспечения, прежде чем они пойдут в работу. Это _должна_ быть машина, которая может находиться в нерабочем состоянии достаточно долго. Это также может быть машина построения, но не обязательно. +Например, следующая команда `tools/build/make.py` собирает систему (world): -Всем машинам в этом наборе для построения нужно смонтировать [.filename]#/usr/obj# и [.filename]#/usr/src# по NFS с машины построения. В случае нескольких наборов для построения каталог [.filename]#/usr/src# должен находиться на одной машине построения и монтироваться на остальных по NFS. - -Удостоверьтесь, что [.filename]#/etc/make.conf# и [.filename]#/etc/src.conf# на всех машинах в заданном наборе для построения согласуются с машиной построения. Это означает, что машина построения должна строить все те части базовой системы, которые будут устанавливаться на каждой машине из набора для построения. Кроме того, у каждой машины построения должно быть задано имя ядра в переменной `KERNCONF` в [.filename]#/etc/make.conf#, и машина построения должна перечислить их все в переменной `KERNCONF`, причём первым должно идти имя её собственного ядра. Машина построения должна хранить конфигурационные файлы ядра каждой машины в каталоге [.filename]#/usr/src/sys/arch/conf#. - -Постройте ядро и всё окружение на машине построения так, как это описано в <<make-buildworld>>, но ничего не устанавливайте на самой машине. Вместо этого, установите собранное ядро на тестовой машине. Для этого смонтируйте [.filename]#/usr/src# и [.filename]#/usr/obj# по NFS. Затем выполните команду `shutdown now` для перехода в однопользовательский режим, для того чтобы установить новое ядро и всё окружение, после чего выполните команду `mergemaster` обычным образом. После этих действий перезагрузитесь для возврата к обычному режиму работы в многопользовательском режиме. +[source, shell] +.... +MAKEOBJDIRPREFIX=/tmp/obj tools/build/make.py -j 8 TARGET=arm64 TARGET_ARCH=aarch64 buildworld +.... -После того, как вы убедитесь в нормальной работе всего на тестовой машине, проведите эту процедуру для установки нового программного обеспечения на каждой из оставшихся машин в наборе для построения. +Он собирает систему для целевой архитектуры `aarch64:arm64` на 8 CPU и использует [.filename]#/tmp/obj# для объектных файлов. Обратите внимание, что переменные `MAKEOBJDIRPREFIX`, `TARGET` и `TARGET_ARCH` обязательны при сборке на хостах, отличных от FreeBSD. Также убедитесь, что создан каталог для объектных файлов, указанный в переменной окружения `MAKEOBJDIRPREFIX`. -Такой же подход можно использовать и для дерева портов. Сперва нужно смонтировать [.filename]#/usr/ports# по NFS на всех машинах в наборе для построения. Чтобы настроить [.filename]#/etc/make.conf# для использования общего каталога с дистрибутивными файлами, задайте переменную `DISTDIR` так, чтобы она указывала на общедоступный каталог, доступный для записи тому пользователю, который отображается в пользователя `root` для точек монтирования NFS. Каждая машина должна задавать `WRKDIRPREFIX` так, чтобы она указывала на локальный каталог, если порты будут собираться локально. Если же пакеты будут распространяться, задайте на машине построения переменную `PACKAGES`, чтобы она указывала на каталог, соответствующий `DISTDIR`. +Обратитесь к man:arch[7] и man:build[7] для получения дополнительной информации. diff --git a/documentation/content/ru/books/handbook/cutting-edge/_index.po b/documentation/content/ru/books/handbook/cutting-edge/_index.po new file mode 100644 index 0000000000..689c7bc65f --- /dev/null +++ b/documentation/content/ru/books/handbook/cutting-edge/_index.po @@ -0,0 +1,3089 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-09-05 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookcutting-edge_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1 +#, no-wrap +msgid "Information about how to keep a FreeBSD system up-to-date with freebsd-update or Git, how to rebuild and reinstall the entire base system, etc" +msgstr "Информация о том, как поддерживать систему FreeBSD в актуальном состоянии с помощью `freebsd-update` или Git, как пересобрать и переустановить всю базовую систему и так далее" + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1 +#, no-wrap +msgid "Part III. System Administration" +msgstr "Часть III. Администрирование системы" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1 +#, no-wrap +msgid "Chapter 26. Updating and Upgrading FreeBSD" +msgstr "Глава 26. Обновление и смена версии FreeBSD" + +#. type: Title = +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:15 +#, no-wrap +msgid "Updating and Upgrading FreeBSD" +msgstr "Обновление и смена версии FreeBSD" + +#. type: Title == +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:60 +msgid "" +"FreeBSD is under constant development between releases. Some people prefer " +"to use the officially released versions, while others prefer to keep in sync " +"with the latest developments. However, even official releases are often " +"updated with security and other critical fixes. Regardless of the version " +"used, FreeBSD provides all the necessary tools to keep the system updated, " +"and allows for easy upgrades between versions. This chapter describes how " +"to track the development system and the basic tools for keeping a FreeBSD " +"system up-to-date." +msgstr "" +"FreeBSD постоянно развивается между выпусками. Некоторые предпочитают " +"использовать официальные выпущенные версии, в то время как другие следят за " +"последними изменениями в разработке. Однако даже официальные выпуски часто " +"обновляются с исправлениями безопасности и другими критическими " +"исправлениями. Независимо от используемой версии, FreeBSD предоставляет все " +"необходимые инструменты для поддержания системы в актуальном состоянии и " +"позволяет легко обновляться между версиями. В этой главе описывается, как " +"отслеживать разработку системы и основные инструменты для поддержания " +"FreeBSD в актуальном состоянии." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:62 +msgid "After reading this chapter, you will know:" +msgstr "Прочитав эту главу, вы будете знать:" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:64 +msgid "How to keep a FreeBSD system up-to-date with freebsd-update or Git." +msgstr "" +"Как поддерживать систему FreeBSD в актуальном состоянии с помощью freebsd-" +"update или Git." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:65 +msgid "" +"How to compare the state of an installed system against a known pristine " +"copy." +msgstr "" +"Как сравнить состояние установленной системы с известной чистой копией." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:66 +msgid "" +"How to keep the installed documentation up-to-date with Git or documentation " +"ports." +msgstr "" +"Как поддерживать установленную документацию в актуальном состоянии с помощью " +"Git или портов документации." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:67 +msgid "" +"The difference between the two development branches: FreeBSD-STABLE and " +"FreeBSD-CURRENT." +msgstr "" +"Разница между двумя ветвями разработки: FreeBSD-STABLE и FreeBSD-CURRENT." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:68 +msgid "How to rebuild and reinstall the entire base system." +msgstr "Как пересобрать и переустановить всю базовую систему." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:70 +msgid "Before reading this chapter, you should:" +msgstr "Прежде чем читать эту главу, вы должны:" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:72 +msgid "" +"Properly set up the network connection (crossref:advanced-" +"networking[advanced-networking,Advanced Networking])." +msgstr "" +"Правильно настроить сетевое подключение (crossref:advanced-" +"networking[advanced-networking,Сложные вопросы работы в сети])." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:73 +msgid "" +"Know how to install additional third-party software " +"(crossref:ports[ports,Installing Applications: Packages and Ports])." +msgstr "" +"Знать, как устанавливать дополнительное стороннее программное обеспечение " +"(crossref:ports[ports,Установка приложений: Пакеты и Порты])." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:78 +msgid "" +"Throughout this chapter, `git` is used to obtain and update FreeBSD " +"sources. Optionally, the package:devel/git[] port or package may be used." +msgstr "" +"В этой главе для получения и обновления исходных кодов FreeBSD используется " +"`git`. При желании можно использовать порт или пакет package:devel/git[]." + +#. type: Title == +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:81 +#, no-wrap +msgid "FreeBSD Update" +msgstr "Обновление FreeBSD" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:85 +msgid "" +"Applying security patches in a timely manner and upgrading to a newer " +"release of an operating system are important aspects of ongoing system " +"administration. FreeBSD includes a utility called `freebsd-update` which " +"can be used to perform both these tasks." +msgstr "" +"Применение исправлений безопасности своевременно и обновление до более новой " +"версии операционной системы являются важными аспектами текущего " +"администрирования системы. FreeBSD включает утилиту `freebsd-update`, " +"которую можно использовать для выполнения обеих задач." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:89 +msgid "" +"This utility supports binary security and errata updates to FreeBSD, without " +"the need to manually compile and install the patch or a new kernel. Binary " +"updates are available for all architectures and releases currently supported " +"by the security team. The list of supported releases and their estimated " +"end-of-life dates are listed at https://www.FreeBSD.org/security/[https://" +"www.FreeBSD.org/security/]." +msgstr "" +"Этот инструмент поддерживает бинарные обновления безопасности и исправления " +"ошибок в FreeBSD без необходимости ручной компиляции и установки патчей или " +"нового ядра. Бинарные обновления доступны для всех архитектур и выпусков, " +"которые в настоящее время поддерживаются командой безопасности. Список " +"поддерживаемых выпусков и их предполагаемые даты окончания поддержки " +"приведены на странице https://www.FreeBSD.org/security/[https://" +"www.FreeBSD.org/security/]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:93 +msgid "" +"This utility also supports operating system upgrades to minor point releases " +"as well as upgrades to another release branch. Before upgrading to a new " +"release, review its release announcement as it contains important " +"information pertinent to the release. Release announcements are available " +"from https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/]." +msgstr "" +"Эта утилита также поддерживает обновления операционной системы со сменой " +"младших версий, а также переход на другую ветку выпусков. Перед обновлением " +"до нового выпуска ознакомьтесь с его анонсом, так как он содержит важную " +"информацию, относящуюся к выпуску. Анонсы выпусков доступны по адресу " +"https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:97 +msgid "" +"If a man:crontab[5] utilizing the features of man:freebsd-update[8] exists, " +"it must be disabled before upgrading the operating system." +msgstr "" +"Если существует man:crontab[5], использующий возможности man:freebsd-" +"update[8], его необходимо отключить перед обновлением операционной системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:100 +msgid "" +"This section describes the configuration file used by `freebsd-update`, " +"demonstrates how to apply a security patch and how to upgrade to a minor or " +"major operating system release, and discusses some of the considerations " +"when upgrading the operating system." +msgstr "" +"В этом разделе описывается файл конфигурации, используемый `freebsd-update`, " +"демонстрируется применение патча безопасности, обновление со сменой мледшей " +"или старшей версии операционной системы, а также рассматриваются некоторые " +"аспекты, которые следует учитывать при обновлении ОС." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:102 +#, no-wrap +msgid "The Configuration File" +msgstr "Файл конфигурации" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:107 +msgid "" +"The default configuration file for `freebsd-update` works as-is. Some users " +"may wish to tweak the default configuration in [.filename]#/etc/freebsd-" +"update.conf#, allowing better control of the process. The comments in this " +"file explain the available options, but the following may require a bit more " +"explanation:" +msgstr "" +"Файл конфигурации по умолчанию для `freebsd-update` работает без изменений. " +"Некоторые пользователи могут захотеть настроить конфигурацию по умолчанию в " +"[.filename]#/etc/freebsd-update.conf#, чтобы лучше контролировать процесс. " +"Комментарии в этом файле объясняют доступные опции, но следующие моменты " +"могут потребовать дополнительного пояснения:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:112 +#, no-wrap +msgid "" +"# Components of the base system which should be kept updated.\n" +"Components world kernel\n" +msgstr "" +"# Components of the base system which should be kept updated.\n" +"Components world kernel\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:119 +msgid "" +"This parameter controls which parts of FreeBSD will be kept up-to-date. The " +"default is to update the entire base system and the kernel. Individual " +"components can instead be specified, such as `src/base` or `src/sys`. " +"However, the best option is to leave this at the default as changing it to " +"include specific items requires every needed item to be listed. Over time, " +"this could have disastrous consequences as source code and binaries may " +"become out of sync." +msgstr "" +"Этот параметр определяет, какие части FreeBSD будут поддерживаться в " +"актуальном состоянии. По умолчанию обновляется вся базовая система и ядро. " +"Вместо этого можно указать отдельные компоненты, например `src/base` или " +"`src/sys`. Однако лучшим вариантом будет оставить значение по умолчанию, так " +"как изменение параметра для включения конкретных компонентов требует " +"перечисления всех необходимых элементов. Со временем это может привести к " +"катастрофическим последствиям, поскольку исходный код и исполняемые файлы " +"могут перестать быть синхронизированными." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:125 +#, no-wrap +msgid "" +"# Paths which start with anything matching an entry in an IgnorePaths\n" +"# statement will be ignored.\n" +"IgnorePaths /boot/kernel/linker.hints\n" +msgstr "" +"# Paths which start with anything matching an entry in an IgnorePaths\n" +"# statement will be ignored.\n" +"IgnorePaths /boot/kernel/linker.hints\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:129 +msgid "" +"To leave specified directories, such as [.filename]#/bin# or [.filename]#/" +"sbin#, untouched during the update process, add their paths to this " +"statement. This option may be used to prevent `freebsd-update` from " +"overwriting local modifications." +msgstr "" +"Чтобы оставить указанные каталоги, такие как [.filename]#/bin# или " +"[.filename]#/sbin#, без изменений в процессе обновления, добавьте их пути в " +"эту инструкцию. Эта опция может быть использована для предотвращения " +"перезаписи локальных изменений с помощью `freebsd-update`." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:136 +#, no-wrap +msgid "" +"# Paths which start with anything matching an entry in an UpdateIfUnmodified\n" +"# statement will only be updated if the contents of the file have not been\n" +"# modified by the user (unless changes are merged; see below).\n" +"UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile\n" +msgstr "" +"# Paths which start with anything matching an entry in an UpdateIfUnmodified\n" +"# statement will only be updated if the contents of the file have not been\n" +"# modified by the user (unless changes are merged; see below).\n" +"UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:141 +msgid "" +"This option will only update unmodified configuration files in the specified " +"directories. Any changes made by the user will prevent the automatic " +"updating of these files. There is another option, `KeepModifiedMetadata`, " +"which will instruct `freebsd-update` to save the changes during the merge." +msgstr "" +"Эта опция будет обновлять только неизмененные конфигурационные файлы в " +"указанных каталогах. Любые изменения, внесенные пользователем, предотвратят " +"автоматическое обновление этих файлов. Существует другая опция, " +"`KeepModifiedMetadata`, которая предписывает `freebsd-update` сохранять " +"изменения во время слияния." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:147 +#, no-wrap +msgid "" +"# When upgrading to a new FreeBSD release, files which match MergeChanges\n" +"# will have any local changes merged into the version from the new release.\n" +"MergeChanges /etc/ /var/named/etc/ /boot/device.hints\n" +msgstr "" +"# When upgrading to a new FreeBSD release, files which match MergeChanges\n" +"# will have any local changes merged into the version from the new release.\n" +"MergeChanges /etc/ /var/named/etc/ /boot/device.hints\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:153 +msgid "" +"List of directories with configuration files that `freebsd-update` should " +"attempt to merge. The file merge process is a series of man:diff[1] " +"patches. Merges are either accepted, open an editor, or cause `freebsd-" +"update` to abort. When in doubt, backup [.filename]#/etc# and just accept " +"the merges." +msgstr "" +"Список каталогов с файлами конфигурации, которые `freebsd-update` должен " +"попытаться объединить. Процесс объединения файлов представляет собой серию " +"патчей man:diff[1]. Объединения могут быть приняты, открыты в редакторе или " +"привести к прерыванию работы `freebsd-update`. В случае сомнений создайте " +"резервную копию [.filename]#/etc# и просто примите объединения." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:159 +#, no-wrap +msgid "" +"# Directory in which to store downloaded updates and temporary\n" +"# files used by FreeBSD Update.\n" +"# WorkDir /var/db/freebsd-update\n" +msgstr "" +"# Directory in which to store downloaded updates and temporary\n" +"# files used by FreeBSD Update.\n" +"# WorkDir /var/db/freebsd-update\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:163 +msgid "" +"This directory is where all patches and temporary files are placed. In " +"cases where the user is doing a version upgrade, this location should have " +"at least a gigabyte of disk space available." +msgstr "" +"Этот каталог предназначен для всех патчей и временных файлов. В случае " +"обновления версии в этом расположении должно быть доступно как минимум " +"гигабайт дискового пространства." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:171 +#, no-wrap +msgid "" +"# When upgrading between releases, should the list of Components be\n" +"# read strictly (StrictComponents yes) or merely as a list of components\n" +"# which *might* be installed of which FreeBSD Update should figure out\n" +"# which actually are installed and upgrade those (StrictComponents no)?\n" +"# StrictComponents no\n" +msgstr "" +"# When upgrading between releases, should the list of Components be\n" +"# read strictly (StrictComponents yes) or merely as a list of components\n" +"# which *might* be installed of which FreeBSD Update should figure out\n" +"# which actually are installed and upgrade those (StrictComponents no)?\n" +"# StrictComponents no\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:175 +msgid "" +"When this option is set to `yes`, `freebsd-update` will assume that the " +"`Components` list is complete and will not attempt to make changes outside " +"of the list. Effectively, `freebsd-update` will attempt to update every " +"file which belongs to the `Components` list." +msgstr "" +"Когда эта опция установлена в `yes`, `freebsd-update` будет считать список " +"`Components` полным и не будет пытаться вносить изменения за его пределами. " +"Фактически, `freebsd-update` попытается обновить каждый файл, принадлежащий " +"списку `Components`." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:177 +msgid "Refer to man:freebsd-update.conf[5] for more details." +msgstr "" +"Обратитесь к man:freebsd-update.conf[5] для получения дополнительной " +"информации." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:179 +#, no-wrap +msgid "Applying Security Patches" +msgstr "Применение обновлений безопасности" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:183 +msgid "" +"The process of applying FreeBSD security patches has been simplified, " +"allowing an administrator to keep a system fully patched using `freebsd-" +"update`. More information about FreeBSD security advisories can be found in " +"crossref:security[security-advisories,\"FreeBSD Security Advisories\"]." +msgstr "" +"Процесс применения патчей безопасности FreeBSD был упрощен, что позволяет " +"администратору поддерживать систему в полностью обновленном состоянии с " +"помощью `freebsd-update`. Дополнительная информация о выпусках безопасности " +"FreeBSD доступна в crossref:security[security-advisories,\"Рекомендации по " +"безопасности FreeBSD\"]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:187 +msgid "" +"FreeBSD security patches may be downloaded and installed using the following " +"commands. The first command will determine if any outstanding patches are " +"available, and if so, will list the files that will be modified if the " +"patches are applied. The second command will apply the patches." +msgstr "" +"Обновления безопасности FreeBSD могут быть загружены и установлены с помощью " +"следующих команд. Первая команда проверит наличие доступных обновлений и, " +"если они есть, выведет список файлов, которые будут изменены при их " +"применении. Вторая команда применит обновления." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:192 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:290 +#, no-wrap +msgid "" +"# freebsd-update fetch\n" +"# freebsd-update install\n" +msgstr "" +"# freebsd-update fetch\n" +"# freebsd-update install\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:196 +msgid "" +"If the update applies any kernel patches, the system will need a reboot in " +"order to boot into the patched kernel. If the patch was applied to any " +"running binaries, the affected applications should be restarted so that the " +"patched version of the binary is used." +msgstr "" +"Если обновление включает какие-либо исправления для ядра, системе " +"потребуется перезагрузка для загрузки исправленного ядра. Если исправление " +"было применено к каким-либо выполняемым файлам, затронутые приложения " +"следует перезапустить, чтобы использовалась исправленная версия бинарного " +"файла." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:202 +msgid "" +"Usually, the user needs to be prepared to reboot the system. To know if the " +"system requires a reboot due to a kernel update, execute the commands " +"`freebsd-version -k` and `uname -r`. Reboot the system if the outputs " +"differ." +msgstr "" +"Обычно пользователь должен быть готов перезагрузить систему. Чтобы " +"проверить, требуется ли перезагрузка из-за обновления ядра, выполните " +"команды `freebsd-version -k` и `uname -r`. Перезагрузите систему, если их " +"вывод различается." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:205 +msgid "" +"The system can be configured to automatically check for updates once every " +"day by adding this entry to [.filename]#/etc/crontab#:" +msgstr "" +"Систему можно настроить для автоматической проверки обновлений раз в день, " +"добавив следующую запись в [.filename]#/etc/crontab#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:209 +#, no-wrap +msgid "@daily root freebsd-update cron\n" +msgstr "@daily root freebsd-update cron\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:213 +msgid "" +"If patches exist, they will automatically be downloaded but will not be " +"applied. The `root` user will be sent an email so that the patches may be " +"reviewed and manually installed with `freebsd-update install`." +msgstr "" +"Если существуют патчи, они будут автоматически загружены, но не применены. " +"Пользователь `root` получит письмо, чтобы патчи можно было просмотреть и " +"установить вручную с помощью `freebsd-update install`." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:215 +msgid "" +"If anything goes wrong, `freebsd-update` has the ability to roll back the " +"last set of changes with the following command:" +msgstr "" +"Если что-то пойдет не так, `freebsd-update` может откатить последние " +"изменения с помощью следующей команды:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:220 +#, no-wrap +msgid "" +"# freebsd-update rollback\n" +"Uninstalling updates... done.\n" +msgstr "" +"# freebsd-update rollback\n" +"Uninstalling updates... done.\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:223 +msgid "" +"Again, the system should be restarted if the kernel or any kernel modules " +"were modified and any affected binaries should be restarted." +msgstr "" +"Вновь, система должна быть перезапущена, если ядро или какие-либо модули " +"ядра были изменены, и все затронутые бинарные файлы должны быть перезапущены." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:228 +msgid "" +"Only the [.filename]#GENERIC# kernel can be automatically updated by " +"`freebsd-update`. If a custom kernel is installed, it will have to be " +"rebuilt and reinstalled after `freebsd-update` finishes installing the " +"updates. The default kernel name is _GENERIC_. The man:uname[1] command " +"may be used to verify its installation." +msgstr "" +"Только ядро [.filename]#GENERIC# может быть автоматически обновлено с " +"помощью `freebsd-update`. Если установлено пользовательское ядро, его " +"необходимо пересобрать и переустановить после завершения установки " +"обновлений `freebsd-update`. Имя ядра по умолчанию — _GENERIC_. Для проверки " +"его установки можно использовать команду man:uname[1]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:234 +msgid "" +"Always keep a copy of the [.filename]#GENERIC# kernel in [.filename]#/boot/" +"GENERIC#. It will be helpful in diagnosing a variety of problems and in " +"performing version upgrades. Refer to crossref:cutting-edge[freebsd-update-" +"custom-kernel-9x, Custom Kernels with FreeBSD 9.X and Later] for " +"instructions on how to get a copy of the [.filename]#GENERIC# kernel." +msgstr "" +"Всегда сохраняйте копию ядра [.filename]#GENERIC# в [.filename]#/boot/" +"GENERIC#. Оно может быть полезно при диагностике различных проблем и при " +"обновлении версий. Инструкции по получению копии ядра [.filename]#GENERIC# " +"можно найти в crossref:cutting-edge[freebsd-update-custom-kernel-9x, Custom " +"Kernels with FreeBSD 9.X and Later]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:239 +msgid "" +"Unless the default configuration in [.filename]#/etc/freebsd-update.conf# " +"has been changed, `freebsd-update` will install the updated kernel sources " +"along with the rest of the updates. Rebuilding and reinstalling a new " +"custom kernel can then be performed in the usual way." +msgstr "" +"Если конфигурация по умолчанию в [.filename]#/etc/freebsd-update.conf# не " +"была изменена, `freebsd-update` установит обновленные исходные коды ядра " +"вместе с остальными обновлениями. Затем пересборка и переустановка нового " +"пользовательского ядра могут быть выполнены обычным способом." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:246 +msgid "" +"The updates distributed by `freebsd-update` do not always involve the " +"kernel. It is not necessary to rebuild a custom kernel if the kernel " +"sources have not been modified by `freebsd-update install`. However, " +"`freebsd-update` will always update [.filename]#/usr/src/sys/conf/" +"newvers.sh#. The current patch level, as indicated by the `-p` number " +"reported by `uname -r`, is obtained from this file. Rebuilding a custom " +"kernel, even if nothing else changed, allows `uname` to accurately report " +"the current patch level of the system. This is particularly helpful when " +"maintaining multiple systems, as it allows for a quick assessment of the " +"updates installed in each one." +msgstr "" +"Обновления, распространяемые через `freebsd-update`, не всегда затрагивают " +"ядро. Нет необходимости пересобирать собственное ядро, если исходные коды " +"ядра не были изменены командой `freebsd-update install`. Однако `freebsd-" +"update` всегда обновляет файл [.filename]#/usr/src/sys/conf/newvers.sh#. " +"Текущий уровень патча, обозначаемый числом после `-p` в выводе `uname -r`, " +"берётся из этого файла. Пересборка собственного ядра, даже если ничего " +"больше не менялось, позволяет `uname` точно отображать текущий уровень патча " +"системы. Это особенно полезно при обслуживании нескольких систем, так как " +"позволяет быстро оценить установленные обновления на каждой из них." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:248 +#, no-wrap +msgid "Performing Minor and Major Version Upgrades" +msgstr "Выполнение обновлений с изменением младших и старших версий" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:251 +msgid "" +"Upgrades from one minor version of FreeBSD to another are called _minor " +"version_ upgrades. An example:" +msgstr "" +"Обновления с изменением младшей версии FreeBSD называются _минорными " +"обновлениями_. Пример:" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:253 +msgid "FreeBSD 13.1 to 13.2." +msgstr "FreeBSD 13.1 до 13.2." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:255 +msgid "_Major version_ upgrades increase the major version number. An example:" +msgstr "_Мажорные_ обновления увеличивают номер старшей версии. Пример:" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:257 +msgid "FreeBSD 13.2 to 14.0." +msgstr "FreeBSD 13.2 до 14.0." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:259 +msgid "" +"Both types of upgrade can be performed by providing `freebsd-update` with a " +"release version target." +msgstr "" +"Оба типа обновления могут быть выполнены путем указания `freebsd-update` " +"целевой версии выпуска." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:265 +msgid "" +"After each new `RELEASE`, FreeBSD package build servers will, for a limited " +"period, *not* use the newer version of the operating system. This provides " +"continuity for the many users who do not upgrade immediately after a release " +"announcement. For example:" +msgstr "" +"После каждого нового выпуска `RELEASE` серверы сборки пакетов FreeBSD в " +"течение ограниченного периода времени *не* используют новую версию " +"операционной системы. Это обеспечивает преемственность для многих " +"пользователей, которые не обновляются сразу после объявления о выпуске. " +"Например:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:267 +msgid "" +"packages for users of 13.1 and 13.2 will be built on a server running 13.1, " +"until 13.1 reaches end of life" +msgstr "" +"Пакеты для пользователей версий 13.1 и 13.2 будут собираться на сервере под " +"управлением 13.1, пока поддержка 13.1 не прекратится" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:269 +msgid "and, critically:" +msgstr "и, что критически важно:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:271 +msgid "a kernel module that is built on 13.1 might *not* be suitable for 13.2." +msgstr "" +"модуль ядра, собранный в версии 13.1, *может* не подойти для версии 13.2." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:273 +msgid "" +"So, with any minor or major OS upgrade, if your package requirements include " +"any kernel module:" +msgstr "" +"Итак, при любом обновлении ОС, будь то обновление младшей или старшей " +"версии, если ваш пакет требует включить какой-либо модуль ядра:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:275 +#, fuzzy +#| msgid "*be prepared to build the module from source*.\n" +msgid "*be prepared to build the module from source*." +msgstr "*будьте готовы собрать модуль из исходного кода*\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:282 +msgid "" +"If the system is running a custom kernel, make sure that a copy of the " +"[.filename]#GENERIC# kernel exists in [.filename]#/boot/GENERIC# before " +"starting the upgrade. Refer to crossref:cutting-edge[freebsd-update-custom-" +"kernel-9x, Custom Kernels with FreeBSD 9.X and Later] for instructions on " +"how to get a copy of the [.filename]#GENERIC# kernel." +msgstr "" +"Если система работает на собственном ядре, убедитесь перед началом " +"обновления, что копия ядра [.filename]#GENERIC# осталась в [.filename]#/boot/" +"GENERIC#. Обратитесь к crossref:cutting-edge[freebsd-update-custom-" +"kernel-9x, Собственные ядра системы в FreeBSD 9.X и более поздних версиях] " +"для получения инструкций о том, как получить копию ядра [.filename]#GENERIC#." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:285 +msgid "" +"Before upgrading to a new version, ensure the existing FreeBSD installation " +"is up to date with respect to security and errata patches:" +msgstr "" +"Перед обновлением до новой версии убедитесь, что текущая установка FreeBSD " +"обновлена с учетом исправлений безопасности и ошибок:" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:293 +msgid "" +"The following command, when run on a FreeBSD 13.1 system, will upgrade it to " +"FreeBSD 13.2:" +msgstr "" +"Следующая команда, выполненная на системе FreeBSD 13.1, обновит её до версии " +"FreeBSD 13.2:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:297 +#, no-wrap +msgid "# freebsd-update -r 13.2-RELEASE upgrade\n" +msgstr "# freebsd-update -r 13.2-RELEASE upgrade\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:302 +msgid "" +"After the command has been received, `freebsd-update` will evaluate the " +"configuration file and current system in an attempt to gather the " +"information necessary to perform the upgrade. A screen listing will display " +"which components have and have not been detected. For example:" +msgstr "" +"После получения команды `freebsd-update` оценит файл конфигурации и текущую " +"систему, чтобы собрать информацию, необходимую для выполнения обновления. На " +"экране появится список компонентов, которые были и не были обнаружены. " +"Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:309 +#, no-wrap +msgid "" +"Looking up update.FreeBSD.org mirrors... 1 mirrors found.\n" +"Fetching metadata signature for 13.1-RELEASE from update1.FreeBSD.org... done.\n" +"Fetching metadata index... done.\n" +"Inspecting system... done.\n" +msgstr "" +"Looking up update.FreeBSD.org mirrors... 1 mirrors found.\n" +"Fetching metadata signature for 13.1-RELEASE from update1.FreeBSD.org... done.\n" +"Fetching metadata index... done.\n" +"Inspecting system... done.\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:315 +#, no-wrap +msgid "" +"The following components of FreeBSD seem to be installed:\n" +"kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games\n" +"src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue\n" +"src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin\n" +"world/base world/info world/lib32 world/manpages\n" +msgstr "" +"The following components of FreeBSD seem to be installed:\n" +"kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games\n" +"src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue\n" +"src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin\n" +"world/base world/info world/lib32 world/manpages\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:319 +#, no-wrap +msgid "" +"The following components of FreeBSD do not seem to be installed:\n" +"kernel/generic world/catpages world/dict world/doc world/games\n" +"world/proflibs\n" +msgstr "" +"The following components of FreeBSD do not seem to be installed:\n" +"kernel/generic world/catpages world/dict world/doc world/games\n" +"world/proflibs\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:321 +#, no-wrap +msgid "Does this look reasonable (y/n)? y\n" +msgstr "Does this look reasonable (y/n)? y\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:325 +msgid "" +"At this point, `freebsd-update` will attempt to download all files required " +"for the upgrade. In some cases, the user may be prompted with questions " +"regarding what to install or how to proceed." +msgstr "" +"На этом этапе `freebsd-update` попытается загрузить все файлы, необходимые " +"для обновления. В некоторых случаях пользователю могут быть заданы вопросы " +"относительно того, что установить или как продолжить." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:327 +msgid "" +"When using a custom kernel, the above step will produce a warning similar to " +"the following:" +msgstr "" +"При использовании собственного ядра вышеуказанный шаг вызовет " +"предупреждение, подобное следующему:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:334 +#, no-wrap +msgid "" +"WARNING: This system is running a \"MYKERNEL\" kernel, which is not a\n" +"kernel configuration distributed as part of FreeBSD 13.1-RELEASE.\n" +"This kernel will not be updated: you MUST update the kernel manually\n" +"before running \"/usr/sbin/freebsd-update install\"\n" +msgstr "" +"WARNING: This system is running a \"MYKERNEL\" kernel, which is not a\n" +"kernel configuration distributed as part of FreeBSD 13.1-RELEASE.\n" +"This kernel will not be updated: you MUST update the kernel manually\n" +"before running \"/usr/sbin/freebsd-update install\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:338 +msgid "" +"This warning may be safely ignored at this point. The updated " +"[.filename]#GENERIC# kernel will be used as an intermediate step in the " +"upgrade process." +msgstr "" +"Это предупреждение можно безопасно проигнорировать на данном этапе. " +"Обновлённое ядро [.filename]#GENERIC# будет использовано как промежуточный " +"шаг в процессе обновления." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:347 +msgid "" +"Once all the patches have been downloaded to the local system, they will be " +"applied. This process may take a while, depending on the speed and workload " +"of the machine. Configuration files will then be merged. The merging " +"process requires some user intervention as a file may be merged or an editor " +"may appear on screen for a manual merge. The results of every successful " +"merge will be shown to the user as the process continues. A failed or " +"ignored merge will cause the process to abort. Users may wish to make a " +"backup of [.filename]#/etc# and manually merge important files, such as " +"[.filename]#master.passwd# or [.filename]#group# at a later time." +msgstr "" +"После загрузки всех патчей в локальную систему они будут применены. Этот " +"процесс может занять некоторое время в зависимости от скорости и " +"загруженности машины. Затем будут объединены конфигурационные файлы. Процесс " +"объединения требует вмешательства пользователя, так как файл может быть " +"объединен автоматически или на экране появится редактор для ручного " +"объединения. Результаты каждого успешного объединения будут отображаться " +"пользователю по мере выполнения процесса. Неудачное или пропущенное " +"объединение приведет к прерыванию процесса. Пользователям рекомендуется " +"создать резервную копию [.filename]#/etc# и вручную объединить важные файлы, " +"такие как [.filename]#master.passwd# или [.filename]#group#, позже." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:354 +msgid "" +"The system is not being altered yet as all patching and merging is happening " +"in another directory. Once all patches have been applied successfully, all " +"configuration files have been merged and it seems the process will go " +"smoothly, the changes can be committed to disk by the user using the " +"following command:" +msgstr "" +"Система пока не изменяется, так как все исправления и слияния происходят в " +"другом каталоге. Как только все исправления будут успешно применены, все " +"конфигурационные файлы объединены и процесс, по всей видимости, пройдёт без " +"проблем, пользователь может записать изменения на диск с помощью следующей " +"команды:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:358 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:394 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:471 +#, no-wrap +msgid "# freebsd-update install\n" +msgstr "# freebsd-update install\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:365 +msgid "" +"The kernel and kernel modules will be patched first. If the system is " +"running with a custom kernel, use man:nextboot[8] to set the kernel for the " +"next boot to the updated [.filename]#/boot/GENERIC#:" +msgstr "" +"Ядро и модули ядра будут пропатчены первыми. Если система работает с " +"пользовательским ядром, используйте man:nextboot[8], чтобы установить ядро " +"для следующей загрузки в обновлённый [.filename]#/boot/GENERIC#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:369 +#, no-wrap +msgid "# nextboot -k GENERIC\n" +msgstr "# nextboot -k GENERIC\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:378 +msgid "" +"Before rebooting with the [.filename]#GENERIC# kernel, make sure it contains " +"all the drivers required for the system to boot properly and connect to the " +"network, if the machine being updated is accessed remotely. In particular, " +"if the running custom kernel contains built-in functionality usually " +"provided by kernel modules, make sure to temporarily load these modules into " +"the [.filename]#GENERIC# kernel using the [.filename]#/boot/loader.conf# " +"facility. It is recommended to disable non-essential services as well as " +"any disk and network mounts until the upgrade process is complete." +msgstr "" +"Перед перезагрузкой с ядром [.filename]#GENERIC# убедитесь, что оно содержит " +"все драйверы, необходимые для корректной загрузки системы и подключения к " +"сети, если обновляемая машина доступна удалённо. В частности, если текущее " +"кастомное ядро включает встроенную функциональность, обычно предоставляемую " +"модулями ядра, убедитесь, что временно загрузили эти модули в ядро " +"[.filename]#GENERIC# с помощью механизма [.filename]#/boot/loader.conf#. " +"Также рекомендуется отключить несущественные сервисы, а также любые " +"монтирования дисков и сетевые подключения до завершения процесса обновления." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:381 +msgid "The machine should now be restarted with the updated kernel:" +msgstr "Машину теперь следует перезагрузить с обновлённым ядром:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:385 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1088 +#, no-wrap +msgid "# shutdown -r now\n" +msgstr "# shutdown -r now\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:390 +msgid "" +"Once the system has come back online, restart `freebsd-update` using the " +"following command. Since the state of the process has been saved, `freebsd-" +"update` will not start from the beginning, but will instead move on to the " +"next phase and remove all old shared libraries and object files." +msgstr "" +"После того как система снова станет доступной, перезапустите `freebsd-" +"update` с помощью следующей команды. Поскольку состояние процесса сохранено, " +"`freebsd-update` начнёт не с начала, а перейдёт к следующему этапу и удалит " +"все старые общие библиотеки и объектные файлы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:399 +msgid "" +"Depending upon whether any library version numbers were bumped, there may " +"only be two install phases instead of three." +msgstr "" +"В зависимости от того, были ли изменены номера версий библиотек, может быть " +"только две фазы установки вместо трёх." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:404 +msgid "" +"The upgrade is now complete. If this was a major version upgrade, reinstall " +"all ports and packages as described in crossref:cutting-edge[freebsdupdate-" +"portsrebuild, Upgrading Packages After a Major Version Upgrade]." +msgstr "" +"Обновление завершено. Если было выполнено обновление старшей версии, " +"переустановите все порты и пакеты, как описано в crossref:cutting-" +"edge[freebsdupdate-portsrebuild,Обновление пакетов после обновления старшей " +"версии]." + +#. type: Title ==== +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:406 +#, no-wrap +msgid "Custom Kernels with FreeBSD 9.X and Later" +msgstr "Собственные ядра в FreeBSD 9.X и более поздних версиях" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:411 +msgid "" +"Before using `freebsd-update`, ensure that a copy of the " +"[.filename]#GENERIC# kernel exists in [.filename]#/boot/GENERIC#. If a " +"custom kernel has only been built once, the kernel in [.filename]#/boot/" +"kernel.old# is the `GENERIC` kernel. Simply rename this directory to " +"[.filename]#/boot/GENERIC#." +msgstr "" +"Перед использованием `freebsd-update` убедитесь, что копия ядра " +"[.filename]#GENERIC# осталось в [.filename]#/boot/GENERIC#. Если собственное " +"ядро собиралось только один раз, ядро в [.filename]#/boot/kernel.old# " +"является ядром `GENERIC`. Просто переименуйте этот каталог в [.filename]#/" +"boot/GENERIC#." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:415 +msgid "" +"If a custom kernel has been built more than once or if it is unknown how " +"many times the custom kernel has been built, obtain a copy of the `GENERIC` " +"kernel that matches the current version of the operating system. If " +"physical access to the system is available, a copy of the `GENERIC` kernel " +"can be installed from the installation media:" +msgstr "" +"Если собственное ядро собиралось более одного раза или неизвестно, сколько " +"раз оно пересобиралось, необходимо получить копию ядра `GENERIC`, " +"соответствующую текущей версии операционной системы. Если есть физический " +"доступ к системе, копию ядра `GENERIC` можно установить с установочного " +"носителя:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:421 +#, no-wrap +msgid "" +"# mount /cdrom\n" +"# cd /cdrom/usr/freebsd-dist\n" +"# tar -C/ -xvf kernel.txz boot/kernel/kernel\n" +msgstr "" +"# mount /cdrom\n" +"# cd /cdrom/usr/freebsd-dist\n" +"# tar -C/ -xvf kernel.txz boot/kernel/kernel\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:424 +msgid "" +"Alternately, the `GENERIC` kernel may be rebuilt and installed from source:" +msgstr "" +"Или ядро `GENERIC` может быть пересобрано и установлено из исходного кода:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:429 +#, no-wrap +msgid "" +"# cd /usr/src\n" +"# make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null\n" +msgstr "" +"# cd /usr/src\n" +"# make kernel __MAKE_CONF=/dev/null SRCCONF=/dev/null\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:434 +msgid "" +"For this kernel to be identified as the `GENERIC` kernel by `freebsd-" +"update`, the [.filename]#GENERIC# configuration file must not have been " +"modified in any way. It is also suggested that the kernel is built without " +"any other special options." +msgstr "" +"Чтобы ядро было идентифицировано как `GENERIC` с помощью `freebsd-update`, " +"конфигурационный файл [.filename]#GENERIC# не должен быть каким-либо образом " +"изменён. Также рекомендуется собирать ядро без каких-то дополнительных " +"специальных опций." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:436 +msgid "" +"Rebooting into the [.filename]#GENERIC# kernel is not required as `freebsd-" +"update` only needs [.filename]#/boot/GENERIC# to exist." +msgstr "" +"Перезагрузка с ядром [.filename]#GENERIC# не требуется, так как `freebsd-" +"update` нужен только файл [.filename]#/boot/GENERIC#." + +#. type: Title ==== +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:438 +#, no-wrap +msgid "Upgrading Packages After a Major Version Upgrade" +msgstr "Обновление пакетов после обновления старшей версии" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:445 +msgid "" +"Generally, installed applications will continue to work without problems " +"after minor version upgrades. Major versions use different Application " +"Binary Interfaces (ABIs), which will break most third-party applications. " +"After a major version upgrade, all installed packages and ports need to be " +"upgraded. Packages can be upgraded using `pkg upgrade`. To upgrade " +"installed ports, use a utility such as package:ports-mgmt/portmaster[]." +msgstr "" +"Обычно установленные приложения продолжают работать без проблем после " +"обновления младших версий. Старшие версии используют разные бинарные " +"интерфейсы приложений (ABI), что приведёт к неработоспособности большинства " +"сторонних приложений. После обновления старшей версии необходимо обновить " +"все установленные пакеты и порты. Пакеты можно обновить с помощью `pkg " +"upgrade`. Для обновления установленных портов используйте утилиты, например " +"package:ports-mgmt/portmaster[]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:449 +msgid "" +"A forced upgrade of all installed packages will replace the packages with " +"fresh versions from the repository even if the version number has not " +"increased. This is required because of the ABI version change when " +"upgrading between major versions of FreeBSD. The forced upgrade can be " +"accomplished by performing:" +msgstr "" +"Принудительное обновление всех установленных пакетов заменит пакеты на новые " +"версии из репозитория, даже если номер версии не увеличился. Это необходимо " +"из-за изменения версии ABI при обновлении между старшими версиями FreeBSD. " +"Принудительное обновление можно выполнить с помощью команды:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:453 +#, no-wrap +msgid "# pkg-static upgrade -f\n" +msgstr "# pkg-static upgrade -f\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:456 +msgid "" +"A rebuild of all applications installed from the ports collection can be " +"accomplished with this command:" +msgstr "" +"Перестройка всех приложений, установленных из коллекции портов, может быть " +"выполнена с помощью следующей команды:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:460 +#, no-wrap +msgid "# portmaster -af\n" +msgstr "# portmaster -af\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:464 +msgid "" +"This command will display the configuration screens for each application " +"that has configurable options and wait for the user to interact with those " +"screens. To prevent this behavior, and use only the default options, " +"include `-G` in the above command." +msgstr "" +"Эта команда отобразит экраны конфигурации для каждого приложения, имеющего " +"настраиваемые параметры, и будет ожидать взаимодействия пользователя с этими " +"экранами. Чтобы предотвратить такое поведение и использовать только " +"параметры по умолчанию, добавьте `-G` в указанную выше команду." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:467 +msgid "" +"Once the software upgrades are complete, finish the upgrade process with a " +"final call to `freebsd-update` in order to tie up all the loose ends in the " +"upgrade process:" +msgstr "" +"После завершения обновления программного обеспечения завершите процесс " +"обновления, выполнив последний вызов `freebsd-update`, чтобы устранить все " +"нерешенные вопросы, оставшиеся в процессе обновления:" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:475 +msgid "" +"If the [.filename]#GENERIC# kernel was temporarily used, this is the time to " +"build and install a new custom kernel using the instructions in " +"crossref:kernelconfig[kernelconfig,Configuring the FreeBSD Kernel]." +msgstr "" +"Если временно использовалось ядро [.filename]#GENERIC#, сейчас самое время " +"собрать и установить новое пользовательское ядро, следуя инструкциям из " +"раздела crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:478 +msgid "" +"Reboot the machine into the new FreeBSD version. The upgrade process is now " +"complete." +msgstr "" +"Перезагрузите машину с новой версией FreeBSD. Процесс обновления завершен." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:480 +#, no-wrap +msgid "System State Comparison" +msgstr "Сравнение состояния системы" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:484 +msgid "" +"The state of the installed FreeBSD version against a known good copy can be " +"tested using `freebsd-update IDS`. This command evaluates the current " +"version of system utilities, libraries, and configuration files and can be " +"used as a built-in Intrusion Detection System (IDS)." +msgstr "" +"Состояние установленной версии FreeBSD можно проверить с помощью `freebsd-" +"update IDS`, сравнив его с известной исправной копией. Эта команда оценивает " +"текущие версии системных утилит, библиотек и конфигурационных файлов и может " +"использоваться как встроенная система обнаружения вторжений (IDS — Intrusion " +"Detection System)." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:492 +msgid "" +"This command is not a replacement for a real IDS such as package:security/" +"snort[]. As `freebsd-update` stores data on disk, the possibility of " +"tampering is evident. While this possibility may be reduced using " +"`kern.securelevel` and by storing the `freebsd-update` data on a read-only " +"file system when not in use, a better solution would be to compare the " +"system against a secure disk, such as a DVD or securely stored external USB " +"disk device. An alternative method for providing IDS functionality using a " +"built-in utility is described in crossref:security[security-ids,\"Binary " +"Verification\"]" +msgstr "" +"Эта команда не является заменой настоящей системы обнаружения вторжений, " +"такой как package:security/snort[]. Поскольку `freebsd-update` хранит данные " +"на диске, возможность их подделки очевидна. Хотя эту возможность можно " +"уменьшить, используя `kern.securelevel` и сохраняя данные `freebsd-update` " +"на файловой системе только для чтения, когда они не используются, лучшее " +"решение — сравнить систему с защищённым диском, таким как DVD или надёжно " +"хранимое внешнее USB-устройство. Альтернативный метод обеспечения " +"функциональности системы обнаружения вторжений с использованием встроенной " +"утилиты описан в crossref:security[security-ids,\"Проверка двоичных файлов\"]" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:495 +msgid "" +"To begin the comparison, specify the output file to save the results to:" +msgstr "Для начала сравнения укажите выходной файл для сохранения результатов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:499 +#, no-wrap +msgid "# freebsd-update IDS >> outfile.ids\n" +msgstr "# freebsd-update IDS >> outfile.ids\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:502 +msgid "" +"The system will now be inspected and a lengthy listing of files, along with " +"the SHA256 hash values for both the known value in the release and the " +"current installation, will be sent to the specified output file." +msgstr "" +"Система будет проверена, и в указанный выходной файл будет отправлен длинный " +"список файлов вместе с хеш-значениями SHA256, как для известного значения в " +"релизе, так и для текущей установки." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:505 +msgid "" +"The entries in the listing are extremely long, but the output format may be " +"easily parsed. For instance, to obtain a list of all files which differ " +"from those in the release, issue the following command:" +msgstr "" +"Записи в списке очень длинные, но формат вывода легко анализировать. " +"Например, чтобы получить список всех файлов, которые отличаются от файлов в " +"выпуске, выполните следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:513 +#, no-wrap +msgid "" +"# cat outfile.ids | awk '{ print $1 }' | more\n" +"/etc/master.passwd\n" +"/etc/motd\n" +"/etc/passwd\n" +"/etc/pf.conf\n" +msgstr "" +"# cat outfile.ids | awk '{ print $1 }' | more\n" +"/etc/master.passwd\n" +"/etc/motd\n" +"/etc/passwd\n" +"/etc/pf.conf\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:520 +msgid "" +"This sample output has been truncated as many more files exist. Some files " +"have natural modifications. For example, [.filename]#/etc/passwd# will be " +"modified if users have been added to the system. Kernel modules may differ " +"as `freebsd-update` may have updated them. To exclude specific files or " +"directories, add them to the `IDSIgnorePaths` option in [.filename]#/etc/" +"freebsd-update.conf#." +msgstr "" +"Этот пример вывода был сокращён, так как существует гораздо больше файлов. " +"Некоторые файлы имеют естественные изменения. Например, [.filename]#/etc/" +"passwd# будет изменён, если в систему были добавлены пользователи. Модули " +"ядра могут отличаться, так как `freebsd-update` мог их обновить. Чтобы " +"исключить определённые файлы или каталоги, добавьте их в параметр " +"`IDSIgnorePaths` в файле [.filename]#/etc/freebsd-update.conf#." + +#. type: Title == +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:522 +#, no-wrap +msgid "Updating Bootcode" +msgstr "Обновление загрузочного кода" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:525 +msgid "" +"The following manuals describe the upgrade process of bootcode and boot " +"loaders: man:gpart[8], man:gptboot[8], man:gptzfsboot[8], and " +"man:loader.efi[8]." +msgstr "" +"Следующие руководства описывают процесс обновления загрузочного кода и " +"загрузчиков: man:gpart[8], man:gptboot[8], man:gptzfsboot[8] и " +"man:loader.efi[8]." + +#. type: Title == +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:527 +#, no-wrap +msgid "Updating the Documentation Set" +msgstr "Обновление документации" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:531 +msgid "" +"Documentation is an integral part of the FreeBSD operating system. While an " +"up-to-date version of the FreeBSD documentation is always available on the " +"FreeBSD web site (link:https://docs.FreeBSD.org[Documentation Portal]), it " +"can be handy to have an up-to-date, local copy of the FreeBSD website, " +"handbooks, FAQ, and articles." +msgstr "" +"Документация является неотъемлемой частью операционной системы FreeBSD. Хотя " +"актуальная версия документации FreeBSD всегда доступна на сайте FreeBSD " +"(link:https://docs.FreeBSD.org[Портал документации]), может быть удобно " +"иметь актуальную локальную копию веб-сайта FreeBSD, руководств, FAQ и статей." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:533 +msgid "" +"This section describes how to use either source or the FreeBSD Ports " +"Collection to keep a local copy of the FreeBSD documentation up-to-date." +msgstr "" +"Этот раздел описывает, как использовать исходный код или коллекцию портов " +"FreeBSD для поддержания локальной копии документации FreeBSD в актуальном " +"состоянии." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:536 +msgid "" +"For information on editing and submitting corrections to the documentation, " +"refer to the FreeBSD Documentation Project Primer for New Contributors " +"(extref:{fdp-primer}[FreeBSD Documentation Project Primer for New " +"Contributors])." +msgstr "" +"Для получения информации о редактировании и отправке исправлений в " +"документацию обратитесь к руководству \"Проект документации FreeBSD: " +"введение для новых участников\" (extref:{fdp-primer}[Проект документации " +"FreeBSD: введение для новых участников])." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:538 +#, no-wrap +msgid "Updating Documentation from Source" +msgstr "Обновление документации из исходных текстов" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:542 +msgid "" +"Rebuilding the FreeBSD documentation from source requires a collection of " +"tools which are not part of the FreeBSD base system. The required tools can " +"be installed following extref:{fdp-primer}[these steps, overview-quick-" +"start] from the FreeBSD Documentation Project Primer." +msgstr "" +"Пересборка документации FreeBSD из исходных текстов требует набора " +"инструментов, которые не входят в базовую систему FreeBSD. Необходимые " +"инструменты можно установить, следуя extref:{fdp-primer}[этим шагам, " +"overview-quick-start] из вводного руководства Проекта документации FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:544 +msgid "" +"Once installed, use `git` to fetch a clean copy of the documentation source:" +msgstr "" +"После установки используйте `git`, чтобы получить чистую копию исходного " +"кода документации:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:548 +#, no-wrap +msgid "# git clone https://git.FreeBSD.org/doc.git /usr/doc\n" +msgstr "# git clone https://git.FreeBSD.org/doc.git /usr/doc\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:552 +msgid "" +"The initial download of the documentation sources may take a while. Let it " +"run until it completes." +msgstr "" +"Первоначальная загрузка исходного кода документации может занять некоторое " +"время. Дождитесь завершения процесса." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:554 +msgid "Future updates of the documentation sources may be fetched by running:" +msgstr "" +"Будущие обновления исходного кода документации можно получить, выполнив:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:558 +#, no-wrap +msgid "# git pull\n" +msgstr "# git pull\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:562 +msgid "" +"Once an up-to-date snapshot of the documentation sources has been fetched to " +"[.filename]#/usr/doc#, everything is ready for an update of the installed " +"documentation." +msgstr "" +"После того как актуальный снимок исходников документации будет загружен в " +"[.filename]#/usr/doc#, всё готово для обновления установленной документации." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:564 +msgid "A full update may be performed by typing:" +msgstr "Полное обновление можно выполнить, набрав:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:569 +#, no-wrap +msgid "" +"# cd /usr/doc\n" +"# make\n" +msgstr "" +"# cd /usr/doc\n" +"# make\n" + +#. type: Title == +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:572 +#, no-wrap +msgid "Tracking a Development Branch" +msgstr "Отслеживание ветки разработки" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:575 +msgid "" +"FreeBSD has two development branches: FreeBSD-CURRENT and FreeBSD-STABLE." +msgstr "FreeBSD имеет две ветви разработки: FreeBSD-CURRENT и FreeBSD-STABLE." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:577 +msgid "" +"This section provides an explanation of each branch and its intended " +"audience, as well as how to keep a system up-to-date with each respective " +"branch." +msgstr "" +"Этот раздел содержит объяснение каждой ветки и её целевой аудитории, а также " +"инструкции по поддержанию системы в актуальном состоянии для каждой из веток." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:579 +#, no-wrap +msgid "Using FreeBSD-CURRENT" +msgstr "Использование FreeBSD-CURRENT" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:583 +msgid "" +"FreeBSD-CURRENT is the \"bleeding edge\" of FreeBSD development and FreeBSD-" +"CURRENT users are expected to have a high degree of technical skill. Less " +"technical users who wish to track a development branch should track FreeBSD-" +"STABLE instead." +msgstr "" +"FreeBSD-CURRENT — это \"передовой край\" разработки FreeBSD, и от " +"пользователей FreeBSD-CURRENT ожидается высокий уровень технической " +"подготовки. Менее опытным пользователям, которые хотят следить за веткой " +"разработки, рекомендуется использовать FreeBSD-STABLE." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:587 +msgid "" +"FreeBSD-CURRENT is the very latest source code for FreeBSD and includes " +"works in progress, experimental changes, and transitional mechanisms that " +"might or might not be present in the next official release. While many " +"FreeBSD developers compile the FreeBSD-CURRENT source code daily, there are " +"short periods of time when the source may not be buildable. These problems " +"are resolved as quickly as possible, but whether or not FreeBSD-CURRENT " +"brings disaster or new functionality can be a matter of when the source code " +"was synced." +msgstr "" +"FreeBSD-CURRENT - это самые последние исходные коды FreeBSD, включающие " +"текущие работы, экспериментальные изменения и переходные механизмы, которые " +"могут как присутствовать, так и отсутствовать в следующем официальном " +"выпуске. Хотя многие разработчики FreeBSD компилируют исходный код FreeBSD-" +"CURRENT ежедневно, бывают короткие периоды, когда сборка кода может быть " +"невозможна. Эти проблемы решаются как можно быстрее, но приведёт ли FreeBSD-" +"CURRENT к катастрофе или новым возможностям, может зависеть от того, когда " +"исходный код был синхронизирован." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:589 +msgid "FreeBSD-CURRENT is made available for three primary interest groups:" +msgstr "FreeBSD-CURRENT доступен для трёх основных групп пользователей:" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:591 +msgid "" +"Members of the FreeBSD community who are actively working on some part of " +"the source tree." +msgstr "" +"Участники сообщества FreeBSD, которые активно работают над какой-либо частью " +"дерева исходного кода." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:592 +msgid "" +"Members of the FreeBSD community who are active testers. They are willing to " +"spend time solving problems, making topical suggestions on changes and the " +"general direction of FreeBSD, and submitting patches." +msgstr "" +"Участники сообщества FreeBSD, которые активно тестируют. Они готовы тратить " +"время на решение проблем, высказывать тематические предложения по изменениям " +"и общему направлению развития FreeBSD, а также предоставлять патчи." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:593 +msgid "" +"Users who wish to keep an eye on things, use the current source for " +"reference purposes, or make the occasional comment or code contribution." +msgstr "" +"Пользователи, которые хотят следить за происходящим, использовать текущие " +"исходные коды для справки или иногда делать комментарии или вклад в код." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:597 +msgid "" +"FreeBSD-CURRENT should _not_ be considered a fast-track to getting new " +"features before the next release as pre-release features are not yet fully " +"tested and most likely contain bugs. It is not a quick way of getting bug " +"fixes as any given commit is just as likely to introduce new bugs as to fix " +"existing ones. FreeBSD-CURRENT is not in any way \"officially supported\"." +msgstr "" +"Версия FreeBSD-CURRENT _не_ должна рассматриваться как быстрый способ " +"получить новые функции до следующего релиза, так как предрелизные функции " +"ещё не полностью протестированы и, скорее всего, содержат ошибки. Это не " +"быстрый способ исправления багов, так как каждый коммит с такой же " +"вероятностью может добавить новые ошибки, как и исправить существующие. " +"FreeBSD-CURRENT ни в коем случае не является \"официально поддерживаемой\"." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:599 +msgid "To track FreeBSD-CURRENT:" +msgstr "Для отслеживания FreeBSD-CURRENT:" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:601 +msgid "" +"Join the {freebsd-current} and the {dev-commits-src-main} lists. This is " +"_essential_ in order to see the comments that people are making about the " +"current state of the system and to receive important bulletins about the " +"current state of FreeBSD-CURRENT." +msgstr "" +"Присоединитесь к спискам рассылки {freebsd-current} и {dev-commits-src-" +"main}. Это _важно_ для того, чтобы видеть комментарии пользователей о " +"текущем состоянии системы и получать важные уведомления о состоянии FreeBSD-" +"CURRENT." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:603 +msgid "" +"The {dev-commits-src-main} list records the commit log entry for each change " +"as it is made, along with any pertinent information on possible side effects." +msgstr "" +"Список {dev-commits-src-main} фиксирует запись журнала изменений для каждого " +"внесённого изменения, а также любую сопутствующую информацию о возможных " +"побочных эффектах." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:606 +msgid "" +"To join these lists, go to {mailing-lists}, click on the list to subscribe " +"to, and follow the instructions. In order to track changes to the whole " +"source tree, not just the changes to FreeBSD-CURRENT, subscribe to the {dev-" +"commits-src-all}." +msgstr "" +"Чтобы присоединиться к этим спискам, перейдите на {mailing-lists}, выберите " +"список, к которому хотите подписаться, и следуйте инструкциям. Для " +"отслеживания изменений во всём дереве исходного кода, а не только в FreeBSD-" +"CURRENT, подпишитесь на {dev-commits-src-all}." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:607 +msgid "" +"Synchronize with the FreeBSD-CURRENT sources. Typically, `git` is used to " +"check out the -CURRENT code from the `main` branch of the FreeBSD Git " +"repository (see crossref:mirrors[git,“Using Git”] for details)." +msgstr "" +"Синхронизация с исходным кодом FreeBSD-CURRENT. Обычно для получения кода " +"-CURRENT из ветки `main` репозитория FreeBSD Git используется `git` " +"(подробности см. в crossref:mirrors[git,“Использование Git”])." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:608 +msgid "" +"Due to the size of the repository, some users choose to only synchronize the " +"sections of source that interest them or which they are contributing patches " +"to. However, users that plan to compile the operating system from source " +"must download _all_ of FreeBSD-CURRENT, not just selected portions." +msgstr "" +"Из-за размера репозитория некоторые пользователи предпочитают " +"синхронизировать только те разделы исходного кода, которые их интересуют или " +"для которых они готовят патчи. Однако пользователи, планирующие собирать " +"операционную систему из исходных кодов, должны загрузить _весь_ FreeBSD-" +"CURRENT, а не только отдельные его части." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:612 +msgid "" +"Before compiling FreeBSD-CURRENT, read [.filename]#/usr/src/Makefile# very " +"carefully and follow the instructions in crossref:cutting-edge[makeworld, " +"Updating FreeBSD from Source]. Read the {freebsd-current} and [.filename]#/" +"usr/src/UPDATING# to stay up-to-date on other bootstrapping procedures that " +"sometimes become necessary on the road to the next release." +msgstr "" +"Перед компиляцией FreeBSD-CURRENT внимательно прочитайте [.filename]#/usr/" +"src/Makefile# и следуйте инструкциям в crossref:cutting-" +"edge[makeworld,Обновление FreeBSD из исходного кода]. Ознакомьтесь с " +"{freebsd-current} и [.filename]#/usr/src/UPDATING#, чтобы быть в курсе " +"других процедур начальной загрузки, которые иногда становятся необходимыми " +"на пути к следующему выпуску." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:613 +msgid "" +"Be active! FreeBSD-CURRENT users are encouraged to submit their suggestions " +"for enhancements or bug fixes. Suggestions with accompanying code are always " +"welcome." +msgstr "" +"Будьте активными! Пользователям FreeBSD-CURRENT рекомендуется предлагать " +"свои идеи по улучшению или исправлению ошибок. Предложения с приложенным " +"кодом всегда приветствуются." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:615 +#, no-wrap +msgid "Using FreeBSD-STABLE" +msgstr "Использование FreeBSD-STABLE" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:622 +msgid "" +"FreeBSD-STABLE is the development branch from which major releases are " +"made. Changes go into this branch at a slower pace and with the general " +"assumption that they have first been tested in FreeBSD-CURRENT. This is " +"_still_ a development branch and, at any given time, the sources for FreeBSD-" +"STABLE may or may not be suitable for general use. It is simply another " +"engineering development track, not a resource for end-users. Users who do " +"not have the resources to perform testing should instead run the most recent " +"release of FreeBSD." +msgstr "" +"FreeBSD-STABLE - это ветка разработки, из которой создаются основные " +"выпуски. Изменения попадают в эту ветку медленнее и с общим предположением, " +"что они сначала были протестированы в FreeBSD-CURRENT. Это _всё ещё_ ветка " +"разработки, и в любой момент исходный код FreeBSD-STABLE может быть или не " +"быть пригодным для общего использования. Это просто ещё один инженерный трек " +"разработки, а не ресурс для конечных пользователей. Пользователям, у которых " +"нет ресурсов для тестирования, следует использовать последний выпуск FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:624 +msgid "" +"Those interested in tracking or contributing to the FreeBSD development " +"process, especially as it relates to the next release of FreeBSD, should " +"consider following FreeBSD-STABLE." +msgstr "" +"Те, кто заинтересован в отслеживании или участии в процессе разработки " +"FreeBSD, особенно в контексте следующего выпуска FreeBSD, могут рассмотреть " +"возможность подписки на FreeBSD-STABLE." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:629 +msgid "" +"While the FreeBSD-STABLE branch should compile and run at all times, this " +"cannot be guaranteed. Since more people run FreeBSD-STABLE than FreeBSD-" +"CURRENT, it is inevitable that bugs and corner cases will sometimes be found " +"in FreeBSD-STABLE that were not apparent in FreeBSD-CURRENT. For this " +"reason, one should not blindly track FreeBSD-STABLE. It is particularly " +"important _not_ to update any production servers to FreeBSD-STABLE without " +"thoroughly testing the code in a development or testing environment." +msgstr "" +"Хотя ветка FreeBSD-STABLE должна компилироваться и работать в любое время, " +"это не может быть гарантировано. Поскольку больше людей используют FreeBSD-" +"STABLE, чем FreeBSD-CURRENT, неизбежно, что иногда в FreeBSD-STABLE будут " +"обнаружены ошибки и крайние случаи, которые не были очевидны в FreeBSD-" +"CURRENT. По этой причине не следует слепо следовать за FreeBSD-STABLE. " +"Особенно важно _не_ обновлять какие-либо производственные серверы до FreeBSD-" +"STABLE без тщательного тестирования кода в среде разработки или тестирования." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:631 +msgid "To track FreeBSD-STABLE:" +msgstr "Для отслеживания FreeBSD-STABLE:" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:633 +msgid "" +"Join the {freebsd-stable} in order to stay informed of build dependencies " +"that may appear in FreeBSD-STABLE or any other issues requiring special " +"attention. Developers will also make announcements in this mailing list when " +"they are contemplating some controversial fix or update, giving the users a " +"chance to respond if they have any issues to raise concerning the proposed " +"change." +msgstr "" +"Присоединяйтесь к рассылке {freebsd-stable}, чтобы быть в курсе зависимостей " +"сборки, которые могут появиться в FreeBSD-STABLE, или других вопросов, " +"требующих особого внимания. Разработчики также будут объявлять в этой " +"рассылке о рассмотрении спорных исправлений или обновлений, давая " +"пользователям возможность высказаться, если у них есть замечания по " +"предлагаемым изменениям." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:637 +msgid "" +"Join the relevant git list for the branch being tracked. For example, users " +"tracking the {betarel-current-major}-STABLE branch should join the {dev-" +"commits-src-branches}. This list records the commit log entry for each " +"change as it is made, along with any pertinent information on possible side " +"effects." +msgstr "" +"Присоединяйтесь к соответствующему списку рассылки git для отслеживаемой " +"ветки. Например, пользователи, отслеживающие ветку {betarel-current-major}-" +"STABLE, должны подписаться на {dev-commits-src-branches}. Этот список " +"рассылает сообщения с комментарием коммита для каждого внесённого изменения, " +"как только оно сделано, а также любую соответствующую информацию о возможных " +"побочных эффектах." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:640 +msgid "" +"To join these lists, go to {mailing-lists}, click on the list to subscribe " +"to, and follow the instructions. In order to track changes for the whole " +"source tree, subscribe to {dev-commits-src-all}." +msgstr "" +"Чтобы присоединиться к этим спискам, перейдите на {mailing-lists}, выберите " +"список для подписки и следуйте инструкциям. Для отслеживания изменений во " +"всём дереве исходного кода подпишитесь на {dev-commits-src-all}." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:641 +msgid "" +"To install a new FreeBSD-STABLE system, install the most recent FreeBSD-" +"STABLE release from the crossref:mirrors[mirrors,FreeBSD mirror sites] or " +"use a monthly snapshot built from FreeBSD-STABLE. Refer to link:https://" +"www.FreeBSD.org/snapshots/[www.freebsd.org/snapshots] for more information " +"about snapshots." +msgstr "" +"Для установки новой системы FreeBSD-STABLE установите последний выпуск " +"FreeBSD-STABLE с crossref:mirrors[mirrors,сайтов зеркал FreeBSD] или " +"используйте ежемесячный снимок, собранный из FreeBSD-STABLE. Дополнительную " +"информацию о снимках можно найти на link:https://www.FreeBSD.org/snapshots/" +"[www.freebsd.org/snapshots]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:644 +msgid "" +"To compile or upgrade an existing FreeBSD system to FreeBSD-STABLE, use " +"`git` to check out the source for the desired branch. Branch names, such as " +"`stable/13`, are listed at link:https://www.FreeBSD.org/releng/" +"[www.freebsd.org/releng]." +msgstr "" +"Для компиляции или обновления существующей системы FreeBSD до FreeBSD-STABLE " +"используйте `git` для получения исходного кода нужной ветки. Имена веток, " +"например `stable/13`, перечислены на сайте link:https://www.FreeBSD.org/" +"releng/[www.freebsd.org/releng]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:647 +msgid "" +"Before compiling or upgrading to FreeBSD-STABLE , read [.filename]#/usr/src/" +"Makefile# carefully and follow the instructions in crossref:cutting-" +"edge[makeworld, Updating FreeBSD from Source]. Read the {freebsd-stable} and " +"[.filename]#/usr/src/UPDATING# to keep up-to-date on other bootstrapping " +"procedures that sometimes become necessary on the road to the next release." +msgstr "" +"Перед компиляцией или обновлением до FreeBSD-STABLE внимательно прочитайте " +"файл [.filename]#/usr/src/Makefile# и следуйте инструкциям в " +"crossref:cutting-edge[makeworld,Обновление FreeBSD из исходного кода]. " +"Ознакомьтесь с {freebsd-stable} и файлом [.filename]#/usr/src/UPDATING#, " +"чтобы быть в курсе других процедур начальной загрузки, которые иногда " +"становятся необходимыми на пути к следующему выпуску." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:649 +#, no-wrap +msgid "The N-number" +msgstr "N-номер" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:653 +msgid "" +"When tracking down bugs it is important to know which versions of the source " +"code have been used to create the system exhibiting an issue. FreeBSD " +"provides version information compiled into the kernel. man:uname[1] " +"retrieves this information, for example:" +msgstr "" +"При поиске ошибок важно знать, какие версии исходного кода использовались " +"для создания системы, в которой обнаружена проблема. FreeBSD предоставляет " +"информацию о версии, встроенную в ядро. man:uname[1] извлекает эту " +"информацию, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:657 +#, no-wrap +msgid "" +"% uname -v\n" +"FreeBSD 14.0-CURRENT #112 main-n247514-031260d64c18: Tue Jun 22 20:43:19 MDT 2021 fred@machine:/usr/home/fred/obj/usr/home/fred/git/head/amd64.amd64/sys/FRED\n" +msgstr "" +"% uname -v\n" +"FreeBSD 14.0-CURRENT #112 main-n247514-031260d64c18: Tue Jun 22 20:43:19 MDT 2021 fred@machine:/usr/home/fred/obj/usr/home/fred/git/head/amd64.amd64/sys/FRED\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:660 +msgid "" +"The final field gives information regarding the kernel name, the person that " +"built it, and the location that it was compiled in. Looking at the 4th " +"field, it is made up of several parts:" +msgstr "" +"Последнее поле содержит информацию о названии ядра, человеке, который его " +"собрал, и месте, где оно было скомпилировано. Рассматривая 4-е поле, можно " +"увидеть, что оно состоит из нескольких частей:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:663 +#, no-wrap +msgid "main-n247514-031260d64c18\n" +msgstr "main-n247514-031260d64c18\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:668 +#, no-wrap +msgid "" +"main\t\t<.>\n" +"n247514\t\t<.>\n" +"031260d64c18\t<.>\n" +"\t\t<.>\n" +msgstr "" +"main\t\t<.>\n" +"n247514\t\t<.>\n" +"031260d64c18\t<.>\n" +"\t\t<.>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:672 +msgid "" +"Git branch name. Note: comparisons of n-numbers are only valid on branches " +"published by the project (`main`, `stable/XX` and `releng/XX`). Local " +"branches will have n-numbers that will overlap commits of their parent " +"branch." +msgstr "" +"Имя ветки Git. Примечание: сравнения n-номеров действительны только для " +"веток, опубликованных проектом (`main`, `stable/XX` и `releng/XX`). " +"Локальные ветки будут иметь n-номера, которые могут пересекаться с коммитами " +"их родительской ветки." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:673 +msgid "" +"The n-number is a linear count of commits back to the start of the Git " +"repository starting with the Git hash included in the line." +msgstr "" +"n-номер — это линейный счетчик коммитов от начала репозитория Git, начиная с " +"хэша Git, указанного в строке." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:674 +msgid "Git hash of the checked out tree" +msgstr "Хэш Git дерева исходного кода" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:676 +msgid "" +"Sometimes a suffix of `-dirty` is present when the kernel was built in a " +"tree with uncommitted changes. It is absent in this example because the " +"FRED kernel was built from a pristine checkout." +msgstr "" +"Иногда добавляется суффикс `-dirty`, если ядро было собрано в дереве с " +"незафиксированными изменениями. В данном примере он отсутствует, так как " +"ядро FRED было собрано из чистой копии репозитория." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:679 +msgid "" +"The `git rev-list` command is used to find the n-number corresponding to a " +"Git hash. For example:" +msgstr "" +"Команда `git rev-list` используется для нахождения n-номера, " +"соответствующего хэшу Git. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:683 +#, no-wrap +msgid "" +"% git rev-list --first-parent --count 031260d64c18 <.>\n" +"247514 <.>\n" +msgstr "" +"% git rev-list --first-parent --count 031260d64c18 <.>\n" +"247514 <.>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:685 +msgid "git hash to translate (the hash from the above example is reused)" +msgstr "" +"Хеш git для перевода (используется тот же хеш из приведённого выше примера)" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:686 +msgid "The n-number." +msgstr "n-номер." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:692 +msgid "" +"Usually this number is not all that important. However, when bug fixes are " +"committed, this number makes it easy to quickly determine whether the fix is " +"present in the currently running system. Developers will often refer to the " +"hash of the commit (or provide a URL which has that hash), but not the n-" +"number since the hash is the easily visible identifier for a change while " +"the n-number is not. Security advisories and errata notices will also note " +"an n-number, which can be directly compared against your system. When you " +"need to use shallow Git clones, you cannot compare n-numbers reliably as the " +"`git rev-list` command counts all the revisions in the repository which a " +"shallow clone omits." +msgstr "" +"Обычно этот номер не так важен. Однако, когда фиксы ошибок попадают в " +"репозиторий, это число позволяет быстро определить, присутствует ли " +"исправление в текущей работающей системе. Разработчики часто ссылаются на " +"хэш коммита (или предоставляют URL, содержащий этот хэш), но не указывают n-" +"номер, так как хэш является легко видимым идентификатором изменения, в " +"отличие от n-номера. В уведомлениях о безопасности и бюллетенях исправлений " +"также указывается n-номер, который можно напрямую сравнить с вашей системой. " +"Если вы используете неполные (shallow) клоны Git, вы не сможете надежно " +"сравнивать n-номера, так как команда `git rev-list` подсчитывает все ревизии " +"в репозитории, которые неполный клон пропускает." + +#. type: Title == +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:694 +#, no-wrap +msgid "Updating FreeBSD from Source" +msgstr "Обновление FreeBSD из исходного кода" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:700 +msgid "" +"Updating FreeBSD by compiling from source offers several advantages over " +"binary updates. Code can be built with options to take advantage of " +"specific hardware. Parts of the base system can be built with non-default " +"settings, or left out entirely where they are not needed or desired. The " +"build process takes longer to update a system than just installing binary " +"updates, but allows complete customization to produce a tailored version of " +"FreeBSD." +msgstr "" +"Обновление FreeBSD путем компиляции из исходного кода предоставляет " +"несколько преимуществ по сравнению с бинарными обновлениями. Код может быть " +"собран с опциями, позволяющими использовать преимущества конкретного " +"оборудования. Части базовой системы могут быть собраны с нестандартными " +"настройками или полностью исключены, если они не нужны или нежелательны. " +"Процесс сборки занимает больше времени для обновления системы по сравнению с " +"установкой бинарных обновлений, но позволяет полностью настроить систему для " +"создания адаптированной версии FreeBSD." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:702 +#, no-wrap +msgid "Quick Start" +msgstr "Быстрый старт" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:706 +msgid "" +"This is a quick reference for the typical steps used to update FreeBSD by " +"building from source. Later sections describe the process in more detail." +msgstr "" +"Это краткая справка по типовым шагам, используемым для обновления FreeBSD " +"путем сборки из исходного кода. Более подробное описание процесса приведено " +"в следующих разделах." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:711 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1019 +msgid "" +"When switching from man:mergemaster[8] to man:etcupdate[8], the first run " +"might merge changes incorrectly generating spurious conflicts. To prevent " +"this, perform the following steps *before* updating sources and building the " +"new world:" +msgstr "" +"При переходе с man:mergemaster[8] на man:etcupdate[8] первый запуск может " +"некорректно объединить изменения, создавая ложные конфликты. Чтобы избежать " +"этого, выполните следующие действия *перед* обновлением исходных кодов и " +"сборкой нового мира:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:716 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1024 +#, no-wrap +msgid "" +"# etcupdate extract <.>\n" +"# etcupdate diff <.>\n" +msgstr "" +"# etcupdate extract <.>\n" +"# etcupdate diff <.>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:719 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1027 +msgid "" +"Bootstrap the database of stock [.filename]#/etc# files; for more " +"information see man:etcupdate[8]." +msgstr "" +"Загрузите базы данных стандартных файлов [.filename]#/etc#; дополнительную " +"информацию смотрите в man:etcupdate[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:721 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1029 +msgid "" +"Check the diff after bootstrapping. Trim any local changes that are no " +"longer needed to reduce the chance of conflicts in future updates." +msgstr "" +"Проверьте изменения после начальной настройки. Удалите все локальные " +"изменения, которые больше не нужны, чтобы уменьшить вероятность конфликтов " +"при будущих обновлениях." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:726 +msgid "Update and Build" +msgstr "Обновление и сборка" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:740 +#, no-wrap +msgid "" +"# git -C /usr/src pull <.>\n" +"check /usr/src/UPDATING <.>\n" +"# cd /usr/src <.>\n" +"# make -j4 buildworld <.>\n" +"# make -j4 kernel <.>\n" +"# shutdown -r now <.>\n" +"# etcupdate -p <.>\n" +"# cd /usr/src <.>\n" +"# make installworld <.>\n" +"# etcupdate -B <.>\n" +"# shutdown -r now <.>\n" +msgstr "" +"# git -C /usr/src pull <.>\n" +"check /usr/src/UPDATING <.>\n" +"# cd /usr/src <.>\n" +"# make -j4 buildworld <.>\n" +"# make -j4 kernel <.>\n" +"# shutdown -r now <.>\n" +"# etcupdate -p <.>\n" +"# cd /usr/src <.>\n" +"# make installworld <.>\n" +"# etcupdate -B <.>\n" +"# shutdown -r now <.>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:744 +msgid "" +"Get the latest version of the source. See crossref:cutting-edge[updating-src-" +"obtaining-src, Updating the Source] for more information on obtaining and " +"updating source." +msgstr "" +"Получите последнюю версию исходного кода. Подробнее о получении и обновлении " +"исходного кода см. в crossref:cutting-edge[updating-src-obtaining-src, " +"Обновление исходного кода]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:746 +msgid "" +"Check [.filename]#/usr/src/UPDATING# for any manual steps required before or " +"after building from source." +msgstr "" +"Проверьте [.filename]#/usr/src/UPDATING# на наличие необходимых действий " +"перед или после сборки из исходного кода." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:748 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:758 +msgid "Go to the source directory." +msgstr "Перейдите в исходный каталог." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:750 +msgid "Compile the world, everything except the kernel." +msgstr "Соберите систему (world), всё кроме ядра системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:752 +msgid "" +"Compile and install the kernel. This is equivalent to `make buildkernel " +"installkernel`." +msgstr "" +"Скомпилируйте и установите ядро системы. Это эквивалентно `make buildkernel " +"installkernel`." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:754 +msgid "Reboot the system to the new kernel." +msgstr "Перезагрузите систему с новым ядром." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:756 +msgid "" +"Update and merge configuration files in [.filename]#/etc/# required before " +"installworld." +msgstr "" +"Обновите и объедините конфигурационные файлы в [.filename]#/etc/#, это " +"обязательно перед выполнением installworld." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:760 +msgid "Install the world." +msgstr "Установить систему (world)." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:762 +msgid "Update and merge configuration files in [.filename]#/etc/#." +msgstr "Обновите и объедините конфигурационные файлы в [.filename]#/etc/#." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:764 +msgid "Restart the system to use the newly-built world and kernel." +msgstr "" +"Перезагрузите систему для использования новой собранной системы (world) и " +"ядра." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:767 +#, no-wrap +msgid "Preparing for a Source Update" +msgstr "Подготовка к обновлению исходного кода" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:770 +msgid "" +"Read [.filename]#/usr/src/UPDATING#. Any manual steps that must be performed " +"before or after an update are described in this file." +msgstr "" +"Прочитайте файл [.filename]#/usr/src/UPDATING#. В этом файле описаны все " +"необходимые действия, которые нужно выполнить до или после обновления." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:772 +#, no-wrap +msgid "Updating the Source" +msgstr "Обновление исходного кода" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:777 +msgid "" +"FreeBSD source code is located in [.filename]#/usr/src/#. The preferred " +"method of updating this source is through the Git version control system. " +"Verify that the source code is under version control:" +msgstr "" +"Исходный код FreeBSD находится в [.filename]#/usr/src/#. Предпочтительный " +"метод обновления этого исходного кода — через систему управления версиями " +"Git. Проверьте, что исходный код находится под управлением версий:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:784 +#, no-wrap +msgid "" +"# cd /usr/src\n" +"# git remote --v\n" +"origin https://git.freebsd.org/src.git (fetch)\n" +"origin https://git.freebsd.org/src.git (push)\n" +msgstr "" +"# cd /usr/src\n" +"# git remote --v\n" +"origin https://git.freebsd.org/src.git (fetch)\n" +"origin https://git.freebsd.org/src.git (push)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:787 +msgid "" +"This indicates that [.filename]#/usr/src/# is under version control and can " +"be updated with man:git[1]:" +msgstr "" +"Это указывает, что [.filename]#/usr/src/# находится под управлением версий и " +"может быть обновлён с помощью man:git[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:792 +#, no-wrap +msgid "# git -C /usr/src pull\n" +msgstr "# git -C /usr/src pull\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:796 +msgid "" +"The update process can take some time if the directory has not been updated " +"recently. After it finishes, the source code is up to date and the build " +"process described in the next section can begin." +msgstr "" +"Процесс обновления может занять некоторое время, если каталог не обновлялся " +"в течение долгого периода. После завершения исходный код будет актуальным, и " +"можно приступать к процессу сборки, описанному в следующем разделе." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:800 +msgid "Obtaining the source:" +msgstr "Получение исходного кода:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:803 +msgid "" +"If the output says `fatal: not a git repository`, the files there are " +"missing or were installed with a different method. A new checkout of the " +"source is required." +msgstr "" +"Если вывод содержит `fatal: not a git repository`, значит, файлы отсутствуют " +"или были установлены другим способом. Необходимо выполнить новое получение " +"исходного кода." + +#. type: Block title +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:806 +#, no-wrap +msgid "FreeBSD Versions and Repository Branches" +msgstr "Версии FreeBSD и ветви репозиториев" + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:810 +#, no-wrap +msgid "uname ‑r Output" +msgstr "uname ‑r Output" + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:811 +#, no-wrap +msgid "Repository Path" +msgstr "Путь репозитория" + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:813 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:814 +#, no-wrap +msgid "`_X.Y_-RELEASE`" +msgstr "`_X.Y_-RELEASE`" + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:815 +#, no-wrap +msgid "`releng/_X.Y_`" +msgstr "`releng/_X.Y_`" + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:817 +#, no-wrap +msgid "The Release version plus only critical security and bug fix patches. This branch is recommended for most users." +msgstr "Версия Release с добавлением только критических исправлений безопасности и ошибок. Эта ветка рекомендуется для большинства пользователей." + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:818 +#, no-wrap +msgid "`_X.Y_-STABLE`" +msgstr "`_X.Y_-STABLE`" + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:819 +#, no-wrap +msgid "`stable/_X_`" +msgstr "`stable/_X_`" + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:825 +#, no-wrap +msgid "" +"The Release version plus all additional development on that branch. _STABLE_ refers to the Applications Binary Interface (ABI) not changing, so software compiled for earlier versions still runs. For example, software compiled to run on FreeBSD 10.1 will still run on FreeBSD 10-STABLE compiled later.\n" +"\n" +"STABLE branches occasionally have bugs or incompatibilities which might affect users, although these are typically fixed quickly." +msgstr "" +"Версия Release и все дополнительные разработки в этой ветке. _STABLE_ означает, что двоичный интерфейс приложений (ABI) не изменяется, поэтому программное обеспечение, скомпилированное для более ранних версий, продолжает работать. Например, программное обеспечение, скомпилированное для работы на FreeBSD 10.1, будет работать и на FreeBSD 10-STABLE, собранной позже. \n" +"\n" +"Ветки STABLE иногда содержат ошибки или несовместимости, которые могут повлиять на пользователей, хотя они обычно быстро исправляются." + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:826 +#, no-wrap +msgid "`_X_-CURRENT`" +msgstr "`_X_-CURRENT`" + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:827 +#, no-wrap +msgid "`main`" +msgstr "`main`" + +#. type: Table +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:828 +#, no-wrap +msgid "The latest unreleased development version of FreeBSD. The CURRENT branch can have major bugs or incompatibilities and is recommended only for advanced users." +msgstr "Последняя невыпущенная разрабатываемая версия FreeBSD. Ветка CURRENT может содержать серьёзные ошибки или проблемы совместимости и рекомендуется только для опытных пользователей." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:831 +msgid "Determine which version of FreeBSD is being used with man:uname[1]:" +msgstr "Определите версию FreeBSD с помощью man:uname[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:836 +#, no-wrap +msgid "" +"# uname -r\n" +"13.2-RELEASE\n" +msgstr "" +"# uname -r\n" +"13.2-RELEASE\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:840 +msgid "" +"Based on crossref:cutting-edge[updating-src-obtaining-src-repopath,FreeBSD " +"Versions and Repository Branches], the source used to update `13.2-RELEASE` " +"has a repository path of `releng/13.2`. That path is used when checking out " +"the source:" +msgstr "" +"На основе crossref:cutting-edge[updating-src-obtaining-src-repopath,Версии " +"FreeBSD и ветви репозиториев], исходный код для обновления `13.2-RELEASE` " +"имеет путь в репозитории `releng/13.2`. Этот путь используется при проверке " +"исходного кода:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:845 +#, no-wrap +msgid "" +"# mv /usr/src /usr/src.bak <.>\n" +"# git clone --branch releng/13.2 https://git.FreeBSD.org/src.git /usr/src <.>\n" +msgstr "" +"# mv /usr/src /usr/src.bak <.>\n" +"# git clone --branch releng/13.2 https://git.FreeBSD.org/src.git /usr/src <.>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:848 +msgid "" +"Move the old directory out of the way. If there are no local modifications " +"in this directory, it can be deleted." +msgstr "" +"Переместите старую директорию в другое место. Если в этой директории нет " +"локальных изменений, её можно удалить." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:850 +msgid "" +"The path from crossref:cutting-edge[updating-src-obtaining-src-" +"repopath,FreeBSD Versions and Repository Branches] is added to the " +"repository URL. The third parameter is the destination directory for the " +"source code on the local system." +msgstr "" +"Путь из crossref:cutting-edge[updating-src-obtaining-src-repopath,Версии " +"FreeBSD и ветви репозитория] добавляется к URL репозитория. Третий параметр " +"— это целевой каталог для исходного кода в локальной системе." + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:852 +#, no-wrap +msgid "Building from Source" +msgstr "Сборка из исходного кода" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:857 +msgid "" +"The _world_, or all of the operating system except the kernel, is compiled. " +"This is done first to provide up-to-date tools to build the kernel. Then " +"the kernel itself is built:" +msgstr "" +"_Система (world)_ , или вся операционная система, за исключением ядра, " +"компилируется. Это делается в первую очередь, чтобы предоставить актуальные " +"инструменты для сборки ядра. Затем компилируется само ядро:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:863 +#, no-wrap +msgid "" +"# cd /usr/src\n" +"# make buildworld\n" +"# make buildkernel\n" +msgstr "" +"# cd /usr/src\n" +"# make buildworld\n" +"# make buildkernel\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:866 +msgid "The compiled code is written to [.filename]#/usr/obj#." +msgstr "Скомпилированный код записывается в [.filename]#/usr/obj#." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:869 +msgid "" +"These are the basic steps. Additional options to control the build are " +"described below." +msgstr "" +"Вот основные шаги. Дополнительные параметры для управления сборкой описаны " +"ниже." + +#. type: Title ==== +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:871 +#, no-wrap +msgid "Performing a Clean Build" +msgstr "Выполнение чистой сборки" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:876 +msgid "" +"Some versions of the FreeBSD build system leave previously-compiled code in " +"the temporary object directory, [.filename]#/usr/obj#. This can speed up " +"later builds by avoiding recompiling code that has not changed. To force a " +"clean rebuild of everything, use `cleanworld` before starting a build:" +msgstr "" +"Некоторые версии системы сборки FreeBSD оставляют ранее скомпилированный код " +"во временном каталоге объектов [.filename]#/usr/obj#. Это может ускорить " +"последующие сборки, избегая перекомпиляции неизменившегося кода. Для " +"принудительной чистой пересборки всего используйте `cleanworld` перед " +"началом сборки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:880 +#, no-wrap +msgid "# make cleanworld\n" +msgstr "# make cleanworld\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:883 +#, no-wrap +msgid "Setting the Number of Jobs" +msgstr "Установка количества задач" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:890 +msgid "" +"Increasing the number of build jobs on multi-core processors can improve " +"build speed. Determine the number of cores with `sysctl hw.ncpu`. " +"Processors vary, as do the build systems used with different versions of " +"FreeBSD, so testing is the only sure method to tell how a different number " +"of jobs affects the build speed. For a starting point, consider values " +"between half and double the number of cores. The number of jobs is " +"specified with `-j`." +msgstr "" +"Увеличение количества задач сборки на многоядерных процессорах может " +"повысить скорость сборки. Определите количество ядер с помощью `sysctl " +"hw.ncpu`. Процессоры различаются, как и системы сборки, используемые в " +"разных версиях FreeBSD, поэтому тестирование — единственный надежный способ " +"определить, как разное количество задач влияет на скорость сборки. В " +"качестве отправной точки рассмотрите значения от половины до удвоенного " +"количества ядер. Количество задач указывается с помощью `-j`." + +#. type: Block title +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:892 +#, no-wrap +msgid "Increasing the Number of Build Jobs" +msgstr "Увеличение количества заданий сборки" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:896 +msgid "Building the world and kernel with four jobs:" +msgstr "Сборка системы и ядра с использованием четырех задач:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:900 +#, no-wrap +msgid "# make -j4 buildworld buildkernel\n" +msgstr "# make -j4 buildworld buildkernel\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:905 +#, no-wrap +msgid "Building Only the Kernel" +msgstr "Сборка только ядра" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:910 +msgid "" +"A `buildworld` must be completed if the source code has changed. After " +"that, a `buildkernel` to build a kernel can be run at any time. To build " +"just the kernel:" +msgstr "" +"`buildworld` должен быть выполнен, если исходный код изменился. После этого " +"`buildkernel` для сборки ядра может быть запущен в любое время. Чтобы " +"собрать только ядро:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:915 +#, no-wrap +msgid "" +"# cd /usr/src\n" +"# make buildkernel\n" +msgstr "" +"# cd /usr/src\n" +"# make buildkernel\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:918 +#, no-wrap +msgid "Building a Custom Kernel" +msgstr "Сборка собственного ядра" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:923 +msgid "" +"The standard FreeBSD kernel is based on a _kernel config file_ called " +"[.filename]#GENERIC#. The [.filename]#GENERIC# kernel includes the most " +"commonly-needed device drivers and options. Sometimes it is useful or " +"necessary to build a custom kernel, adding or removing device drivers or " +"options to fit a specific need." +msgstr "" +"Стандартное ядро FreeBSD основано на _конфигурационном файле ядра_ " +"[.filename]#GENERIC#. Ядро [.filename]#GENERIC# включает наиболее часто " +"востребованные драйверы устройств и параметры. Иногда полезно или необходимо " +"собрать собственное ядро, добавляя или удаляя драйверы устройств и параметры " +"для соответствия конкретным требованиям." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:925 +msgid "" +"For example, someone developing a small embedded computer with severely " +"limited RAM could remove unneeded device drivers or options to make the " +"kernel slightly smaller." +msgstr "" +"Например, разработчик компактного встраиваемого компьютера с крайне " +"ограниченным объёмом оперативной памяти может удалить ненужные драйверы " +"устройств или опции, чтобы немного уменьшить размер ядра." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:928 +msgid "" +"Kernel config files are located in [.filename]#/usr/src/sys/arch/conf/#, " +"where _arch_ is the output from `uname -m`. On most computers, that is " +"`amd64`, giving a config file directory of [.filename]#/usr/src/sys/amd64/" +"conf/#." +msgstr "" +"Файлы конфигурации ядра находятся в [.filename]#/usr/src/sys/arch/conf/#, " +"где _arch_ — это результат выполнения команды `uname -m`. На большинстве " +"компьютеров это `amd64`, что соответствует каталогу с конфигурационными " +"файлами [.filename]#/usr/src/sys/amd64/conf/#." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:934 +msgid "" +"[.filename]#/usr/src# can be deleted or recreated, so it is preferable to " +"keep custom kernel config files in a separate directory, like [.filename]#/" +"root#. Link the kernel config file into the [.filename]#conf# directory. " +"If that directory is deleted or overwritten, the kernel config can be re-" +"linked into the new one." +msgstr "" +"[.filename]#/usr/src# можно удалить или создать заново, поэтому " +"предпочтительнее хранить конфигурационные файлы собственного ядра в " +"отдельном каталоге, например, в [.filename]#/root#. Свяжите конфигурационный " +"файл ядра с каталогом [.filename]#conf#. Если этот каталог будет удалён или " +"перезаписан, конфигурацию ядра можно снова связать с новым каталогом." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:938 +msgid "" +"A custom config file can be created by copying the [.filename]#GENERIC# " +"config file. In this example, the new custom kernel is for a storage " +"server, so is named [.filename]#STORAGESERVER#:" +msgstr "" +"Собственный конфигурационный файл можно создать, скопировав файл " +"[.filename]#GENERIC#. В этом примере новое собственное ядро предназначено " +"для сервера хранения данных, поэтому он назван [.filename]#STORAGESERVER#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:944 +#, no-wrap +msgid "" +"# cp /usr/src/sys/amd64/conf/GENERIC /root/STORAGESERVER\n" +"# cd /usr/src/sys/amd64/conf\n" +"# ln -s /root/STORAGESERVER .\n" +msgstr "" +"# cp /usr/src/sys/amd64/conf/GENERIC /root/STORAGESERVER\n" +"# cd /usr/src/sys/amd64/conf\n" +"# ln -s /root/STORAGESERVER .\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:947 +msgid "" +"[.filename]#/root/STORAGESERVER# is then edited, adding or removing devices " +"or options as shown in man:config[5]." +msgstr "" +"Затем отредактируйте файл [.filename]#/root/STORAGESERVER#, добавляя или " +"удаляя устройства или параметры, как показано в man:config[5]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:949 +msgid "" +"The custom kernel is built by setting `KERNCONF` to the kernel config file " +"on the command line:" +msgstr "" +"Собственное ядро собирается путем установки `KERNCONF` в файл конфигурации " +"ядра в командной строке:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:953 +#, no-wrap +msgid "# make buildkernel KERNCONF=STORAGESERVER\n" +msgstr "# make buildkernel KERNCONF=STORAGESERVER\n" + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:956 +#, no-wrap +msgid "Installing the Compiled Code" +msgstr "Установка скомпилированного кода" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:959 +msgid "" +"After the `buildworld` and `buildkernel` steps have been completed, the new " +"kernel and world are installed:" +msgstr "" +"После завершения шагов `buildworld` и `buildkernel` новые ядро и система " +"устанавливаются:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:968 +#, no-wrap +msgid "" +"# cd /usr/src\n" +"# make installkernel\n" +"# shutdown -r now\n" +"# cd /usr/src\n" +"# make installworld\n" +"# shutdown -r now\n" +msgstr "" +"# cd /usr/src\n" +"# make installkernel\n" +"# shutdown -r now\n" +"# cd /usr/src\n" +"# make installworld\n" +"# shutdown -r now\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:971 +msgid "" +"If a custom kernel was built, `KERNCONF` must also be set to use the new " +"custom kernel:" +msgstr "" +"Если было собрано собственное ядро, `KERNCONF` также должен быть установлен " +"для использования нового собственного ядра:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:980 +#, no-wrap +msgid "" +"# cd /usr/src\n" +"# make installkernel KERNCONF=STORAGESERVER\n" +"# shutdown -r now\n" +"# cd /usr/src\n" +"# make installworld\n" +"# shutdown -r now\n" +msgstr "" +"# cd /usr/src\n" +"# make installkernel KERNCONF=STORAGESERVER\n" +"# shutdown -r now\n" +"# cd /usr/src\n" +"# make installworld\n" +"# shutdown -r now\n" + +#. type: Title === +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:983 +#, no-wrap +msgid "Completing the Update" +msgstr "Завершение обновления" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:987 +msgid "" +"A few final tasks complete the update. Any modified configuration files are " +"merged with the new versions, outdated libraries are located and removed, " +"then the system is restarted." +msgstr "" +"Для окончания обновления выполняется несколько завершающих задач. Изменённые " +"конфигурационные файлы объединяются с новыми версиями, устаревшие библиотеки " +"находятся и удаляются, после чего система перезагружается." + +#. type: Title ==== +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:989 +#, no-wrap +msgid "Merging Configuration Files with man:etcupdate[8]" +msgstr "Объединение конфигурационных файлов с помощью man:etcupdate[8]" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:994 +msgid "" +"man:etcupdate[8] is a tool for managing updates to files that are not " +"updated as part of an installworld such as files located in [.filename]#/etc/" +"#. It manages updates by doing a three-way merge of changes made to these " +"files against the local versions. man:etcupdate[8] is designed to minimize " +"the amount of user intervention." +msgstr "" +"man:etcupdate[8] — это инструмент для управления обновлениями файлов, " +"которые не обновляются в процессе выполнения `installworld`, таких как файлы " +"в [.filename]#/etc/#. Он управляет обновлениями, выполняя трёхстороннее " +"слияние изменений, внесённых в эти файлы, с локальными версиями. " +"man:etcupdate[8] разработан для минимизации вмешательства пользователя." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:999 +msgid "" +"In general, man:etcupdate[8] does not need any specific arguments for its " +"job. There is however a handy in between command for sanity checking what " +"will be done the first time man:etcupdate[8] is used:" +msgstr "" +"В общем, man:etcupdate[8] не требует специальных аргументов для своей " +"работы. Однако есть удобная промежуточная команда для проверки того, что " +"будет сделано при первом использовании man:etcupdate[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1003 +#, no-wrap +msgid "# etcupdate diff\n" +msgstr "# etcupdate diff\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1006 +msgid "This command allows the user to audit configuration changes." +msgstr "Эта команда позволяет пользователю отслеживать изменения конфигурации." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1009 +msgid "" +"If man:etcupdate[8] is not able to merge a file automatically, the merge " +"conflicts can be resolved with manual interaction by issuing:" +msgstr "" +"Если man:etcupdate[8] не может автоматически объединить файл, конфликты " +"слияния можно разрешить вручную, выполнив:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1013 +#, no-wrap +msgid "# etcupdate resolve\n" +msgstr "# etcupdate resolve\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1032 +#, no-wrap +msgid "Checking for Outdated Files and Libraries" +msgstr "Проверка устаревших файлов и библиотек" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1036 +msgid "" +"Some obsolete files or directories can remain after an update. These files " +"can be located:" +msgstr "" +"Некоторые устаревшие файлы или каталоги могут остаться после обновления. Эти " +"файлы могут быть найдены:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1040 +#, no-wrap +msgid "# make check-old\n" +msgstr "# make check-old\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1043 +msgid "and deleted:" +msgstr "и удалены:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1047 +#, no-wrap +msgid "# make delete-old\n" +msgstr "# make delete-old\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1051 +msgid "Some obsolete libraries can also remain. These can be detected with:" +msgstr "" +"Некоторые устаревшие библиотеки также могут остаться. Их можно обнаружить с " +"помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1055 +#, no-wrap +msgid "# make check-old-libs\n" +msgstr "# make check-old-libs\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1058 +msgid "and deleted with" +msgstr "и удалить" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1062 +#, no-wrap +msgid "# make delete-old-libs\n" +msgstr "# make delete-old-libs\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1066 +msgid "" +"Programs which were still using those old libraries will stop working when " +"the library has been deleted. These programs must be rebuilt or replaced " +"after deleting the old libraries." +msgstr "" +"Программы, которые всё ещё использовали эти старые библиотеки, перестанут " +"работать после удаления библиотек. Эти программы необходимо пересобрать или " +"заменить после удаления старых библиотек." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1072 +msgid "" +"When all the old files or directories are known to be safe to delete, " +"pressing kbd:[y] and kbd:[Enter] to delete each file can be avoided by " +"setting `BATCH_DELETE_OLD_FILES` in the command. For example:" +msgstr "" +"Когда известно, что все старые файлы или каталоги можно безопасно удалить, " +"нажатие kbd:[y] и kbd:[Enter] для подтверждения удаления каждого файла можно " +"избежать, установив параметр `BATCH_DELETE_OLD_FILES` в команде. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1076 +#, no-wrap +msgid "# make BATCH_DELETE_OLD_FILES=yes delete-old-libs\n" +msgstr "# make BATCH_DELETE_OLD_FILES=yes delete-old-libs\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1081 +#, no-wrap +msgid "Restarting After the Update" +msgstr "Перезагрузка после обновления" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1084 +msgid "" +"The last step after updating is to restart the computer so all the changes " +"take effect:" +msgstr "" +"Последним шагом после обновления является перезагрузка компьютера, чтобы все " +"изменения вступили в силу:" + +#. type: Title == +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1091 +#, no-wrap +msgid "Tracking for Multiple Machines" +msgstr "Распространение обновлений на несколько машин" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1099 +msgid "" +"When multiple machines need to track the same source tree, it is a waste of " +"disk space, network bandwidth, and CPU cycles to have each system download " +"the sources and rebuild everything. The solution is to have one machine do " +"most of the work, while the rest of the machines mount that work via NFS. " +"This section outlines a method of doing so. For more information about " +"using NFS, refer to crossref:network-servers[network-nfs,\"Network File " +"System (NFS)\"]." +msgstr "" +"Когда несколько машин должны отслеживать одно и то же дерево исходных кодов, " +"это приводит к расточительному использованию дискового пространства, " +"пропускной способности сети и процессорного времени, если каждая система " +"загружает исходные коды и пересобирает всё самостоятельно. Решение " +"заключается в том, чтобы одна машина выполняла основную часть работы, а " +"остальные монтировали результаты через NFS. В этом разделе описывается метод " +"организации такого процесса. Дополнительные сведения об использовании NFS " +"см. в crossref:network-servers[network-nfs,\"Network File System (NFS)\"]." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1104 +msgid "" +"First, identify a set of machines which will run the same set of binaries, " +"known as a _build set_. Each machine can have a custom kernel, but will run " +"the same userland binaries. From that set, choose a machine to be the " +"_build machine_ that the world and kernel are built on. Ideally, this is a " +"fast machine that has sufficient spare CPU to run `make buildworld` and " +"`make buildkernel`." +msgstr "" +"Сначала определите набор машин, которые будут запускать один и тот же набор " +"бинарных файлов, известный как _набор сборки_. На каждой машине может быть " +"своё собственное ядро, но пользовательские бинарные файлы должны быть " +"одинаковыми. Из этого набора выберите машину, которая будет _машиной для " +"сборки_, на которой будут собираться система и ядро. В идеале это должна " +"быть производительная машина с достаточным количеством свободных ресурсов " +"CPU для выполнения команд `make buildworld` и `make buildkernel`." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1108 +msgid "" +"Select a machine to be the _test machine_, which will test software updates " +"before they are put into production. This _must_ be a machine that can " +"afford to be down for an extended period of time. It can be the build " +"machine, but need not be." +msgstr "" +"Выберите машину, которая будет _тестовой машиной_ для проверки обновлений " +"программного обеспечения перед их внедрением в производство. Это _должна_ " +"быть машина, которая может позволить себе длительный простой. Она может быть " +"той же машиной, что и сборщик, но это не обязательно." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1111 +msgid "" +"All the machines in this build set need to mount [.filename]#/usr/obj# and " +"[.filename]#/usr/src# from the build machine via NFS. For multiple build " +"sets, [.filename]#/usr/src# should be on one build machine, and NFS mounted " +"on the rest." +msgstr "" +"Все машины в этом наборе сборки должны монтировать [.filename]#/usr/obj# и " +"[.filename]#/usr/src# сборочной машины через NFS. Для нескольких наборов " +"сборки [.filename]#/usr/src# должен находиться на одной сборочной машине и " +"монтироваться по NFS на остальных." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1117 +msgid "" +"Ensure that [.filename]#/etc/make.conf# and [.filename]#/etc/src.conf# on " +"all the machines in the build set agree with the build machine. That means " +"that the build machine must build all the parts of the base system that any " +"machine in the build set is going to install. Also, each build machine " +"should have its kernel name set with `KERNCONF` in [.filename]#/etc/" +"make.conf#, and the build machine should list them all in its `KERNCONF`, " +"listing its own kernel first. The build machine must have the kernel " +"configuration files for each machine in its [.filename]#/usr/src/sys/arch/" +"conf#." +msgstr "" +"Убедитесь, что файлы [.filename]#/etc/make.conf# и [.filename]#/etc/" +"src.conf# на всех машинах в наборе сборки соответствуют таковым на машине " +"сборки. Это означает, что машина сборки должна собирать все части базовой " +"системы, которые будут устанавливаться на любой машине из набора сборки. " +"Кроме того, каждая машина сборки должна иметь имя ядра, указанное с помощью " +"`KERNCONF` в [.filename]#/etc/make.conf#, а машина сборки должна перечислить " +"их все в своем `KERNCONF`, указав собственное ядро первым. Машина сборки " +"должна иметь конфигурационные файлы ядра для каждой машины в своем каталоге " +"[.filename]#/usr/src/sys/arch/conf#." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1125 +msgid "" +"On the build machine, build the kernel and world as described in " +"crossref:cutting-edge[makeworld, Updating FreeBSD from Source], but do not " +"install anything on the build machine. Instead, install the built kernel on " +"the test machine. On the test machine, mount [.filename]#/usr/src# and " +"[.filename]#/usr/obj# via NFS. Then, run `shutdown now` to go to single-" +"user mode in order to install the new kernel and world and run `etcupdate` " +"as usual. When done, reboot to return to normal multi-user operations." +msgstr "" +"На машине для сборки соберите ядро и систему, как описано в crossref:cutting-" +"edge[makeworld,Обновление FreeBSD из исходного кода], но не устанавливайте " +"ничего на машину для сборки. Вместо этого установите собранное ядро на " +"тестовую машину. На тестовой машине смонтируйте [.filename]#/usr/src# и " +"[.filename]#/usr/obj# через NFS. Затем выполните `shutdown now`, чтобы " +"перейти в однопользовательский режим для установки нового ядра и системы, а " +"также запустите `etcupdate` как обычно. По завершении перезагрузитесь, чтобы " +"вернуться к обычной многопользовательской работе." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1128 +msgid "" +"After verifying that everything on the test machine is working properly, use " +"the same procedure to install the new software on each of the other machines " +"in the build set." +msgstr "" +"После проверки того, что все на тестовой машине работает правильно, " +"используйте ту же процедуру для установки нового программного обеспечения на " +"каждой из остальных машин в наборе сборки." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1136 +msgid "" +"The same methodology can be used for the ports tree. The first step is to " +"share [.filename]#/usr/ports# via NFS to all the machines in the build set. " +"To configure [.filename]#/etc/make.conf# to share distfiles, set `DISTDIR` " +"to a common shared directory that is writable by whichever user `root` is " +"mapped to by the NFS mount. Each machine should set `WRKDIRPREFIX` to a " +"local build directory, if ports are to be built locally. Alternately, if " +"the build system is to build and distribute packages to the machines in the " +"build set, set `PACKAGES` on the build system to a directory similar to " +"`DISTDIR`." +msgstr "" +"Тот же метод можно применить к дереву портов. Первый шаг — предоставить " +"общий доступ через NFS к [.filename]#/usr/ports# для всех машин в наборе " +"сборки. Чтобы настроить [.filename]#/etc/make.conf# для совместного " +"использования distfiles, установите `DISTDIR` в общий каталог, доступный для " +"записи пользователем, в которого отображается `root` при монтировании NFS. " +"Каждая машина должна установить `WRKDIRPREFIX` в локальный каталог сборки, " +"если порты собираются локально. В качестве альтернативы, если система сборки " +"предназначена для создания и распространения пакетов на машины в наборе " +"сборки, установите `PACKAGES` в системе сборки в каталог, аналогичный " +"`DISTDIR`." + +#. type: Title == +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1138 +#, no-wrap +msgid "Building on non-FreeBSD Hosts" +msgstr "Сборка на хостах, отличных от FreeBSD" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1142 +msgid "" +"Historically, building required a FreeBSD host. Nowadays, FreeBSD can be " +"built on Linux and macOS." +msgstr "" +"Исторически для сборки требовался хост с FreeBSD. В настоящее время FreeBSD " +"можно собирать на Linux и macOS." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1148 +msgid "" +"To build on a non-FreeBSD host, the `tools/build/make.py` script is " +"recommended. This script acts as a wrapper around `bmake`, which is the " +"make implementation used by FreeBSD. It ensures that the necessary tooling, " +"including the actual FreeBSD's man:make[1], is bootstrapped and that the " +"build environment is properly configured. In particular, it sets the " +"external toolchain variables, such as `XCC`, `XLD`, and others. " +"Additionally, the script can pass any additional command arguments, such as " +"`-j 4` for parallel builds or specific make targets, to `bmake`." +msgstr "" +"Для сборки на хосте, отличном от FreeBSD, рекомендуется использовать скрипт " +"`tools/build/make.py`. Этот скрипт служит обёрткой для `bmake` — реализации " +"make, используемой в FreeBSD. Он обеспечивает загрузку необходимых " +"инструментов, включая man:make[1] из FreeBSD, и правильную настройку среды " +"сборки. В частности, он устанавливает переменные внешнего инструментария, " +"такие как `XCC`, `XLD` и другие. Кроме того, скрипт может передавать " +"дополнительные аргументы командной строки, например `-j 4` для параллельной " +"сборки или конкретные цели make, в `bmake`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1153 +msgid "" +"A recent version of `bmake` can be used instead of the `tools/build/make.py` " +"script as well. In that case, however, required environment variables need " +"to be set manually (the easiest way to obtain a list of them is by running " +"`tools/build/make.py --debug`)." +msgstr "" +"Вместо скрипта `tools/build/make.py` также можно использовать свежую версию " +"`bmake`. Однако в этом случае необходимые переменные окружения нужно " +"задавать вручную (проще всего получить их список, выполнив `tools/build/" +"make.py --debug`)." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1157 +msgid "" +"Otherwise, the list of prerequisites for building FreeBSD is rather short. " +"In fact, it boils down to installing a couple of dependencies." +msgstr "" +"В противном случае список требований для сборки FreeBSD довольно короткий. " +"Фактически, он сводится к установке нескольких зависимостей." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1160 +msgid "" +"On macOS, the only dependency is LLVM. The necessary dependencies can be " +"installed with package manager (e.g., link:https://brew.sh/[Homebrew]):" +msgstr "" +"На macOS единственная зависимость — LLVM. Необходимые зависимости можно " +"установить с помощью менеджера пакетов (например, link:https://brew.sh/" +"[Homebrew]):" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1164 +#, no-wrap +msgid "brew install llvm\n" +msgstr "brew install llvm\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1167 +msgid "" +"On a Linux distributions, install link:https://clang.llvm.org/[Clang] " +"version 10.0 or newer and the headers for libarchive and libbz2 (often " +"packaged as libarchive-dev and libbz2-dev)." +msgstr "" +"На дистрибутивах Linux установите link:https://clang.llvm.org/[Clang] версии " +"10.0 или новее, а также заголовочные файлы для libarchive и libbz2 (обычно " +"поставляются в пакетах libarchive-dev и libbz2-dev)." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1169 +msgid "" +"Once the dependencies are installed, the host should be able to build " +"FreeBSD." +msgstr "" +"После установки зависимостей система должна быть способна собрать FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1171 +msgid "" +"For example, the following `tools/build/make.py` invocation builds the world:" +msgstr "" +"Например, следующая команда `tools/build/make.py` собирает систему (world):" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1175 +#, no-wrap +msgid "MAKEOBJDIRPREFIX=/tmp/obj tools/build/make.py -j 8 TARGET=arm64 TARGET_ARCH=aarch64 buildworld\n" +msgstr "MAKEOBJDIRPREFIX=/tmp/obj tools/build/make.py -j 8 TARGET=arm64 TARGET_ARCH=aarch64 buildworld\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1180 +msgid "" +"It builds the world for target `aarch64:arm64` on 8 CPUs and uses " +"[.filename]#/tmp/obj# for object files. Note that the variables " +"`MAKEOBJDIRPREFIX`, `TARGET`, and `TARGET_ARCH` are mandatory when building " +"on non-FreeBSD hosts. Also, make sure to create the object directory " +"pointed to by the `MAKEOBJDIRPREFIX` environment variable." +msgstr "" +"Он собирает систему для целевой архитектуры `aarch64:arm64` на 8 CPU и " +"использует [.filename]#/tmp/obj# для объектных файлов. Обратите внимание, " +"что переменные `MAKEOBJDIRPREFIX`, `TARGET` и `TARGET_ARCH` обязательны при " +"сборке на хостах, отличных от FreeBSD. Также убедитесь, что создан каталог " +"для объектных файлов, указанный в переменной окружения `MAKEOBJDIRPREFIX`." + +#. type: Plain text +#: documentation/content/en/books/handbook/cutting-edge/_index.adoc:1181 +msgid "Refer to man:arch[7] and man:build[7] for more details." +msgstr "" +"Обратитесь к man:arch[7] и man:build[7] для получения дополнительной " +"информации." diff --git a/documentation/content/ru/books/handbook/desktop/_index.adoc b/documentation/content/ru/books/handbook/desktop/_index.adoc index 9d12b94bb9..53a3e93001 100644 --- a/documentation/content/ru/books/handbook/desktop/_index.adoc +++ b/documentation/content/ru/books/handbook/desktop/_index.adoc @@ -1,23 +1,25 @@ --- -title: Глава 7. Приложения для настольного компьютера -part: Часть II. Общие задачи -prev: books/handbook/partii +description: 'Эта глава демонстрирует, как установить множество рабочих сред, включая веб-браузеры, офисные программы, средства просмотра документов и финансовое программное обеспечение' next: books/handbook/multimedia -showBookMenu: true -weight: 10 params: - path: "/books/handbook/desktop/" + path: /books/handbook/desktop/ +part: 'Часть II. Стандартные задачи' +prev: books/handbook/partii +showBookMenu: true +tags: ["desktop", "KDE Plasma", "GNOME", "XFCE", "MATE", "Cinnamon", "LXQT", "browsers", "Firefox", "Chromium", "Iridium", "Falkon", "Konqueror", "Epiphany", "qutebrowser", "Dillo", "Links", "w3m", "Development tools", "Visual Studio Code", "Qt Creator", "Kdevelop", "Eclipse IDE", "Vim", "Neovim", "GNU Emacs", "Productivity", "LibreOffice", "Calligra", "AbiWord", "Viewers", "Okular", "Evince", "ePDFView", "Xpdf", "Finance", "KMyMoney", "GnuCash"] +title: 'Глава 8. Графические среды рабочего стола' +weight: 11 --- [[desktop]] -= Приложения для настольного компьютера += Рабочие столы :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 7 +:sectnumoffset: 8 :partnums: :source-highlighter: rouge :experimental: @@ -48,614 +50,1012 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] [[desktop-synopsis]] -== Краткий обзор +== Обзор -FreeBSD может работать с широким кругом приложений для настольного компьютера (десктопа), таких как браузеры и текстовые процессоры. Большинство из них доступны в качестве пакетов или могут быть автоматически собраны из коллекции портов. Многим новым пользователям хотелось бы видеть эти приложения на своем компьютере. В этой главе показано как без усилий установить некоторые популярные приложения для настольного компьютера из пакетов или из коллекции портов. +Хотя FreeBSD популярна в качестве сервера благодаря своей производительности и стабильности, она также отлично подходит для повседневного использования в качестве настольной системы. Более чем {numports} приложений, доступных в дереве портов FreeBSD, позволяют легко создать настроенный рабочий стол, способный запускать широкий спектр настольных приложений. В этой главе показано, как установить популярные окружения рабочего стола, а также настольные приложения, такие как веб-браузеры, офисные программы, средства просмотра документов и финансовое ПО. -Обратите внимание, что при установке программ из портов они компилируются из исходных текстов. Это может занять очень много времени, в зависимости от того, что вы собираете, и от скорости процессора вашего компьютера (компьютеров). Большинство программ, имеющихся в коллекции портов, могут быть установлены из прекомпилированных пакетов, если сборка из исходных текстов занимает недопустимо много времени. +Предварительные требования: -Поскольку FreeBSD обеспечивает двоичную совместимость с Linux, многие приложения, первоначально разработанные для Linux, доступны и на вашем компьютере. Настоятельно рекомендуется прочитать crossref:linuxemu[linuxemu, Двоичная совместимость с Linux] перед установкой любого из приложений Linux. Названия многих портов, использующих двоичную совместимость с Linux, начинаются с "linux-". Помните это при поиске отдельного порта, например с помощью man:whereis[1]. Далее в статье подразумевается, что вы включили бинарную совместимость с Linux перед установкой какого-либо приложения Linux. +* Читатели этой главы уже должны знать, как установить либо crossref:x11[x11,X Window System], либо crossref:wayland[wayland,Wayland] в FreeBSD. +* В этой главе читателям рекомендуется устанавливать официальные пакеты. Для сборки настраиваемых пакетов из портов обратитесь к разделу crossref:ports[ports-using,использование коллекции портов]. -Вот несколько категорий, о которых пойдет речь в этой главе: +[[desktop-environments]] +== Рабочие столы -* Браузеры (такие как Mozilla, Opera, Firefox, Konqueror) -* Бизнес приложения (такие как KOffice, AbiWord, GIMP, OpenOffice.org) -* Программы просмотра документов (такие как Acrobat Reader(R), gv, Xpdf, GQview) -* Финансовые программы (такие как GnuCash, Gnumeric, Abacus) +Этот раздел описывает, как установить и настроить некоторые популярные графические среды на системе FreeBSD. Графическая среда может варьироваться от простого оконного менеджера до полного набора приложений для рабочего стола. -Перед прочтением этой главы вам потребуется: - -* Узнать, как устанавливать дополнительные программы сторонних производителей (crossref:ports[ports, Установка приложений. порты и пакеты]). -* Узнать, как устанавливать программы Linux (crossref:linuxemu[linuxemu, Двоичная совместимость с Linux]). +.Поддерживаемые рабочие окружения +[options="header", cols="1,1,1"] +|=== +| Имя | Лицензия | Пакет -Чтобы получить дополнительную информацию о настройке мультимедиа среды, прочтите crossref:multimedia[multimedia, Мультимедиа]. Если вам нужна электронная почта, обратитесь к crossref:mail[mail, Электронная почта]. +| KDE Plasma +| GPL 2.0 или более поздняя +| x11/kde -[[desktop-browsers]] -== Браузеры +| GNOME +| GPL 2.0 или более поздняя +| x11/gnome -FreeBSD поставляется без предустановленного браузера. Вместо этого, в категории http://www.FreeBSD.org/ru/ports/[www] коллекции портов содержится множество готовых к установке браузеров. Если у вас нет времени компилировать все (в некоторых случаях это может занять очень много времени), многие из них доступны в виде пакетов. +| XFCE +| GPL, LGPL, BSD +| x11-wm/xfce4 -В KDE и GNOME уже есть HTML браузеры. Обратитесь к crossref:x11[x11-wm,Графические оболочки] за подробной информацией об установке этих полноценных десктопов. +| MATE +| GPL 2.0, LGPL 2.0 +| x11/mate -Если вы ищете облегченный браузер, попробуйте package:www/dillo[], package:www/links[], или package:www/w3m[] из коллекции портов. +| Cinnamon +| GPL 2.0 или более поздняя +| x11/cinnamon -Этот раздел рассказывает о следующих приложениях: +| LXQT +| GPL, LGPL +| x11-wm/lxqt -[.informaltable] -[cols="1,1,1,1", frame="none", options="header"] -|=== -| Название приложения -| Потребность в ресурсах -| Установка из портов -| Основные зависимости - -|Mozilla -|большая -|тяжелая -|Gtk+ - -|Opera -|малая -|легкая -|Доступны версии для FreeBSD и Linux. Для Linux версии необходимо наличие Linux Binary Compatibility и linux-openmotif - -|Firefox -|средняя -|тяжелая -|Gtk+ - -|Konqueror -|средняя -|тяжелая -|Библиотеки KDE |=== -=== Mozilla +[[kde-environment]] +=== KDE Plasma + +KDE Plasma — это удобная среда рабочего стола. Она предоставляет набор приложений с единообразным внешним видом и поведением, стандартизированным меню и панелями инструментов, сочетаниями клавиш, цветовыми схемами, поддержкой интернационализации и централизованной настройкой рабочего стола через диалоговые окна. Дополнительную информацию о KDE можно найти на сайте link:https://kde.org/[KDE homepage]. Информацию, специфичную для FreeBSD, см. на link:https://freebsd.kde.org/[FreeBSD homepage at KDE]. + +[[kde-meta-install]] +==== Установка мета-пакета KDE Plasma + +Для установки мета-пакета KDE Plasma, включающего KDE Frameworks, Plasma Desktop и Applications, выполните: -Mozilla это наиболее современный и стабильный браузер; он полностью портирован на FreeBSD. Его достоинство в высокой совместимости со стандартами HTML. В нем есть почтовая и новостная программы. В нем даже найдется редактор HTML, если вам потребуется самостоятельно написать несколько веб-страничек. Пользователи man:getenv[3] найдут общие черты с Communicator, поскольку оба браузера имеют одну основу. +[source, shell] +.... +# pkg install kde +.... -На медленных компьютерах с частотой CPU меньше 233MHz или с памятью меньше 64MB, Mozilla требует слишком много ресурсов, чтобы быть удобной в использовании. Вместо нее вы можете обратить внимание на браузер Opera, описанный ниже в этой главе. +[[kde-minimal-install]] +==== Минимальная установка KDE Plasma -Если вы не можете или не хотите компилировать Mozilla по какой-то причине, команда FreeBSD GNOME уже сделала это для вас. Просто установите пакет из сети с помощью: +Для установки минимальной версии KDE Plasma выполните: -[source,shell] +[source, shell] .... -# pkg_add -r mozilla +# pkg install plasma6-plasma .... -Если пакет недоступен, но у вас достаточно времени и места на диске, вы можете скачать исходные тексты для Mozilla, скомпилировать их и установить в вашу систему. Это делается так: +[TIP] +==== +Эта установка *действительно* минимальна. Konsole необходимо установить отдельно, выполнив: -[source,shell] +[source, shell] .... -# cd /usr/ports/www/mozilla -# make install clean +# pkg install konsole .... +==== -Порт Mozilla проверяет правильность установки путем запуска регистрации chrome с привилегиями пользователя `root`. Если вы хотите загрузить некоторые дополнения, например курсоры мыши, потребуется запустить Mozilla под `root` для их правильной установки. +[[kde-configuration]] +==== Настройка KDE Plasma -После завершения установки Mozilla, больше не требуется работать под `root`. Вы можете запустить Mozilla в качестве браузера, набрав: +KDE Plasma использует man:dbus-daemon[1] в качестве шины сообщений и для аппаратной абстракции. Это приложение автоматически устанавливается как зависимость KDE Plasma. -[source,shell] +Включите службу D-BUS в `/etc/rc.conf` для запуска при загрузке системы: + +[source, shell] .... -% mozilla +# sysrc dbus_enable="YES" .... -Вы можете также запустить непосредственно программу чтения почты и новостей, как показано ниже: +KDE Plasma требует увеличенного размера сообщений для оптимальной производительности. + +Добавьте следующие строки в man:sysctl.conf[5]: -[source,shell] +[.programlisting] .... -% mozilla -mail +sysctl net.local.stream.recvspace=65536 +sysctl net.local.stream.sendspace=65536 .... -[[moz-java-plugin]] -=== Mozilla и Java(TM) +Чтобы применить изменения, выполните следующую команду от имени root или просто перезагрузите систему: + +[source, shell] +.... +# sysctl -f /etc/sysctl.conf +.... -Установка Mozilla проста, но к сожалению, установка Mozilla с поддержкой дополнений, таких как Java(TM) и Macromedia(R) Flash(TM) отнимает и время и место на диске. +[[kde-start]] +==== Запуск KDE Plasma -Первое, что нужно сделать - загрузить файлы, которые будут использоваться с Mozilla. Зайдите с помощью имеющегося веб браузера на http://www.sun.com/software/java2/download.html[http://www.sun.com/software/java2/download.html] и создайте учетную запись на этом веб-сайте. Сохраните имя пользователя и пароль, они могут понадобиться в будущем. Загрузите копию файлов [.filename]#jdk-1_5_0-bin-scsl.zip# (JDK 5.0 SCSL Binaries) и [.filename]#jdk-1_5_0-src-scsl.zip# (JDK 5.0 SCSL Source) и поместите их в каталог [.filename]#/usr/ports/distfiles#, поскольку порт не может загрузить их автоматически в связи с лицензионными ограничениями. Загрузите с этого же сайта "java environment", http://javashoplm.sun.com/ECom/docs/Welcome.jsp?StoreId=22&PartDetailId=j2sdk-1.4.2_08-oth-JPR&SiteId=JSC&TransactionId=noreg[http://javashoplm.sun.com/ECom/docs/Welcome.jsp?StoreId=22&PartDetailId=j2sdk-1.4.2_08-oth-JPR&SiteId=JSC&TransactionId=noreg], файл [.filename]#j2sdk-1_4_2_08-linux-i586.bin#. Как и предыдущий, этот файл должен находиться в каталоге [.filename]#/usr/ports/distfiles/#. Загрузите копию "java patchkit" с http://www.eyesbeyond.com/freebsddom/java/jdk15.html[http://www.eyesbeyond.com/freebsddom/java/jdk15.html] и поместите ее в [.filename]#/usr/ports/distfiles/#. Наконец, установите порт package:java/jdk15[] при помощи стандартной команды `make install clean`. +Предпочтительным дисплейным менеджером для KDE Plasma является package:x11/sddm[]. Для установки package:x11/sddm[] выполните: -Запустите Mozilla и выберите пункт [.guimenuitem]#About Plug-ins# в меню menu:Help[]. В списке установленных плагинов должен присутствовать плагин Java(TM). +[source, shell] +.... +# pkg install sddm +.... -[[moz-flash-plugin]] -=== Mozilla и Macromedia(R) Flash(TM) plugin +Включите службу SDDM в `/etc/rc.conf` для автоматического запуска при загрузке системы: -Плагина Macromedia(R) Flash(TM) для FreeBSD не существует. Тем не менее, есть решение (обертка, wrapper) для запуска плагина для Linux. Это решение также поддерживает плагины для Adobe(R) Acrobat(R), RealPlayer и других. +[source, shell] +.... +# sysrc sddm_enable="YES" +.... -Установите порт package:www/linuxpluginwrapper[]. Он требует для работы достаточно большого порта package:emulators/linux_base[]. Следуя инструкциям, исправьте файл [.filename]#/etc/libmap.conf#! Примеры конфигураций вы можете найти в каталоге [.filename]#/usr/local/shared/examples/linuxpluginwrapper/#. +Язык клавиатуры можно настроить в SDDM, выполнив следующую команду (например, для испанского языка): -Установите порт package:www/mozilla[], если Mozilla еще не установлена. +[source, shell] +.... +# sysrc sddm_lang="es_ES" +.... -Теперь просто запустите Mozilla: +Второй способ запуска KDE Plasma — это ручной вызов man:startx[1]. Для этого необходимо добавить следующую строку в файл ~/.xinitrc: -[source,shell] +[source, shell] .... -% mozilla & +% echo "exec dbus-launch --exit-with-x11 ck-launch-session startplasma-x11" > ~/.xinitrc .... -И войдите в пункт [.guimenuitem]#About Plug-ins# меню menu:Help[]. Должен появиться список со всеми доступными плагинами. +[[gnome-environment]] +=== GNOME -[NOTE] -==== -Плагин linuxpluginwrapper работает только на архитектуре i386(TM). -==== +GNOME — это удобная графическая среда рабочего стола. Она включает панель для запуска приложений и отображения состояния, рабочий стол, набор инструментов и приложений, а также набор соглашений, которые упрощают взаимодействие и обеспечение согласованности между приложениями. -=== Opera +[[gnome-meta-install]] +==== Установка метапакета GNOME -Opera это очень быстрый, полноценный и совместимый со стандартами браузер. Он также идет в комплекте с почтовой и новостной программами, клиентом IRC, модулем чтения RSS/Atom и другими. Несмотря на все это, браузер Opera относительно легок и быстр. Он поставляется в двух вариантах: "родная" для FreeBSD версия и версия, запускаемая в режиме эмуляции Linux. +Для установки метапакета GNOME с рабочим столом GNOME и приложениями выполните: -Для работы в сети с помощью FreeBSD версии Opera установите пакет: +[source, shell] +.... +# pkg install gnome +.... -[source,shell] +[[gnome-minimal-install]] +==== Минимальная установка GNOME + +Для установки мета-пакета GNOME-lite с облегчённой версией рабочего стола GNOME, содержащей только основы, выполните: + +[source, shell] .... -# pkg_add -r opera +# pkg install gnome-lite .... -На некоторых серверах FTP нет всех пакетов, но те же результаты можно получить с помощью коллекции портов, набрав: +[[gnome-configuration]] +==== Настройка GNOME -[source,shell] +Для работы GNOME необходимо подключить `/proc`. Добавьте следующую строку в `/etc/fstab`, чтобы автоматически подключать эту файловую систему при загрузке системы: + +[.programlisting] .... -# cd /usr/ports/www/opera -# make install clean +# Device Mountpoint FStype Options Dump Pass# +proc /proc procfs rw 0 0 .... -Для установки Linux версии Opera, замените `opera` на `linux-opera` в примере выше. Версия для Linux полезна в ситуации, когда требуются плагины, доступные только для Linux, такие как Adobe Acrobat Reader(R). Во всех других отношениях версии для FreeBSD и Linux являются функционально идентичными. +GNOME использует man:dbus-daemon[1] в качестве шины сообщений и для аппаратной абстракции. Это приложение автоматически устанавливается как зависимость GNOME. -=== Firefox +Включите службу D-BUS в `/etc/rc.conf` для запуска при загрузке системы: + +[source, shell] +.... +# sysrc dbus_enable="YES" +.... + +[[gnome-start]] +==== Запуск GNOME -Firefox это браузер следующего поколения, основанный на коде Mozilla. Mozilla это полный набор приложений, таких как браузер, почтовый клиент, чат клиент и многое другое. Firefox это всего лишь браузер, что делает его меньше и быстрее. +GNOME Display Manager — это предпочтительный дисплейный менеджер для GNOME. GDM устанавливается как часть пакета GNOME. -Установите пакет, выполнив: +Включите GDM в `/etc/rc.conf` для запуска при загрузке системы: -[source,shell] +[source, shell] .... -# pkg_add -r firefox +# sysrc gdm_enable="YES" .... -Вы можете также использовать коллекцию портов, если предпочитаете сборку из исходных текстов: +Второй способ запуска GNOME — это ручной вызов man:startx[1]. Для этого необходимо добавить следующую строку в файл `~/.xinitrc`: -[source,shell] +[source, shell] .... -# cd /usr/ports/www/firefox -# make install clean +% echo "exec gnome-session" > ~/.xinitrc .... -=== Konqueror +[[xfce-environment]] +=== XFCE -Konqueror это часть KDE, но может быть использован и отдельно от KDE, путем установки package:x11/kdebase3[]. Konqueror это гораздо больше чем просто браузер, это также менеджер файлов и программа просмотра мультимедиа. +XFCE — это среда рабочего стола, основанная на GTK+, легковесная и предоставляющая простой, эффективный и удобный рабочий стол. Она полностью настраиваема, имеет главную панель с меню, апплетами и запусками приложений, предоставляет файловый менеджер и менеджер звука, а также поддерживает темы. Благодаря своей быстроте, легкости и эффективности, она идеально подходит для старых или медленных машин с ограниченными ресурсами памяти. -Konqueror поставляется с набором плагинов, доступных из package:misc/konq-plugins[]. +[[xfce-install]] +==== Установка XFCE -Konqueror поддерживает также Flash(TM), документация How To для него доступна по адресу http://freebsd.kde.org/howto.php[http://freebsd.kde.org/howto.php]. +Для установки метапакета XFCE выполните: -[[desktop-productivity]] -== Бизнес приложения +[source, shell] +.... +# pkg install xfce +.... -В начале работы новые пользователи зачастую стремятся найти хороший офисный пакет или удобный текстовый процессор. Хотя некоторые crossref:x11[x11-wm,десктопы], такие как KDE, поставляются с готовым офисным пакетом, приложения по умолчанию не существует. В FreeBSD есть все необходимое, кроме графической среды. +[[xfce-configuration]] +==== Настройка XFCE -Этот раздел описывает следующие приложения: +XFCE использует man:dbus-daemon[1] для шины сообщений и абстракции оборудования. Это приложение автоматически устанавливается как зависимость XFCE. -[.informaltable] -[cols="1,1,1,1", frame="none", options="header"] -|=== -| Название приложения -| Потребность в ресурсах -| Установка из портов -| Основные зависимости - -|KOffice -|малая -|тяжелая -|KDE - -|AbiWord -|малая -|легкая -|Gtk+ или GNOME - -|The Gimp -|малая -|тяжелая -|Gtk+ - -|OpenOffice.org -|большая -|очень тяжелая -|JDK(TM) 1.4, Mozilla -|=== +Включите D-BUS в `/etc/rc.conf` для запуска при загрузке системы: -=== KOffice +[source, shell] +.... +# sysrc dbus_enable="YES" +.... -Сообщество KDE предоставляет графическую среду с офисным пакетом, который может быть использован вне KDE. Он включает четыре стандартных компонента, встречающиеся и в других офисных пакетах. Текстовый процессор KWord, программа электронных таблиц KSpread, KPresenter для создания презентаций и программа векторной графики Kontour. +[[xfce-start]] +==== Запуск XFCE -Перед установкой последней версии KOffice, убедитесь в наличии свежей версии KDE. +package:x11/lightdm[] — это дисплейный менеджер, поддерживающий различные технологии отображения. Он является хорошим выбором, так как очень легковесен, требует мало памяти и обладает высокой производительностью. -Для установки KOffice из пакета, выполните следующую команду: +Для установки выполните: -[source,shell] +[source, shell] .... -# pkg_add -r koffice +# pkg install lightdm lightdm-gtk-greeter .... -Если пакет недоступен, используйте коллекцию портов. Например, для установки KOffice для KDE3, выполните: +Включите lightdm в `/etc/rc.conf` для автоматического запуска при загрузке системы: -[source,shell] +[source, shell] .... -# cd /usr/ports/editors/koffice-kde3 -# make install clean +# sysrc lightdm_enable="YES" .... -=== AbiWord +Второй способ запустить XFCE — вручную вызвать man:startx[1]. Для этого в `~/.xinitrc` должна быть следующая строка: + +[source, shell] +.... +% echo '. /usr/local/etc/xdg/xfce4/xinitrc' > ~/.xinitrc +.... -AbiWord это свободно распространяемый текстовый процессор, по внешнему виду и поведению очень похожий на Microsoft(R) Word. Он подходит для набора документов, писем, отчетов, напоминаний и так далее. Он очень быстр, содержит много новшеств и очень удобен в использовании. +[[mate-environment]] +=== MATE -AbiWord может импортировать и экспортировать множество файловых форматов, включая патентованный Microsoft [.filename]#.doc#. +Среда рабочего стола MATE является продолжением GNOME 2. Она предоставляет интуитивно понятную и привлекательную среду рабочего стола, использующую традиционные метафоры. -AbiWord доступен в виде пакета. Вы можете установить его так: +[[mate-meta-install]] +==== Установка метапакета MATE -[source,shell] +Для установки метапакета MATE, который включает в себя MATE Desktop с дополнительными приложениями, такими как текстовый редактор, менеджер архивов и т.д., выполните: + +[source, shell] .... -# pkg_add -r abiword +# pkg install mate .... -Если пакет недоступен, он может быть собран из коллекции портов, которая должна быть свежей. Это можно сделать командой: +[[mate-minimal-install]] +==== Минимальная установка MATE + +Чтобы установить мета-пакет MATE lite с облегчённой версией рабочего стола MATE, содержащий только основы, выполните: -[source,shell] +[source, shell] .... -# cd /usr/ports/editors/abiword -# make install clean +# pkg install mate-base .... -=== GIMP +[[mate-configuration]] +==== Настройка MATE -Для создания и редактирования изображений есть продвинутая программа GIMP. Она может быть использована как простая программа рисования и как программа обработки фотографий. Поддерживается большое количество плагинов и предоставлен интерфейс для скриптов. GIMP может читать и записывать файлы многих форматов. Есть интерфейс со сканерами и планшетами. +MATE требует подключения `/proc`. Добавьте следующую строку в `/etc/fstab`, чтобы автоматически подключать эту файловую систему при загрузке системы: -Вы можете установить пакет, выполнив эту команду: +[.programlisting] +.... +# Device Mountpoint FStype Options Dump Pass# +proc /proc procfs rw 0 0 +.... -[source,shell] +MATE использует man:dbus-daemon[1] для шины сообщений и абстракции оборудования. Это приложение автоматически устанавливается как зависимость MATE. Для запуска D-BUS при загрузке системы включите его в `/etc/rc.conf`: + +[source, shell] .... -# pkg_add -r gimp +# sysrc dbus_enable="YES" .... -Если на вашем сервере FTP нет этого пакета, вы можете использовать коллекцию портов. Категория http://www.FreeBSD.org/ru/ports/[graphics] коллекции портов содержит также раздел Руководство Gimp. Здесь показано, как его установить: +[[mate-start]] +==== Запуск MATE + +package:x11/lightdm[] — это дисплейный менеджер, поддерживающий различные технологии отображения. Он является хорошим выбором, так как очень легковесен, требует мало памяти и обладает высокой производительностью. -[source,shell] +Для установки выполните: + +[source, shell] .... -# cd /usr/ports/graphics/gimp -# make install clean -# cd /usr/ports/graphics/gimp-manual-pdf -# make install clean +# pkg install lightdm lightdm-gtk-greeter .... -[NOTE] -==== -Категория http://www.FreeBSD.org/ru/ports/[graphics] коллекции портов содержит версию GIMP для разработчиков в package:graphics/gimp-devel[]. HTML версия Руководства Gimp находятся в package:graphics/gimp-manual-html[]. -==== +Включите lightdm в `/etc/rc.conf` для автоматического запуска при загрузке системы: -=== OpenOffice.org +[source, shell] +.... +# sysrc lightdm_enable="YES" +.... + +Второй способ запустить MATE — вручную вызвать man:startx[1]. Для этого необходимо добавить следующую строку в файл `~/.xinitrc`: + +[source, shell] +.... +% echo "exec dbus-launch --exit-with-x11 ck-launch-session mate-session" > ~/.xinitrc +.... + +[[cinnamon-environment]] +=== Cinnamon -OpenOffice.org включает все обязательные компоненты полноценного офисного пакета: текстовый процессор, программу электронных таблиц, программу управления презентациями и программу векторной графики. Интерфейс пользователя очень похож на другие офисные пакеты, возможен импорт и экспорт различных популярных файловых форматов. Приложение доступно в вариантах для множества разных языков, включая интерфейсы, проверку орфографии и словари. +Cinnamon — это UNIX(R)-совместимая рабочая среда, которая предоставляет передовые инновационные функции и традиционный пользовательский опыт. Компоновка рабочего стола похожа на Gnome 2. Базовые технологии являются ответвлением от Gnome Shell. Основной акцент сделан на том, чтобы пользователи чувствовали себя как дома, предоставляя им простую и комфортную рабочую среду. -Текстовый процессор OpenOffice.org использует чистый XML формат файлов для увеличения переносимости и гибкости. Программа для работы с текстовыми таблицами предоставляет макроязык и может работать с внешними базами данных. OpenOffice.org уже стабильна и существует в версиях для Windows(R), Solaris(TM), Linux, FreeBSD, и Mac OS(R) X. Дополнительную информацию об OpenOffice.org можно найти на http://www.openoffice.org/[веб сайте OpenOffice.org]. Получить специфичную для FreeBSD информацию и загрузить пакеты можно с веб сайта команды портирования OpenOffice на FreeBSD (http://porting.openoffice.org/freebsd/[FreeBSD OpenOffice.org Porting Team]). +[[cinnamon-install]] +==== Установка Cinnamon -Для установки OpenOffice.org, выполните: +Для установки пакета Cinnamon выполните: -[source,shell] +[source, shell] .... -# pkg_add -r openoffice +# pkg install cinnamon .... -[NOTE] -==== -Эта операция должна работать для любого релиза (-RELEASE) FreeBSD. Если вы используете иные версии (-STABLE, -CURRENT), нужный пакет может быть загружен с сайта группы поддержки OpenOffice.org и затем установлен при помощи man:pkg_add[1]. На сайте вы найдете как последний стабильный релиз, так и текущую версию, находящуюся в разработке. -==== +[[cinnamon-configuration]] +==== Настройка Cinnamon -После установки пакета просто наберите следующую команду для запуска OpenOffice.org: +Для работы Cinnamon требуется подключенный `/proc`. Добавьте следующую строку в `/etc/fstab`, чтобы автоматически подключать эту файловую систему при загрузке системы: -[source,shell] +[.programlisting] .... -% openoffice.org +# Device Mountpoint FStype Options Dump Pass# +proc /proc procfs rw 0 0 .... -[NOTE] -==== -Во время первого запуска, вам будут заданы несколько вопросов и в вашей домашней директории будет создан каталог [.filename]#.openoffice.org2#. -==== +Cinnamon использует man:dbus-daemon[1] для шины сообщений и абстракции оборудования. Это приложение автоматически устанавливается как зависимость Cinnamon. Для запуска D-BUS при загрузке системы включите его в `/etc/rc.conf`: + +[source, shell] +.... +# sysrc dbus_enable="YES" +.... + +[[cinnamon-start]] +==== Запуск Cinnamon -Если пакеты OpenOffice.org недоступны, можно выбрать компиляцию порта. Однако, вы должны помнить, что это потребует много места на диске и компиляция будет довольно долгой. +package:x11/lightdm[] — это дисплейный менеджер, поддерживающий различные технологии отображения. Он является хорошим выбором, так как очень легковесен, требует мало памяти и обладает высокой производительностью. -[source,shell] +Для установки выполните: + +[source, shell] .... -# cd /usr/ports/editors/openoffice.org-2.0 -# make install clean +# pkg install lightdm lightdm-gtk-greeter .... -[NOTE] -==== -Если вы хотите собрать локализованную версию, то вместо предыдущей командной строки используйте следующее: +Включите lightdm в `/etc/rc.conf` для автоматического запуска при загрузке системы: -[source,shell] +[source, shell] .... -# make LOCALIZED_LANG=your_language install clean +# sysrc lightdm_enable="YES" .... -Вам следует изменить _your_language_ на корректный ISO код языка. Список поддерживаемых языковых кодов доступен в файле [.filename]#files/Makefile.localized#, расположенный в директории порта. -==== +Второй способ запустить Cinnamon — вручную вызвать man:startx[1]. Для этого необходимо добавить следующую строку в файл `~/.xinitrc`: + +[source, shell] +.... +% echo "exec dbus-launch --exit-with-x11 ck-launch-session cinnamon-session" > ~/.xinitrc +.... + +[[lxqt-environment]] +=== LXQT -После того, как это было сделано OpenOffice.org может быть запущен командой: +LXQt — это современная, простая в использовании и быстрая среда рабочего стола, основанная на технологиях Qt. Она создана для пользователей, которые ценят простоту, скорость и интуитивно понятный интерфейс. В отличие от большинства сред рабочего стола, LXQt также хорошо работает на менее производительных компьютерах. -[source,shell] +[[lxqt-install]] +==== Установка LXQT + +Чтобы установить метапакет LXQT, выполните: + +[source, shell] .... -% openoffice.org +# pkg install lxqt .... -[[desktop-viewers]] -== Программы просмотра документов +[[lxqt-configuration]] +==== Настройка LXQT + +LXQT требует подключения `/proc`. Добавьте следующую строку в `/etc/fstab`, чтобы автоматически подключать эту файловую систему при загрузке системы: + +[.programlisting] +.... +# Device Mountpoint FStype Options Dump Pass# +proc /proc procfs rw 0 0 +.... -Некоторые новые форматы документов приобрели большую популярность. Стандартные программы для их просмотра могут отсутствовать в базовой системе. В этом разделе мы увидим, как их установить. +LXQT использует man:dbus-daemon[1] в качестве шины сообщений и для аппаратной абстракции. Это приложение автоматически устанавливается как зависимость LXQT. -В разделе говорится о следующих приложениях: +Включите D-BUS в `/etc/rc.conf` для запуска при загрузке системы: -[.informaltable] -[cols="1,1,1,1", frame="none", options="header"] +[source, shell] +.... +# sysrc dbus_enable="YES" +.... + +[[lxqt-start]] +==== Запуск LXQT + +Предпочтительным дисплейным менеджером для LXQT является package:x11/sddm[]. Для установки package:x11/sddm[] выполните: + +[source, shell] +.... +# pkg install sddm +.... + +Включите службу SDDM в `/etc/rc.conf` для автоматического запуска при загрузке системы: + +[source, shell] +.... +# sysrc sddm_enable="YES" +.... + +Язык клавиатуры можно настроить в SDDM, выполнив следующую команду (например, для испанского): + +[source, shell] +.... +# sysrc sddm_lang="es_ES" +.... + +Второй способ запуска LXQT — вручную вызвать man:startx[1]. Для этого потребуется добавить следующую строку в `~/.xinitrc`: + +[source, shell] +.... +% echo "exec dbus-launch --exit-with-x11 ck-launch-session startlxqt" > ~/.xinitrc +.... + +[[desktop-browsers]] +== Браузеры + +В этом разделе описано, как установить и настроить некоторые популярные веб-браузеры в системе FreeBSD — от полнофункциональных браузеров с высоким потреблением ресурсов до текстовых браузеров с пониженным использованием ресурсов. + +.Поддерживаемые браузеры +[options="header", cols="1,1,1,1"] |=== -| Название приложения -| Потребность в ресурсах -| Установка из портов -| Основные зависимости - -|Acrobat Reader(R) -|малая -|легкая -|Linux Binary Compatibility - -|gv -|малая -|легкая -|Xaw3d - -|Xpdf -|малая -|легкая -|FreeType - -|GQview -|малая -|легкая -|Gtk+ или GNOME +| Имя | Лицензия | Пакет | Необходимые ресурсы + +| Firefox +| MPL 2.0 +| package:www/firefox[] +| Много + +| Chromium +| BSD-3 и другие +| package:www/chromium[] +| Много + +| Браузер Iridium +| BSD-3 и другие +| package:www/iridium-browser[] +| Много + +| Falkon +| MPL 2.0 +| package:www/falkon-qtonly[] +| Много + +| Konqueror +| GPL 2.0 или более поздняя +| package:x11-fm/konqueror[] +| Средне + +| Gnome Web (Epiphany) +| GPL 3.0 или новее +| package:www/epiphany[] +| Средне + +| qutebrowser +| GPL 3.0 или новее +| package:www/qutebrowser[] +| Средне + +| Dillo +| GPL 3.0 или новее +| package:www/dillo2[] +| Мало + +| Ссылки +| GPL 2.0 или более поздняя +| package:www/links[] +| Мало + +| w3m +| MIT +| package:www/w3m[] +| Мало + |=== -=== Acrobat Reader(R) +[[firefox]] +=== Firefox + +Firefox — это браузер с открытым исходным кодом, который включает в себя движок отображения HTML, соответствующий стандартам, вкладки, блокировку всплывающих окон, расширения, улучшенную безопасность и многое другое. Firefox основан на кодовой базе Mozilla. + +Для установки пакета последней выпущенной версии Firefox выполните: + +[source, shell] +.... +# pkg install firefox +.... + +Для установки Firefox Extended Support Release (ESR) выполните: + +[source, shell] +.... +# pkg install firefox-esr +.... + +[[chromium]] +=== Chromium -Сейчас многие документы распространяются в формате PDF, аббревиатура для "Portable Document Format". Одна из рекомендованных программ для просмотра этого типа документов, это Acrobat Reader(R), выпущенный Adobe для Linux. Поскольку FreeBSD может запускать исполняемые файлы Linux, он доступен также и для FreeBSD. +Chromium — это проект браузера с открытым исходным кодом, целью которого является создание более безопасного, быстрого и стабильного веб-браузера. Chromium поддерживает вкладки, блокировку всплывающих окон, расширения и многое другое. Chromium — это проект с открытым исходным кодом, на основе которого создан браузер Google Chrome. -Для установки Acrobat Reader(R) 7 из Коллекции портов выполните: +Чтобы установить Chromium, выполните: -[source,shell] +[source, shell] .... -# cd /usr/ports/print/acroread7 -# make install clean +# pkg install chromium .... -Пакет acroread7 недоступен из-за лицензионных ограничений. +[NOTE] +==== +Исполняемый файл Chromium находится по пути [.filename]#/usr/local/bin/chrome#, а не [.filename]#/usr/local/bin/chromium#. +==== -=== gv +[[iridium]] +=== Браузер Iridium -gv это программа просмотра PostScript(R) и PDF. Она разработана на основе ghostview, но выглядит лучше благодаря библиотеке Xaw3d. Она быстра, а ее интерфейс несложен. У gv есть множество функций, таких как выбор ориентации, размера бумаги, масштаба и сглаживание. Почти любая операция может быть выполнена как с клавиатуры, так и мышью. +Iridium — это бесплатный, открытый и свободный модифицированный браузер на основе кодовой базы Chromium, в котором усилена защита приватности в нескольких ключевых аспектах. Автоматическая передача частичных запросов, ключевых слов и метрик в центральные службы блокируется и происходит только с согласия пользователя. -Для установки gv из пакета, выполните: +Для установки Iridium выполните: -[source,shell] +[source, shell] .... -# pkg_add -r gv +# pkg install iridium-browser .... -Если вы не можете получить пакет, используйте коллекцию портов: +[[falkon]] +=== Falkon -[source,shell] +Falkon — это относительно новый и очень быстрый браузер на основе QtWebEngine. Он стремится быть легковесным веб-браузером, доступным на всех основных платформах. Falkon обладает всеми стандартными функциями, которые можно ожидать от веб-браузера, включая закладки, историю (доступные также в боковой панели) и вкладки. Кроме того, плагин AdBlock может блокировать рекламу, Click2Flash — Flash-содержимое, а SSL Manager позволяет редактировать локальную базу данных сертификатов CA. + +Для установки Falkon выполните: + +[source, shell] .... -# cd /usr/ports/print/gv -# make install clean +# pkg install falkon .... -=== Xpdf +[[konqueror]] +=== Konqueror -Если вам нужна небольшая программа просмотра PDF под FreeBSD, Xpdf это легкая и эффективная программа. Она требует очень небольшого количества ресурсов и очень стабильна. Используются стандартные шрифты X, Motif(R) или другие пакеты для X не нужны. +Konqueror — это не просто веб-браузер, он также является файловым менеджером и мультимедийным просмотрщиком. Он поддерживает WebKit, механизм визуализации, используемый многими современными браузерами, включая Chromium, а также собственный движок KHTML. -Для установки пакета Xpdf, выполните эту команду: +Чтобы установить Konqueror, выполните: -[source,shell] +[source, shell] .... -# pkg_add -r xpdf +# pkg install konqueror .... -Если пакет недоступен, или вы предпочитаете коллекцию портов, выполните: +[[gnome-web-epiphany]] +=== Gnome Web (Epiphany) -[source,shell] +Gnome Web (Epiphany) — это веб-браузер, разработанный для максимальной легкости и скорости, в ущерб многим функциям, присутствующим в других браузерах. + +Для установки Gnome Web (Epiphany) выполните: + +[source, shell] .... -# cd /usr/ports/graphics/xpdf -# make install clean +# pkg install epiphany .... -После завершения установки вы можете запустить Xpdf и использовать правую кнопку мыши для активации меню. +[[qutebrowser]] +=== qutebrowser + +Qutebrowser — это браузер с минимальным графическим интерфейсом, ориентированный на управление с клавиатуры. Он написан на Python и PyQt5 и распространяется как свободное программное обеспечение под лицензией GPL. + +Для установки qutebrowser выполните: -=== GQview +[source, shell] +.... +# pkg install qutebrowser +.... -GQview это программа для работы с изображениями. Вы можете просмотреть файл одним кликом, запустить внешний редактор, получить миниатюры и многое другое. Еще в нем есть слайд-шоу и несколько основных файловых операций. Вы можете управлять коллекциями изображений и легко находить дубликаты. В GQview изображения можно просматривать во весь экран, его можно адаптировать к разным языкам. +[[dillo]] +=== Dillo -Если вы хотите установить пакет GQview, выполните: +Dillo стремится быть мультиплатформенным альтернативным браузером, который отличается компактностью, стабильностью, удобством для разработчиков, практичностью, скоростью работы и расширяемостью. Эта новая, экспериментальная версия Dillo основана на инструментарии FLTK, а не на GTK1, и была существенно переработана. -[source,shell] +Для установки Dillo выполните: + +[source, shell] .... -# pkg_add -r gqview +# pkg install dillo2 .... -Если пакет недоступен, или вы предпочитаете использовать коллекцию портов, выполните: +[[links]] +=== Ссылки + +Веб-браузер, подобный lynx, с текстовым и графическим режимами, поддерживающий множество функций, таких как отображение таблиц, меню и т.д. -[source,shell] +Для установки Links выполните: + +[source, shell] .... -# cd /usr/ports/graphics/gqview -# make install clean +# pkg install links .... -[[desktop-finance]] -== Финансовые программы +[[w3m]] +=== w3m + +w3m — это программа для просмотра текстовых страниц (пейджер) и текстовый веб-браузер. Это приложение похоже на Lynx, но обладает рядом функций, которых нет в Lynx, таких как отображение таблиц и фреймов. + +Для установки w3m выполните: -Если по каким-то причинам вам нужно управлять своими финансами на десктопе FreeBSD, есть несколько мощных и простых в использовании приложений. Некоторые из них совместимы с широко распространенными форматами файлов, такими как документы Quicken или Excel. +[source, shell] +.... +# pkg install w3m +.... -В этом разделе говорится о следующих приложениях: +[[desktop-development]] +== Инструменты разработки -[.informaltable] -[cols="1,1,1,1", frame="none", options="header"] +Этот раздел описывает, как установить и настроить некоторые популярные инструменты разработки в системе FreeBSD. + +.Поддерживаемые инструменты разработки +[options="header", cols="1,1,1,1"] |=== -| Название приложения -| Потребность в ресурсах -| Установка из портов -| Основные зависимости - -|GnuCash -|малая -|тяжелая -|GNOME - -|Gnumeric -|малая -|тяжелая -|GNOME - -|Abacus -|малая -|легкая -|Tcl/Tk +| Имя | Лицензия | Пакет | Необходимые ресурсы + +| Visual Studio Code +| MIT +| package:editors/vscode[] +| Много + +| Qt Creator +| QtGPL +| package:devel/qtcreator[] +| Много + +| Kdevelop +| GPL 2.0 или более поздняя и LGPL 2.0 или более поздняя +| package:devel/kdevelop[] +| Много + +| Eclipse IDE +| EPL +| package:java/eclipse[] +| Много + +| Vim +| VIM +| package:editors/vim[] +| Мало + +| Neovim +| Apache 2.0 +| package:editors/neovim[] +| Мало + +| GNU Emacs +| GPL 3.0 или новее +| package:editors/emacs[] +| Мало + |=== -=== GnuCash +[[vs-code]] +=== Visual Studio Code + +Visual Studio Code — это инструмент, который сочетает простоту редактора кода с необходимыми для разработчиков возможностями цикла редактирования, сборки и отладки. Он предоставляет комплексную поддержку редактирования и отладки, модель расширяемости и лёгкую интеграцию с существующими инструментами. -GnuCash это часть проекта GNOME, который стремится предоставить дружественные к пользователю приложения с широким набором функций. С GnuCash вы можете отслеживать доходы и расходы, банковские счета или акции. Интуитивный интерфейс программы не мешает ей оставаться очень профессиональной. +Для установки Visual Studio Code выполните: -GnuCash предоставляет интеллектуальный журнал записей, иерархическую систему учетных записей, множество клавиатурных сокращений и метод автозавершения. Он может разбивать одну транзакцию на несколько частей, детализируя ее. GnuCash может импортировать и присоединять файлы Quicken QIF. Он также работает с основными международными форматами дат и валютами. +[source, shell] +.... +# pkg install vscode +.... -Для установки GnuCash в вашу систему, выполните: +[[qt-creator]] +=== Qt Creator -[source,shell] +Qt Creator — это кроссплатформенная IDE (интегрированная среда разработки), созданная с учетом потребностей разработчиков Qt. Функциональные возможности Qt Creator включают: + +* редактор кода с поддержкой C++, QML и ECMAscript; +* быстрые инструменты для навигации по коду; +* статическая проверка кода и подсказки по стилю во время набора; +* контекстно-зависимая справка; +* визуальный отладчик; +* интегрированный графический интерфейс и конструктор форм. + +Для установки Qt Creator выполните: + +[source, shell] .... -# pkg_add -r gnucash +# pkg install qtcreator .... -Если пакет недоступен, вы можете использовать коллекцию портов: +[[kdevelop]] +=== kdevelop + +Открытая, многофункциональная IDE с поддержкой расширений через плагины для языков программирования C/C++ и других. Основана на KDevPlatform, а также библиотеках KDE и Qt, и разрабатывается с 1998 года. -[source,shell] +Для установки kdevelop выполните: + +[source, shell] .... -# cd /usr/ports/finance/gnucash -# make install clean +# pkg install kdevelop .... -=== Gnumeric +[[eclipse]] +=== Eclipse IDE -Gnumeric это электронная таблица, часть графической среды GNOME. Она использует удобное автоматическое "угадывание" ввода пользователя в зависимости от формата ячейки и систему автозаполнения для множества последовательностей. Она может импортировать файлы нескольких популярных форматов, таких как Excel, Lotus 1-2-3, или Quattro Pro. Gnumeric работает с диаграммами через package:math/guppi[]. В ней множество встроенных функций, можно использовать обычные форматы ячеек: число, валюта, дата, время и многие другие. +Платформа Eclipse — это открытая расширяемая среда разработки (IDE) для чего угодно и в то же время ничего конкретного. Платформа Eclipse предоставляет строительные блоки и основу для создания и запуска интегрированных инструментов разработки программного обеспечения. Платформа Eclipse позволяет разработчикам инструментов независимо создавать инструменты, которые интегрируются с инструментами других разработчиков. -Для установки Gnumeric из пакета, введите: +Для установки Eclipse IDE выполните: -[source,shell] +[source, shell] .... -# pkg_add -r gnumeric +# pkg install eclipse .... -Если пакет недоступен, вы можете использовать коллекцию портов: +[[vim]] +=== Vim + +Vim — это высоконастраиваемый текстовый редактор, созданный для эффективного редактирования текста. Это улучшенная версия редактора vi, поставляемого с большинством UNIX-систем. + +Vim часто называют «редактором программиста», и он настолько полезен для программирования, что многие считают его полноценной IDE. Однако он предназначен не только для программистов. Vim идеально подходит для любого вида редактирования текста — от написания электронных писем до правки конфигурационных файлов. + +Для установки Vim выполните: -[source,shell] +[source, shell] .... -# cd /usr/ports/math/gnumeric -# make install clean +# pkg install vim .... -=== Abacus +[[neovim]] +=== Neovim -Abacus это небольшая и простая в использовании программа электронных таблиц. В ней много встроенных функций из нескольких областей, таких как статистика, финансы и математика. Она может импортировать и экспортировать файлы Excel. Abacus также может печатать PostScript(R). +Neovim представляет собой радикальный рефакторинг package:editors/vim[]. Это полная переработка кодовой базы с множеством улучшений, включая разумные настройки по умолчанию, встроенный эмулятор терминала, асинхронную архитектуру плагинов и мощные API, ориентированные на скорость и расширяемость. При этом сохраняется полная совместимость с почти всеми плагинами и скриптами Vim. -Для установки Abacus из пакета, выполните: +Для установки Neovim выполните: -[source,shell] +[source, shell] .... -# pkg_add -r abacus +# pkg install neovim .... -Если пакет недоступен, вы можете использовать коллекцию портов, выполнив: +[[gnu-emacs]] +=== GNU Emacs -[source,shell] +GNU Emacs — это расширяемый, настраиваемый, свободный текстовый редактор. В его основе лежит интерпретатор Emacs Lisp, диалекта языка программирования Lisp с расширениями для поддержки редактирования текста. + +Чтобы установить GNU Emacs, выполните: + +[source, shell] .... -# cd /usr/ports/deskutils/abacus -# make install clean +# pkg install emacs .... -[[desktop-summary]] -== Итоги +[[desktop-productivity]] +== Настольные офисные приложения + +Когда речь заходит о продуктивности, пользователи часто ищут офисный пакет или простой в использовании текстовый редактор. Хотя некоторые окружения рабочего стола, такие как crossref:desktop[kde-environment, KDE Plasma], предоставляют офисный пакет, стандартного пакета для продуктивности не существует. Для FreeBSD доступно несколько офисных пакетов и графических текстовых процессоров, независимо от установленных окружений рабочего стола. -Хотя FreeBSD популярна в основном среди провайдеров из-за стабильности и высокой производительности, на сегодняшний день она вполне готова к использованию в качестве десктопа. С несколькими тысячами приложений, доступных в виде http://www.FreeBSD.org/ru/where/[пакетов] или http://www.FreeBSD.org/ru/ports/[портов], вы можете создать прекрасный десктоп, отвечающий всем вашим потребностям. +В этом разделе показано, как установить следующее популярное программное обеспечение для повышения продуктивности, а также указано, является ли приложение ресурсоемким, требует ли оно много времени для компиляции из портов или имеет какие-либо значительные зависимости. -После первой установки десктопа, вы можете попробовать сделать шаг вперед с package:misc/instant-workstation[]. Этот "мета-порт" позволяет вам собрать типичный набор портов для рабочей станции. Вы можете настроить его, редактируя [.filename]#/usr/ports/misc/instant-workstation/Makefile#. Следуйте синтаксису существующего файла при добавлении и удалении портов, соберите порт как обычно. В конечном итоге, вы можете создать большой пакет, соответствующий вашему собственному десктопу, и установить его на другие рабочие станции! +.Поддерживаемые офисные пакеты для настольных компьютеров +[options="header", cols="1,1,1,1"] +|=== +| Имя | Лицензия | Пакет | Необходимые ресурсы + +| LibreOffice +| MPL 2.0 +| package:editors/libreoffice[] +| Много -Вот небольшой обзор всех графических приложений, о которых говорилось в этой главе: +| Calligra Suite +| LGPL и GPL +| package:editors/calligra[] +| Средне + +| AbiWord +| GPL 2.0 или более поздняя +| package:editors/abiword[] +| Средне -[.informaltable] -[cols="1,1,1", frame="none", options="header"] |=== -| Имя приложения -| Имя пакета -| Имя порта -|Mozilla -|`mozilla` -|package:www/mozilla[] +[[libreoffice]] +=== LibreOffice -|Opera -|`linux-opera` -|package:www/linux-opera[] +LibreOffice — это свободный офисный пакет, разрабатываемый http://www.documentfoundation.org/[The Document Foundation]. Он совместим с другими крупными офисными пакетами и доступен на различных платформах. Это переименованная форк Apache OpenOffice, включающая приложения, входящие в полный офисный пакет: текстовый процессор, электронные таблицы, программу для создания презентаций, графический редактор, систему управления базами данных и инструмент для создания и редактирования математических формул. LibreOffice доступен на множестве языков, а интернационализация охватывает интерфейсы, средства проверки орфографии и словари. Дополнительную информацию о LibreOffice можно найти на http://www.libreoffice.org/[libreoffice.org]. -|Firefox -|`firefox` -|package:www/firefox[] +Для установки LibreOffice выполните: -|KOffice -|`koffice-kde3` -|package:editors/koffice-kde3[] +[source, shell] +.... +# pkg install libreoffice +.... + +Пакет LibreOffice по умолчанию поставляется только на английском языке. Для получения локализованной версии LibreOffice необходимо установить языковой пакет. Например, для версии на испанском языке необходимо установить пакет package:editors/libreoffice-es[] с помощью команды: -|AbiWord -|`abiword` -|package:editors/abiword[] +[source, shell] +.... +# pkg install libreoffice-es +.... -|The GIMP -|`gimp` -|package:graphics/gimp1[] +[[calligra]] +=== Calligra -|OpenOffice.org -|`openoffice` -|package:editors/openoffice[] +Среда рабочего стола KDE Plasma включает офисный пакет, который можно установить отдельно от KDE Plasma. Calligra содержит стандартные компоненты, которые можно встретить в других офисных пакетах. Words — это текстовый процессор, Sheets — программа для работы с электронными таблицами, Stage предназначен для управления презентациями, а Karbon используется для создания графических документов. -|Acrobat Reader(R) -|`acroread` -|package:print/acroread7[] +Для установки Calligra выполните: -|gv -|`gv` -|package:print/gv[] +[source, shell] +.... +# pkg install calligra +.... -|Xpdf -|`xpdf` -|package:graphics/xpdf[] +[[abiword]] +=== AbiWord -|GQview -|`gqview` -|package:graphics/gqview[] +AbiWord — это бесплатная программа для обработки текстов, внешне и функционально схожая с Microsoft(R) Word. Она быстрая, обладает множеством функций и удобна в использовании. -|GnuCash -|`gnucash` -|package:finance/gnucash[] +AbiWord может импортировать или экспортировать множество форматов файлов, включая некоторые проприетарные, такие как Microsoft(R) [.filename]#.rtf#. -|Gnumeric -|`gnumeric` -|package:math/gnumeric[] +Для установки AbiWord выполните: -|Abacus -|`abacus` -|package:deskutils/abacus[] +[source, shell] +.... +# pkg install abiword +.... + +[[desktop-viewers]] +== Просмотрщики документов + +Некоторые новые форматы документов приобрели популярность со времен появления UNIX(R), и программы для их просмотра могут отсутствовать в базовой системе. В этом разделе показано, как установить следующие программы для просмотра документов: + +.Поддерживаемые программы для просмотра документов +[options="header", cols="1,1,1,1"] |=== +| Имя | Лицензия | Пакет | Необходимые ресурсы + +| Okular +| GPL 2.0 +| package:graphics/okular[] +| Много + +| Evince +| GPL 2.0 +| package:graphics/evince[] +| Средне + +| ePDFView +| GPL 2.0 +| package:graphics/epdfview[] +| Средне + +| Xpdf +| GPL 2.0 +| package:graphics/xpdf[] +| Мало + +| Zathura +| Zlib +| package:graphics/zathura[] +| Мало + +|=== + +[[okular]] +=== Okular + +Okular — это универсальный просмотрщик документов, часть проекта KDE Plasma. + +Okular сочетает в себе превосходную функциональность с универсальностью поддержки различных типов документов, таких как PDF, Postscript, DjVu, CHM, XPS, ePub и других. + +Чтобы установить Okular, выполните: + +[source, shell] +.... +# pkg install okular +.... + +[[evince]] +=== Evince + +Evince — это программа для просмотра документов в различных форматах, включая PDF и Postscript. Часть проекта GNOME. Цель Evince — заменить такие программы для просмотра документов, как ggv и gpdf, на одно простое приложение. + +Для установки Evince выполните: + +[source, shell] +.... +# pkg install evince +.... + +[[epdfview]] +=== ePDFView + +ePDFView — это легковесная программа для просмотра PDF-документов, использующая только библиотеки Gtk+ и Poppler. Цель ePDFView — создать простой просмотрщик PDF-документов, аналогичный Evince, но без использования библиотек GNOME. + +Для установки ePDFView выполните: + +[source, shell] +.... +# pkg install epdfview +.... + +[[xpdf]] +=== Xpdf + +Для пользователей, предпочитающих небольшой просмотрщик PDF в FreeBSD, Xpdf предоставляет легковесное и эффективное решение, требующее минимум ресурсов. Он использует стандартные шрифты X и не требует дополнительных инструментариев. + +Для установки Xpdf выполните: + +[source, shell] +.... +# pkg install xpdf +.... + +[[zathura]] +=== Zathura + +Zathura — это высоконастраиваемая и функциональная программа для просмотра документов. Она предоставляет минималистичный и компактный интерфейс, а также простоту использования, ориентированную в основном на взаимодействие с клавиатурой. + +Для установки zathura с поддержкой PDF выполните: + +[source, shell] +.... +# pkg install zathura zathura-pdf-mupdf +.... + +Кроме того, можно установить package:graphics/zathura-pdf-poppler[] для альтернативной поддержки PDF, package:graphics/zathura-ps[] для поддержки PostScript, package:graphics/zathura-djvu[] для поддержки DjVu и package:graphics/zathura-cb[] для поддержки комиксов. + +[[desktop-finance]] +== Финансы + +Для управления личными финансами на рабочем столе FreeBSD можно установить мощные и удобные приложения. Некоторые из них совместимы с распространёнными форматами файлов, такими как форматы, используемые Quicken и Excel. + +Этот раздел охватывает следующие программы: + +.Поддерживаемые программы для финансов +[options="header", cols="1,1,1,1"] +|=== +| Имя | Лицензия | Пакет | Необходимые ресурсы + +| KMyMoney +| GPL 2.0 +| package:finance/kmymoney[] +| Много + +| GnuCash +| GPL 2.0 и GPL 3.0 +| package:finance/gnucash[] +| Много + +|=== + +[[kmymoney]] +=== KMyMoney + +KMyMoney — это приложение для управления личными финансами, созданное сообществом KDE. KMyMoney стремится предоставить важные функции, которые можно встретить в коммерческих приложениях для управления финансами. Среди его особенностей — простота использования и поддержка двойной бухгалтерии. KMyMoney поддерживает импорт из стандартных файлов Quicken QIF, отслеживание инвестиций, работу с несколькими валютами и предоставляет множество отчетов. + +Для установки KMyMoney выполните: + +[source, shell] +.... +# pkg install kmymoney +.... + +[[gnucash]] +=== GnuCash + +GnuCash — это часть проекта GNOME, направленного на предоставление пользователям удобных, но мощных приложений. GnuCash позволяет отслеживать доходы и расходы, банковские счета и акции. Он сочетает интуитивно понятный интерфейс с профессиональным функционалом. + +GnuCash предоставляет умный регистр, иерархическую систему счетов, а также множество сочетаний клавиш и методов автодополнения. Он позволяет разделять одну транзакцию на несколько более детализированных частей. GnuCash поддерживает импорт и объединение файлов Quicken QIF. Также программа работает с большинством международных форматов дат и валют. + +Для установки GnuCash выполните: + +[source, shell] +.... +# pkg install gnucash +.... diff --git a/documentation/content/ru/books/handbook/desktop/_index.po b/documentation/content/ru/books/handbook/desktop/_index.po new file mode 100644 index 0000000000..28a84c522a --- /dev/null +++ b/documentation/content/ru/books/handbook/desktop/_index.po @@ -0,0 +1,2439 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-10-02 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookdesktop_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/desktop/_index.adoc:1 +#, no-wrap +msgid "This chapter demonstrates how to install numerous desktop environments, including web browsers, productivity software, document viewers, and financial software" +msgstr "Эта глава демонстрирует, как установить множество рабочих сред, включая веб-браузеры, офисные программы, средства просмотра документов и финансовое программное обеспечение" + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/desktop/_index.adoc:1 +#, no-wrap +msgid "Part II. Common Tasks" +msgstr "Часть II. Стандартные задачи" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/desktop/_index.adoc:1 +#, no-wrap +msgid "Chapter 8. Desktop Environments" +msgstr "Глава 8. Графические среды рабочего стола" + +#. type: Title == +#: documentation/content/en/books/handbook/desktop/_index.adoc:15 +#: documentation/content/en/books/handbook/desktop/_index.adoc:66 +#, no-wrap +msgid "Desktop Environments" +msgstr "Рабочие столы" + +#. type: Title == +#: documentation/content/en/books/handbook/desktop/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:58 +msgid "" +"While FreeBSD is popular as a server for its performance and stability, it " +"is also well suited for day-to-day use as a desktop. With over {numports} " +"applications available in the FreeBSD ports tree, it is straightforward to " +"build a customized desktop that can run a wide variety of desktop " +"applications. This chapter demonstrates how to install popular desktop " +"environments as well as desktop applications such as web browsers, " +"productivity software, document viewers, and financial software." +msgstr "" +"Хотя FreeBSD популярна в качестве сервера благодаря своей производительности " +"и стабильности, она также отлично подходит для повседневного использования в " +"качестве настольной системы. Более чем {numports} приложений, доступных в " +"дереве портов FreeBSD, позволяют легко создать настроенный рабочий стол, " +"способный запускать широкий спектр настольных приложений. В этой главе " +"показано, как установить популярные окружения рабочего стола, а также " +"настольные приложения, такие как веб-браузеры, офисные программы, средства " +"просмотра документов и финансовое ПО." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:60 +msgid "Prerequisites:" +msgstr "Предварительные требования:" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:62 +msgid "" +"Readers of this chapter should already understand how to install either the " +"crossref:x11[x11,X Window System] or crossref:wayland[wayland,Wayland] on " +"FreeBSD." +msgstr "" +"Читатели этой главы уже должны знать, как установить либо crossref:x11[x11,X " +"Window System], либо crossref:wayland[wayland,Wayland] в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:64 +msgid "" +"Readers are instructed throughout this chapter to install official " +"packages. Refer to the section on crossref:ports[ports-using,using the " +"ports collection] to build customized packages from ports." +msgstr "" +"В этой главе читателям рекомендуется устанавливать официальные пакеты. Для " +"сборки настраиваемых пакетов из портов обратитесь к разделу " +"crossref:ports[ports-using,использование коллекции портов]." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:70 +msgid "" +"This section describes how to install and configure some popular desktop " +"environments on a FreeBSD system. A desktop environment can range from a " +"simple window manager to a complete suite of desktop applications." +msgstr "" +"Этот раздел описывает, как установить и настроить некоторые популярные " +"графические среды на системе FreeBSD. Графическая среда может варьироваться " +"от простого оконного менеджера до полного набора приложений для рабочего " +"стола." + +#. type: Block title +#: documentation/content/en/books/handbook/desktop/_index.adoc:71 +#, no-wrap +msgid "Supported desktop environments" +msgstr "Поддерживаемые рабочие окружения" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:74 +#: documentation/content/en/books/handbook/desktop/_index.adoc:550 +#: documentation/content/en/books/handbook/desktop/_index.adoc:756 +#: documentation/content/en/books/handbook/desktop/_index.adoc:911 +#: documentation/content/en/books/handbook/desktop/_index.adoc:993 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1102 +#, no-wrap +msgid "Name" +msgstr "Имя" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:74 +#: documentation/content/en/books/handbook/desktop/_index.adoc:550 +#: documentation/content/en/books/handbook/desktop/_index.adoc:756 +#: documentation/content/en/books/handbook/desktop/_index.adoc:911 +#: documentation/content/en/books/handbook/desktop/_index.adoc:993 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1102 +#, no-wrap +msgid "License" +msgstr "Лицензия" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:76 +#: documentation/content/en/books/handbook/desktop/_index.adoc:550 +#: documentation/content/en/books/handbook/desktop/_index.adoc:756 +#: documentation/content/en/books/handbook/desktop/_index.adoc:911 +#: documentation/content/en/books/handbook/desktop/_index.adoc:993 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1102 +#, no-wrap +msgid "Package" +msgstr "Пакет" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:77 +#: documentation/content/en/books/handbook/desktop/_index.adoc:103 +#, no-wrap +msgid "KDE Plasma" +msgstr "KDE Plasma" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:78 +#: documentation/content/en/books/handbook/desktop/_index.adoc:82 +#: documentation/content/en/books/handbook/desktop/_index.adoc:94 +#: documentation/content/en/books/handbook/desktop/_index.adoc:574 +#: documentation/content/en/books/handbook/desktop/_index.adoc:594 +#: documentation/content/en/books/handbook/desktop/_index.adoc:925 +#, no-wrap +msgid "GPL 2.0 or later" +msgstr "GPL 2.0 или более поздняя" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:80 +#, no-wrap +msgid "x11/kde" +msgstr "x11/kde" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:81 +#: documentation/content/en/books/handbook/desktop/_index.adoc:205 +#, no-wrap +msgid "GNOME" +msgstr "GNOME" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:84 +#, no-wrap +msgid "x11/gnome" +msgstr "x11/gnome" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:85 +#: documentation/content/en/books/handbook/desktop/_index.adoc:274 +#, no-wrap +msgid "XFCE" +msgstr "XFCE" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:86 +#, no-wrap +msgid "GPL, LGPL, BSD" +msgstr "GPL, LGPL, BSD" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:88 +#, no-wrap +msgid "x11-wm/xfce4" +msgstr "x11-wm/xfce4" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:89 +#: documentation/content/en/books/handbook/desktop/_index.adoc:331 +#, no-wrap +msgid "MATE" +msgstr "MATE" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:90 +#, no-wrap +msgid "GPL 2.0, LGPL 2.0" +msgstr "GPL 2.0, LGPL 2.0" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:92 +#, no-wrap +msgid "x11/mate" +msgstr "x11/mate" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:93 +#: documentation/content/en/books/handbook/desktop/_index.adoc:405 +#, no-wrap +msgid "Cinnamon" +msgstr "Cinnamon" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:96 +#, no-wrap +msgid "x11/cinnamon" +msgstr "x11/cinnamon" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:97 +#: documentation/content/en/books/handbook/desktop/_index.adoc:471 +#, no-wrap +msgid "LXQT" +msgstr "LXQT" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:98 +#, no-wrap +msgid "GPL, LGPL" +msgstr "GPL, LGPL" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:100 +#, no-wrap +msgid "x11-wm/lxqt" +msgstr "x11-wm/lxqt" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:109 +msgid "" +"KDE Plasma is an easy-to-use desktop environment. This desktop provides a " +"suite of applications with a consistent look and feel, a standardized menu " +"and toolbars, keybindings, color-schemes, internationalization, and a " +"centralized, dialog-driven desktop configuration. More information on KDE " +"can be found at the link:https://kde.org/[KDE homepage]. For FreeBSD-" +"specific information, consult the link:https://freebsd.kde.org/[FreeBSD " +"homepage at KDE]." +msgstr "" +"KDE Plasma — это удобная среда рабочего стола. Она предоставляет набор " +"приложений с единообразным внешним видом и поведением, стандартизированным " +"меню и панелями инструментов, сочетаниями клавиш, цветовыми схемами, " +"поддержкой интернационализации и централизованной настройкой рабочего стола " +"через диалоговые окна. Дополнительную информацию о KDE можно найти на сайте " +"link:https://kde.org/[KDE homepage]. Информацию, специфичную для FreeBSD, " +"см. на link:https://freebsd.kde.org/[FreeBSD homepage at KDE]." + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:111 +#, no-wrap +msgid "Install KDE Plasma meta package" +msgstr "Установка мета-пакета KDE Plasma" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:114 +msgid "" +"To install the KDE Plasma meta package with KDE Frameworks, Plasma Desktop " +"and Applications execute:" +msgstr "" +"Для установки мета-пакета KDE Plasma, включающего KDE Frameworks, Plasma " +"Desktop и Applications, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:118 +#, no-wrap +msgid "# pkg install kde\n" +msgstr "# pkg install kde\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:121 +#, no-wrap +msgid "Minimal KDE Plasma installation" +msgstr "Минимальная установка KDE Plasma" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:124 +msgid "To install a minimal KDE Plasma execute:" +msgstr "Для установки минимальной версии KDE Plasma выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:128 +#, no-wrap +msgid "# pkg install plasma6-plasma\n" +msgstr "# pkg install plasma6-plasma\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:134 +msgid "" +"This installation is *really* minimal. Konsole must be installed separately " +"executing:" +msgstr "" +"Эта установка *действительно* минимальна. Konsole необходимо установить " +"отдельно, выполнив:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:138 +#, no-wrap +msgid "# pkg install konsole\n" +msgstr "# pkg install konsole\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:142 +#, no-wrap +msgid "Configure KDE Plasma" +msgstr "Настройка KDE Plasma" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:146 +msgid "" +"KDE Plasma uses man:dbus-daemon[1] for a message bus and hardware " +"abstraction. This application is automatically installed as a dependency of " +"KDE Plasma." +msgstr "" +"KDE Plasma использует man:dbus-daemon[1] в качестве шины сообщений и для " +"аппаратной абстракции. Это приложение автоматически устанавливается как " +"зависимость KDE Plasma." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:148 +#: documentation/content/en/books/handbook/desktop/_index.adoc:246 +msgid "Enable D-BUS service in `/etc/rc.conf` to start at system boot:" +msgstr "" +"Включите службу D-BUS в `/etc/rc.conf` для запуска при загрузке системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:152 +#: documentation/content/en/books/handbook/desktop/_index.adoc:250 +#: documentation/content/en/books/handbook/desktop/_index.adoc:301 +#: documentation/content/en/books/handbook/desktop/_index.adoc:375 +#: documentation/content/en/books/handbook/desktop/_index.adoc:441 +#: documentation/content/en/books/handbook/desktop/_index.adoc:507 +#, no-wrap +msgid "# sysrc dbus_enable=\"YES\"\n" +msgstr "# sysrc dbus_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:155 +msgid "KDE Plasma requires larger message sizes for optimal performance." +msgstr "" +"KDE Plasma требует увеличенного размера сообщений для оптимальной " +"производительности." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:157 +msgid "Add the following lines to man:sysctl.conf[5]:" +msgstr "Добавьте следующие строки в man:sysctl.conf[5]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:162 +#, no-wrap +msgid "" +"sysctl net.local.stream.recvspace=65536\n" +"sysctl net.local.stream.sendspace=65536\n" +msgstr "" +"sysctl net.local.stream.recvspace=65536\n" +"sysctl net.local.stream.sendspace=65536\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:165 +msgid "" +"To apply the change, either run the following command as root or simply " +"reboot the system:" +msgstr "" +"Чтобы применить изменения, выполните следующую команду от имени root или " +"просто перезагрузите систему:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:169 +#, no-wrap +msgid "# sysctl -f /etc/sysctl.conf\n" +msgstr "# sysctl -f /etc/sysctl.conf\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:172 +#, no-wrap +msgid "Start KDE Plasma" +msgstr "Запуск KDE Plasma" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:176 +msgid "" +"The preferred KDE Plasma display manager is package:x11/sddm[]. To install " +"package:x11/sddm[], execute:" +msgstr "" +"Предпочтительным дисплейным менеджером для KDE Plasma является package:x11/" +"sddm[]. Для установки package:x11/sddm[] выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:180 +#: documentation/content/en/books/handbook/desktop/_index.adoc:518 +#, no-wrap +msgid "# pkg install sddm\n" +msgstr "# pkg install sddm\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:183 +#: documentation/content/en/books/handbook/desktop/_index.adoc:521 +msgid "Enable SDDM service in `/etc/rc.conf` to start at system boot:" +msgstr "" +"Включите службу SDDM в `/etc/rc.conf` для автоматического запуска при " +"загрузке системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:187 +#: documentation/content/en/books/handbook/desktop/_index.adoc:525 +#, no-wrap +msgid "# sysrc sddm_enable=\"YES\"\n" +msgstr "# sysrc sddm_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:190 +msgid "" +"The keyboard language can be set in SDDM by running the following command " +"(for Spanish, for example):" +msgstr "" +"Язык клавиатуры можно настроить в SDDM, выполнив следующую команду " +"(например, для испанского языка):" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:194 +#: documentation/content/en/books/handbook/desktop/_index.adoc:532 +#, no-wrap +msgid "# sysrc sddm_lang=\"es_ES\"\n" +msgstr "# sysrc sddm_lang=\"es_ES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:198 +msgid "" +"A second method to start KDE Plasma is by manually invoking man:startx[1]. " +"For this to work, the following line is needed in ~/.xinitrc:" +msgstr "" +"Второй способ запуска KDE Plasma — это ручной вызов man:startx[1]. Для этого " +"необходимо добавить следующую строку в файл ~/.xinitrc:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:202 +#, no-wrap +msgid "% echo \"exec dbus-launch --exit-with-x11 ck-launch-session startplasma-x11\" > ~/.xinitrc\n" +msgstr "% echo \"exec dbus-launch --exit-with-x11 ck-launch-session startplasma-x11\" > ~/.xinitrc\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:209 +msgid "" +"GNOME is a user-friendly desktop environment. It includes a panel for " +"starting applications and displaying status, a desktop, a set of tools and " +"applications, and a set of conventions that make it easy for applications to " +"cooperate and be consistent with each other." +msgstr "" +"GNOME — это удобная графическая среда рабочего стола. Она включает панель " +"для запуска приложений и отображения состояния, рабочий стол, набор " +"инструментов и приложений, а также набор соглашений, которые упрощают " +"взаимодействие и обеспечение согласованности между приложениями." + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:211 +#, no-wrap +msgid "Install GNOME meta package" +msgstr "Установка метапакета GNOME" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:214 +msgid "" +"To install the GNOME meta package with GNOME Desktop and Applications, " +"execute:" +msgstr "" +"Для установки метапакета GNOME с рабочим столом GNOME и приложениями " +"выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:218 +#, no-wrap +msgid "# pkg install gnome\n" +msgstr "# pkg install gnome\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:221 +#, no-wrap +msgid "Minimal GNOME installation" +msgstr "Минимальная установка GNOME" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:224 +msgid "" +"To install the GNOME-lite meta package with a GNOME desktop slimmed down for " +"only the basics, execute:" +msgstr "" +"Для установки мета-пакета GNOME-lite с облегчённой версией рабочего стола " +"GNOME, содержащей только основы, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:228 +#, no-wrap +msgid "# pkg install gnome-lite\n" +msgstr "# pkg install gnome-lite\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:231 +#, no-wrap +msgid "Configure GNOME" +msgstr "Настройка GNOME" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:235 +msgid "" +"GNOME requires `/proc` to be mounted. Add this line to `/etc/fstab` to " +"mount this file system automatically during system startup:" +msgstr "" +"Для работы GNOME необходимо подключить `/proc`. Добавьте следующую строку в " +"`/etc/fstab`, чтобы автоматически подключать эту файловую систему при " +"загрузке системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:240 +#: documentation/content/en/books/handbook/desktop/_index.adoc:366 +#: documentation/content/en/books/handbook/desktop/_index.adoc:432 +#: documentation/content/en/books/handbook/desktop/_index.adoc:497 +#, no-wrap +msgid "" +"# Device Mountpoint FStype Options Dump Pass#\n" +"proc /proc procfs rw 0 0\n" +msgstr "" +"# Device Mountpoint FStype Options Dump Pass#\n" +"proc /proc procfs rw 0 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:244 +msgid "" +"GNOME uses man:dbus-daemon[1] for a message bus and hardware abstraction. " +"This application is automatically installed as a dependency of GNOME." +msgstr "" +"GNOME использует man:dbus-daemon[1] в качестве шины сообщений и для " +"аппаратной абстракции. Это приложение автоматически устанавливается как " +"зависимость GNOME." + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:253 +#, no-wrap +msgid "Start GNOME" +msgstr "Запуск GNOME" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:257 +msgid "" +"GNOME Display Manager is the preferred display manager for GNOME. GDM is " +"installed as part of the GNOME package." +msgstr "" +"GNOME Display Manager — это предпочтительный дисплейный менеджер для GNOME. " +"GDM устанавливается как часть пакета GNOME." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:259 +msgid "Enable GDM in `/etc/rc.conf` to start at system boot:" +msgstr "Включите GDM в `/etc/rc.conf` для запуска при загрузке системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:263 +#, no-wrap +msgid "# sysrc gdm_enable=\"YES\"\n" +msgstr "# sysrc gdm_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:267 +msgid "" +"A second method to start GNOME is by manually invoking man:startx[1]. For " +"this to work, the following line is needed in `~/.xinitrc`:" +msgstr "" +"Второй способ запуска GNOME — это ручной вызов man:startx[1]. Для этого " +"необходимо добавить следующую строку в файл `~/.xinitrc`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:271 +#, no-wrap +msgid "% echo \"exec gnome-session\" > ~/.xinitrc\n" +msgstr "% echo \"exec gnome-session\" > ~/.xinitrc\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:279 +msgid "" +"XFCE is a desktop environment based on the GTK+, lightweight and provides a " +"simple, efficient, easy-to-use desktop. It is fully configurable, has a " +"main panel with menus, applets, and application launchers, provides a file " +"manager and sound manager, and is themeable. Since it is fast, light, and " +"efficient, it is ideal for older or slower machines with memory limitations." +msgstr "" +"XFCE — это среда рабочего стола, основанная на GTK+, легковесная и " +"предоставляющая простой, эффективный и удобный рабочий стол. Она полностью " +"настраиваема, имеет главную панель с меню, апплетами и запусками приложений, " +"предоставляет файловый менеджер и менеджер звука, а также поддерживает темы. " +"Благодаря своей быстроте, легкости и эффективности, она идеально подходит " +"для старых или медленных машин с ограниченными ресурсами памяти." + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:281 +#, no-wrap +msgid "Install XFCE" +msgstr "Установка XFCE" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:284 +msgid "To install the XFCE meta package, execute:" +msgstr "Для установки метапакета XFCE выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:288 +#, no-wrap +msgid "# pkg install xfce\n" +msgstr "# pkg install xfce\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:291 +#, no-wrap +msgid "Configure XFCE" +msgstr "Настройка XFCE" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:295 +msgid "" +"XFCE uses man:dbus-daemon[1] for a message bus and hardware abstraction. " +"This application is automatically installed as a dependency of XFCE." +msgstr "" +"XFCE использует man:dbus-daemon[1] для шины сообщений и абстракции " +"оборудования. Это приложение автоматически устанавливается как зависимость " +"XFCE." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:297 +#: documentation/content/en/books/handbook/desktop/_index.adoc:503 +msgid "Enable D-BUS in `/etc/rc.conf` to start at system boot:" +msgstr "Включите D-BUS в `/etc/rc.conf` для запуска при загрузке системы:" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:304 +#, no-wrap +msgid "Start XFCE" +msgstr "Запуск XFCE" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:307 +#: documentation/content/en/books/handbook/desktop/_index.adoc:381 +#: documentation/content/en/books/handbook/desktop/_index.adoc:447 +msgid "" +"package:x11/lightdm[] is a display manager that supports different display " +"technologies and is a good choice as it is very lightweight, requires little " +"memory usage, and has fast performance." +msgstr "" +"package:x11/lightdm[] — это дисплейный менеджер, поддерживающий различные " +"технологии отображения. Он является хорошим выбором, так как очень " +"легковесен, требует мало памяти и обладает высокой производительностью." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:309 +#: documentation/content/en/books/handbook/desktop/_index.adoc:383 +msgid "To install it, execute:" +msgstr "Для установки выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:313 +#: documentation/content/en/books/handbook/desktop/_index.adoc:387 +#: documentation/content/en/books/handbook/desktop/_index.adoc:453 +#, no-wrap +msgid "# pkg install lightdm lightdm-gtk-greeter\n" +msgstr "# pkg install lightdm lightdm-gtk-greeter\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:316 +#: documentation/content/en/books/handbook/desktop/_index.adoc:390 +#: documentation/content/en/books/handbook/desktop/_index.adoc:456 +msgid "Enable lightdm in `/etc/rc.conf` to start at system boot:" +msgstr "" +"Включите lightdm в `/etc/rc.conf` для автоматического запуска при загрузке " +"системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:320 +#: documentation/content/en/books/handbook/desktop/_index.adoc:394 +#: documentation/content/en/books/handbook/desktop/_index.adoc:460 +#, no-wrap +msgid "# sysrc lightdm_enable=\"YES\"\n" +msgstr "# sysrc lightdm_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:324 +msgid "" +"A second method to start XFCE is by manually invoking man:startx[1]. For " +"this to work, the following line is needed in `~/.xinitrc`:" +msgstr "" +"Второй способ запустить XFCE — вручную вызвать man:startx[1]. Для этого в " +"`~/.xinitrc` должна быть следующая строка:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:328 +#, no-wrap +msgid "% echo '. /usr/local/etc/xdg/xfce4/xinitrc' > ~/.xinitrc\n" +msgstr "% echo '. /usr/local/etc/xdg/xfce4/xinitrc' > ~/.xinitrc\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:335 +msgid "" +"The MATE Desktop Environment is the continuation of GNOME 2. It provides an " +"intuitive and attractive desktop environment using traditional metaphors." +msgstr "" +"Среда рабочего стола MATE является продолжением GNOME 2. Она предоставляет " +"интуитивно понятную и привлекательную среду рабочего стола, использующую " +"традиционные метафоры." + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:337 +#, no-wrap +msgid "Install MATE meta package" +msgstr "Установка метапакета MATE" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:340 +msgid "" +"To install the MATE meta package that includes the MATE Desktop with some " +"extra applications such as text editor, archiver manager, etc., execute:" +msgstr "" +"Для установки метапакета MATE, который включает в себя MATE Desktop с " +"дополнительными приложениями, такими как текстовый редактор, менеджер " +"архивов и т.д., выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:344 +#, no-wrap +msgid "# pkg install mate\n" +msgstr "# pkg install mate\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:347 +#, no-wrap +msgid "Minimal MATE installation" +msgstr "Минимальная установка MATE" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:350 +msgid "" +"To install the MATE lite meta package with MATE desktop slimmed down for " +"only the basics, execute:" +msgstr "" +"Чтобы установить мета-пакет MATE lite с облегчённой версией рабочего стола " +"MATE, содержащий только основы, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:354 +#, no-wrap +msgid "# pkg install mate-base\n" +msgstr "# pkg install mate-base\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:357 +#, no-wrap +msgid "Configure MATE" +msgstr "Настройка MATE" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:361 +msgid "" +"MATE requires `/proc` to be mounted. Add this line to `/etc/fstab` to mount " +"this file system automatically during system startup:" +msgstr "" +"MATE требует подключения `/proc`. Добавьте следующую строку в `/etc/fstab`, " +"чтобы автоматически подключать эту файловую систему при загрузке системы:" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:371 +msgid "" +"MATE uses man:dbus-daemon[1] for a message bus and hardware abstraction. " +"This application is automatically installed as a dependency of MATE. Enable " +"D-BUS in `/etc/rc.conf` to start at system boot:" +msgstr "" +"MATE использует man:dbus-daemon[1] для шины сообщений и абстракции " +"оборудования. Это приложение автоматически устанавливается как зависимость " +"MATE. Для запуска D-BUS при загрузке системы включите его в `/etc/rc.conf`:" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:378 +#, no-wrap +msgid "Start MATE" +msgstr "Запуск MATE" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:398 +msgid "" +"A second method to start MATE is by manually invoking man:startx[1]. For " +"this to work, the following line is needed in `~/.xinitrc`:" +msgstr "" +"Второй способ запустить MATE — вручную вызвать man:startx[1]. Для этого " +"необходимо добавить следующую строку в файл `~/.xinitrc`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:402 +#, no-wrap +msgid "% echo \"exec dbus-launch --exit-with-x11 ck-launch-session mate-session\" > ~/.xinitrc\n" +msgstr "% echo \"exec dbus-launch --exit-with-x11 ck-launch-session mate-session\" > ~/.xinitrc\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:411 +msgid "" +"Cinnamon is a UNIX(R) desktop which provides advanced innovative features " +"and a traditional user experience. The desktop layout is similar to Gnome " +"2. The underlying technology is forked from Gnome Shell. The emphasis is " +"put on making users feel at home and providing them with an easy to use and " +"comfortable desktop experience." +msgstr "" +"Cinnamon — это UNIX(R)-совместимая рабочая среда, которая предоставляет " +"передовые инновационные функции и традиционный пользовательский опыт. " +"Компоновка рабочего стола похожа на Gnome 2. Базовые технологии являются " +"ответвлением от Gnome Shell. Основной акцент сделан на том, чтобы " +"пользователи чувствовали себя как дома, предоставляя им простую и комфортную " +"рабочую среду." + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:413 +#, no-wrap +msgid "Install Cinnamon" +msgstr "Установка Cinnamon" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:416 +msgid "To install the Cinnamon package, execute:" +msgstr "Для установки пакета Cinnamon выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:420 +#, no-wrap +msgid "# pkg install cinnamon\n" +msgstr "# pkg install cinnamon\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:423 +#, no-wrap +msgid "Configure Cinnamon" +msgstr "Настройка Cinnamon" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:427 +msgid "" +"Cinnamon requires `/proc` to be mounted. Add this line to `/etc/fstab` to " +"mount this file system automatically during system startup:" +msgstr "" +"Для работы Cinnamon требуется подключенный `/proc`. Добавьте следующую " +"строку в `/etc/fstab`, чтобы автоматически подключать эту файловую систему " +"при загрузке системы:" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:437 +msgid "" +"Cinnamon uses man:dbus-daemon[1] for a message bus and hardware " +"abstraction. This application is automatically installed as a dependency of " +"Cinnamon. Enable D-BUS in `/etc/rc.conf` to start at system boot:" +msgstr "" +"Cinnamon использует man:dbus-daemon[1] для шины сообщений и абстракции " +"оборудования. Это приложение автоматически устанавливается как зависимость " +"Cinnamon. Для запуска D-BUS при загрузке системы включите его в `/etc/" +"rc.conf`:" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:444 +#, no-wrap +msgid "Start Cinnamon" +msgstr "Запуск Cinnamon" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:449 +msgid "To install it execute:" +msgstr "Для установки выполните:" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:464 +msgid "" +"A second method to start Cinnamon is by manually invoking man:startx[1]. " +"For this to work, the following line is needed in `~/.xinitrc`:" +msgstr "" +"Второй способ запустить Cinnamon — вручную вызвать man:startx[1]. Для этого " +"необходимо добавить следующую строку в файл `~/.xinitrc`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:468 +#, no-wrap +msgid "% echo \"exec dbus-launch --exit-with-x11 ck-launch-session cinnamon-session\" > ~/.xinitrc\n" +msgstr "% echo \"exec dbus-launch --exit-with-x11 ck-launch-session cinnamon-session\" > ~/.xinitrc\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:476 +msgid "" +"LXQt is an advanced, easy-to-use, and fast desktop environment based on Qt " +"technologies. It has been tailored for users who value simplicity, speed, " +"and an intuitive interface. Unlike most desktop environments, LXQt also " +"works fine with less powerful machines." +msgstr "" +"LXQt — это современная, простая в использовании и быстрая среда рабочего " +"стола, основанная на технологиях Qt. Она создана для пользователей, которые " +"ценят простоту, скорость и интуитивно понятный интерфейс. В отличие от " +"большинства сред рабочего стола, LXQt также хорошо работает на менее " +"производительных компьютерах." + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:478 +#, no-wrap +msgid "Install LXQT" +msgstr "Установка LXQT" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:481 +msgid "To install the LXQT meta package, execute:" +msgstr "Чтобы установить метапакет LXQT, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:485 +#, no-wrap +msgid "# pkg install lxqt\n" +msgstr "# pkg install lxqt\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:488 +#, no-wrap +msgid "Configure LXQT" +msgstr "Настройка LXQT" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:492 +msgid "" +"LXQT requires `/proc` to be mounted. Add this line to `/etc/fstab` to mount " +"this file system automatically during system startup:" +msgstr "" +"LXQT требует подключения `/proc`. Добавьте следующую строку в `/etc/fstab`, " +"чтобы автоматически подключать эту файловую систему при загрузке системы:" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:501 +msgid "" +"LXQT uses man:dbus-daemon[1] for a message bus and hardware abstraction. " +"This application is automatically installed as a dependency of LXQT." +msgstr "" +"LXQT использует man:dbus-daemon[1] в качестве шины сообщений и для " +"аппаратной абстракции. Это приложение автоматически устанавливается как " +"зависимость LXQT." + +#. type: Title ==== +#: documentation/content/en/books/handbook/desktop/_index.adoc:510 +#, no-wrap +msgid "Start LXQT" +msgstr "Запуск LXQT" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:514 +msgid "" +"The preferred LXQT display manager is package:x11/sddm[]. To install " +"package:x11/sddm[], execute:" +msgstr "" +"Предпочтительным дисплейным менеджером для LXQT является package:x11/sddm[]. " +"Для установки package:x11/sddm[] выполните:" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:528 +msgid "" +"The keyboard language can be set in SDDM by running the following command " +"(for example, for Spanish):" +msgstr "" +"Язык клавиатуры можно настроить в SDDM, выполнив следующую команду " +"(например, для испанского):" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:536 +msgid "" +"A second method to start LXQT is by manually invoking man:startx[1]. For " +"this to work, the following line is needed in `~/.xinitrc`:" +msgstr "" +"Второй способ запуска LXQT — вручную вызвать man:startx[1]. Для этого " +"потребуется добавить следующую строку в `~/.xinitrc`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:540 +#, no-wrap +msgid "% echo \"exec dbus-launch --exit-with-x11 ck-launch-session startlxqt\" > ~/.xinitrc\n" +msgstr "% echo \"exec dbus-launch --exit-with-x11 ck-launch-session startlxqt\" > ~/.xinitrc\n" + +#. type: Title == +#: documentation/content/en/books/handbook/desktop/_index.adoc:543 +#, no-wrap +msgid "Browsers" +msgstr "Браузеры" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:546 +msgid "" +"This section describes how to install and configure some popular web " +"browsers on a FreeBSD system, from full web browsers with high resource " +"consumption to command line web browsers with reduced resource usage." +msgstr "" +"В этом разделе описано, как установить и настроить некоторые популярные веб-" +"браузеры в системе FreeBSD — от полнофункциональных браузеров с высоким " +"потреблением ресурсов до текстовых браузеров с пониженным использованием " +"ресурсов." + +#. type: Block title +#: documentation/content/en/books/handbook/desktop/_index.adoc:547 +#, no-wrap +msgid "Supported browsers" +msgstr "Поддерживаемые браузеры" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:552 +#: documentation/content/en/books/handbook/desktop/_index.adoc:758 +#: documentation/content/en/books/handbook/desktop/_index.adoc:913 +#: documentation/content/en/books/handbook/desktop/_index.adoc:995 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1104 +#, no-wrap +msgid "Resources Needed" +msgstr "Необходимые ресурсы" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:553 +#: documentation/content/en/books/handbook/desktop/_index.adoc:605 +#, no-wrap +msgid "Firefox" +msgstr "Firefox" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:554 +#: documentation/content/en/books/handbook/desktop/_index.adoc:569 +#: documentation/content/en/books/handbook/desktop/_index.adoc:915 +#, no-wrap +msgid "MPL 2.0" +msgstr "MPL 2.0" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:555 +#, no-wrap +msgid "package:www/firefox[]" +msgstr "package:www/firefox[]" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:557 +#: documentation/content/en/books/handbook/desktop/_index.adoc:562 +#: documentation/content/en/books/handbook/desktop/_index.adoc:567 +#: documentation/content/en/books/handbook/desktop/_index.adoc:572 +#: documentation/content/en/books/handbook/desktop/_index.adoc:763 +#: documentation/content/en/books/handbook/desktop/_index.adoc:768 +#: documentation/content/en/books/handbook/desktop/_index.adoc:773 +#: documentation/content/en/books/handbook/desktop/_index.adoc:778 +#: documentation/content/en/books/handbook/desktop/_index.adoc:918 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1000 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1109 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1114 +#, no-wrap +msgid "Heavy" +msgstr "Много" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:558 +#: documentation/content/en/books/handbook/desktop/_index.adoc:625 +#, no-wrap +msgid "Chromium" +msgstr "Chromium" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:559 +#: documentation/content/en/books/handbook/desktop/_index.adoc:564 +#, no-wrap +msgid "BSD-3 and others" +msgstr "BSD-3 и другие" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:560 +#, no-wrap +msgid "package:www/chromium[]" +msgstr "package:www/chromium[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:563 +#: documentation/content/en/books/handbook/desktop/_index.adoc:644 +#, no-wrap +msgid "Iridium browser" +msgstr "Браузер Iridium" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:565 +#, no-wrap +msgid "package:www/iridium-browser[]" +msgstr "package:www/iridium-browser[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:568 +#: documentation/content/en/books/handbook/desktop/_index.adoc:657 +#, no-wrap +msgid "Falkon" +msgstr "Falkon" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:570 +#, no-wrap +msgid "package:www/falkon-qtonly[]" +msgstr "package:www/falkon-qtonly[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:573 +#: documentation/content/en/books/handbook/desktop/_index.adoc:673 +#, no-wrap +msgid "Konqueror" +msgstr "Konqueror" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:575 +#, no-wrap +msgid "package:x11-fm/konqueror[]" +msgstr "package:x11-fm/konqueror[]" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:577 +#: documentation/content/en/books/handbook/desktop/_index.adoc:582 +#: documentation/content/en/books/handbook/desktop/_index.adoc:587 +#: documentation/content/en/books/handbook/desktop/_index.adoc:923 +#: documentation/content/en/books/handbook/desktop/_index.adoc:928 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1005 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1010 +#, no-wrap +msgid "Medium" +msgstr "Средне" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:578 +#: documentation/content/en/books/handbook/desktop/_index.adoc:686 +#, no-wrap +msgid "Gnome Web (Epiphany)" +msgstr "Gnome Web (Epiphany)" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:579 +#: documentation/content/en/books/handbook/desktop/_index.adoc:584 +#: documentation/content/en/books/handbook/desktop/_index.adoc:589 +#: documentation/content/en/books/handbook/desktop/_index.adoc:790 +#, no-wrap +msgid "GPL 3.0 or later" +msgstr "GPL 3.0 или новее" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:580 +#, no-wrap +msgid "package:www/epiphany[]" +msgstr "package:www/epiphany[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:583 +#: documentation/content/en/books/handbook/desktop/_index.adoc:698 +#, no-wrap +msgid "qutebrowser" +msgstr "qutebrowser" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:585 +#, no-wrap +msgid "package:www/qutebrowser[]" +msgstr "package:www/qutebrowser[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:588 +#: documentation/content/en/books/handbook/desktop/_index.adoc:711 +#, no-wrap +msgid "Dillo" +msgstr "Dillo" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:590 +#, no-wrap +msgid "package:www/dillo2[]" +msgstr "package:www/dillo2[]" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:592 +#: documentation/content/en/books/handbook/desktop/_index.adoc:597 +#: documentation/content/en/books/handbook/desktop/_index.adoc:602 +#: documentation/content/en/books/handbook/desktop/_index.adoc:783 +#: documentation/content/en/books/handbook/desktop/_index.adoc:788 +#: documentation/content/en/books/handbook/desktop/_index.adoc:793 +#, no-wrap +msgid "Light" +msgstr "Мало" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:593 +#: documentation/content/en/books/handbook/desktop/_index.adoc:724 +#, no-wrap +msgid "Links" +msgstr "Ссылки" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:595 +#, no-wrap +msgid "package:www/links[]" +msgstr "package:www/links[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:598 +#: documentation/content/en/books/handbook/desktop/_index.adoc:736 +#, no-wrap +msgid "w3m" +msgstr "w3m" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:599 +#: documentation/content/en/books/handbook/desktop/_index.adoc:760 +#, no-wrap +msgid "MIT" +msgstr "MIT" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:600 +#, no-wrap +msgid "package:www/w3m[]" +msgstr "package:www/w3m[]" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:609 +msgid "" +"Firefox is an open source browser that features a standards-compliant HTML " +"display engine, tabbed browsing, popup blocking, extensions, improved " +"security, and more. Firefox is based on the Mozilla codebase." +msgstr "" +"Firefox — это браузер с открытым исходным кодом, который включает в себя " +"движок отображения HTML, соответствующий стандартам, вкладки, блокировку " +"всплывающих окон, расширения, улучшенную безопасность и многое другое. " +"Firefox основан на кодовой базе Mozilla." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:611 +msgid "" +"To install the package of the latest release version of Firefox, execute:" +msgstr "Для установки пакета последней выпущенной версии Firefox выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:615 +#, no-wrap +msgid "# pkg install firefox\n" +msgstr "# pkg install firefox\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:618 +msgid "" +"To instead install Firefox Extended Support Release (ESR) version, execute:" +msgstr "Для установки Firefox Extended Support Release (ESR) выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:622 +#, no-wrap +msgid "# pkg install firefox-esr\n" +msgstr "# pkg install firefox-esr\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:630 +msgid "" +"Chromium is an open source browser project that aims to build a safer, " +"faster, and more stable web browsing experience. Chromium features tabbed " +"browsing, popup blocking, extensions, and much more. Chromium is the open " +"source project upon which the Google Chrome web browser is based." +msgstr "" +"Chromium — это проект браузера с открытым исходным кодом, целью которого " +"является создание более безопасного, быстрого и стабильного веб-браузера. " +"Chromium поддерживает вкладки, блокировку всплывающих окон, расширения и " +"многое другое. Chromium — это проект с открытым исходным кодом, на основе " +"которого создан браузер Google Chrome." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:632 +msgid "To install Chromium, execute:" +msgstr "Чтобы установить Chromium, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:636 +#, no-wrap +msgid "# pkg install chromium\n" +msgstr "# pkg install chromium\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:641 +msgid "" +"The executable for Chromium is [.filename]#/usr/local/bin/chrome#, not " +"[.filename]#/usr/local/bin/chromium#." +msgstr "" +"Исполняемый файл Chromium находится по пути [.filename]#/usr/local/bin/" +"chrome#, а не [.filename]#/usr/local/bin/chromium#." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:648 +msgid "" +"Iridium is a free, open, and libre browser modification of the Chromium code " +"base, with privacy being enhanced in several key areas. Automatic " +"transmission of partial queries, keywords, metrics to central services is " +"inhibited and only occurs with consent." +msgstr "" +"Iridium — это бесплатный, открытый и свободный модифицированный браузер на " +"основе кодовой базы Chromium, в котором усилена защита приватности в " +"нескольких ключевых аспектах. Автоматическая передача частичных запросов, " +"ключевых слов и метрик в центральные службы блокируется и происходит только " +"с согласия пользователя." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:650 +msgid "To install Iridium, execute:" +msgstr "Для установки Iridium выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:654 +#, no-wrap +msgid "# pkg install iridium-browser\n" +msgstr "# pkg install iridium-browser\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:664 +msgid "" +"Falkon is a new-ish and very fast QtWebEngine browser. It aims to be a " +"lightweight web browser available on all major platforms. Falkon has all " +"standard functions someone can expect from a web browser. It includes " +"bookmarks, history (both also in sidebar) and tabs. Beyond that, AdBlock " +"plugin can block ads, Click2Flash can block Flash content and SSL Manager " +"can edit the local CA Certificates database." +msgstr "" +"Falkon — это относительно новый и очень быстрый браузер на основе " +"QtWebEngine. Он стремится быть легковесным веб-браузером, доступным на всех " +"основных платформах. Falkon обладает всеми стандартными функциями, которые " +"можно ожидать от веб-браузера, включая закладки, историю (доступные также в " +"боковой панели) и вкладки. Кроме того, плагин AdBlock может блокировать " +"рекламу, Click2Flash — Flash-содержимое, а SSL Manager позволяет " +"редактировать локальную базу данных сертификатов CA." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:666 +msgid "To install Falkon, execute:" +msgstr "Для установки Falkon выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:670 +#, no-wrap +msgid "# pkg install falkon\n" +msgstr "# pkg install falkon\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:677 +msgid "" +"Konqueror is more than a web browser as it is also a file manager and a " +"multimedia viewer. It supports WebKit, a rendering engine used by many " +"modern browsers including Chromium, as well as its own KHTML engine." +msgstr "" +"Konqueror — это не просто веб-браузер, он также является файловым менеджером " +"и мультимедийным просмотрщиком. Он поддерживает WebKit, механизм " +"визуализации, используемый многими современными браузерами, включая " +"Chromium, а также собственный движок KHTML." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:679 +msgid "To install Konqueror, execute:" +msgstr "Чтобы установить Konqueror, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:683 +#, no-wrap +msgid "# pkg install konqueror\n" +msgstr "# pkg install konqueror\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:689 +msgid "" +"Gnome Web (Epiphany) is a web browser designed to be as lightweight and fast " +"as possible, at the expense of many of the features found in other browsers." +msgstr "" +"Gnome Web (Epiphany) — это веб-браузер, разработанный для максимальной " +"легкости и скорости, в ущерб многим функциям, присутствующим в других " +"браузерах." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:691 +msgid "To install Gnome Web (Epiphany), execute:" +msgstr "Для установки Gnome Web (Epiphany) выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:695 +#, no-wrap +msgid "# pkg install epiphany\n" +msgstr "# pkg install epiphany\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:702 +msgid "" +"Qutebrowser is a keyboard-focused browser with a minimal GUI. It is based " +"on Python and PyQt5 and free software, licensed under the GPL." +msgstr "" +"Qutebrowser — это браузер с минимальным графическим интерфейсом, " +"ориентированный на управление с клавиатуры. Он написан на Python и PyQt5 и " +"распространяется как свободное программное обеспечение под лицензией GPL." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:704 +msgid "To install qutebrowser, execute:" +msgstr "Для установки qutebrowser выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:708 +#, no-wrap +msgid "# pkg install qutebrowser\n" +msgstr "# pkg install qutebrowser\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:715 +msgid "" +"Dillo aims to be a multiplatform alternative browser that is small, stable, " +"developer-friendly, usable, fast, and extensible. This new, experimental " +"version of Dillo is based upon FLTK toolkit, rather than GTK1, and has been " +"substantially rewritten." +msgstr "" +"Dillo стремится быть мультиплатформенным альтернативным браузером, который " +"отличается компактностью, стабильностью, удобством для разработчиков, " +"практичностью, скоростью работы и расширяемостью. Эта новая, " +"экспериментальная версия Dillo основана на инструментарии FLTK, а не на " +"GTK1, и была существенно переработана." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:717 +msgid "To install Dillo, execute:" +msgstr "Для установки Dillo выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:721 +#, no-wrap +msgid "# pkg install dillo2\n" +msgstr "# pkg install dillo2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:727 +msgid "" +"A lynx-like web browser with text and graphics modes with many features like " +"displaying tables, menus, etc." +msgstr "" +"Веб-браузер, подобный lynx, с текстовым и графическим режимами, " +"поддерживающий множество функций, таких как отображение таблиц, меню и т.д." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:729 +msgid "To install Links, execute:" +msgstr "Для установки Links выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:733 +#, no-wrap +msgid "# pkg install links\n" +msgstr "# pkg install links\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:740 +msgid "" +"w3m is a pager/text-based web browser. It is a similar application to Lynx, " +"but it has several features Lynx does not have like rendering tables and " +"rendering frames." +msgstr "" +"w3m — это программа для просмотра текстовых страниц (пейджер) и текстовый " +"веб-браузер. Это приложение похоже на Lynx, но обладает рядом функций, " +"которых нет в Lynx, таких как отображение таблиц и фреймов." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:742 +msgid "To install w3m, execute:" +msgstr "Для установки w3m выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:746 +#, no-wrap +msgid "# pkg install w3m\n" +msgstr "# pkg install w3m\n" + +#. type: Title == +#: documentation/content/en/books/handbook/desktop/_index.adoc:749 +#, no-wrap +msgid "Development tools" +msgstr "Инструменты разработки" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:752 +msgid "" +"This section describes how to install and configure some popular development " +"tools on a FreeBSD system." +msgstr "" +"Этот раздел описывает, как установить и настроить некоторые популярные " +"инструменты разработки в системе FreeBSD." + +#. type: Block title +#: documentation/content/en/books/handbook/desktop/_index.adoc:753 +#, no-wrap +msgid "Supported development tools" +msgstr "Поддерживаемые инструменты разработки" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:759 +#: documentation/content/en/books/handbook/desktop/_index.adoc:796 +#, no-wrap +msgid "Visual Studio Code" +msgstr "Visual Studio Code" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:761 +#, no-wrap +msgid "package:editors/vscode[]" +msgstr "package:editors/vscode[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:764 +#: documentation/content/en/books/handbook/desktop/_index.adoc:809 +#, no-wrap +msgid "Qt Creator" +msgstr "Qt Creator" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:765 +#, no-wrap +msgid "QtGPL" +msgstr "QtGPL" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:766 +#, no-wrap +msgid "package:devel/qtcreator[]" +msgstr "package:devel/qtcreator[]" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:769 +#, no-wrap +msgid "Kdevelop" +msgstr "Kdevelop" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:770 +#, no-wrap +msgid "GPL 2.0 or later and LGPL 2.0 or later" +msgstr "GPL 2.0 или более поздняя и LGPL 2.0 или более поздняя" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:771 +#, no-wrap +msgid "package:devel/kdevelop[]" +msgstr "package:devel/kdevelop[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:774 +#: documentation/content/en/books/handbook/desktop/_index.adoc:842 +#, no-wrap +msgid "Eclipse IDE" +msgstr "Eclipse IDE" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:775 +#, no-wrap +msgid "EPL" +msgstr "EPL" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:776 +#, no-wrap +msgid "package:java/eclipse[]" +msgstr "package:java/eclipse[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:779 +#: documentation/content/en/books/handbook/desktop/_index.adoc:856 +#, no-wrap +msgid "Vim" +msgstr "Vim" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:780 +#, no-wrap +msgid "VIM" +msgstr "VIM" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:781 +#, no-wrap +msgid "package:editors/vim[]" +msgstr "package:editors/vim[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:784 +#: documentation/content/en/books/handbook/desktop/_index.adoc:873 +#, no-wrap +msgid "Neovim" +msgstr "Neovim" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:785 +#, no-wrap +msgid "Apache 2.0" +msgstr "Apache 2.0" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:786 +#, no-wrap +msgid "package:editors/neovim[]" +msgstr "package:editors/neovim[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:789 +#: documentation/content/en/books/handbook/desktop/_index.adoc:887 +#, no-wrap +msgid "GNU Emacs" +msgstr "GNU Emacs" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:791 +#, no-wrap +msgid "package:editors/emacs[]" +msgstr "package:editors/emacs[]" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:800 +msgid "" +"Visual Studio Code is a type of tool that combines the simplicity of a code " +"editor with what developers need for their core edit-build-debug cycle. It " +"provides comprehensive editing and debugging support, an extensibility " +"model, and lightweight integration with existing tools." +msgstr "" +"Visual Studio Code — это инструмент, который сочетает простоту редактора " +"кода с необходимыми для разработчиков возможностями цикла редактирования, " +"сборки и отладки. Он предоставляет комплексную поддержку редактирования и " +"отладки, модель расширяемости и лёгкую интеграцию с существующими " +"инструментами." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:802 +msgid "To install Visual Studio Code, execute:" +msgstr "Для установки Visual Studio Code выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:806 +#, no-wrap +msgid "# pkg install vscode\n" +msgstr "# pkg install vscode\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:813 +msgid "" +"Qt Creator is a cross-platform IDE (integrated development environment) " +"tailored to the needs of Qt developers. Functionalities included with Qt " +"Creator are:" +msgstr "" +"Qt Creator — это кроссплатформенная IDE (интегрированная среда разработки), " +"созданная с учетом потребностей разработчиков Qt. Функциональные возможности " +"Qt Creator включают:" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:815 +msgid "code editor with C++, QML and ECMAscript support;" +msgstr "редактор кода с поддержкой C++, QML и ECMAscript;" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:816 +msgid "rapid code navigation tools;" +msgstr "быстрые инструменты для навигации по коду;" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:817 +msgid "static code checking and style hints as you type;" +msgstr "статическая проверка кода и подсказки по стилю во время набора;" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:818 +msgid "context sensitive help;" +msgstr "контекстно-зависимая справка;" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:819 +msgid "visual debugger;" +msgstr "визуальный отладчик;" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:820 +msgid "integrated GUI layout and forms designer." +msgstr "интегрированный графический интерфейс и конструктор форм." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:822 +msgid "To install Qt Creator, execute:" +msgstr "Для установки Qt Creator выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:826 +#, no-wrap +msgid "# pkg install qtcreator\n" +msgstr "# pkg install qtcreator\n" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:829 +#, no-wrap +msgid "kdevelop" +msgstr "kdevelop" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:833 +msgid "" +"Open source, feature-full, plugin extensible IDE for C/C++ and other " +"programming languages. It is based on KDevPlatform and the KDE and Qt " +"libraries, and it has been under development since 1998." +msgstr "" +"Открытая, многофункциональная IDE с поддержкой расширений через плагины для " +"языков программирования C/C++ и других. Основана на KDevPlatform, а также " +"библиотеках KDE и Qt, и разрабатывается с 1998 года." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:835 +msgid "To install kdevelop, execute:" +msgstr "Для установки kdevelop выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:839 +#, no-wrap +msgid "# pkg install kdevelop\n" +msgstr "# pkg install kdevelop\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:847 +msgid "" +"The Eclipse Platform is an open extensible IDE for anything and yet nothing " +"in particular. The Eclipse Platform provides building blocks and a " +"foundation for constructing and running integrated software-development " +"tools. The Eclipse Platform allows tool builders to independently develop " +"tools that integrate with other people's tools." +msgstr "" +"Платформа Eclipse — это открытая расширяемая среда разработки (IDE) для чего " +"угодно и в то же время ничего конкретного. Платформа Eclipse предоставляет " +"строительные блоки и основу для создания и запуска интегрированных " +"инструментов разработки программного обеспечения. Платформа Eclipse " +"позволяет разработчикам инструментов независимо создавать инструменты, " +"которые интегрируются с инструментами других разработчиков." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:849 +msgid "To install Eclipse IDE, execute:" +msgstr "Для установки Eclipse IDE выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:853 +#, no-wrap +msgid "# pkg install eclipse\n" +msgstr "# pkg install eclipse\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:860 +msgid "" +"Vim is a highly configurable text editor built to enable efficient text " +"editing. It is an improved version of the vi editor distributed with most " +"UNIX systems." +msgstr "" +"Vim — это высоконастраиваемый текстовый редактор, созданный для эффективного " +"редактирования текста. Это улучшенная версия редактора vi, поставляемого с " +"большинством UNIX-систем." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:864 +msgid "" +"Vim is often called a \"programmer's editor,\" and so useful for programming " +"that many consider it an entire IDE. It is not just for programmers, " +"though. Vim is perfect for all kinds of text editing, from composing email " +"to editing configuration files." +msgstr "" +"Vim часто называют «редактором программиста», и он настолько полезен для " +"программирования, что многие считают его полноценной IDE. Однако он " +"предназначен не только для программистов. Vim идеально подходит для любого " +"вида редактирования текста — от написания электронных писем до правки " +"конфигурационных файлов." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:866 +msgid "To install Vim, execute:" +msgstr "Для установки Vim выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:870 +#, no-wrap +msgid "# pkg install vim\n" +msgstr "# pkg install vim\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:878 +msgid "" +"Neovim is an aggressive refactor of package:editors/vim[]. It represents a " +"complete overhaul of the codebase with many sanity improvements, including " +"sensible defaults, a built-in terminal emulator, asynchronous plugin " +"architecture, and powerful APIs designed for speed and extensibility. It " +"retains full compatibility with almost all Vim plugins and scripts." +msgstr "" +"Neovim представляет собой радикальный рефакторинг package:editors/vim[]. Это " +"полная переработка кодовой базы с множеством улучшений, включая разумные " +"настройки по умолчанию, встроенный эмулятор терминала, асинхронную " +"архитектуру плагинов и мощные API, ориентированные на скорость и " +"расширяемость. При этом сохраняется полная совместимость с почти всеми " +"плагинами и скриптами Vim." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:880 +msgid "To install Neovim, execute:" +msgstr "Для установки Neovim выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:884 +#, no-wrap +msgid "# pkg install neovim\n" +msgstr "# pkg install neovim\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:891 +msgid "" +"GNU Emacs is an extensible, customizable, free/libre text editor. At its " +"core is an interpreter for Emacs Lisp, a dialect of the Lisp programming " +"language with extensions to support text editing." +msgstr "" +"GNU Emacs — это расширяемый, настраиваемый, свободный текстовый редактор. В " +"его основе лежит интерпретатор Emacs Lisp, диалекта языка программирования " +"Lisp с расширениями для поддержки редактирования текста." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:893 +msgid "To install GNU Emacs, execute:" +msgstr "Чтобы установить GNU Emacs, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:897 +#, no-wrap +msgid "# pkg install emacs\n" +msgstr "# pkg install emacs\n" + +#. type: Title == +#: documentation/content/en/books/handbook/desktop/_index.adoc:900 +#, no-wrap +msgid "Desktop office productivity" +msgstr "Настольные офисные приложения" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:905 +msgid "" +"When it comes to productivity, users often look for an office suite or an " +"easy-to-use word processor. While some desktop environments like " +"crossref:desktop[kde-environment, KDE Plasma] provide an office suite, there " +"is no default productivity package. Several office suites and graphical " +"word processors are available for FreeBSD, regardless of the installed " +"desktop environments." +msgstr "" +"Когда речь заходит о продуктивности, пользователи часто ищут офисный пакет " +"или простой в использовании текстовый редактор. Хотя некоторые окружения " +"рабочего стола, такие как crossref:desktop[kde-environment, KDE Plasma], " +"предоставляют офисный пакет, стандартного пакета для продуктивности не " +"существует. Для FreeBSD доступно несколько офисных пакетов и графических " +"текстовых процессоров, независимо от установленных окружений рабочего стола." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:907 +msgid "" +"This section demonstrates how to install the following popular productivity " +"software and indicates if the application is resource-heavy, takes time to " +"compile from ports, or has any major dependencies." +msgstr "" +"В этом разделе показано, как установить следующее популярное программное " +"обеспечение для повышения продуктивности, а также указано, является ли " +"приложение ресурсоемким, требует ли оно много времени для компиляции из " +"портов или имеет какие-либо значительные зависимости." + +#. type: Block title +#: documentation/content/en/books/handbook/desktop/_index.adoc:908 +#, no-wrap +msgid "Supported Desktop office productivity suites" +msgstr "Поддерживаемые офисные пакеты для настольных компьютеров" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:914 +#: documentation/content/en/books/handbook/desktop/_index.adoc:931 +#, no-wrap +msgid "LibreOffice" +msgstr "LibreOffice" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:916 +#, no-wrap +msgid "package:editors/libreoffice[]" +msgstr "package:editors/libreoffice[]" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:919 +#, no-wrap +msgid "Calligra Suite" +msgstr "Calligra Suite" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:920 +#, no-wrap +msgid "LGPL and GPL" +msgstr "LGPL и GPL" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:921 +#, no-wrap +msgid "package:editors/calligra[]" +msgstr "package:editors/calligra[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:924 +#: documentation/content/en/books/handbook/desktop/_index.adoc:970 +#, no-wrap +msgid "AbiWord" +msgstr "AbiWord" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:926 +#, no-wrap +msgid "package:editors/abiword[]" +msgstr "package:editors/abiword[]" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:938 +msgid "" +"LibreOffice is a free software office suite developed by http://" +"www.documentfoundation.org/[The Document Foundation]. It is compatible with " +"other major office suites and available on a variety of platforms. It is a " +"rebranded fork of Apache OpenOffice and includes applications found in a " +"complete office productivity suite: a word processor, spreadsheet, " +"presentation manager, drawing program, database management program, and a " +"tool for creating and editing mathematical formulæ. It is available in a " +"number of different languages and internationalization has been extended to " +"interfaces, spell checkers, and dictionaries. More information about " +"LibreOffice can be found at http://www.libreoffice.org/[libreoffice.org]." +msgstr "" +"LibreOffice — это свободный офисный пакет, разрабатываемый http://" +"www.documentfoundation.org/[The Document Foundation]. Он совместим с другими " +"крупными офисными пакетами и доступен на различных платформах. Это " +"переименованная форк Apache OpenOffice, включающая приложения, входящие в " +"полный офисный пакет: текстовый процессор, электронные таблицы, программу " +"для создания презентаций, графический редактор, систему управления базами " +"данных и инструмент для создания и редактирования математических формул. " +"LibreOffice доступен на множестве языков, а интернационализация охватывает " +"интерфейсы, средства проверки орфографии и словари. Дополнительную " +"информацию о LibreOffice можно найти на http://www.libreoffice.org/" +"[libreoffice.org]." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:940 +msgid "To install LibreOffice, execute:" +msgstr "Для установки LibreOffice выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:944 +#, no-wrap +msgid "# pkg install libreoffice\n" +msgstr "# pkg install libreoffice\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:949 +msgid "" +"The LibreOffice package comes by default only in English. To have a " +"localized version of LibreOffice it is necessary to install a language " +"pack. For example, for the version localized in Spanish, it is necessary to " +"install the package package:editors/libreoffice-es[] with the command:" +msgstr "" +"Пакет LibreOffice по умолчанию поставляется только на английском языке. Для " +"получения локализованной версии LibreOffice необходимо установить языковой " +"пакет. Например, для версии на испанском языке необходимо установить пакет " +"package:editors/libreoffice-es[] с помощью команды:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:953 +#, no-wrap +msgid "# pkg install libreoffice-es\n" +msgstr "# pkg install libreoffice-es\n" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:956 +#, no-wrap +msgid "Calligra" +msgstr "Calligra" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:961 +msgid "" +"The KDE Plasma desktop environment includes an office suite which can be " +"installed separately from KDE Plasma. Calligra includes standard components " +"that can be found in other office suites. Words is the word processor, " +"Sheets is the spreadsheet program, Stage manages slide presentations, and " +"Karbon is used to draw graphical documents." +msgstr "" +"Среда рабочего стола KDE Plasma включает офисный пакет, который можно " +"установить отдельно от KDE Plasma. Calligra содержит стандартные компоненты, " +"которые можно встретить в других офисных пакетах. Words — это текстовый " +"процессор, Sheets — программа для работы с электронными таблицами, Stage " +"предназначен для управления презентациями, а Karbon используется для " +"создания графических документов." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:963 +msgid "To install Calligra, execute:" +msgstr "Для установки Calligra выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:967 +#, no-wrap +msgid "# pkg install calligra\n" +msgstr "# pkg install calligra\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:974 +msgid "" +"AbiWord is a free word processing program similar in look and feel to " +"Microsoft(R) Word. It is fast, contains many features, and is user-friendly." +msgstr "" +"AbiWord — это бесплатная программа для обработки текстов, внешне и " +"функционально схожая с Microsoft(R) Word. Она быстрая, обладает множеством " +"функций и удобна в использовании." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:976 +msgid "" +"AbiWord can import or export many file formats, including some proprietary " +"ones like Microsoft(R) [.filename]#.rtf#." +msgstr "" +"AbiWord может импортировать или экспортировать множество форматов файлов, " +"включая некоторые проприетарные, такие как Microsoft(R) [.filename]#.rtf#." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:978 +msgid "To install AbiWord, execute:" +msgstr "Для установки AbiWord выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:982 +#, no-wrap +msgid "# pkg install abiword\n" +msgstr "# pkg install abiword\n" + +#. type: Title == +#: documentation/content/en/books/handbook/desktop/_index.adoc:985 +#, no-wrap +msgid "Document Viewers" +msgstr "Просмотрщики документов" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:989 +msgid "" +"Some new document formats have gained popularity since the advent of UNIX(R) " +"and the viewers they require may not be available in the base system. This " +"section demonstrates how to install the following document viewers:" +msgstr "" +"Некоторые новые форматы документов приобрели популярность со времен " +"появления UNIX(R), и программы для их просмотра могут отсутствовать в " +"базовой системе. В этом разделе показано, как установить следующие программы " +"для просмотра документов:" + +#. type: Block title +#: documentation/content/en/books/handbook/desktop/_index.adoc:990 +#, no-wrap +msgid "Supported Document Viewers" +msgstr "Поддерживаемые программы для просмотра документов" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:996 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1023 +#, no-wrap +msgid "Okular" +msgstr "Okular" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:997 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1002 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1007 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1012 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1106 +#, no-wrap +msgid "GPL 2.0" +msgstr "GPL 2.0" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:998 +#, no-wrap +msgid "package:graphics/okular[]" +msgstr "package:graphics/okular[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:1001 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1037 +#, no-wrap +msgid "Evince" +msgstr "Evince" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:1003 +#, no-wrap +msgid "package:graphics/evince[]" +msgstr "package:graphics/evince[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:1006 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1051 +#, no-wrap +msgid "ePDFView" +msgstr "ePDFView" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:1008 +#, no-wrap +msgid "package:graphics/epdfview[]" +msgstr "package:graphics/epdfview[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:1011 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1064 +#, no-wrap +msgid "Xpdf" +msgstr "Xpdf" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:1013 +#, no-wrap +msgid "package:graphics/xpdf[]" +msgstr "package:graphics/xpdf[]" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:1015 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1020 +#, no-wrap +msgid "light" +msgstr "Мало" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:1016 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1077 +#, no-wrap +msgid "Zathura" +msgstr "Zathura" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:1017 +#, no-wrap +msgid "Zlib" +msgstr "Zlib" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:1018 +#, no-wrap +msgid "package:graphics/zathura[]" +msgstr "package:graphics/zathura[]" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1026 +msgid "Okular is a universal document viewer, part of the KDE Plasma project." +msgstr "" +"Okular — это универсальный просмотрщик документов, часть проекта KDE Plasma." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1028 +msgid "" +"Okular combines excellent functionality with the versatility of supporting " +"different kind of documents, like PDF, Postscript, DjVu, CHM, XPS, ePub and " +"others." +msgstr "" +"Okular сочетает в себе превосходную функциональность с универсальностью " +"поддержки различных типов документов, таких как PDF, Postscript, DjVu, CHM, " +"XPS, ePub и других." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1030 +msgid "To install Okular, execute:" +msgstr "Чтобы установить Okular, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1034 +#, no-wrap +msgid "# pkg install okular\n" +msgstr "# pkg install okular\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1042 +msgid "" +"Evince is a document viewer for multiple document formats including PDF and " +"Postscript. Part of the GNOME project. The goal of evince is to replace " +"document viewers such as ggv and gpdf with a single, simple application." +msgstr "" +"Evince — это программа для просмотра документов в различных форматах, " +"включая PDF и Postscript. Часть проекта GNOME. Цель Evince — заменить такие " +"программы для просмотра документов, как ggv и gpdf, на одно простое " +"приложение." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1044 +msgid "To install Evince, execute:" +msgstr "Для установки Evince выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1048 +#, no-wrap +msgid "# pkg install evince\n" +msgstr "# pkg install evince\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1055 +msgid "" +"ePDFView is a lightweight PDF document viewer that only uses the Gtk+ and " +"Poppler libraries. The aim of ePDFView is to make a simple PDF document " +"viewer, similar to Evince but without using the GNOME libraries." +msgstr "" +"ePDFView — это легковесная программа для просмотра PDF-документов, " +"использующая только библиотеки Gtk+ и Poppler. Цель ePDFView — создать " +"простой просмотрщик PDF-документов, аналогичный Evince, но без использования " +"библиотек GNOME." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1057 +msgid "To install ePDFView, execute:" +msgstr "Для установки ePDFView выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1061 +#, no-wrap +msgid "# pkg install epdfview\n" +msgstr "# pkg install epdfview\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1068 +msgid "" +"For users that prefer a small FreeBSD PDF viewer, Xpdf provides a light-" +"weight and efficient viewer which requires few resources. It uses the " +"standard X fonts and does not require any additional toolkit." +msgstr "" +"Для пользователей, предпочитающих небольшой просмотрщик PDF в FreeBSD, Xpdf " +"предоставляет легковесное и эффективное решение, требующее минимум ресурсов. " +"Он использует стандартные шрифты X и не требует дополнительных " +"инструментариев." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1070 +msgid "To install Xpdf, execute:" +msgstr "Для установки Xpdf выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1074 +#, no-wrap +msgid "# pkg install xpdf\n" +msgstr "# pkg install xpdf\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1081 +msgid "" +"Zathura is a highly customizable and functional document viewer. It provides " +"a minimalistic and space saving interface as well as an easy usage that " +"mainly focuses on keyboard interaction." +msgstr "" +"Zathura — это высоконастраиваемая и функциональная программа для просмотра " +"документов. Она предоставляет минималистичный и компактный интерфейс, а " +"также простоту использования, ориентированную в основном на взаимодействие с " +"клавиатурой." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1083 +msgid "To install zathura, with PDF support, execute:" +msgstr "Для установки zathura с поддержкой PDF выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1087 +#, no-wrap +msgid "# pkg install zathura zathura-pdf-mupdf\n" +msgstr "# pkg install zathura zathura-pdf-mupdf\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1090 +msgid "" +"Additionally, one can install package:graphics/zathura-pdf-poppler[] for " +"alternative PDF support, package:graphics/zathura-ps[] for PostScript " +"support, package:graphics/zathura-djvu[] for DjVu support, and " +"package:graphics/zathura-cb[] for comic book support." +msgstr "" +"Кроме того, можно установить package:graphics/zathura-pdf-poppler[] для " +"альтернативной поддержки PDF, package:graphics/zathura-ps[] для поддержки " +"PostScript, package:graphics/zathura-djvu[] для поддержки DjVu и " +"package:graphics/zathura-cb[] для поддержки комиксов." + +#. type: Title == +#: documentation/content/en/books/handbook/desktop/_index.adoc:1092 +#, no-wrap +msgid "Finance" +msgstr "Финансы" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1096 +msgid "" +"For managing personal finances on a FreeBSD desktop, some powerful and easy-" +"to-use applications can be installed. Some are compatible with widespread " +"file formats, such as the formats used by Quicken and Excel." +msgstr "" +"Для управления личными финансами на рабочем столе FreeBSD можно установить " +"мощные и удобные приложения. Некоторые из них совместимы с распространёнными " +"форматами файлов, такими как форматы, используемые Quicken и Excel." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1098 +msgid "This section covers these programs:" +msgstr "Этот раздел охватывает следующие программы:" + +#. type: Block title +#: documentation/content/en/books/handbook/desktop/_index.adoc:1099 +#, no-wrap +msgid "Supported Finance programs" +msgstr "Поддерживаемые программы для финансов" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:1105 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1117 +#, no-wrap +msgid "KMyMoney" +msgstr "KMyMoney" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:1107 +#, no-wrap +msgid "package:finance/kmymoney[]" +msgstr "package:finance/kmymoney[]" + +#. type: Title === +#: documentation/content/en/books/handbook/desktop/_index.adoc:1110 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1132 +#, no-wrap +msgid "GnuCash" +msgstr "GnuCash" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:1111 +#, no-wrap +msgid "GPL 2.0 and GPL 3.0" +msgstr "GPL 2.0 и GPL 3.0" + +#. type: Table +#: documentation/content/en/books/handbook/desktop/_index.adoc:1112 +#, no-wrap +msgid "package:finance/gnucash[]" +msgstr "package:finance/gnucash[]" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1123 +msgid "" +"KMyMoney is a personal finance application created by the KDE community. " +"KMyMoney aims to provide the important features found in commercial personal " +"finance manager applications. It also highlights ease-of-use and proper " +"double-entry accounting among its features. KMyMoney imports from standard " +"Quicken QIF files, tracks investments, handles multiple currencies, and " +"provides a wealth of reports." +msgstr "" +"KMyMoney — это приложение для управления личными финансами, созданное " +"сообществом KDE. KMyMoney стремится предоставить важные функции, которые " +"можно встретить в коммерческих приложениях для управления финансами. Среди " +"его особенностей — простота использования и поддержка двойной бухгалтерии. " +"KMyMoney поддерживает импорт из стандартных файлов Quicken QIF, отслеживание " +"инвестиций, работу с несколькими валютами и предоставляет множество отчетов." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1125 +msgid "To install KMyMoney, execute:" +msgstr "Для установки KMyMoney выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1129 +#, no-wrap +msgid "# pkg install kmymoney\n" +msgstr "# pkg install kmymoney\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1137 +msgid "" +"GnuCash is part of the GNOME effort to provide user-friendly, yet powerful, " +"applications to end-users. GnuCash can be used to keep track of income and " +"expenses, bank accounts, and stocks. It features an intuitive interface " +"while remaining professional." +msgstr "" +"GnuCash — это часть проекта GNOME, направленного на предоставление " +"пользователям удобных, но мощных приложений. GnuCash позволяет отслеживать " +"доходы и расходы, банковские счета и акции. Он сочетает интуитивно понятный " +"интерфейс с профессиональным функционалом." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1142 +msgid "" +"GnuCash provides a smart register, a hierarchical system of accounts, and " +"many keyboard accelerators and auto-completion methods. It can split a " +"single transaction into several more detailed pieces. GnuCash can import " +"and merge Quicken QIF files. It also handles most international date and " +"currency formats." +msgstr "" +"GnuCash предоставляет умный регистр, иерархическую систему счетов, а также " +"множество сочетаний клавиш и методов автодополнения. Он позволяет разделять " +"одну транзакцию на несколько более детализированных частей. GnuCash " +"поддерживает импорт и объединение файлов Quicken QIF. Также программа " +"работает с большинством международных форматов дат и валют." + +#. type: Plain text +#: documentation/content/en/books/handbook/desktop/_index.adoc:1144 +msgid "To install GnuCash, execute:" +msgstr "Для установки GnuCash выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/desktop/_index.adoc:1148 +#, no-wrap +msgid "# pkg install gnucash\n" +msgstr "# pkg install gnucash\n" + +#~ msgid "To increase messages size execute:" +#~ msgstr "Для увеличения размера сообщений выполните:" + +#~ msgid "" +#~ "XFCE requires `/proc` to be mounted. Add this line to `/etc/fstab` to " +#~ "mount this file system automatically during system startup:" +#~ msgstr "" +#~ "Для работы XFCE требуется подключение `/proc`. Добавьте следующую строку " +#~ "в `/etc/fstab`, чтобы автоматически подключать эту файловую систему при " +#~ "загрузке системы:" diff --git a/documentation/content/ru/books/handbook/disks/_index.adoc b/documentation/content/ru/books/handbook/disks/_index.adoc index 3948191349..a0bbb803ab 100644 --- a/documentation/content/ru/books/handbook/disks/_index.adoc +++ b/documentation/content/ru/books/handbook/disks/_index.adoc @@ -1,12 +1,14 @@ --- -title: Глава 17. Устройства хранения -part: Часть III. Системное администрирование -prev: books/handbook/audit +description: 'Эта глава посвящена использованию дисков и носителей данных в FreeBSD. Здесь рассматриваются SCSI- и IDE-диски, CD- и DVD-носители, диски в оперативной памяти и USB-устройства хранения данных.' next: books/handbook/geom -showBookMenu: true -weight: 21 params: - path: "/books/handbook/disks/" + path: /books/handbook/disks/ +part: 'Часть III. Администрирование системы' +prev: books/handbook/audit +showBookMenu: true +tags: ["storage", "disks", "gpart", "mount", "quotas", "encrypt", "GPT", "cdrecord", "quotas", "swap", "HAST", "CD", "DVD", "resizing", "growing"] +title: 'Глава 20. Устройства хранения' +weight: 24 --- [[disks]] @@ -17,7 +19,7 @@ params: :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 17 +:sectnumoffset: 20 :partnums: :source-highlighter: rouge :experimental: @@ -48,462 +50,289 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] [[disks-synopsis]] -== Краткий обзор +== Обзор -В этой главе описывается использование дисков во FreeBSD. К ним относятся диски в памяти, диски, подключенные по сети, обычные устройства хранения SCSI/IDE и устройства, использующие интерфейс USB. +Эта глава посвящена использованию дисков и носителей данных в FreeBSD. Сюда входят SCSI- и IDE-диски, CD- и DVD-носители, диски в памяти и USB-устройства хранения данных. -После чтения этой главы вы будете знать: +Прочитав эту главу, вы будете знать: -* Терминологию, используемую во FreeBSD для описания организации данных на физическом диске (разделы и слайсы). -* Как добавить дополнительные винчестеры к вашей системе. -* Как настроить FreeBSD для использования дисковых устройств USB. -* Как настроить виртуальные файловые системы, такие, как диски в оперативной памяти. +* Как добавить дополнительные жесткие диски в систему FreeBSD. +* Как увеличить размер раздела диска в FreeBSD. +* Как настроить FreeBSD для использования USB-накопителей. +* Как использовать CD и DVD носители в системе FreeBSD. +* Как использовать программы резервного копирования, доступные в FreeBSD. +* Как настроить диски в памяти. +* Что такое снимки файловой системы и как их эффективно использовать. * Как использовать квоты для ограничения использования дискового пространства. -* Как зашифровать диски, чтобы защитить их от взлома. -* Как создавать и записывать CD и DVD во FreeBSD. -* Различные варианты использования устройств хранения для резервных копий. -* Как использовать программы резервного копирования, имеющиеся для FreeBSD. -* Как выполнять резервное копирование на дискеты. -* Что такое мгновенные копии файловых систем и как их эффективно использовать - -Перед прочтением этой главы вам потребуется: - -* Узнать как настраивать и устанавливать новое ядро FreeBSD (crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]). - -[[disk-naming]] -== Имена устройств - -Далее приводится список физических устройств хранения информации, которые поддерживаются во FreeBSD, и имена устройств, которые им соответствуют. - -[[disk-naming-physical-table]] -.Соглашения по именованию физических дисков -[cols="1,1", frame="none", options="header"] -|=== -| Тип диска -| Имя дискового устройства - -|Винчестеры IDE -|`ad` - -|Приводы IDE CDROM -|`acd` - -|Винчестеры SCSI и дисковые устройства USB -|`da` +* Как зашифровать диски и раздел подкачки для защиты от злоумышленников. +* Как настроить сеть хранения данных с высокой доступностью. -|Приводы SCSI CDROM -|`cd` +Прежде чем читать эту главу, вы должны: -|Различные нестандартные приводы CDROM -|`mcd` для Mitsumi CD-ROM, `scd` для Sony CD-ROM - -|Дискеты -|`fd` - -|Ленточные приводы SCSI -|`sa` - -|Ленточные приводы IDE -|`ast` - -|Флэш-диски -|`fla` для флэш-устройств DiskOnChip(R) - -|Диски RAID -|`aacd` для Adaptec(R) AdvancedRAID, `mlxd` и `mlyd` для Mylex(R), `amrd` для AMI MegaRAID(R), `idad` для Compaq Smart RAID, `twed` для 3ware(R) RAID. -|=== +* Знать, как crossref:kernelconfig[kernelconfig,конфигурировать и установливать новое ядро FreeBSD]. [[disks-adding]] == Добавление дисков -В этом разделе будет описан процесс добавления нового SCSI диска на машину, имеющую в данный момент только один диск. Сначала выключим компьютер и установим диск в компьютер согласно инструкциям к компьютеру, контроллеру и от производителя диска. Из-за большого разнообразия этих процедур их рассмотрение выходит за рамки этого документа.. - -Войдите в систему как пользователь `root`. После того, как вы установили диск, просмотрите файл [.filename]#/var/run/dmesg.boot#, чтобы убедиться, что новый диск был найден. Продолжая наш пример, только что добавленный диск будет называться [.filename]#da1# и мы хотим смонтировать его в каталог [.filename]#/1# (если вы добавляете диск IDE, то устройство будет называться [.filename]#ad1#). +В этом разделе описывается, как добавить новый диск SATA к компьютеру, в котором в настоящее время установлен только один накопитель. Сначала выключите компьютер и установите диск, следуя инструкциям производителей компьютера, контроллера и диска. Перезагрузите систему и войдите в систему как `root`. -FreeBSD работает на IBM-PC совместимых компьютерах, поэтому она должна уметь работать с разделами PC BIOS. Однако они отличаются от традиционных разделов BSD. Диск ПК может иметь до четырёх записей разделов BIOS. Если диск на самом деле будет использоваться исключительно под FreeBSD, вы можете использовать режим _dedicated_. В противном случае FreeBSD будет располагаться в одном из разделов PC BIOS. Во FreeBSD разделы PC BIOS называются _слайсами_, чтобы не путать их с традиционными разделами BSD. Вы также можете использовать слайсы и с диском, предназначенным исключительно для FreeBSD, однако используемым в компьютере, на котором имеется дополнительная операционная система. Это является хорошим способом избежать путаницы в утилите `fdisk` других операционных систем, не связанных с FreeBSD. +Проверьте [.filename]#/var/run/dmesg.boot#, чтобы убедиться, что новый диск обнаружен. В этом примере новый SATA-диск будет отображаться как [.filename]#ada1#. -В случае слайсов диск будет добавлен как [.filename]#/dev/da1s1e#. Это интерпретируется следующим образом: диск SCSI, устройство номер 1 (второй диск SCSI), слайс 1 (раздел PC BIOS 1), и раздел BSD [.filename]#e#. В случае использования в выделенном режиме диск будет добавлен просто как [.filename]#/dev/da1e#. +Для этого примера на новом диске будет создан один большой раздел. Схема разделов https://en.wikipedia.org/wiki/GUID_Partition_Table[GPT] будет использована вместо более старой и менее универсальной схемы MBR. -Вследствие использования 32-разрядных целых чисел для адресации секторов, man:bsdlabel[8] ограничен 2^32-1 секторами на диск, или 2TB в большинстве случаев. Формат man:fdisk[8] позволяет наличие первого сектора со смещением не более 2^32-1 и длину не более 2^32-1, что ограничивает размер раздела до 2TB, а размер диска до 4TB в большинстве случаев. Формат man:sunlabel[8] ограничен 2^32-1 секторами на раздел и 8 разделами, что составляет 16TB. Для дисков большего раздела могут быть использованы разделы man:gpt[8]. - -=== Использование утилиты man:sysinstall[8] - -[.procedure] +[NOTE] ==== -. Использование Sysinstall -+ -Вы можете использовать простые меню утилиты `sysinstall` для разбиения на разделы и разметки нового диска. Войдите как пользователь `root` или воспользуйтесь командой `su`. Запустите команду `sysinstall` и войдите в меню `Configure`. Внутри `FreeBSD Configuration Menu`, пролистайте и выберите пункт `Fdisk`. -. Редактор разделов fdisk -+ -При работе с утилитой fdisk нажатие kbd:[A] используется для выделения под FreeBSD полностью всего диска. Когда будет задан вопрос о том, хотите ли вы "сохранить совместимость с другими возможными операционными системами в будущем", ответьте `YES`. Запишите изменения на диск при помощи команды kbd:[W]. А теперь выйдите из редактора FDISK, нажав kbd:[Q]. В этот момент вам будет задан вопрос о "Master Boot Record" (главной загрузочной записи). Так как вы добавляете диск к уже работающей системе, выберите `None`. -. Редактор метки диска -+ -Теперь вам нужно выйти из sysinstall и запустить эту утилиту снова. Следуйте указаниям выше, но на этот раз выберите пункт `Label`. Вы перейдёте к меню `Disk Label Editor`. Здесь вы создадите традиционные разделы BSD. На диске может быть до восьми разделов, имеющих метки `a-h`. Некоторые из меток разделов имеют особый смысл. Раздел `a` используется для размещения корневого раздела ([.filename]#/#). По этой причине только ваш системный диск (например, тот, с которого происходит загрузка), должен иметь раздел `a`. Раздел `b` используется под раздел подкачки, и вы можете иметь много дисков с разделами подкачки. Раздел `c` используется для доступа ко всему диску в режиме эксклюзивного использования или ко всему слайсу FreeBSD при работе в режиме с использованием слайсов. Остальные разделы имеют обычное предназначение. -+ -Редактор метки диска программы sysinstall использует раздел `e` для некорневого раздела и не для раздела подкачки. Внутри редактора метки диска создайте отдельную файловую систему, нажав kbd:[C]. Когда будет задан вопрос о том, будет ли это раздел с файловой системой (FS) или это будет раздел подкачки, выберите `FS` и наберите точку монтирования (например, [.filename]#/mnt#). При добавлении диска после установки системы, программа sysinstall не будет автоматически создавать записи в файле [.filename]#/etc/fstab#, поэтому точка монтирования не так уж и важна. -+ -Теперь вы готовы записать новую метку на диск и создать на нем файловую систему. Сделайте это, нажав kbd:[W]. Проигнорируйте сообщения об ошибках от sysinstall о невозможности смонтировать новый раздел. Полностью выйдите из редактора метки диска и из программы sysinstall. -. Завершение -+ -Последний шаг заключается в редактировании файла [.filename]#/etc/fstab# и добавлении записи для вашего нового диска. +Если добавляемый диск не пуст, старую информацию о разделах можно удалить с помощью `gpart delete`. Подробности см. в man:gpart[8]. ==== -=== Использовании утилит командной строки - -==== Работа со слайсами +Создается схема разделов, а затем добавляется единственный раздел. Для повышения производительности на новых дисках с большими размерами аппаратных блоков раздел выравнивается по границам одного мегабайта: -Следующая настройка позволит вашему диску корректно работать с другими операционными системами, которые могут быть установлены на вашем компьютере, и не вызовет конфликта с утилитами `fdisk` других операционных систем. Этот способ рекомендуется использовать для установок новых дисков. Используйте `эксклюзивный` режим, только если у вас есть реальные причины делать это! - -[source,shell] +[source, shell] .... -# dd if=/dev/zero of=/dev/da1 bs=1k count=1 -# fdisk -BI da1 # Инициализируем новый диск. -# bsdlabel -B -w da1s1 auto # Размечаем его. -# bsdlabel -e da1s1 # Редактируем только что созданную метку диска и добавляем разделы. -# mkdir -p /1 -# newfs /dev/da1s1e # Повторяем этот шаг для всех созданных разделов. -# mount /dev/da1s1e /1 # Монтируем раздел(ы) -# vi /etc/fstab # Добавляем соответствующую запись/записи в файл /etc/fstab. +# gpart create -s GPT ada1 +# gpart add -t freebsd-ufs -a 1M ada1 .... -Если у вас установлен диск IDE, подставьте [.filename]#ad# вместо [.filename]#da#. - -==== Эксклюзивный режим +В зависимости от использования может потребоваться несколько небольших разделов. См. man:gpart[8] для вариантов создания разделов меньше целого диска. -Если вы не будете использовать новый диск совместно с другой операционной системой, то вы можете использовать режим `эксклюзивного` использования. Отметьте, что этот режим может ввести в заблуждение операционные системы от Microsoft; однако информацию они не разрушат. А вот OS/2(R) компании IBM будет "забирать себе" любой раздел, который она найдет и не сможет распознать. +Информацию о разделах диска можно просмотреть с помощью `gpart show`: -[source,shell] +[source, shell] .... -# dd if=/dev/zero of=/dev/da1 bs=1k count=1 -# bsdlabel -Bw da1 auto -# bsdlabel -e da1 # create the `e' partition -# newfs /dev/da1e -# mkdir -p /1 -# vi /etc/fstab # add an entry for /dev/da1e -# mount /1 +% gpart show ada1 +=> 34 1465146988 ada1 GPT (699G) + 34 2014 - free - (1.0M) + 2048 1465143296 1 freebsd-ufs (699G) + 1465145344 1678 - free - (839K) .... -Альтернативный метод заключается в следующем: +Создается файловая система в новом разделе на новом диске: -[source,shell] +[source, shell] .... -# dd if=/dev/zero of=/dev/da1 count=2 -# bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin -# newfs /dev/da1e -# mkdir -p /1 -# vi /etc/fstab # add an entry for /dev/da1e -# mount /1 +# newfs -U /dev/ada1p1 .... -[[raid]] -== RAID - -[[raid-soft]] -=== Программный RAID - -[[ccd]] -==== Конфигурация драйвера объединённого диска (CCD) - -При выборе решения для организации хранилища самыми важными характеристиками являются скорость, надежность и стоимость. Редко все эти характеристики наличествуют одновременно; обычно быстрое и надёжное устройство хранения стоит дорого, а при уменьшении стоимости в жертву приносятся скорость работы или надёжность. - -При проектировании описываемой далее системы в качестве самого важного фактора была выбрана её стоимость, затем быстродействие и надёжность. Скорость передачи данных для этой системы ограничивалась только пропускной способностью сети. И, хотя надёжность очень важна, CCD-диск, описываемый ниже, обслуживал работу с данными, полные копии которых уже хранились на дисках CD-R, так они могли быть с лёгкостью обновлены. +Создается пустой каталог как _точка монтирования_ — место для подключения нового диска в файловой системе исходного диска: -При выборе решения для массового хранения данных первым шагом является определение ваших требований к нему. Если в ваших требованиях главными являются скорость или надёжность, а не стоимость, то ваш выбор будет отличаться от описываемой в этом разделе системы. - -[[ccd-installhw]] -===== Установка оборудования - -Кроме системного IDE-диска, основу описываемого далее CCD-диска общим объёмом примерно в 90 Гбайт составили три IDE-диска Western Digital 30GB, 5400 RPM. В идеальном случае каждый диск IDE имеет собственный контроллер и кабель, но для минимизации стоимости дополнительные контроллеры IDE не использовались. Вместо этого диски были настроены при помощи переключателей так, что на каждом IDE-контроллере находилось по одному ведущему и одному ведомому диску. - -До перезагрузки BIOS системы была настроена на автоматическое распознавание подключенных дисков. Более важно то, что при перезагрузке их распознала FreeBSD: - -[.programlisting] +[source, shell] .... -ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 -ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 -ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 -ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33 +# mkdir /newdisk .... -[NOTE] -==== -Если FreeBSD не распознала все диски, проверьте корректность положения переключателей на них. На большинстве IDE-дисков имеется также переключатель "Cable Select". Он _не имеет_ отношения к выбору ведущего и ведомого устройств. Для получения помощи по правильному положению переключателей обратитесь к документации по устройствам. -==== - -[[ccd-setup]] -===== Настройка CCD - -Драйвер man:ccd[4] позволяет вам взять несколько идентичных дисков и объединить их в одну логическую файловую систему. Для использования man:ccd[4] нужно ядро со встроенной поддержкой man:ccd[4]. Добавьте такую строку в файл конфигурации ядра, перестройте и установите новое ядро: +Наконец, в файл [.filename]#/etc/fstab# добавляется запись, чтобы новый диск автоматически монтировался при загрузке: [.programlisting] .... -device ccd +/dev/ada1p1 /newdisk ufs rw 2 2 .... -Поддержка man:ccd[4] также может быть обеспечена загрузкой подгружаемого модуля ядра. - -Для настройки man:ccd[4] сначала вам нужно воспользоваться утилитой man:bsdlabel[8] для разметки дисков: +Новый диск можно подключить вручную без перезагрузки системы: -[.programlisting] +[source, shell] .... -bsdlabel -w ad1 auto -bsdlabel -w ad2 auto -bsdlabel -w ad3 auto +# mount /newdisk .... -При этом создаются метки для [.filename]#ad1c#, [.filename]#ad2c# и [.filename]#ad3c#, которые занимают диск полностью. - -Следующим шагом является изменение типа метки диска. Для редактирования дисков можно использовать утилиту man:bsdlabel[8]: +[[disks-growing]] +== Изменение размера и увеличение дисков -[.programlisting] -.... -bsdlabel -e ad1 -bsdlabel -e ad2 -bsdlabel -e ad3 -.... +Емкость диска может быть увеличена без изменения уже имеющихся данных. Это часто происходит с виртуальными машинами, когда виртуальный диск оказывается слишком маленьким и его расширяют. Иногда образ диска записывается на USB-накопитель, но не использует его полную емкость. Здесь мы описываем, как изменить размер или _расширить_ содержимое диска, чтобы использовать увеличенную емкость. -При этом в редакторе, задаваемом переменной окружения `EDITOR` (обычно это man:vi[1]), открывается текущая метка каждого диска. +Определите имя устройства диска, который нужно изменить, просмотрев [.filename]#/var/run/dmesg.boot#. В этом примере в системе только один SATA-диск, поэтому диск будет отображаться как [.filename]#ada0#. -Не модифицированная метка диска будет выглядеть примерно следующим образом: +Перечислите разделы на диске, чтобы увидеть текущую конфигурацию: -[.programlisting] +[source, shell] .... -8 partitions: -# size offset fstype [fsize bsize bps/cpg] - c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) +# gpart show ada0 +=> 34 83886013 ada0 GPT (48G) [CORRUPT] + 34 128 1 freebsd-boot (64k) + 162 79691648 2 freebsd-ufs (38G) + 79691810 4194236 3 freebsd-swap (2G) + 83886046 1 - free - (512B) .... -Добавьте новый раздел `e` для использования драйвером man:ccd[4]. Как правило, он может быть скопирован с раздела `c`, но поле `fstype` _должно_ иметь значение `4.2BSD`. Теперь метка диска должна выглядеть примерно так: +[NOTE] +==== +Если диск был отформатирован с использованием схемы разделов https://en.wikipedia.org/wiki/GUID_Partition_Table[GPT], он может отображаться как "повреждённый", поскольку резервная таблица разделов GPT больше не находится в конце диска. Восстановите резервную таблицу разделов с помощью `gpart`: -[.programlisting] +[source, shell] .... -8 partitions: -# size offset fstype [fsize bsize bps/cpg] - c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) - e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597) +# gpart recover ada0 +ada0 recovered .... -[[ccd-buildingfs]] -===== Построение файловой системы +==== -Теперь, когда все диски размечены, вы должны построить man:ccd[4]. Для этого используйте утилиту man:ccdconfig[8] с параметрами, подобными следующим: +Теперь дополнительное пространство на диске доступно для использования новым разделом или для расширения существующего раздела: -[.programlisting] +[source, shell] .... -ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e +# gpart show ada0 +=> 34 102399933 ada0 GPT (48G) + 34 128 1 freebsd-boot (64k) + 162 79691648 2 freebsd-ufs (38G) + 79691810 4194236 3 freebsd-swap (2G) + 83886046 18513921 - free - (8.8G) .... -Использование и значение каждого параметра описывается ниже: -* Первым аргументом является конфигурируемое устройство, в нашем случае [.filename]#/dev/ccd0c#. Часть [.filename]#/dev/# является необязательной. -* Чередование для файловой системы. Оно определяет размер единицы блока данных в количестве дисковых блоков, каждый из которых обычно имеет объём в 512 байт. Таким образом, при чередовании в 32 это будет составлять 16384 байт. -* Опции для man:ccdconfig[8]. Если вы хотите включить зеркалирование диска, то можете задать это здесь. В нашей конфигурации зеркалирование для man:ccd[4] не предусмотрено, поэтому здесь задан 0 (ноль). -* Последним параметром для man:ccdconfig[8] является список устройств для объединения в массив. Для каждого устройства нужно задавать полное имя. +Разделы можно изменять в размере только в пределах непрерывного свободного пространства. В данном случае последним разделом на диске является раздел подкачки, но требуется изменить размер второго раздела. Поскольку разделы подкачки содержат только временные данные, их можно безопасно отмонтировать, удалить, а затем заново создать третий раздел после изменения размера второго раздела. -После запуска man:ccdconfig[8] устройство man:ccd[4] будет отконфигурировано. Может будет построить файловую систему. Обратитесь к справке по команде man:newfs[8] для выяснения требуемых параметров, или просто запустите: +Отключить раздел подкачки: -[.programlisting] +[source, shell] .... -newfs /dev/ccd0c +# swapoff /dev/ada0p3 .... -[[ccd-auto]] -===== Автоматическое выполнение - -Вообще говоря, вам потребуется монтировать man:ccd[4] при каждой перезагрузке. Для этого сначала вы должны отконфигурировать это устройство. Запишите вашу текущую конфигурацию в файл [.filename]#/etc/ccd.conf# при помощи такой команды: +Удалите третий раздел, указанный флагом `-i`, с диска _ada0_. -[.programlisting] +[source, shell] .... -ccdconfig -g > /etc/ccd.conf +# gpart delete -i 3 ada0 +ada0p3 deleted +# gpart show ada0 +=> 34 102399933 ada0 GPT (48G) + 34 128 1 freebsd-boot (64k) + 162 79691648 2 freebsd-ufs (38G) + 79691810 22708157 - free - (10G) .... -При перезагрузке скрипт `/etc/rc` запускает команду `ccdconfig -C`, если существует файл [.filename]#/etc/ccd.conf#. При этом man:ccd[4] автоматически конфигурируется так, чтобы он мог быть смонтирован. - -[NOTE] +[WARNING] ==== -Если при загрузке вы входите в однопользовательский режим, то перед тем, как выполнять монтирование man:ccd[4] по команде man:mount[8], вам нужно для конфигурации массива запустить следующую команду: -[.programlisting] +Существует риск потери данных при изменении таблицы разделов смонтированной файловой системы. Наилучшим вариантом будет выполнение следующих шагов на размонтированной файловой системе, загрузившись с Live CD-ROM или USB-устройства. Однако, если это крайне необходимо, смонтированную файловую систему можно изменить, отключив защитные механизмы GEOM: + +[source, shell] .... -ccdconfig -C +# sysctl kern.geom.debugflags=16 .... ==== -Для автоматического монтирования man:ccd[4] поместите запись о man:ccd[4] в файл [.filename]#/etc/fstab#, чтобы он мог быть смонтирован во время загрузки системы: +Измените размер раздела, оставив место для создания раздела подкачки нужного размера. Раздел, который нужно изменить, указывается с помощью `-i`, а новый желаемый размер — с помощью `-s`. Дополнительно выравнивание раздела контролируется с помощью `-a`. Это изменяет только размер раздела. Файловая система в разделе будет расширена в отдельном шаге. -[.programlisting] +[source, shell] .... -/dev/ccd0c /media ufs rw 2 2 +# gpart resize -i 2 -s 47G -a 4k ada0 +ada0p2 resized +# gpart show ada0 +=> 34 102399933 ada0 GPT (48G) + 34 128 1 freebsd-boot (64k) + 162 98566144 2 freebsd-ufs (47G) + 98566306 3833661 - free - (1.8G) .... -[[raid-hard]] -=== Аппаратный RAID - -FreeBSD поддерживает также целый ряд аппаратных контроллеров RAID. Эти устройства самостоятельно управляют RAID-подсистемой, без необходимости иметь специфичное для FreeBSD программное обеспечения управления массивом. - -При помощи встроенной в адаптер BIOS, он сам управляет большинством дисковых операций. Далее следует краткое описание установки при помощи контроллера Promise IDERAID. После установки адаптера и запуска системы, выдаётся запрос на ввод. Следуйте указаниям для входа в настройку адаптера. Отсюда вы можете объединить все подключенные диски. После этого во FreeBSD диск(и) будут выглядеть как один диск. Аналогично могут быть настроены и другие уровни RAID. - -=== Перестроение массивов ATA RAID1 +Воссоздайте раздел подкачки и активируйте его. Если размер не указан с помощью `-s`, используется все оставшееся пространство: -FreeBSD позволяет вам выполнять горячую замену вышедшего из строя диска. При этом требуется, чтобы вы заметили это до перезагрузки. - -Вероятно, в файле [.filename]#/var/log/messages# или в выдаче команды man:dmesg[8] вы увидите примерно следующее: - -[.programlisting] +[source, shell] .... -ad6 on monster1 suffered a hard error. -ad6: READ command timeout tag=0 serv=0 - resetting -ad6: trying fallback to PIO mode -ata3: resetting devices .. done -ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\ -status=59 error=40 -ar0: WARNING - mirror lost +# gpart add -t freebsd-swap -a 4k ada0 +ada0p3 added +# gpart show ada0 +=> 34 102399933 ada0 GPT (48G) + 34 128 1 freebsd-boot (64k) + 162 98566144 2 freebsd-ufs (47G) + 98566306 3833661 3 freebsd-swap (1.8G) +# swapon /dev/ada0p3 .... -При помощи man:atacontrol[8] получите дополнительную информацию: +Увеличьте файловую систему UFS, чтобы использовать новую ёмкость изменённого раздела: -[source,shell] +[source, shell] .... -# atacontrol list -ATA channel 0: - Master: no device present - Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 - -ATA channel 1: - Master: no device present - Slave: no device present - -ATA channel 2: - Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 - Slave: no device present - -ATA channel 3: - Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 - Slave: no device present - -# atacontrol status ar0 -ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED +# growfs /dev/ada0p2 +Device is mounted read-write; resizing will result in temporary write suspension for /. +It's strongly recommended to make a backup before growing the file system. +OK to grow file system on /dev/ada0p2, mounted on /, from 38GB to 47GB? [Yes/No] Yes +super-block backups (for fsck -b #) at: + 80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752, + 89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432 .... -[.procedure] -==== +Если файловая система ZFS, изменение размера запускается выполнением подкоманды `online` с ключом `-e`: -. Сначала вам нужно отключить канал контроллера ATA, содержащий отказавший диск, чтобы его можно было без последствий извлечь: -+ -[source,shell] -.... -# atacontrol detach ata3 -.... -+ -. Замените диск. -. Повторно подключите канал дискового контроллера: -+ -[source,shell] -.... -# atacontrol attach ata3 -Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 -Slave: no device present +[source, shell] .... -+ -. Добавьте новый диск к массиву в качестве резервного: -+ -[source,shell] -.... -# atacontrol addspare ar0 ad6 -.... -+ -. Перестройте массив: -+ -[source,shell] +# zpool online -e zroot /dev/ada0p2 .... -# atacontrol rebuild ar0 -.... -+ -. Проверить состояние дел можно при помощи следующей команды: -+ -[source,shell] -.... -# dmesg | tail -10 -[выдача удалена] -ad6: removed from configuration -ad6: deleted from ar0 disk1 -ad6: inserted into ar0 disk1 as spare -# atacontrol status ar0 -ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed -.... -+ -. Дождитесь завершения этой операции. -==== +Как раздел, так и файловая система на нем теперь изменены в размере для использования нового доступного пространства на диске. [[usb-disks]] -== USB устройства хранения +== USB-накопители -Множество современных устройств хранения используют Universal Serial Bus (USB): жесткие диски, брелоки USB, CD-R приводы, и т.д. FreeBSD предоставляет поддержку этих устройств. +Многие внешние устройства хранения данных, такие как жесткие диски, USB-флешки, а также устройства для записи CD и DVD, используют универсальную последовательную шину (USB). FreeBSD поддерживает устройства USB 1.x, 2.0 и 3.0. -=== Настройка +[NOTE] +==== +Поддержка USB 3.0 несовместима с некоторым оборудованием, включая чипсеты Haswell (Lynx point). Если FreeBSD загружается с сообщением `failed with error 19`, отключите xHCI/USB3 в BIOS системы. +==== -Драйвер man:umass[4] предоставляет поддержку устройств хранения USB. Если вы используете [.filename]#GENERIC# ядро, изменять что-либо в настройках не потребуется. Если вы используете настроенное ядро, убедитесь, что в файле настройки присутствуют следующие строки: +Поддержка USB-накопителей встроена в ядро [.filename]#GENERIC#. Для собственной сборки ядра убедитесь, что следующие строки присутствуют в конфигурационном файле ядра: [.programlisting] .... -device scbus -device da -device pass -device uhci -device ohci -device ehci -device usb -device umass +device scbus # SCSI bus (required for ATA/SCSI) +device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) +device uhci # provides USB 1.x support +device ohci # provides USB 1.x support +device ehci # provides USB 2.0 support +device xhci # provides USB 3.0 support +device usb # USB Bus (required) +device umass # Disks/Mass storage - Requires scbus and da +device cd # needed for CD and DVD burners .... -Для доступа к устройствам хранения USB драйвер man:umass[4] использует подсистему SCSI, ваши устройства USB будут видны системе как SCSI устройства. В зависимости от чипсета USB на материнской плате, для включения поддержки USB 1.X вам потребуется только один из параметров `device uhci` или `device ohci`. Однако, наличие обоих этих параметров не помешает. Поддержка контроллеров USB 2.0 предоставляется драйвером man:ehci[4] (строка `device ehci`). Не забудьте скомпилировать и установить новое ядро после добавления каких-либо строк. +FreeBSD использует драйвер man:umass[4], который задействует подсистему SCSI для доступа к USB-устройствам хранения данных. Поскольку любое USB-устройство будет распознаваться системой как SCSI-устройство, если USB-устройство является записывающим CD- или DVD-приводом, _не_ включайте `device atapicam` в конфигурационный файл пользовательского ядра. -[NOTE] -==== -Если ваше USB устройство это пишущий привод CD-R или DVD, необходимо добавить в ядро SCSI CD-ROM драйвер, man:cd[4], следующей строкой: +Оставшаяся часть этого раздела демонстрирует, как убедиться, что USB-накопитель распознаётся FreeBSD, и как настроить устройство для использования. -[.programlisting] +=== Настройка устройств + +Для проверки конфигурации USB подключите USB-устройство. Используйте `dmesg`, чтобы убедиться, что устройство появилось в системном буфере сообщений. Результат должен выглядеть примерно так: + +[source, shell] .... -device cd +umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0 +umass0: SCSI over Bulk-Only; quirks = 0x0100 +umass0:4:0:-1: Attached to scbus4 +da0 at umass-sim0 bus 0 scbus4 target 0 lun 0 +da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device +da0: Serial Number WD-WXE508CAN263 +da0: 40.000MB/s transfers +da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C) +da0: quirks=0x2<NO_6_BYTE> .... -Поскольку устройство записи видно как SCSI диск, драйвер man:atapicam[4] не должен использоваться в файле настройки. -==== - -=== Тестирование конфигурации +Марка, файл устройства ([.filename]#da0#), скорость и размер будут отличаться в зависимости от устройства. -Конфигурация готова к тестированию, подключите устройство USB, и в буфере системных сообщений (man:dmesg[8]), диск должен отобразиться примерно так: +Поскольку USB-устройство распознаётся как SCSI, для вывода списка USB-накопителей, подключённых к системе, можно использовать `camcontrol`: -[source,shell] +[source, shell] .... -umass0: USB Solid state disk, rev 1.10/1.00, addr 2 -GEOM: create disk da0 dp=0xc2d74850 -da0 at umass-sim0 bus 0 target 0 lun 0 -da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device -da0: 1.000MB/s transfers -da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C) +# camcontrol devlist +<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0) .... -Конечно, производитель, имя устройства ([.filename]#da0#) и другие детали могут отличаться в зависимости от конфигурации. - -Поскольку устройство USB видится как SCSI, команда `camcontrol` может быть использована для вывода списка устройств хранения USB, подключенных к системе: +Или можно использовать `usbconfig` для вывода списка устройств. Дополнительную информацию об этой команде смотрите в man:usbconfig[8]. -[source,shell] +[source, shell] .... -# camcontrol devlist -<Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0) +# usbconfig +ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA) .... -Если на диске есть файловая система, у вас должна быть возможность смонтировать ее. <<disks-adding>> поможет вам создать и отформатировать разделы на диске USB если потребуется. +Если устройство не было отформатировано, обратитесь к crossref:disks[disks-adding,Добавление дисков] для получения инструкций по форматированию и созданию разделов на USB-накопителе. Если накопитель поставляется с файловой системой, он может быть смонтирован пользователем `root` с помощью инструкций из crossref:basics[mount-unmount,«Монтирование и размонтирование файловых систем»]. [WARNING] ==== - -Ниже описанный механизм (`vfs.usermount`), допускающий монтирование случайных носителей пользователями, не являющимися доверенными, считается небезопасным. Большинство файловых систем во FreeBSD никак не ограждено от возможности _несанкционированного_ монтирования устройств. +Разрешение непривилегированным пользователям монтировать произвольные носители путем включения `vfs.usermount`, как описано ниже, не должно считаться безопасным с точки зрения защиты. Большинство файловых систем не предназначены для защиты от вредоносных устройств. ==== -Чтобы это устройство мог смонтировать обычный пользователь, необходимо выполнить определенные действия. Для начала, необходимо дать обычным пользователям доступ к устройствам, создаваемым при подключении USB устройства. Решение состоит во включении всех пользователей данных устройств в группу `operator`. Это делается утилитой man:pw[8]. Затем, когда устройства созданы, у группы `operator` должен быть доступ на чтение и запись для этих устройств. Это выполняется путем добавления следующих строк в [.filename]#/etc/devfs.rules#: +Чтобы устройство можно было монтировать обычным пользователем, одним из решений является добавление всех пользователей устройства в группу `operator` с помощью man:pw[8]. Затем убедитесь, что группа `operator` имеет права на чтение и запись устройства, добавив следующие строки в [.filename]#/etc/devfs.rules#: [.programlisting] .... @@ -513,1179 +342,913 @@ add path 'da*' mode 0660 group operator [NOTE] ==== -Если к системе подключены SCSI диски, это должно быть сделано немного иначе. Так, если в системе уже есть диски с [.filename]#da0# по [.filename]#da2#, вторая строка должна выглядеть так: +Если в системе также установлены внутренние SCSI-диски, измените вторую строку следующим образом: [.programlisting] .... add path 'da[3-9]*' mode 0660 group operator .... -Это исключит уже существующие диски из группы `operator`. +Это исключит первые три SCSI-диска ([.filename]#da0# — [.filename]#da2#) из принадлежности к группе `operator`. Замените _3_ на количество внутренних SCSI-дисков. Дополнительную информацию об этом файле смотрите в man:devfs.rules[5]. ==== -Вам также потребуется включить набор правил man:devfs.rules[5] в файл [.filename]#/etc/rc.conf#: +Затем включите набор правил в [.filename]#/etc/rc.conf#: [.programlisting] .... devfs_system_ruleset="localrules" .... -Затем, ядро необходимо настроить так, чтобы оно позволяло обычным пользователям монтировать файловые системы. Простейший способ сделать это - добавить в файл [.filename]#/etc/sysctl.conf# следующую строку: +Затем настройте систему для разрешения обычным пользователям монтировать файловые системы, добавив следующую строку в [.filename]#/etc/sysctl.conf#: [.programlisting] .... vfs.usermount=1 .... -Этот параметр установится только после последующей перезагрузки. Для установки этой переменной можно также использовать man:sysctl[8]. +Поскольку это вступит в силу только после следующей перезагрузки, используйте `sysctl`, чтобы установить эту переменную сейчас: -Последний шаг - создание каталога, куда будет монтироваться файловая система. Каталог должен принадлежать пользователю, монтирующему файловую систему. Один из способов сделать это под пользователем `root` - создать каталог [.filename]#/mnt/username# (замените _username_ именем пользователя, а _usergroup_ - именем главной группы пользователя): +[source, shell] +.... +# sysctl vfs.usermount=1 +vfs.usermount: 0 -> 1 +.... -[source,shell] +Последним шагом является создание каталога, в который будет монтироваться файловая система. Этот каталог должен принадлежать пользователю, который будет монтировать файловую систему. Один из способов сделать это — создать подкаталог от имени `root`, принадлежащий этому пользователю, например [.filename]#/mnt/username#. В следующем примере замените _username_ на имя пользователя, а _usergroup_ на основную группу пользователя: + +[source, shell] .... # mkdir /mnt/username # chown username:usergroup /mnt/username .... -Предположим, что USB брелок подключен, и появилось устройство [.filename]#/dev/da0s1#. Поскольку эти устройства обычно поставляются форматированными с файловой системой FAT, их можно смонтировать так: +Предположим, подключена USB-флешка, и появилось устройство [.filename]#/dev/da0s1#. Если устройство отформатировано с файловой системой FAT, пользователь может смонтировать его с помощью: -[source,shell] +[source, shell] .... % mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username .... -Если вы отключите устройство (диск должен быть сначала размонтирован), вы должны увидеть в буфере системных сообщений что-то подобное: +Прежде чем устройство можно будет отключить, его _необходимо_ размонтировать: -[source,shell] +[source, shell] .... -umass0: at uhub0 port 1 (addr 2) disconnected -(da0:umass-sim0:0:0:0): lost device -(da0:umass-sim0:0:0:0): removing device entry -GEOM: destroy disk da0 dp=0xc2d74850 -umass0: detached +% umount /mnt/username .... -=== Дополнительная информация - -Помимо разделов <<disks-adding,Добавление дисков>> и crossref:basics[mount-unmount,Монтирование и размонтирование файловых систем], также может быть полезно чтение различных страниц справочника: man:umass[4], man:camcontrol[8], и man:usbconfig[8] для FreeBSD 8.X или man:usbdevs[8] для более ранних версий FreeBSD. - -[[creating-cds]] -== Запись и использование оптических носителей (CD) - -=== Введение +После удаления устройства в системном буфере сообщений будут отображены сообщения, аналогичные следующим: -Компакт-диски (CD) имеют несколько особенностей, отличающих их от обычных дисков. Во-первых, на них невозможно производить запись. Они спроектированы с расчетом на то, что их можно читать последовательно без задержек на перемещение головки между дорожками. К тому же их гораздо проще переносить от системы к системе, чем носители близкого объема. - -У CD имеются дорожки, но они представляют собой последовательность данных, читаемую последовательно, и не являются физической характеристикой диска. Для записи CD во FreeBSD вы готовите файлы данных, которые будут формировать дорожки на компакт-диске, а затем записываете дорожки на CD. +[source, shell] +.... +umass0: at uhub3, port 2, addr 3 (disconnected) +da0 at umass-sim0 bus 0 scbus4 target 0 lun 0 +da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached +(da0:umass-sim0:0:0:0): Periph destroyed +.... -Файловая система ISO 9660 была разработана с учетом этих отличий, К сожалению, она унаследовала ограничения файловых систем, которые были тогда. К счастью, она дает механизм расширений, которые позволяют правильно записанным дискам обходить эти ограничения и при этом продолжать работать с системами, которые не поддерживают эти расширения. +=== Автомонтирование съемных носителей -Для создания файла данных, содержащего файловую систему ISO 9660, используется программа man:mkisofs[8], которая включена в порт package:sysutils/cdrtools[]. Она имеет опции, поддерживающие различные расширения, и описана ниже. +USB-устройства могут автоматически монтироваться при раскомментировании этой строки в [.filename]#/etc/auto_master#: -Какой инструмент использовать для записи CD, зависит от того, является ли ваше устройство для записи CD устройством ATAPI или каким-либо другим. С устройствами для записи стандарта ATAPI используется программа `burncd`, которая является частью комплекта поставки системы. С устройствами SCSI и USB нужно использовать `cdrecord` из порта package:sysutils/cdrtools[]. Утилиту `cdrecord` и другие инструменты для SCSI-приводов также можно использовать при работе с ATAPI-оборудованием через <<atapicam,модуль ATAPI/CAM>>. +[source, shell] +.... +/media -media -nosuid +.... -Если для записи CD вам нужна программа с графическим интерфейсом пользователя, взгляните на X-CD-Roast или K3b. Они доступны в виде пакетов или из портов package:sysutils/xcdroast[] и package:sysutils/k3b[]. Программам X-CD-Roast и K3b для работы с оборудованием ATAPI требуется <<atapicam,модуль ATAPI/CAM>>. +Затем добавьте следующие строки в [.filename]#/etc/devd.conf#: -[[mkisofs]] -=== mkisofs +[source, shell] +.... +notify 100 { + match "system" "GEOM"; + match "subsystem" "DEV"; + action "/usr/sbin/automount -c"; +}; +.... -Программа man:mkisofs[8], поставляемая с портом package:sysutils/cdrtools[] создаёт файловую систему ISO 9660, которая является образом дерева каталогов в пространстве имён файловой системы UNIX(R). В самом простом случае она используется так: +Перезагрузите конфигурацию, если man:autofs[5] и man:devd[8] уже запущены: -[source,shell] +[source, shell] .... -# mkisofs -o imagefile.iso /path/to/tree +# service automount restart +# service devd restart .... -Эта команда создаст файл _imagefile.iso_, содержащий файловую систему ISO 9660, которая является копией дерева каталогов _/path/to/tree_. Во время работы она будет преобразовывать имена файлов в имена, которые удовлетворяют ограничениям файловой системы ISO 9660, и исключит файлы, которые носят имена, неподходящие для файловой системы ISO. +man:autofs[5] можно настроить для запуска при загрузке, добавив следующую строку в [.filename]#/etc/rc.conf#: -Для того, чтобы обойти эти ограничения, имеется несколько опций. В частности, `-R` включает использование расширений Rock Ridge, распространенных в UNIX(R)-системах, с `-J` будут применены расширения Joliet, используемые в системах от Microsoft, а `-hfs` может использоваться для создания файловых систем HFS, используемых в Mac OS(R). +[.programlisting] +.... +autofs_enable="YES" +.... -Для CD, которые будут использоваться только с системами FreeBSD, может использоваться опция `-U`, отменяющая все ограничения на имена файлов. При использовании с опцией `-R` генерируется образ файловой системы, идентичный начальному дереву FreeBSD, хотя при этом стандарт ISO 9660 может нарушаться в нескольких местах. +man:autofs[5] требует, чтобы man:devd[8] был включён, как это и настроено по умолчанию. -Последней часто используемой опцией является `-b`. Она используется для указания загрузочного образа для использования при создании загрузочного CD в стандарте "El Torito". Этой опции указывается аргумент, который является маршрутом к загрузочному образу из корня дерева, записываемого на CD. По умолчанию, man:mkisofs[8] создает образ ISO в так называемом режиме "эмуляции флоппи-диска", и потому ожидает загрузочный образ размера строго 1200, 1440 или 2880 KB. Некоторые загрузчики, в том числе и тот, что используется на дистрибутивных дисках FreeBSD, не используют режим эмуляции; в этом случае должна использоваться опция `-no-emul-boot`. Так что, если [.filename]#/tmp/myboot# содержит загрузочную систему FreeBSD с загрузочным образом в [.filename]#/tmp/myboot/boot/cdboot#, вы можете создать образ файловой системы ISO 9660 в [.filename]#/tmp/bootable.iso# следующим образом: +Запустите службы немедленно с помощью: -[source,shell] +[source, shell] .... -# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot +# service automount start +# service automountd start +# service autounmountd start +# service devd start .... -Сделав это, и имея в ядре отконфигурированное устройство [.filename]#md#, вы можете смонтировать файловую систему, выполнив: +Каждая файловая система, которая может быть автоматически смонтирована, отображается как каталог в [.filename]#/media/#. Каталог именуется в соответствии с меткой файловой системы. Если метка отсутствует, каталог именуется в соответствии с устройством. + +Файловая система автоматически монтируется при первом доступе и размонтируется после периода неактивности. Автомонтируемые диски также можно размонтировать вручную: -[source,shell] +[source, shell] .... -# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 -# mount -t cd9660 /dev/md0 /mnt +# automount -fu .... -В этот момент вы можете проверить, что [.filename]#/mnt# и [.filename]#/tmp/myboot# идентичны. - -Имеется много других опций, которые можно использовать с программой man:mkisofs[8] для тонкой настройки её поведения. В частности: модификации в размещении ISO 9660 и создание дисков в форматах Joliet и HFS. Обратитесь к справочным страницам по man:mkisofs[8] для получения более подробной информации. +Этот механизм обычно используется для карт памяти и USB-флешек. Он может применяться с любыми блочными устройствами, включая оптические приводы или iSCSI LUN. -[[burncd]] -=== burncd +[[creating-cds]] +== Создание и использование CD-носителей -Если ваше устройство для записи CD соответствует стандарту ATAPI, то для записи ISO-образа на компакт-диск вы можете воспользоваться командой `burncd`. `burncd` входит в базовый комплект операционной системы и установлена как [.filename]#/usr/sbin/burncd#. Использовать её очень просто, так как параметров у ней немного: +Компакт-диски (CD) обладают рядом особенностей, которые отличают их от обычных дисков. Они спроектированы так, чтобы их можно было читать непрерывно без задержек на перемещение головки между дорожками. Хотя на CD действительно есть дорожки, они обозначают участки данных, предназначенные для непрерывного чтения, а не физическое свойство диска. Файловая система ISO 9660 была разработана для работы с этими различиями. -[source,shell] -.... -# burncd -f cddevice data imagefile.iso fixate -.... +Коллекция портов FreeBSD предоставляет несколько утилит для записи и копирования аудио- и данных на CD. В этой главе демонстрируется использование нескольких утилит командной строки. Для записи CD с графическим интерфейсом можно установить пакеты или порты package:sysutils/xcdroast[] или package:sysutils/k3b[]. -По этой команде файл _imagefile.iso_ будет скопирован на _cddevice_. По умолчанию используется устройство [.filename]#/dev/acd0#. Для получения информации о параметрах, задающих скорость записи, выброс диска после записи и запись звуковых данных, обратитесь к man:burncd[8]. - -[[cdrecord]] -=== cdrecord +[[atapicam]] +=== Поддерживаемые устройства -Если ваше устройство для записи CD не соответствует стандарту ATAPI, то для записи компакт-дисков вам нужно пользоваться программой `cdrecord`. `cdrecord` не входит в комплект поставки системы; вы должны установить её из порта package:sysutils/cdrtools[] или из соответствующего пакета. Изменения в системе могут приводить к тому, что откомпилированные версии этой программы работать не будут, или приводить к порче дисков. Поэтому вы должны при обновлении системы либо обновить порт, либо, если вы crossref:cutting-edge[stable,следуете -STABLE], обновить порт при появлении его новой версии. +Ядро [.filename]#GENERIC# обеспечивает поддержку SCSI, USB и устройств чтения и записи ATAPICD. Если используется собственное ядро, параметры, которые должны присутствовать в конфигурационном файле ядра, зависят от типа устройства. -Хотя `cdrecord` имеет много опций, в основном использовать её ещё проще, чем `burncd`. Запись образа ISO 9660 делается такой командой: +Для SCSI-устройства, записывающего CD или DVD диски, убедитесь, что присутствуют следующие параметры: -[source,shell] +[.programlisting] .... -# cdrecord dev=device imagefile.iso +device scbus # SCSI bus (required for ATA/SCSI) +device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) +device cd # needed for CD and DVD burners .... -Тонким моментом при использовании `cdrecord` является определение правильного устройства `dev`. Чтобы задать параметр правильно, воспользуйтесь флагом `-scanbus` команды `cdrecord`, в результате чего может получиться примерно такой результат: +Для USB-привода убедитесь, что указаны следующие параметры: -[source,shell] +[.programlisting] .... -# cdrecord -scanbus -Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 J"org Schilling -Using libscg version 'schily-0.1' -scsibus0: - 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk - 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk - 0,2,0 2) * - 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk - 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM - 0,5,0 5) * - 0,6,0 6) * - 0,7,0 7) * -scsibus1: - 1,0,0 100) * - 1,1,0 101) * - 1,2,0 102) * - 1,3,0 103) * - 1,4,0 104) * - 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM - 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner - 1,7,0 107) * +device scbus # SCSI bus (required for ATA/SCSI) +device da # Direct Access (disks) +device pass # Passthrough device (direct ATA/SCSI access) +device cd # needed for CD and DVD burners +device uhci # provides USB 1.x support +device ohci # provides USB 1.x support +device ehci # provides USB 2.0 support +device xhci # provides USB 3.0 support +device usb # USB Bus (required) +device umass # Disks/Mass storage - Requires scbus and da .... -Здесь приведены соответствующие значения параметров `dev` для имеющихся устройств. Найдите здесь ваше устройство для записи CD, а в качестве параметров для `dev` задавайте три числа через запятые. В нашем случае CRW-устройству соответствуют числа 1,5,0, так что правильным параметром будет `dev=1,5,0`. Имеется более простой способ задать эти значения; обратитесь к справочной информации о man:cdrecord[1] для выяснения подробностей. Там же находится информация о записи звуковых дорожек, управлении скоростью и другим вещам. - -[[duplicating-audiocds]] -=== Копирование аудио CD +Для ATAPI устройств, записывающих CD или DVD диски, убедитесь, что указаны следующие параметры: -Вы можете копировать музыкальные CD, извлекая данные аудио с CD в набор файлов, а затем записывая эти файлы на чистый CD. Процесс несколько различен в случаях использования устройств ATAPI и SCSI. +[.programlisting] +.... +device ata # Legacy ATA/SATA controllers +device scbus # SCSI bus (required for ATA/SCSI) +device pass # Passthrough device (direct ATA/SCSI access) +device cd # needed for CD and DVD burners +.... -[.procedure] +[NOTE] ==== -*Procedure: Устройства SCSI* +В версиях FreeBSD до 10.x эта строка также необходима в конфигурационном файле ядра, если устройство записи является ATAPI-устройством: -. Используйте `cdda2wav` для извлечения данных аудио. -+ -[source,shell] +[.programlisting] .... -% cdda2wav -vall -D2,0 -B -Owav +device atapicam .... -+ -. Воспользуйтесь `cdrecord` для записи файлов [.filename]#.wav#. -+ -[source,shell] + +В качестве альтернативы, этот драйвер можно загрузить при загрузке, добавив следующую строку в файл [.filename]#/boot/loader.conf#: + +[.programlisting] .... -% cdrecord -v dev=2,0 -dao -useinfo *.wav +atapicam_load="YES" .... -+ -Значение, соответствующее _2,0_, должно быть установлено правильно, как это описано в <<cdrecord>>. -==== -[.procedure] +Это потребует перезагрузки системы, так как этот драйвер может быть загружен только во время загрузки. ==== -*Procedure: Устройства ATAPI* -[NOTE] -====== -На приводах ATAPI также можно использовать утилиту `cdda2wav`. Для её функционирования потребуется <<atapicam,драйвер ATAPI/CAM>>. Следует отметить, что данная утилита предназначена для корректного извлечения и обработки аудио данных, в отличие от утилиты, приведенной в нижеследующем примере. -====== +Чтобы убедиться, что FreeBSD распознает устройство, выполните команду `dmesg` и найдите запись об этом устройстве. В системах до версии 10.x имя устройства в первой строке вывода будет [.filename]#acd0# вместо [.filename]#cd0#. -. Драйвер устройств ATAPI CD делает каждую дорожку доступной как [.filename]#/dev/acddtnn#, где _d_ является номером привода, а _nn_ соответствует номеру дорожки, который записывается двумя десятичными цифрами с нулём в начале, если это нужно. Таким образом, первая дорожка на первом диске будет носить имя [.filename]#/dev/acd0t01#, вторая будет именоваться [.filename]#/dev/acd0t02#, третья будет носить имя [.filename]#/dev/acd0t03# и так далее. -+ -Удостоверьтесь, что соответствующий файл имеется в каталоге [.filename]#/dev#. При его отсутствии следует принудительно перечитать оглавление диска: -+ -[source,shell] +[source, shell] .... -# dd if=/dev/acd0 of=/dev/null count=1 +% dmesg | grep cd +cd0 at ahcich1 bus 0 scbus1 target 0 lun 0 +cd0: <HL-DT-ST DVDRAM GU70N LT20> Removable CD-ROM SCSI-0 device +cd0: Serial Number M3OD3S34152 +cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes) +cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed .... -+ -. Извлеките каждую дорожку при помощи команды man:dd[1]. При извлечении файлов вы должны также использовать специфическое значение для размера блока. -+ -[source,shell] + +[[cdrecord]] +=== Запись компакт-диска + +В FreeBSD для записи компакт-дисков можно использовать `cdrecord`. Эта команда устанавливается с пакетом или портом package:sysutils/cdrtools[]. + +Хотя `cdrecord` имеет множество опций, базовое использование просто. Укажите имя ISO-файла для записи и, если в системе несколько устройств для записи, укажите имя используемого устройства: + +[source, shell] .... -# dd if=/dev/acd0t01 of=track1.cdr bs=2352 -# dd if=/dev/acd0t02 of=track2.cdr bs=2352 -... +# cdrecord dev=device imagefile.iso .... -+ -. Запишите извлечённые файлы на диск при помощи утилиты `burncd`. Вы должны указать, что это файлы с аудио, и что `burncd` должна зафиксировать диск по окончании работы. -+ -[source,shell] + +Чтобы определить имя устройства записывающего привода, используйте `-scanbus`, что может дать результат, подобный следующему: + +[source, shell] .... -# burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate +# cdrecord -scanbus +ProDVD-ProBD-Clone 3.00 (amd64-unknown-freebsd10.0) Copyright (C) 1995-2010 Jörg Schilling +Using libscg version 'schily-0.9' +scsibus0: + 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk + 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk + 0,2,0 2) * + 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk + 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM + 0,5,0 5) * + 0,6,0 6) * + 0,7,0 7) * +scsibus1: + 1,0,0 100) * + 1,1,0 101) * + 1,2,0 102) * + 1,3,0 103) * + 1,4,0 104) * + 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM + 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner + 1,7,0 107) * .... -==== -[[imaging-cd]] -=== Копирование компакт-дисков с данными +Найдите запись устройство для записи CD и используйте три числа, разделенные запятыми, в качестве значения для `dev`. В данном случае устройство Yamaha имеет значение `1,5,0`, поэтому правильный ввод для указания этого устройства — `dev=1,5,0`. Обратитесь к руководству `cdrecord` для других способов указания этого значения, а также для получения информации о записи аудиодорожек и управлении скоростью записи. -Вы можете скопировать CD с данными в файл образа, который функционально эквивалентен файлу образа, созданному командой man:mkisofs[8], и вы можете использовать его для копирования любого CD с данными. В приводимом здесь примере предполагается, что ваш привод CDROM называется [.filename]#acd0#. Подставьте название вашего привода CDROM. +Или выполните следующую команду, чтобы получить адрес записывающего устройства: -[source,shell] +[source, shell] .... -# dd if=/dev/acd0 of=file.iso bs=2048 +# camcontrol devlist +<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0) .... -Теперь, когда вы имеете образ, вы можете записать его на CD так, как это описано выше. +Используйте числовые значения для `scbus`, `target` и `lun`. В этом примере `1,0,0` — это имя устройства, которое следует использовать. -[[mounting-cd]] -=== Использование компакт-диски с данными +[[mkisofs]] +=== Запись данных в файловую систему ISO -Теперь, после того, как вы создали стандартный CDROM с данными, вы, наверное, захотите смонтировать его и считать с него данные. По умолчанию man:mount[8] предполагает, что файловая система имеет тип `ufs`. Если вы попытаетесь выполнить что-то вроде: +Для создания компакт-диска с данными файлы, которые будут составлять дорожки на диске, необходимо подготовить перед записью на CD. В FreeBSD пакет package:sysutils/cdrtools[] устанавливает `mkisofs`, который можно использовать для создания файловой системы ISO 9660, представляющей образ дерева каталогов в UNIX(R) файловой системе. Простейший способ использования — указать имя создаваемого ISO-файла и путь к файлам, которые нужно поместить в файловую систему ISO 9660: -[source,shell] +[source, shell] .... -# mount /dev/cd0 /mnt +# mkisofs -o imagefile.iso /path/to/tree .... -вы получите сообщение `Incorrect super block`, и диск не смонтируется. CDROM не является файловой системой `UFS`, поэтому попытки смонтировать его таким образом будут терпеть неудачу. Вам просто нужно указать команде man:mount[8], что файловая система имеет тип `ISO9660`, и всё должно заработать. Сделайте это, задав параметр `-t cd9660` при вызове man:mount[8]. К примеру, если вы хотите смонтировать устройство CDROM, [.filename]#/dev/cd0#, в каталог [.filename]#/mnt#, вы должны выполнить: +Эта команда сопоставляет имена файлов в указанном пути с именами, соответствующими ограничениям стандартной файловой системы ISO 9660, и исключает файлы, не соответствующие стандарту для файловых систем ISO. + +Для преодоления ограничений стандарта доступен ряд опций. В частности, `-R` включает расширения Rock Ridge, распространённые в системах UNIX(R), а `-J` включает расширения Joliet, используемые в системах Microsoft(R). -[source,shell] +Для компакт-дисков, которые будут использоваться только в системах FreeBSD, можно применить `-U` для отключения всех ограничений на имена файлов. При использовании вместе с `-R` создаётся образ файловой системы, идентичный указанному дереву FreeBSD, даже если он нарушает стандарт ISO 9660. + +Последняя опция общего назначения — `-b`. Она используется для указания местоположения загрузочного образа при создании загрузочного CD в формате "El Torito". Эта опция принимает аргумент — путь к загрузочному образу относительно корня дерева, записываемого на CD. По умолчанию `mkisofs` создаёт образ ISO в режиме "эмуляции флоппи-диска", поэтому ожидает, что загрузочный образ будет иметь размер ровно 1200, 1440 или 2880 КБ. Некоторые загрузчики, например, используемые на дистрибутивных носителях FreeBSD, не применяют режим эмуляции. В этом случае следует использовать опцию `-no-emul-boot`. Таким образом, если [.filename]#/tmp/myboot# содержит загрузочную систему FreeBSD с загрузочным образом в [.filename]#/tmp/myboot/boot/cdboot#, то следующая команда создаст [.filename]#/tmp/bootable.iso#: + +[source, shell] .... -# mount -t cd9660 /dev/cd0 /mnt +# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot .... -Заметьте, что имя вашего устройства ([.filename]#/dev/cd0# в этом примере) может быть другим, в зависимости от интерфейса, используемого в CDROM. Кроме того, параметр `-t cd9660` всего лишь задаёт выполнение утилиты man:mount_cd9660[8]. Пример выше может быть упрощён до: +Полученный образ ISO можно подключить как диск в памяти с помощью: -[source,shell] +[source, shell] .... -# mount_cd9660 /dev/cd0c /mnt +# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 +# mount -t cd9660 /dev/md0 /mnt .... -Таким способом, вообще говоря, вы можете использовать компакт-диски любого производителя. Диски с некоторыми расширениями ISO 9660 могут, однако, работать со странностями. К примеру диски Joliet хранят все имена файлов в виде последовательностей двухбайтовых символов Unicode. Ядро FreeBSD не может работать с Unicode, но CD9660 драйвер способен преобразовывать Unicode символы на лету. Если некоторые символы не английского алфавита выглядят, как знаки вопроса, то вам нужно указать используемую вами кодировку с помощью опции `-C`. За дополнительной информацией, обращайтесь к странице справочника man:mount_cd9660[8]. +Затем можно убедиться, что [.filename]#/mnt# и [.filename]#/tmp/myboot# идентичны. + +Доступно множество других опций для `mkisofs`, позволяющих точно настроить его поведение. Подробности смотрите в man:mkisofs[8]. [NOTE] ==== -Чтобы смочь произвести преобразование символов посредством опции `-C`, ядру понадобится загрузить модуль [.filename]#cd9660_iconv.ko#. Это может быть сделано либо добавлением ниже представленной строчки в [.filename]#loader.conf#: +Возможно скопировать компакт-диск с данными в файл образа, функционально эквивалентный файлу образа, созданному с помощью `mkisofs`. Для этого используйте [.filename]#dd#, указав имя устройства в качестве входного файла и имя создаваемого ISO в качестве выходного файла: -[.programlisting] +[source, shell] .... -cd9660_iconv_load="YES" +# dd if=/dev/cd0 of=file.iso bs=2048 .... -с последующей перезагрузкой машины, либо загрузкой модуля вручную с помощью man:kldload[8]. +Полученный файл образа можно записать на компакт-диск, как описано в crossref:disks[cdrecord,Запись компакт-диска]. ==== -Время от времени вы можете получать сообщения `Device not configured` при попытке смонтировать CDROM. Это обычно означает, что привод CDROM полагает, что в нём нет диска, или что привод не виден на шине. Приводу CDROM может понадобиться несколько секунд, чтобы понять, что он был закрыт, так что будьте терпеливы. +[[mounting-cd]] +=== Использование компакт-дисков с данными -Иногда SCSI CDROM может потеряться из-за того, что у него не было достаточно времени, чтобы ответить на сброс шины. Если у вас имеется SCSI CDROM, то, пожалуйста, добавьте следующий параметр в конфигурацию вашего ядра и crossref:kernelconfig[kernelconfig-building,перестройте его]. +После записи ISO-образа на компакт-диск его можно смонтировать, указав тип файловой системы, имя устройства с компакт-диском и существующую точку монтирования: -[.programlisting] +[source, shell] .... -options SCSI_DELAY=15000 +# mount -t cd9660 /dev/cd0 /mnt .... -Это укажет вашей шине SCSI выдерживать 15-секундную паузу во время загрузки, чтобы дать вашему приводу CDROM шанс ответить на сброс шины. - -[[rawdata-cd]] -=== Запись необработанных данных на компакт-диски - -Вы можете предпочесть запись файла непосредственно на CD без создания файловой системы ISO 9660. Некоторые поступают так при создании резервных копий. Это выполняется гораздо быстрее. чем запись стандартного компакт-диска: +Поскольку `mount` предполагает, что файловая система имеет тип `ufs`, ошибка `Incorrect super block` возникнет, если не указать `-t cd9660` при монтировании компакт-диска с данными. -[source,shell] -.... -# burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate -.... +В то время как любой компакт-диск с данными можно смонтировать таким образом, диски с определёнными расширениями ISO 9660 могут работать неожиданно. Например, диски Joliet хранят все имена файлов в двухбайтовых символах Unicode. Если некоторые неанглийские символы отображаются как знаки вопроса, укажите локальную кодировку с помощью `-C`. Для получения дополнительной информации обратитесь к man:mount_cd9660[8]. -Для извлечения данных, записанных так на компакт-диск, вы должны считывать данные из файла непосредственного доступа к устройству: +[NOTE] +==== +Для выполнения этого преобразования символов с помощью опции `-C` необходимо загрузить модуль ядра [.filename]#cd9660_iconv.ko#. Это можно сделать, добавив следующую строку в [.filename]#loader.conf#: -[source,shell] +[.programlisting] .... -# tar xzvf /dev/acd1 +cd9660_iconv_load="YES" .... -Вы не можете монтировать этот диск как обычный CDROM. Такой компакт-диск не может быть прочитан ни в какой другой операционной системе, кроме FreeBSD. Если вы хотите монтировать CD или обменяться данными с другой операционной системой, то вы должны использовать man:mkisofs[8] так, как это было описано выше. - -[[atapicam]] -=== Использование драйвера ATAPI/CAM +и затем перезагрузить машину, или напрямую загрузить модуль с помощью `kldload`. +==== -Этот драйвер позволяет работать с ATAPI-устройствами (приводы CD-ROM, CD-RW, DVD и так далее) через подсистему SCSI, таким образом расширяя использование таких приложений, как package:sysutils/cdrdao[] или man:cdrecord[1]. +Изредка при попытке смонтировать компакт-диск с данными может отображаться сообщение `Device not configured`. Обычно это означает, что привод не обнаружил диск в лотке или что привод не виден на шине. Обнаружение носителя может занять несколько секунд, поэтому следует набраться терпения. -Для использования этого драйвера вам необходимо добавить в файл [.filename]#/boot/loader.conf# следующую строку: +Иногда привод SCSICD может быть пропущен, потому что у него не хватило времени ответить на сброс шины. Чтобы решить эту проблему, можно создать пользовательское ядро с увеличенной задержкой SCSI по умолчанию. Добавьте следующую опцию в конфигурационный файл собственного ядра и пересоберите ядро, следуя инструкциям в crossref:kernelconfig[kernelconfig-building,“Сборка и установка собственного ядра”]: [.programlisting] .... -atapicam_load="YES" +options SCSI_DELAY=15000 .... -с последующей перезагрузкой машины. +Это указывает шине SCSI сделать паузу в 15 секунд во время загрузки, чтобы дать CD-приводу максимальный шанс ответить на сброс шины. [NOTE] ==== -Если для вас предпочтительнее статически скомпилировать поддержку man:atapicam[4] в ядро, то добавьте эту строчку в файл конфигурации ядра: - -[.programlisting] -.... -device atapicam -.... +Возможно записать файл непосредственно на CD без создания файловой системы ISO 9660. Это называется записью сырых данных на CD, и некоторые люди делают это для целей резервного копирования. -Кроме того, в файле конфигурации ядра должны быть следующие строки: +Такой диск нельзя смонтировать как обычный CD с данными. Чтобы извлечь данные, записанные на такой диск, их необходимо прочитать непосредственно с устройства. Например, следующая команда извлечёт сжатый tar-архив со второго CD-устройства в текущую рабочую директорию: -[.programlisting] +[source, shell] .... -device ata -device scbus -device cd -device pass +# tar xzvf /dev/cd1 .... -которые уже должны там присутствовать. Затем пересоберите, установите новое ядро и перезагрузите компьютер. +Для монтирования компакт-диска с данными они должны быть записаны с использованием `mkisofs`. ==== -В процессе загрузки ваш пишущий привод должен появиться примерно следующим образом: +[[duplicating-audiocds]] +=== Копирование аудио-CD -[source,shell] -.... -acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 -cd0 at ata1 bus 0 target 0 lun 0 -cd0: <MATSHITA CDRW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device -cd0: 16.000MB/s transfers -cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed -.... +Для копирования аудио-CD извлеките аудиоданные с диска в виде набора файлов, затем запишите эти файлы на чистый CD. -Теперь с ним можно работать через устройство [.filename]#/dev/cd0#, например, чтобы смонтировать CD-ROM в каталог [.filename]#/mnt#, просто наберите следующую команду: +В crossref:disks[using-cdrecord, Копирование аудио-CD] описано, как дублировать и записывать аудио-CD. Если версия FreeBSD меньше 10.0 и устройство является ATAPI, необходимо сначала загрузить модуль `atapicam`, следуя инструкциям в crossref:disks[atapicam, Поддерживаемые устройства]. -[source,shell] +[[using-cdrecord]] +[.procedure] +.Процедура: Копирование аудио-CD +. Пакет или порт package:sysutils/cdrtools[] устанавливает `cdda2wav`. Эту команду можно использовать для извлечения всех аудиодорожек, при этом каждая дорожка записывается в отдельный WAV-файл в текущей рабочей директории: ++ +[source, shell] .... -# mount -t cd9660 /dev/cd0 /mnt +% cdda2wav -vall -B -Owav .... - -Для получения SCSI-адреса пишущего привода, вы можете, работая как пользователь `root`, запустить такую команду: - -[source,shell] ++ +Имя устройства не нужно указывать, если в системе только одно устройство CD. Обратитесь к руководству `cdda2wav` для получения инструкций по указанию устройства и дополнительной информации о других параметрах этой команды. +. Используйте `cdrecord` для записи файлов [.filename]#.wav#: ++ +[source, shell] .... -# camcontrol devlist -<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0) +% cdrecord -v dev=2,0 -dao -useinfo *.wav .... - -Таким образом, `1,0,0` будет SCSI-адресом для использования с man:cdrecord[1] и другими приложениями для работы со SCSI. - -Для получения дополнительной информации об ATAPI/CAM и системе SCSI, обратитесь к страницам справочной системы по man:atapicam[4] и man:cam[4]. ++ +Убедитесь, что _2,0_ установлено правильно, как описано в crossref:disks[cdrecord, Запись CD]. [[creating-dvds]] -== Создание и использование оптических носителей (DVD) +== Создание и использование DVD-носителей -=== Введение +По сравнению с компакт-диском, DVD представляет собой следующее поколение технологии хранения данных на оптических носителях. DVD может вмещать больше данных, чем любой компакт-диск, и является стандартом для издания видео. -DVD это следующее после CD поколение оптических носителей. DVD может вмещать больше данных чем любой CD и является современным стандартом распространения видео. +Для записываемого DVD можно определить пять физических форматов записи: -Для записываемых DVD существует пять физических форматов записи: +* DVD-R: Это первый доступный формат записываемых DVD. Стандарт DVD-R определен http://www.dvdforum.org/forum.shtml[DVD Forum]. Этот формат поддерживает однократную запись. +* DVD-RW: Это перезаписываемая версия стандарта DVD-R. DVD-RW можно перезаписывать около 1000 раз. +* DVD-RAM: Это перезаписываемый формат, который можно рассматривать как съемный жесткий диск. Однако, этот носитель не совместим с большинством приводов DVD-ROM и DVD-видеоплееров, так как лишь немногие DVD-рекордеры поддерживают формат DVD-RAM. Дополнительную информацию об использовании DVD-RAM см. в crossref:disks[creating-dvd-ram, Использование DVD-RAM]. +* DVD+RW: Это перезаписываемый формат, определенный https://en.wikipedia.org/wiki/DVD%2BRW_Alliance[альянсом DVD+RW Alliance]. DVD+RW можно перезаписывать около 1000 раз. +* DVD+R: Этот формат является однократно записываемой разновидностью формата DVD+RW. -* DVD-R: Был первым форматом записываемых DVD. Стандарт DVD-R был создан http://www.dvdforum.com/forum.shtml[DVD Forum]. Это формат для однократной записи. -* DVD-RW: Это перезаписываемая версия стандарта DVD-R. Носители DVD-RW могут быть перезаписаны около 1000 раз. -* DVD-RAM: Это также перезаписываемый формат, поддерживаемый DVD Forum. DVD-RAM может быть виден как съемный жесткий диск. Однако, этот носитель не совместим с большинством приводов DVD-ROM и проигрывателями DVD-Video; лишь некоторые пишущие DVD поддерживают формат DVD-RAM. Более подробно о работе с DVD-RAM можно прочитать в разделе <<creating-dvd-ram>>. -* DVD+RW: Это перезаписываемый формат, созданный http://www.dvdrw.com/[DVD+RW Alliance]. Носитель DVD+RW может быть перезаписан около 1000 раз. -* DVD+R: Этот формат - однократно записываемая версия формата DVD+RW. - -Однослойный записываемый DVD может хранить до 4,700,000,000 байт, что равно 4.38 Гбайт, или 4485 Мбайт (1 килобайт это 1024 байт). +Однослойный записываемый DVD может вместить до 4 700 000 000 байт, что фактически составляет 4,38 ГБ или 4485 МБ, так как 1 килобайт равен 1024 байтам. [NOTE] ==== -Необходимо различать физический носитель и приложение. Например, DVD-Video это определенная файловая раскладка, которая может быть помещена на записываемый DVD любого физического формата: DVD-R, DVD+R, DVD-RW и т.д. Перед выбором типа носителя вы должны убедиться, что и устройство записи и DVD-Video проигрыватель (отдельный или DVD-ROM привод компьютера) совместимы с данным носителем. +Необходимо различать физический носитель и приложение. Например, DVD-Video — это определённая структура файлов, которую можно записать на любой перезаписываемый DVD-носитель, такой как DVD-R, DVD+R или DVD-RW. Перед выбором типа носителя убедитесь, что и записывающее устройство, и проигрыватель DVD-Video поддерживают рассматриваемый носитель. ==== -=== Настройка +=== Конфигурация -Для записи DVD будет использоваться программа man:growisofs[1]. Эта команда входит в набор утилит dvd+rw-tools (package:sysutils/dvd+rw-tools[]), который поддерживает все типы носителей DVD. +Для записи DVD используйте man:growisofs[1]. Эта команда входит в набор утилит package:sysutils/dvd+rw-tools[], которые поддерживают все типы DVD-носителей. -Эти утилиты используют подсистему SCSI для доступа к устройствам, следовательно необходимо добавить в ядро <<atapicam,поддержку ATAPI/CAM>>. Если пишущий привод использует USB интерфейс, это добавление бесполезно и необходимо прочесть более подробную информацию по настройке устройств USB в <<usb-disks>> +Эти инструменты используют подсистему SCSI для доступа к устройствам, поэтому поддержка crossref:disks[atapicam,ATAPI/CAM] должна быть загружена или статически собрана в ядре. Эта поддержка не требуется, если устройство записи использует интерфейс USB. Подробнее о настройке USB-устройств см. в разделе crossref:disks[usb-disks,USB-накопители]. -Вам также потребуется включить DMA доступ для устройств ATAPI, это можно сделать добавив в [.filename]#/boot/loader.conf# следующую строку: +Доступ DMA также должен быть включен для устройств ATAPI, добавив следующую строку в [.filename]#/boot/loader.conf#: [.programlisting] .... hw.ata.atapi_dma="1" .... -Перед использованием dvd+rw-tools вы должны свериться со http://fy.chalmers.se/~appro/linux/DVD+RW/hcn.html[списком совместимого оборудования dvd+rw-tools] с информацией по устройствам для записи DVD. +Перед попыткой использования dvd+rw-tools ознакомьтесь с http://fy.chalmers.se/~appro/linux/DVD+RW/hcn.html[примечаниями о совместимости оборудования]. [NOTE] ==== -Если вам нужен графический интерфейс пользователя, взгляните на K3b (package:sysutils/k3b[]), который предоставляет дружественный пользователю интерфейс к man:growisofs[1] и многим другим программам записи. +Для графического интерфейса можно использовать пакет package:sysutils/k3b[], который предоставляет удобный интерфейс к man:growisofs[1] и многим другим инструментам записи. ==== -=== Запись DVD с данными +=== Запись данных на DVD -Команда man:growisofs[1] является оболочкой для <<mkisofs,mkisofs>>, она вызовет man:mkisofs[8] для создания файловой системы и запишет DVD. Это означает, что вам не потребуется создавать образ с данными перед началом процесса записи. +Поскольку man:growisofs[1] является интерфейсом для crossref:disks[mkisofs,mkisofs], он вызывает man:mkisofs[8] для создания структуры файловой системы и записи на DVD. Это означает, что нет необходимости создавать образ данных перед процессом записи. -Для записи данных из каталога [.filename]#/path/to/data# на DVD+R или DVD-R, используйте следующую команду: +Для записи данных из [.filename]#/path/to/data# на DVD+R или DVD-R используйте следующую команду: -[source,shell] +[source, shell] .... # growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data .... -Параметры `-J -R` передаются man:mkisofs[8] для создания файловой системы (в данном случае: файловая система ISO 9660 с расширениями Joliet и Rock Ridge), обратитесь к странице справочника man:mkisofs[8] за более подробной информацией. +В этом примере `-J -R` передаются в man:mkisofs[8] для создания файловой системы ISO 9660 с расширениями Joliet и Rock Ridge. Подробности см. в man:mkisofs[8]. -Параметр `-Z` используется для первой сессии записи в любом случае: для одной или нескольких сессий. Устройство DVD, _/dev/cd0_, должно быть изменено в соответствии с имеющимися настройками. Параметр `-dvd-compat` закроет диск и дозапись станет невозможна. Это должно улучшить совместимость с приводами DVD-ROM. +Для начальной записи сессии используется параметр `-Z` как для одиночных, так и для множественных сессий. Замените _/dev/cd0_ на имя устройства DVD. Использование `-dvd-compat` указывает, что диск будет закрыт и запись нельзя будет дополнять. Это также обеспечивает лучшую совместимость носителя с приводами DVD-ROM. -Возможна также запись предварительного (pre-mastered) образа, например, для записи _imagefile.iso_ запустим: +Для записи предварительно созданного образа, например _imagefile.iso_, используйте: -[source,shell] +[source, shell] .... # growisofs -dvd-compat -Z /dev/cd0=imagefile.iso .... -Скорость записи должна быть определена и автоматически установлена в соответствии с носителем и приводом. Если вы хотите явно указать скорость записи, используйте параметр `-speed=`. За дальнейшей информацией обратитесь к странице справочника man:growisofs[1]. +Скорость записи должна определяться и автоматически устанавливаться в зависимости от носителя и используемого привода. Для принудительного задания скорости записи используйте `-speed=`. Примеры использования см. в man:growisofs[1]. [NOTE] ==== -Если размер файлов внутри набора превышает 4.38Гб, то необходимо будет создать гибридную файловую систему UDF/ISO-9660, для чего потребуется передать параметры `-udf -iso-level 3` в man:mkisofs[8] и в остальные соответствующие программы (например, man:growisofs[1]). Указание параметров обязательно лишь во время создания файла образа или во время непосредственной записи на диск. Созданный таким способом диск должен монтироваться утилитой man:mount_udf[8]. Диск будет доступен лишь тем операционным системам, которые поддерживают UDF; в противном случае носитель будет отображаться как поврежденный. +Для поддержки файлов размером более 4,38 ГБ необходимо создать гибридную файловую систему UDF/ISO-9660, передав параметры `-udf -iso-level 3` в man:mkisofs[8] и все связанные программы, например man:growisofs[1]. Это требуется только при создании ISO-образа или записи файлов непосредственно на диск. Поскольку диск, созданный таким образом, должен монтироваться как файловая система UDF с помощью man:mount_udf[8], он будет доступен только в операционных системах с поддержкой UDF. В противном случае файлы на диске будут выглядеть повреждёнными. -Для того, чтобы создать такой образ, выполните: +Чтобы создать ISO-файл такого типа: -[source,shell] +[source, shell] .... % mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data .... -Для того, чтобы записать файлы прямо на диск, наберите: +Для записи файлов непосредственно на диск: -[source,shell] +[source, shell] .... # growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data .... -Если у вас в распоряжении уже имеется образ, содержащий в себе файлы большого размера, то для записи образа на диск никаких дополнительных опций для man:growisofs[1] не потребуется. +Когда ISO-образ уже содержит большие файлы, для записи этого образа на диск с помощью `growisofs` не требуется дополнительных параметров. -Также удостоверьтесь, что у вас установлена последняя версия package:sysutils/cdrtools[] (man:mkisofs[8] принадлежит к этому порту), поскольку предыдущие версии утилит не поддерживают работу с большими файлами. Если с этим портом возникают проблемы, то установите package:sysutils/cdrtools-devel[] и прочитайте страницу справочника man:mkisofs[8]. +Убедитесь, что используется актуальная версия package:sysutils/cdrtools[], которая содержит man:mkisofs[8], так как более старая версия может не поддерживать большие файлы. Если последняя версия не работает, установите package:sysutils/cdrtools-devel[] и ознакомьтесь с его man:mkisofs[8]. ==== === Запись DVD-Video -DVD-Video это особая файловая система, базирующаяся на ISO 9660 и спецификациях micro-UDF (M-UDF). DVD-Video также представляет определенную иерархию структуры данных, поэтому для создания DVD потребуется особая программа, такая как package:multimedia/dvdauthor[]. +DVD-Video — это определённая структура файлов, основанная на спецификациях ISO 9660 и микро-UDF (M-UDF). Поскольку DVD-Video представляет собой конкретную иерархию структуры данных, для создания DVD требуется специальная программа, например package:multimedia/dvdauthor[]. -Если у вас уже есть образ файловой системы DVD-Video, просто запишите его как любой другой образ, примеры находятся в предыдущем разделе. Если вы создали DVD и результат находится в каталоге [.filename]#/path/to/video#, для записи DVD-Video должна быть использована следующая команда: +Если уже существует образ файловой системы DVD-Video, его можно записать так же, как и любой другой образ. Если для создания DVD использовался `dvdauthor` и результат находится в [.filename]#/path/to/video#, то для записи DVD-Video следует использовать следующую команду: -[source,shell] +[source, shell] .... # growisofs -Z /dev/cd0 -dvd-video /path/to/video .... -Параметр `-dvd-video` будет передан man:mkisofs[8] и укажет создать файловую систему DVD-Video. Помимо этого, параметр `-dvd-video` подразумевает параметр man:growisofs[1] `-dvd-compat`. +`-dvd-video` передается в man:mkisofs[8], чтобы указать создать файловую систему в формате DVD-Video. Эта опция подразумевает использование опции `-dvd-compat` man:growisofs[1]. === Использование DVD+RW -В отличие от CD-RW, новый DVD+RW необходимо отформатировать перед первым использованием. Программа man:growisofs[1] позаботится об этом сама при необходимости, и это _рекомендованный_ способ. Тем не менее, для форматирования DVD+RW вы можете использовать команду `dvd+rw-format`: +В отличие от CD-RW, новая DVD+RW требует форматирования перед первым использованием. _Рекомендуется_ позволить man:growisofs[1] автоматически выполнить это, когда это уместно. Однако можно использовать `dvd+rw-format` для форматирования DVD+RW: -[source,shell] +[source, shell] .... # dvd+rw-format /dev/cd0 .... -Эту операцию необходимо выполнить лишь однажды, помните, что только новые носители DVD+RW необходимо форматировать. Затем запишите DVD+RW тем способом, который описан в предыдущем разделе. +Выполняйте эту операцию только один раз и помните, что форматировать нужно только чистые носители DVD+RW. После форматирования DVD+RW можно записывать как обычно. -Если вы хотите записать новые данные (полностью новую файловую систему, а не дописать данные) на DVD+RW, его не нужно очищать, просто запишите поверх предыдущей записи (создав новую начальную сессию) примерно так : +Для записи совершенно новой файловой системы, а не просто добавления данных на DVD+RW, не требуется предварительно очищать носитель. Вместо этого можно перезаписать предыдущую запись следующим образом: -[source,shell] +[source, shell] .... # growisofs -Z /dev/cd0 -J -R /path/to/newdata .... -Формат DVD+RW делает возможным легко дописать данные к предыдущей записи. Операция состоит в присоединении предыдущей сессии к существующей, это не мультисессионная запись, man:growisofs[1] _расширит_ (grow) файловую систему ISO 9660, существующую на носителе. +Формат DVD+RW поддерживает добавление данных к предыдущей записи. Эта операция заключается в объединении нового сеанса с существующим, так как это не считается многосессионной записью. man:growisofs[1] будет _расширять_ файловую систему ISO 9660, присутствующую на носителе. -Например, для дозаписи данных к предыдущей сессии на DVD+RW, используется следующая команда: +Например, чтобы добавить данные на DVD+RW, используйте следующую команду: -[source,shell] +[source, shell] .... # growisofs -M /dev/cd0 -J -R /path/to/nextdata .... -При последующих записях man:mkisofs[8] необходимо передавать те же параметры, что и при первой записи. +Те же параметры `man:mkisofs[8]`, которые использовались для записи начальной сессии, следует применять при последующих записях. [NOTE] ==== -Вы можете использовать параметр `-dvd-compat` для улучшения совместимости с приводами DVD-ROM. В случае DVD+RW это не помешает добавлению данных. +Используйте `-dvd-compat` для лучшей совместимости носителя с приводами DVD-ROM. При использовании DVD+RW эта опция не предотвращает добавление данных. ==== -Если по какой-либо причине вам потребуется очистить носитель, используйте следующую команду: +Для очистки диска запустите: -[source,shell] +[source, shell] .... # growisofs -Z /dev/cd0=/dev/zero .... === Использование DVD-RW -Существует два формата дисков DVD-RW: последовательно дополняемый и с ограниченной перезаписью. По умолчанию формат дисков DVD-RW последовательный. +DVD-RW поддерживает два формата дисков: инкрементальный последовательный и с ограниченной перезаписью. По умолчанию диски DVD-RW имеют последовательный формат. -Новый DVD-RW может быть записан непосредственно без необходимости форматирования, однако DVD-RW с данными в последовательном формате необходимо очистить перед созданием новой начальной сессии. +Чистый DVD-RW можно записывать напрямую без форматирования. Однако DVD-RW в последовательном формате, который уже использовался, необходимо очистить перед записью нового начального сеанса. -Для очистки DVD-RW в последовательном формате, запустите: +Для очистки DVD-RW в последовательном режиме: -[source,shell] +[source, shell] .... # dvd+rw-format -blank=full /dev/cd0 .... [NOTE] ==== -Полная очистка (`-blank=full`) займет около одного часа на скорости 1x. Быструю очистку можно выполнить с параметром `-blank`, если DVD-RW будет записан в режиме Disk-At-Once (DAO). Для записи DVD-RW в режиме DAO, используйте команду: +Полное стирание с использованием `-blank=full` займет около одного часа для однократной записи (1x). Быстрое стирание можно выполнить с помощью `-blank`, если DVD-RW будет записываться в режиме Disk-At-Once (DAO). Для записи DVD-RW в режиме DAO используйте команду: -[source,shell] +[source, shell] .... # growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso .... -Параметр `-use-the-force-luke=dao` не должен потребоваться, поскольку man:growisofs[1] попытается определить был ли носитель быстро очищен и включить DAO запись. +Поскольку man:growisofs[1] автоматически определяет быстро очищенные носители и использует запись DAO, параметр `-use-the-force-luke=dao` не требуется. -Фактически, лучше использовать режим с ограниченной перезаписью с любым DVD-RW, этот формат более гибкий, чем формат по умолчанию с последовательной записью. +Следует использовать режим ограниченной перезаписи для любых DVD-RW, так как этот формат более гибкий по сравнению со стандартным инкрементным последовательным. ==== -Для записи данных на последовательный DVD-RW, используйте ту же команду, что и для других форматов DVD: +Для записи данных на последовательную DVD-RW используйте те же инструкции, что и для других форматов DVD: -[source,shell] +[source, shell] .... # growisofs -Z /dev/cd0 -J -R /path/to/data .... -Если вы хотите добавить данные к предыдущей записи, используйте параметр man:growisofs[1] `-M`. Однако при добавлении данных на DVD-RW в последовательном режиме, на диске будет создана новая сессия и в результате получится мультисессионный диск. +Чтобы добавить данные к предыдущей записи, используйте `-M` с man:growisofs[1]. Однако если данные добавляются на DVD-RW в инкрементальном последовательном режиме, на диске будет создана новая сессия, и в результате получится многосессионный диск. -В формате DVD-RW с ограниченной перезаписью не требуется очищать носитель перед созданием новой начальной сессии, вам всего лишь нужно переписать диск с параметром `-Z`, подобно DVD+RW. Возможно также увеличение существующей файловой системы ISO 9660, записанной на диск тем же способом, как для DVD+RW с параметром `-M`. В результате получится односессионный DVD. +DVD-RW в формате с ограниченной перезаписью не требует очистки перед созданием новой начальной сессии. Вместо этого перезапишите диск с помощью `-Z`. Также можно расширить существующую файловую систему ISO 9660, записанную на диск, с помощью `-M`. Результатом будет односессионный DVD. -Для перевода DVD-RW в формат с ограниченной перезаписью, необходимо использовать следующую команду: +Чтобы перевести DVD-RW в формат ограниченной перезаписи, необходимо использовать следующую команду: -[source,shell] +[source, shell] .... # dvd+rw-format /dev/cd0 .... -Для перевода обратно в последовательный формат, выполните: +Для возврата к последовательному формату используйте: -[source,shell] +[source, shell] .... # dvd+rw-format -blank=full /dev/cd0 .... -=== Мультисессия +=== Многосеансовые диски -Лишь несколько DVD-ROM и проигрывателей поддерживают мультисессионные DVD, в основном они в лучшем случае прочтут только первую сессию. DVD+R, DVD-R и DVD-RW в последовательном формате могут работать с несколькими сессиями, и это не относится к форматам DVD+RW и DVD-RW в формате ограниченной перезаписи. +Немногие приводы DVD-ROM поддерживают многосеансовые DVD и в большинстве случаев читают только первый сеанс. DVD+R, DVD-R и DVD-RW в последовательном формате могут поддерживать несколько сеансов. Понятие множественных сеансов отсутствует для форматов DVD+RW и DVD-RW с ограниченной перезаписью. -Использование следующей команды после первой (не закрытой) сессии для DVD+R, DVD-R, или DVD-RW в последовательном формате, добавит на диск новую сессию: +Используя следующую команду после начального незакрытого сеанса на DVD+R, DVD-R или DVD-RW в последовательном формате, можно добавить новый сеанс на диск: -[source,shell] +[source, shell] .... # growisofs -M /dev/cd0 -J -R /path/to/nextdata .... -Использование этой командной строки с DVD+RW или DVD-RW в режиме ограниченной перезаписи добавит данные, объединив новую сессию с предыдущей. В результате получится односессионный диск. Такой способ используется для добавления данных после первой записи на эти носители. +Использование этой команды с DVD+RW или DVD-RW в режиме ограниченной перезаписи приведет к добавлению данных с объединением нового сеанса с существующим. В результате получится диск с одним сеансом. Используйте этот метод для добавления данных после первоначальной записи на таких типах носителей. [NOTE] ==== -Некоторый объем носителя используется между сессиями для завершения и начала сессии. Следовательно, для оптимизации объема хранения сессии должны быть большими. Количество сессий ограничено 154 для DVD+R, около 2000 для DVD-R и 127 для DVD+R Double Layer. +Поскольку некоторое пространство на носителе используется между каждым сеансом для отметки конца и начала сеансов, следует добавлять сеансы с большим объемом данных для оптимизации пространства на носителе. Количество сеансов ограничено 154 для DVD+R, около 2000 для DVD-R и 127 для DVD+R Double Layer. ==== -=== Дополнительная информация +=== Для получения дополнительной информации -Для получения дополнительной информации о DVD, можно запустить команду `dvd+rw-mediainfo _/dev/cd0_`, диск должен находиться в приводе. +Для получения дополнительной информации о DVD используйте команду `dvd+rw-mediainfo _/dev/cd0_`, когда диск находится в указанном приводе. -Дополнительная информация о dvd+rw-tools может быть найдена на странице справочника man:growisofs[1], на http://fy.chalmers.se/~appro/linux/DVD+RW/[Web-сайте dvd+rw-tools] и в архивах http://lists.debian.org/cdwrite/[списка рассылки cdwrite]. +Дополнительная информация о dvd+rw-tools доступна в man:growisofs[1], на http://fy.chalmers.se/~appro/linux/DVD+RW/[веб-сайте dvd+rw-tools] и в архивах http://lists.debian.org/cdwrite/[почтовой рассылки cdwrite]. [NOTE] ==== -Вывод `dvd+rw-mediainfo` при записи или проблемный носитель необходимы для любого сообщения о проблеме. Без этого вывода будет совершенно невозможно помочь вам. +При создании отчёта о проблеме, связанной с использованием dvd+rw-tools, всегда прилагайте вывод команды `dvd+rw-mediainfo`. ==== [[creating-dvd-ram]] === Использование DVD-RAM -==== Конфигурация - -Записывающие устройства DVD-RAM поставляются с интерфейсами SCSI и ATAPI. В последнем случае вы должны убедиться, что для них включен режим DMA, добавив в файл [.filename]#/boot/loader.conf# строку +Записывающие устройства DVD-RAM могут использовать интерфейс SCSI или ATAPI. Для устройств ATAPI необходимо включить доступ DMA, добавив следующую строку в [.filename]#/boot/loader.conf#: [.programlisting] .... hw.ata.atapi_dma="1" .... -==== Подготовка носителя - -Как указывалось ранее, DVD-RAM представляется съемным жестким диском. Как и другие дисковые устройства, DVD-RAM должен быть "подготовлен" к первому использованию. В нашем примере мы займём все пространство диска одной файловой системой UFS2: +DVD-RAM можно рассматривать как съемный жесткий диск. Как и любой другой жесткий диск, DVD-RAM необходимо отформатировать перед использованием. В этом примере все дисковое пространство будет отформатировано под стандартную файловую систему UFS2: -[source,shell] +[source, shell] .... # dd if=/dev/zero of=/dev/acd0 bs=2k count=1 # bsdlabel -Bw acd0 # newfs /dev/acd0 .... -Имя устройства DVD device, [.filename]#acd0#, должно соответствовать вашей конфигурации. +Устройство DVD, [.filename]#acd0#, должно быть изменено в соответствии с конфигурацией. -==== Использование носителя +После форматирования DVD-RAM его можно подключить как обычный жесткий диск: -После выполнения указанных выше команд, DVD-RAM может быть смонтирован как обычный жесткий диск: - -[source,shell] +[source, shell] .... # mount /dev/acd0 /mnt .... -После этого вы можете читать и писать на DVD-RAM. +После монтирования DVD-RAM будет доступен как для чтения, так и для записи. [[floppies]] -== Дискеты - -Хранение данных на дискетах иногда бывает полезным, например, когда нет других съёмных носителей или когда необходимо перенести небольшой объём данных на другой компьютер. - -В этом разделе будет описано, как использовать дискеты во FreeBSD. В основном речь пойдёт о форматировании и использовании дискет DOS размером 3.5 дюйма, однако общие принципы применимы и для других форматов гибких дисков. - -=== Форматирование дискет - -==== Устройство - -Доступ к гибким дискам, как, впрочем, и к остальным устройствам, осуществляется через соответствующие файлы в каталога [.filename]#/dev#. Чтобы обратиться к дискете, просто используйте [.filename]#/dev/fdN#. +== Создание и использование дискет -==== Форматирование +Этот раздел объясняет, как отформатировать 3,5-дюймовую дискету в FreeBSD. -Перед тем, как дискетой можно будет воспользоваться, её необходимо отформатировать на низком уровне. Обычно это выполняется производителем, однако форматирование является хорошим способом проверить целостность носителя. Большинство гибких дисков предназначены для использования с размером 1440kB, однако возможно задать меньший или больший размер. - -Для низкоуровневого форматирования дискет вам нужно использовать man:fdformat[1]. В качестве параметра этой утилите передаётся имя устройства. - -Обратите внимание на появление сообщений об ошибках, так как они могут помочь определить, хорошая это дискета или плохая. - -===== Форматирование гибких дисков +[.procedure] +==== +*Procedure: Steps to Format a Floppy* -Для форматирования гибких дисков используйте устройства [.filename]#/dev/fdN#. Вставьте новую 3.5-дюймовую дискету в дисковод и введите команду: +Дискету необходимо отформатировать на низком уровне перед использованием. Обычно это делается производителем, но форматирование — хороший способ проверить целостность носителя. Для низкоуровневого форматирования дискеты в FreeBSD используйте man:fdformat[1]. При работе с этой утилитой обратите внимание на сообщения об ошибках, так как они помогают определить, исправен диск или нет. -[source,shell] +. Для форматирования дискеты вставьте новую дискету размером 3,5 дюйма в первый дисковод и выполните команду: ++ +[source, shell] .... # /usr/sbin/fdformat -f 1440 /dev/fd0 .... - -=== Метка диска - -После низкоуровневого форматирования диска вам нужно поместить на него метку диска. Эта метка будет потом разрушена, но она будет нужна системе для определения размера диска и его характеристик. - -Новая метка диска будет касаться диска в целом, и будет содержать полную информацию о параметрах дискеты. Значения геометрии для метки диска перечислены в файле [.filename]#/etc/disktab#. - -Теперь вы можете запустить man:bsdlabel[8] примерно так: - -[source,shell] ++ +. После низкоуровневого форматирования диска создайте метку диска, так как она необходима системе для определения размера диска и его геометрии. Поддерживаемые значения геометрии перечислены в [.filename]#/etc/disktab#. ++ +Для записи метки диска используйте man:bsdlabel[8]: ++ +[source, shell] .... # /sbin/bsdlabel -B -w /dev/fd0 fd1440 .... - -=== Файловая система - -Теперь ваша дискета готова к высокоуровневому форматированию. При этом на неё будет помещаться новая файловая система, которая позволит FreeBSD читать и записывать информацию на диск. После создания новой файловой системы метка диска уничтожается, так что если вы захотите переформатировать диск, вам придётся создавать метку диска повторно. - -Файловой системой для дискеты может служить UFS или FAT. Вообще говоря, FAT для дискет походит лучше. - -Для размещения на дискете новой файловой системы, выполните: - -[source,shell] ++ +. Дискета теперь готова для высокоуровневого форматирования с файловой системой. Файловая система дискеты может быть UFS или FAT, причём FAT, как правило, является лучшим выбором для дискет. ++ +Чтобы отформатировать дискету в FAT, выполните: ++ +[source, shell] .... # /sbin/newfs_msdos /dev/fd0 .... +==== -Теперь диск готов к работе. - -=== Использование дискет - -Для работы с гибким диском смонтируйте его при помощи утилит man:mount_msdosfs[8]. Можно также использовать пакет package:emulators/mtools[] из коллекции портов. - -[[backups-tapebackups]] -== Создание и использование архивных копий на магнитной ленте - -К наиболее часто используемым носителям на магнитной ленте следует отнести ленты шириной 4мм и 8мм, а также типа QIC, мини-картриджи и DLT. - -[[backups-tapebackups-4mm]] -=== 4мм (DDS: Digital Data Storage) - -Ленты шириной 4мм заменяют QIC в качестве наиболее предпочтительного носителя для создания резервных копий. Эта тенденция значительно усилилась после покупки компанией Conner фирмы Archive, ведущего производителя накопителей QIC и последующего прекращения их выпуска. Накопители 4мм малы по размеру и мало шумят, но у них нет репутации носителя, обладающего надежностью приводов 8мм. Картриджи более дешевы и меньше по размеру (3 x 2 x 0.5 дюймов; 76 x 51 x 12 мм), чем 8мм-картриджи. Накопители для лент шириной 4мм, как и 8мм, имеют сравнительно малый срок службы головок, по причине использования в обоих случаях технологии спирального сканирования (helical scan). - -Пропускная способность у таких накопителей начинается с цифры ~150 kB/s, пиковая достигает ~500 kB/s. Ёмкость накопителей начинается с 1.3 GB и может достигать 2.0 GB. Аппаратное сжатие, имеющееся на большинстве таких накопителей, даёт увеличение ёмкости примерно вдвое. Блоки многоприводных ленточных библиотек могут иметь до 6 накопителей в одном модуле с автоматической сменой ленты. Ёмкость библиотек может достигать 240 Гбайт. - -Стандарт DDS-3 в настоящее время поддерживает ёмкости лент вплоть до 12 Гбайт (или 24 Гбайт сжатой информации). - -В накопителях 4мм, как и в приводах 8мм, используется технология спирального сканирования. Все плюсы и минусы этой технологии относятся как к 4мм, так и 8мм приводам. - -Не следует использовать ленты после того, как они были подвергнуты 2000 проходов, или были использованы для создания 100 полных копий. - -[[backups-tapebackups-8mm]] -=== 8мм (Exabyte) - -Ленты шириной 8мм являются самым распространённым типом для ленточных SCSI-накопителей; они же являются наиболее удачным выбором при выборе типа носителей для обмена лентами. Наверное, каждый сервер имеет привод Exabyte шириной 8мм и объёмом 2 Гбайт. Эти приводы удобны, они работают надёжно и тихо. Картриджи дешевы и малы по размеру (4.8 x 3.3 x 0.6 дюймов; 122 x 84 x 15 мм). Одним минусом лент шириной 8мм является сравнительно малое время службы головок и лент из-за высокой скорости движения ленты вдоль головок. - -Скорость передачи данных варьируется от ~250 kB/s до ~500 kB/s. Объём хранимых данных начинается с 300 Мбайт и может достигать 7 Гбайт. Аппаратное сжатие, имеющееся практически на всех таких приводах, увеличивает емкость примерно вдвое. Эти приводы существуют как в виде отдельных модулей, так и в виде многоприводных ленточных библиотек с 6 приводами и 120 лентами в одном отсеке. Ленты сменяются автоматически модулем. Емкости библиотек достигают величин, превышающих 840 Гбайт. - -Модель Exabyte "Mammoth" поддерживает ёмкость ленты в 12 Гбайт (24 Гбайт со сжатием) и стоит примерно вдвое больше, чем обычный ленточный накопитель. - -Данные на ленту записываются по технологии спирального сканирования, головки позиционируются под углом к носителю (примерно в 6 градусов). Лента оборачивается на 270 градусов вокруг шпульки, которая держит головки. Во время скольжения ленты вокруг шпульки последняя вращается. В результате достигается высокая плотность записи данных с очень близко лежащими дорожками, расположенными под наклоном по всей ленте. - -[[backups-tapebackups-qic]] -=== QIC - -Ленты и накопители формата QIC-150, наверное, являются наиболее распространенным типом носителей. Приводы лент формата QIC являются самыми дешёвыми "серьёзными" накопителями для резервного копирования. Минусом является стоимость носителей. Ленты формата QIC по сравнению с лентами шириной 8мм или 4мм являются дорогими, превосходя их по стоимости хранения одного гигабайта в пять раз. Однако если вам будут достаточно половины ленты, QIC может оказаться правильным выбором. QIC является _самым_ распространенным типом привода. Каждый сайт имеет привод QIC какой-либо емкости. QIC имеет большое количество плотностей на физически похожих (иногда даже идентичных) лентах. Приводы QIC работают вовсе не тихо. Эти накопители громко осуществляют поиск перед тем, как начать запись данных и достаточно шумны в процессе чтения, записи или поиска. Ленты QIC имеют размеры (6 x 4 x 0.7 дюймов; 152 x 102 x 17 мм). - -Скорость обмена данными лежит в границах от ~150 kB/s до ~500 kB/s. Ёмкость накопителей варьируется от 40 Мбайт до 15 Гбайт. Аппаратное сжатие присутствует во многих современных накопителях QIC. Приводы QIC устанавливаются менее часто; они вытесняются накопителями DAT. - -На ленту данные записываются в виде дорожек. Дорожки располагаются в длину вдоль всей ленты. Количество дорожек, и, в свою очередь, их ширина, меняется вместе с емкостью ленты. Большинство, если не все современные накопители обеспечивают обратную совместимость по крайней мере для чтения (однако зачастую и для режима записи). Формат QIC имеет хорошую репутацию в области надежности хранения данных (механика устроена проще и более надежна, чем в случае накопителей, построенных по технологии спирального сканирования). - -Ленты не следует больше использовать после создания 5,000 резервных копий. - -[[backups-tapebackups-dlt]] -=== DLT - -Формат DLT обладает самой высокой скоростью передачи данных среди всех перечисленных здесь накопителей. Лента шириной 1/2" (12.5мм) помещена в один картридж с катушкой (4 x 4 x 1 дюймов; 100 x 100 x 25 мм). Вдоль одной из сторон картриджа расположена сдвигающаяся крышечка. Механизм накопителя открывает эту крышку, чтобы вытащить конец ленты. На этом конце имеется овальное отверстие, которое используется для "захвата" ленты. Принимающая катушка размещена внутри накопителя. Все другие типы картриджей, перечисленные здесь (за исключением 9-дорожечных лент), имеют как подающий, так и принимающий барабаны внутри самого картриджа. - -Скорость передачи данных равна примерно 1.5 MB/s, что в три раза больше скорости передачи данных для накопителей 4мм, 8мм или QIC. Ёмкость картриджей варьируется от 10 Гбайт до 20 Гбайт для одного накопителя. Приводы могут компоноваться как многоленточные роботизированные, так и многоленточные, многоприводные библиотеки лент, вмещающие от 5 до 900 лент и от 1 до 20 приводов, что даёт ёмкость хранилища от 50 Гбайт до 9 Тбайт. - -Формат DLT Type IV поддерживает емкость до 70 Гбайт со сжатием. - -Данные на ленту записываются в виде дорожек, параллельных направлению движения (точно также, как и для лент QIC). Одновременно записываются две дорожки. Срок жизни головок чтения/записи сравнительно велик; как только лента перестает двигаться, одновременно прекращается трение между головками и лентой. - -=== AIT - -AIT - это новый формат фирмы Sony, который позволяет хранить до 50 Гбайт (со сжатием) информации на одной ленте. Ленты содержат микросхемы памяти, на которых размещается каталог содержимого ленты. Этот каталог может быть быстро считан накопителем для определения расположения файлов на ленте, вместо того, чтобы тратить несколько минут на поиск, как это происходит с другими форматами. Такое программное обеспечение, как SAMS:Alexandria, может управлять сорока или большим количеством ленточных библиотек AIT, связываясь непосредственно с памятью лент для вывода их содержимого, определения того, какие файлы были скопированы на какую ленту, выбора нужной ленты, её загрузки и восстановления данных с ленты. - -Библиотеки с такими функциями стоят в районе $20,000, выводя их из ниши любительского рынка. - -=== Использование новой ленты первый раз +Диск готов к использованию. Чтобы использовать дискету, смонтируйте её с помощью man:mount_msdosfs[8]. Также можно установить и использовать package:emulators/mtools[] из Коллекции портов. -Если вы попытаетесь прочитать или записать новую, абсолютно чистую ленту, в первый раз, то вам это не удастся. Выводимые на консоль сообщения будут выглядеть примерно так: +[[backup-basics]] +== Основы резервного копирования -[source,shell] -.... -sa0(ncr1:4:0): NOT READY asc:4,1 -sa0(ncr1:4:0): Logical unit is in process of becoming ready -.... +Реализация плана резервного копирования необходима для возможности восстановления после выхода диска из строя, случайного удаления файлов, повреждения данных или полного уничтожения машины, включая уничтожение локальных резервных копий. -На ленте отсутствует идентификационный блок (блок номер 0). Со времен принятия стандарта QIC-525 все накопители формата QIC записывают на ленту идентификационный блок (Identifier Block). Здесь имеется два решения: +Тип резервного копирования и его расписание будут варьироваться в зависимости от важности данных, необходимой детализации для восстановления файлов и допустимого времени простоя. Некоторые возможные методы резервного копирования включают: -* По команде `mt fsf 1` ленточный накопитель записывает идентификационный блок на ленту. -* Воспользуйтесь кнопкой на передней панели для выброса ленты. -+ -Вставьте ленту повторно и по команде `dump` сбросьте данные на ленту. -+ -Программа `dump` выдаст `DUMP: End of tape detected`, а на консоли будет выведено: `HARDWARE FAILURE info:280 asc:80,96`. -+ -перемотайте ленту такой командой: `mt rewind`. -+ -Последующие операции с лентой будут успешными. +* Архивы всей системы, сохраненные на постоянных носителях вне площадки. Это обеспечивает защиту от всех перечисленных выше проблем, но восстановление происходит медленно и неудобно, особенно для непривилегированных пользователей. +* Снимки файловой системы, полезные для восстановления удалённых файлов или предыдущих версий файлов. +* Копии целых файловых систем или дисков, которые синхронизируются с другой системой в сети с использованием запланированного пакета:package:net/rsync[]. +* Аппаратный или программный RAID, который минимизирует или исключает простои при отказе диска. -[[backups-floppybackups]] -== Создание резервных копий на дискетах +Обычно используется комбинация методов резервного копирования. Например, можно создать расписание для автоматического еженедельного полного резервного копирования системы, которое хранится за пределами основной площадки, и дополнить его ежечасными снимками ZFS. Кроме того, можно вручную создавать резервные копии отдельных каталогов или файлов перед их редактированием или удалением. -[[floppies-using]] -=== Можно ли использовать дискеты для создания резервных копий моих данных? +В этом разделе описаны некоторые утилиты, которые можно использовать для создания резервных копий и управления ими в системе FreeBSD. -На самом деле дискеты не подходят для создания резервных копий, потому что: +=== Резервное копирование файловой системы -* Носитель ненадёжен, особенно если речь идет о больших сроках хранения. -* Создание резервных копий и восстановление данных происходит очень медленно. -* Дискеты имеют весьма ограниченную емкость (дни, когда весь винчестер копировался на десяток или около того дискет, давно прошли). +Традиционные программы UNIX(R) для резервного копирования файловой системы — это man:dump[8], который создаёт резервную копию, и man:restore[8], который восстанавливает данные из резервной копии. Эти утилиты работают на уровне блоков диска, ниже абстракций файлов, ссылок и каталогов, создаваемых файловыми системами. В отличие от другого программного обеспечения для резервного копирования, `dump` создаёт резервную копию всей файловой системы и не может сохранить только часть файловой системы или дерево каталогов, расположенное на нескольких файловых системах. Вместо записи файлов и каталогов `dump` записывает непосредственно блоки данных, из которых состоят файлы и каталоги. -Несмотря на все это, если у вас нет другого способа сделать резервную копию ваших данных, то дискеты все же лучше, чем ничего. +[NOTE] +==== +Если `dump` используется для корневого каталога, он не будет создавать резервные копии для [.filename]#/home#, [.filename]#/usr# и многих других каталогов, так как обычно они являются точками монтирования других файловых систем или символическими ссылками на них. +==== -Если вы используете дискеты, то проверьте, что они должны быть хорошего качества. Дискеты, которые валялись по всему офису в течении нескольких лет, не подойдут. Идеально использовать новые от известного производителя. +При восстановлении данных `restore` по умолчанию сохраняет временные файлы в [.filename]#/tmp/#. Если используется диск восстановления с малым объемом [.filename]#/tmp#, следует установить переменную `TMPDIR` в каталог с большим свободным пространством для успешного выполнения восстановления. -[[floppies-creating]] -=== Итак, как же сделать резервную копию данных на дискетах? +При использовании `dump` следует учитывать, что некоторые особенности остались с ранних времен версии 6 AT&T UNIX(R), примерно 1975 года. Параметры по умолчанию предполагают резервное копирование на 9-дорожечную магнитную ленту, а не на другой тип носителя или на современные высокоплотные ленты. Эти значения по умолчанию необходимо переопределять в командной строке. -Самым лучшим методом создания резервной копии на дискете является использование утилиты man:tar[1] с опцией `-M` (многотомные архивы), которая позволяет размещать архивы на нескольких дискетах. +Возможно выполнить резервное копирование файловой системы через сеть на другую систему или на ленточный накопитель, подключенный к другому компьютеру. Хотя для этого можно использовать утилиты man:rdump[8] и man:rrestore[8], они не считаются безопасными. -Для копирования всех файлов в текущем каталоге и подкаталогах выполните следующее (работая как пользователь `root`): +Вместо этого можно более безопасно использовать `dump` и `restore` через SSH-соединение. Этот пример создает полную сжатую резервную копию [.filename]#/usr# и отправляет её на указанный хост через SSH-соединение. -[source,shell] +.Использование `dump` через ssh +[example] +==== +[source, shell] .... -# tar Mcvf /dev/fd0 * +# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ + targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz .... +==== -Когда первая дискета окажется полностью заполненной, программа man:tar[1] выдаст запрос на следующий том (так как работа утилиты man:tar[1] не зависит от носителя, она имеет дело с томами; здесь это означает дискету). +Этот пример устанавливает переменную окружения `RSH` для записи резервной копии на ленточный накопитель в удалённой системе через SSH-соединение: -[source,shell] +.Использование `dump` через ssh с установленной переменной `RSH` +[example] +==== +[source, shell] .... -Prepare volume 2 for /dev/fd0 and hit return: +# env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr .... +==== -Это сообщение будет повторяться (со все увеличивающимся номером тома) до тех пор, пока все указанные файлы не будут заархивированы. +[TIP] +==== +Системы, использующие crossref:zfs[,файловую систему Z (ZFS)], могут использовать man:zfs[8] для создания снимков, а также crossref:zfs[zfs-zfs-send,их отправки и получения] на удалённые системы или с них. +==== -[[floppies-compress]] -=== Можно ли резервные копии подвергнуть компрессии? +=== Резервное копирование каталогов -К сожалению, man:tar[1] при создании многотомных архивов не позволяет использовать опцию `-z`. Вы конечно же, можете скомпрессировать все файлы утилитой man:gzip[1], программой man:gzip[1] скопировать их на дискеты, а затем распаковать файлы снова утилитой man:gunzip[1]! +Некоторые встроенные утилиты могут делать резервное копирование и восстановление указанных файлов и каталогов по мере необходимости. -[[floppies-restoring]] -=== Как восстановить данные из моих резервных копий? +Хорошим выбором для создания резервной копии всех файлов в каталоге является man:tar[1]. Эта утилита появилась ещё в шестой версии AT&T UNIX(R) и по умолчанию предполагает рекурсивное резервное копирование на локальное ленточное устройство. С помощью ключей можно указать имя файла для резервной копии. -Для полного восстановления архива воспользуйтесь такой командой: +Этот пример создаёт сжатую резервную копию текущего каталога и сохраняет её в [.filename]#/tmp/mybackup.tgz#. При создании резервной копии убедитесь, что она не сохраняется в тот же каталог, который резервируется. -[source,shell] +.Резервное копирование текущего каталога с помощью `tar` +[example] +==== +[source, shell] .... -# tar Mxvf /dev/fd0 +# tar czvf /tmp/mybackup.tgz . .... +==== -Есть два подхода к восстановлению только нужных вам файлов. В первом вы можете начать с первой дискеты и выдать такую команду: +Для восстановления всей резервной копии перейдите в каталог, в который нужно восстановить данные, и укажите имя резервной копии. Обратите внимание, что это перезапишет более новые версии файлов в каталоге восстановления. Если есть сомнения, восстановите данные во временный каталог или укажите имя файла внутри резервной копии для восстановления. -[source,shell] +.Восстановление текущего каталога с помощью `tar` +[example] +==== +[source, shell] .... -# tar Mxvf /dev/fd0 filename +# tar xzvf /tmp/mybackup.tgz .... - -Программа man:tar[1] будет выдавать запрос на подачу последующих дискет до тех пор, пока не найдет требуемый файл. - -Как альтернатива, если вы знаете, на какой дискете расположен файл, то вы можете просто подать ее и дать ту же самую команду, что и выше. Заметьте, что если первый файл на дискете является продолжением предыдущего, то man:tar[1] выдаст предупреждение о том, что не может его восстановить, хотя вы этого и не просили делать! - -[[backup-strategies]] -== Стратегии резервного копирования - -При разработке плана резервного копирования первым делом надо продумать методы защиты от следующих проблем: - -* Отказ жесткого диска -* Случайное удаление файлов -* Повреждение содержимого файлов -* Полное уничтожение компьютера (например, при пожаре), при котором погибнут также резервные копии, физически находящиеся рядом. - -Вполне возможно, что для ваших нужд нет единой стратегии, наилучшим образом покрывающей все описанные проблемы; более того, скорее всего, ее и не может быть (разве что для персональных систем, где ценность данных очень низка). - -Вот несколько наиболее распространенных технологий, применяемых для резервного копирования: - -* Архивация системы целиком с копированием на какой-либо надежный внешний носитель и размещение его вдалеке от основной системы. При этом вы защищены от всех перечисленных проблемы, однако этот метод требует много времени и неудобен в процессе восстановления. Вы можете хранить резервные копии рядом или даже смонтированными, однако все равно столкнетесь с неудобствами при восстановлении, в особенности для непривилегированных пользователей. -* Снэпшоты файловых систем. Помогают только от случайного удаления файлов, но как раз в этом случае _очень_ полезны и эффективны. -* Полные копии файловых систем или дисков (например, периодический запуск программы man:rsync[1] для машины целиком). Для защиты от отказа жестких дисков этот способ обычно несколько уступает RAID; для восстановления случайно удаленных файлов может быть сравним по удобству со снэпшотами UFS, в зависимости от вашей ситуации. -* RAID. Минимизирует или исключает вовсе простои при отказе жестких дисков. При этом средняя частота таких отказов увеличивается (поскольку количество дисков больше), но разбираться с ними становится много спокойнее. -* Проверка отпечатков файлов (fingerprints). Для этого весьма полезна утилита man:mtree[8]. Не являясь собственно технологией резервного копирования, этот метод помогает выяснять, когда вам пока обращаться к резервным копиям. В особенности это важно для "оффлайновых" резервных копий. - -Довольно легко придумать и другие стратегии резервного копирования; многие из них будут композициями уже упомянутых. Наличие специальных требований, как правило, приводит к специализированным же технологиям (например, резервное копирование базы данных, как правило, требует использования методов, специфичных для соответствующей СУБД). Главным остается знание опасностей потери данных, от которых вы хотите себя оградить, и методов защиты от них. - -[[backup-basics]] -== Основы технологии резервного копирования - -Тремя основными программами резервного копирования являются man:dump[8], man:tar[1] и man:cpio[1]. - -=== Dump и Restore - -Для UNIX(R) традиционными программами резервного копирования являются `dump` и `restore`. Они работают с приводом как с набором дисковых блоков, которые расположены ниже понятий файлов, связей и каталогов, создаваемых файловыми системами. В отличие от других программ для резервного копирования, программа `dump` выполняет резервное копирование всей файловой системы, располагающейся на устройстве. Невозможно выполнить резервное копирование части файловой системы или дерева каталогов, которые располагаются более чем в одной файловой системе. Утилита `dump` не записывает на ленту файлы и каталоги, она записывает блоки данных, из которых строятся файлы и каталоги. Утилита `restore` по умолчанию настроена так, что в процессе своей работы она сохраняет временные файлы в каталог [.filename]#/tmp/#. В некоторых ситуациях доступного в [.filename]#/tmp/# места бывает недостаточно: например, если вы работаете с диска восстановления (recovery disk). В таких случаях для успешной работы утилиты необходимо указать в переменной окружения `TMPDIR` путь к каталогу на менее заполненной файловой системе. - -[NOTE] -==== -Если вы используете программу `dump` для работы с корневым каталогом, при этом не будет выполняться резервное копирование [.filename]#/home#, [.filename]#/usr# и многих других каталогов, так как они обычно являются точками монтирования других файловых систем или символическими ссылками на эти файловые системы. ==== -В программе `dump` имеются некоторые неудобства, оставшиеся от её ранних дней в составе Version 6 операционной системы AT&T UNIX (примерно 1975). Параметры, используемые по умолчанию, подходят для 9-дорожечных лент (6250 bpi), но не для современных носителей с высокой плотностью записи информации (до 62,182 ftpi). Для использования ёмкостей нынешних накопителей на магнитной ленте эти параметры могут быть заданы в командной строке. - -При помощи `rdump` и `rrestore` возможно резервное копирование данных по сети на накопитель, подключенный к другому компьютеру. Обе программы используют в работе man:rcmd[3] и man:ruserok[3] для доступа к накопителю на магнитной ленте на удалённом компьютере. Поэтому пользователь, выполняющий резервное копирование, должен быть указан в файле [.filename]#.rhosts# на удалённом компьютере. Аргументы для `rdump` и `rrestore` должны подходить для использования на другом компьютере. При выполнении копирования по команде `rdump` на компьютере с FreeBSD на накопитель Exabyte, подключенный к машине Sun по имени `komodo`, используйте такую команду: - -[source,shell] -.... -# /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1 -.... +Существуют десятки доступных параметров, описанных в man:tar[1]. Эта утилита также поддерживает использование шаблонов исключения для указания, какие файлы не должны включаться при резервном копировании указанного каталога или восстановлении файлов из резервной копии. -Будьте осторожны: есть проблемы с обеспечением безопасности при аутентификации посредством [.filename]#.rhosts#. Внимательно рассмотрите вашу ситуацию. +Для создания резервной копии с использованием указанного списка файлов и каталогов подходит утилита man:cpio[1]. В отличие от `tar`, `cpio` не умеет обходить дерево каталогов и требует предоставления списка файлов для резервирования. -Программы `dump` и `restore` можно использовать в более защищённом режиме посредством `ssh`. +Например, список файлов можно создать с помощью `ls` или `find`. Этот пример создаёт рекурсивный список текущего каталога, который затем передаётся в `cpio` для создания резервной копии с именем [.filename]#/tmp/mybackup.cpio#. -.Использование `dump` через ssh +.Использование `ls` и `cpio` для создания рекурсивной резервной копии текущего каталога [example] ==== - -[source,shell] +[source, shell] .... -# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ -targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz +# ls -R | cpio -ovF /tmp/mybackup.cpio .... - ==== -Либо воспользуйтесь встроенной в `dump` возможностью, задав переменную окружения `RSH`: +Утилита для резервного копирования, которая пытается объединить возможности, предоставляемые `tar` и `cpio`, — это man:pax[1]. С течением времени различные версии `tar` и `cpio` стали немного несовместимыми. POSIX(R) создал `pax`, который пытается читать и записывать многие из различных форматов `cpio` и `tar`, а также новые собственные форматы. + +Эквивалент `pax` для предыдущих примеров будет: -.Использование `dump` при работе через ssh с заданием `RSH` +.Резервное копирование текущего каталога с помощью `pax` [example] ==== - -[source,shell] +[source, shell] .... -# RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr +# pax -wf /tmp/mybackup.pax . .... - ==== -=== `tar` +[[backups-tapebackups]] +=== Использование магнитных лент для резервного копирования -Утилита man:tar[1] также восходит корнями к Version 6 системы AT&T UNIX (около 1975). `tar` работает с файловой системой, записывая на ленту файлы и каталоги. Эта утилита поддерживает не полный набор опций, имеющихся в man:cpio[1], однако не требует необычного перенаправления в командной строке, которое используется в утилите `cpio`. +В то время как технология ленточных накопителей продолжает развиваться, современные системы резервного копирования обычно сочетают удалённое резервное копирование с локальными съёмными носителями. FreeBSD поддерживает любые ленточные накопители, использующие SCSI, такие как LTO или DAT. Поддержка SATA и USB ленточных накопителей ограничена. -Чтобы скопировать данные на накопитель Exabyte, подключенный к машине Sun по имени `komodo`, используйте такую команду: +Для SCSI-ленточных устройств FreeBSD использует драйвер man:sa[4] и устройства [.filename]#/dev/sa0#, [.filename]#/dev/nsa0# и [.filename]#/dev/esa0#. Физическое имя устройства — [.filename]#/dev/sa0#. При использовании [.filename]#/dev/nsa0# программа резервного копирования не перематывает ленту после записи файла, что позволяет записывать несколько файлов на одну ленту. Использование [.filename]#/dev/esa0# приводит к извлечению ленты после закрытия устройства. -[source,shell] +В FreeBSD `mt` используется для управления операциями ленточного накопителя, например, для поиска файлов на ленте или записи управляющих меток на ленту. Например, первые три файла на ленте можно сохранить, пропустив их перед записью нового файла: + +[source, shell] .... -# tar cf - . | rsh komodo dd of=tape-device obs=20b +# mt -f /dev/nsa0 fsf 3 .... -Если вы беспокоитесь о безопасности создания резервных копий по сети, то вместо `rsh` вам нужно использовать `ssh`. - -=== `cpio` +Эта утилита поддерживает множество операций. Подробности смотрите в man:mt[1]. -man:cpio[1] является оригинальной программой UNIX(R) для обмена файлами на магнитных носителях. В утилите `cpio` имеются опции (кроме всего прочего), позволяющие выполнять изменение порядка следования байтов, поддерживающие различные форматы архивов и выполняющие перенаправление данных другим программам. Последняя возможность делает `cpio` прекрасным выбором для целей установки. `cpio` не знает о том, как работать с каталогами, список файлов должен даваться через [.filename]#stdin#. +Для записи одного файла на ленту с помощью `tar` укажите имя устройства ленты и файл для резервного копирования: -`cpio` не поддерживает создание резервных копий по сети. Вы можете воспользоваться перенаправлением вывода и программой `rsh` для посылки данных на удалённый накопитель. - -[source,shell] +[source, shell] .... -# for f in directory_list; do -find $f >> backup.list -done -# cpio -v -o --format=newc < backup.list | ssh user@host "cat > backup_device" +# tar cvf /dev/sa0 file .... -Где directory_list это список директорий, c которых Вы хотите создать резервные копии, _user_@_host_ это комбинация пользователь/хост которая описывает того кто занимается резервированием, и __backup_device__ это устройство куда копии должны быть записаны (например, [.filename]#/dev/nsa0#). - -=== `pax` - -man:pax[1] является ответом IEEE/POSIX(R) на утилиты `tar` и `cpio`. В течение многих лет различные версии программ `tar` и `cpio` получались не совсем совместимыми. Так что вместо того, чтобы попытаться полностью их стандартизировать, POSIX(R) создал новую утилиту для работы с архивами. `pax` пытается читать и писать различные форматы `cpio` и `tar`, и, кроме того, свои собственные новые форматы. Набор команд этой утилиты больше напоминает `cpio`, чем `tar`. - -[[backups-programs-amanda]] -=== Amanda - -Amanda (Advanced Maryland Network Disk Archiver) является целой клиент/серверной системой резервного копирования, а не отдельной программой. Сервер Amanda сможет осуществлять резервное копирование на единственный накопитель любого количества компьютеров, на которых имеется клиент Amanda и которые могут связываться по сети с сервером Amanda. Общей проблемой систем с большим количеством больших дисков является то, что время, требуемое для непосредственной записи данных на ленту, превышает лимит времени, выделенный на эту задачу. Amanda решает эту проблему. Amanda может использовать "промежуточный диск" для резервного копирования нескольких файловых систем одновременно. Amanda создаёт "наборы архивов": группа лент, используемых в некоторый период времени для создания полных копий всех файловых систем, перечисленных в конфигурационном файле системы Amanda. "Архивный набор" содержит также создаваемый каждую ночь инкрементальные (или дифференциальные) резервные копии всех файловых систем. Восстановление повреждённой файловой системы требует наличия самой последней полной копии и инкрементальных резервных копий. - -Конфигурационный файл даёт прекрасный механизм для управления процессом резервного копирования и объёмом трафика, генерируемого системой Amanda. Amanda сможет использовать любую из перечисленных выше программ для записи данных на ленту. Amanda имеется в виде как порта, так и пакета, и по умолчанию она не установлена. - -=== Не делать ничего - -"Не делать ничего" - это не программа для компьютера, и в то же время это наиболее широко используемая стратегия резервного копирования. Здесь нет никаких первоначальных затрат. Здесь нет расписания, которому нужно следовать. Просто скажите нет. Если что-то случится с вашими данными, улыбнитесь и забудьте о них! - -Если ваше время и данные практически ничего не стоят, то "не делать ничего" является самой подходящей программой для вашего компьютера. Но будьте осторожны, POSIX(R) является весьма полезным инструментом, и через полгода вы можете обнаружить, что у вас есть набор файлов, представляющих для вас определенную ценность. - -"Ничего не делать" является правильным методом резервного копирования для [.filename]#/usr/obj# и других деревьев каталогов, которые могут быть в точности перегенерированы вашим компьютером. Примером являются файлы, представляющие страницы этого Руководства в форматах HTML или PostScript(R). Они генерируются из входных файлов в формате SGML. Создавать резервные копии файлов в форматах HTML и PostScript(R) не нужно. Исходные файлы в формате SGML копируются регулярно. +Для восстановления файлов из архива `tar` на ленте в текущий каталог: -=== Какая программа резервного копирования самая лучшая? - -man:dump[8] _Точка._ Elizabeth D. Zwicky протестировала все программы резервного копирования, обсуждаемые здесь. Беспроигрышным вариантом для сохранения всех ваших данных и особенностей файловых систем UNIX(R) является `dump`. Элизабет создала файловые системы, содержащие большое количество необычных элементов (и некоторых не так уж необычных) и тестировала каждую из программ, выполняя резервное копирование и последующее восстановление этих файловых систем. В число необычных элементов входили: файлы с дырами, файлы с дырами и блоком пустого места, файлы с необычными символами в их именах, нечитаемые и незаписываемые файлы, устройства, меняющие свой размер во время резервного копирования, файлы, создаваемые и удаляемые во время копирования и тому подобное. Она представила результаты на конференции LISA V в октябре 1991 года. Посмотрите ссылку на сайте http://www.coredumps.de/doc/dump/zwicky/testdump.doc.html[ torture-testing Backup and Archive Programs]. - -=== Процедура восстановления при сбое - -==== До того, как случится катастрофа - -Вам нужно выполнить всего лишь четыре шага для того, чтобы быть готовым к любому сбою. - -Во-первых, распечатайте разметку диска для всех ваших дисков (к примеру, `bsdlabel da0 | lpr`), таблицу файловых систем ([.filename]#/etc/fstab#) и все сообщения, выводимые при загрузке, каждого по два экземпляра. - -Во-вторых, запишите CD диск с "livefs". Этот диск позволяет загружаться в режим аварийного восстановления FreeBSD, давая возможность пользователю выполнять ряд утилит, среди которых man:dump[8], man:restore[8], man:fdisk[8], man:bsdlabel[8], man:newfs[8], man:mount[8] и т.д. Образ CD с "livefs" для FreeBSD/i386 {rel120-current}-RELEASE находится по адресу link:ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/{rel120-current}/FreeBSD-{rel120-current}-RELEASE-i386-livefs.iso[ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/{rel120-current}/FreeBSD-{rel120-current}-RELEASE-i386-livefs.iso]. - -В-третьих, регулярно создавайте резервные копии на ленте. Любые изменения, которые вы делали после последнего резервного копирования, могут быть безвозвратно потеряны. На лентах включайте защиту от записи. - -В-четвертых, проверяйте работу CD диска (который вы сделали при выполнении второго шага) и лент с резервными копиями. Ведите журнал выполняемых действий. Храните эти записи вместе с загрузочным CD диском, распечатками и лентами. Вы просто обезумеете при восстановлении данных, если окажется, что записи помогли бы избежать разрушения ваших резервных копий (Каким образом? Вместо команды `tar xvf /dev/sa0` вы могли случайно набрать `tar cvf /dev/sa0` и тем самым перезаписать вашу резервную копию). - -Для дополнительной страховки, каждый раз создавайте загрузочный CD диск с "livefs" и две резервные копии на ленте. Храните одну из копий в каком-то удаленном месте и НЕ в том же здании, где находится ваш офис. Достаточно большое количество компаний во Всемирном Торговом Центре изучило это на своей шкуре. Это удаленное хранилище должно быть физически отделено на большое расстояние от ваших компьютеров и дисковых устройств. - -==== После сбоя - -Главный вопрос: выжило ли ваше оборудование? Вы регулярно делали резервные копии, так что нет нужды беспокоиться о программном обеспечении. - -Если оборудование было повреждено, должны быть заменены неисправные компоненты. - -Если с оборудованием всё в порядке, вставьте CD диск с "livefs" в привод и загрузите компьютер. На экран будет выведено оригинальное меню установки. Выберите требуемую страну, потом - пункт меню [.guimenuitem]#Fixit -- Repair mode with CDROM/DVD/floppy or start a shell.#, а в нём выберите пункт [.guimenuitem]#CDROM/DVD -- Use the live filesystem CDROM/DVD#. Утилита `restore` и другие нужные вам программы находятся в каталоге [.filename]#/mnt2/rescue#. - -Восстановите по отдельности каждую файловую систему. - -Попробуйте выполнить команду `mount` (например, `mount /dev/da0a /mnt`) по отношению к корневому разделу вашего первого диска. Если метка диска была испорчена, то воспользуйтесь командой `bsdlabel` для переразбиения на разделы и разметки диска так, чтобы получившаяся метка совпала с той, которая вами была распечатана и сохранена. Для повторного создания файловых систем используйте утилиту `newfs`. Повторно смонтируйте корневой раздел диска в режиме чтения-записи (`mount -u -o rw /mnt`). Воспользуйтесь вашей программой резервного копирования и резервными копиями на лентах для восстановления данных для этой файловой системы (например. `restore vrf /dev/sa0`). Размонтируйте файловую систему (например, `umount /mnt`). Повторите эту процедуру для каждой файловой системы, которая была повреждена. - -Как только ваша система заработает, сделайте резервную копию на новые ленты. Что бы ни вызвало сбой или потерю данных, это может случиться снова. Ещё один час, потраченный в этот момент, может спасти вас от неприятностей в будущем. - -[[disks-virtual]] -== Сетевые файловые системы, файловые системы в памяти и с отображением в файл - -Кроме дисков, которые вы физически устанавливаете в ваш компьютер; дискеты, компакт-диски, винчестеры и так далее, FreeBSD воспринимает и другие типы дисков - _виртуальные диски_. - -Сюда могут быть отнесены сетевые файловые системы, такие, как crossref:network-servers[network-nfs,Network File System] и Coda, а также файловые системы с организацией в памяти и создаваемые в файлах. - -В зависимости от версии FreeBSD, которую вы используете, для создания и работы с файловыми системами, отображаемыми в оперативную память или файлы, вам нужно будет пользоваться разными инструментами. - -[NOTE] -==== -Пользователи FreeBSD 4.X для создания требуемых устройств должны использовать man:MAKEDEV[8]. Во FreeBSD 5.0 и более поздних версиях для создания файлов устройств используется man:devfs[5], которая выполняет это прозрачно для пользователей. -==== - -[[disks-vnconfig]] -=== Файловая система в файле во FreeBSD 4.X - -Утилита man:vnconfig[8] конфигурирует и позволяет использовать дисковые устройства на основе псевдо-устройств vnode. _vnode_ представляет собой файл и отвечает за работу с файлом. Это означает, что man:vnconfig[8] использует файлы для создания и работы с файловой системой. Одним из возможных способов использования является монтирование образов дискет или образов компакт-дисков, сброшенных в файлы. - -Для использования man:vnconfig[8] в конфигурационном файле ядра вам нужно включить поддержку man:vn[4]: - -[.programlisting] +[source, shell] .... -pseudo-device vn +# tar xvf /dev/sa0 .... -Чтобы смонтировать имеющийся образ файловой системы: - -.Использование vnconfig для монтирования имеющегося образа файловой системы во FreeBSD 4.X -[example] -==== +Для резервного копирования файловой системы UFS используйте `dump`. В этом примере выполняется резервное копирование [.filename]#/usr# без перемотки ленты по завершении: -[source,shell] +[source, shell] .... -# vnconfig vn0 diskimage -# mount /dev/vn0c /mnt +# dump -0aL -b64 -f /dev/nsa0 /usr .... -==== - -Для создания нового образа файловой системы с помощью man:vnconfig[8]: - -.Создание нового диска в файле с помощью `vnconfig` -[example] -==== +Для интерактивного восстановления файлов из файла `dump` на ленте в текущий каталог: -[source,shell] +[source, shell] .... -# dd if=/dev/zero of=newimage bs=1k count=5k -5120+0 records in -5120+0 records out -# vnconfig -s labels -c vn0 newimage -# bsdlabel -r -w vn0 auto -# newfs vn0c -Warning: 2048 sector(s) in last cylinder unallocated -/dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors - 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) -super-block backups (for fsck -b #) at: - 32 -# mount /dev/vn0c /mnt -# df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/vn0c 4927 1 4532 0% /mnt +# restore -i -f /dev/nsa0 .... -==== - -[[disks-mdconfig]] -=== Файловые системы, отображаемые в файлы +[[backups-programs-amanda]] +=== Сторонние утилиты резервного копирования -Во FreeBSD 5.X и более поздних для конфигурации и подключения дисков man:md[4], отображаемых в оперативную память, используется утилита man:mdconfig[8]. Для работы с man:mdconfig[8] вам нужно подгрузить модуль man:md[4] или добавить поддержку этих устройств в файл конфигурации ядра: +Коллекция портов FreeBSD предоставляет множество сторонних утилит, которые можно использовать для планирования создания резервных копий, упрощения резервного копирования на ленточные накопители, а также для повышения удобства и простоты этого процесса. Многие из этих приложений работают по принципу клиент-сервер и позволяют автоматизировать резервное копирование как отдельной системы, так и всех компьютеров в сети. -[.programlisting] -.... -device md -.... +Популярные утилиты включают: -Утилита man:mdconfig[8] поддерживает три типа виртуальных дисков, отображаемых в память: диски в памяти, которая выделяется запросами man:malloc[9] и диски в памяти, использующие в качестве устройств хранения файлы или раздел подкачки. Одним из возможных использований таких дисков является монтирование файлов с образами дискет или CD. + * Amanda (package:misc/amanda-server[] и package:misc/amanda-client[]), + * Bacula (package:sysutils/bacula13-server[] и package:sysutils/bacula13-client[]), + * Bareos (package:sysutils/bareos-server[] и package:sysutils/bareos-client[]), + * package:net/rsync[], + * package:sysutils/duply[], и + * package:sysutils/duplicity[]. -Для монтирования образа существующей файловой системы: +=== Процедура восстановления при сбое -.Использование `mdconfig` для монтирования файла с образом существующей файловой системы -[example] -==== +В дополнение к регулярному резервному копированию рекомендуется выполнить следующие шаги в рамках плана подготовки к чрезвычайным ситуациям. -[source,shell] -.... -# mdconfig -a -t vnode -f diskimage -u 0 -# mount /dev/md0 /mnt -.... +Создайте печатную копию вывода следующих команд: -==== +* `gpart show` +* `more /etc/fstab` +* `pkg prime-list` +* `dmesg` -Для создания образа новой файловой системы при помощи man:mdconfig[8]: +Сохраните эту распечатку и копию установочного носителя в надежном месте. В случае необходимости аварийного восстановления загрузитесь с установочного носителя и выберите `Live CD` для доступа к оболочке-спасателю — режиму аварийного восстановления. Этот режим восстановления можно использовать для просмотра текущего состояния системы и, при необходимости, для переразметки дисков и восстановления данных из резервных копий. -.Создание нового диска, отображаемого в файл, при помощи `mdconfig` -[example] -==== +Затем протестируйте аварийную оболочку и резервные копии. Задокументируйте процедуру. Храните эти записи вместе с носителями, распечатками и резервными копиями. Эти заметки могут предотвратить случайное уничтожение резервных копий в стрессовой ситуации во время аварийного восстановления. -[source,shell] -.... -# dd if=/dev/zero of=newimage bs=1k count=5k -5120+0 records in -5120+0 records out -# mdconfig -a -t vnode -f newimage -u 0 -# bsdlabel -w md0 auto -# newfs md0a -/dev/md0c: 5.0MB (10224 sectors) block size 16384, fragment size 2048 - using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes. -super-block backups (for fsck -b #) at: - 160, 2720, 5280, 7840 -# mount /dev/md0a /mnt -# df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0a 4710 4 4330 0% /mnt -.... - -==== +Для дополнительной безопасности храните последнюю резервную копию в удалённом месте, физически отделённом от компьютеров и дисков на значительное расстояние. -Если в параметре `-u` вы не задали номер устройства, то man:mdconfig[8] для выбора неиспользуемого устройства будет использовать функцию автоматическое выделения в man:md[4]. Имя выделенного устройства будет выдано на стандартное устройство выводы в виде, например, [.filename]#md4#. Для получения более полной информации о man:mdconfig[8], пожалуйста, обратитесь к соответствующей странице справочной системы. +[[disks-virtual]] +== Диски в памяти -Утилита man:mdconfig[8] весьма полезна, однако для создания файла с файловой системой требуется произвести много действий. Вместе с FreeBSD 5.0 поставляется утилита под названием man:mdmfs[8], которая создаёт диск man:md[4] при помощи man:mdconfig[8], размещает на нём файловую систему UFS при помощи man:newfs[8] и монтирует её командой man:mount[8]. Например, если вы хотите создать и смонтировать такой же образ файловой системе, как выше, просто наберите такую команду: +В дополнение к физическим дискам FreeBSD также поддерживает создание и использование RAM-дисков. Один из возможных вариантов применения RAM-диска — доступ к содержимому файловой системы ISO без необходимости предварительной записи на CD или DVD с последующим монтированием CD/DVD-носителя. -.Настройка и монтирование диска, отображаемого в файл, при помощи команды `mdmfs` -[example] -==== +В FreeBSD драйвер man:md[4] используется для поддержки дисков в памяти. Ядро [.filename]#GENERIC# включает этот драйвер. При использовании пользовательского конфигурационного файла ядра убедитесь, что он содержит следующую строку: -[source,shell] +[.programlisting] .... -# dd if=/dev/zero of=newimage bs=1k count=5k -5120+0 records in -5120+0 records out -# mdmfs -F newimage -s 5m md0 /mnt -# df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0 4718 4 4338 0% /mnt +device md .... -==== - -Если вы используете параметр `md` без номера устройства, то man:mdmfs[8] будет использовать автоматическую нумерацию man:md[4] для автоматического выбора неиспользуемого устройства. Более полную информацию о man:mdmfs[8] можно найти на страницах справочной системы. +[[disks-mdconfig]] +=== Присоединение и отсоединение существующих образов -[[disks-md-freebsd4]] -=== Файловая система в памяти во FreeBSD 4.X +Для подключения существующего образа файловой системы используйте `mdconfig`, указав имя файла ISO и свободный номер устройства. Затем, используя этот номер устройства, подключите его к существующей точке монтирования. После подключения файлы из ISO будут доступны в точке монтирования. В этом примере _diskimage.iso_ подключается к устройству в памяти [.filename]#/dev/md0#, которое затем монтируется в [.filename]#/mnt#: -Драйвер man:md[4] является простым и эффективным способом создания файловых систем в памяти во FreeBSD 4.X. Для выделения памяти используется man:malloc[9]. +[source, shell] +.... +# mdconfig -f diskimage.iso -u 0 +# mount -t cd9660 /dev/md0 /mnt +.... -Просто возьмите файловую систему, которую вы приготовили при помощи, скажем, man:vnconfig[8] и: +Обратите внимание, что `-t cd9660` был использован для монтирования формата ISO. Если номер устройства не указан с помощью `-u`, `mdconfig` автоматически выделит неиспользуемый диск в памяти и выведет имя выделенного устройства, например, [.filename]#md4#. Дополнительные сведения о данной команде и её параметрах можно найти в man:mdconfig[8]. -.Диск md в памяти во FreeBSD 4.X -[example] -==== +Когда диск в памяти больше не используется, его ресурсы должны быть возвращены обратно системе. Сначала размонтируйте файловую систему, затем используйте `mdconfig` для отключения диска от системы и освобождения его ресурсов. Чтобы продолжить этот пример: -[source,shell] +[source, shell] .... -# dd if=newimage of=/dev/md0 -5120+0 records in -5120+0 records out -# mount /dev/md0c /mnt -# df /mnt -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md0c 4927 1 4532 0% /mnt +# umount /mnt +# mdconfig -d -u 0 .... -==== - -Для получения более полной информации, пожалуйста, обратитесь к страницам справочной системы по man:md[4]. +Чтобы определить, подключены ли к системе какие-либо диски в памяти, введите `mdconfig -l`. [[disks-md-freebsd5]] -=== Файловые системы с отображением в память +=== Создание диска в памяти на основе файла или памяти -При работе с файловыми системами, отображаемыми в файл или память, используются одни и те же утилиты: man:mdconfig[8] или man:mdmfs[8]. Обычно для отображаемых в память файловых систем следует использовать опцию "хранение на области подкачки". Это не означает, что такая файловая система будет сразу сброшена на диск: место под нее будет выделено из общего пула памяти, и при необходимости может перемещаться в область подкачки. Также, возможно выделение места под файловую систему в основной памяти (через man:malloc[9]); однако, следует помнить, что использование таких файловых систем, в особенности большого размера, может привести к панике системы от исчерпания ядерной памяти. +FreeBSD также поддерживает диски в памяти, где хранилище выделяется либо с жёсткого диска, либо из области памяти. Первый метод обычно называют файловой системой на основе файла, а второй — файловой системой на основе памяти. Оба типа можно создать с помощью `mdconfig`. -.Создание нового диска с отображением в память при помощи `mdconfig` -[example] -==== +Для создания новой файловой системы в памяти укажите тип `swap` и размер создаваемого диска в памяти. Затем отформатируйте диск в памяти файловой системой и смонтируйте его как обычно. В этом примере создаётся диск в памяти размером 5M на устройстве `1`. Этот диск в памяти затем форматируется файловой системой UFS перед монтированием: -[source,shell] +[source, shell] .... # mdconfig -a -t swap -s 5m -u 1 # newfs -U md1 /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 - using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes. - with soft updates + using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes. + with soft updates super-block backups (for fsck -b #) at: 160, 2752, 5344, 7936 # mount /dev/md1 /mnt @@ -1694,447 +1257,373 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md1 4718 4 4338 0% /mnt .... -==== +Чтобы создать новый файловый диск в памяти, сначала выделите область на диске для использования. В этом примере создается пустой файл размером 5 МБ с именем [.filename]#newimage#: -.Создание нового диска с отображением в память при помощи `mdmfs` -[example] -==== +[source, shell] +.... +# dd if=/dev/zero of=newimage bs=1k count=5k +5120+0 records in +5120+0 records out +.... + +Затем подключите этот файл к диску в памяти, создайте метку диска и отформатируйте его с файловой системой UFS, смонтируйте диск в памяти и проверьте размер диска на основе файла: -[source,shell] +[source, shell] .... -# mdmfs -s 5m md2 /mnt +# mdconfig -f newimage -u 0 +# bsdlabel -w md0 auto +# newfs -U md0a +/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048 + using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes. +super-block backups (for fsck -b #) at: + 160, 2720, 5280, 7840 +# mount /dev/md0a /mnt # df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/md2 4846 2 4458 0% /mnt +/dev/md0a 4710 4 4330 0% /mnt .... -==== - -=== Отключение диска, отображаемого в память, от системы - -Если файловые системы, отображаемые в память или файл, больше не используются, вам нужно высвободить все ресурсы для системы. Первым делом нужно размонтировать файловую систему, затем воспользоваться man:mdconfig[8] для отключения диска от системы и освободить ресурсы. - -К примеру, чтобы отключить и освободить все ресурсы, используемые [.filename]#/dev/md4#: +Для создания файловой системы на основе файла или оперативной памяти с помощью `mdconfig` требуется выполнить несколько команд. В FreeBSD также доступна утилита `mdmfs`, которая автоматически настраивает диск в памяти, форматирует его с файловой системой UFS и монтирует. Например, после создания образа _newimage_ с помощью `dd`, следующая команда эквивалентна выполнению команд `bsdlabel`, `newfs` и `mount`, приведённых выше: -[source,shell] +[source, shell] .... -# mdconfig -d -u 4 +# mdmfs -F newimage -s 5m md0 /mnt .... -Для выдачи информации об отконфигурированных устройствах man:md[4] используется команда `mdconfig -l`. - -Во FreeBSD 4.X для отключения устройства используется команда man:vnconfig[8]. Например, для отключения и освобождения всех ресурсов, используемых [.filename]#/dev/vn4#: +Чтобы вместо этого создать новый диск в памяти на основе оперативной памяти с помощью `mdmfs`, используйте следующую команду: -[source,shell] +[source, shell] .... -# vnconfig -u vn4 +# mdmfs -s 5m md1 /mnt .... +Если номер устройства не указан, `mdmfs` автоматически выберет неиспользуемое устройство памяти. Подробнее о `mdmfs` см. в man:mdmfs[8]. + [[snapshots]] -== Мгновенные копии файловых систем +== Снимки файловой системы + +FreeBSD предлагает функцию в сочетании с crossref:config[soft-updates,мягкими обновлениями]: создание снимков файловой системы. -Во FreeBSD 5.0 вместе с технологией crossref:cutting-edge[soft-updates, Отложенных обновлений] представлена новая возможность: генерация мгновенных копий файловых систем. +Снимки UFS позволяют пользователю создавать образы указанных файловых систем и работать с ними как с файлами. Если вы используете crossref:zfs[,файловую систему Z (ZFS)], обратитесь к crossref:zfs[zfs-zfs-snapshot,"Управление снимками"] для получения информации об использовании снимков. -Мгновенные копии позволяют пользователю создавать образы заданных файловых систем и работать с ними как с файлами. Файлы мгновенных копий должны создаваться в той файловой системе, над которой производится действие, и пользователь может создавать не более 20 мгновенных копий для каждой файловой системы. Активные копии записываются в суперблок, так что они остаются в силе между операциями монтирования и размонтирования в процессе системных перезагрузок. Если мгновенная копия больше не нужна, она может быть удалена стандартной командой man:rm[1]. Мгновенные копии могут удаляться в любом порядке, однако всё использованное пространство не может быть использовано, так как другая мгновенная копия может претендовать на некоторые блоки из освобождённых. +Файлы снимков должны быть созданы в той файловой системе, над которой выполняется действие, и пользователь может создать не более 20 снимков для каждой файловой системы. Активные снимки записываются в суперблок, поэтому они сохраняются после размонтирования и повторного монтирования, а также после перезагрузки системы. Когда снимок больше не нужен, его можно удалить с помощью man:rm[1]. Хотя снимки можно удалять в любом порядке, не все освобождаемое пространство может быть использовано, так как другой снимок может претендовать на часть освобожденных блоков. -Неизменяемый флаг `snapshot` устанавливается на файл при помощи man:mksnap_ffs[8] после первоначального создания файла мгновенной копии. Команда man:unlink[1] делает исключение для файлов мгновенных копий, позволяя их удалять. +Неизменяемый флаж файла `snapshot` устанавливается man:mksnap_ffs[8] после первоначального создания файла снимка. man:unlink[1] делает исключение для файлов снимков, так как позволяет их удалять. -Мгновенные копии создаются при помощи утилиты man:mount[8]. Чтобы создать мгновенную копию [.filename]#/var# в файле [.filename]#/var/snapshot/snap#, воспользуйтесь такой командой: +Снимки создаются с помощью man:mount[8]. Чтобы создать снимок [.filename]#/var# в файле [.filename]#/var/snapshot/snap#, используйте следующую команду: -[source,shell] +[source, shell] .... # mount -u -o snapshot /var/snapshot/snap /var .... -В качестве альтернативного средства создания мгновенных копий вы можете использовать утилиту man:mksnap_ffs[8]: +Или используйте man:mksnap_ffs[8] для создания снимка: -[source,shell] +[source, shell] .... # mksnap_ffs /var /var/snapshot/snap .... -Файлы мгновенных копий файловых систем (к примеру, [.filename]#/var#) можно найти при помощи команды man:find[1]: +Файлы снимков можно найти в файловой системе, например, в [.filename]#/var#, с помощью man:find[1]: -[source,shell] +[source, shell] .... # find /var -flags snapshot .... -После создания мгновенной копии есть несколько способов её использования: +После создания моментального снимка он может быть использован несколькими способами: -* Некоторые администраторы будут использовать файл мгновенной копии для целей создания резервной копии, так как мгновенная копия может быть перенесена на CD или магнитную ленту. -* Утилита проверка целостности файловой системы, man:fsck[8], может быть запущена над мгновенной копией. Полагая, что файловая система была в порядке, когда она была смонтирована, вы всегда должны получать нормальный (и неизменный) результат. Это именно то, что выполняет фоновый процесс man:fsck[8]. -* Запустить утилиту man:dump[8] с мгновенной копией. Будет создаваться дамп, соответствующий файловой системе на момент создания мгновенной копии. Утилита man:dump[8] при использовании опции `-L` тоже может работать с мгновенными копиями, создавать их дампы, а затем удалять за один проход. -* Смонтировать командой man:mount[8] мгновенную копию как замороженный образ файловой системы. Чтобы смонтировать командой man:mount[8] мгновенную копию [.filename]#/var/snapshot/snap#, запустите: +* Некоторые администраторы используют файл снимка для резервного копирования, так как снимок можно перенести на компакт-диски или магнитные ленты. +* Проверка целостности файловой системы, man:fsck[8], может быть запущена на снимке. При условии, что файловая система была чистой на момент монтирования, результат всегда должен быть чистым и неизменным. +* Запуск man:dump[8] на снимке создаст дамп-файл, согласованный с файловой системой и временной меткой снимка. man:dump[8] также может создать снимок, создать образ дампа и затем удалить снимок одной командой, используя опцию `-L`. +* Снимок может быть смонтирован как замороженный образ файловой системы. Для монтирования снимка [.filename]#/var/snapshot/snap# выполните команду man:mount[8]: + - -[source,shell] +[source, shell] .... -# mdconfig -a -t vnode -f /var/snapshot/snap -u 4 +# mdconfig -a -t vnode -o readonly -f /var/snapshot/snap -u 4 # mount -r /dev/md4 /mnt .... -Теперь вы можете пройтись по иерархии вашей зафиксированной файловой системы [.filename]#/var#, смонтированной в каталог [.filename]#/mnt#. Первоначально всё будет в том же самом состоянии, в каком это было во время создания мгновенной копии. Единственным исключением будет то, что любые ранее сделанные мгновенные копии будут видны как файлы нулевой длины. Когда использование мгновенной копии закончено, она может быть удалена командой: +Замороженный [.filename]#/var# теперь доступен через [.filename]#/mnt#. Все изначально будет находиться в том же состоянии, в котором было на момент создания снимка. Единственное исключение — любые предыдущие снимки будут отображаться как файлы нулевой длины. Чтобы отмонтировать снимок, используйте: -[source,shell] +[source, shell] .... # umount /mnt # mdconfig -d -u 4 .... -Для получения более полной информации о `softupdates` и мгновенных копиях файловых систем, включая технической описание, вы можете посетить сайт Маршалла Кёрка МакКузика (Marshall Kirk McKusick) по адресу http://www.mckusick.com/[http://www.mckusick.com/]. +Для получения дополнительной информации о `softupdates` и снимках файловых систем, включая технические документы, посетите веб-сайт Маршалла Кирка Маккусика по адресу http://www.mckusick.com/[http://www.mckusick.com/]. [[quotas]] -== Квотирование файловых систем +== Квоты на диске + +Дисковые квоты могут использоваться для ограничения объёма дискового пространства или количества файлов, которые пользователь или члены группы могут выделить в рамках одной файловой системы. Это предотвращает ситуацию, когда один пользователь или группа пользователей потребляет всё доступное дисковое пространство. + +Этот раздел описывает, как настроить квоты дисков для файловой системы UFS. Для настройки квот в файловой системе ZFS обратитесь к crossref:zfs[zfs-zfs-quota,"Квоты наборов данных, пользователей и групп"] -Квоты - это опциональная возможность операционной системы, которая позволяет ограничивать объем дискового пространства и/или количество файлов для конкретного пользователя или членов определенной группы в рамках одной файловой системы. Чаще всего эта возможность используется в системах разделения времени, когда желательно ограничить количество ресурсов, которые может использовать один пользователь или группа пользователей. Это позволит не допустить ситуации, когда один пользователь или группа пользователей заполняют всё доступное дисковое пространство. +=== Включение квот на диске -=== Настройка вашей системы на использование дисковых квот +Чтобы определить, поддерживает ли ядро FreeBSD квоты дискового пространства: + +[source, shell] +.... +% sysctl kern.features.ufs_quota +kern.features.ufs_quota: 1 +.... -Перед тем, как попытаться использовать дисковые квоты, необходимо убедиться, что квоты включены в вашем ядре. Это делается добавлением следующей строки в конфигурационный файл вашего ядра: +В этом примере `1` указывает на поддержку квот. Если значение равно `0`, добавьте следующую строку в файл конфигурации собственного ядра и пересоберите ядро, используя инструкции из crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]: [.programlisting] .... options QUOTA .... -В стандартном ядре [.filename]#GENERIC# это по умолчанию не включено, так что для использования дисковых квот вам нужно будет настроить, откомпилировать и установить собственное ядро. Пожалуйста, обратитесь к crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD] за дополнительной информацией о настройке ядра. - -Затем вам потребуется включить квотирование дисков в файле [.filename]#/etc/rc.conf#. Это делается добавление такой строчки: +Далее включите квоты на диски в [.filename]#/etc/rc.conf#: [.programlisting] .... -enable_quotas="YES" +quota_enable="YES" .... -Для более полного контроля над запуском квотирования имеется дополнительная переменная для настройки. Как правило, при загрузке целостность квот каждой файловой системы проверяется программой man:quotacheck[8]. При работе программы man:quotacheck[8] проверяется точное соответствие данных в базе данных квот данным в файловой системе. Это весьма долгий процесс, что отражается на времени загрузки системы. Если вам захочется пропустить этот шаг, то для этого предназначена специальная переменная в файле [.filename]#/etc/rc.conf#: +Обычно при загрузке проверяется целостность квот для каждой файловой системы с помощью man:quotacheck[8]. Эта программа гарантирует, что данные в базе квот соответствуют данным в файловой системе. Это трудоёмкий процесс, который может значительно увеличить время загрузки системы. Чтобы пропустить этот шаг, добавьте следующую переменную в [.filename]#/etc/rc.conf#: [.programlisting] .... check_quotas="NO" .... -Наконец, вам потребуется отредактировать файл [.filename]#/etc/fstab# для включения дисковых квот на уровне файловых систем. Это то место, где вы можете включить квоты для пользователей, для групп или для обеих этих категорий для всех ваших файловых систем. - -Для включения пользовательских квот для файловой системы, добавьте параметр `userquota` в поле параметров файловой системы, на которой вы хотите включить квотирование, в файле [.filename]#/etc/fstab#. Например: +Наконец, отредактируйте [.filename]#/etc/fstab#, чтобы включить квоты диска для каждой файловой системы. Чтобы включить квоты для пользователей в файловой системе, добавьте `userquota` в поле опций записи [.filename]#/etc/fstab# для файловой системы, на которой нужно включить квоты. Например: [.programlisting] .... /dev/da1s2g /home ufs rw,userquota 1 2 .... -Подобным же образом для включения квотирования на уровне групп, воспользуйтесь параметром `groupquota` вместо `userquota`. Чтобы включить квотирование как для пользователей, так и для групп, измените строчку следующим образом: +Для включения квот групп используйте `groupquota` вместо этого. Чтобы включить квоты и для пользователей, и для групп, разделите параметры запятой: [.programlisting] .... -/dev/da1s2g /home ufs rw,userquota,groupquota 2 2 +/dev/da1s2g /home ufs rw,userquota,groupquota 1 2 .... -По умолчанию файлы квот хранятся в корневом каталоге файловой системы в файлах с именами [.filename]#quota.user# и [.filename]#quota.group# соответственно для пользовательских и групповых квот. Для получения подробной информации обратитесь к команде man:fstab[5]. Хотя справочная страница по man:fstab[5] утверждает, что вы можете указать другое местоположение файлов с квотами, этого делать не рекомендуется, потому что различные утилиты для работы с квотами не могут нормально работать в такой ситуации. +По умолчанию файлы квот хранятся в корневом каталоге файловой системы как [.filename]#quota.user# и [.filename]#quota.group#. Дополнительную информацию можно найти в man:fstab[5]. Указание альтернативного расположения для файлов квот не рекомендуется. -На этом этапе вы должны перезагрузить вашу систему с новым ядром. Скрипт [.filename]#/etc/rc# автоматически запустит соответствующие команды для создания начальных файлов для всех квот, которые вы создали в файле [.filename]#/etc/fstab#, так что нет нужды вручную создавать никаких файлов квот нулевой длины. +После завершения настройки перезагрузите систему, и [.filename]#/etc/rc# автоматически выполнит соответствующие команды для создания начальных файлов квот для всех включённых квот в [.filename]#/etc/fstab#. -При нормальной работе вам не потребуется вручную запускать программы man:quotacheck[8], man:quotaon[8] или man:quotaoff[8]. Однако вам нужно хотя бы прочесть страницы справочника по этим командам, просто чтобы ознакомиться с их функциями. +В обычном режиме работы нет необходимости вручную запускать man:quotacheck[8], man:quotaon[8] или man:quotaoff[8]. Однако рекомендуется ознакомиться с их руководствами, чтобы понимать принцип работы. -=== Установка квот +=== Установка ограничений квот -Как только вы настроили вашу систему на использование квот, проверьте, что они действительно были задействованы. Простым способом сделать это является запуск такой команды: +Для проверки включения квот выполните: -[source,shell] +[source, shell] .... # quota -v .... -Вы должны увидеть однострочную информацию, отражающую использование диска и текущие ограничения для каждой файловой системы, на которой включено квотирование. +Должна быть однострочная сводка об использовании диска и текущих лимитах квот для каждой файловой системы, на которой включены квоты. -Теперь вы действительно готовы задавать ограничения при помощи команды man:edquota[8]. +Система готова к назначению квот с помощью `edquota`. -У вас есть несколько вариантов того, как приводить в действие ограничения по объему дискового пространства, который могут занимать пользователь или группа, а также по количеству файлов, которые они могут создать. Вы можете ограничивать размещение ресурсов на основе объема дискового пространства (квотирование блоков), количества файлов (квотирование inode) или их комбинации. Каждое из этих ограничений, в свою очередь, делится на две категории: мягкие и жёсткие ограничения. +Доступно несколько вариантов для установки ограничений на объем дискового пространства, который может быть выделен пользователю или группе, а также на количество создаваемых ими файлов. Ограничения могут быть установлены на основе объема дискового пространства (блочные квоты), количества файлов (квоты inode) или их комбинации. Каждое ограничение дополнительно разделяется на две категории: жесткие и мягкие лимиты. -Жёсткое ограничение не может быть превышено. Как только пользователь достиг своих ограничений, ресурсы соответствующей файловой системы ему больше выделяться не будут. Например, если пользователь имеет жесткое ограничение в 500 Кбайт на файловой системе и в текущий момент использует 490 Кбайт, то пользователь может получить дополнительно ещё 10 Кбайт. Попытка занять ещё 11 Кбайт окончится неудачно. +Жёсткий лимит не может быть превышен. Как только пользователь достигает жёсткого лимита, он не может выделить дополнительные ресурсы на этой файловой системе. Например, если у пользователя жёсткий лимит в 500 КБ на файловой системе и он уже использует 490 КБ, он может выделить только дополнительные 10 КБ. Попытка выделить дополнительные 11 КБ завершится неудачей. -С другой стороны, мягкие ограничения могут быть превышены в течении некоторого периода времени. Этот период времени также называют периодом отсрочки, который по умолчанию равен одной неделе. Если пользователь превышает своё мягкое ограничение в течение периода времени, превышающего отсрочку, то это мягкое ограничение становится жестким и последующее выделение ресурсов будет запрещено. Когда пользователь вернётся обратно к отметке, меньшей, чем мягкое ограничение, то период отсрочки будет сброшен. +Мягкие ограничения могут быть превышены на ограниченное время, известное как льготный период, который по умолчанию составляет одну неделю. Если пользователь превышает своё ограничение дольше льготного периода, мягкое ограничение становится жёстким, и дальнейшие выделения ресурсов запрещаются. Когда пользователь снова опускается ниже мягкого ограничения, льготный период сбрасывается. -Далее приводится пример того, что вы можете наблюдать при запуске команды man:edquota[8]. Когда вызывается команда man:edquota[8], вы оказываетесь в редакторе, заданном переменной переменной окружения `EDITOR`, или в редакторе vi, если переменная `EDITOR` не задана, и можете редактировать квоты. +В следующем примере редактируется квота для учётной записи `test`. При запуске `edquota` открывается редактор, указанный в переменной `EDITOR`, для изменения ограничений квоты. Редактор по умолчанию установлен в vi. -[source,shell] +[source, shell] .... # edquota -u test -.... - -[.programlisting] -.... Quotas for user test: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) - inodes in use: 7, limits (soft = 50, hard = 60) + inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) - inodes in use: 0, limits (soft = 50, hard = 60) + inodes in use: 0, limits (soft = 50, hard = 60) .... -Для каждой файловой системы, на которой включено квотирование, вы должны увидеть две строки. В одной строке приведены ограничения на блоки, а в другой на количество inode. Например, чтобы увеличить ограничения на количество блоков для пользователя с мягкого ограничения в 50 и жёсткого ограничения в 75, на мягкое ограничение в 500 и жёсткое ограничение в 600, измените: - -[.programlisting] -.... -/usr: kbytes in use: 65, limits (soft = 50, hard = 75) -.... - -на: +Обычно для каждой файловой системы с включенными квотами есть две строки. Одна строка представляет ограничения на блоки, а другая — ограничения на файлы. Измените значение, чтобы изменить лимит квоты. Например, чтобы увеличить лимит блоков для [.filename]#/usr# до мягкого лимита `500` и жёсткого лимита `600`, измените значения в этой строке следующим образом: [.programlisting] .... /usr: kbytes in use: 65, limits (soft = 500, hard = 600) .... -Новые ограничения вступят в силу после выхода из редактора. +Новые ограничения квот вступают в силу после выхода из редактора. -Иногда желательно установить ограничения квот на некоторый диапазон UID (идентификаторов пользователей). Это можно сделать при помощи параметра `-p` в команде man:edquota[8]. Во-первых, установите желаемое ограничение для пользователя, а затем запустите команду `edquota -p protouser startuid-enduid`. Например, если пользователь `test` имеет желаемые ограничения, то для дублирования этих ограничений на пользователей с UID от 10000 до 19999 может быть использована такая команда: +Иногда требуется установить квоты для диапазона пользователей. Это можно сделать, сначала назначив желаемую квоту для одного пользователя, а затем используя опцию `-p` для копирования этой квоты в указанный диапазон идентификаторов пользователей (UID). Следующая команда скопирует эти квоты для UID с `10,000` по `19,999`: -[source,shell] +[source, shell] .... # edquota -p test 10000-19999 .... -Дополнительную информацию можно получить из справочной страницы по команде man:edquota[8]. +Для получения дополнительной информации обратитесь к man:edquota[8]. -=== Проверка ограничений и использования диска +=== Проверка ограничений квот и использования диска -Для проверки квот и использования дисков вы можете использовать команды man:quota[1] или man:repquota[8]. Команда man:quota[1] может быть использована для проверки квот отдельных пользователей, групп, а также использования дисков. Пользователь может только проверить собственную квоту и квоту той группы, к которой он принадлежит. Только администратор системы может проверить квоты всех пользователей и групп. Команду man:repquota[8] можно использовать для получения суммарной статистики всех квот и использования дисков для файловых систем с включенными квотами. +Для проверки квот и использования диска отдельными пользователями или группами используйте man:quota[1]. Пользователь может просматривать только свою собственную квоту и квоту группы, в которой он состоит. Только суперпользователь может просматривать все квоты пользователей и групп. Чтобы получить сводку по всем квотам и использованию диска для файловых систем с включёнными квотами, используйте man:repquota[8]. -Далее приведен пример вывода команды `quota -v` для пользователя, который имеет ограничения на двух файловых системах. +Обычно файловые системы, на которых пользователь не занимает места, не отображаются в выводе команды `quota`, даже если для пользователя установлено ограничение квоты для этой файловой системы. Используйте `-v`, чтобы отобразить эти файловые системы. Ниже приведён пример вывода `quota -v` для пользователя, у которого установлены ограничения квоты на двух файловых системах. [.programlisting] .... Disk quotas for user test (uid 1002): Filesystem usage quota limit grace files quota limit grace /usr 65* 50 75 5days 7 50 60 - /usr/var 0 50 75 0 50 60 + /usr/var 0 50 75 0 50 60 .... -В этом примере для файловой системы [.filename]#/usr# пользователь превысил свое мягкое ограничение в 50 Кбайт на 15 Кбайт и имеет 5 дней до истечения отсрочки. Отметьте знак звездочки `*`, который указывает на превышение пользователем своего ограничения. - -Как правило, файловые системы, на которых пользователь не занимает дискового пространства, не показываются в выводе команды man:quota[1], даже если ему выделена квота на этой файловой системе. При использовании параметра `-v` эти файловые системы выводятся, как, например, файловая система [.filename]#/usr/var# в примере выше. +В этом примере пользователь превысил мягкое ограничение в 50 Кб на [.filename]#/usr# на 15 Кб, и у него осталось 5 дней льготного периода. Звёздочка `*` указывает, что пользователь в настоящее время превысил ограничение квоты. -=== Квоты в NFS +=== Квоты по NFS -Квоты определяются подсистемой квот на сервере NFS. Даемон man:rpc.rquotad[8] предоставляет информацию о квотах для программы man:quota[1] на клиентах NFS, позволяя пользователям на этих машинах смотреть свою статистику о квотах. +Квоты применяются подсистемой квот на NFS-сервере. Демон man:rpc.rquotad[8] предоставляет информацию о квотах для команды `quota` на NFS-клиентах, позволяя пользователям на этих машинах просматривать свою статистику по квотам. -Включите `rpc.rquotad` в файле [.filename]#/etc/inetd.conf# следующим образом: +На NFS-сервере включите `rpc.rquotad`, удалив `+#+` из этой строки в файле [.filename]*/etc/inetd.conf*: [.programlisting] .... rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad .... -Теперь перезапустите `inetd`: +Затем перезапустите `inetd`: -[source,shell] +[source, shell] .... -# /etc/rc.d/inetd restart +# service inetd restart .... [[disks-encrypting]] -== Шифрование дисковых разделов +== Шифрование разделов диска -FreeBSD предоставляет прекрасную возможность по защите от несанкционированного доступа к данным. Права на доступ к файлам и технология принудительного контроля доступа MAC (Mandatory Access Control) (смотрите see crossref:mac[mac, Принудительный контроль доступа (MAC)]) помогают предотвратить несанкционированный доступ посторонних лиц к данным, при условии работы операционной системы и компьютера. Однако права доступа, контролируемые операционной системой, не имеют значения, если нападающий получает физический доступ к компьютеру и может просто перенести жёсткий диск на другую машину для копирования и дальнейшего анализа важных данных. +FreeBSD обеспечивает отличную защиту от несанкционированного доступа к данным в режиме онлайн. Права доступа к файлам и crossref:mac[mac,Принудительный контроль доступа] (MAC) помогают предотвратить доступ к данным неавторизованных пользователей, пока операционная система активна и компьютер включен. Однако принудительно устанавливаемые операционной системой права доступа не имеют значения, если злоумышленник получит физический доступ к компьютеру и сможет переместить его жесткий диск в другую систему для копирования и анализа данных. -Вне зависимости от того, как атакующий завладел жёстким диском или выключенным компьютером, технологии gbde (GEOM Based Disk Encryption - шифрование диска на уровне GEOM) и криптографическая подсистема `geli` FreeBSD могут защитить данные файловой системы компьютера даже против очень заинтересованной атакующей стороны с достаточными ресурсами. В отличие от громоздких систем шифрования, которые шифруют отдельные файлы, `gbde` и `geli` шифруют в прозрачном режиме файловую систему в целом, при этом данные в открытом виде на диск никогда не записываются. +Независимо от того, как злоумышленник получил доступ к жесткому диску или выключенному компьютеру, криптографические подсистемы на основе GEOM, встроенные в FreeBSD, способны защитить данные в файловых системах компьютера даже от высокомотивированных злоумышленников с значительными ресурсами. В отличие от методов шифрования, которые шифруют отдельные файлы, встроенные утилиты `gbde` и `geli` могут использоваться для прозрачного шифрования целых файловых систем. Ни один открытый текст никогда не попадает на пластину жесткого диска. -=== Шифрование диска при помощи gbde +Эта глава демонстрирует, как создать зашифрованную файловую систему в FreeBSD. Сначала показан процесс с использованием `gbde`, а затем приведён тот же пример с использованием `geli`. -[.procedure] -==== +=== Шифрование диска с gbde -. Получите права пользователя `root` -+ -Настройка gbde требует права доступа администратора системы. -+ -[source,shell] -.... -% su - -Password: -.... -+ -. Включите поддержку man:gbde[4] в конфигурационный файл ядра -+ -Добавьте следующую строку в файл конфигурации вашего ядра: -+ -`options GEOM_BDE` -+ -Перестройте ядро FreeBSD. Этот процесс описан в crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]. -+ -Перезагрузитесь, запустив новое ядро. -. Альтернативой пересборке ядра является использование `kldload` для загрузки модуля man:gbde[4]: -+ -[source,shell] +Целью средства man:gbde[4] является создание серьёзного препятствия для злоумышленника, пытающегося получить доступ к содержимому _отключённого_ устройства хранения данных. Однако, если компьютер скомпрометирован во время работы и устройство хранения активно подключено, или злоумышленник имеет доступ к корректной парольной фразе, это средство не обеспечивает защиты содержимого устройства хранения. Таким образом, важно обеспечивать физическую безопасность системы во время её работы и защищать парольную фразу, используемую механизмом шифрования. + +Это средство обеспечивает несколько уровней защиты данных, хранящихся в каждом секторе диска. Оно шифрует содержимое сектора диска с использованием 128-битного AES в режиме CBC. Каждый сектор на диске шифруется с использованием уникального ключа AES. Для получения дополнительной информации о криптографической схеме, включая способ получения ключей секторов из предоставленной пользователем парольной фразы, обратитесь к man:gbde[4]. + +FreeBSD предоставляет модуль ядра для gbde, который можно загрузить следующей командой: + +[source, shell] .... # kldload geom_bde .... -==== -==== Подготовка зашифрованного жёсткого диска +Если используется пользовательский конфигурационный файл ядра, убедитесь, что он содержит следующую строку: -В следующем примере предполагается, что в вашу систему вы добавляете новый винчестер, на котором будет располагаться единственный раздел с зашифрованными данными. Этот раздел будет монтироваться в каталог [.filename]#/private#. gbde может также использоваться для шифрования [.filename]#/home# и [.filename]#/var/mail#, но это требует более сложной последовательности действий, что выходит за рамки этого вводного материала. +`options GEOM_BDE` -[.procedure] -==== +Следующий пример демонстрирует добавление нового жесткого диска в систему, который будет содержать единственный зашифрованный раздел, монтируемый в [.filename]#/private#. -. Подключите новый жёсткий диск -+ -Установите новый диск в систему, как это описано в <<disks-adding>>. В рамках этого примера раздел, соответствующий новому жёсткому диску, будет называться [.filename]#/dev/ad4s1c#. Устройства [.filename]#/dev/ad0s1*# представляют существующие стандартные разделы FreeBSD нашей тестовой системы. +[.procedure] +.Процедура: Шифрование раздела с помощью gbde +. Добавьте новый жесткий диск ++ +Установите новый диск в систему, как описано в crossref:disks[disks-adding,Добавление дисков]. Для целей данного примера новый раздел жёсткого диска добавлен как [.filename]#/dev/ad4s1c#, а [.filename]#/dev/ad0s1*# представляет существующие стандартные разделы FreeBSD. + -[source,shell] +[source, shell] .... # ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 .... + +. Создайте каталог для хранения файлов блокировок `gbde` + -. Создайте каталог для размещения файлов блокировок GBDE -+ -[source,shell] +[source, shell] .... # mkdir /etc/gbde .... -+ -Файл блокировки gbde содержит информацию, которая нужна gbde для доступа к зашифрованному разделу. Не имея доступа к файлу блокировки, gbde не сможет расшифровать данные, хранимые в зашифрованном разделе, без значительного ручного вмешательства, что программно не поддерживается. Каждый зашифрованный раздел использует отдельный файл блокировки. -. Инициализируйте раздел gbde -+ -Перед началом работы с разделом gbde его необходимо проинициализировать. Эта инициализация производится только один раз: + -[source,shell] -.... -# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock -.... -+ -man:gbde[8] запустит редактор, что позволит вам задать в шаблоне различные конфигурационные параметры. При работе с файловыми системами UFS1 и UFS2 задайте значение sector_size равным 2048: +Файл блокировки `gbde` содержит информацию, необходимую `gbde` для доступа к зашифрованным разделам. Без доступа к файлу блокировки `gbde` не сможет расшифровать данные, содержащиеся в зашифрованном разделе, без значительного ручного вмешательства, которое не поддерживается программным обеспечением. Каждый зашифрованный раздел использует отдельный файл блокировки. +. Инициализируйте раздел `gbde` + -[.programlisting] +Раздел gbde необходимо инициализировать перед использованием. Эта инициализация выполняется только один раз. Данная команда откроет редактор по умолчанию для настройки различных параметров конфигурации в шаблоне. Для использования с файловой системой UFS установите sector_size в значение 2048: ++ +[source, shell] .... -$FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $ +# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock # # Sector size is the smallest unit of data which can be read or written. # Making it too small decreases performance and decreases available space. # Making it too large may prevent filesystems from working. 512 is the # minimum and always safe. For UFS, use the fragment size # -sector_size = 2048 +sector_size = 2048 [...] .... -+ -man:gbde[8] дважды запросит ввод пароля, который будет использоваться для защиты данных. Пароль в обоих случаях должен вводиться одинаковый. Возможности gbde по защите ваших данных полностью зависят от качества выбранной вами ключевой фразы. -+ -По команде `gbde init` создаётся файл блокировок для вашего раздела gbde, который в нашем случае будет иметь имя [.filename]#/etc/gbde/ad4s1c.lock#. Для того, чтобы файлы блокировок корректно распознавались стартовым скриптом [.filename]#/etc/rc.d/gbde#, их имена должны заканчиваться на ".lock". ++ +После сохранения изменений пользователю будет предложено дважды ввести парольную фразу, используемую для защиты данных. Парольная фраза должна быть одинаковой в обоих случаях. Способность gbde защищать данные полностью зависит от качества парольной фразы. Советы по выбору безопасной парольной фразы, которую легко запомнить, можно найти по ссылке http://world.std.com/\~reinhold/diceware.html[http://world.std.com/~reinhold/diceware.htm]. ++ +Такая инициализация создает файл блокировки для раздела gbde. В данном примере он сохраняется как [.filename]#/etc/gbde/ad4s1c.lock#. Файлы блокировки должны иметь расширение ".lock", чтобы корректно определяться скриптом запуска [.filename]#/etc/rc.d/gbde#. + [CAUTION] -====== +==== +Файлы блокировок _обязательно_ должны быть включены в резервную копию вместе с содержимым зашифрованных разделов. Без файла блокировки законный владелец не сможет получить доступ к данным на зашифрованном разделе. +==== -Резервные копии файлов блокировок gbde _должны_ храниться вместе с содержимым шифруемых разделов. Хотя удаление только блокировочного файла не сможет противостоять дешифрации атакующим раздела gbde, без этого файла даже легитимный пользователь не сможет получить доступ к данным без определённых и значительных усилий, что не поддерживается man:gbde[8] и его разработчиком. -====== -+ -. Подключите зашифрованный раздел к системе +. Присоедините зашифрованный раздел к ядру + -[source,shell] +[source, shell] .... # gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock .... -+ -Будет выдан запрос на ввод ключевой фразы, которую вы выбирали во время инициализации зашифрованного раздела. Новое защищённое устройство будет видно в каталоге [.filename]#/dev# под названием [.filename]#/dev/device_name.bde#: + -[source,shell] +Эта команда запросит ввод парольной фразы, выбранной при инициализации зашифрованного раздела. Новое зашифрованное устройство появится в [.filename]#/dev# под именем [.filename]#/dev/имя_устройства.bde#: ++ +[source, shell] .... # ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde .... -+ + . Создайте файловую систему на зашифрованном устройстве -+ -Как только защищённое устройство будет подключено к системе, вы сможете создать на нём файловую систему. Для этого используется утилита man:newfs[8]. Так как инициализация новой файловой системы UFS2 происходит быстрее, чем инициализация файловой системы старого формата UFS1, то рекомендуется использовать man:newfs[8] с параметром `-O2`. + -[source,shell] +После подключения зашифрованного устройства к ядру на нем можно создать файловую систему. В этом примере создается файловая система UFS с включенными мягкими обновлениями. Убедитесь, что указан раздел с расширением [.filename]#*.bde#: ++ +[source, shell] .... -# newfs -U -O2 /dev/ad4s1c.bde +# newfs -U /dev/ad4s1c.bde .... -+ -[NOTE] -====== -Запуск команды man:newfs[8] должен выполняться над подключенном разделе gbde, который идентифицируется по расширению [.filename]#*.bde# в имени устройства. -====== -+ + . Смонтируйте зашифрованный раздел -+ -Создайте точку монтирования для зашифрованной файловой системы. + -[source,shell] -.... -# mkdir /private -.... -+ -Смонтируйте защищённую файловую систему. +Создайте точку монтирования и подключите зашифрованную файловую систему: + -[source,shell] +[source, shell] .... +# mkdir /private # mount /dev/ad4s1c.bde /private .... + +. Проверьте, что зашифрованная файловая система доступна + -. Проверьте доступность зашифрованной файловой системы -+ -Защищённая файловая система теперь должна быть доступна утилите man:df[1] и доступной для использования. +Зашифрованная файловая система теперь должна быть видна и доступна для использования: + -[source,shell] +[source, shell] .... % df -H Filesystem Size Used Avail Capacity Mounted on -/dev/ad0s1a 1037M 72M 883M 8% +/dev/ad0s1a 1037M 72M 883M 8% / /devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 8.1G 55K 7.5G 0% /home /dev/ad0s1e 1037M 1.1M 953M 0% /tmp /dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr /dev/ad4s1c.bde 150G 4.1K 138G 0% /private .... -==== - -==== Монтирование имеющихся зашифрованных файловых систем -После каждой загрузки для каждой защищённой файловой системы перед их использованием должны выполняться повторное подключение к системе, проверка на наличие ошибок и монтирование. Требуемые для этого команды должны выполняться пользователем `root`. - -[.procedure] -==== - -. Подключение gbde-раздела к системе -+ -[source,shell] -.... -# gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock -.... -+ -Будет выдан запрос на ввод ключевой фразы, выбранной на этапе инициализации зашифрованного раздела gbde. -. Проверка файловой системы на наличие ошибок -+ -Так как защищаемая файловая система не может пока быть указана в файле [.filename]#/etc/fstab# для автоматического монтирования, то она должны проверяться на наличие ошибок посредством ручного запуска man:fsck[8] до её монтирования. -+ -[source,shell] -.... -# fsck -p -t ffs /dev/ad4s1c.bde -.... -+ -. Монтирование зашифрованной файловой системы -+ -[source,shell] -.... -# mount /dev/ad4s1c.bde /private -.... -+ -Теперь защищённая файловая система доступна для работы. -==== - -===== Автоматическое монтирование зашифрованных разделов - -Для автоматического подключения, проверки и монтирования зашифрованного раздела можно создать скрипт, но по соображениям безопасности в этом скрипте пароля для man:gbde[8] быть не должно. Поэтому рекомендуется запускать такие скрипты вручную, а пароль задавать с консоли или сеанса man:ssh[1]. - -Кроме того, базовая система содержит скрипт [.filename]#rc.d# для автоматического монтирования шифрованных разделов. Его аргументы могут быть указаны в файле man:rc.conf[5]: +После каждой загрузки все зашифрованные файловые системы должны быть вручную повторно подключены к ядру, проверены на ошибки и смонтированы, прежде чем их можно будет использовать. Чтобы настроить эти шаги, добавьте следующие строки в [.filename]#/etc/rc.conf#: [.programlisting] .... @@ -2143,117 +1632,114 @@ gbde_devices="ad4s1c" gbde_lockdir="/etc/gbde" .... -При этом ключевая фраза для gbde должна быть введена на этапе загрузки. После введения ключевой фразы зашифрованный раздел будет смонтирован автоматически. Такой подход может быть очень удобным для использования gbde на ноутбуках. +Для этого необходимо ввести пароль на консоли во время загрузки. После ввода правильного пароля зашифрованный раздел будет автоматически подключен. Дополнительные параметры загрузки gbde доступны и перечислены в man:rc.conf[5]. -==== Криптографическая защита, применяемая в gbde - -man:gbde[8] шифрует содержимое секторов при помощи 128-битного AES в режиме CBC. Каждый сектор диска шифруется различным ключом AES. Более полная информацию о системе шифрования gbde, включая алгоритм генерации ключей для секторов из ключевой фразы, вводимой пользователем, можно найти на страницах справочной системы о man:gbde[4]. - -==== Вопросы совместимости - -man:sysinstall[8] несовместим с устройствами, зашифрованными gbde. Все устройства [.filename]#*.bde# перед запуском man:sysinstall[8] должны быть отключены от системы, или эта утилита аварийно завершит работу на этапе обнаружения устройств. Для отключения защищённого устройства, используемого в нашем примере, воспользуйтесь такой командой: +[NOTE] +==== +`sysinstall` несовместим с устройствами, зашифрованными `gbde`. Все устройства с именами `*.bde` должны быть отключены от ядра перед запуском `sysinstall`, иначе он завершится аварией во время начального сканирования устройств. Чтобы отключить зашифрованное устройство, использованное в примере, выполните следующую команду: -[source,shell] +[source, shell] .... # gbde detach /dev/ad4s1c .... +==== -=== Шифрование дисков при помощи `geli` - -Во FreeBSD имеется альтернативный криптографический класс GEOM - `geli`. В настоящий момент он поддерживается {pjd}. Утилита `geli` отличается от `gbde`; она предоставляет другой комплекс возможностей и использует иную схему криптования. - -Наиболее значимыми особенностями man:geli[8] являются: +[[disks-encrypting-geli]] +=== Шифрование диска с помощью `geli` -* Использование инфраструктуры man:crypto[9]: при наличии аппаратной криптографической поддержки, `geli` автоматически использует ее. -* Поддержка разнообразных криптоалгоритмов (в настоящее время AES, Blowfish и 3DES). -* Поддержка шифрованного корневого раздела. Для загрузки в такой ситуации потребуется ввести ключевую фразу. -* Поддержка двух независимых ключей шифрования (например, "основного ключа" и "ключа компании"). -* Высокая скорость работы `geli` за счет простого криптования сектор-сектор. -* Поддержка архивирования основных ключей. При необходимости текущие ключи могут быть уничтожены, а в дальнейшем доступ к данным восстановлен при помощи архивированных ключей. -* Поддержка криптования файловых систем случайным одноразовым ключом - например, для разделов подкачки или временных файловых систем. +Альтернативный криптографический класс GEOM доступен с использованием `geli`. Эта утилита управления предоставляет дополнительные возможности и использует другую схему для выполнения криптографических операций. Она обеспечивает следующие функции: -Другие возможности класса `geli` описаны в его странице справочника: man:geli[8]. +* Использует фреймворк man:crypto[9] и автоматически задействует криптографическое оборудование, когда оно доступно. +* Поддерживает несколько криптографических алгоритмов, таких как AES-XTS, AES-CBC и Camellia-CBCAES. +* Позволяет зашифровать корневой раздел. Пароль для доступа к зашифрованному корневому разделу будет запрашиваться при загрузке системы. +* Позволяет использование двух независимых ключей. +* Она быстрая, так как выполняет простое поблочное шифрование. +* Позволяет создавать резервные копии и восстанавливать мастер-ключи. Если пользователь уничтожит свои ключи, доступ к данным всё ещё можно получить, восстановив ключи из резервной копии. +* Позволяет подключить диск с одноразовым случайным ключом, что полезно для разделов подкачки и временных файловых систем. -Несколько следующих страниц будут посвящены описанию процесса конфигурации `geli` в ядре FreeBSD, а также объяснят, как создавать и использовать криптографический провайдер `geli`. +Дополнительные возможности и примеры использования приведены в man:geli[8]. -Поскольку в процессе настройки возникнет необходимость внесения изменений в конфигурацию ядра, потребуются также привилегии суперпользователя. +Следующий пример описывает, как сгенерировать ключевой файл, который будет использоваться как часть мастер-ключа для зашифрованного провайдера, монтируемого в [.filename]#/private#. Ключевой файл предоставит случайные данные, используемые для шифрования мастер-ключа. Мастер-ключ также будет защищён парольной фразой. Размер сектора провайдера составит 4 КБ. В примере описано, как подключиться к провайдеру `geli`, создать на нём файловую систему, смонтировать её, работать с ней и, наконец, отключить её. [.procedure] -==== - -. Добавление поддержки `geli` в ядро -+ -Добавьте в конфигурационный файл ядра следующие строки: +.Процедура: Шифрование раздела с помощью `geli` +. Загрузите поддержку `geli` ++ +Поддержка `geli` доступна в виде загружаемого модуля ядра. Чтобы настроить систему для автоматической загрузки модуля при загрузке, добавьте следующую строку в файл [.filename]#/boot/loader.conf#: + [.programlisting] .... -options GEOM_ELI -device crypto +geom_eli_load="YES" .... -+ -Перестройте ядро, как описано в разделе crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]. -+ -Помимо этого, поддержка `geli` может быть активирована модулем ядра на этапе загрузки. Для этого добавьте в файл [.filename]#/boot/loader.conf# строку: ++ +Чтобы загрузуть модуля ядра сейчас: ++ +[source, shell] +.... +# kldload geom_eli +.... ++ +Для собственного ядра убедитесь, что файл конфигурации ядра содержит следующие строки: + [.programlisting] .... -geom_eli_load="YES" +options GEOM_ELI +device crypto .... -+ -Теперь ядро должно поддерживать man:geli[8]. -. Генерация главного ключа -+ -Предлагаемый пример описывает процесс генерации ключевого файла, который послужит частью главного ключа для шифрованного провайдера, монтируемого в каталог [.filename]#/private#. При помощи содержимого ключевого файла создается набор случайных данных, которым зашифровывается главный ключ. Кроме того, он будет защищен кодовой фразой. Размер сектора провайдера будет составлять 4kB. Наконец, мы обсудим, как присоединиться к провайдеру `geli`, создать на базе его файловую систему, как ее смонтировать и работать с ней, и, в заключение, как корректно завершить работу. -+ -Больший чем обычно размер сектора (как в нашем примере, 4 кБ) рекомендуется для увеличения производительности. -+ -Главный ключ будет защищен кодовой фразой; данные для ключевого файла берутся из [.filename]#/dev/random#. Размер сектора создаваемого нами шифрованного провайдера [.filename]#/dev/da2.eli# - 4кБ. + +. Сгенеририруйте мастер-ключа ++ +Следующие команды создают мастер-ключ, которым будут зашифрованы все данные. Этот ключ нельзя изменить. Вместо его прямого использования, он шифруется одним или несколькими пользовательскими ключами. Пользовательские ключи формируются из опциональной комбинации случайных байтов из файла [.filename]#/root/da2.key# и/или парольной фразы. В данном случае источником данных для ключевого файла является [.filename]#/dev/random#. Эта команда также устанавливает размер сектора провайдера ([.filename]#/dev/da2.eli#) равным 4 КБ для улучшения производительности: + -[source,shell] +[source, shell] .... # dd if=/dev/random of=/root/da2.key bs=64 count=1 -# geli init -s 4096 -K /root/da2.key /dev/da2 +# geli init -K /root/da2.key -s 4096 /dev/da2 Enter new passphrase: Reenter new passphrase: .... -+ -Использование одновременно кодовой фразы и ключевого файла не обязательно: любой из этих методов защиты главного ключа может применяться независимо. -+ -Если в качестве имени ключевого файла указан "-", используется стандартный ввод. Это позволяет использовать более одного ключевого файла: + -[source,shell] +Не обязательно использовать и парольную фразу, и файл ключа, так как каждый из этих методов защиты главного ключа может применяться отдельно. ++ +Если файл ключа указан как "-", будет использован стандартный ввод. Например, следующая команда генерирует три файла ключей: ++ +[source, shell] .... # cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2 .... + +. Присоедините поставщика с сгенерированным Ключом + -. Свяжите сгенерированный ключ с провайдером +Для подключения провайдера укажите файл ключа, имя диска и парольную фразу: + -[source,shell] +[source, shell] .... # geli attach -k /root/da2.key /dev/da2 Enter passphrase: .... -+ -Созданный при этом файл дискового устройства будет называться [.filename]#/dev/da2.eli#. + -[source,shell] +Это создает новое устройство с расширением [.filename]#.eli#: ++ +[source, shell] .... # ls /dev/da2* /dev/da2 /dev/da2.eli .... -+ + . Создайте новую файловую систему + -[source,shell] +Далее отформатируйте устройство с файловой системой UFS и смонтируйте его в существующей точке монтирования: ++ +[source, shell] .... # dd if=/dev/random of=/dev/da2.eli bs=1m # newfs /dev/da2.eli # mount /dev/da2.eli /private .... -+ -Зашифрованная файловая система будет видна в выводе утилиты man:df[1] и готова к использованию: + -[source,shell] +Зашифрованная файловая система теперь должна быть доступна для использования: ++ +[source, shell] .... # df -H Filesystem Size Used Avail Capacity Mounted on @@ -2264,108 +1750,407 @@ Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1e 3.9G 1.3G 2.3G 35% /var /dev/da2.eli 150G 4.1K 138G 0% /private .... -+ -. Размонтирование и деактивация провайдера -+ -После завершения работы с шифрованным разделом, когда содержимое каталога [.filename]#/private# больше не нужно, будет разумным отключить раздел от системы. -+ -[source,shell] + +После завершения работы с зашифрованным разделом и когда раздел [.filename]#/private# больше не нужен, рекомендуется перевести устройство в холодное хранилище, размонтировав и отключив зашифрованный раздел `geli` от ядра: + +[source, shell] .... # umount /private # geli detach da2.eli .... -==== -Дополнительную информацию о man:geli[8] можно найти на соответствующей странице справочника. +Для упрощения монтирования зашифрованных устройств `geli` во время загрузки предоставляется скрипт [.filename]#rc.d#. Для данного примера добавьте следующие строки в [.filename]#/etc/rc.conf#: + +[.programlisting] +.... +geli_devices="da2" +geli_da2_flags="-k /root/da2.key" +.... + +В этом примере [.filename]#/dev/da2# настраивается как провайдер `geli` с мастер-ключом [.filename]#/root/da2.key#. Система автоматически отключит провайдер от ядра перед завершением работы. Во время загрузки скрипт запросит парольную фразу перед подключением провайдера. До или после запроса пароля могут отображаться другие сообщения ядра. Если процесс загрузки кажется зависшим, внимательно поищите запрос пароля среди других сообщений. После ввода правильной парольной фразы провайдер будет подключен. Файловая система затем монтируется, обычно с помощью записи в [.filename]#/etc/fstab#. Инструкции по настройке автоматического монтирования файловой системы при загрузке можно найти в crossref:basics[mount-unmount,“Монтирование и размонтирование файловых систем”]. + +[[swap-encrypting]] +== Шифрование раздела подкачки + +Как и шифрование разделов диска, шифрование раздела подкачки используется для защиты конфиденциальной информации. Рассмотрим приложение, работающее с паролями. Пока пароли находятся в физической памяти, они не записываются на диск и будут удалены после перезагрузки. Однако если FreeBSD начнёт выгружать страницы памяти для освобождения места, пароли могут быть записаны на диск в незашифрованном виде. Решением в этом случае может быть шифрование раздела подкачки. + +В этой части показано, как настроить зашифрованный раздел подкачки с использованием шифрования man:gbde[8] или man:geli[8]. Предполагается, что раздел подкачки — это [.filename]#/dev/ada0s1b#. + +=== Настройка зашифрованного раздела подкачки + +Разделы подкачки по умолчанию не шифруются, и перед продолжением работы следует удалить из них все конфиденциальные данные. Чтобы перезаписать текущий раздел подкачки случайными данными, выполните следующую команду: -==== Использование стартового скрипта [.filename]#rc.d# [.filename]#geli# +[source, shell] +.... +# dd if=/dev/random of=/dev/ada0s1b bs=1m +.... -Для удобства использования подсистемы `geli` в комплект базовой системы FreeBSD входит стартовый скрипт, работой которого можно управлять из man:rc.conf[5]: +Для шифрования раздела подкачки с помощью man:gbde[8] добавьте суффикс `.bde` к строке подкачки в [.filename]#/etc/fstab#: [.programlisting] .... -geli_devices="da2" -geli_da2_flags="-p -k /root/da2.key" +# Device Mountpoint FStype Options Dump Pass# +/dev/ada0s1b.bde none swap sw 0 0 .... -При этом дисковый раздел [.filename]#/dev/da2# будет сконфигурирован как провайдер `geli`, связан с ключевым файлом [.filename]#/root/da2.key#, а кодовая фраза не будет использоваться (отметим, что это возможно только в том случае, если при инициализации `geli init` был указан ключ `-P`). Шифрованный провайдер `geli` будет отсоединен перед выключением системы. +Для шифрования раздела подкачки с помощью man:geli[8] используйте суффикс `.eli`: -Дополнительную информацию о конфигурации скриптов [.filename]#rc.d# можно найти в соответствующей crossref:config[configtuning-rcd,главе] Руководства. +[.programlisting] +.... +# Device Mountpoint FStype Options Dump Pass# +/dev/ada0s1b.eli none swap sw 0 0 +.... -[[swap-encrypting]] -== Шифрование области подкачки +По умолчанию man:geli[8] использует алгоритм AES с длиной ключа 128 бит. Обычно стандартных настроек достаточно. При необходимости эти значения по умолчанию можно изменить в поле options файла [.filename]#/etc/fstab#. Доступные флаги: + +aalgo:: +Алгоритм проверки целостности данных, используемый для обеспечения отсутствия изменений в зашифрованных данных. Список поддерживаемых алгоритмов приведен в man:geli[8]. + +ealgo:: +Алгоритм шифрования, используемый для защиты данных. Список поддерживаемых алгоритмов приведён в man:geli[8]. + +keylen:: +Длина ключа, используемого для алгоритма шифрования. Подробнее о поддерживаемых длинах ключей для каждого алгоритма шифрования смотрите в man:geli[8]. + +sectorsize:: +Размер блоков, на которые разбиваются данные перед шифрованием. Увеличение размера секторов повышает производительность за счет большего расхода пространства. Рекомендуемый размер — 4096 байт. -Шифрование области подкачки в FreeBSD достаточно легко конфигурируется. Варианты конфигурации слегка различаются в зависимости от версии системы. Для шифрования разделов подкачки можно использовать утилиты man:gbde[8] или man:geli[8];. В обоих случаях используется скрипт crossref:config[configtuning-rcd,rc.d] [.filename]#encswap#. +В этом примере настраивается зашифрованный раздел подкачки с использованием алгоритма AES-XTS с длиной ключа 128 бит и размером сектора 4 килобайта: -Предыдущий раздел, <<disks-encrypting,Шифрование дисковых разделов>>, кратко описывает различные методы криптования. +[.programlisting] +.... +# Device Mountpoint FStype Options Dump Pass# +/dev/ada0s1b.eli none swap sw,ealgo=AES-XTS,keylen=128,sectorsize=4096 0 0 +.... + +=== Проверка зашифрованного раздела подкачки + +После перезагрузки системы корректную работу зашифрованного раздела подкачки можно проверить с помощью `swapinfo`. + +Если используется man:gbde[8]: + +[source, shell] +.... +% swapinfo +Device 1K-blocks Used Avail Capacity +/dev/ada0s1b.bde 542720 0 542720 0 +.... + +Если используется man:geli[8]: + +[source, shell] +.... +% swapinfo +Device 1K-blocks Used Avail Capacity +/dev/ada0s1b.eli 542720 0 542720 0 +.... + +[[disks-hast]] +== Высокодоступное хранилище (HAST) + +Высокая доступность — одно из основных требований для серьёзных бизнес-приложений, а высокодоступное хранилище является ключевым компонентом в таких средах. В FreeBSD framework Highly Available STorage (HAST) обеспечивает прозрачное хранение одних и тех же данных на нескольких физически разделённых машинах, соединённых через сеть TCP/IP. HAST можно рассматривать как сетевой RAID1 (зеркало), аналогичный системе хранения DRBD(R), используемой на платформе GNU/Linux(R). В сочетании с другими функциями высокой доступности FreeBSD, такими как CARP, HAST позволяет создавать высокодоступные кластеры хранения, устойчивые к аппаратным сбоям. + +Основные возможности HAST: + +* Может использоваться для маскировки ошибок ввода-вывода на локальных жестких дисках. +* Файлово-системно агностичен, так как работает с любой файловой системой, поддерживаемой FreeBSD. +* Эффективная и быстрая повторная синхронизация, так как синхронизируются только блоки, изменённые во время простоя узла. +* Может использоваться в уже развернутой среде для добавления дополнительной избыточности. +* Вместе с CARP, Heartbeat или другими инструментами он может использоваться для создания надежной и отказоустойчивой системы хранения данных. + +Прочитав этот раздел, вы узнаете: + +* Что такое HAST, как он работает и какие возможности предоставляет. +* Как настроить и использовать HAST в FreeBSD. +* Как интегрировать CARP и man:devd[8] для создания надежной системы хранения данных. -=== Зачем шифровать область подкачки? +Прежде чем читать этот раздел, вы должны: -Как и в случае дисковых разделов, шифрование области подкачки применяется для защиты важной информации. Возьмем, к примеру, приложение, которому требуется работать с паролями. До тех пор, пока пароли хранятся в физической памяти, все в порядке. Если же операционная система начинает выгружать отдельные участки памяти в область подкачки, чтобы освободить память для других приложений, пароли могут быть записаны на диск в открытом виде и тем самым оказаться легко доступными злоумышленнику (имеющему физический доступ к диску - прим. пер.). В таких ситуациях решением может стать шифрование раздела подкачки. +* Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics,Основы FreeBSD]). +* Знать, как настраивать сетевые интерфейсы и другие основные подсистемы FreeBSD (crossref:config[config-tuning,Настройка и оптимизация]). +* Хорошо разбираться в сетевых возможностях FreeBSD (crossref:partiv[network-communication,"Сетевое взаимодействие"]). -=== Подготовка +Проект HAST был поддержан The FreeBSD Foundation при участии http://www.omc.net/[http://www.omc.net/] и http://www.transip.nl/[http://www.transip.nl/]. + +=== Работа HAST + +HAST обеспечивает синхронную репликацию на блочном уровне между двумя физическими машинами: _primary_ (основной) узел и _secondary_ (вторичный) узел. Вместе эти две машины называются кластером. + +Поскольку HAST работает в конфигурации "основной-вторичный", он позволяет только одному узлу кластера быть активным в любой момент времени. Основной узел, также называемый _активным_, обрабатывает все запросы ввода-вывода для устройств, управляемых HAST. Вторичный узел автоматически синхронизируется с основным. + +Физические компоненты системы HAST включают локальный диск на основном узле и диск на удаленном, резервном узле. + +HAST работает синхронно на блочном уровне, что делает его прозрачным для файловых систем и приложений. HAST предоставляет обычные GEOM-провайдеры в [.filename]#/dev/hast/# для использования другими инструментами или приложениями. Нет разницы между использованием устройств, предоставляемых HAST, и использованием обычных дисков или разделов. + +Каждая операция записи, удаления или сброса данных отправляется как на локальный диск, так и на удалённый диск через TCP/IP. Каждая операция чтения выполняется с локального диска, если только локальный диск не содержит актуальных данных или не возникает ошибка ввода-вывода. В таких случаях операция чтения отправляется на вторичный узел. + +HAST стремится обеспечить быстрое восстановление после сбоев. По этой причине важно сократить время синхронизации после отказа узла. Для быстрой синхронизации HAST использует битовую карту грязных экстентов на диске и синхронизирует только их в процессе обычной синхронизации, за исключением начальной синхронизации. + +Существует множество способов обработки синхронизации. HAST реализует несколько режимов репликации для работы с различными методами синхронизации: + +* _memsync_: В этом режиме операция записи считается завершённой, когда локальная операция записи завершена и когда удалённый узел подтверждает получение данных, но до фактического сохранения данных. Данные на удалённом узле будут сохранены сразу после отправки подтверждения. Этот режим предназначен для уменьшения задержки, но при этом обеспечивает хорошую надёжность. Этот режим используется по умолчанию. +* _fullsync_: В этом режиме операция записи считается завершённой, когда завершается как локальная, так и удалённая запись. Это самый безопасный и самый медленный режим репликации. +* _async_: В этом режиме операция записи считается завершенной, как только завершается локальная запись. Это самый быстрый и самый опасный режим репликации. Он должен использоваться только при репликации на удаленный узел, где задержка слишком высока для других режимов. + +=== Конфигурация HAST + +Фреймворк HAST состоит из нескольких компонентов: + +* Демон man:hastd[8], который обеспечивает синхронизацию данных. При запуске этого демона он автоматически загружает модуль `geom_gate.ko`. +* Служебная программа управления пользовательским пространством man:hastctl[8]. +* Файл конфигурации man:hast.conf[5]. Этот файл должен существовать до запуска hastd. + +Пользователи, которые предпочитают статически встраивать поддержку `GEOM_GATE` в ядро, должны добавить следующую строку в файл конфигурации собственного ядра, а затем пересобрать ядро, следуя инструкциям в crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]: + +[.programlisting] +.... +options GEOM_GATE +.... + +Следующий пример описывает настройку двух узлов в режиме первичный-вторичный с использованием HAST для репликации данных между ними. Узлы будут называться `hasta` с IP-адресом `172.16.0.1` и `hastb` с IP-адресом `172.16.0.2`. Оба узла будут иметь выделенный жесткий диск [.filename]#/dev/ad6# одинакового размера для работы с HAST. Пул HAST, иногда называемый ресурсом или провайдером GEOM в [.filename]#/dev/hast/#, будет называться `test`. + +Настройка HAST выполняется с помощью файла [.filename]#/etc/hast.conf#. Этот файл должен быть идентичным на обоих узлах. Простейшая конфигурация выглядит следующим образом: + +[.programlisting] +.... +resource test { + on hasta { + local /dev/ad6 + remote 172.16.0.2 + } + on hastb { + local /dev/ad6 + remote 172.16.0.1 + } +} +.... + +Для более сложной настройки обратитесь к man:hast.conf[5]. + +[TIP] +==== +Также можно использовать имена хостов в операторах `remote`, если хосты разрешаемы и определены либо в [.filename]#/etc/hosts#, либо в локальном DNS. +==== + +После создания конфигурации на обоих узлах можно создать пул HAST. Выполните следующие команды на обоих узлах, чтобы разместить начальные метаданные на локальном диске и запустить man:hastd[8]: + +[source, shell] +.... +# hastctl create test +# service hastd onestart +.... [NOTE] ==== -В данном разделе мы будем считать, что разделом подкачки является [.filename]#ad0s1b#. +Невозможно использовать провайдеры GEOM с существующей файловой системой или преобразовать существующее хранилище в пул под управлением HAST. Эта процедура требует хранения некоторых метаданных на провайдере, и на существующем провайдере не будет достаточно необходимого пространства. ==== -До настоящего момента раздел подкачки не был зашифрован. Таким образом, на нем могут содержаться пароли или какая-либо иная важная информация в открытом виде. Чтобы избавиться от этого, заполним раздел подкачки случайными данными: +Роль `primary` или `secondary` узла HAST выбирается администратором или программным обеспечением, таким как Heartbeat, с помощью man:hastctl[8]. На основном узле `hasta` выполните следующую команду: -[source,shell] +[source, shell] .... -# dd if=/dev/random of=/dev/ad0s1b bs=1m +# hastctl role primary test .... -=== Шифрование раздела подкачки при помощи man:gbde[8] +Выполните эту команду на дополнительном узле, `hastb`: + +[source, shell] +.... +# hastctl role secondary test +.... -В строку файла [.filename]#/etc/fstab#, описывающую раздел подкачки, необходимо добавить суффикс `.bde`: +Проверьте результат, выполнив `hastctl` на каждом узле: -[.programlisting] +[source, shell] .... -# Device Mountpoint FStype Options Dump Pass# -/dev/ad0s1b.bde none swap sw 0 0 +# hastctl status test .... -=== Шифрование раздела подкачки при помощи man:geli[8] +Проверьте строку `status` в выводе. Если там указано `degraded`, значит, с файлом конфигурации что-то не так. На каждом узле должно быть указано `complete`, что означает начало синхронизации между узлами. Синхронизация завершается, когда `hastctl status` сообщает о 0 байтах в `dirty` экстентах. + +Следующий шаг — создать файловую систему на провайдере GEOM и смонтировать её. Это должно быть выполнено на узле `primary`. Создание файловой системы может занять несколько минут в зависимости от размера жёсткого диска. В этом примере создаётся файловая система UFS на [.filename]#/dev/hast/test#: + +[source, shell] +.... +# newfs -U /dev/hast/test +# mkdir /hast/test +# mount /dev/hast/test /hast/test +.... -Процедура при использовании man:geli[8] для шифрования раздела подкачки сходна с использованием man:gbde[8]. В строку файла [.filename]#/etc/fstab#, описывающую раздел подкачки, нужно добавить суффикс `.eli`: +После правильной настройки структуры HAST последним шагом является обеспечение автоматического запуска HAST во время загрузки системы. Добавьте следующую строку в [.filename]#/etc/rc.conf#: [.programlisting] .... -# Device Mountpoint FStype Options Dump Pass# -/dev/ad0s1b.eli none swap sw 0 0 +hastd_enable="YES" .... -По умолчанию, man:geli[8] использует алгоритм криптования AES с длиной ключа 256 бит. +==== Конфигурация отказоустойчивости -При необходимости эти параметры могут быть изменены в опции `geli_swap_flags` файла конфигурации [.filename]#/etc/rc.conf#. Приведенная ниже строка указывает, что скрипт rc.d [.filename]#encswap# должен использовать для криптования алгоритм Blowfish с ключом длиной 128 бит, размером сектора 4 килобайта и включенной опцией "отсоединиться при последнем закрытии": +Цель данного примера — создать надежную систему хранения, устойчивую к отказу любого узла. Если основной узел выходит из строя, резервный узел готов взять на себя управление без перерывов, проверить и смонтировать файловую систему, продолжив работу без потери данных. + +Для выполнения этой задачи используется Протокол избыточности общих адресов (CARP — Common Address Redundancy Protocol), который обеспечивает автоматическое переключение на резервный узел на IP-уровне. CARP позволяет нескольким узлам в одном сетевом сегменте совместно использовать один IP-адрес. Настройте CARP на обоих узлах кластера в соответствии с документацией, доступной в crossref:advanced-networking[carp,“Common Address Redundancy Protocol (CARP)”]. В этом примере каждый узел будет иметь свой собственный управляющий IP-адрес и общий IP-адрес _172.16.0.254_. Основной узел HAST в кластере должен быть основным узлом CARP. + +Созданный в предыдущем разделе пул HAST теперь готов к экспорту на другие узлы в сети. Это можно осуществить, экспортировав его через NFS или Samba, используя общий IP-адрес _172.16.0.254_. Единственная оставшаяся нерешенной проблема — это автоматический переход на резервный узел в случае отказа основного. + +В случае перехода интерфейсов CARP в состояние "включен" или "выключен", операционная система FreeBSD генерирует событие man:devd[8], что позволяет отслеживать изменения состояния интерфейсов CARP. Изменение состояния интерфейса CARP указывает на то, что один из узлов вышел из строя или вернулся в онлайн. Эти события изменения состояния позволяют запускать скрипт для автоматической обработки переключения при отказе в HAST. + +Для отслеживания изменений состояния на интерфейсах CARP добавьте следующую конфигурацию в [.filename]#/etc/devd.conf# на каждом узле, заменив `<vhid>` на идентификатор виртуального хоста и `<ifname>` на имя соответствующего интерфейса: [.programlisting] .... -geli_swap_flags="-e blowfish -l 128 -s 4096 -d" +notify 30 { + match "system" "CARP"; + match "subsystem" "<vhid>@<ifname>"; + match "type" "MASTER"; + action "/usr/local/sbin/carp-hast-switch primary"; +}; + +notify 30 { + match "system" "CARP"; + match "subsystem" "<vhid>@<ifname>"; + match "type" "BACKUP"; + action "/usr/local/sbin/carp-hast-switch secondary"; +}; .... -За списком возможных опций обращайтесь к описанию команды `onetime` в странице справочника man:geli[8]. +Перезапустите man:devd[8] на обоих узлах, чтобы новая конфигурация вступила в силу: -=== Окончательная проверка +[source, shell] +.... +# service devd restart +.... -После перезагрузки системы правильность работы шифрованного раздела подкачки может быть проверена при помощи команды `swapinfo`. +Когда состояние указанного интерфейса изменяется (переход вверх или вниз), система генерирует уведомление, позволяющее подсистеме man:devd[8] запустить указанный скрипт автоматического переключения [.filename]#/usr/local/sbin/carp-hast-switch#. Для дополнительных пояснений о данной конфигурации обратитесь к man:devd.conf[5]. -В случае использования man:gbde[8]: +Вот пример скрипта автоматического переключения при отказе: -[source,shell] -.... -% swapinfo -Device 1K-blocks Used Avail Capacity -/dev/ad0s1b.bde 542720 0 542720 0% +[.programlisting] .... +#!/bin/sh + +# Original script by Freddie Cash <fjwcash@gmail.com> +# Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org> +# and Viktor Petersson <vpetersson@wireload.net> + +# The names of the HAST resources, as listed in /etc/hast.conf +resources="test" + +# delay in mounting HAST resource after becoming primary +# make your best guess +delay=3 + +# logging +log="local0.debug" +name="carp-hast" + +# end of user configurable stuff + +case "$1" in + primary) + logger -p $log -t $name "Switching to primary provider for ${resources}." + sleep ${delay} + + # Wait for any "hastd secondary" processes to stop + for disk in ${resources}; do + while $( pgrep -lf "hastd: ${disk} \(secondary\)" > /dev/null 2>&1 ); do + sleep 1 + done + + # Switch role for each disk + hastctl role primary ${disk} + if [ $? -ne 0 ]; then + logger -p $log -t $name "Unable to change role to primary for resource ${disk}." + exit 1 + fi + done + + # Wait for the /dev/hast/* devices to appear + for disk in ${resources}; do + for I in $( jot 60 ); do + [ -c "/dev/hast/${disk}" ] && break + sleep 0.5 + done + + if [ ! -c "/dev/hast/${disk}" ]; then + logger -p $log -t $name "GEOM provider /dev/hast/${disk} did not appear." + exit 1 + fi + done + + logger -p $log -t $name "Role for HAST resources ${resources} switched to primary." + + logger -p $log -t $name "Mounting disks." + for disk in ${resources}; do + mkdir -p /hast/${disk} + fsck -p -y -t ufs /dev/hast/${disk} + mount /dev/hast/${disk} /hast/${disk} + done + + ;; + + secondary) + logger -p $log -t $name "Switching to secondary provider for ${resources}." + + # Switch roles for the HAST resources + for disk in ${resources}; do + if ! mount | grep -q "^/dev/hast/${disk} on " + then + else + umount -f /hast/${disk} + fi + sleep $delay + hastctl role secondary ${disk} 2>&1 + if [ $? -ne 0 ]; then + logger -p $log -t $name "Unable to switch role to secondary for resource ${disk}." + exit 1 + fi + logger -p $log -t $name "Role switched to secondary for resource ${disk}." + done + ;; +esac +.... + +В двух словах, скрипт выполняет следующие действия, когда узел становится основным: + +* Переводит пул HAST в primary на другом узле. +* Проверяет файловую систему в пуле HAST. +* Подключает пул. + +Когда узел становится вторичным: + +* Размонтирует пул HAST. +* Переводит пул HAST в состояние secondary. + +[CAUTION] +==== +Это просто пример скрипта, который служит доказательством концепции. Он не обрабатывает все возможные сценарии и может быть расширен или изменён любым способом, например, для запуска или остановки необходимых служб. +==== + +[TIP] +==== +Для этого примера использовалась стандартная файловая система UFS. Чтобы сократить время, необходимое для восстановления, можно использовать журналируемую UFS или файловую систему ZFS. +==== + +Вместо использования высокодоступного хранилища локально, его также можно предоставить в общее пользование другим компьютерам в сети через crossref:network-servers[network-nfs,NFS], crossref:network-servers[network-iscsi,iSCSI], man:sshfs[1] или программы из портов (например, package:net/samba419[]). + +Более подробная информация с дополнительными примерами доступна по адресу http://wiki.FreeBSD.org/HAST[http://wiki.FreeBSD.org/HAST]. + +=== Устранение неполадок + +HAST, как правило, должен работать без проблем. Однако, как и с любым другим программным продуктом, могут возникнуть ситуации, когда он работает не так, как предполагается. Источники проблем могут быть разными, но главное правило — обеспечить синхронизацию времени между узлами кластера. -При использовании man:geli[8]: +При устранении неполадок HAST уровень отладки man:hastd[8] следует повысить, запустив `hastd` с параметром `-d`. Этот аргумент можно указать несколько раз для дальнейшего повышения уровня отладки. Также рекомендуется использовать `-F`, что запускает `hastd` в foreground. -[source,shell] +[[disks-hast-sb]] +==== Восстановление после раскола кластера + +_Раскол_ (split-brain) возникает, когда узлы кластера не могут связаться друг с другом, и оба настроены как первичные. Это опасная ситуация, так как она позволяет обоим узлам вносить противоречивые изменения в данные. Данная проблема должна быть устранена вручную системным администратором. + +Администратор должен либо определить, на каком узле находятся более важные изменения, либо выполнить слияние вручную. Затем следует позволить HAST выполнить полную синхронизацию узла с повреждёнными данными. Для этого выполните следующие команды на узле, который требует повторной синхронизации: + +[source, shell] .... -% swapinfo -Device 1K-blocks Used Avail Capacity -/dev/ad0s1b.eli 542720 0 542720 0% +# hastctl role init test +# hastctl create test +# hastctl role secondary test .... diff --git a/documentation/content/ru/books/handbook/disks/_index.po b/documentation/content/ru/books/handbook/disks/_index.po new file mode 100644 index 0000000000..b7581714b6 --- /dev/null +++ b/documentation/content/ru/books/handbook/disks/_index.po @@ -0,0 +1,6457 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-06-14 11:10+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookdisks_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/disks/_index.adoc:1 +#, no-wrap +msgid "This chapter covers the use of disks and storage media in FreeBSD. This includes SCSI and IDE disks, CD and DVD media, memory-backed disks, and USB storage devices." +msgstr "Эта глава посвящена использованию дисков и носителей данных в FreeBSD. Здесь рассматриваются SCSI- и IDE-диски, CD- и DVD-носители, диски в оперативной памяти и USB-устройства хранения данных." + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/disks/_index.adoc:1 +#, no-wrap +msgid "Part III. System Administration" +msgstr "Часть III. Администрирование системы" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/disks/_index.adoc:1 +#, no-wrap +msgid "Chapter 20. Storage" +msgstr "Глава 20. Устройства хранения" + +#. type: Title = +#: documentation/content/en/books/handbook/disks/_index.adoc:15 +#, no-wrap +msgid "Storage" +msgstr "Устройства хранения" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:57 +msgid "" +"This chapter covers the use of disks and storage media in FreeBSD. This " +"includes SCSI and IDE disks, CD and DVD media, memory-backed disks, and USB " +"storage devices." +msgstr "" +"Эта глава посвящена использованию дисков и носителей данных в FreeBSD. Сюда " +"входят SCSI- и IDE-диски, CD- и DVD-носители, диски в памяти и USB-" +"устройства хранения данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:59 +msgid "After reading this chapter, you will know:" +msgstr "Прочитав эту главу, вы будете знать:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:61 +msgid "How to add additional hard disks to a FreeBSD system." +msgstr "Как добавить дополнительные жесткие диски в систему FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:62 +msgid "How to grow the size of a disk's partition on FreeBSD." +msgstr "Как увеличить размер раздела диска в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:63 +msgid "How to configure FreeBSD to use USB storage devices." +msgstr "Как настроить FreeBSD для использования USB-накопителей." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:64 +msgid "How to use CD and DVD media on a FreeBSD system." +msgstr "Как использовать CD и DVD носители в системе FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:65 +msgid "How to use the backup programs available under FreeBSD." +msgstr "" +"Как использовать программы резервного копирования, доступные в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:66 +msgid "How to set up memory disks." +msgstr "Как настроить диски в памяти." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:67 +msgid "What file system snapshots are and how to use them efficiently." +msgstr "Что такое снимки файловой системы и как их эффективно использовать." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:68 +msgid "How to use quotas to limit disk space usage." +msgstr "" +"Как использовать квоты для ограничения использования дискового пространства." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:69 +msgid "How to encrypt disks and swap to secure them against attackers." +msgstr "Как зашифровать диски и раздел подкачки для защиты от злоумышленников." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:70 +msgid "How to configure a highly available storage network." +msgstr "Как настроить сеть хранения данных с высокой доступностью." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:72 +msgid "Before reading this chapter, you should:" +msgstr "Прежде чем читать эту главу, вы должны:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:74 +msgid "" +"Know how to crossref:kernelconfig[kernelconfig,configure and install a new " +"FreeBSD kernel]." +msgstr "" +"Знать, как crossref:kernelconfig[kernelconfig,конфигурировать и " +"установливать новое ядро FreeBSD]." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:76 +#, no-wrap +msgid "Adding Disks" +msgstr "Добавление дисков" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:81 +msgid "" +"This section describes how to add a new SATA disk to a machine that " +"currently only has a single drive. First, turn off the computer and install " +"the drive in the computer following the instructions of the computer, " +"controller, and drive manufacturers. Reboot the system and become `root`." +msgstr "" +"В этом разделе описывается, как добавить новый диск SATA к компьютеру, в " +"котором в настоящее время установлен только один накопитель. Сначала " +"выключите компьютер и установите диск, следуя инструкциям производителей " +"компьютера, контроллера и диска. Перезагрузите систему и войдите в систему " +"как `root`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:84 +msgid "" +"Inspect [.filename]#/var/run/dmesg.boot# to ensure the new disk was found. " +"In this example, the newly added SATA drive will appear as [.filename]#ada1#." +msgstr "" +"Проверьте [.filename]#/var/run/dmesg.boot#, чтобы убедиться, что новый диск " +"обнаружен. В этом примере новый SATA-диск будет отображаться как " +"[.filename]#ada1#." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:87 +msgid "" +"For this example, a single large partition will be created on the new disk. " +"The https://en.wikipedia.org/wiki/GUID_Partition_Table[GPT] partitioning " +"scheme will be used in preference to the older and less versatile MBR scheme." +msgstr "" +"Для этого примера на новом диске будет создан один большой раздел. Схема " +"разделов https://en.wikipedia.org/wiki/GUID_Partition_Table[GPT] будет " +"использована вместо более старой и менее универсальной схемы MBR." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:92 +msgid "" +"If the disk to be added is not blank, old partition information can be " +"removed with `gpart delete`. See man:gpart[8] for details." +msgstr "" +"Если добавляемый диск не пуст, старую информацию о разделах можно удалить с " +"помощью `gpart delete`. Подробности см. в man:gpart[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:96 +msgid "" +"The partition scheme is created, and then a single partition is added. To " +"improve performance on newer disks with larger hardware block sizes, the " +"partition is aligned to one megabyte boundaries:" +msgstr "" +"Создается схема разделов, а затем добавляется единственный раздел. Для " +"повышения производительности на новых дисках с большими размерами аппаратных " +"блоков раздел выравнивается по границам одного мегабайта:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:101 +#, no-wrap +msgid "" +"# gpart create -s GPT ada1\n" +"# gpart add -t freebsd-ufs -a 1M ada1\n" +msgstr "" +"# gpart create -s GPT ada1\n" +"# gpart add -t freebsd-ufs -a 1M ada1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:105 +msgid "" +"Depending on use, several smaller partitions may be desired. See " +"man:gpart[8] for options to create partitions smaller than a whole disk." +msgstr "" +"В зависимости от использования может потребоваться несколько небольших " +"разделов. См. man:gpart[8] для вариантов создания разделов меньше целого " +"диска." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:107 +msgid "The disk partition information can be viewed with `gpart show`:" +msgstr "Информацию о разделах диска можно просмотреть с помощью `gpart show`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:115 +#, no-wrap +msgid "" +"% gpart show ada1\n" +"=> 34 1465146988 ada1 GPT (699G)\n" +" 34 2014 - free - (1.0M)\n" +" 2048 1465143296 1 freebsd-ufs (699G)\n" +" 1465145344 1678 - free - (839K)\n" +msgstr "" +"% gpart show ada1\n" +"=> 34 1465146988 ada1 GPT (699G)\n" +" 34 2014 - free - (1.0M)\n" +" 2048 1465143296 1 freebsd-ufs (699G)\n" +" 1465145344 1678 - free - (839K)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:118 +msgid "A file system is created in the new partition on the new disk:" +msgstr "Создается файловая система в новом разделе на новом диске:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:122 +#, no-wrap +msgid "# newfs -U /dev/ada1p1\n" +msgstr "# newfs -U /dev/ada1p1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:125 +msgid "" +"An empty directory is created as a _mountpoint_, a location for mounting the " +"new disk in the original disk's file system:" +msgstr "" +"Создается пустой каталог как _точка монтирования_ — место для подключения " +"нового диска в файловой системе исходного диска:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:129 +#, no-wrap +msgid "# mkdir /newdisk\n" +msgstr "# mkdir /newdisk\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:132 +msgid "" +"Finally, an entry is added to [.filename]#/etc/fstab# so the new disk will " +"be mounted automatically at startup:" +msgstr "" +"Наконец, в файл [.filename]#/etc/fstab# добавляется запись, чтобы новый диск " +"автоматически монтировался при загрузке:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:136 +#, no-wrap +msgid "/dev/ada1p1\t/newdisk\tufs\trw\t2\t2\n" +msgstr "/dev/ada1p1\t/newdisk\tufs\trw\t2\t2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:139 +msgid "The new disk can be mounted manually, without restarting the system:" +msgstr "Новый диск можно подключить вручную без перезагрузки системы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:143 +#, no-wrap +msgid "# mount /newdisk\n" +msgstr "# mount /newdisk\n" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:146 +#, no-wrap +msgid "Resizing and Growing Disks" +msgstr "Изменение размера и увеличение дисков" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:152 +msgid "" +"A disk's capacity can increase without any changes to the data already " +"present. This happens commonly with virtual machines, when the virtual disk " +"turns out to be too small and is enlarged. Sometimes a disk image is " +"written to a USB memory stick, but does not use the full capacity. Here we " +"describe how to resize or _grow_ disk contents to take advantage of " +"increased capacity." +msgstr "" +"Емкость диска может быть увеличена без изменения уже имеющихся данных. Это " +"часто происходит с виртуальными машинами, когда виртуальный диск оказывается " +"слишком маленьким и его расширяют. Иногда образ диска записывается на USB-" +"накопитель, но не использует его полную емкость. Здесь мы описываем, как " +"изменить размер или _расширить_ содержимое диска, чтобы использовать " +"увеличенную емкость." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:155 +msgid "" +"Determine the device name of the disk to be resized by inspecting " +"[.filename]#/var/run/dmesg.boot#. In this example, there is only one SATA " +"disk in the system, so the drive will appear as [.filename]#ada0#." +msgstr "" +"Определите имя устройства диска, который нужно изменить, просмотрев " +"[.filename]#/var/run/dmesg.boot#. В этом примере в системе только один SATA-" +"диск, поэтому диск будет отображаться как [.filename]#ada0#." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:157 +msgid "List the partitions on the disk to see the current configuration:" +msgstr "Перечислите разделы на диске, чтобы увидеть текущую конфигурацию:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:166 +#, no-wrap +msgid "" +"# gpart show ada0\n" +"=> 34 83886013 ada0 GPT (48G) [CORRUPT]\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 4194236 3 freebsd-swap (2G)\n" +" 83886046 1 - free - (512B)\n" +msgstr "" +"# gpart show ada0\n" +"=> 34 83886013 ada0 GPT (48G) [CORRUPT]\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 4194236 3 freebsd-swap (2G)\n" +" 83886046 1 - free - (512B)\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:172 +msgid "" +"If the disk was formatted with the https://en.wikipedia.org/wiki/" +"GUID_Partition_Table[GPT] partitioning scheme, it may show as \"corrupted\" " +"because the GPT backup partition table is no longer at the end of the " +"drive. Fix the backup partition table with `gpart`:" +msgstr "" +"Если диск был отформатирован с использованием схемы разделов https://" +"en.wikipedia.org/wiki/GUID_Partition_Table[GPT], он может отображаться как " +"\"повреждённый\", поскольку резервная таблица разделов GPT больше не " +"находится в конце диска. Восстановите резервную таблицу разделов с помощью " +"`gpart`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:177 +#, no-wrap +msgid "" +"# gpart recover ada0\n" +"ada0 recovered\n" +msgstr "" +"# gpart recover ada0\n" +"ada0 recovered\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:182 +msgid "" +"Now the additional space on the disk is available for use by a new " +"partition, or an existing partition can be expanded:" +msgstr "" +"Теперь дополнительное пространство на диске доступно для использования новым " +"разделом или для расширения существующего раздела:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:191 +#, no-wrap +msgid "" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 4194236 3 freebsd-swap (2G)\n" +" 83886046 18513921 - free - (8.8G)\n" +msgstr "" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 4194236 3 freebsd-swap (2G)\n" +" 83886046 18513921 - free - (8.8G)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:196 +msgid "" +"Partitions can only be resized into contiguous free space. Here, the last " +"partition on the disk is the swap partition, but the second partition is the " +"one that needs to be resized. Swap partitions only contain temporary data, " +"so it can safely be unmounted, deleted, and then recreate the third " +"partition after resizing the second partition." +msgstr "" +"Разделы можно изменять в размере только в пределах непрерывного свободного " +"пространства. В данном случае последним разделом на диске является раздел " +"подкачки, но требуется изменить размер второго раздела. Поскольку разделы " +"подкачки содержат только временные данные, их можно безопасно отмонтировать, " +"удалить, а затем заново создать третий раздел после изменения размера " +"второго раздела." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:198 +msgid "Disable the swap partition:" +msgstr "Отключить раздел подкачки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:202 +#, no-wrap +msgid "# swapoff /dev/ada0p3\n" +msgstr "# swapoff /dev/ada0p3\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:205 +msgid "" +"Delete the third partition, specified by the `-i` flag, from the disk _ada0_." +msgstr "Удалите третий раздел, указанный флагом `-i`, с диска _ada0_." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:215 +#, no-wrap +msgid "" +"# gpart delete -i 3 ada0\n" +"ada0p3 deleted\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 22708157 - free - (10G)\n" +msgstr "" +"# gpart delete -i 3 ada0\n" +"ada0p3 deleted\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 79691648 2 freebsd-ufs (38G)\n" +" 79691810 22708157 - free - (10G)\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:223 +msgid "" +"There is risk of data loss when modifying the partition table of a mounted " +"file system. It is best to perform the following steps on an unmounted file " +"system while running from a live CD-ROM or USB device. However, if " +"absolutely necessary, a mounted file system can be resized after disabling " +"GEOM safety features:" +msgstr "" +"Существует риск потери данных при изменении таблицы разделов смонтированной " +"файловой системы. Наилучшим вариантом будет выполнение следующих шагов на " +"размонтированной файловой системе, загрузившись с Live CD-ROM или USB-" +"устройства. Однако, если это крайне необходимо, смонтированную файловую " +"систему можно изменить, отключив защитные механизмы GEOM:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:227 +#, no-wrap +msgid "# sysctl kern.geom.debugflags=16\n" +msgstr "# sysctl kern.geom.debugflags=16\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:236 +msgid "" +"Resize the partition, leaving room to recreate a swap partition of the " +"desired size. The partition to resize is specified with `-i`, and the new " +"desired size with `-s`. Optionally, alignment of the partition is " +"controlled with `-a`. This only modifies the size of the partition. The " +"file system in the partition will be expanded in a separate step." +msgstr "" +"Измените размер раздела, оставив место для создания раздела подкачки нужного " +"размера. Раздел, который нужно изменить, указывается с помощью `-i`, а новый " +"желаемый размер — с помощью `-s`. Дополнительно выравнивание раздела " +"контролируется с помощью `-a`. Это изменяет только размер раздела. Файловая " +"система в разделе будет расширена в отдельном шаге." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:246 +#, no-wrap +msgid "" +"# gpart resize -i 2 -s 47G -a 4k ada0\n" +"ada0p2 resized\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 98566144 2 freebsd-ufs (47G)\n" +" 98566306 3833661 - free - (1.8G)\n" +msgstr "" +"# gpart resize -i 2 -s 47G -a 4k ada0\n" +"ada0p2 resized\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 98566144 2 freebsd-ufs (47G)\n" +" 98566306 3833661 - free - (1.8G)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:250 +msgid "" +"Recreate the swap partition and activate it. If no size is specified with `-" +"s`, all remaining space is used:" +msgstr "" +"Воссоздайте раздел подкачки и активируйте его. Если размер не указан с " +"помощью `-s`, используется все оставшееся пространство:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:261 +#, no-wrap +msgid "" +"# gpart add -t freebsd-swap -a 4k ada0\n" +"ada0p3 added\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 98566144 2 freebsd-ufs (47G)\n" +" 98566306 3833661 3 freebsd-swap (1.8G)\n" +"# swapon /dev/ada0p3\n" +msgstr "" +"# gpart add -t freebsd-swap -a 4k ada0\n" +"ada0p3 added\n" +"# gpart show ada0\n" +"=> 34 102399933 ada0 GPT (48G)\n" +" 34 128 1 freebsd-boot (64k)\n" +" 162 98566144 2 freebsd-ufs (47G)\n" +" 98566306 3833661 3 freebsd-swap (1.8G)\n" +"# swapon /dev/ada0p3\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:264 +msgid "" +"Grow the UFS file system to use the new capacity of the resized partition:" +msgstr "" +"Увеличьте файловую систему UFS, чтобы использовать новую ёмкость изменённого " +"раздела:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:274 +#, no-wrap +msgid "" +"# growfs /dev/ada0p2\n" +"Device is mounted read-write; resizing will result in temporary write suspension for /.\n" +"It's strongly recommended to make a backup before growing the file system.\n" +"OK to grow file system on /dev/ada0p2, mounted on /, from 38GB to 47GB? [Yes/No] Yes\n" +"super-block backups (for fsck -b #) at:\n" +" 80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752,\n" +" 89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432\n" +msgstr "" +"# growfs /dev/ada0p2\n" +"Device is mounted read-write; resizing will result in temporary write suspension for /.\n" +"It's strongly recommended to make a backup before growing the file system.\n" +"OK to grow file system on /dev/ada0p2, mounted on /, from 38GB to 47GB? [Yes/No] Yes\n" +"super-block backups (for fsck -b #) at:\n" +" 80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752,\n" +" 89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:277 +msgid "" +"If the file system is ZFS, the resize is triggered by running the `online` " +"subcommand with `-e`:" +msgstr "" +"Если файловая система ZFS, изменение размера запускается выполнением " +"подкоманды `online` с ключом `-e`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:281 +#, no-wrap +msgid "# zpool online -e zroot /dev/ada0p2\n" +msgstr "# zpool online -e zroot /dev/ada0p2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:284 +msgid "" +"Both the partition and the file system on it have now been resized to use " +"the newly-available disk space." +msgstr "" +"Как раздел, так и файловая система на нем теперь изменены в размере для " +"использования нового доступного пространства на диске." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:286 +#, no-wrap +msgid "USB Storage Devices" +msgstr "USB-накопители" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:290 +msgid "" +"Many external storage solutions, such as hard drives, USB thumbdrives, and " +"CD and DVD burners, use the Universal Serial Bus (USB). FreeBSD provides " +"support for USB 1.x, 2.0, and 3.0 devices." +msgstr "" +"Многие внешние устройства хранения данных, такие как жесткие диски, USB-" +"флешки, а также устройства для записи CD и DVD, используют универсальную " +"последовательную шину (USB). FreeBSD поддерживает устройства USB 1.x, 2.0 и " +"3.0." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:295 +msgid "" +"USB 3.0 support is not compatible with some hardware, including Haswell " +"(Lynx point) chipsets. If FreeBSD boots with a `failed with error 19` " +"message, disable xHCI/USB3 in the system BIOS." +msgstr "" +"Поддержка USB 3.0 несовместима с некоторым оборудованием, включая чипсеты " +"Haswell (Lynx point). Если FreeBSD загружается с сообщением `failed with " +"error 19`, отключите xHCI/USB3 в BIOS системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:299 +msgid "" +"Support for USB storage devices is built into the [.filename]#GENERIC# " +"kernel. For a custom kernel, be sure that the following lines are present " +"in the kernel configuration file:" +msgstr "" +"Поддержка USB-накопителей встроена в ядро [.filename]#GENERIC#. Для " +"собственной сборки ядра убедитесь, что следующие строки присутствуют в " +"конфигурационном файле ядра:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:312 +#, no-wrap +msgid "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device uhci\t# provides USB 1.x support\n" +"device ohci\t# provides USB 1.x support\n" +"device ehci\t# provides USB 2.0 support\n" +"device xhci\t# provides USB 3.0 support\n" +"device usb\t# USB Bus (required)\n" +"device umass\t# Disks/Mass storage - Requires scbus and da\n" +"device cd\t# needed for CD and DVD burners\n" +msgstr "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device uhci\t# provides USB 1.x support\n" +"device ohci\t# provides USB 1.x support\n" +"device ehci\t# provides USB 2.0 support\n" +"device xhci\t# provides USB 3.0 support\n" +"device usb\t# USB Bus (required)\n" +"device umass\t# Disks/Mass storage - Requires scbus and da\n" +"device cd\t# needed for CD and DVD burners\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:316 +msgid "" +"FreeBSD uses the man:umass[4] driver which uses the SCSI subsystem to access " +"USB storage devices. Since any USB device will be seen as a SCSI device by " +"the system, if the USB device is a CD or DVD burner, do _not_ include " +"`device atapicam` in a custom kernel configuration file." +msgstr "" +"FreeBSD использует драйвер man:umass[4], который задействует подсистему SCSI " +"для доступа к USB-устройствам хранения данных. Поскольку любое USB-" +"устройство будет распознаваться системой как SCSI-устройство, если USB-" +"устройство является записывающим CD- или DVD-приводом, _не_ включайте " +"`device atapicam` в конфигурационный файл пользовательского ядра." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:318 +msgid "" +"The rest of this section demonstrates how to verify that a USB storage " +"device is recognized by FreeBSD and how to configure the device so that it " +"can be used." +msgstr "" +"Оставшаяся часть этого раздела демонстрирует, как убедиться, что USB-" +"накопитель распознаётся FreeBSD, и как настроить устройство для " +"использования." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:319 +#, no-wrap +msgid "Device Configuration" +msgstr "Настройка устройств" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:324 +msgid "" +"To test the USB configuration, plug in the USB device. Use `dmesg` to " +"confirm that the drive appears in the system message buffer. It should look " +"something like this:" +msgstr "" +"Для проверки конфигурации USB подключите USB-устройство. Используйте " +"`dmesg`, чтобы убедиться, что устройство появилось в системном буфере " +"сообщений. Результат должен выглядеть примерно так:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:336 +#, no-wrap +msgid "" +"umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0\n" +"umass0: SCSI over Bulk-Only; quirks = 0x0100\n" +"umass0:4:0:-1: Attached to scbus4\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device\n" +"da0: Serial Number WD-WXE508CAN263\n" +"da0: 40.000MB/s transfers\n" +"da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)\n" +"da0: quirks=0x2<NO_6_BYTE>\n" +msgstr "" +"umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0\n" +"umass0: SCSI over Bulk-Only; quirks = 0x0100\n" +"umass0:4:0:-1: Attached to scbus4\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device\n" +"da0: Serial Number WD-WXE508CAN263\n" +"da0: 40.000MB/s transfers\n" +"da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)\n" +"da0: quirks=0x2<NO_6_BYTE>\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:339 +msgid "" +"The brand, device node ([.filename]#da0#), speed, and size will differ " +"according to the device." +msgstr "" +"Марка, файл устройства ([.filename]#da0#), скорость и размер будут " +"отличаться в зависимости от устройства." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:341 +msgid "" +"Since the USB device is seen as a SCSI one, `camcontrol` can be used to list " +"the USB storage devices attached to the system:" +msgstr "" +"Поскольку USB-устройство распознаётся как SCSI, для вывода списка USB-" +"накопителей, подключённых к системе, можно использовать `camcontrol`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:346 +#, no-wrap +msgid "" +"# camcontrol devlist\n" +"<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0)\n" +msgstr "" +"# camcontrol devlist\n" +"<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:350 +msgid "" +"Alternately, `usbconfig` can be used to list the device. Refer to " +"man:usbconfig[8] for more information about this command." +msgstr "" +"Или можно использовать `usbconfig` для вывода списка устройств. " +"Дополнительную информацию об этой команде смотрите в man:usbconfig[8]." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:355 +#, no-wrap +msgid "" +"# usbconfig\n" +"ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)\n" +msgstr "" +"# usbconfig\n" +"ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:359 +msgid "" +"If the device has not been formatted, refer to crossref:disks[disks-adding, " +"Adding Disks] for instructions on how to format and create partitions on the " +"USB drive. If the drive comes with a file system, it can be mounted by " +"`root` using the instructions in crossref:basics[mount-unmount,“Mounting and " +"Unmounting File Systems”]." +msgstr "" +"Если устройство не было отформатировано, обратитесь к crossref:disks[disks-" +"adding,Добавление дисков] для получения инструкций по форматированию и " +"созданию разделов на USB-накопителе. Если накопитель поставляется с файловой " +"системой, он может быть смонтирован пользователем `root` с помощью " +"инструкций из crossref:basics[mount-unmount,«Монтирование и размонтирование " +"файловых систем»]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:364 +msgid "" +"Allowing untrusted users to mount arbitrary media, by enabling " +"`vfs.usermount` as described below, should not be considered safe from a " +"security point of view. Most file systems were not built to safeguard " +"against malicious devices." +msgstr "" +"Разрешение непривилегированным пользователям монтировать произвольные " +"носители путем включения `vfs.usermount`, как описано ниже, не должно " +"считаться безопасным с точки зрения защиты. Большинство файловых систем не " +"предназначены для защиты от вредоносных устройств." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:368 +msgid "" +"To make the device mountable as a normal user, one solution is to make all " +"users of the device a member of the `operator` group using man:pw[8]. Next, " +"ensure that `operator` is able to read and write the device by adding these " +"lines to [.filename]#/etc/devfs.rules#:" +msgstr "" +"Чтобы устройство можно было монтировать обычным пользователем, одним из " +"решений является добавление всех пользователей устройства в группу " +"`operator` с помощью man:pw[8]. Затем убедитесь, что группа `operator` имеет " +"права на чтение и запись устройства, добавив следующие строки в [.filename]#/" +"etc/devfs.rules#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:373 +#, no-wrap +msgid "" +"[localrules=5]\n" +"add path 'da*' mode 0660 group operator\n" +msgstr "" +"[localrules=5]\n" +"add path 'da*' mode 0660 group operator\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:378 +msgid "" +"If internal SCSI disks are also installed in the system, change the second " +"line as follows:" +msgstr "" +"Если в системе также установлены внутренние SCSI-диски, измените вторую " +"строку следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:382 +#, no-wrap +msgid "add path 'da[3-9]*' mode 0660 group operator\n" +msgstr "add path 'da[3-9]*' mode 0660 group operator\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:387 +msgid "" +"This will exclude the first three SCSI disks ([.filename]#da0# to " +"[.filename]#da2#) from belonging to the `operator` group. Replace _3_ with " +"the number of internal SCSI disks. Refer to man:devfs.rules[5] for more " +"information about this file." +msgstr "" +"Это исключит первые три SCSI-диска ([.filename]#da0# — [.filename]#da2#) из " +"принадлежности к группе `operator`. Замените _3_ на количество внутренних " +"SCSI-дисков. Дополнительную информацию об этом файле смотрите в " +"man:devfs.rules[5]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:390 +msgid "Next, enable the ruleset in [.filename]#/etc/rc.conf#:" +msgstr "Затем включите набор правил в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:394 +#, no-wrap +msgid "devfs_system_ruleset=\"localrules\"\n" +msgstr "devfs_system_ruleset=\"localrules\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:397 +msgid "" +"Then, instruct the system to allow regular users to mount file systems by " +"adding the following line to [.filename]#/etc/sysctl.conf#:" +msgstr "" +"Затем настройте систему для разрешения обычным пользователям монтировать " +"файловые системы, добавив следующую строку в [.filename]#/etc/sysctl.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:401 +#, no-wrap +msgid "vfs.usermount=1\n" +msgstr "vfs.usermount=1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:404 +msgid "" +"Since this only takes effect after the next reboot, use `sysctl` to set this " +"variable now:" +msgstr "" +"Поскольку это вступит в силу только после следующей перезагрузки, " +"используйте `sysctl`, чтобы установить эту переменную сейчас:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:409 +#, no-wrap +msgid "" +"# sysctl vfs.usermount=1\n" +"vfs.usermount: 0 -> 1\n" +msgstr "" +"# sysctl vfs.usermount=1\n" +"vfs.usermount: 0 -> 1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:415 +msgid "" +"The final step is to create a directory where the file system is to be " +"mounted. This directory needs to be owned by the user that is to mount the " +"file system. One way to do that is for `root` to create a subdirectory " +"owned by that user as [.filename]#/mnt/username#. In the following example, " +"replace _username_ with the login name of the user and _usergroup_ with the " +"user's primary group:" +msgstr "" +"Последним шагом является создание каталога, в который будет монтироваться " +"файловая система. Этот каталог должен принадлежать пользователю, который " +"будет монтировать файловую систему. Один из способов сделать это — создать " +"подкаталог от имени `root`, принадлежащий этому пользователю, например " +"[.filename]#/mnt/username#. В следующем примере замените _username_ на имя " +"пользователя, а _usergroup_ на основную группу пользователя:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:420 +#, no-wrap +msgid "" +"# mkdir /mnt/username\n" +"# chown username:usergroup /mnt/username\n" +msgstr "" +"# mkdir /mnt/username\n" +"# chown username:usergroup /mnt/username\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:424 +msgid "" +"Suppose a USB thumbdrive is plugged in, and a device [.filename]#/dev/da0s1# " +"appears. If the device is formatted with a FAT file system, the user can " +"mount it using:" +msgstr "" +"Предположим, подключена USB-флешка, и появилось устройство [.filename]#/dev/" +"da0s1#. Если устройство отформатировано с файловой системой FAT, " +"пользователь может смонтировать его с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:428 +#, no-wrap +msgid "% mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username\n" +msgstr "% mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:431 +msgid "Before the device can be unplugged, it _must_ be unmounted first:" +msgstr "" +"Прежде чем устройство можно будет отключить, его _необходимо_ размонтировать:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:435 +#, no-wrap +msgid "% umount /mnt/username\n" +msgstr "% umount /mnt/username\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:438 +msgid "" +"After device removal, the system message buffer will show messages similar " +"to the following:" +msgstr "" +"После удаления устройства в системном буфере сообщений будут отображены " +"сообщения, аналогичные следующим:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:445 +#, no-wrap +msgid "" +"umass0: at uhub3, port 2, addr 3 (disconnected)\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached\n" +"(da0:umass-sim0:0:0:0): Periph destroyed\n" +msgstr "" +"umass0: at uhub3, port 2, addr 3 (disconnected)\n" +"da0 at umass-sim0 bus 0 scbus4 target 0 lun 0\n" +"da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached\n" +"(da0:umass-sim0:0:0:0): Periph destroyed\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:447 +#, no-wrap +msgid "Automounting Removable Media" +msgstr "Автомонтирование съемных носителей" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:450 +msgid "" +"USB devices can be automatically mounted by uncommenting this line in " +"[.filename]#/etc/auto_master#:" +msgstr "" +"USB-устройства могут автоматически монтироваться при раскомментировании этой " +"строки в [.filename]#/etc/auto_master#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:454 +#, no-wrap +msgid "/media\t\t-media\t\t-nosuid\n" +msgstr "/media\t\t-media\t\t-nosuid\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:457 +msgid "Then add these lines to [.filename]#/etc/devd.conf#:" +msgstr "Затем добавьте следующие строки в [.filename]#/etc/devd.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:465 +#, no-wrap +msgid "" +"notify 100 {\n" +"\tmatch \"system\" \"GEOM\";\n" +"\tmatch \"subsystem\" \"DEV\";\n" +"\taction \"/usr/sbin/automount -c\";\n" +"};\n" +msgstr "" +"notify 100 {\n" +"\tmatch \"system\" \"GEOM\";\n" +"\tmatch \"subsystem\" \"DEV\";\n" +"\taction \"/usr/sbin/automount -c\";\n" +"};\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:468 +msgid "" +"Reload the configuration if man:autofs[5] and man:devd[8] are already " +"running:" +msgstr "" +"Перезагрузите конфигурацию, если man:autofs[5] и man:devd[8] уже запущены:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:473 +#, no-wrap +msgid "" +"# service automount restart\n" +"# service devd restart\n" +msgstr "" +"# service automount restart\n" +"# service devd restart\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:476 +msgid "" +"man:autofs[5] can be set to start at boot by adding this line to " +"[.filename]#/etc/rc.conf#:" +msgstr "" +"man:autofs[5] можно настроить для запуска при загрузке, добавив следующую " +"строку в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:480 +#, no-wrap +msgid "autofs_enable=\"YES\"\n" +msgstr "autofs_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:483 +msgid "man:autofs[5] requires man:devd[8] to be enabled, as it is by default." +msgstr "" +"man:autofs[5] требует, чтобы man:devd[8] был включён, как это и настроено по " +"умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:485 +msgid "Start the services immediately with:" +msgstr "Запустите службы немедленно с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:492 +#, no-wrap +msgid "" +"# service automount start\n" +"# service automountd start\n" +"# service autounmountd start\n" +"# service devd start\n" +msgstr "" +"# service automount start\n" +"# service automountd start\n" +"# service autounmountd start\n" +"# service devd start\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:497 +msgid "" +"Each file system that can be automatically mounted appears as a directory in " +"[.filename]#/media/#. The directory is named after the file system label. " +"If the label is missing, the directory is named after the device node." +msgstr "" +"Каждая файловая система, которая может быть автоматически смонтирована, " +"отображается как каталог в [.filename]#/media/#. Каталог именуется в " +"соответствии с меткой файловой системы. Если метка отсутствует, каталог " +"именуется в соответствии с устройством." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:500 +msgid "" +"The file system is transparently mounted on the first access, and unmounted " +"after a period of inactivity. Automounted drives can also be unmounted " +"manually:" +msgstr "" +"Файловая система автоматически монтируется при первом доступе и " +"размонтируется после периода неактивности. Автомонтируемые диски также можно " +"размонтировать вручную:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:504 +#, no-wrap +msgid "# automount -fu\n" +msgstr "# automount -fu\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:508 +msgid "" +"This mechanism is typically used for memory cards and USB memory sticks. It " +"can be used with any block device, including optical drives or iSCSILUNs." +msgstr "" +"Этот механизм обычно используется для карт памяти и USB-флешек. Он может " +"применяться с любыми блочными устройствами, включая оптические приводы или " +"iSCSI LUN." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:510 +#, no-wrap +msgid "Creating and Using CD Media" +msgstr "Создание и использование CD-носителей" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:516 +msgid "" +"Compact Disc (CD) media provide a number of features that differentiate them " +"from conventional disks. They are designed so that they can be read " +"continuously without delays to move the head between tracks. While CD media " +"do have tracks, these refer to a section of data to be read continuously, " +"and not a physical property of the disk. The ISO 9660 file system was " +"designed to deal with these differences." +msgstr "" +"Компакт-диски (CD) обладают рядом особенностей, которые отличают их от " +"обычных дисков. Они спроектированы так, чтобы их можно было читать " +"непрерывно без задержек на перемещение головки между дорожками. Хотя на CD " +"действительно есть дорожки, они обозначают участки данных, предназначенные " +"для непрерывного чтения, а не физическое свойство диска. Файловая система " +"ISO 9660 была разработана для работы с этими различиями." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:520 +msgid "" +"The FreeBSD Ports Collection provides several utilities for burning and " +"duplicating audio and data CDs. This chapter demonstrates the use of " +"several command line utilities. For CD burning software with a graphical " +"utility, consider installing the package:sysutils/xcdroast[] or " +"package:sysutils/k3b[] packages or ports." +msgstr "" +"Коллекция портов FreeBSD предоставляет несколько утилит для записи и " +"копирования аудио- и данных на CD. В этой главе демонстрируется " +"использование нескольких утилит командной строки. Для записи CD с " +"графическим интерфейсом можно установить пакеты или порты package:sysutils/" +"xcdroast[] или package:sysutils/k3b[]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:522 +#, no-wrap +msgid "Supported Devices" +msgstr "Поддерживаемые устройства" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:526 +msgid "" +"The [.filename]#GENERIC# kernel provides support for SCSI, USB, and ATAPICD " +"readers and burners. If a custom kernel is used, the options that need to " +"be present in the kernel configuration file vary by the type of device." +msgstr "" +"Ядро [.filename]#GENERIC# обеспечивает поддержку SCSI, USB и устройств " +"чтения и записи ATAPICD. Если используется собственное ядро, параметры, " +"которые должны присутствовать в конфигурационном файле ядра, зависят от типа " +"устройства." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:528 +msgid "For a SCSI burner, make sure these options are present:" +msgstr "" +"Для SCSI-устройства, записывающего CD или DVD диски, убедитесь, что " +"присутствуют следующие параметры:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:535 +#, no-wrap +msgid "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" +msgstr "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:538 +msgid "For a USB burner, make sure these options are present:" +msgstr "Для USB-привода убедитесь, что указаны следующие параметры:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:551 +#, no-wrap +msgid "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" +"device uhci\t# provides USB 1.x support\n" +"device ohci\t# provides USB 1.x support\n" +"device ehci\t# provides USB 2.0 support\n" +"device xhci\t# provides USB 3.0 support\n" +"device usb\t# USB Bus (required)\n" +"device umass\t# Disks/Mass storage - Requires scbus and da\n" +msgstr "" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device da\t# Direct Access (disks)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" +"device uhci\t# provides USB 1.x support\n" +"device ohci\t# provides USB 1.x support\n" +"device ehci\t# provides USB 2.0 support\n" +"device xhci\t# provides USB 3.0 support\n" +"device usb\t# USB Bus (required)\n" +"device umass\t# Disks/Mass storage - Requires scbus and da\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:554 +msgid "For an ATAPI burner, make sure these options are present:" +msgstr "" +"Для ATAPI устройств, записывающих CD или DVD диски, убедитесь, что указаны " +"следующие параметры:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:561 +#, no-wrap +msgid "" +"device ata\t# Legacy ATA/SATA controllers\n" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" +msgstr "" +"device ata\t# Legacy ATA/SATA controllers\n" +"device scbus\t# SCSI bus (required for ATA/SCSI)\n" +"device pass\t# Passthrough device (direct ATA/SCSI access)\n" +"device cd\t# needed for CD and DVD burners\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:566 +msgid "" +"On FreeBSD versions prior to 10.x, this line is also needed in the kernel " +"configuration file if the burner is an ATAPI device:" +msgstr "" +"В версиях FreeBSD до 10.x эта строка также необходима в конфигурационном " +"файле ядра, если устройство записи является ATAPI-устройством:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:570 +#, no-wrap +msgid "device atapicam\n" +msgstr "device atapicam\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:573 +msgid "" +"Alternately, this driver can be loaded at boot time by adding the following " +"line to [.filename]#/boot/loader.conf#:" +msgstr "" +"В качестве альтернативы, этот драйвер можно загрузить при загрузке, добавив " +"следующую строку в файл [.filename]#/boot/loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:577 +#, no-wrap +msgid "atapicam_load=\"YES\"\n" +msgstr "atapicam_load=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:580 +msgid "" +"This will require a reboot of the system as this driver can only be loaded " +"at boot time." +msgstr "" +"Это потребует перезагрузки системы, так как этот драйвер может быть загружен " +"только во время загрузки." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:584 +msgid "" +"To verify that FreeBSD recognizes the device, run `dmesg` and look for an " +"entry for the device. On systems prior to 10.x, the device name in the " +"first line of the output will be [.filename]#acd0# instead of " +"[.filename]#cd0#." +msgstr "" +"Чтобы убедиться, что FreeBSD распознает устройство, выполните команду " +"`dmesg` и найдите запись об этом устройстве. В системах до версии 10.x имя " +"устройства в первой строке вывода будет [.filename]#acd0# вместо " +"[.filename]#cd0#." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:593 +#, no-wrap +msgid "" +"% dmesg | grep cd\n" +"cd0 at ahcich1 bus 0 scbus1 target 0 lun 0\n" +"cd0: <HL-DT-ST DVDRAM GU70N LT20> Removable CD-ROM SCSI-0 device\n" +"cd0: Serial Number M3OD3S34152\n" +"cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes)\n" +"cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed\n" +msgstr "" +"% dmesg | grep cd\n" +"cd0 at ahcich1 bus 0 scbus1 target 0 lun 0\n" +"cd0: <HL-DT-ST DVDRAM GU70N LT20> Removable CD-ROM SCSI-0 device\n" +"cd0: Serial Number M3OD3S34152\n" +"cd0: 150.000MB/s transfers (SATA 1.x, UDMA6, ATAPI 12bytes, PIO 8192bytes)\n" +"cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:596 +#, no-wrap +msgid "Burning a CD" +msgstr "Запись компакт-диска" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:600 +msgid "" +"In FreeBSD, `cdrecord` can be used to burn CDs. This command is installed " +"with the package:sysutils/cdrtools[] package or port." +msgstr "" +"В FreeBSD для записи компакт-дисков можно использовать `cdrecord`. Эта " +"команда устанавливается с пакетом или портом package:sysutils/cdrtools[]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:603 +msgid "" +"While `cdrecord` has many options, basic usage is simple. Specify the name " +"of the ISO file to burn and, if the system has multiple burner devices, " +"specify the name of the device to use:" +msgstr "" +"Хотя `cdrecord` имеет множество опций, базовое использование просто. Укажите " +"имя ISO-файла для записи и, если в системе несколько устройств для записи, " +"укажите имя используемого устройства:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:607 +#, no-wrap +msgid "# cdrecord dev=device imagefile.iso\n" +msgstr "# cdrecord dev=device imagefile.iso\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:610 +msgid "" +"To determine the device name of the burner, use `-scanbus` which might " +"produce results like this:" +msgstr "" +"Чтобы определить имя устройства записывающего привода, используйте `-" +"scanbus`, что может дать результат, подобный следующему:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:634 +#, no-wrap +msgid "" +"# cdrecord -scanbus\n" +"ProDVD-ProBD-Clone 3.00 (amd64-unknown-freebsd10.0) Copyright (C) 1995-2010 Jörg Schilling\n" +"Using libscg version 'schily-0.9'\n" +"scsibus0:\n" +" 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk\n" +" 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk\n" +" 0,2,0 2) *\n" +" 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk\n" +" 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM\n" +" 0,5,0 5) *\n" +" 0,6,0 6) *\n" +" 0,7,0 7) *\n" +"scsibus1:\n" +" 1,0,0 100) *\n" +" 1,1,0 101) *\n" +" 1,2,0 102) *\n" +" 1,3,0 103) *\n" +" 1,4,0 104) *\n" +" 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM\n" +" 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner\n" +" 1,7,0 107) *\n" +msgstr "" +"# cdrecord -scanbus\n" +"ProDVD-ProBD-Clone 3.00 (amd64-unknown-freebsd10.0) Copyright (C) 1995-2010 Jörg Schilling\n" +"Using libscg version 'schily-0.9'\n" +"scsibus0:\n" +" 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk\n" +" 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk\n" +" 0,2,0 2) *\n" +" 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk\n" +" 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM\n" +" 0,5,0 5) *\n" +" 0,6,0 6) *\n" +" 0,7,0 7) *\n" +"scsibus1:\n" +" 1,0,0 100) *\n" +" 1,1,0 101) *\n" +" 1,2,0 102) *\n" +" 1,3,0 103) *\n" +" 1,4,0 104) *\n" +" 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM\n" +" 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner\n" +" 1,7,0 107) *\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:639 +msgid "" +"Locate the entry for the CD burner and use the three numbers separated by " +"commas as the value for `dev`. In this case, the Yamaha burner device is " +"`1,5,0`, so the appropriate input to specify that device is `dev=1,5,0`. " +"Refer to the manual page for `cdrecord` for other ways to specify this value " +"and for information on writing audio tracks and controlling the write speed." +msgstr "" +"Найдите запись устройство для записи CD и используйте три числа, разделенные " +"запятыми, в качестве значения для `dev`. В данном случае устройство Yamaha " +"имеет значение `1,5,0`, поэтому правильный ввод для указания этого " +"устройства — `dev=1,5,0`. Обратитесь к руководству `cdrecord` для других " +"способов указания этого значения, а также для получения информации о записи " +"аудиодорожек и управлении скоростью записи." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:641 +msgid "" +"Alternately, run the following command to get the device address of the " +"burner:" +msgstr "" +"Или выполните следующую команду, чтобы получить адрес записывающего " +"устройства:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:646 +#, no-wrap +msgid "" +"# camcontrol devlist\n" +"<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0)\n" +msgstr "" +"# camcontrol devlist\n" +"<MATSHITA CDRW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (cd0,pass0)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:650 +msgid "" +"Use the numeric values for `scbus`, `target`, and `lun`. For this example, " +"`1,0,0` is the device name to use." +msgstr "" +"Используйте числовые значения для `scbus`, `target` и `lun`. В этом примере " +"`1,0,0` — это имя устройства, которое следует использовать." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:652 +#, no-wrap +msgid "Writing Data to an ISO File System" +msgstr "Запись данных в файловую систему ISO" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:657 +msgid "" +"In order to produce a data CD, the data files that are going to make up the " +"tracks on the CD must be prepared before they can be burned to the CD. In " +"FreeBSD, package:sysutils/cdrtools[] installs `mkisofs`, which can be used " +"to produce an ISO 9660 file system that is an image of a directory tree " +"within a UNIX(R) file system. The simplest usage is to specify the name of " +"the ISO file to create and the path to the files to place into the ISO 9660 " +"file system:" +msgstr "" +"Для создания компакт-диска с данными файлы, которые будут составлять дорожки " +"на диске, необходимо подготовить перед записью на CD. В FreeBSD пакет " +"package:sysutils/cdrtools[] устанавливает `mkisofs`, который можно " +"использовать для создания файловой системы ISO 9660, представляющей образ " +"дерева каталогов в UNIX(R) файловой системе. Простейший способ использования " +"— указать имя создаваемого ISO-файла и путь к файлам, которые нужно " +"поместить в файловую систему ISO 9660:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:661 +#, no-wrap +msgid "# mkisofs -o imagefile.iso /path/to/tree\n" +msgstr "# mkisofs -o imagefile.iso /path/to/tree\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:664 +msgid "" +"This command maps the file names in the specified path to names that fit the " +"limitations of the standard ISO 9660 file system, and will exclude files " +"that do not meet the standard for ISO file systems." +msgstr "" +"Эта команда сопоставляет имена файлов в указанном пути с именами, " +"соответствующими ограничениям стандартной файловой системы ISO 9660, и " +"исключает файлы, не соответствующие стандарту для файловых систем ISO." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:667 +msgid "" +"A number of options are available to overcome the restrictions imposed by " +"the standard. In particular, `-R` enables the Rock Ridge extensions common " +"to UNIX(R) systems and `-J` enables Joliet extensions used by Microsoft(R) " +"systems." +msgstr "" +"Для преодоления ограничений стандарта доступен ряд опций. В частности, `-R` " +"включает расширения Rock Ridge, распространённые в системах UNIX(R), а `-J` " +"включает расширения Joliet, используемые в системах Microsoft(R)." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:670 +msgid "" +"For CDs that are going to be used only on FreeBSD systems, `-U` can be used " +"to disable all filename restrictions. When used with `-R`, it produces a " +"file system image that is identical to the specified FreeBSD tree, even if " +"it violates the ISO 9660 standard." +msgstr "" +"Для компакт-дисков, которые будут использоваться только в системах FreeBSD, " +"можно применить `-U` для отключения всех ограничений на имена файлов. При " +"использовании вместе с `-R` создаётся образ файловой системы, идентичный " +"указанному дереву FreeBSD, даже если он нарушает стандарт ISO 9660." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:678 +msgid "" +"The last option of general use is `-b`. This is used to specify the " +"location of a boot image for use in producing an \"El Torito\" bootable CD. " +"This option takes an argument which is the path to a boot image from the top " +"of the tree being written to the CD. By default, `mkisofs` creates an ISO " +"image in \"floppy disk emulation\" mode, and thus expects the boot image to " +"be exactly 1200, 1440 or 2880 KB in size. Some boot loaders, like the one " +"used by the FreeBSD distribution media, do not use emulation mode. In this " +"case, `-no-emul-boot` should be used. So, if [.filename]#/tmp/myboot# holds " +"a bootable FreeBSD system with the boot image in [.filename]#/tmp/myboot/" +"boot/cdboot#, this command would produce [.filename]#/tmp/bootable.iso#:" +msgstr "" +"Последняя опция общего назначения — `-b`. Она используется для указания " +"местоположения загрузочного образа при создании загрузочного CD в формате " +"\"El Torito\". Эта опция принимает аргумент — путь к загрузочному образу " +"относительно корня дерева, записываемого на CD. По умолчанию `mkisofs` " +"создаёт образ ISO в режиме \"эмуляции флоппи-диска\", поэтому ожидает, что " +"загрузочный образ будет иметь размер ровно 1200, 1440 или 2880 КБ. Некоторые " +"загрузчики, например, используемые на дистрибутивных носителях FreeBSD, не " +"применяют режим эмуляции. В этом случае следует использовать опцию `-no-emul-" +"boot`. Таким образом, если [.filename]#/tmp/myboot# содержит загрузочную " +"систему FreeBSD с загрузочным образом в [.filename]#/tmp/myboot/boot/" +"cdboot#, то следующая команда создаст [.filename]#/tmp/bootable.iso#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:682 +#, no-wrap +msgid "# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot\n" +msgstr "# mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:685 +msgid "The resulting ISO image can be mounted as a memory disk with:" +msgstr "Полученный образ ISO можно подключить как диск в памяти с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:690 +#, no-wrap +msgid "" +"# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0\n" +"# mount -t cd9660 /dev/md0 /mnt\n" +msgstr "" +"# mdconfig -a -t vnode -f /tmp/bootable.iso -u 0\n" +"# mount -t cd9660 /dev/md0 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:693 +msgid "" +"One can then verify that [.filename]#/mnt# and [.filename]#/tmp/myboot# are " +"identical." +msgstr "" +"Затем можно убедиться, что [.filename]#/mnt# и [.filename]#/tmp/myboot# " +"идентичны." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:696 +msgid "" +"There are many other options available for `mkisofs` to fine-tune its " +"behavior. Refer to man:mkisofs[8] for details." +msgstr "" +"Доступно множество других опций для `mkisofs`, позволяющих точно настроить " +"его поведение. Подробности смотрите в man:mkisofs[8]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:701 +msgid "" +"It is possible to copy a data CD to an image file that is functionally " +"equivalent to the image file created with `mkisofs`. To do so, use " +"[.filename]#dd# with the device name as the input file and the name of the " +"ISO to create as the output file:" +msgstr "" +"Возможно скопировать компакт-диск с данными в файл образа, функционально " +"эквивалентный файлу образа, созданному с помощью `mkisofs`. Для этого " +"используйте [.filename]#dd#, указав имя устройства в качестве входного файла " +"и имя создаваемого ISO в качестве выходного файла:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:705 +#, no-wrap +msgid "# dd if=/dev/cd0 of=file.iso bs=2048\n" +msgstr "# dd if=/dev/cd0 of=file.iso bs=2048\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:708 +msgid "" +"The resulting image file can be burned to CD as described in " +"crossref:disks[cdrecord, Burning a CD]." +msgstr "" +"Полученный файл образа можно записать на компакт-диск, как описано в " +"crossref:disks[cdrecord,Запись компакт-диска]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:711 +#, no-wrap +msgid "Using Data CDs" +msgstr "Использование компакт-дисков с данными" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:714 +msgid "" +"Once an ISO has been burned to a CD, it can be mounted by specifying the " +"file system type, the name of the device containing the CD, and an existing " +"mount point:" +msgstr "" +"После записи ISO-образа на компакт-диск его можно смонтировать, указав тип " +"файловой системы, имя устройства с компакт-диском и существующую точку " +"монтирования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:718 +#, no-wrap +msgid "# mount -t cd9660 /dev/cd0 /mnt\n" +msgstr "# mount -t cd9660 /dev/cd0 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:721 +msgid "" +"Since `mount` assumes that a file system is of type `ufs`, an `Incorrect " +"super block` error will occur if `-t cd9660` is not included when mounting a " +"data CD." +msgstr "" +"Поскольку `mount` предполагает, что файловая система имеет тип `ufs`, ошибка " +"`Incorrect super block` возникнет, если не указать `-t cd9660` при " +"монтировании компакт-диска с данными." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:726 +msgid "" +"While any data CD can be mounted this way, disks with certain ISO 9660 " +"extensions might behave oddly. For example, Joliet disks store all " +"filenames in two-byte Unicode characters. If some non-English characters " +"show up as question marks, specify the local charset with `-C`. For more " +"information, refer to man:mount_cd9660[8]." +msgstr "" +"В то время как любой компакт-диск с данными можно смонтировать таким " +"образом, диски с определёнными расширениями ISO 9660 могут работать " +"неожиданно. Например, диски Joliet хранят все имена файлов в двухбайтовых " +"символах Unicode. Если некоторые неанглийские символы отображаются как знаки " +"вопроса, укажите локальную кодировку с помощью `-C`. Для получения " +"дополнительной информации обратитесь к man:mount_cd9660[8]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:731 +msgid "" +"In order to do this character conversion with the help of `-C`, the kernel " +"requires the [.filename]#cd9660_iconv.ko# module to be loaded. This can be " +"done either by adding this line to [.filename]#loader.conf#:" +msgstr "" +"Для выполнения этого преобразования символов с помощью опции `-C` необходимо " +"загрузить модуль ядра [.filename]#cd9660_iconv.ko#. Это можно сделать, " +"добавив следующую строку в [.filename]#loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:735 +#, no-wrap +msgid "cd9660_iconv_load=\"YES\"\n" +msgstr "cd9660_iconv_load=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:738 +msgid "" +"and then rebooting the machine, or by directly loading the module with " +"`kldload`." +msgstr "" +"и затем перезагрузить машину, или напрямую загрузить модуль с помощью " +"`kldload`." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:743 +msgid "" +"Occasionally, `Device not configured` will be displayed when trying to mount " +"a data CD. This usually means that the CD drive has not detected a disk in " +"the tray, or that the drive is not visible on the bus. It can take a couple " +"of seconds for a CD drive to detect media, so be patient." +msgstr "" +"Изредка при попытке смонтировать компакт-диск с данными может отображаться " +"сообщение `Device not configured`. Обычно это означает, что привод не " +"обнаружил диск в лотке или что привод не виден на шине. Обнаружение носителя " +"может занять несколько секунд, поэтому следует набраться терпения." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:747 +msgid "" +"Sometimes, a SCSICD drive may be missed because it did not have enough time " +"to answer the bus reset. To resolve this, a custom kernel can be created " +"which increases the default SCSI delay. Add the following option to the " +"custom kernel configuration file and rebuild the kernel using the " +"instructions in crossref:kernelconfig[kernelconfig-building,“Building and " +"Installing a Custom Kernel”]:" +msgstr "" +"Иногда привод SCSICD может быть пропущен, потому что у него не хватило " +"времени ответить на сброс шины. Чтобы решить эту проблему, можно создать " +"пользовательское ядро с увеличенной задержкой SCSI по умолчанию. Добавьте " +"следующую опцию в конфигурационный файл собственного ядра и пересоберите " +"ядро, следуя инструкциям в crossref:kernelconfig[kernelconfig-" +"building,“Сборка и установка собственного ядра”]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:751 +#, no-wrap +msgid "options SCSI_DELAY=15000\n" +msgstr "options SCSI_DELAY=15000\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:754 +msgid "" +"This tells the SCSI bus to pause 15 seconds during boot, to give the CD " +"drive every possible chance to answer the bus reset." +msgstr "" +"Это указывает шине SCSI сделать паузу в 15 секунд во время загрузки, чтобы " +"дать CD-приводу максимальный шанс ответить на сброс шины." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:759 +msgid "" +"It is possible to burn a file directly to CD, without creating an ISO 9660 " +"file system. This is known as burning a raw data CD and some people do this " +"for backup purposes." +msgstr "" +"Возможно записать файл непосредственно на CD без создания файловой системы " +"ISO 9660. Это называется записью сырых данных на CD, и некоторые люди делают " +"это для целей резервного копирования." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:763 +msgid "" +"This type of disk can not be mounted as a normal data CD. In order to " +"retrieve the data burned to such a CD, the data must be read from the raw " +"device node. For example, this command will extract a compressed tar file " +"located on the second CD device into the current working directory:" +msgstr "" +"Такой диск нельзя смонтировать как обычный CD с данными. Чтобы извлечь " +"данные, записанные на такой диск, их необходимо прочитать непосредственно с " +"устройства. Например, следующая команда извлечёт сжатый tar-архив со второго " +"CD-устройства в текущую рабочую директорию:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:767 +#, no-wrap +msgid "# tar xzvf /dev/cd1\n" +msgstr "# tar xzvf /dev/cd1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:770 +msgid "In order to mount a data CD, the data must be written using `mkisofs`." +msgstr "" +"Для монтирования компакт-диска с данными они должны быть записаны с " +"использованием `mkisofs`." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:773 +#, no-wrap +msgid "Duplicating Audio CDs" +msgstr "Копирование аудио-CD" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:776 +msgid "" +"To duplicate an audio CD, extract the audio data from the CD to a series of " +"files, then write these files to a blank CD." +msgstr "" +"Для копирования аудио-CD извлеките аудиоданные с диска в виде набора файлов, " +"затем запишите эти файлы на чистый CD." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:780 +msgid "" +"crossref:disks[using-cdrecord, Duplicating an Audio CD] describes how to " +"duplicate and burn an audio CD. If the FreeBSD version is less than 10.0 " +"and the device is ATAPI, the `atapicam` module must be first loaded using " +"the instructions in crossref:disks[atapicam, Supported Devices]." +msgstr "" +"В crossref:disks[using-cdrecord, Копирование аудио-CD] описано, как " +"дублировать и записывать аудио-CD. Если версия FreeBSD меньше 10.0 и " +"устройство является ATAPI, необходимо сначала загрузить модуль `atapicam`, " +"следуя инструкциям в crossref:disks[atapicam, Поддерживаемые устройства]." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:783 +#, no-wrap +msgid "Procedure: Duplicating an Audio CD" +msgstr "Процедура: Копирование аудио-CD" + +#. type: .procedure +#: documentation/content/en/books/handbook/disks/_index.adoc:785 +msgid "" +"The package:sysutils/cdrtools[] package or port installs `cdda2wav`. This " +"command can be used to extract all of the audio tracks, with each track " +"written to a separate WAV file in the current working directory:" +msgstr "" +"Пакет или порт package:sysutils/cdrtools[] устанавливает `cdda2wav`. Эту " +"команду можно использовать для извлечения всех аудиодорожек, при этом каждая " +"дорожка записывается в отдельный WAV-файл в текущей рабочей директории:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:789 +#, no-wrap +msgid "% cdda2wav -vall -B -Owav\n" +msgstr "% cdda2wav -vall -B -Owav\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:793 +msgid "" +"A device name does not need to be specified if there is only one CD device " +"on the system. Refer to the `cdda2wav` manual page for instructions on how " +"to specify a device and to learn more about the other options available for " +"this command." +msgstr "" +"Имя устройства не нужно указывать, если в системе только одно устройство CD. " +"Обратитесь к руководству `cdda2wav` для получения инструкций по указанию " +"устройства и дополнительной информации о других параметрах этой команды." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:794 +msgid "Use `cdrecord` to write the [.filename]#.wav# files:" +msgstr "Используйте `cdrecord` для записи файлов [.filename]#.wav#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:798 +#, no-wrap +msgid "% cdrecord -v dev=2,0 -dao -useinfo *.wav\n" +msgstr "% cdrecord -v dev=2,0 -dao -useinfo *.wav\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:801 +msgid "" +"Make sure that _2,0_ is set appropriately, as described in " +"crossref:disks[cdrecord, Burning a CD]." +msgstr "" +"Убедитесь, что _2,0_ установлено правильно, как описано в " +"crossref:disks[cdrecord, Запись CD]." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:803 +#, no-wrap +msgid "Creating and Using DVD Media" +msgstr "Создание и использование DVD-носителей" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:807 +msgid "" +"Compared to the CD, the DVD is the next generation of optical media storage " +"technology. The DVD can hold more data than any CD and is the standard for " +"video publishing." +msgstr "" +"По сравнению с компакт-диском, DVD представляет собой следующее поколение " +"технологии хранения данных на оптических носителях. DVD может вмещать больше " +"данных, чем любой компакт-диск, и является стандартом для издания видео." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:809 +msgid "Five physical recordable formats can be defined for a recordable DVD:" +msgstr "" +"Для записываемого DVD можно определить пять физических форматов записи:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:811 +msgid "" +"DVD-R: This was the first DVD recordable format available. The DVD-R " +"standard is defined by the http://www.dvdforum.org/forum.shtml[DVD Forum]. " +"This format is write once." +msgstr "" +"DVD-R: Это первый доступный формат записываемых DVD. Стандарт DVD-R " +"определен http://www.dvdforum.org/forum.shtml[DVD Forum]. Этот формат " +"поддерживает однократную запись." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:812 +msgid "" +"DVD-RW: This is the rewritable version of the DVD-R standard. A DVD-RW can " +"be rewritten about 1000 times." +msgstr "" +"DVD-RW: Это перезаписываемая версия стандарта DVD-R. DVD-RW можно " +"перезаписывать около 1000 раз." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:816 +msgid "" +"DVD-RAM: This is a rewritable format which can be seen as a removable hard " +"drive. However, this media is not compatible with most DVD-ROM drives and " +"DVD-Video players as only a few DVD writers support the DVD-RAM format. " +"Refer to crossref:disks[creating-dvd-ram, Using a DVD-RAM] for more " +"information on DVD-RAM use." +msgstr "" +"DVD-RAM: Это перезаписываемый формат, который можно рассматривать как " +"съемный жесткий диск. Однако, этот носитель не совместим с большинством " +"приводов DVD-ROM и DVD-видеоплееров, так как лишь немногие DVD-рекордеры " +"поддерживают формат DVD-RAM. Дополнительную информацию об использовании DVD-" +"RAM см. в crossref:disks[creating-dvd-ram, Использование DVD-RAM]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:817 +msgid "" +"DVD+RW: This is a rewritable format defined by the https://en.wikipedia.org/" +"wiki/DVD%2BRW_Alliance[DVD+RW Alliance]. A DVD+RW can be rewritten about " +"1000 times." +msgstr "" +"DVD+RW: Это перезаписываемый формат, определенный https://en.wikipedia.org/" +"wiki/DVD%2BRW_Alliance[альянсом DVD+RW Alliance]. DVD+RW можно " +"перезаписывать около 1000 раз." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:818 +msgid "DVD+R: This format is the write once variation of the DVD+RW format." +msgstr "" +"DVD+R: Этот формат является однократно записываемой разновидностью формата " +"DVD+RW." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:820 +msgid "" +"A single layer recordable DVD can hold up to 4,700,000,000 bytes which is " +"actually 4.38 GB or 4485 MB as 1 kilobyte is 1024 bytes." +msgstr "" +"Однослойный записываемый DVD может вместить до 4 700 000 000 байт, что " +"фактически составляет 4,38 ГБ или 4485 МБ, так как 1 килобайт равен 1024 " +"байтам." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:826 +msgid "" +"A distinction must be made between the physical media and the application. " +"For example, a DVD-Video is a specific file layout that can be written on " +"any recordable DVD physical media such as DVD-R, DVD+R, or DVD-RW. Before " +"choosing the type of media, ensure that both the burner and the DVD-Video " +"player are compatible with the media under consideration." +msgstr "" +"Необходимо различать физический носитель и приложение. Например, DVD-Video — " +"это определённая структура файлов, которую можно записать на любой " +"перезаписываемый DVD-носитель, такой как DVD-R, DVD+R или DVD-RW. Перед " +"выбором типа носителя убедитесь, что и записывающее устройство, и " +"проигрыватель DVD-Video поддерживают рассматриваемый носитель." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:828 +#, no-wrap +msgid "Configuration" +msgstr "Конфигурация" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:832 +msgid "" +"To perform DVD recording, use man:growisofs[1]. This command is part of the " +"package:sysutils/dvd+rw-tools[] utilities which support all DVD media types." +msgstr "" +"Для записи DVD используйте man:growisofs[1]. Эта команда входит в набор " +"утилит package:sysutils/dvd+rw-tools[], которые поддерживают все типы DVD-" +"носителей." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:837 +msgid "" +"These tools use the SCSI subsystem to access the devices, therefore " +"crossref:disks[atapicam,ATAPI/CAM support] must be loaded or statically " +"compiled into the kernel. This support is not needed if the burner uses the " +"USB interface. Refer to crossref:disks[usb-disks, USB Storage Devices] for " +"more details on USB device configuration." +msgstr "" +"Эти инструменты используют подсистему SCSI для доступа к устройствам, " +"поэтому поддержка crossref:disks[atapicam,ATAPI/CAM] должна быть загружена " +"или статически собрана в ядре. Эта поддержка не требуется, если устройство " +"записи использует интерфейс USB. Подробнее о настройке USB-устройств см. в " +"разделе crossref:disks[usb-disks,USB-накопители]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:839 +msgid "" +"DMA access must also be enabled for ATAPI devices, by adding the following " +"line to [.filename]#/boot/loader.conf#:" +msgstr "" +"Доступ DMA также должен быть включен для устройств ATAPI, добавив следующую " +"строку в [.filename]#/boot/loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:843 +#: documentation/content/en/books/handbook/disks/_index.adoc:1076 +#, no-wrap +msgid "hw.ata.atapi_dma=\"1\"\n" +msgstr "hw.ata.atapi_dma=\"1\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:846 +msgid "" +"Before attempting to use dvd+rw-tools, consult the http://fy.chalmers.se/" +"~appro/linux/DVD+RW/hcn.html[Hardware Compatibility Notes]." +msgstr "" +"Перед попыткой использования dvd+rw-tools ознакомьтесь с http://" +"fy.chalmers.se/~appro/linux/DVD+RW/hcn.html[примечаниями о совместимости " +"оборудования]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:850 +msgid "" +"For a graphical user interface, consider using package:sysutils/k3b[] which " +"provides a user friendly interface to man:growisofs[1] and many other " +"burning tools." +msgstr "" +"Для графического интерфейса можно использовать пакет package:sysutils/k3b[], " +"который предоставляет удобный интерфейс к man:growisofs[1] и многим другим " +"инструментам записи." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:852 +#, no-wrap +msgid "Burning Data DVDs" +msgstr "Запись данных на DVD" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:856 +msgid "" +"Since man:growisofs[1] is a front-end to crossref:disks[mkisofs,mkisofs], it " +"will invoke man:mkisofs[8] to create the file system layout and perform the " +"write on the DVD. This means that an image of the data does not need to be " +"created before the burning process." +msgstr "" +"Поскольку man:growisofs[1] является интерфейсом для " +"crossref:disks[mkisofs,mkisofs], он вызывает man:mkisofs[8] для создания " +"структуры файловой системы и записи на DVD. Это означает, что нет " +"необходимости создавать образ данных перед процессом записи." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:858 +msgid "" +"To burn to a DVD+R or a DVD-R the data in [.filename]#/path/to/data#, use " +"the following command:" +msgstr "" +"Для записи данных из [.filename]#/path/to/data# на DVD+R или DVD-R " +"используйте следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:862 +#, no-wrap +msgid "# growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data\n" +msgstr "# growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:866 +msgid "" +"In this example, `-J -R` is passed to man:mkisofs[8] to create an ISO 9660 " +"file system with Joliet and Rock Ridge extensions. Refer to man:mkisofs[8] " +"for more details." +msgstr "" +"В этом примере `-J -R` передаются в man:mkisofs[8] для создания файловой " +"системы ISO 9660 с расширениями Joliet и Rock Ridge. Подробности см. в " +"man:mkisofs[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:871 +msgid "" +"For the initial session recording, `-Z` is used for both single and multiple " +"sessions. Replace _/dev/cd0_, with the name of the DVD device. Using `-dvd-" +"compat` indicates that the disk will be closed and that the recording will " +"be unappendable. This should also provide better media compatibility with " +"DVD-ROM drives." +msgstr "" +"Для начальной записи сессии используется параметр `-Z` как для одиночных, " +"так и для множественных сессий. Замените _/dev/cd0_ на имя устройства DVD. " +"Использование `-dvd-compat` указывает, что диск будет закрыт и запись нельзя " +"будет дополнять. Это также обеспечивает лучшую совместимость носителя с " +"приводами DVD-ROM." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:873 +msgid "To burn a pre-mastered image, such as _imagefile.iso_, use:" +msgstr "" +"Для записи предварительно созданного образа, например _imagefile.iso_, " +"используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:877 +#, no-wrap +msgid "# growisofs -dvd-compat -Z /dev/cd0=imagefile.iso\n" +msgstr "# growisofs -dvd-compat -Z /dev/cd0=imagefile.iso\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:881 +msgid "" +"The write speed should be detected and automatically set according to the " +"media and the drive being used. To force the write speed, use `-speed=`. " +"Refer to man:growisofs[1] for example usage." +msgstr "" +"Скорость записи должна определяться и автоматически устанавливаться в " +"зависимости от носителя и используемого привода. Для принудительного задания " +"скорости записи используйте `-speed=`. Примеры использования см. в " +"man:growisofs[1]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:888 +msgid "" +"In order to support working files larger than 4.38GB, an UDF/ISO-9660 hybrid " +"file system must be created by passing `-udf -iso-level 3` to man:mkisofs[8] " +"and all related programs, such as man:growisofs[1]. This is required only " +"when creating an ISO image file or when writing files directly to a disk. " +"Since a disk created this way must be mounted as an UDF file system with " +"man:mount_udf[8], it will be usable only on an UDF aware operating system. " +"Otherwise it will look as if it contains corrupted files." +msgstr "" +"Для поддержки файлов размером более 4,38 ГБ необходимо создать гибридную " +"файловую систему UDF/ISO-9660, передав параметры `-udf -iso-level 3` в " +"man:mkisofs[8] и все связанные программы, например man:growisofs[1]. Это " +"требуется только при создании ISO-образа или записи файлов непосредственно " +"на диск. Поскольку диск, созданный таким образом, должен монтироваться как " +"файловая система UDF с помощью man:mount_udf[8], он будет доступен только в " +"операционных системах с поддержкой UDF. В противном случае файлы на диске " +"будут выглядеть повреждёнными." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:890 +msgid "To create this type of ISO file:" +msgstr "Чтобы создать ISO-файл такого типа:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:894 +#, no-wrap +msgid "% mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data\n" +msgstr "% mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:897 +msgid "To burn files directly to a disk:" +msgstr "Для записи файлов непосредственно на диск:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:901 +#, no-wrap +msgid "# growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data\n" +msgstr "# growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:904 +msgid "" +"When an ISO image already contains large files, no additional options are " +"required for man:growisofs[1] to burn that image on a disk." +msgstr "" +"Когда ISO-образ уже содержит большие файлы, для записи этого образа на диск " +"с помощью `growisofs` не требуется дополнительных параметров." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:907 +msgid "" +"Be sure to use an up-to-date version of package:sysutils/cdrtools[], which " +"contains man:mkisofs[8], as an older version may not contain large files " +"support. If the latest version does not work, install package:sysutils/" +"cdrtools-devel[] and read its man:mkisofs[8]." +msgstr "" +"Убедитесь, что используется актуальная версия package:sysutils/cdrtools[], " +"которая содержит man:mkisofs[8], так как более старая версия может не " +"поддерживать большие файлы. Если последняя версия не работает, установите " +"package:sysutils/cdrtools-devel[] и ознакомьтесь с его man:mkisofs[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:909 +#, no-wrap +msgid "Burning a DVD-Video" +msgstr "Запись DVD-Video" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:913 +msgid "" +"A DVD-Video is a specific file layout based on the ISO 9660 and micro-UDF (M-" +"UDF) specifications. Since DVD-Video presents a specific data structure " +"hierarchy, a particular program such as package:multimedia/dvdauthor[] is " +"needed to author the DVD." +msgstr "" +"DVD-Video — это определённая структура файлов, основанная на спецификациях " +"ISO 9660 и микро-UDF (M-UDF). Поскольку DVD-Video представляет собой " +"конкретную иерархию структуры данных, для создания DVD требуется специальная " +"программа, например package:multimedia/dvdauthor[]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:916 +msgid "" +"If an image of the DVD-Video file system already exists, it can be burned in " +"the same way as any other image. If `dvdauthor` was used to make the DVD " +"and the result is in [.filename]#/path/to/video#, the following command " +"should be used to burn the DVD-Video:" +msgstr "" +"Если уже существует образ файловой системы DVD-Video, его можно записать так " +"же, как и любой другой образ. Если для создания DVD использовался " +"`dvdauthor` и результат находится в [.filename]#/path/to/video#, то для " +"записи DVD-Video следует использовать следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:920 +#, no-wrap +msgid "# growisofs -Z /dev/cd0 -dvd-video /path/to/video\n" +msgstr "# growisofs -Z /dev/cd0 -dvd-video /path/to/video\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:924 +msgid "" +"`-dvd-video` is passed to man:mkisofs[8] to instruct it to create a DVD-" +"Video file system layout. This option implies the `-dvd-compat` " +"man:growisofs[1] option." +msgstr "" +"`-dvd-video` передается в man:mkisofs[8], чтобы указать создать файловую " +"систему в формате DVD-Video. Эта опция подразумевает использование опции `-" +"dvd-compat` man:growisofs[1]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:925 +#, no-wrap +msgid "Using a DVD+RW" +msgstr "Использование DVD+RW" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:930 +msgid "" +"Unlike CD-RW, a virgin DVD+RW needs to be formatted before first use. It is " +"_recommended_ to let man:growisofs[1] take care of this automatically " +"whenever appropriate. However, it is possible to use `dvd+rw-format` to " +"format the DVD+RW:" +msgstr "" +"В отличие от CD-RW, новая DVD+RW требует форматирования перед первым " +"использованием. _Рекомендуется_ позволить man:growisofs[1] автоматически " +"выполнить это, когда это уместно. Однако можно использовать `dvd+rw-format` " +"для форматирования DVD+RW:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:934 +#: documentation/content/en/books/handbook/disks/_index.adoc:1024 +#, no-wrap +msgid "# dvd+rw-format /dev/cd0\n" +msgstr "# dvd+rw-format /dev/cd0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:938 +msgid "" +"Only perform this operation once and keep in mind that only virgin DVD+RW " +"medias need to be formatted. Once formatted, the DVD+RW can be burned as " +"usual." +msgstr "" +"Выполняйте эту операцию только один раз и помните, что форматировать нужно " +"только чистые носители DVD+RW. После форматирования DVD+RW можно записывать " +"как обычно." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:941 +msgid "" +"To burn a totally new file system and not just append some data onto a " +"DVD+RW, the media does not need to be blanked first. Instead, write over " +"the previous recording like this:" +msgstr "" +"Для записи совершенно новой файловой системы, а не просто добавления данных " +"на DVD+RW, не требуется предварительно очищать носитель. Вместо этого можно " +"перезаписать предыдущую запись следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:945 +#, no-wrap +msgid "# growisofs -Z /dev/cd0 -J -R /path/to/newdata\n" +msgstr "# growisofs -Z /dev/cd0 -J -R /path/to/newdata\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:950 +msgid "" +"The DVD+RW format supports appending data to a previous recording. This " +"operation consists of merging a new session to the existing one as it is not " +"considered to be multi-session writing. man:growisofs[1] will _grow_ the " +"ISO 9660 file system present on the media." +msgstr "" +"Формат DVD+RW поддерживает добавление данных к предыдущей записи. Эта " +"операция заключается в объединении нового сеанса с существующим, так как это " +"не считается многосессионной записью. man:growisofs[1] будет _расширять_ " +"файловую систему ISO 9660, присутствующую на носителе." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:952 +msgid "For example, to append data to a DVD+RW, use the following:" +msgstr "" +"Например, чтобы добавить данные на DVD+RW, используйте следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:956 +#: documentation/content/en/books/handbook/disks/_index.adoc:1044 +#, no-wrap +msgid "# growisofs -M /dev/cd0 -J -R /path/to/nextdata\n" +msgstr "# growisofs -M /dev/cd0 -J -R /path/to/nextdata\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:959 +msgid "" +"The same man:mkisofs[8] options used to burn the initial session should be " +"used during next writes." +msgstr "" +"Те же параметры `man:mkisofs[8]`, которые использовались для записи " +"начальной сессии, следует применять при последующих записях." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:964 +msgid "" +"Use `-dvd-compat` for better media compatibility with DVD-ROM drives. When " +"using DVD+RW, this option will not prevent the addition of data." +msgstr "" +"Используйте `-dvd-compat` для лучшей совместимости носителя с приводами DVD-" +"ROM. При использовании DVD+RW эта опция не предотвращает добавление данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:967 +msgid "To blank the media, use:" +msgstr "Для очистки диска запустите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:971 +#, no-wrap +msgid "# growisofs -Z /dev/cd0=/dev/zero\n" +msgstr "# growisofs -Z /dev/cd0=/dev/zero\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:973 +#, no-wrap +msgid "Using a DVD-RW" +msgstr "Использование DVD-RW" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:977 +msgid "" +"A DVD-RW accepts two disc formats: incremental sequential and restricted " +"overwrite. By default, DVD-RW discs are in sequential format." +msgstr "" +"DVD-RW поддерживает два формата дисков: инкрементальный последовательный и с " +"ограниченной перезаписью. По умолчанию диски DVD-RW имеют последовательный " +"формат." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:980 +msgid "" +"A virgin DVD-RW can be directly written without being formatted. However, a " +"non-virgin DVD-RW in sequential format needs to be blanked before writing a " +"new initial session." +msgstr "" +"Чистый DVD-RW можно записывать напрямую без форматирования. Однако DVD-RW в " +"последовательном формате, который уже использовался, необходимо очистить " +"перед записью нового начального сеанса." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:982 +msgid "To blank a DVD-RW in sequential mode:" +msgstr "Для очистки DVD-RW в последовательном режиме:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:986 +#: documentation/content/en/books/handbook/disks/_index.adoc:1031 +#, no-wrap +msgid "# dvd+rw-format -blank=full /dev/cd0\n" +msgstr "# dvd+rw-format -blank=full /dev/cd0\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:993 +msgid "" +"A full blanking using `-blank=full` will take about one hour on a 1x media. " +"A fast blanking can be performed using `-blank`, if the DVD-RW will be " +"recorded in Disk-At-Once (DAO) mode. To burn the DVD-RW in DAO mode, use " +"the command:" +msgstr "" +"Полное стирание с использованием `-blank=full` займет около одного часа для " +"однократной записи (1x). Быстрое стирание можно выполнить с помощью `-" +"blank`, если DVD-RW будет записываться в режиме Disk-At-Once (DAO). Для " +"записи DVD-RW в режиме DAO используйте команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:997 +#, no-wrap +msgid "# growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso\n" +msgstr "# growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1000 +msgid "" +"Since man:growisofs[1] automatically attempts to detect fast blanked media " +"and engage DAO write, `-use-the-force-luke=dao` should not be required." +msgstr "" +"Поскольку man:growisofs[1] автоматически определяет быстро очищенные " +"носители и использует запись DAO, параметр `-use-the-force-luke=dao` не " +"требуется." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1002 +msgid "" +"One should instead use restricted overwrite mode with any DVD-RW as this " +"format is more flexible than the default of incremental sequential." +msgstr "" +"Следует использовать режим ограниченной перезаписи для любых DVD-RW, так как " +"этот формат более гибкий по сравнению со стандартным инкрементным " +"последовательным." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1005 +msgid "" +"To write data on a sequential DVD-RW, use the same instructions as for the " +"other DVD formats:" +msgstr "" +"Для записи данных на последовательную DVD-RW используйте те же инструкции, " +"что и для других форматов DVD:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1009 +#, no-wrap +msgid "# growisofs -Z /dev/cd0 -J -R /path/to/data\n" +msgstr "# growisofs -Z /dev/cd0 -J -R /path/to/data\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1013 +msgid "" +"To append some data to a previous recording, use `-M` with " +"man:growisofs[1]. However, if data is appended on a DVD-RW in incremental " +"sequential mode, a new session will be created on the disc and the result " +"will be a multi-session disc." +msgstr "" +"Чтобы добавить данные к предыдущей записи, используйте `-M` с " +"man:growisofs[1]. Однако если данные добавляются на DVD-RW в инкрементальном " +"последовательном режиме, на диске будет создана новая сессия, и в результате " +"получится многосессионный диск." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1018 +msgid "" +"A DVD-RW in restricted overwrite format does not need to be blanked before a " +"new initial session. Instead, overwrite the disc with `-Z`. It is also " +"possible to grow an existing ISO 9660 file system written on the disc with `-" +"M`. The result will be a one-session DVD." +msgstr "" +"DVD-RW в формате с ограниченной перезаписью не требует очистки перед " +"созданием новой начальной сессии. Вместо этого перезапишите диск с помощью `-" +"Z`. Также можно расширить существующую файловую систему ISO 9660, записанную " +"на диск, с помощью `-M`. Результатом будет односессионный DVD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1020 +msgid "" +"To put a DVD-RW in restricted overwrite format, the following command must " +"be used:" +msgstr "" +"Чтобы перевести DVD-RW в формат ограниченной перезаписи, необходимо " +"использовать следующую команду:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1027 +msgid "To change back to sequential format, use:" +msgstr "Для возврата к последовательному формату используйте:" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1033 +#, no-wrap +msgid "Multi-Session" +msgstr "Многосеансовые диски" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1038 +msgid "" +"Few DVD-ROM drives support multi-session DVDs and most of the time only read " +"the first session. DVD+R, DVD-R and DVD-RW in sequential format can accept " +"multiple sessions. The notion of multiple sessions does not exist for the " +"DVD+RW and the DVD-RW restricted overwrite formats." +msgstr "" +"Немногие приводы DVD-ROM поддерживают многосеансовые DVD и в большинстве " +"случаев читают только первый сеанс. DVD+R, DVD-R и DVD-RW в последовательном " +"формате могут поддерживать несколько сеансов. Понятие множественных сеансов " +"отсутствует для форматов DVD+RW и DVD-RW с ограниченной перезаписью." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1040 +msgid "" +"Using the following command after an initial non-closed session on a DVD+R, " +"DVD-R, or DVD-RW in sequential format, will add a new session to the disc:" +msgstr "" +"Используя следующую команду после начального незакрытого сеанса на DVD+R, " +"DVD-R или DVD-RW в последовательном формате, можно добавить новый сеанс на " +"диск:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1049 +msgid "" +"Using this command with a DVD+RW or a DVD-RW in restricted overwrite mode " +"will append data while merging the new session to the existing one. The " +"result will be a single-session disc. Use this method to add data after an " +"initial write on these types of media." +msgstr "" +"Использование этой команды с DVD+RW или DVD-RW в режиме ограниченной " +"перезаписи приведет к добавлению данных с объединением нового сеанса с " +"существующим. В результате получится диск с одним сеансом. Используйте этот " +"метод для добавления данных после первоначальной записи на таких типах " +"носителей." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1054 +msgid "" +"Since some space on the media is used between each session to mark the end " +"and start of sessions, one should add sessions with a large amount of data " +"to optimize media space. The number of sessions is limited to 154 for a " +"DVD+R, about 2000 for a DVD-R, and 127 for a DVD+R Double Layer." +msgstr "" +"Поскольку некоторое пространство на носителе используется между каждым " +"сеансом для отметки конца и начала сеансов, следует добавлять сеансы с " +"большим объемом данных для оптимизации пространства на носителе. Количество " +"сеансов ограничено 154 для DVD+R, около 2000 для DVD-R и 127 для DVD+R " +"Double Layer." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1056 +#, no-wrap +msgid "For More Information" +msgstr "Для получения дополнительной информации" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1059 +msgid "" +"To obtain more information about a DVD, use `dvd+rw-mediainfo _/dev/cd0_` " +"while the disc in the specified drive." +msgstr "" +"Для получения дополнительной информации о DVD используйте команду `dvd+rw-" +"mediainfo _/dev/cd0_`, когда диск находится в указанном приводе." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1061 +msgid "" +"More information about dvd+rw-tools can be found in man:growisofs[1], on the " +"http://fy.chalmers.se/~appro/linux/DVD+RW/[dvd+rw-tools web site], and in " +"the http://lists.debian.org/cdwrite/[cdwrite mailing list] archives." +msgstr "" +"Дополнительная информация о dvd+rw-tools доступна в man:growisofs[1], на " +"http://fy.chalmers.se/~appro/linux/DVD+RW/[веб-сайте dvd+rw-tools] и в " +"архивах http://lists.debian.org/cdwrite/[почтовой рассылки cdwrite]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1065 +msgid "" +"When creating a problem report related to the use of dvd+rw-tools, always " +"include the output of `dvd+rw-mediainfo`." +msgstr "" +"При создании отчёта о проблеме, связанной с использованием dvd+rw-tools, " +"всегда прилагайте вывод команды `dvd+rw-mediainfo`." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1068 +#, no-wrap +msgid "Using a DVD-RAM" +msgstr "Использование DVD-RAM" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1072 +msgid "" +"DVD-RAM writers can use either a SCSI or ATAPI interface. For ATAPI " +"devices, DMA access has to be enabled by adding the following line to " +"[.filename]#/boot/loader.conf#:" +msgstr "" +"Записывающие устройства DVD-RAM могут использовать интерфейс SCSI или ATAPI. " +"Для устройств ATAPI необходимо включить доступ DMA, добавив следующую строку " +"в [.filename]#/boot/loader.conf#:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1081 +msgid "" +"A DVD-RAM can be seen as a removable hard drive. Like any other hard drive, " +"the DVD-RAM must be formatted before it can be used. In this example, the " +"whole disk space will be formatted with a standard UFS2 file system:" +msgstr "" +"DVD-RAM можно рассматривать как съемный жесткий диск. Как и любой другой " +"жесткий диск, DVD-RAM необходимо отформатировать перед использованием. В " +"этом примере все дисковое пространство будет отформатировано под стандартную " +"файловую систему UFS2:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1087 +#, no-wrap +msgid "" +"# dd if=/dev/zero of=/dev/acd0 bs=2k count=1\n" +"# bsdlabel -Bw acd0\n" +"# newfs /dev/acd0\n" +msgstr "" +"# dd if=/dev/zero of=/dev/acd0 bs=2k count=1\n" +"# bsdlabel -Bw acd0\n" +"# newfs /dev/acd0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1090 +msgid "" +"The DVD device, [.filename]#acd0#, must be changed according to the " +"configuration." +msgstr "" +"Устройство DVD, [.filename]#acd0#, должно быть изменено в соответствии с " +"конфигурацией." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1092 +msgid "" +"Once the DVD-RAM has been formatted, it can be mounted as a normal hard " +"drive:" +msgstr "" +"После форматирования DVD-RAM его можно подключить как обычный жесткий диск:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1096 +#, no-wrap +msgid "# mount /dev/acd0 /mnt\n" +msgstr "# mount /dev/acd0 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1099 +msgid "Once mounted, the DVD-RAM will be both readable and writeable." +msgstr "" +"После монтирования DVD-RAM будет доступен как для чтения, так и для записи." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1101 +#, no-wrap +msgid "Creating and Using Floppy Disks" +msgstr "Создание и использование дискет" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1104 +msgid "This section explains how to format a 3.5 inch floppy disk in FreeBSD." +msgstr "" +"Этот раздел объясняет, как отформатировать 3,5-дюймовую дискету в FreeBSD." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1108 +#, fuzzy +#| msgid "*Procedure: Steps to Format a Floppy*\n" +msgid "*Procedure: Steps to Format a Floppy*" +msgstr "*Процедура: Шаги для форматирования дискеты*\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1113 +msgid "" +"A floppy disk needs to be low-level formatted before it can be used. This " +"is usually done by the vendor, but formatting is a good way to check media " +"integrity. To low-level format the floppy disk on FreeBSD, use " +"man:fdformat[1]. When using this utility, make note of any error messages, " +"as these can help determine if the disk is good or bad." +msgstr "" +"Дискету необходимо отформатировать на низком уровне перед использованием. " +"Обычно это делается производителем, но форматирование — хороший способ " +"проверить целостность носителя. Для низкоуровневого форматирования дискеты в " +"FreeBSD используйте man:fdformat[1]. При работе с этой утилитой обратите " +"внимание на сообщения об ошибках, так как они помогают определить, исправен " +"диск или нет." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1115 +msgid "" +"To format the floppy, insert a new 3.5 inch floppy disk into the first " +"floppy drive and issue:" +msgstr "" +"Для форматирования дискеты вставьте новую дискету размером 3,5 дюйма в " +"первый дисковод и выполните команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1119 +#, no-wrap +msgid "# /usr/sbin/fdformat -f 1440 /dev/fd0\n" +msgstr "# /usr/sbin/fdformat -f 1440 /dev/fd0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1122 +msgid "" +"After low-level formatting the disk, create a disk label as it is needed by " +"the system to determine the size of the disk and its geometry. The supported " +"geometry values are listed in [.filename]#/etc/disktab#." +msgstr "" +"После низкоуровневого форматирования диска создайте метку диска, так как она " +"необходима системе для определения размера диска и его геометрии. " +"Поддерживаемые значения геометрии перечислены в [.filename]#/etc/disktab#." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1124 +msgid "To write the disk label, use man:bsdlabel[8]:" +msgstr "Для записи метки диска используйте man:bsdlabel[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1128 +#, no-wrap +msgid "# /sbin/bsdlabel -B -w /dev/fd0 fd1440\n" +msgstr "# /sbin/bsdlabel -B -w /dev/fd0 fd1440\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1131 +msgid "" +"The floppy is now ready to be high-level formatted with a file system. The " +"floppy's file system can be either UFS or FAT, where FAT is generally a " +"better choice for floppies." +msgstr "" +"Дискета теперь готова для высокоуровневого форматирования с файловой " +"системой. Файловая система дискеты может быть UFS или FAT, причём FAT, как " +"правило, является лучшим выбором для дискет." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1133 +msgid "To format the floppy with FAT, issue:" +msgstr "Чтобы отформатировать дискету в FAT, выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1137 +#, no-wrap +msgid "# /sbin/newfs_msdos /dev/fd0\n" +msgstr "# /sbin/newfs_msdos /dev/fd0\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1143 +msgid "" +"The disk is now ready for use. To use the floppy, mount it with " +"man:mount_msdosfs[8]. One can also install and use package:emulators/" +"mtools[] from the Ports Collection." +msgstr "" +"Диск готов к использованию. Чтобы использовать дискету, смонтируйте её с " +"помощью man:mount_msdosfs[8]. Также можно установить и использовать " +"package:emulators/mtools[] из Коллекции портов." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1145 +#, no-wrap +msgid "Backup Basics" +msgstr "Основы резервного копирования" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1148 +msgid "" +"Implementing a backup plan is essential in order to have the ability to " +"recover from disk failure, accidental file deletion, random file corruption, " +"or complete machine destruction, including destruction of on-site backups." +msgstr "" +"Реализация плана резервного копирования необходима для возможности " +"восстановления после выхода диска из строя, случайного удаления файлов, " +"повреждения данных или полного уничтожения машины, включая уничтожение " +"локальных резервных копий." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1151 +msgid "" +"The backup type and schedule will vary, depending upon the importance of the " +"data, the granularity needed for file restores, and the amount of acceptable " +"downtime. Some possible backup techniques include:" +msgstr "" +"Тип резервного копирования и его расписание будут варьироваться в " +"зависимости от важности данных, необходимой детализации для восстановления " +"файлов и допустимого времени простоя. Некоторые возможные методы резервного " +"копирования включают:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1153 +msgid "" +"Archives of the whole system, backed up onto permanent, off-site media. This " +"provides protection against all of the problems listed above, but is slow " +"and inconvenient to restore from, especially for non-privileged users." +msgstr "" +"Архивы всей системы, сохраненные на постоянных носителях вне площадки. Это " +"обеспечивает защиту от всех перечисленных выше проблем, но восстановление " +"происходит медленно и неудобно, особенно для непривилегированных " +"пользователей." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1154 +msgid "" +"File system snapshots, which are useful for restoring deleted files or " +"previous versions of files." +msgstr "" +"Снимки файловой системы, полезные для восстановления удалённых файлов или " +"предыдущих версий файлов." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1155 +msgid "" +"Copies of whole file systems or disks which are synchronized with another " +"system on the network using a scheduled package:net/rsync[]." +msgstr "" +"Копии целых файловых систем или дисков, которые синхронизируются с другой " +"системой в сети с использованием запланированного пакета:package:net/rsync[]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1156 +msgid "" +"Hardware or software RAID, which minimizes or avoids downtime when a disk " +"fails." +msgstr "" +"Аппаратный или программный RAID, который минимизирует или исключает простои " +"при отказе диска." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1160 +msgid "" +"Typically, a mix of backup techniques is used. For example, one could " +"create a schedule to automate a weekly, full system backup that is stored " +"off-site and to supplement this backup with hourly ZFS snapshots. In " +"addition, one could make a manual backup of individual directories or files " +"before making file edits or deletions." +msgstr "" +"Обычно используется комбинация методов резервного копирования. Например, " +"можно создать расписание для автоматического еженедельного полного " +"резервного копирования системы, которое хранится за пределами основной " +"площадки, и дополнить его ежечасными снимками ZFS. Кроме того, можно вручную " +"создавать резервные копии отдельных каталогов или файлов перед их " +"редактированием или удалением." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1162 +msgid "" +"This section describes some of the utilities which can be used to create and " +"manage backups on a FreeBSD system." +msgstr "" +"В этом разделе описаны некоторые утилиты, которые можно использовать для " +"создания резервных копий и управления ими в системе FreeBSD." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1163 +#, no-wrap +msgid "File System Backups" +msgstr "Резервное копирование файловой системы" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1169 +msgid "" +"The traditional UNIX(R) programs for backing up a file system are " +"man:dump[8], which creates the backup, and man:restore[8], which restores " +"the backup. These utilities work at the disk block level, below the " +"abstractions of the files, links, and directories that are created by file " +"systems. Unlike other backup software, `dump` backs up an entire file " +"system and is unable to backup only part of a file system or a directory " +"tree that spans multiple file systems. Instead of writing files and " +"directories, `dump` writes the raw data blocks that comprise files and " +"directories." +msgstr "" +"Традиционные программы UNIX(R) для резервного копирования файловой системы — " +"это man:dump[8], который создаёт резервную копию, и man:restore[8], который " +"восстанавливает данные из резервной копии. Эти утилиты работают на уровне " +"блоков диска, ниже абстракций файлов, ссылок и каталогов, создаваемых " +"файловыми системами. В отличие от другого программного обеспечения для " +"резервного копирования, `dump` создаёт резервную копию всей файловой системы " +"и не может сохранить только часть файловой системы или дерево каталогов, " +"расположенное на нескольких файловых системах. Вместо записи файлов и " +"каталогов `dump` записывает непосредственно блоки данных, из которых состоят " +"файлы и каталоги." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1173 +msgid "" +"If `dump` is used on the root directory, it will not back up [.filename]#/" +"home#, [.filename]#/usr#, or many other directories since these are " +"typically mount points for other file systems or symbolic links into those " +"file systems." +msgstr "" +"Если `dump` используется для корневого каталога, он не будет создавать " +"резервные копии для [.filename]#/home#, [.filename]#/usr# и многих других " +"каталогов, так как обычно они являются точками монтирования других файловых " +"систем или символическими ссылками на них." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1177 +msgid "" +"When used to restore data, `restore` stores temporary files in [.filename]#/" +"tmp/# by default. When using a recovery disk with a small [.filename]#/" +"tmp#, set `TMPDIR` to a directory with more free space for the restore to " +"succeed." +msgstr "" +"При восстановлении данных `restore` по умолчанию сохраняет временные файлы в " +"[.filename]#/tmp/#. Если используется диск восстановления с малым объемом " +"[.filename]#/tmp#, следует установить переменную `TMPDIR` в каталог с " +"большим свободным пространством для успешного выполнения восстановления." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1181 +msgid "" +"When using `dump`, be aware that some quirks remain from its early days in " +"Version 6 of AT&T UNIX(R),circa 1975. The default parameters assume a " +"backup to a 9-track tape, rather than to another type of media or to the " +"high-density tapes available today. These defaults must be overridden on " +"the command line." +msgstr "" +"При использовании `dump` следует учитывать, что некоторые особенности " +"остались с ранних времен версии 6 AT&T UNIX(R), примерно 1975 года. " +"Параметры по умолчанию предполагают резервное копирование на 9-дорожечную " +"магнитную ленту, а не на другой тип носителя или на современные " +"высокоплотные ленты. Эти значения по умолчанию необходимо переопределять в " +"командной строке." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1184 +msgid "" +"It is possible to backup a file system across the network to another system " +"or a tape drive attached to another computer. While the man:rdump[8] and " +"man:rrestore[8] utilities can be used for this purpose, they are not " +"considered to be secure." +msgstr "" +"Возможно выполнить резервное копирование файловой системы через сеть на " +"другую систему или на ленточный накопитель, подключенный к другому " +"компьютеру. Хотя для этого можно использовать утилиты man:rdump[8] и " +"man:rrestore[8], они не считаются безопасными." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1187 +msgid "" +"Instead, one can use `dump` and `restore` more securely over an SSH " +"connection. This example creates a full, compressed backup of [.filename]#/" +"usr# and sends the backup file to the specified host over an SSH connection." +msgstr "" +"Вместо этого можно более безопасно использовать `dump` и `restore` через SSH-" +"соединение. Этот пример создает полную сжатую резервную копию [.filename]#/" +"usr# и отправляет её на указанный хост через SSH-соединение." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1188 +#, no-wrap +msgid "Using `dump` over ssh" +msgstr "Использование `dump` через ssh" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1195 +#, no-wrap +msgid "" +"# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \\\n" +" targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz\n" +msgstr "" +"# /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \\\n" +" targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1199 +msgid "" +"This example sets `RSH` in order to write the backup to a tape drive on a " +"remote system over an SSH connection:" +msgstr "" +"Этот пример устанавливает переменную окружения `RSH` для записи резервной " +"копии на ленточный накопитель в удалённой системе через SSH-соединение:" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1200 +#, no-wrap +msgid "Using `dump` over ssh with `RSH` Set" +msgstr "Использование `dump` через ssh с установленной переменной `RSH`" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1206 +#, no-wrap +msgid "# env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr\n" +msgstr "# env RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1212 +msgid "" +"Systems using the crossref:zfs[,Z file system (ZFS)] can make use of " +"man:zfs[8] for creating snapshots, as well as crossref:zfs[zfs-zfs-" +"send,sending and receiving] them to/from remote systems." +msgstr "" +"Системы, использующие crossref:zfs[,файловую систему Z (ZFS)], могут " +"использовать man:zfs[8] для создания снимков, а также crossref:zfs[zfs-zfs-" +"send,их отправки и получения] на удалённые системы или с них." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1214 +#, no-wrap +msgid "Directory Backups" +msgstr "Резервное копирование каталогов" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1217 +msgid "" +"Several built-in utilities are available for backing up and restoring " +"specified files and directories as needed." +msgstr "" +"Некоторые встроенные утилиты могут делать резервное копирование и " +"восстановление указанных файлов и каталогов по мере необходимости." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1221 +msgid "" +"A good choice for making a backup of all of the files in a directory is " +"man:tar[1]. This utility dates back to Version 6 of AT&T UNIX(R) and by " +"default assumes a recursive backup to a local tape device. Switches can be " +"used to instead specify the name of a backup file." +msgstr "" +"Хорошим выбором для создания резервной копии всех файлов в каталоге является " +"man:tar[1]. Эта утилита появилась ещё в шестой версии AT&T UNIX(R) и по " +"умолчанию предполагает рекурсивное резервное копирование на локальное " +"ленточное устройство. С помощью ключей можно указать имя файла для резервной " +"копии." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1224 +msgid "" +"This example creates a compressed backup of the current directory and saves " +"it to [.filename]#/tmp/mybackup.tgz#. When creating a backup file, make " +"sure that the backup is not saved to the same directory that is being backed " +"up." +msgstr "" +"Этот пример создаёт сжатую резервную копию текущего каталога и сохраняет её " +"в [.filename]#/tmp/mybackup.tgz#. При создании резервной копии убедитесь, " +"что она не сохраняется в тот же каталог, который резервируется." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1225 +#, no-wrap +msgid "Backing Up the Current Directory with `tar`" +msgstr "Резервное копирование текущего каталога с помощью `tar`" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1231 +#, no-wrap +msgid "# tar czvf /tmp/mybackup.tgz .\n" +msgstr "# tar czvf /tmp/mybackup.tgz .\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1237 +msgid "" +"To restore the entire backup, `cd` into the directory to restore into and " +"specify the name of the backup. Note that this will overwrite any newer " +"versions of files in the restore directory. When in doubt, restore to a " +"temporary directory or specify the name of the file within the backup to " +"restore." +msgstr "" +"Для восстановления всей резервной копии перейдите в каталог, в который нужно " +"восстановить данные, и укажите имя резервной копии. Обратите внимание, что " +"это перезапишет более новые версии файлов в каталоге восстановления. Если " +"есть сомнения, восстановите данные во временный каталог или укажите имя " +"файла внутри резервной копии для восстановления." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1238 +#, no-wrap +msgid "Restoring Up the Current Directory with `tar`" +msgstr "Восстановление текущего каталога с помощью `tar`" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1244 +#, no-wrap +msgid "# tar xzvf /tmp/mybackup.tgz\n" +msgstr "# tar xzvf /tmp/mybackup.tgz\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1249 +msgid "" +"There are dozens of available switches which are described in man:tar[1]. " +"This utility also supports the use of exclude patterns to specify which " +"files should not be included when backing up the specified directory or " +"restoring files from a backup." +msgstr "" +"Существуют десятки доступных параметров, описанных в man:tar[1]. Эта утилита " +"также поддерживает использование шаблонов исключения для указания, какие " +"файлы не должны включаться при резервном копировании указанного каталога или " +"восстановлении файлов из резервной копии." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1252 +msgid "" +"To create a backup using a specified list of files and directories, " +"man:cpio[1] is a good choice. Unlike `tar`, `cpio` does not know how to " +"walk the directory tree and it must be provided the list of files to backup." +msgstr "" +"Для создания резервной копии с использованием указанного списка файлов и " +"каталогов подходит утилита man:cpio[1]. В отличие от `tar`, `cpio` не умеет " +"обходить дерево каталогов и требует предоставления списка файлов для " +"резервирования." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1255 +msgid "" +"For example, a list of files can be created using `ls` or `find`. This " +"example creates a recursive listing of the current directory which is then " +"piped to `cpio` in order to create an output backup file named [.filename]#/" +"tmp/mybackup.cpio#." +msgstr "" +"Например, список файлов можно создать с помощью `ls` или `find`. Этот пример " +"создаёт рекурсивный список текущего каталога, который затем передаётся в " +"`cpio` для создания резервной копии с именем [.filename]#/tmp/mybackup.cpio#." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1256 +#, no-wrap +msgid "Using `ls` and `cpio` to Make a Recursive Backup of the Current Directory" +msgstr "Использование `ls` и `cpio` для создания рекурсивной резервной копии текущего каталога" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1262 +#, no-wrap +msgid "# ls -R | cpio -ovF /tmp/mybackup.cpio\n" +msgstr "# ls -R | cpio -ovF /tmp/mybackup.cpio\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1268 +msgid "" +"A backup utility which tries to bridge the features provided by `tar` and " +"`cpio` is man:pax[1]. Over the years, the various versions of `tar` and " +"`cpio` became slightly incompatible. POSIX(R) created `pax` which attempts " +"to read and write many of the various `cpio` and `tar` formats, plus new " +"formats of its own." +msgstr "" +"Утилита для резервного копирования, которая пытается объединить возможности, " +"предоставляемые `tar` и `cpio`, — это man:pax[1]. С течением времени " +"различные версии `tar` и `cpio` стали немного несовместимыми. POSIX(R) " +"создал `pax`, который пытается читать и записывать многие из различных " +"форматов `cpio` и `tar`, а также новые собственные форматы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1270 +msgid "The `pax` equivalent to the previous examples would be:" +msgstr "Эквивалент `pax` для предыдущих примеров будет:" + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1271 +#, no-wrap +msgid "Backing Up the Current Directory with `pax`" +msgstr "Резервное копирование текущего каталога с помощью `pax`" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1277 +#, no-wrap +msgid "# pax -wf /tmp/mybackup.pax .\n" +msgstr "# pax -wf /tmp/mybackup.pax .\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1281 +#, no-wrap +msgid "Using Data Tapes for Backups" +msgstr "Использование магнитных лент для резервного копирования" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1286 +msgid "" +"While tape technology has continued to evolve, modern backup systems tend to " +"combine off-site backups with local removable media. FreeBSD supports any " +"tape drive that uses SCSI, such as LTO or DAT. There is limited support for " +"SATA and USB tape drives." +msgstr "" +"В то время как технология ленточных накопителей продолжает развиваться, " +"современные системы резервного копирования обычно сочетают удалённое " +"резервное копирование с локальными съёмными носителями. FreeBSD поддерживает " +"любые ленточные накопители, использующие SCSI, такие как LTO или DAT. " +"Поддержка SATA и USB ленточных накопителей ограничена." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1290 +msgid "" +"For SCSI tape devices, FreeBSD uses the man:sa[4] driver and the " +"[.filename]#/dev/sa0#, [.filename]#/dev/nsa0#, and [.filename]#/dev/esa0# " +"devices. The physical device name is [.filename]#/dev/sa0#. When " +"[.filename]#/dev/nsa0# is used, the backup application will not rewind the " +"tape after writing a file, which allows writing more than one file to a " +"tape. Using [.filename]#/dev/esa0# ejects the tape after the device is " +"closed." +msgstr "" +"Для SCSI-ленточных устройств FreeBSD использует драйвер man:sa[4] и " +"устройства [.filename]#/dev/sa0#, [.filename]#/dev/nsa0# и [.filename]#/dev/" +"esa0#. Физическое имя устройства — [.filename]#/dev/sa0#. При использовании " +"[.filename]#/dev/nsa0# программа резервного копирования не перематывает " +"ленту после записи файла, что позволяет записывать несколько файлов на одну " +"ленту. Использование [.filename]#/dev/esa0# приводит к извлечению ленты " +"после закрытия устройства." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1293 +msgid "" +"In FreeBSD, `mt` is used to control operations of the tape drive, such as " +"seeking through files on a tape or writing tape control marks to the tape. " +"For example, the first three files on a tape can be preserved by skipping " +"past them before writing a new file:" +msgstr "" +"В FreeBSD `mt` используется для управления операциями ленточного накопителя, " +"например, для поиска файлов на ленте или записи управляющих меток на ленту. " +"Например, первые три файла на ленте можно сохранить, пропустив их перед " +"записью нового файла:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1297 +#, no-wrap +msgid "# mt -f /dev/nsa0 fsf 3\n" +msgstr "# mt -f /dev/nsa0 fsf 3\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1300 +msgid "This utility supports many operations. Refer to man:mt[1] for details." +msgstr "" +"Эта утилита поддерживает множество операций. Подробности смотрите в " +"man:mt[1]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1302 +msgid "" +"To write a single file to tape using `tar`, specify the name of the tape " +"device and the file to backup:" +msgstr "" +"Для записи одного файла на ленту с помощью `tar` укажите имя устройства " +"ленты и файл для резервного копирования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1306 +#, no-wrap +msgid "# tar cvf /dev/sa0 file\n" +msgstr "# tar cvf /dev/sa0 file\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1309 +msgid "" +"To recover files from a `tar` archive on tape into the current directory:" +msgstr "Для восстановления файлов из архива `tar` на ленте в текущий каталог:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1313 +#, no-wrap +msgid "# tar xvf /dev/sa0\n" +msgstr "# tar xvf /dev/sa0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1317 +msgid "" +"To backup a UFS file system, use `dump`. This examples backs up " +"[.filename]#/usr# without rewinding the tape when finished:" +msgstr "" +"Для резервного копирования файловой системы UFS используйте `dump`. В этом " +"примере выполняется резервное копирование [.filename]#/usr# без перемотки " +"ленты по завершении:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1321 +#, no-wrap +msgid "# dump -0aL -b64 -f /dev/nsa0 /usr\n" +msgstr "# dump -0aL -b64 -f /dev/nsa0 /usr\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1324 +msgid "" +"To interactively restore files from a `dump` file on tape into the current " +"directory:" +msgstr "" +"Для интерактивного восстановления файлов из файла `dump` на ленте в текущий " +"каталог:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1328 +#, no-wrap +msgid "# restore -i -f /dev/nsa0\n" +msgstr "# restore -i -f /dev/nsa0\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1331 +#, no-wrap +msgid "Third-Party Backup Utilities" +msgstr "Сторонние утилиты резервного копирования" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1335 +msgid "" +"The FreeBSD Ports Collection provides many third-party utilities which can " +"be used to schedule the creation of backups, simplify tape backup, and make " +"backups easier and more convenient. Many of these applications are client/" +"server based and can be used to automate the backups of a single system or " +"all of the computers in a network." +msgstr "" +"Коллекция портов FreeBSD предоставляет множество сторонних утилит, которые " +"можно использовать для планирования создания резервных копий, упрощения " +"резервного копирования на ленточные накопители, а также для повышения " +"удобства и простоты этого процесса. Многие из этих приложений работают по " +"принципу клиент-сервер и позволяют автоматизировать резервное копирование " +"как отдельной системы, так и всех компьютеров в сети." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1337 +msgid "Popular utilities include:" +msgstr "Популярные утилиты включают:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1339 +msgid "Amanda (package:misc/amanda-server[] and package:misc/amanda-client[])," +msgstr "Amanda (package:misc/amanda-server[] и package:misc/amanda-client[])," + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1340 +msgid "" +"Bacula (package:sysutils/bacula13-server[] and package:sysutils/bacula13-" +"client[])," +msgstr "" +"Bacula (package:sysutils/bacula13-server[] и package:sysutils/bacula13-" +"client[])," + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1341 +msgid "" +"Bareos (package:sysutils/bareos-server[] and package:sysutils/bareos-" +"client[])," +msgstr "" +"Bareos (package:sysutils/bareos-server[] и package:sysutils/bareos-client[])," + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1342 +msgid "package:net/rsync[]," +msgstr "package:net/rsync[]," + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1343 +msgid "package:sysutils/duply[], and" +msgstr "package:sysutils/duply[], и" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1344 +msgid "package:sysutils/duplicity[]." +msgstr "package:sysutils/duplicity[]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1345 +#, no-wrap +msgid "Emergency Recovery" +msgstr "Процедура восстановления при сбое" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1348 +msgid "" +"In addition to regular backups, it is recommended to perform the following " +"steps as part of an emergency preparedness plan." +msgstr "" +"В дополнение к регулярному резервному копированию рекомендуется выполнить " +"следующие шаги в рамках плана подготовки к чрезвычайным ситуациям." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1350 +msgid "Create a print copy of the output of the following commands:" +msgstr "Создайте печатную копию вывода следующих команд:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1352 +msgid "`gpart show`" +msgstr "`gpart show`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1353 +msgid "`more /etc/fstab`" +msgstr "`more /etc/fstab`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1354 +msgid "`pkg prime-list`" +msgstr "`pkg prime-list`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1355 +msgid "`dmesg`" +msgstr "`dmesg`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1359 +msgid "" +"Store this printout and a copy of the installation media in a secure " +"location. Should an emergency restore be needed, boot into the installation " +"media and select `Live CD` to access a rescue shell. This rescue mode can " +"be used to view the current state of the system, and if needed, to reformat " +"disks and restore data from backups." +msgstr "" +"Сохраните эту распечатку и копию установочного носителя в надежном месте. В " +"случае необходимости аварийного восстановления загрузитесь с установочного " +"носителя и выберите `Live CD` для доступа к оболочке-спасателю — режиму " +"аварийного восстановления. Этот режим восстановления можно использовать для " +"просмотра текущего состояния системы и, при необходимости, для переразметки " +"дисков и восстановления данных из резервных копий." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1364 +msgid "" +"Next, test the rescue shell and the backups. Make notes of the procedure. " +"Store these notes with the media, the printouts, and the backups. These " +"notes may prevent the inadvertent destruction of the backups while under the " +"stress of performing an emergency recovery." +msgstr "" +"Затем протестируйте аварийную оболочку и резервные копии. Задокументируйте " +"процедуру. Храните эти записи вместе с носителями, распечатками и резервными " +"копиями. Эти заметки могут предотвратить случайное уничтожение резервных " +"копий в стрессовой ситуации во время аварийного восстановления." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1366 +msgid "" +"For an added measure of security, store the latest backup at a remote " +"location which is physically separated from the computers and disk drives by " +"a significant distance." +msgstr "" +"Для дополнительной безопасности храните последнюю резервную копию в " +"удалённом месте, физически отделённом от компьютеров и дисков на " +"значительное расстояние." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1368 +#, no-wrap +msgid "Memory Disks" +msgstr "Диски в памяти" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1372 +msgid "" +"In addition to physical disks, FreeBSD also supports the creation and use of " +"memory disks. One possible use for a memory disk is to access the contents " +"of an ISO file system without the overhead of first burning it to a CD or " +"DVD, then mounting the CD/DVD media." +msgstr "" +"В дополнение к физическим дискам FreeBSD также поддерживает создание и " +"использование RAM-дисков. Один из возможных вариантов применения RAM-диска — " +"доступ к содержимому файловой системы ISO без необходимости предварительной " +"записи на CD или DVD с последующим монтированием CD/DVD-носителя." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1376 +msgid "" +"In FreeBSD, the man:md[4] driver is used to provide support for memory " +"disks. The [.filename]#GENERIC# kernel includes this driver. When using a " +"custom kernel configuration file, ensure it includes this line:" +msgstr "" +"В FreeBSD драйвер man:md[4] используется для поддержки дисков в памяти. Ядро " +"[.filename]#GENERIC# включает этот драйвер. При использовании " +"пользовательского конфигурационного файла ядра убедитесь, что он содержит " +"следующую строку:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1380 +#, no-wrap +msgid "device md\n" +msgstr "device md\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1383 +#, no-wrap +msgid "Attaching and Detaching Existing Images" +msgstr "Присоединение и отсоединение существующих образов" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1389 +msgid "" +"To mount an existing file system image, use `mdconfig` to specify the name " +"of the ISO file and a free unit number. Then, refer to that unit number to " +"mount it on an existing mount point. Once mounted, the files in the ISO " +"will appear in the mount point. This example attaches _diskimage.iso_ to " +"the memory device [.filename]#/dev/md0# then mounts that memory device on " +"[.filename]#/mnt#:" +msgstr "" +"Для подключения существующего образа файловой системы используйте " +"`mdconfig`, указав имя файла ISO и свободный номер устройства. Затем, " +"используя этот номер устройства, подключите его к существующей точке " +"монтирования. После подключения файлы из ISO будут доступны в точке " +"монтирования. В этом примере _diskimage.iso_ подключается к устройству в " +"памяти [.filename]#/dev/md0#, которое затем монтируется в [.filename]#/mnt#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1394 +#, no-wrap +msgid "" +"# mdconfig -f diskimage.iso -u 0\n" +"# mount -t cd9660 /dev/md0 /mnt\n" +msgstr "" +"# mdconfig -f diskimage.iso -u 0\n" +"# mount -t cd9660 /dev/md0 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1399 +msgid "" +"Notice that `-t cd9660` was used to mount an ISO format. If a unit number " +"is not specified with `-u`, `mdconfig` will automatically allocate an unused " +"memory device and output the name of the allocated unit, such as " +"[.filename]#md4#. Refer to man:mdconfig[8] for more details about this " +"command and its options." +msgstr "" +"Обратите внимание, что `-t cd9660` был использован для монтирования формата " +"ISO. Если номер устройства не указан с помощью `-u`, `mdconfig` " +"автоматически выделит неиспользуемый диск в памяти и выведет имя выделенного " +"устройства, например, [.filename]#md4#. Дополнительные сведения о данной " +"команде и её параметрах можно найти в man:mdconfig[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1403 +msgid "" +"When a memory disk is no longer in use, its resources should be released " +"back to the system. First, unmount the file system, then use `mdconfig` to " +"detach the disk from the system and release its resources. To continue this " +"example:" +msgstr "" +"Когда диск в памяти больше не используется, его ресурсы должны быть " +"возвращены обратно системе. Сначала размонтируйте файловую систему, затем " +"используйте `mdconfig` для отключения диска от системы и освобождения его " +"ресурсов. Чтобы продолжить этот пример:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1408 +#, no-wrap +msgid "" +"# umount /mnt\n" +"# mdconfig -d -u 0\n" +msgstr "" +"# umount /mnt\n" +"# mdconfig -d -u 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1411 +msgid "" +"To determine if any memory disks are still attached to the system, type " +"`mdconfig -l`." +msgstr "" +"Чтобы определить, подключены ли к системе какие-либо диски в памяти, введите " +"`mdconfig -l`." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1413 +#, no-wrap +msgid "Creating a File- or Memory-Backed Memory Disk" +msgstr "Создание диска в памяти на основе файла или памяти" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1418 +msgid "" +"FreeBSD also supports memory disks where the storage to use is allocated " +"from either a hard disk or an area of memory. The first method is commonly " +"referred to as a file-backed file system and the second method as a memory-" +"backed file system. Both types can be created using `mdconfig`." +msgstr "" +"FreeBSD также поддерживает диски в памяти, где хранилище выделяется либо с " +"жёсткого диска, либо из области памяти. Первый метод обычно называют " +"файловой системой на основе файла, а второй — файловой системой на основе " +"памяти. Оба типа можно создать с помощью `mdconfig`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1423 +msgid "" +"To create a new memory-backed file system, specify a type of `swap` and the " +"size of the memory disk to create. Then, format the memory disk with a file " +"system and mount as usual. This example creates a 5M memory disk on unit " +"`1`. That memory disk is then formatted with the UFS file system before it " +"is mounted:" +msgstr "" +"Для создания новой файловой системы в памяти укажите тип `swap` и размер " +"создаваемого диска в памяти. Затем отформатируйте диск в памяти файловой " +"системой и смонтируйте его как обычно. В этом примере создаётся диск в " +"памяти размером 5M на устройстве `1`. Этот диск в памяти затем форматируется " +"файловой системой UFS перед монтированием:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1437 +#, no-wrap +msgid "" +"# mdconfig -a -t swap -s 5m -u 1\n" +"# newfs -U md1\n" +"/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048\n" +" using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.\n" +" with soft updates\n" +"super-block backups (for fsck -b #) at:\n" +" 160, 2752, 5344, 7936\n" +"# mount /dev/md1 /mnt\n" +"# df /mnt\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/md1 4718 4 4338 0% /mnt\n" +msgstr "" +"# mdconfig -a -t swap -s 5m -u 1\n" +"# newfs -U md1\n" +"/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048\n" +" using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.\n" +" with soft updates\n" +"super-block backups (for fsck -b #) at:\n" +" 160, 2752, 5344, 7936\n" +"# mount /dev/md1 /mnt\n" +"# df /mnt\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/md1 4718 4 4338 0% /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1441 +msgid "" +"To create a new file-backed memory disk, first allocate an area of disk to " +"use. This example creates an empty 5MB file named [.filename]#newimage#:" +msgstr "" +"Чтобы создать новый файловый диск в памяти, сначала выделите область на " +"диске для использования. В этом примере создается пустой файл размером 5 МБ " +"с именем [.filename]#newimage#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1447 +#, no-wrap +msgid "" +"# dd if=/dev/zero of=newimage bs=1k count=5k\n" +"5120+0 records in\n" +"5120+0 records out\n" +msgstr "" +"# dd if=/dev/zero of=newimage bs=1k count=5k\n" +"5120+0 records in\n" +"5120+0 records out\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1450 +msgid "" +"Next, attach that file to a memory disk, label the memory disk and format it " +"with the UFS file system, mount the memory disk, and verify the size of the " +"file-backed disk:" +msgstr "" +"Затем подключите этот файл к диску в памяти, создайте метку диска и " +"отформатируйте его с файловой системой UFS, смонтируйте диск в памяти и " +"проверьте размер диска на основе файла:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1464 +#, no-wrap +msgid "" +"# mdconfig -f newimage -u 0\n" +"# bsdlabel -w md0 auto\n" +"# newfs -U md0a\n" +"/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048\n" +" using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.\n" +"super-block backups (for fsck -b #) at:\n" +" 160, 2720, 5280, 7840\n" +"# mount /dev/md0a /mnt\n" +"# df /mnt\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/md0a 4710 4 4330 0% /mnt\n" +msgstr "" +"# mdconfig -f newimage -u 0\n" +"# bsdlabel -w md0 auto\n" +"# newfs -U md0a\n" +"/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048\n" +" using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.\n" +"super-block backups (for fsck -b #) at:\n" +" 160, 2720, 5280, 7840\n" +"# mount /dev/md0a /mnt\n" +"# df /mnt\n" +"Filesystem 1K-blocks Used Avail Capacity Mounted on\n" +"/dev/md0a 4710 4 4330 0% /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1469 +msgid "" +"It takes several commands to create a file- or memory-backed file system " +"using `mdconfig`. FreeBSD also comes with `mdmfs` which automatically " +"configures a memory disk, formats it with the UFS file system, and mounts " +"it. For example, after creating _newimage_ with `dd`, this one command is " +"equivalent to running the `bsdlabel`, `newfs`, and `mount` commands shown " +"above:" +msgstr "" +"Для создания файловой системы на основе файла или оперативной памяти с " +"помощью `mdconfig` требуется выполнить несколько команд. В FreeBSD также " +"доступна утилита `mdmfs`, которая автоматически настраивает диск в памяти, " +"форматирует его с файловой системой UFS и монтирует. Например, после " +"создания образа _newimage_ с помощью `dd`, следующая команда эквивалентна " +"выполнению команд `bsdlabel`, `newfs` и `mount`, приведённых выше:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1473 +#, no-wrap +msgid "# mdmfs -F newimage -s 5m md0 /mnt\n" +msgstr "# mdmfs -F newimage -s 5m md0 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1476 +msgid "" +"To instead create a new memory-based memory disk with `mdmfs`, use this one " +"command:" +msgstr "" +"Чтобы вместо этого создать новый диск в памяти на основе оперативной памяти " +"с помощью `mdmfs`, используйте следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1480 +#, no-wrap +msgid "# mdmfs -s 5m md1 /mnt\n" +msgstr "# mdmfs -s 5m md1 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1484 +msgid "" +"If the unit number is not specified, `mdmfs` will automatically select an " +"unused memory device. For more details about `mdmfs`, refer to man:mdmfs[8]." +msgstr "" +"Если номер устройства не указан, `mdmfs` автоматически выберет " +"неиспользуемое устройство памяти. Подробнее о `mdmfs` см. в man:mdmfs[8]." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1486 +#, no-wrap +msgid "File System Snapshots" +msgstr "Снимки файловой системы" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1489 +msgid "" +"FreeBSD offers a feature in conjunction with crossref:config[soft-" +"updates,Soft Updates]: file system snapshots." +msgstr "" +"FreeBSD предлагает функцию в сочетании с crossref:config[soft-" +"updates,мягкими обновлениями]: создание снимков файловой системы." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1491 +msgid "" +"UFS snapshots allow a user to create images of specified file systems, and " +"treat them as a file. If you are using the crossref:zfs[,Z file system " +"(ZFS)], refer to crossref:zfs[zfs-zfs-snapshot,\"Managing Snapshots\"] on " +"how to use snapshots." +msgstr "" +"Снимки UFS позволяют пользователю создавать образы указанных файловых систем " +"и работать с ними как с файлами. Если вы используете crossref:zfs[,файловую " +"систему Z (ZFS)], обратитесь к crossref:zfs[zfs-zfs-snapshot,\"Управление " +"снимками\"] для получения информации об использовании снимков." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1496 +msgid "" +"Snapshot files must be created in the file system that the action is " +"performed on, and a user may create no more than 20 snapshots per file " +"system. Active snapshots are recorded in the superblock so they are " +"persistent across unmount and remount operations along with system reboots. " +"When a snapshot is no longer required, it can be removed using man:rm[1]. " +"While snapshots may be removed in any order, all the used space may not be " +"acquired because another snapshot will possibly claim some of the released " +"blocks." +msgstr "" +"Файлы снимков должны быть созданы в той файловой системе, над которой " +"выполняется действие, и пользователь может создать не более 20 снимков для " +"каждой файловой системы. Активные снимки записываются в суперблок, поэтому " +"они сохраняются после размонтирования и повторного монтирования, а также " +"после перезагрузки системы. Когда снимок больше не нужен, его можно удалить " +"с помощью man:rm[1]. Хотя снимки можно удалять в любом порядке, не все " +"освобождаемое пространство может быть использовано, так как другой снимок " +"может претендовать на часть освобожденных блоков." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1499 +msgid "" +"The un-alterable `snapshot` file flag is set by man:mksnap_ffs[8] after " +"initial creation of a snapshot file. man:unlink[1] makes an exception for " +"snapshot files since it allows them to be removed." +msgstr "" +"Неизменяемый флаж файла `snapshot` устанавливается man:mksnap_ffs[8] после " +"первоначального создания файла снимка. man:unlink[1] делает исключение для " +"файлов снимков, так как позволяет их удалять." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1502 +msgid "" +"Snapshots are created using man:mount[8]. To place a snapshot of " +"[.filename]#/var# in the file [.filename]#/var/snapshot/snap#, use the " +"following command:" +msgstr "" +"Снимки создаются с помощью man:mount[8]. Чтобы создать снимок [.filename]#/" +"var# в файле [.filename]#/var/snapshot/snap#, используйте следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1506 +#, no-wrap +msgid "# mount -u -o snapshot /var/snapshot/snap /var\n" +msgstr "# mount -u -o snapshot /var/snapshot/snap /var\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1509 +msgid "Alternatively, use man:mksnap_ffs[8] to create the snapshot:" +msgstr "Или используйте man:mksnap_ffs[8] для создания снимка:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1513 +#, no-wrap +msgid "# mksnap_ffs /var /var/snapshot/snap\n" +msgstr "# mksnap_ffs /var /var/snapshot/snap\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1516 +msgid "" +"One can find snapshot files on a file system, such as [.filename]#/var#, " +"using man:find[1]:" +msgstr "" +"Файлы снимков можно найти в файловой системе, например, в [.filename]#/var#, " +"с помощью man:find[1]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1520 +#, no-wrap +msgid "# find /var -flags snapshot\n" +msgstr "# find /var -flags snapshot\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1523 +msgid "Once a snapshot has been created, it has several uses:" +msgstr "" +"После создания моментального снимка он может быть использован несколькими " +"способами:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1525 +msgid "" +"Some administrators will use a snapshot file for backup purposes, because " +"the snapshot can be transferred to CDs or tape." +msgstr "" +"Некоторые администраторы используют файл снимка для резервного копирования, " +"так как снимок можно перенести на компакт-диски или магнитные ленты." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1526 +msgid "" +"The file system integrity checker, man:fsck[8], may be run on the snapshot. " +"Assuming that the file system was clean when it was mounted, this should " +"always provide a clean and unchanging result." +msgstr "" +"Проверка целостности файловой системы, man:fsck[8], может быть запущена на " +"снимке. При условии, что файловая система была чистой на момент " +"монтирования, результат всегда должен быть чистым и неизменным." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1527 +msgid "" +"Running man:dump[8] on the snapshot will produce a dump file that is " +"consistent with the file system and the timestamp of the snapshot. " +"man:dump[8] can also take a snapshot, create a dump image, and then remove " +"the snapshot in one command by using `-L`." +msgstr "" +"Запуск man:dump[8] на снимке создаст дамп-файл, согласованный с файловой " +"системой и временной меткой снимка. man:dump[8] также может создать снимок, " +"создать образ дампа и затем удалить снимок одной командой, используя опцию `-" +"L`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1528 +msgid "" +"The snapshot can be mounted as a frozen image of the file system. To " +"man:mount[8] the snapshot [.filename]#/var/snapshot/snap# run:" +msgstr "" +"Снимок может быть смонтирован как замороженный образ файловой системы. Для " +"монтирования снимка [.filename]#/var/snapshot/snap# выполните команду " +"man:mount[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1533 +#, no-wrap +msgid "" +"# mdconfig -a -t vnode -o readonly -f /var/snapshot/snap -u 4\n" +"# mount -r /dev/md4 /mnt\n" +msgstr "" +"# mdconfig -a -t vnode -o readonly -f /var/snapshot/snap -u 4\n" +"# mount -r /dev/md4 /mnt\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1539 +msgid "" +"The frozen [.filename]#/var# is now available through [.filename]#/mnt#. " +"Everything will initially be in the same state it was during the snapshot " +"creation time. The only exception is that any earlier snapshots will appear " +"as zero length files. To unmount the snapshot, use:" +msgstr "" +"Замороженный [.filename]#/var# теперь доступен через [.filename]#/mnt#. Все " +"изначально будет находиться в том же состоянии, в котором было на момент " +"создания снимка. Единственное исключение — любые предыдущие снимки будут " +"отображаться как файлы нулевой длины. Чтобы отмонтировать снимок, " +"используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1544 +#, no-wrap +msgid "" +"# umount /mnt\n" +"# mdconfig -d -u 4\n" +msgstr "" +"# umount /mnt\n" +"# mdconfig -d -u 4\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1547 +msgid "" +"For more information about `softupdates` and file system snapshots, " +"including technical papers, visit Marshall Kirk McKusick's website at http://" +"www.mckusick.com/[http://www.mckusick.com/]." +msgstr "" +"Для получения дополнительной информации о `softupdates` и снимках файловых " +"систем, включая технические документы, посетите веб-сайт Маршалла Кирка " +"Маккусика по адресу http://www.mckusick.com/[http://www.mckusick.com/]." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1549 +#, no-wrap +msgid "Disk Quotas" +msgstr "Квоты на диске" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1553 +msgid "" +"Disk quotas can be used to limit the amount of disk space or the number of " +"files a user or members of a group may allocate on a per-file system basis. " +"This prevents one user or group of users from consuming all of the available " +"disk space." +msgstr "" +"Дисковые квоты могут использоваться для ограничения объёма дискового " +"пространства или количества файлов, которые пользователь или члены группы " +"могут выделить в рамках одной файловой системы. Это предотвращает ситуацию, " +"когда один пользователь или группа пользователей потребляет всё доступное " +"дисковое пространство." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1556 +msgid "" +"This section describes how to configure disk quotas for the UFS file " +"system. To configure quotas on the ZFS file system, refer to " +"crossref:zfs[zfs-zfs-quota,\"Dataset, User, and Group Quotas\"]" +msgstr "" +"Этот раздел описывает, как настроить квоты дисков для файловой системы UFS. " +"Для настройки квот в файловой системе ZFS обратитесь к crossref:zfs[zfs-zfs-" +"quota,\"Квоты наборов данных, пользователей и групп\"]" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1557 +#, no-wrap +msgid "Enabling Disk Quotas" +msgstr "Включение квот на диске" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1560 +msgid "To determine if the FreeBSD kernel provides support for disk quotas:" +msgstr "" +"Чтобы определить, поддерживает ли ядро FreeBSD квоты дискового пространства:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1565 +#, no-wrap +msgid "" +"% sysctl kern.features.ufs_quota\n" +"kern.features.ufs_quota: 1\n" +msgstr "" +"% sysctl kern.features.ufs_quota\n" +"kern.features.ufs_quota: 1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1569 +msgid "" +"In this example, the `1` indicates quota support. If the value is instead " +"`0`, add the following line to a custom kernel configuration file and " +"rebuild the kernel using the instructions in " +"crossref:kernelconfig[kernelconfig,Configuring the FreeBSD Kernel]:" +msgstr "" +"В этом примере `1` указывает на поддержку квот. Если значение равно `0`, " +"добавьте следующую строку в файл конфигурации собственного ядра и " +"пересоберите ядро, используя инструкции из " +"crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1573 +#, no-wrap +msgid "options QUOTA\n" +msgstr "options QUOTA\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1576 +msgid "Next, enable disk quotas in [.filename]#/etc/rc.conf#:" +msgstr "Далее включите квоты на диски в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1580 +#, no-wrap +msgid "quota_enable=\"YES\"\n" +msgstr "quota_enable=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1586 +msgid "" +"Normally on bootup, the quota integrity of each file system is checked by " +"man:quotacheck[8]. This program insures that the data in the quota database " +"properly reflects the data on the file system. This is a time consuming " +"process that will significantly affect the time the system takes to boot. " +"To skip this step, add this variable to [.filename]#/etc/rc.conf#:" +msgstr "" +"Обычно при загрузке проверяется целостность квот для каждой файловой системы " +"с помощью man:quotacheck[8]. Эта программа гарантирует, что данные в базе " +"квот соответствуют данным в файловой системе. Это трудоёмкий процесс, " +"который может значительно увеличить время загрузки системы. Чтобы пропустить " +"этот шаг, добавьте следующую переменную в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1590 +#, no-wrap +msgid "check_quotas=\"NO\"\n" +msgstr "check_quotas=\"NO\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1595 +msgid "" +"Finally, edit [.filename]#/etc/fstab# to enable disk quotas on a per-file " +"system basis. To enable per-user quotas on a file system, add `userquota` " +"to the options field in the [.filename]#/etc/fstab# entry for the file " +"system to enable quotas on. For example:" +msgstr "" +"Наконец, отредактируйте [.filename]#/etc/fstab#, чтобы включить квоты диска " +"для каждой файловой системы. Чтобы включить квоты для пользователей в " +"файловой системе, добавьте `userquota` в поле опций записи [.filename]#/etc/" +"fstab# для файловой системы, на которой нужно включить квоты. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1599 +#, no-wrap +msgid "/dev/da1s2g /home ufs rw,userquota 1 2\n" +msgstr "/dev/da1s2g /home ufs rw,userquota 1 2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1603 +msgid "" +"To enable group quotas, use `groupquota` instead. To enable both user and " +"group quotas, separate the options with a comma:" +msgstr "" +"Для включения квот групп используйте `groupquota` вместо этого. Чтобы " +"включить квоты и для пользователей, и для групп, разделите параметры запятой:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1607 +#, no-wrap +msgid "/dev/da1s2g /home ufs rw,userquota,groupquota 1 2\n" +msgstr "/dev/da1s2g /home ufs rw,userquota,groupquota 1 2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1612 +msgid "" +"By default, quota files are stored in the root directory of the file system " +"as [.filename]#quota.user# and [.filename]#quota.group#. Refer to " +"man:fstab[5] for more information. Specifying an alternate location for the " +"quota files is not recommended." +msgstr "" +"По умолчанию файлы квот хранятся в корневом каталоге файловой системы как " +"[.filename]#quota.user# и [.filename]#quota.group#. Дополнительную " +"информацию можно найти в man:fstab[5]. Указание альтернативного " +"расположения для файлов квот не рекомендуется." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1614 +msgid "" +"Once the configuration is complete, reboot the system and [.filename]#/etc/" +"rc# will automatically run the appropriate commands to create the initial " +"quota files for all of the quotas enabled in [.filename]#/etc/fstab#." +msgstr "" +"После завершения настройки перезагрузите систему, и [.filename]#/etc/rc# " +"автоматически выполнит соответствующие команды для создания начальных файлов " +"квот для всех включённых квот в [.filename]#/etc/fstab#." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1617 +msgid "" +"In the normal course of operations, there should be no need to manually run " +"man:quotacheck[8], man:quotaon[8], or man:quotaoff[8]. However, one should " +"read these manual pages to be familiar with their operation." +msgstr "" +"В обычном режиме работы нет необходимости вручную запускать " +"man:quotacheck[8], man:quotaon[8] или man:quotaoff[8]. Однако рекомендуется " +"ознакомиться с их руководствами, чтобы понимать принцип работы." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1618 +#, no-wrap +msgid "Setting Quota Limits" +msgstr "Установка ограничений квот" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1621 +msgid "To verify that quotas are enabled, run:" +msgstr "Для проверки включения квот выполните:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1625 +#, no-wrap +msgid "# quota -v\n" +msgstr "# quota -v\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1628 +msgid "" +"There should be a one line summary of disk usage and current quota limits " +"for each file system that quotas are enabled on." +msgstr "" +"Должна быть однострочная сводка об использовании диска и текущих лимитах " +"квот для каждой файловой системы, на которой включены квоты." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1630 +msgid "The system is now ready to be assigned quota limits with `edquota`." +msgstr "Система готова к назначению квот с помощью `edquota`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1634 +msgid "" +"Several options are available to enforce limits on the amount of disk space " +"a user or group may allocate, and how many files they may create. " +"Allocations can be limited based on disk space (block quotas), number of " +"files (inode quotas), or a combination of both. Each limit is further " +"broken down into two categories: hard and soft limits." +msgstr "" +"Доступно несколько вариантов для установки ограничений на объем дискового " +"пространства, который может быть выделен пользователю или группе, а также на " +"количество создаваемых ими файлов. Ограничения могут быть установлены на " +"основе объема дискового пространства (блочные квоты), количества файлов " +"(квоты inode) или их комбинации. Каждое ограничение дополнительно " +"разделяется на две категории: жесткие и мягкие лимиты." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1639 +msgid "" +"A hard limit may not be exceeded. Once a user reaches a hard limit, no " +"further allocations can be made on that file system by that user. For " +"example, if the user has a hard limit of 500 kbytes on a file system and is " +"currently using 490 kbytes, the user can only allocate an additional 10 " +"kbytes. Attempting to allocate an additional 11 kbytes will fail." +msgstr "" +"Жёсткий лимит не может быть превышен. Как только пользователь достигает " +"жёсткого лимита, он не может выделить дополнительные ресурсы на этой " +"файловой системе. Например, если у пользователя жёсткий лимит в 500 КБ на " +"файловой системе и он уже использует 490 КБ, он может выделить только " +"дополнительные 10 КБ. Попытка выделить дополнительные 11 КБ завершится " +"неудачей." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1643 +msgid "" +"Soft limits can be exceeded for a limited amount of time, known as the grace " +"period, which is one week by default. If a user stays over their limit " +"longer than the grace period, the soft limit turns into a hard limit and no " +"further allocations are allowed. When the user drops back below the soft " +"limit, the grace period is reset." +msgstr "" +"Мягкие ограничения могут быть превышены на ограниченное время, известное как " +"льготный период, который по умолчанию составляет одну неделю. Если " +"пользователь превышает своё ограничение дольше льготного периода, мягкое " +"ограничение становится жёстким, и дальнейшие выделения ресурсов запрещаются. " +"Когда пользователь снова опускается ниже мягкого ограничения, льготный " +"период сбрасывается." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1647 +msgid "" +"In the following example, the quota for the `test` account is being edited. " +"When `edquota` is invoked, the editor specified by `EDITOR` is opened in " +"order to edit the quota limits. The default editor is set to vi." +msgstr "" +"В следующем примере редактируется квота для учётной записи `test`. При " +"запуске `edquota` открывается редактор, указанный в переменной `EDITOR`, для " +"изменения ограничений квоты. Редактор по умолчанию установлен в vi." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1656 +#, no-wrap +msgid "" +"# edquota -u test\n" +"Quotas for user test:\n" +"/usr: kbytes in use: 65, limits (soft = 50, hard = 75)\n" +" inodes in use: 7, limits (soft = 50, hard = 60)\n" +"/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)\n" +" inodes in use: 0, limits (soft = 50, hard = 60)\n" +msgstr "" +"# edquota -u test\n" +"Quotas for user test:\n" +"/usr: kbytes in use: 65, limits (soft = 50, hard = 75)\n" +" inodes in use: 7, limits (soft = 50, hard = 60)\n" +"/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)\n" +" inodes in use: 0, limits (soft = 50, hard = 60)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1662 +msgid "" +"There are normally two lines for each file system that has quotas enabled. " +"One line represents the block limits and the other represents the inode " +"limits. Change the value to modify the quota limit. For example, to raise " +"the block limit on [.filename]#/usr# to a soft limit of `500` and a hard " +"limit of `600`, change the values in that line as follows:" +msgstr "" +"Обычно для каждой файловой системы с включенными квотами есть две строки. " +"Одна строка представляет ограничения на блоки, а другая — ограничения на " +"файлы. Измените значение, чтобы изменить лимит квоты. Например, чтобы " +"увеличить лимит блоков для [.filename]#/usr# до мягкого лимита `500` и " +"жёсткого лимита `600`, измените значения в этой строке следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1666 +#, no-wrap +msgid "/usr: kbytes in use: 65, limits (soft = 500, hard = 600)\n" +msgstr "/usr: kbytes in use: 65, limits (soft = 500, hard = 600)\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1669 +msgid "The new quota limits take effect upon exiting the editor." +msgstr "Новые ограничения квот вступают в силу после выхода из редактора." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1674 +msgid "" +"Sometimes it is desirable to set quota limits on a range of users. This can " +"be done by first assigning the desired quota limit to a user. Then, use `-" +"p` to duplicate that quota to a specified range of user IDs (UIDs). The " +"following command will duplicate those quota limits for UIDs `10,000` " +"through `19,999`:" +msgstr "" +"Иногда требуется установить квоты для диапазона пользователей. Это можно " +"сделать, сначала назначив желаемую квоту для одного пользователя, а затем " +"используя опцию `-p` для копирования этой квоты в указанный диапазон " +"идентификаторов пользователей (UID). Следующая команда скопирует эти квоты " +"для UID с `10,000` по `19,999`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1678 +#, no-wrap +msgid "# edquota -p test 10000-19999\n" +msgstr "# edquota -p test 10000-19999\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1681 +msgid "For more information, refer to man:edquota[8]." +msgstr "Для получения дополнительной информации обратитесь к man:edquota[8]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1682 +#, no-wrap +msgid "Checking Quota Limits and Disk Usage" +msgstr "Проверка ограничений квот и использования диска" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1688 +msgid "" +"To check individual user or group quotas and disk usage, use man:quota[1]. " +"A user may only examine their own quota and the quota of a group they are a " +"member of. Only the superuser may view all user and group quotas. To get a " +"summary of all quotas and disk usage for file systems with quotas enabled, " +"use man:repquota[8]." +msgstr "" +"Для проверки квот и использования диска отдельными пользователями или " +"группами используйте man:quota[1]. Пользователь может просматривать только " +"свою собственную квоту и квоту группы, в которой он состоит. Только " +"суперпользователь может просматривать все квоты пользователей и групп. Чтобы " +"получить сводку по всем квотам и использованию диска для файловых систем с " +"включёнными квотами, используйте man:repquota[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1692 +msgid "" +"Normally, file systems that the user is not using any disk space on will not " +"show in the output of `quota`, even if the user has a quota limit assigned " +"for that file system. Use `-v` to display those file systems. The " +"following is sample output from `quota -v` for a user that has quota limits " +"on two file systems." +msgstr "" +"Обычно файловые системы, на которых пользователь не занимает места, не " +"отображаются в выводе команды `quota`, даже если для пользователя " +"установлено ограничение квоты для этой файловой системы. Используйте `-v`, " +"чтобы отобразить эти файловые системы. Ниже приведён пример вывода `quota " +"-v` для пользователя, у которого установлены ограничения квоты на двух " +"файловых системах." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1699 +#, no-wrap +msgid "" +"Disk quotas for user test (uid 1002):\n" +" Filesystem usage quota limit grace files quota limit grace\n" +" /usr 65* 50 75 5days 7 50 60\n" +" /usr/var 0 50 75 0 50 60\n" +msgstr "" +"Disk quotas for user test (uid 1002):\n" +" Filesystem usage quota limit grace files quota limit grace\n" +" /usr 65* 50 75 5days 7 50 60\n" +" /usr/var 0 50 75 0 50 60\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1703 +msgid "" +"In this example, the user is currently 15 kbytes over the soft limit of 50 " +"kbytes on [.filename]#/usr# and has 5 days of grace period left. The " +"asterisk `*` indicates that the user is currently over the quota limit." +msgstr "" +"В этом примере пользователь превысил мягкое ограничение в 50 Кб на " +"[.filename]#/usr# на 15 Кб, и у него осталось 5 дней льготного периода. " +"Звёздочка `*` указывает, что пользователь в настоящее время превысил " +"ограничение квоты." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1704 +#, no-wrap +msgid "Quotas over NFS" +msgstr "Квоты по NFS" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1708 +msgid "" +"Quotas are enforced by the quota subsystem on the NFS server. The " +"man:rpc.rquotad[8] daemon makes quota information available to `quota` on " +"NFS clients, allowing users on those machines to see their quota statistics." +msgstr "" +"Квоты применяются подсистемой квот на NFS-сервере. Демон man:rpc.rquotad[8] " +"предоставляет информацию о квотах для команды `quota` на NFS-клиентах, " +"позволяя пользователям на этих машинах просматривать свою статистику по " +"квотам." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1710 +msgid "" +"On the NFS server, enable `rpc.rquotad` by removing the `+#+` from this line " +"in [.filename]*/etc/inetd.conf*:" +msgstr "" +"На NFS-сервере включите `rpc.rquotad`, удалив `+#+` из этой строки в файле " +"[.filename]*/etc/inetd.conf*:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1714 +#, no-wrap +msgid "rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad\n" +msgstr "rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1717 +msgid "Then, restart `inetd`:" +msgstr "Затем перезапустите `inetd`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1721 +#, no-wrap +msgid "# service inetd restart\n" +msgstr "# service inetd restart\n" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:1724 +#, no-wrap +msgid "Encrypting Disk Partitions" +msgstr "Шифрование разделов диска" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1729 +msgid "" +"FreeBSD offers excellent online protections against unauthorized data " +"access. File permissions and crossref:mac[mac,Mandatory Access Control] " +"(MAC) help prevent unauthorized users from accessing data while the " +"operating system is active and the computer is powered up. However, the " +"permissions enforced by the operating system are irrelevant if an attacker " +"has physical access to a computer and can move the computer's hard drive to " +"another system to copy and analyze the data." +msgstr "" +"FreeBSD обеспечивает отличную защиту от несанкционированного доступа к " +"данным в режиме онлайн. Права доступа к файлам и " +"crossref:mac[mac,Принудительный контроль доступа] (MAC) помогают " +"предотвратить доступ к данным неавторизованных пользователей, пока " +"операционная система активна и компьютер включен. Однако принудительно " +"устанавливаемые операционной системой права доступа не имеют значения, если " +"злоумышленник получит физический доступ к компьютеру и сможет переместить " +"его жесткий диск в другую систему для копирования и анализа данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1733 +msgid "" +"Regardless of how an attacker may have come into possession of a hard drive " +"or powered-down computer, the GEOM-based cryptographic subsystems built into " +"FreeBSD are able to protect the data on the computer's file systems against " +"even highly-motivated attackers with significant resources. Unlike " +"encryption methods that encrypt individual files, the built-in `gbde` and " +"`geli` utilities can be used to transparently encrypt entire file systems. " +"No cleartext ever touches the hard drive's platter." +msgstr "" +"Независимо от того, как злоумышленник получил доступ к жесткому диску или " +"выключенному компьютеру, криптографические подсистемы на основе GEOM, " +"встроенные в FreeBSD, способны защитить данные в файловых системах " +"компьютера даже от высокомотивированных злоумышленников с значительными " +"ресурсами. В отличие от методов шифрования, которые шифруют отдельные файлы, " +"встроенные утилиты `gbde` и `geli` могут использоваться для прозрачного " +"шифрования целых файловых систем. Ни один открытый текст никогда не попадает " +"на пластину жесткого диска." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1736 +msgid "" +"This chapter demonstrates how to create an encrypted file system on " +"FreeBSD. It first demonstrates the process using `gbde` and then " +"demonstrates the same example using `geli`." +msgstr "" +"Эта глава демонстрирует, как создать зашифрованную файловую систему в " +"FreeBSD. Сначала показан процесс с использованием `gbde`, а затем приведён " +"тот же пример с использованием `geli`." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1737 +#, no-wrap +msgid "Disk Encryption with gbde" +msgstr "Шифрование диска с gbde" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1742 +msgid "" +"The objective of the man:gbde[4] facility is to provide a formidable " +"challenge for an attacker to gain access to the contents of a _cold_ storage " +"device. However, if the computer is compromised while up and running and " +"the storage device is actively attached, or the attacker has access to a " +"valid passphrase, it offers no protection to the contents of the storage " +"device. Thus, it is important to provide physical security while the system " +"is running and to protect the passphrase used by the encryption mechanism." +msgstr "" +"Целью средства man:gbde[4] является создание серьёзного препятствия для " +"злоумышленника, пытающегося получить доступ к содержимому _отключённого_ " +"устройства хранения данных. Однако, если компьютер скомпрометирован во время " +"работы и устройство хранения активно подключено, или злоумышленник имеет " +"доступ к корректной парольной фразе, это средство не обеспечивает защиты " +"содержимого устройства хранения. Таким образом, важно обеспечивать " +"физическую безопасность системы во время её работы и защищать парольную " +"фразу, используемую механизмом шифрования." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1747 +msgid "" +"This facility provides several barriers to protect the data stored in each " +"disk sector. It encrypts the contents of a disk sector using 128-bit AES in " +"CBC mode. Each sector on the disk is encrypted with a different AES key. " +"For more information on the cryptographic design, including how the sector " +"keys are derived from the user-supplied passphrase, refer to man:gbde[4]." +msgstr "" +"Это средство обеспечивает несколько уровней защиты данных, хранящихся в " +"каждом секторе диска. Оно шифрует содержимое сектора диска с использованием " +"128-битного AES в режиме CBC. Каждый сектор на диске шифруется с " +"использованием уникального ключа AES. Для получения дополнительной " +"информации о криптографической схеме, включая способ получения ключей " +"секторов из предоставленной пользователем парольной фразы, обратитесь к " +"man:gbde[4]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1749 +msgid "" +"FreeBSD provides a kernel module for gbde which can be loaded with this " +"command:" +msgstr "" +"FreeBSD предоставляет модуль ядра для gbde, который можно загрузить " +"следующей командой:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1753 +#, no-wrap +msgid "# kldload geom_bde\n" +msgstr "# kldload geom_bde\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1756 +msgid "" +"If using a custom kernel configuration file, ensure it contains this line:" +msgstr "" +"Если используется пользовательский конфигурационный файл ядра, убедитесь, " +"что он содержит следующую строку:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1758 +msgid "`options GEOM_BDE`" +msgstr "`options GEOM_BDE`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1760 +msgid "" +"The following example demonstrates adding a new hard drive to a system that " +"will hold a single encrypted partition that will be mounted as [.filename]#/" +"private#." +msgstr "" +"Следующий пример демонстрирует добавление нового жесткого диска в систему, " +"который будет содержать единственный зашифрованный раздел, монтируемый в " +"[.filename]#/private#." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1762 +#, no-wrap +msgid "Procedure: Encrypting a Partition with gbde" +msgstr "Процедура: Шифрование раздела с помощью gbde" + +#. type: .procedure +#: documentation/content/en/books/handbook/disks/_index.adoc:1764 +msgid "Add the New Hard Drive" +msgstr "Добавьте новый жесткий диск" + +#. type: .procedure +#: documentation/content/en/books/handbook/disks/_index.adoc:1767 +msgid "" +"Install the new drive to the system as explained in crossref:disks[disks-" +"adding, Adding Disks]. For the purposes of this example, a new hard drive " +"partition has been added as [.filename]#/dev/ad4s1c# and [.filename]#/dev/" +"ad0s1*# represents the existing standard FreeBSD partitions." +msgstr "" +"Установите новый диск в систему, как описано в crossref:disks[disks-" +"adding,Добавление дисков]. Для целей данного примера новый раздел жёсткого " +"диска добавлен как [.filename]#/dev/ad4s1c#, а [.filename]#/dev/ad0s1*# " +"представляет существующие стандартные разделы FreeBSD." + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1774 +#, no-wrap +msgid "" +"# ls /dev/ad*\n" +"/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1\n" +"/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c\n" +"/dev/ad0s1a /dev/ad0s1d /dev/ad4\n" +msgstr "" +"# ls /dev/ad*\n" +"/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1\n" +"/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c\n" +"/dev/ad0s1a /dev/ad0s1d /dev/ad4\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1777 +msgid "Create a Directory to Hold `gbde` Lock Files" +msgstr "Создайте каталог для хранения файлов блокировок `gbde`" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1781 +#, no-wrap +msgid "# mkdir /etc/gbde\n" +msgstr "# mkdir /etc/gbde\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1786 +msgid "" +"The gbde lock file contains information that gbde requires to access " +"encrypted partitions. Without access to the lock file, gbde will not be " +"able to decrypt the data contained in the encrypted partition without " +"significant manual intervention which is not supported by the software. " +"Each encrypted partition uses a separate lock file." +msgstr "" +"Файл блокировки `gbde` содержит информацию, необходимую `gbde` для доступа к " +"зашифрованным разделам. Без доступа к файлу блокировки `gbde` не сможет " +"расшифровать данные, содержащиеся в зашифрованном разделе, без значительного " +"ручного вмешательства, которое не поддерживается программным обеспечением. " +"Каждый зашифрованный раздел использует отдельный файл блокировки." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1787 +msgid "Initialize the `gbde` Partition" +msgstr "Инициализируйте раздел `gbde`" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1792 +msgid "" +"A gbde partition must be initialized before it can be used. This " +"initialization needs to be performed only once. This command will open the " +"default editor, in order to set various configuration options in a " +"template. For use with the UFS file system, set the sector_size to 2048:" +msgstr "" +"Раздел gbde необходимо инициализировать перед использованием. Эта " +"инициализация выполняется только один раз. Данная команда откроет редактор " +"по умолчанию для настройки различных параметров конфигурации в шаблоне. Для " +"использования с файловой системой UFS установите sector_size в значение 2048:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1804 +#, no-wrap +msgid "" +"# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock\n" +"#\n" +"# Sector size is the smallest unit of data which can be read or written.\n" +"# Making it too small decreases performance and decreases available space.\n" +"# Making it too large may prevent filesystems from working. 512 is the\n" +"# minimum and always safe. For UFS, use the fragment size\n" +"#\n" +"sector_size\t=\t2048\n" +"[...]\n" +msgstr "" +"# gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock\n" +"#\n" +"# Sector size is the smallest unit of data which can be read or written.\n" +"# Making it too small decreases performance and decreases available space.\n" +"# Making it too large may prevent filesystems from working. 512 is the\n" +"# minimum and always safe. For UFS, use the fragment size\n" +"#\n" +"sector_size\t=\t2048\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1810 +msgid "" +"Once the edit is saved, the user will be asked twice to type the passphrase " +"used to secure the data. The passphrase must be the same both times. The " +"ability of gbde to protect data depends entirely on the quality of the " +"passphrase. For tips on how to select a secure passphrase that is easy to " +"remember, see http://world.std.com/\\~reinhold/diceware.html[http://" +"world.std.com/~reinhold/diceware.htm]." +msgstr "" +"После сохранения изменений пользователю будет предложено дважды ввести " +"парольную фразу, используемую для защиты данных. Парольная фраза должна быть " +"одинаковой в обоих случаях. Способность gbde защищать данные полностью " +"зависит от качества парольной фразы. Советы по выбору безопасной парольной " +"фразы, которую легко запомнить, можно найти по ссылке http://world.std.com/" +"\\~reinhold/diceware.html[http://world.std.com/~reinhold/diceware.htm]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1814 +msgid "" +"This initialization creates a lock file for the gbde partition. In this " +"example, it is stored as [.filename]#/etc/gbde/ad4s1c.lock#. Lock files " +"must end in \".lock\" in order to be correctly detected by the [.filename]#/" +"etc/rc.d/gbde# start up script." +msgstr "" +"Такая инициализация создает файл блокировки для раздела gbde. В данном " +"примере он сохраняется как [.filename]#/etc/gbde/ad4s1c.lock#. Файлы " +"блокировки должны иметь расширение \".lock\", чтобы корректно определяться " +"скриптом запуска [.filename]#/etc/rc.d/gbde#." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1819 +msgid "" +"Lock files _must_ be backed up together with the contents of any encrypted " +"partitions. Without the lock file, the legitimate owner will be unable to " +"access the data on the encrypted partition." +msgstr "" +"Файлы блокировок _обязательно_ должны быть включены в резервную копию вместе " +"с содержимым зашифрованных разделов. Без файла блокировки законный владелец " +"не сможет получить доступ к данным на зашифрованном разделе." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1822 +msgid "Attach the Encrypted Partition to the Kernel" +msgstr "Присоедините зашифрованный раздел к ядру" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1826 +#, no-wrap +msgid "# gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock\n" +msgstr "# gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1830 +msgid "" +"This command will prompt to input the passphrase that was selected during " +"the initialization of the encrypted partition. The new encrypted device " +"will appear in [.filename]#/dev# as [.filename]#/dev/device_name.bde#:" +msgstr "" +"Эта команда запросит ввод парольной фразы, выбранной при инициализации " +"зашифрованного раздела. Новое зашифрованное устройство появится в " +"[.filename]#/dev# под именем [.filename]#/dev/имя_устройства.bde#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1837 +#, no-wrap +msgid "" +"# ls /dev/ad*\n" +"/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1\n" +"/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c\n" +"/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde\n" +msgstr "" +"# ls /dev/ad*\n" +"/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1\n" +"/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c\n" +"/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1840 +msgid "Create a File System on the Encrypted Device" +msgstr "Создайте файловую систему на зашифрованном устройстве" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1844 +msgid "" +"Once the encrypted device has been attached to the kernel, a file system can " +"be created on the device. This example creates a UFS file system with soft " +"updates enabled. Be sure to specify the partition which has a " +"[.filename]#*.bde# extension:" +msgstr "" +"После подключения зашифрованного устройства к ядру на нем можно создать " +"файловую систему. В этом примере создается файловая система UFS с " +"включенными мягкими обновлениями. Убедитесь, что указан раздел с расширением " +"[.filename]#*.bde#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1848 +#, no-wrap +msgid "# newfs -U /dev/ad4s1c.bde\n" +msgstr "# newfs -U /dev/ad4s1c.bde\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1851 +msgid "Mount the Encrypted Partition" +msgstr "Смонтируйте зашифрованный раздел" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1853 +msgid "Create a mount point and mount the encrypted file system:" +msgstr "" +"Создайте точку монтирования и подключите зашифрованную файловую систему:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1858 +#, no-wrap +msgid "" +"# mkdir /private\n" +"# mount /dev/ad4s1c.bde /private\n" +msgstr "" +"# mkdir /private\n" +"# mount /dev/ad4s1c.bde /private\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1861 +msgid "Verify That the Encrypted File System is Available" +msgstr "Проверьте, что зашифрованная файловая система доступна" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1863 +msgid "The encrypted file system should now be visible and available for use:" +msgstr "" +"Зашифрованная файловая система теперь должна быть видна и доступна для " +"использования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1874 +#, no-wrap +msgid "" +"% df -H\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 1037M 72M 883M 8% /\n" +"/devfs 1.0K 1.0K 0B 100% /dev\n" +"/dev/ad0s1f 8.1G 55K 7.5G 0% /home\n" +"/dev/ad0s1e 1037M 1.1M 953M 0% /tmp\n" +"/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr\n" +"/dev/ad4s1c.bde 150G 4.1K 138G 0% /private\n" +msgstr "" +"% df -H\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 1037M 72M 883M 8% /\n" +"/devfs 1.0K 1.0K 0B 100% /dev\n" +"/dev/ad0s1f 8.1G 55K 7.5G 0% /home\n" +"/dev/ad0s1e 1037M 1.1M 953M 0% /tmp\n" +"/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr\n" +"/dev/ad4s1c.bde 150G 4.1K 138G 0% /private\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1878 +msgid "" +"After each boot, any encrypted file systems must be manually re-attached to " +"the kernel, checked for errors, and mounted, before the file systems can be " +"used. To configure these steps, add the following lines to [.filename]#/etc/" +"rc.conf#:" +msgstr "" +"После каждой загрузки все зашифрованные файловые системы должны быть вручную " +"повторно подключены к ядру, проверены на ошибки и смонтированы, прежде чем " +"их можно будет использовать. Чтобы настроить эти шаги, добавьте следующие " +"строки в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1884 +#, no-wrap +msgid "" +"gbde_autoattach_all=\"YES\"\n" +"gbde_devices=\"ad4s1c\"\n" +"gbde_lockdir=\"/etc/gbde\"\n" +msgstr "" +"gbde_autoattach_all=\"YES\"\n" +"gbde_devices=\"ad4s1c\"\n" +"gbde_lockdir=\"/etc/gbde\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1889 +msgid "" +"This requires that the passphrase be entered at the console at boot time. " +"After typing the correct passphrase, the encrypted partition will be mounted " +"automatically. Additional gbde boot options are available and listed in " +"man:rc.conf[5]." +msgstr "" +"Для этого необходимо ввести пароль на консоли во время загрузки. После ввода " +"правильного пароля зашифрованный раздел будет автоматически подключен. " +"Дополнительные параметры загрузки gbde доступны и перечислены в " +"man:rc.conf[5]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1895 +msgid "" +"sysinstall is incompatible with gbde-encrypted devices. All " +"[.filename]#*.bde# devices must be detached from the kernel before starting " +"sysinstall or it will crash during its initial probing for devices. To " +"detach the encrypted device used in the example, use the following command:" +msgstr "" +"`sysinstall` несовместим с устройствами, зашифрованными `gbde`. Все " +"устройства с именами `*.bde` должны быть отключены от ядра перед запуском " +"`sysinstall`, иначе он завершится аварией во время начального сканирования " +"устройств. Чтобы отключить зашифрованное устройство, использованное в " +"примере, выполните следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1899 +#, no-wrap +msgid "# gbde detach /dev/ad4s1c\n" +msgstr "# gbde detach /dev/ad4s1c\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:1903 +#, no-wrap +msgid "Disk Encryption with `geli`" +msgstr "Шифрование диска с помощью `geli`" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1908 +msgid "" +"An alternative cryptographic GEOM class is available using `geli`. This " +"control utility adds some features and uses a different scheme for doing " +"cryptographic work. It provides the following features:" +msgstr "" +"Альтернативный криптографический класс GEOM доступен с использованием " +"`geli`. Эта утилита управления предоставляет дополнительные возможности и " +"использует другую схему для выполнения криптографических операций. Она " +"обеспечивает следующие функции:" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1910 +msgid "" +"Utilizes the man:crypto[9] framework and automatically uses cryptographic " +"hardware when it is available." +msgstr "" +"Использует фреймворк man:crypto[9] и автоматически задействует " +"криптографическое оборудование, когда оно доступно." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1911 +msgid "" +"Supports multiple cryptographic algorithms such as AES-XTS, AES-CBC, and " +"Camellia-CBCAES." +msgstr "" +"Поддерживает несколько криптографических алгоритмов, таких как AES-XTS, AES-" +"CBC и Camellia-CBCAES." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1912 +msgid "" +"Allows the root partition to be encrypted. The passphrase used to access the " +"encrypted root partition will be requested during system boot." +msgstr "" +"Позволяет зашифровать корневой раздел. Пароль для доступа к зашифрованному " +"корневому разделу будет запрашиваться при загрузке системы." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1913 +msgid "Allows the use of two independent keys." +msgstr "Позволяет использование двух независимых ключей." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1914 +msgid "It is fast as it performs simple sector-to-sector encryption." +msgstr "Она быстрая, так как выполняет простое поблочное шифрование." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1915 +msgid "" +"Allows backup and restore of master keys. If a user destroys their keys, it " +"is still possible to get access to the data by restoring keys from the " +"backup." +msgstr "" +"Позволяет создавать резервные копии и восстанавливать мастер-ключи. Если " +"пользователь уничтожит свои ключи, доступ к данным всё ещё можно получить, " +"восстановив ключи из резервной копии." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1916 +msgid "" +"Allows a disk to attach with a random, one-time key which is useful for swap " +"partitions and temporary file systems." +msgstr "" +"Позволяет подключить диск с одноразовым случайным ключом, что полезно для " +"разделов подкачки и временных файловых систем." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1918 +msgid "More features and usage examples can be found in man:geli[8]." +msgstr "" +"Дополнительные возможности и примеры использования приведены в man:geli[8]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1924 +msgid "" +"The following example describes how to generate a key file which will be " +"used as part of the master key for the encrypted provider mounted under " +"[.filename]#/private#. The key file will provide some random data used to " +"encrypt the master key. The master key will also be protected by a " +"passphrase. The provider's sector size will be 4kB. The example describes " +"how to attach to the `geli` provider, create a file system on it, mount it, " +"work with it, and finally, how to detach it." +msgstr "" +"Следующий пример описывает, как сгенерировать ключевой файл, который будет " +"использоваться как часть мастер-ключа для зашифрованного провайдера, " +"монтируемого в [.filename]#/private#. Ключевой файл предоставит случайные " +"данные, используемые для шифрования мастер-ключа. Мастер-ключ также будет " +"защищён парольной фразой. Размер сектора провайдера составит 4 КБ. В примере " +"описано, как подключиться к провайдеру `geli`, создать на нём файловую " +"систему, смонтировать её, работать с ней и, наконец, отключить её." + +#. type: Block title +#: documentation/content/en/books/handbook/disks/_index.adoc:1926 +#, no-wrap +msgid "Procedure: Encrypting a Partition with `geli`" +msgstr "Процедура: Шифрование раздела с помощью `geli`" + +#. type: .procedure +#: documentation/content/en/books/handbook/disks/_index.adoc:1928 +msgid "Load `geli` Support" +msgstr "Загрузите поддержку `geli`" + +#. type: .procedure +#: documentation/content/en/books/handbook/disks/_index.adoc:1930 +msgid "" +"Support for `geli` is available as a loadable kernel module. To configure " +"the system to automatically load the module at boot time, add the following " +"line to [.filename]#/boot/loader.conf#:" +msgstr "" +"Поддержка `geli` доступна в виде загружаемого модуля ядра. Чтобы настроить " +"систему для автоматической загрузки модуля при загрузке, добавьте следующую " +"строку в файл [.filename]#/boot/loader.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1934 +#, no-wrap +msgid "geom_eli_load=\"YES\"\n" +msgstr "geom_eli_load=\"YES\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1937 +msgid "To load the kernel module now:" +msgstr "Чтобы загрузуть модуля ядра сейчас:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1941 +#, no-wrap +msgid "# kldload geom_eli\n" +msgstr "# kldload geom_eli\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1944 +msgid "" +"For a custom kernel, ensure the kernel configuration file contains these " +"lines:" +msgstr "" +"Для собственного ядра убедитесь, что файл конфигурации ядра содержит " +"следующие строки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1949 +#, no-wrap +msgid "" +"options GEOM_ELI\n" +"device crypto\n" +msgstr "" +"options GEOM_ELI\n" +"device crypto\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1952 +msgid "Generate the Master Key" +msgstr "Сгенеририруйте мастер-ключа" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1959 +msgid "" +"The following commands generate a master key that all data will be encrypted " +"with. This key can never be changed. Rather than using it directly, it is " +"encrypted with one or more user keys. The user keys are made up of an " +"optional combination of random bytes from a file, [.filename]#/root/" +"da2.key#, and/or a passphrase. In this case, the data source for the key " +"file is [.filename]#/dev/random#. This command also configures the sector " +"size of the provider ([.filename]#/dev/da2.eli#) as 4kB, for better " +"performance:" +msgstr "" +"Следующие команды создают мастер-ключ, которым будут зашифрованы все данные. " +"Этот ключ нельзя изменить. Вместо его прямого использования, он шифруется " +"одним или несколькими пользовательскими ключами. Пользовательские ключи " +"формируются из опциональной комбинации случайных байтов из файла " +"[.filename]#/root/da2.key# и/или парольной фразы. В данном случае источником " +"данных для ключевого файла является [.filename]#/dev/random#. Эта команда " +"также устанавливает размер сектора провайдера ([.filename]#/dev/da2.eli#) " +"равным 4 КБ для улучшения производительности:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1966 +#, no-wrap +msgid "" +"# dd if=/dev/random of=/root/da2.key bs=64 count=1\n" +"# geli init -K /root/da2.key -s 4096 /dev/da2\n" +"Enter new passphrase:\n" +"Reenter new passphrase:\n" +msgstr "" +"# dd if=/dev/random of=/root/da2.key bs=64 count=1\n" +"# geli init -K /root/da2.key -s 4096 /dev/da2\n" +"Enter new passphrase:\n" +"Reenter new passphrase:\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1969 +msgid "" +"It is not mandatory to use both a passphrase and a key file as either method " +"of securing the master key can be used in isolation." +msgstr "" +"Не обязательно использовать и парольную фразу, и файл ключа, так как каждый " +"из этих методов защиты главного ключа может применяться отдельно." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1972 +msgid "" +"If the key file is given as \"-\", standard input will be used. For " +"example, this command generates three key files:" +msgstr "" +"Если файл ключа указан как \"-\", будет использован стандартный ввод. " +"Например, следующая команда генерирует три файла ключей:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1976 +#, no-wrap +msgid "# cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2\n" +msgstr "# cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1979 +msgid "Attach the Provider with the Generated Key" +msgstr "Присоедините поставщика с сгенерированным Ключом" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1981 +msgid "" +"To attach the provider, specify the key file, the name of the disk, and the " +"passphrase:" +msgstr "" +"Для подключения провайдера укажите файл ключа, имя диска и парольную фразу:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1986 +#, no-wrap +msgid "" +"# geli attach -k /root/da2.key /dev/da2\n" +"Enter passphrase:\n" +msgstr "" +"# geli attach -k /root/da2.key /dev/da2\n" +"Enter passphrase:\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1989 +msgid "This creates a new device with an [.filename]#.eli# extension:" +msgstr "Это создает новое устройство с расширением [.filename]#.eli#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:1994 +#, no-wrap +msgid "" +"# ls /dev/da2*\n" +"/dev/da2 /dev/da2.eli\n" +msgstr "" +"# ls /dev/da2*\n" +"/dev/da2 /dev/da2.eli\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1997 +msgid "Create the New File System" +msgstr "Создайте новую файловую систему" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:1999 +msgid "" +"Next, format the device with the UFS file system and mount it on an existing " +"mount point:" +msgstr "" +"Далее отформатируйте устройство с файловой системой UFS и смонтируйте его в " +"существующей точке монтирования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2005 +#, no-wrap +msgid "" +"# dd if=/dev/random of=/dev/da2.eli bs=1m\n" +"# newfs /dev/da2.eli\n" +"# mount /dev/da2.eli /private\n" +msgstr "" +"# dd if=/dev/random of=/dev/da2.eli bs=1m\n" +"# newfs /dev/da2.eli\n" +"# mount /dev/da2.eli /private\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2008 +msgid "The encrypted file system should now be available for use:" +msgstr "" +"Зашифрованная файловая система теперь должна быть доступна для использования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2019 +#, no-wrap +msgid "" +"# df -H\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 248M 89M 139M 38% /\n" +"/devfs 1.0K 1.0K 0B 100% /dev\n" +"/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr\n" +"/dev/ad0s1d 989M 1.5M 909M 0% /tmp\n" +"/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var\n" +"/dev/da2.eli 150G 4.1K 138G 0% /private\n" +msgstr "" +"# df -H\n" +"Filesystem Size Used Avail Capacity Mounted on\n" +"/dev/ad0s1a 248M 89M 139M 38% /\n" +"/devfs 1.0K 1.0K 0B 100% /dev\n" +"/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr\n" +"/dev/ad0s1d 989M 1.5M 909M 0% /tmp\n" +"/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var\n" +"/dev/da2.eli 150G 4.1K 138G 0% /private\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2022 +msgid "" +"Once the work on the encrypted partition is done, and the [.filename]#/" +"private# partition is no longer needed, it is prudent to put the device into " +"cold storage by unmounting and detaching the `geli` encrypted partition from " +"the kernel:" +msgstr "" +"После завершения работы с зашифрованным разделом и когда раздел [.filename]#/" +"private# больше не нужен, рекомендуется перевести устройство в холодное " +"хранилище, размонтировав и отключив зашифрованный раздел `geli` от ядра:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2027 +#, no-wrap +msgid "" +"# umount /private\n" +"# geli detach da2.eli\n" +msgstr "" +"# umount /private\n" +"# geli detach da2.eli\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2030 +msgid "" +"An [.filename]#rc.d# script is provided to simplify the mounting of `geli`-" +"encrypted devices at boot time. For this example, add these lines to " +"[.filename]#/etc/rc.conf#:" +msgstr "" +"Для упрощения монтирования зашифрованных устройств `geli` во время загрузки " +"предоставляется скрипт [.filename]#rc.d#. Для данного примера добавьте " +"следующие строки в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2035 +#, no-wrap +msgid "" +"geli_devices=\"da2\"\n" +"geli_da2_flags=\"-k /root/da2.key\"\n" +msgstr "" +"geli_devices=\"da2\"\n" +"geli_da2_flags=\"-k /root/da2.key\"\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2045 +msgid "" +"This configures [.filename]#/dev/da2# as a `geli` provider with a master key " +"of [.filename]#/root/da2.key#. The system will automatically detach the " +"provider from the kernel before the system shuts down. During the startup " +"process, the script will prompt for the passphrase before attaching the " +"provider. Other kernel messages might be shown before and after the " +"password prompt. If the boot process seems to stall, look carefully for the " +"password prompt among the other messages. Once the correct passphrase is " +"entered, the provider is attached. The file system is then mounted, " +"typically by an entry in [.filename]#/etc/fstab#. Refer to " +"crossref:basics[mount-unmount,“Mounting and Unmounting File Systems”] for " +"instructions on how to configure a file system to mount at boot time." +msgstr "" +"В этом примере [.filename]#/dev/da2# настраивается как провайдер `geli` с " +"мастер-ключом [.filename]#/root/da2.key#. Система автоматически отключит " +"провайдер от ядра перед завершением работы. Во время загрузки скрипт " +"запросит парольную фразу перед подключением провайдера. До или после запроса " +"пароля могут отображаться другие сообщения ядра. Если процесс загрузки " +"кажется зависшим, внимательно поищите запрос пароля среди других сообщений. " +"После ввода правильной парольной фразы провайдер будет подключен. Файловая " +"система затем монтируется, обычно с помощью записи в [.filename]#/etc/" +"fstab#. Инструкции по настройке автоматического монтирования файловой " +"системы при загрузке можно найти в crossref:basics[mount-" +"unmount,“Монтирование и размонтирование файловых систем”]." + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:2047 +#, no-wrap +msgid "Encrypting Swap" +msgstr "Шифрование раздела подкачки" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2054 +msgid "" +"Like the encryption of disk partitions, encryption of swap space is used to " +"protect sensitive information. Consider an application that deals with " +"passwords. As long as these passwords stay in physical memory, they are not " +"written to disk and will be cleared after a reboot. However, if FreeBSD " +"starts swapping out memory pages to free space, the passwords may be written " +"to the disk unencrypted. Encrypting swap space can be a solution for this " +"scenario." +msgstr "" +"Как и шифрование разделов диска, шифрование раздела подкачки используется " +"для защиты конфиденциальной информации. Рассмотрим приложение, работающее с " +"паролями. Пока пароли находятся в физической памяти, они не записываются на " +"диск и будут удалены после перезагрузки. Однако если FreeBSD начнёт " +"выгружать страницы памяти для освобождения места, пароли могут быть записаны " +"на диск в незашифрованном виде. Решением в этом случае может быть шифрование " +"раздела подкачки." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2057 +msgid "" +"This section demonstrates how to configure an encrypted swap partition using " +"man:gbde[8] or man:geli[8] encryption. It assumes that [.filename]#/dev/" +"ada0s1b# is the swap partition." +msgstr "" +"В этой части показано, как настроить зашифрованный раздел подкачки с " +"использованием шифрования man:gbde[8] или man:geli[8]. Предполагается, что " +"раздел подкачки — это [.filename]#/dev/ada0s1b#." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2058 +#, no-wrap +msgid "Configuring Encrypted Swap" +msgstr "Настройка зашифрованного раздела подкачки" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2062 +msgid "" +"Swap partitions are not encrypted by default and should be cleared of any " +"sensitive data before continuing. To overwrite the current swap partition " +"with random garbage, execute the following command:" +msgstr "" +"Разделы подкачки по умолчанию не шифруются, и перед продолжением работы " +"следует удалить из них все конфиденциальные данные. Чтобы перезаписать " +"текущий раздел подкачки случайными данными, выполните следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2066 +#, no-wrap +msgid "# dd if=/dev/random of=/dev/ada0s1b bs=1m\n" +msgstr "# dd if=/dev/random of=/dev/ada0s1b bs=1m\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2069 +msgid "" +"To encrypt the swap partition using man:gbde[8], add the `.bde` suffix to " +"the swap line in [.filename]#/etc/fstab#:" +msgstr "" +"Для шифрования раздела подкачки с помощью man:gbde[8] добавьте суффикс " +"`.bde` к строке подкачки в [.filename]#/etc/fstab#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2074 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.bde\tnone\t\tswap\tsw\t\t0\t0\n" +msgstr "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.bde\tnone\t\tswap\tsw\t\t0\t0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2077 +msgid "" +"To instead encrypt the swap partition using man:geli[8], use the `.eli` " +"suffix:" +msgstr "" +"Для шифрования раздела подкачки с помощью man:geli[8] используйте суффикс " +"`.eli`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2082 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw\t\t0\t0\n" +msgstr "" +"# Device\t\tMountpoint\tFStype\tOptions\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw\t\t0\t0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2087 +msgid "" +"By default, man:geli[8] uses the AES algorithm with a key length of 128 " +"bits. Normally the default settings will suffice. If desired, these " +"defaults can be altered in the options field in [.filename]#/etc/fstab#. The " +"possible flags are:" +msgstr "" +"По умолчанию man:geli[8] использует алгоритм AES с длиной ключа 128 бит. " +"Обычно стандартных настроек достаточно. При необходимости эти значения по " +"умолчанию можно изменить в поле options файла [.filename]#/etc/fstab#. " +"Доступные флаги:" + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2088 +#, no-wrap +msgid "aalgo" +msgstr "aalgo" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2091 +msgid "" +"Data integrity verification algorithm used to ensure that the encrypted data " +"has not been tampered with. See man:geli[8] for a list of supported " +"algorithms." +msgstr "" +"Алгоритм проверки целостности данных, используемый для обеспечения " +"отсутствия изменений в зашифрованных данных. Список поддерживаемых " +"алгоритмов приведен в man:geli[8]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2092 +#, no-wrap +msgid "ealgo" +msgstr "ealgo" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2095 +msgid "" +"Encryption algorithm used to protect the data. See man:geli[8] for a list " +"of supported algorithms." +msgstr "" +"Алгоритм шифрования, используемый для защиты данных. Список поддерживаемых " +"алгоритмов приведён в man:geli[8]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2096 +#, no-wrap +msgid "keylen" +msgstr "keylen" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2099 +msgid "" +"The length of the key used for the encryption algorithm. See man:geli[8] " +"for the key lengths that are supported by each encryption algorithm." +msgstr "" +"Длина ключа, используемого для алгоритма шифрования. Подробнее о " +"поддерживаемых длинах ключей для каждого алгоритма шифрования смотрите в " +"man:geli[8]." + +#. type: Labeled list +#: documentation/content/en/books/handbook/disks/_index.adoc:2100 +#, no-wrap +msgid "sectorsize" +msgstr "sectorsize" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2104 +msgid "" +"The size of the blocks data is broken into before it is encrypted. Larger " +"sector sizes increase performance at the cost of higher storage overhead. " +"The recommended size is 4096 bytes." +msgstr "" +"Размер блоков, на которые разбиваются данные перед шифрованием. Увеличение " +"размера секторов повышает производительность за счет большего расхода " +"пространства. Рекомендуемый размер — 4096 байт." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2106 +msgid "" +"This example configures an encrypted swap partition using the AES-XTS " +"algorithm with a key length of 128 bits and a sectorsize of 4 kilobytes:" +msgstr "" +"В этом примере настраивается зашифрованный раздел подкачки с использованием " +"алгоритма AES-XTS с длиной ключа 128 бит и размером сектора 4 килобайта:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2111 +#, no-wrap +msgid "" +"# Device\t\tMountpoint\tFStype\tOptions\t\t\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw,ealgo=AES-XTS,keylen=128,sectorsize=4096\t0\t0\n" +msgstr "" +"# Device\t\tMountpoint\tFStype\tOptions\t\t\t\tDump\tPass#\n" +"/dev/ada0s1b.eli\tnone\t\tswap\tsw,ealgo=AES-XTS,keylen=128,sectorsize=4096\t0\t0\n" + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2113 +#, no-wrap +msgid "Encrypted Swap Verification" +msgstr "Проверка зашифрованного раздела подкачки" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2116 +msgid "" +"Once the system has rebooted, proper operation of the encrypted swap can be " +"verified using `swapinfo`." +msgstr "" +"После перезагрузки системы корректную работу зашифрованного раздела подкачки " +"можно проверить с помощью `swapinfo`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2118 +msgid "If man:gbde[8] is being used:" +msgstr "Если используется man:gbde[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2124 +#, no-wrap +msgid "" +"% swapinfo\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.bde 542720 0 542720 0\n" +msgstr "" +"% swapinfo\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.bde 542720 0 542720 0\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2127 +msgid "If man:geli[8] is being used:" +msgstr "Если используется man:geli[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2133 +#, no-wrap +msgid "" +"% swapinfo\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.eli 542720 0 542720 0\n" +msgstr "" +"% swapinfo\n" +"Device 1K-blocks Used Avail Capacity\n" +"/dev/ada0s1b.eli 542720 0 542720 0\n" + +#. type: Title == +#: documentation/content/en/books/handbook/disks/_index.adoc:2136 +#, no-wrap +msgid "Highly Available Storage (HAST)" +msgstr "Высокодоступное хранилище (HAST)" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2142 +msgid "" +"High availability is one of the main requirements in serious business " +"applications and highly-available storage is a key component in such " +"environments. In FreeBSD, the Highly Available STorage (HAST) framework " +"allows transparent storage of the same data across several physically " +"separated machines connected by a TCP/IP network. HAST can be understood as " +"a network-based RAID1 (mirror), and is similar to the DRBD(R) storage system " +"used in the GNU/Linux(R) platform. In combination with other high-" +"availability features of FreeBSD like CARP, HAST makes it possible to build " +"a highly-available storage cluster that is resistant to hardware failures." +msgstr "" +"Высокая доступность — одно из основных требований для серьёзных бизнес-" +"приложений, а высокодоступное хранилище является ключевым компонентом в " +"таких средах. В FreeBSD framework Highly Available STorage (HAST) " +"обеспечивает прозрачное хранение одних и тех же данных на нескольких " +"физически разделённых машинах, соединённых через сеть TCP/IP. HAST можно " +"рассматривать как сетевой RAID1 (зеркало), аналогичный системе хранения " +"DRBD(R), используемой на платформе GNU/Linux(R). В сочетании с другими " +"функциями высокой доступности FreeBSD, такими как CARP, HAST позволяет " +"создавать высокодоступные кластеры хранения, устойчивые к аппаратным сбоям." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2144 +msgid "The following are the main features of HAST:" +msgstr "Основные возможности HAST:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2146 +msgid "Can be used to mask I/O errors on local hard drives." +msgstr "" +"Может использоваться для маскировки ошибок ввода-вывода на локальных жестких " +"дисках." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2147 +msgid "" +"File system agnostic as it works with any file system supported by FreeBSD." +msgstr "" +"Файлово-системно агностичен, так как работает с любой файловой системой, " +"поддерживаемой FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2148 +msgid "" +"Efficient and quick resynchronization as only the blocks that were modified " +"during the downtime of a node are synchronized." +msgstr "" +"Эффективная и быстрая повторная синхронизация, так как синхронизируются " +"только блоки, изменённые во время простоя узла." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2149 +msgid "" +"Can be used in an already deployed environment to add additional redundancy." +msgstr "" +"Может использоваться в уже развернутой среде для добавления дополнительной " +"избыточности." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2150 +msgid "" +"Together with CARP, Heartbeat, or other tools, it can be used to build a " +"robust and durable storage system." +msgstr "" +"Вместе с CARP, Heartbeat или другими инструментами он может использоваться " +"для создания надежной и отказоустойчивой системы хранения данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2152 +msgid "After reading this section, you will know:" +msgstr "Прочитав этот раздел, вы узнаете:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2154 +msgid "What HAST is, how it works, and which features it provides." +msgstr "Что такое HAST, как он работает и какие возможности предоставляет." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2155 +msgid "How to set up and use HAST on FreeBSD." +msgstr "Как настроить и использовать HAST в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2156 +msgid "How to integrate CARP and man:devd[8] to build a robust storage system." +msgstr "" +"Как интегрировать CARP и man:devd[8] для создания надежной системы хранения " +"данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2158 +msgid "Before reading this section, you should:" +msgstr "Прежде чем читать этот раздел, вы должны:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2160 +msgid "" +"Understand UNIX(R) and FreeBSD basics (crossref:basics[basics,FreeBSD " +"Basics])." +msgstr "" +"Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics,Основы FreeBSD])." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2161 +msgid "" +"Know how to configure network interfaces and other core FreeBSD subsystems " +"(crossref:config[config-tuning,Configuration and Tuning])." +msgstr "" +"Знать, как настраивать сетевые интерфейсы и другие основные подсистемы " +"FreeBSD (crossref:config[config-tuning,Настройка и оптимизация])." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2162 +msgid "" +"Have a good understanding of FreeBSD networking (crossref:partiv[network-" +"communication,\"Network Communication\"])." +msgstr "" +"Хорошо разбираться в сетевых возможностях FreeBSD (crossref:partiv[network-" +"communication,\"Сетевое взаимодействие\"])." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2164 +msgid "" +"The HAST project was sponsored by The FreeBSD Foundation with support from " +"http://www.omc.net/[http://www.omc.net/] and http://www.transip.nl/[http://" +"www.transip.nl/]." +msgstr "" +"Проект HAST был поддержан The FreeBSD Foundation при участии http://" +"www.omc.net/[http://www.omc.net/] и http://www.transip.nl/[http://" +"www.transip.nl/]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2165 +#, no-wrap +msgid "HAST Operation" +msgstr "Работа HAST" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2169 +msgid "" +"HAST provides synchronous block-level replication between two physical " +"machines: the _primary_ node and the _secondary_ node. These two machines " +"together are referred to as a cluster." +msgstr "" +"HAST обеспечивает синхронную репликацию на блочном уровне между двумя " +"физическими машинами: _primary_ (основной) узел и _secondary_ (вторичный) " +"узел. Вместе эти две машины называются кластером." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2173 +msgid "" +"Since HAST works in a primary-secondary configuration, it allows only one of " +"the cluster nodes to be active at any given time. The primary node, also " +"called _active_, is the one which will handle all the I/O requests to HAST-" +"managed devices. The secondary node is automatically synchronized from the " +"primary node." +msgstr "" +"Поскольку HAST работает в конфигурации \"основной-вторичный\", он позволяет " +"только одному узлу кластера быть активным в любой момент времени. Основной " +"узел, также называемый _активным_, обрабатывает все запросы ввода-вывода для " +"устройств, управляемых HAST. Вторичный узел автоматически синхронизируется с " +"основным." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2175 +msgid "" +"The physical components of the HAST system are the local disk on primary " +"node, and the disk on the remote, secondary node." +msgstr "" +"Физические компоненты системы HAST включают локальный диск на основном узле " +"и диск на удаленном, резервном узле." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2179 +msgid "" +"HAST operates synchronously on a block level, making it transparent to file " +"systems and applications. HAST provides regular GEOM providers in " +"[.filename]#/dev/hast/# for use by other tools or applications. There is no " +"difference between using HAST-provided devices and raw disks or partitions." +msgstr "" +"HAST работает синхронно на блочном уровне, что делает его прозрачным для " +"файловых систем и приложений. HAST предоставляет обычные GEOM-провайдеры в " +"[.filename]#/dev/hast/# для использования другими инструментами или " +"приложениями. Нет разницы между использованием устройств, предоставляемых " +"HAST, и использованием обычных дисков или разделов." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2183 +msgid "" +"Each write, delete, or flush operation is sent to both the local disk and to " +"the remote disk over TCP/IP. Each read operation is served from the local " +"disk, unless the local disk is not up-to-date or an I/O error occurs. In " +"such cases, the read operation is sent to the secondary node." +msgstr "" +"Каждая операция записи, удаления или сброса данных отправляется как на " +"локальный диск, так и на удалённый диск через TCP/IP. Каждая операция чтения " +"выполняется с локального диска, если только локальный диск не содержит " +"актуальных данных или не возникает ошибка ввода-вывода. В таких случаях " +"операция чтения отправляется на вторичный узел." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2187 +msgid "" +"HAST tries to provide fast failure recovery. For this reason, it is " +"important to reduce synchronization time after a node's outage. To provide " +"fast synchronization, HAST manages an on-disk bitmap of dirty extents and " +"only synchronizes those during a regular synchronization, with an exception " +"of the initial sync." +msgstr "" +"HAST стремится обеспечить быстрое восстановление после сбоев. По этой " +"причине важно сократить время синхронизации после отказа узла. Для быстрой " +"синхронизации HAST использует битовую карту грязных экстентов на диске и " +"синхронизирует только их в процессе обычной синхронизации, за исключением " +"начальной синхронизации." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2190 +msgid "" +"There are many ways to handle synchronization. HAST implements several " +"replication modes to handle different synchronization methods:" +msgstr "" +"Существует множество способов обработки синхронизации. HAST реализует " +"несколько режимов репликации для работы с различными методами синхронизации:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2192 +msgid "" +"_memsync_: This mode reports a write operation as completed when the local " +"write operation is finished and when the remote node acknowledges data " +"arrival, but before actually storing the data. The data on the remote node " +"will be stored directly after sending the acknowledgement. This mode is " +"intended to reduce latency, but still provides good reliability. This mode " +"is the default." +msgstr "" +"_memsync_: В этом режиме операция записи считается завершённой, когда " +"локальная операция записи завершена и когда удалённый узел подтверждает " +"получение данных, но до фактического сохранения данных. Данные на удалённом " +"узле будут сохранены сразу после отправки подтверждения. Этот режим " +"предназначен для уменьшения задержки, но при этом обеспечивает хорошую " +"надёжность. Этот режим используется по умолчанию." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2193 +msgid "" +"_fullsync_: This mode reports a write operation as completed when both the " +"local write and the remote write complete. This is the safest and the " +"slowest replication mode." +msgstr "" +"_fullsync_: В этом режиме операция записи считается завершённой, когда " +"завершается как локальная, так и удалённая запись. Это самый безопасный и " +"самый медленный режим репликации." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2194 +msgid "" +"_async_: This mode reports a write operation as completed when the local " +"write completes. This is the fastest and the most dangerous replication " +"mode. It should only be used when replicating to a distant node where " +"latency is too high for other modes." +msgstr "" +"_async_: В этом режиме операция записи считается завершенной, как только " +"завершается локальная запись. Это самый быстрый и самый опасный режим " +"репликации. Он должен использоваться только при репликации на удаленный " +"узел, где задержка слишком высока для других режимов." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2195 +#, no-wrap +msgid "HAST Configuration" +msgstr "Конфигурация HAST" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2198 +msgid "The HAST framework consists of several components:" +msgstr "Фреймворк HAST состоит из нескольких компонентов:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2200 +msgid "" +"The man:hastd[8] daemon which provides data synchronization. When this " +"daemon is started, it will automatically load `geom_gate.ko`." +msgstr "" +"Демон man:hastd[8], который обеспечивает синхронизацию данных. При запуске " +"этого демона он автоматически загружает модуль `geom_gate.ko`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2201 +msgid "The userland management utility, man:hastctl[8]." +msgstr "" +"Служебная программа управления пользовательским пространством man:hastctl[8]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2202 +msgid "" +"The man:hast.conf[5] configuration file. This file must exist before " +"starting hastd." +msgstr "" +"Файл конфигурации man:hast.conf[5]. Этот файл должен существовать до запуска " +"hastd." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2204 +msgid "" +"Users who prefer to statically build `GEOM_GATE` support into the kernel " +"should add this line to the custom kernel configuration file, then rebuild " +"the kernel using the instructions in " +"crossref:kernelconfig[kernelconfig,Configuring the FreeBSD Kernel]:" +msgstr "" +"Пользователи, которые предпочитают статически встраивать поддержку " +"`GEOM_GATE` в ядро, должны добавить следующую строку в файл конфигурации " +"собственного ядра, а затем пересобрать ядро, следуя инструкциям в " +"crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2208 +#, no-wrap +msgid "options\tGEOM_GATE\n" +msgstr "options\tGEOM_GATE\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2214 +msgid "" +"The following example describes how to configure two nodes in primary-" +"secondary operation using HAST to replicate the data between the two. The " +"nodes will be called `hasta`, with an IP address of `172.16.0.1`, and " +"`hastb`, with an IP address of `172.16.0.2`. Both nodes will have a " +"dedicated hard drive [.filename]#/dev/ad6# of the same size for HAST " +"operation. The HAST pool, sometimes referred to as a resource or the GEOM " +"provider in [.filename]#/dev/hast/#, will be called `test`." +msgstr "" +"Следующий пример описывает настройку двух узлов в режиме первичный-вторичный " +"с использованием HAST для репликации данных между ними. Узлы будут " +"называться `hasta` с IP-адресом `172.16.0.1` и `hastb` с IP-адресом " +"`172.16.0.2`. Оба узла будут иметь выделенный жесткий диск [.filename]#/dev/" +"ad6# одинакового размера для работы с HAST. Пул HAST, иногда называемый " +"ресурсом или провайдером GEOM в [.filename]#/dev/hast/#, будет называться " +"`test`." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2218 +msgid "" +"Configuration of HAST is done using [.filename]#/etc/hast.conf#. This file " +"should be identical on both nodes. The simplest configuration is:" +msgstr "" +"Настройка HAST выполняется с помощью файла [.filename]#/etc/hast.conf#. Этот " +"файл должен быть идентичным на обоих узлах. Простейшая конфигурация выглядит " +"следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2231 +#, no-wrap +msgid "" +"resource test {\n" +"\ton hasta {\n" +"\t\tlocal /dev/ad6\n" +"\t\tremote 172.16.0.2\n" +"\t}\n" +"\ton hastb {\n" +"\t\tlocal /dev/ad6\n" +"\t\tremote 172.16.0.1\n" +"\t}\n" +"}\n" +msgstr "" +"resource test {\n" +"\ton hasta {\n" +"\t\tlocal /dev/ad6\n" +"\t\tremote 172.16.0.2\n" +"\t}\n" +"\ton hastb {\n" +"\t\tlocal /dev/ad6\n" +"\t\tremote 172.16.0.1\n" +"\t}\n" +"}\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2234 +msgid "For more advanced configuration, refer to man:hast.conf[5]." +msgstr "Для более сложной настройки обратитесь к man:hast.conf[5]." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2238 +msgid "" +"It is also possible to use host names in the `remote` statements if the " +"hosts are resolvable and defined either in [.filename]#/etc/hosts# or in the " +"local DNS." +msgstr "" +"Также можно использовать имена хостов в операторах `remote`, если хосты " +"разрешаемы и определены либо в [.filename]#/etc/hosts#, либо в локальном DNS." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2242 +msgid "" +"Once the configuration exists on both nodes, the HAST pool can be created. " +"Run these commands on both nodes to place the initial metadata onto the " +"local disk and to start man:hastd[8]:" +msgstr "" +"После создания конфигурации на обоих узлах можно создать пул HAST. Выполните " +"следующие команды на обоих узлах, чтобы разместить начальные метаданные на " +"локальном диске и запустить man:hastd[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2247 +#, no-wrap +msgid "" +"# hastctl create test\n" +"# service hastd onestart\n" +msgstr "" +"# hastctl create test\n" +"# service hastd onestart\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2253 +msgid "" +"It is _not_ possible to use GEOM providers with an existing file system or " +"to convert an existing storage to a HAST-managed pool. This procedure needs " +"to store some metadata on the provider and there will not be enough required " +"space available on an existing provider." +msgstr "" +"Невозможно использовать провайдеры GEOM с существующей файловой системой или " +"преобразовать существующее хранилище в пул под управлением HAST. Эта " +"процедура требует хранения некоторых метаданных на провайдере, и на " +"существующем провайдере не будет достаточно необходимого пространства." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2257 +msgid "" +"A HAST node's `primary` or `secondary` role is selected by an administrator, " +"or software like Heartbeat, using man:hastctl[8]. On the primary node, " +"`hasta`, issue this command:" +msgstr "" +"Роль `primary` или `secondary` узла HAST выбирается администратором или " +"программным обеспечением, таким как Heartbeat, с помощью man:hastctl[8]. На " +"основном узле `hasta` выполните следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2261 +#, no-wrap +msgid "# hastctl role primary test\n" +msgstr "# hastctl role primary test\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2264 +msgid "Run this command on the secondary node, `hastb`:" +msgstr "Выполните эту команду на дополнительном узле, `hastb`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2268 +#, no-wrap +msgid "# hastctl role secondary test\n" +msgstr "# hastctl role secondary test\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2271 +msgid "Verify the result by running `hastctl` on each node:" +msgstr "Проверьте результат, выполнив `hastctl` на каждом узле:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2275 +#, no-wrap +msgid "# hastctl status test\n" +msgstr "# hastctl status test\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2281 +msgid "" +"Check the `status` line in the output. If it says `degraded`, something is " +"wrong with the configuration file. It should say `complete` on each node, " +"meaning that the synchronization between the nodes has started. The " +"synchronization completes when `hastctl status` reports 0 bytes of `dirty` " +"extents." +msgstr "" +"Проверьте строку `status` в выводе. Если там указано `degraded`, значит, с " +"файлом конфигурации что-то не так. На каждом узле должно быть указано " +"`complete`, что означает начало синхронизации между узлами. Синхронизация " +"завершается, когда `hastctl status` сообщает о 0 байтах в `dirty` экстентах." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2286 +msgid "" +"The next step is to create a file system on the GEOM provider and mount it. " +"This must be done on the `primary` node. Creating the file system can take " +"a few minutes, depending on the size of the hard drive. This example " +"creates a UFS file system on [.filename]#/dev/hast/test#:" +msgstr "" +"Следующий шаг — создать файловую систему на провайдере GEOM и смонтировать " +"её. Это должно быть выполнено на узле `primary`. Создание файловой системы " +"может занять несколько минут в зависимости от размера жёсткого диска. В этом " +"примере создаётся файловая система UFS на [.filename]#/dev/hast/test#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2292 +#, no-wrap +msgid "" +"# newfs -U /dev/hast/test\n" +"# mkdir /hast/test\n" +"# mount /dev/hast/test /hast/test\n" +msgstr "" +"# newfs -U /dev/hast/test\n" +"# mkdir /hast/test\n" +"# mount /dev/hast/test /hast/test\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2296 +msgid "" +"Once the HAST framework is configured properly, the final step is to make " +"sure that HAST is started automatically during system boot. Add this line " +"to [.filename]#/etc/rc.conf#:" +msgstr "" +"После правильной настройки структуры HAST последним шагом является " +"обеспечение автоматического запуска HAST во время загрузки системы. Добавьте " +"следующую строку в [.filename]#/etc/rc.conf#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2300 +#, no-wrap +msgid "hastd_enable=\"YES\"\n" +msgstr "hastd_enable=\"YES\"\n" + +#. type: Title ==== +#: documentation/content/en/books/handbook/disks/_index.adoc:2302 +#, no-wrap +msgid "Failover Configuration" +msgstr "Конфигурация отказоустойчивости" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2306 +msgid "" +"The goal of this example is to build a robust storage system which is " +"resistant to the failure of any given node. If the primary node fails, the " +"secondary node is there to take over seamlessly, check and mount the file " +"system, and continue to work without missing a single bit of data." +msgstr "" +"Цель данного примера — создать надежную систему хранения, устойчивую к " +"отказу любого узла. Если основной узел выходит из строя, резервный узел " +"готов взять на себя управление без перерывов, проверить и смонтировать " +"файловую систему, продолжив работу без потери данных." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2312 +msgid "" +"To accomplish this task, the Common Address Redundancy Protocol (CARP) is " +"used to provide for automatic failover at the IP layer. CARP allows " +"multiple hosts on the same network segment to share an IP address. Set up " +"CARP on both nodes of the cluster according to the documentation available " +"in crossref:advanced-networking[carp,“Common Address Redundancy Protocol " +"(CARP)”]. In this example, each node will have its own management IP " +"address and a shared IP address of _172.16.0.254_. The primary HAST node of " +"the cluster must be the primary CARP node." +msgstr "" +"Для выполнения этой задачи используется Протокол избыточности общих адресов " +"(CARP — Common Address Redundancy Protocol), который обеспечивает " +"автоматическое переключение на резервный узел на IP-уровне. CARP позволяет " +"нескольким узлам в одном сетевом сегменте совместно использовать один IP-" +"адрес. Настройте CARP на обоих узлах кластера в соответствии с " +"документацией, доступной в crossref:advanced-networking[carp,“Common Address " +"Redundancy Protocol (CARP)”]. В этом примере каждый узел будет иметь свой " +"собственный управляющий IP-адрес и общий IP-адрес _172.16.0.254_. Основной " +"узел HAST в кластере должен быть основным узлом CARP." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2316 +msgid "" +"The HAST pool created in the previous section is now ready to be exported to " +"the other hosts on the network. This can be accomplished by exporting it " +"through NFS or Samba, using the shared IP address _172.16.0.254_. The only " +"problem which remains unresolved is an automatic failover should the primary " +"node fail." +msgstr "" +"Созданный в предыдущем разделе пул HAST теперь готов к экспорту на другие " +"узлы в сети. Это можно осуществить, экспортировав его через NFS или Samba, " +"используя общий IP-адрес _172.16.0.254_. Единственная оставшаяся нерешенной " +"проблема — это автоматический переход на резервный узел в случае отказа " +"основного." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2320 +msgid "" +"In the event of CARP interfaces going up or down, the FreeBSD operating " +"system generates a man:devd[8] event, making it possible to watch for state " +"changes on the CARP interfaces. A state change on the CARP interface is an " +"indication that one of the nodes failed or came back online. These state " +"change events make it possible to run a script which will automatically " +"handle the HAST failover." +msgstr "" +"В случае перехода интерфейсов CARP в состояние \"включен\" или \"выключен\", " +"операционная система FreeBSD генерирует событие man:devd[8], что позволяет " +"отслеживать изменения состояния интерфейсов CARP. Изменение состояния " +"интерфейса CARP указывает на то, что один из узлов вышел из строя или " +"вернулся в онлайн. Эти события изменения состояния позволяют запускать " +"скрипт для автоматической обработки переключения при отказе в HAST." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2322 +msgid "" +"To catch state changes on the CARP interfaces, add this configuration to " +"[.filename]#/etc/devd.conf# on each node, while replacing `<vhid>` with the " +"virtual host id and `<ifname>` with the associated interface name:" +msgstr "" +"Для отслеживания изменений состояния на интерфейсах CARP добавьте следующую " +"конфигурацию в [.filename]#/etc/devd.conf# на каждом узле, заменив `<vhid>` " +"на идентификатор виртуального хоста и `<ifname>` на имя соответствующего " +"интерфейса:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2331 +#, no-wrap +msgid "" +"notify 30 {\n" +"\tmatch \"system\" \"CARP\";\n" +"\tmatch \"subsystem\" \"<vhid>@<ifname>\";\n" +"\tmatch \"type\" \"MASTER\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch primary\";\n" +"};\n" +msgstr "" +"notify 30 {\n" +"\tmatch \"system\" \"CARP\";\n" +"\tmatch \"subsystem\" \"<vhid>@<ifname>\";\n" +"\tmatch \"type\" \"MASTER\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch primary\";\n" +"};\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2338 +#, no-wrap +msgid "" +"notify 30 {\n" +"\tmatch \"system\" \"CARP\";\n" +"\tmatch \"subsystem\" \"<vhid>@<ifname>\";\n" +"\tmatch \"type\" \"BACKUP\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch secondary\";\n" +"};\n" +msgstr "" +"notify 30 {\n" +"\tmatch \"system\" \"CARP\";\n" +"\tmatch \"subsystem\" \"<vhid>@<ifname>\";\n" +"\tmatch \"type\" \"BACKUP\";\n" +"\taction \"/usr/local/sbin/carp-hast-switch secondary\";\n" +"};\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2341 +msgid "" +"Restart man:devd[8] on both nodes to put the new configuration into effect:" +msgstr "" +"Перезапустите man:devd[8] на обоих узлах, чтобы новая конфигурация вступила " +"в силу:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2345 +#, no-wrap +msgid "# service devd restart\n" +msgstr "# service devd restart\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2349 +msgid "" +"When the specified interface state changes by going up or down , the system " +"generates a notification, allowing the man:devd[8] subsystem to run the " +"specified automatic failover script, [.filename]#/usr/local/sbin/carp-hast-" +"switch#. For further clarification about this configuration, refer to " +"man:devd.conf[5]." +msgstr "" +"Когда состояние указанного интерфейса изменяется (переход вверх или вниз), " +"система генерирует уведомление, позволяющее подсистеме man:devd[8] запустить " +"указанный скрипт автоматического переключения [.filename]#/usr/local/sbin/" +"carp-hast-switch#. Для дополнительных пояснений о данной конфигурации " +"обратитесь к man:devd.conf[5]." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2351 +msgid "Here is an example of an automated failover script:" +msgstr "Вот пример скрипта автоматического переключения при отказе:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2355 +#, no-wrap +msgid "#!/bin/sh\n" +msgstr "#!/bin/sh\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2359 +#, no-wrap +msgid "" +"# Original script by Freddie Cash <fjwcash@gmail.com>\n" +"# Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org>\n" +"# and Viktor Petersson <vpetersson@wireload.net>\n" +msgstr "" +"# Original script by Freddie Cash <fjwcash@gmail.com>\n" +"# Modified by Michael W. Lucas <mwlucas@BlackHelicopters.org>\n" +"# and Viktor Petersson <vpetersson@wireload.net>\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2362 +#, no-wrap +msgid "" +"# The names of the HAST resources, as listed in /etc/hast.conf\n" +"resources=\"test\"\n" +msgstr "" +"# The names of the HAST resources, as listed in /etc/hast.conf\n" +"resources=\"test\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2366 +#, no-wrap +msgid "" +"# delay in mounting HAST resource after becoming primary\n" +"# make your best guess\n" +"delay=3\n" +msgstr "" +"# delay in mounting HAST resource after becoming primary\n" +"# make your best guess\n" +"delay=3\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2370 +#, no-wrap +msgid "" +"# logging\n" +"log=\"local0.debug\"\n" +"name=\"carp-hast\"\n" +msgstr "" +"# logging\n" +"log=\"local0.debug\"\n" +"name=\"carp-hast\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2372 +#, no-wrap +msgid "# end of user configurable stuff\n" +msgstr "# end of user configurable stuff\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2377 +#, no-wrap +msgid "" +"case \"$1\" in\n" +"\tprimary)\n" +"\t\tlogger -p $log -t $name \"Switching to primary provider for ${resources}.\"\n" +"\t\tsleep ${delay}\n" +msgstr "" +"case \"$1\" in\n" +"\tprimary)\n" +"\t\tlogger -p $log -t $name \"Switching to primary provider for ${resources}.\"\n" +"\t\tsleep ${delay}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2383 +#, no-wrap +msgid "" +"\t\t# Wait for any \"hastd secondary\" processes to stop\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\twhile $( pgrep -lf \"hastd: ${disk} \\(secondary\\)\" > /dev/null 2>&1 ); do\n" +"\t\t\t\tsleep 1\n" +"\t\t\tdone\n" +msgstr "" +"\t\t# Wait for any \"hastd secondary\" processes to stop\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\twhile $( pgrep -lf \"hastd: ${disk} \\(secondary\\)\" > /dev/null 2>&1 ); do\n" +"\t\t\t\tsleep 1\n" +"\t\t\tdone\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2391 +#, no-wrap +msgid "" +"\t\t\t# Switch role for each disk\n" +"\t\t\thastctl role primary ${disk}\n" +"\t\t\tif [ $? -ne 0 ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"Unable to change role to primary for resource ${disk}.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\tdone\n" +msgstr "" +"\t\t\t# Switch role for each disk\n" +"\t\t\thastctl role primary ${disk}\n" +"\t\t\tif [ $? -ne 0 ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"Unable to change role to primary for resource ${disk}.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\tdone\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2398 +#, no-wrap +msgid "" +"\t\t# Wait for the /dev/hast/* devices to appear\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tfor I in $( jot 60 ); do\n" +"\t\t\t\t[ -c \"/dev/hast/${disk}\" ] && break\n" +"\t\t\t\tsleep 0.5\n" +"\t\t\tdone\n" +msgstr "" +"\t\t# Wait for the /dev/hast/* devices to appear\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tfor I in $( jot 60 ); do\n" +"\t\t\t\t[ -c \"/dev/hast/${disk}\" ] && break\n" +"\t\t\t\tsleep 0.5\n" +"\t\t\tdone\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2404 +#, no-wrap +msgid "" +"\t\t\tif [ ! -c \"/dev/hast/${disk}\" ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"GEOM provider /dev/hast/${disk} did not appear.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\tdone\n" +msgstr "" +"\t\t\tif [ ! -c \"/dev/hast/${disk}\" ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"GEOM provider /dev/hast/${disk} did not appear.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\tdone\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2406 +#, no-wrap +msgid "\t\tlogger -p $log -t $name \"Role for HAST resources ${resources} switched to primary.\"\n" +msgstr "\t\tlogger -p $log -t $name \"Role for HAST resources ${resources} switched to primary.\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2413 +#, no-wrap +msgid "" +"\t\tlogger -p $log -t $name \"Mounting disks.\"\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tmkdir -p /hast/${disk}\n" +"\t\t\tfsck -p -y -t ufs /dev/hast/${disk}\n" +"\t\t\tmount /dev/hast/${disk} /hast/${disk}\n" +"\t\tdone\n" +msgstr "" +"\t\tlogger -p $log -t $name \"Mounting disks.\"\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tmkdir -p /hast/${disk}\n" +"\t\t\tfsck -p -y -t ufs /dev/hast/${disk}\n" +"\t\t\tmount /dev/hast/${disk} /hast/${disk}\n" +"\t\tdone\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2415 +#, no-wrap +msgid "\t;;\n" +msgstr "\t;;\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2418 +#, no-wrap +msgid "" +"\tsecondary)\n" +"\t\tlogger -p $log -t $name \"Switching to secondary provider for ${resources}.\"\n" +msgstr "" +"\tsecondary)\n" +"\t\tlogger -p $log -t $name \"Switching to secondary provider for ${resources}.\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2436 +#, no-wrap +msgid "" +"\t\t# Switch roles for the HAST resources\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tif ! mount | grep -q \"^/dev/hast/${disk} on \"\n" +"\t\t\tthen\n" +"\t\t\telse\n" +"\t\t\t\tumount -f /hast/${disk}\n" +"\t\t\tfi\n" +"\t\t\tsleep $delay\n" +"\t\t\thastctl role secondary ${disk} 2>&1\n" +"\t\t\tif [ $? -ne 0 ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"Unable to switch role to secondary for resource ${disk}.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\t\tlogger -p $log -t $name \"Role switched to secondary for resource ${disk}.\"\n" +"\t\tdone\n" +"\t;;\n" +"esac\n" +msgstr "" +"\t\t# Switch roles for the HAST resources\n" +"\t\tfor disk in ${resources}; do\n" +"\t\t\tif ! mount | grep -q \"^/dev/hast/${disk} on \"\n" +"\t\t\tthen\n" +"\t\t\telse\n" +"\t\t\t\tumount -f /hast/${disk}\n" +"\t\t\tfi\n" +"\t\t\tsleep $delay\n" +"\t\t\thastctl role secondary ${disk} 2>&1\n" +"\t\t\tif [ $? -ne 0 ]; then\n" +"\t\t\t\tlogger -p $log -t $name \"Unable to switch role to secondary for resource ${disk}.\"\n" +"\t\t\t\texit 1\n" +"\t\t\tfi\n" +"\t\t\tlogger -p $log -t $name \"Role switched to secondary for resource ${disk}.\"\n" +"\t\tdone\n" +"\t;;\n" +"esac\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2439 +msgid "" +"In a nutshell, the script takes these actions when a node becomes primary:" +msgstr "" +"В двух словах, скрипт выполняет следующие действия, когда узел становится " +"основным:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2441 +msgid "Promotes the HAST pool to primary on the other node." +msgstr "Переводит пул HAST в primary на другом узле." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2442 +msgid "Checks the file system under the HAST pool." +msgstr "Проверяет файловую систему в пуле HAST." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2443 +msgid "Mounts the pool." +msgstr "Подключает пул." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2445 +msgid "When a node becomes secondary:" +msgstr "Когда узел становится вторичным:" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2447 +msgid "Unmounts the HAST pool." +msgstr "Размонтирует пул HAST." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2448 +msgid "Degrades the HAST pool to secondary." +msgstr "Переводит пул HAST в состояние secondary." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2453 +msgid "" +"This is just an example script which serves as a proof of concept. It does " +"not handle all the possible scenarios and can be extended or altered in any " +"way, for example, to start or stop required services." +msgstr "" +"Это просто пример скрипта, который служит доказательством концепции. Он не " +"обрабатывает все возможные сценарии и может быть расширен или изменён любым " +"способом, например, для запуска или остановки необходимых служб." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2459 +msgid "" +"For this example, a standard UFS file system was used. To reduce the time " +"needed for recovery, a journal-enabled UFS or ZFS file system can be used " +"instead." +msgstr "" +"Для этого примера использовалась стандартная файловая система UFS. Чтобы " +"сократить время, необходимое для восстановления, можно использовать " +"журналируемую UFS или файловую систему ZFS." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2462 +msgid "" +"Instead of using the highly available storage locally, it can also be shared " +"to other computers on a network via crossref:network-servers[network-" +"nfs,NFS], crossref:network-servers[network-iscsi,iSCSI], man:sshfs[1], or " +"programs in ports (i.e. package:net/samba419[])." +msgstr "" +"Вместо использования высокодоступного хранилища локально, его также можно " +"предоставить в общее пользование другим компьютерам в сети через " +"crossref:network-servers[network-nfs,NFS], crossref:network-servers[network-" +"iscsi,iSCSI], man:sshfs[1] или программы из портов (например, package:net/" +"samba419[])." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2464 +msgid "" +"More detailed information with additional examples can be found at http://" +"wiki.FreeBSD.org/HAST[http://wiki.FreeBSD.org/HAST]." +msgstr "" +"Более подробная информация с дополнительными примерами доступна по адресу " +"http://wiki.FreeBSD.org/HAST[http://wiki.FreeBSD.org/HAST]." + +#. type: Title === +#: documentation/content/en/books/handbook/disks/_index.adoc:2465 +#, no-wrap +msgid "Troubleshooting" +msgstr "Устранение неполадок" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2470 +msgid "" +"HAST should generally work without issues. However, as with any other " +"software product, there may be times when it does not work as supposed. The " +"sources of the problems may be different, but the rule of thumb is to ensure " +"that the time is synchronized between the nodes of the cluster." +msgstr "" +"HAST, как правило, должен работать без проблем. Однако, как и с любым другим " +"программным продуктом, могут возникнуть ситуации, когда он работает не так, " +"как предполагается. Источники проблем могут быть разными, но главное правило " +"— обеспечить синхронизацию времени между узлами кластера." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2474 +msgid "" +"When troubleshooting HAST, the debugging level of man:hastd[8] should be " +"increased by starting `hastd` with `-d`. This argument may be specified " +"multiple times to further increase the debugging level. Consider also using " +"`-F`, which starts `hastd` in the foreground." +msgstr "" +"При устранении неполадок HAST уровень отладки man:hastd[8] следует повысить, " +"запустив `hastd` с параметром `-d`. Этот аргумент можно указать несколько " +"раз для дальнейшего повышения уровня отладки. Также рекомендуется " +"использовать `-F`, что запускает `hastd` в foreground." + +#. type: Title ==== +#: documentation/content/en/books/handbook/disks/_index.adoc:2476 +#, no-wrap +msgid "Recovering from the Split-brain Condition" +msgstr "Восстановление после раскола кластера" + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2481 +msgid "" +"_Split-brain_ occurs when the nodes of the cluster are unable to communicate " +"with each other, and both are configured as primary. This is a dangerous " +"condition because it allows both nodes to make incompatible changes to the " +"data. This problem must be corrected manually by the system administrator." +msgstr "" +"_Раскол_ (split-brain) возникает, когда узлы кластера не могут связаться " +"друг с другом, и оба настроены как первичные. Это опасная ситуация, так как " +"она позволяет обоим узлам вносить противоречивые изменения в данные. Данная " +"проблема должна быть устранена вручную системным администратором." + +#. type: Plain text +#: documentation/content/en/books/handbook/disks/_index.adoc:2485 +msgid "" +"The administrator must either decide which node has more important changes, " +"or perform the merge manually. Then, let HAST perform full synchronization " +"of the node which has the broken data. To do this, issue these commands on " +"the node which needs to be resynchronized:" +msgstr "" +"Администратор должен либо определить, на каком узле находятся более важные " +"изменения, либо выполнить слияние вручную. Затем следует позволить HAST " +"выполнить полную синхронизацию узла с повреждёнными данными. Для этого " +"выполните следующие команды на узле, который требует повторной синхронизации:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/disks/_index.adoc:2491 +#, no-wrap +msgid "" +"# hastctl role init test\n" +"# hastctl create test\n" +"# hastctl role secondary test\n" +msgstr "" +"# hastctl role init test\n" +"# hastctl create test\n" +"# hastctl role secondary test\n" diff --git a/documentation/content/ru/books/handbook/dtrace/_index.adoc b/documentation/content/ru/books/handbook/dtrace/_index.adoc new file mode 100644 index 0000000000..a36b03b848 --- /dev/null +++ b/documentation/content/ru/books/handbook/dtrace/_index.adoc @@ -0,0 +1,247 @@ +--- +description: 'Эта глава объясняет, как использовать DTrace в FreeBSD' +next: books/handbook/usb-device-mode +params: + path: /books/handbook/dtrace/ +part: 'Часть III. Администрирование системы' +prev: books/handbook/cutting-edge +showBookMenu: true +tags: ["DTrace", "features", "guide", "tutorial", "kldload"] +title: 'Глава 27. DTrace' +weight: 31 +--- + +[[dtrace]] += DTrace +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:sectnumoffset: 27 +:partnums: +:source-highlighter: rouge +:experimental: +:images-path: books/handbook/dtrace/ + +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::[] + +[[dtrace-synopsis]] +== Обзор + +DTrace, также известный как Dynamic Tracing, был разработан Sun(TM) в качестве инструмента для выявления узких мест в производительности рабочих и предпроизводственных систем. Помимо диагностики проблем с производительностью, DTrace можно использовать для исследования и отладки неожиданного поведения как в ядре FreeBSD, так и в пользовательских программах. + +DTrace — это выдающийся инструмент для профилирования, обладающий впечатляющим набором возможностей для диагностики проблем в системе. Его также можно использовать для запуска предварительно написанных скриптов, чтобы воспользоваться его функциональностью. Пользователи могут создавать собственные утилиты, используя язык DTrace D, что позволяет настраивать профилирование в соответствии с конкретными потребностями. + +Реализация FreeBSD обеспечивает полную поддержку DTrace в ядре и экспериментальную поддержку DTrace в пользовательском пространстве. DTrace в пользовательском пространстве позволяет пользователям выполнять трассировку границ функций для программ пользовательского пространства с использованием провайдера `pid`, а также вставлять статические зонды в программы пользовательского пространства для последующей трассировки. Некоторые порты, такие как package:databases/postgresql12-server[] и package:lang/php74[], имеют опцию DTrace для включения статических зондов. + +Официальное руководство по DTrace поддерживается проектом illumos по адресу https://illumos.org/books/dtrace/bookinfo.html[illumos Dynamic Tracing Guide]. + +Прочитав эту главу, вы будете знать: + +* Что такое DTrace и какие возможности он предоставляет. +* Различия между реализацией DTrace в Solaris(TM) и реализацией, предоставляемой FreeBSD. +* Как включить и использовать DTrace в FreeBSD. + +Прежде чем читать эту главу, вы должны: + +* Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics,Основы FreeBSD]). +* Иметь некоторое представление о безопасности и о том, как она относится к FreeBSD (crossref:security[security,Безопасность]). + +[[dtrace-implementation]] +== Различия в реализациях + +В то время как DTrace в FreeBSD схож с тем, что представлен в Solaris(TM), различия существуют. Основное различие заключается в том, что в FreeBSD DTrace реализован в виде набора модулей ядра, и DTrace нельзя использовать до загрузки этих модулей. Чтобы загрузить все необходимые модули: + +[source, shell] +.... +# kldload dtraceall +.... + +Начиная с FreeBSD 10.0-RELEASE, модули автоматически загружаются при запуске man:dtrace[1]. + +FreeBSD использует параметр ядра `DDB_CTF` для включения поддержки загрузки данных man:ctf[5] из модулей ядра и самого ядра. `CTF` — это Compact C Type Format от Solaris(TM), который инкапсулирует упрощённую форму отладочной информации, аналогичную `DWARF` и устаревшему stabs. Данные `CTF` добавляются в бинарные файлы с помощью инструментов сборки man:ctfconvert[1] и man:ctfmerge[1]. Утилита `ctfconvert` обрабатывает отладочные секции `DWARF``ELF`, созданные компилятором, а `ctfmerge` объединяет секции `CTF``ELF` из объектных файлов в исполняемые файлы или разделяемые библиотеки. + +В FreeBSD есть некоторые провайдеры, которых нет в Solaris(TM). Наиболее примечательным является провайдер `dtmalloc`, который позволяет трассировать man:malloc[9] по типам в ядре FreeBSD. Некоторые провайдеры, присутствующие в Solaris(TM), такой как `cpc`, отсутствуют в FreeBSD. Они могут появиться в будущих версиях FreeBSD. Кроме того, некоторые провайдеры, доступные в обеих операционных системах, несовместимы в том смысле, что их пробы имеют разные типы аргументов. Таким образом, скрипты `D`, написанные для Solaris(TM), могут работать или не работать без изменений в FreeBSD, и наоборот. + +Из-за различий в безопасности, только пользователь `root` может использовать DTrace в FreeBSD. В Solaris(TM) есть несколько проверок безопасности низкого уровня, которые пока отсутствуют в FreeBSD. Поэтому доступ к [.filename]#/dev/dtrace/dtrace# строго ограничился только пользователем `root`. + +DTrace распространяется под лицензией Common Development and Distribution License (`CDDL`). Чтобы ознакомиться с текстом этой лицензии в FreeBSD, см. [.filename]#/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE# или просмотрите её онлайн по адресу http://opensource.org/licenses/CDDL-1.0[http://opensource.org/licenses/CDDL-1.0]. Хотя ядро FreeBSD с поддержкой DTrace лицензировано под `BSD`, лицензия `CDDL` применяется при распространении модулей в бинарной форме или при загрузке бинарных файлов. + +[[dtrace-enable]] +== Включение поддержки DTrace + +В FreeBSD 9.2 и 10.0 поддержка DTrace встроена в ядро [.filename]#GENERIC#. Пользователям более ранних версий FreeBSD или тем, кто предпочитает статически компилировать поддержку DTrace, следует добавить следующие строки в пользовательский конфигурационный файл ядра и перекомпилировать ядро, следуя инструкциям в crossref:kernelconfig[kernelconfig,Настройка ядра FreeBSD]: + +[.programlisting] +.... +options KDTRACE_HOOKS +options DDB_CTF +makeoptions DEBUG=-g +makeoptions WITH_CTF=1 +.... + +Пользователи архитектуры AMD64 также должны добавить эту строку: + +[.programlisting] +.... +options KDTRACE_FRAME +.... + +Эта опция обеспечивает поддержку man:dtrace_fbt[4]. Хотя DTrace будет работать без этой опции, поддержка трассировки входов и выходов функций будет ограничена. + +После перезагрузки системы FreeBSD с новым ядром или загрузки модулей DTrace с помощью `kldload dtraceall`, установите текущий DTrace Toolkit (package:sysutils/dtrace-toolkit[]) — набор готовых скриптов для сбора системной информации. Включает скрипты для проверки открытых файлов, использования памяти, загрузки CPU и многое другое. Некоторые скрипты также присутствуют в базовой системе FreeBSD — см. [.filename]#/usr/share/dtrace#. + +[NOTE] +==== +Скрипты в каталоге [.filename]#/usr/share/dtrace# были специально портированы для FreeBSD. Не все скрипты из DTrace Toolkit будут работать на FreeBSD без изменений, и для некоторых может потребоваться доработка. +==== + +Набор инструментов DTrace включает множество скриптов на специальном языке DTrace. Этот язык называется D и очень похож на C++. Подробное обсуждение языка выходит за рамки данного документа. Обратитесь к странице man:d[7] для обзора языка D в FreeBSD. Язык D также подробно рассмотрен в https://www.illumos.org/books/dtrace/bookinfo.html[illumos Dynamic Tracing Guide]. + +[[dtrace-out-of-kernel]] +== Включение DTrace во внешних модулях ядра + +Чтобы добавить поддержку DTrace во внешний модуль ядра, что полезно для разработки и отладки, включите следующую строку в Makefile модуля: + +[.programlisting] +.... +CFLAGS+= -DKDTRACE_HOOKS +.... + +Этот флаг включает DTrace-хуки во время компиляции, позволяя проводить расширенную отладку и мониторинг модуля. Убедитесь, что модуль перекомпилирован после этого изменения, чтобы активировать функциональность DTrace. + +[[dtrace-using]] +== Использование DTrace + +Скрипты DTrace состоят из списка одного или нескольких _проб_ (точек инструментирования), где каждая проба связана с действием. Когда условие для пробы выполняется, запускается соответствующее действие. Например, действие может происходить при открытии файла, запуске процесса или выполнении строки кода. Действие может заключаться в записи некоторой информации или изменении контекстных переменных. Чтение и запись контекстных переменных позволяют пробам обмениваться информацией и совместно анализировать взаимосвязь различных событий. + +Для просмотра всех проб администратор может выполнить следующую команду: + +[source, shell] +.... +# dtrace -l | more +.... + +У каждого зонда есть `ID`, `PROVIDER` (например, `dtrace` или `fbt`), `MODULE` и `FUNCTION NAME`. Дополнительную информацию об этой команде можно найти в man:dtrace[1]. + +Примеры в этом разделе дают общее представление о том, как использовать два полностью поддерживаемых скрипта из DTrace Toolkit: [.filename]#hotkernel# и [.filename]#procsystime#. + +Скрипт [.filename]#hotkernel# предназначен для определения функции, которая использует наибольшее время ядра. Он выводит информацию, похожую на следующую: + +[source, shell] +.... +# cd /usr/local/share/dtrace-toolkit +# ./hotkernel +Sampling... Hit Ctrl-C to end. +.... + +Как указано, используйте комбинацию клавиш kbd:[Ctrl+C], чтобы остановить процесс. После завершения скрипт отобразит список функций ядра и информацию о времени, сортируя вывод в порядке возрастания времени: + +[source, shell] +.... +kernel`_thread_lock_flags 2 0.0% +0xc1097063 2 0.0% +kernel`sched_userret 2 0.0% +kernel`kern_select 2 0.0% +kernel`generic_copyin 3 0.0% +kernel`_mtx_assert 3 0.0% +kernel`vm_fault 3 0.0% +kernel`sopoll_generic 3 0.0% +kernel`fixup_filename 4 0.0% +kernel`_isitmyx 4 0.0% +kernel`find_instance 4 0.0% +kernel`_mtx_unlock_flags 5 0.0% +kernel`syscall 5 0.0% +kernel`DELAY 5 0.0% +0xc108a253 6 0.0% +kernel`witness_lock 7 0.0% +kernel`read_aux_data_no_wait 7 0.0% +kernel`Xint0x80_syscall 7 0.0% +kernel`witness_checkorder 7 0.0% +kernel`sse2_pagezero 8 0.0% +kernel`strncmp 9 0.0% +kernel`spinlock_exit 10 0.0% +kernel`_mtx_lock_flags 11 0.0% +kernel`witness_unlock 15 0.0% +kernel`sched_idletd 137 0.3% +0xc10981a5 42139 99.3% +.... + +Этот скрипт также работает с модулями ядра. Чтобы использовать эту возможность, запустите скрипт с ключом `-m`: + +[source, shell] +.... +# ./hotkernel -m +Sampling... Hit Ctrl-C to end. +^C +MODULE COUNT PCNT +0xc107882e 1 0.0% +0xc10e6aa4 1 0.0% +0xc1076983 1 0.0% +0xc109708a 1 0.0% +0xc1075a5d 1 0.0% +0xc1077325 1 0.0% +0xc108a245 1 0.0% +0xc107730d 1 0.0% +0xc1097063 2 0.0% +0xc108a253 73 0.0% +kernel 874 0.4% +0xc10981a5 213781 99.6% +.... + +Скрипт [.filename]#procsystime# захватывает и выводит время использования системных вызовов для заданного идентификатора процесса (`PID`) или имени процесса. В следующем примере был создан новый экземпляр [.filename]#/bin/csh#. Затем был запущен [.filename]#procsystime#, который оставался в ожидании, пока в другом экземпляре `csh` было набрано несколько команд. Вот результаты этого теста: + +[source, shell] +.... +# ./procsystime -n csh +Tracing... Hit Ctrl-C to end... +^C + +Elapsed Times for processes csh, + + SYSCALL TIME (ns) + getpid 6131 + sigreturn 8121 + close 19127 + fcntl 19959 + dup 26955 + setpgid 28070 + stat 31899 + setitimer 40938 + wait4 62717 + sigaction 67372 + sigprocmask 119091 + gettimeofday 183710 + write 263242 + execve 492547 + ioctl 770073 + vfork 3258923 + sigsuspend 6985124 + read 3988049784 +.... + +Как показано, системный вызов man:read[2] использовал наибольшее время в наносекундах, тогда как системный вызов man:getpid[2] использовал наименьшее количество времени. diff --git a/documentation/content/ru/books/handbook/dtrace/_index.po b/documentation/content/ru/books/handbook/dtrace/_index.po new file mode 100644 index 0000000000..2438892891 --- /dev/null +++ b/documentation/content/ru/books/handbook/dtrace/_index.po @@ -0,0 +1,723 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-08-19 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookdtrace_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/books/handbook/dtrace/_index.adoc:1 +#, no-wrap +msgid "This chapter explains how to use DTrace in FreeBSD" +msgstr "Эта глава объясняет, как использовать DTrace в FreeBSD" + +#. type: Yaml Front Matter Hash Value: part +#: documentation/content/en/books/handbook/dtrace/_index.adoc:1 +#, no-wrap +msgid "Part III. System Administration" +msgstr "Часть III. Администрирование системы" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/handbook/dtrace/_index.adoc:1 +#, no-wrap +msgid "Chapter 27. DTrace" +msgstr "Глава 27. DTrace" + +#. type: Title = +#: documentation/content/en/books/handbook/dtrace/_index.adoc:15 +#, no-wrap +msgid "DTrace" +msgstr "DTrace" + +#. type: Title == +#: documentation/content/en/books/handbook/dtrace/_index.adoc:53 +#, no-wrap +msgid "Synopsis" +msgstr "Обзор" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:57 +msgid "" +"DTrace, also known as Dynamic Tracing, was developed by Sun(TM) as a tool " +"for locating performance bottlenecks in production and pre-production " +"systems. In addition to diagnosing performance problems, DTrace can be used " +"to help investigate and debug unexpected behavior in both the FreeBSD kernel " +"and in userland programs." +msgstr "" +"DTrace, также известный как Dynamic Tracing, был разработан Sun(TM) в " +"качестве инструмента для выявления узких мест в производительности рабочих и " +"предпроизводственных систем. Помимо диагностики проблем с " +"производительностью, DTrace можно использовать для исследования и отладки " +"неожиданного поведения как в ядре FreeBSD, так и в пользовательских " +"программах." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:61 +msgid "" +"DTrace is a remarkable profiling tool, with an impressive array of features " +"for diagnosing system issues. It may also be used to run pre-written " +"scripts to take advantage of its capabilities. Users can author their own " +"utilities using the DTrace D Language, allowing them to customize their " +"profiling based on specific needs." +msgstr "" +"DTrace — это выдающийся инструмент для профилирования, обладающий " +"впечатляющим набором возможностей для диагностики проблем в системе. Его " +"также можно использовать для запуска предварительно написанных скриптов, " +"чтобы воспользоваться его функциональностью. Пользователи могут создавать " +"собственные утилиты, используя язык DTrace D, что позволяет настраивать " +"профилирование в соответствии с конкретными потребностями." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:65 +msgid "" +"The FreeBSD implementation provides full support for kernel DTrace and " +"experimental support for userland DTrace. Userland DTrace allows users to " +"perform function boundary tracing for userland programs using the `pid` " +"provider, and to insert static probes into userland programs for later " +"tracing. Some ports, such as package:databases/postgresql12-server[] and " +"package:lang/php74[] have a DTrace option to enable static probes." +msgstr "" +"Реализация FreeBSD обеспечивает полную поддержку DTrace в ядре и " +"экспериментальную поддержку DTrace в пользовательском пространстве. DTrace в " +"пользовательском пространстве позволяет пользователям выполнять трассировку " +"границ функций для программ пользовательского пространства с использованием " +"провайдера `pid`, а также вставлять статические зонды в программы " +"пользовательского пространства для последующей трассировки. Некоторые порты, " +"такие как package:databases/postgresql12-server[] и package:lang/php74[], " +"имеют опцию DTrace для включения статических зондов." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:67 +msgid "" +"The official guide to DTrace is maintained by the illumos project at https://" +"illumos.org/books/dtrace/bookinfo.html[illumos Dynamic Tracing Guide]." +msgstr "" +"Официальное руководство по DTrace поддерживается проектом illumos по адресу " +"https://illumos.org/books/dtrace/bookinfo.html[illumos Dynamic Tracing " +"Guide]." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:69 +msgid "After reading this chapter, you will know:" +msgstr "Прочитав эту главу, вы будете знать:" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:71 +msgid "What DTrace is and what features it provides." +msgstr "Что такое DTrace и какие возможности он предоставляет." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:72 +msgid "" +"Differences between the Solaris(TM) DTrace implementation and the one " +"provided by FreeBSD." +msgstr "" +"Различия между реализацией DTrace в Solaris(TM) и реализацией, " +"предоставляемой FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:73 +msgid "How to enable and use DTrace on FreeBSD." +msgstr "Как включить и использовать DTrace в FreeBSD." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:75 +msgid "Before reading this chapter, you should:" +msgstr "Прежде чем читать эту главу, вы должны:" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:77 +msgid "" +"Understand UNIX(R) and FreeBSD basics (crossref:basics[basics,FreeBSD " +"Basics])." +msgstr "" +"Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics,Основы FreeBSD])." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:78 +msgid "" +"Have some familiarity with security and how it pertains to FreeBSD " +"(crossref:security[security,Security])." +msgstr "" +"Иметь некоторое представление о безопасности и о том, как она относится к " +"FreeBSD (crossref:security[security,Безопасность])." + +#. type: Title == +#: documentation/content/en/books/handbook/dtrace/_index.adoc:80 +#, no-wrap +msgid "Implementation Differences" +msgstr "Различия в реализациях" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:85 +msgid "" +"While the DTrace in FreeBSD is similar to that found in Solaris(TM), " +"differences do exist. The primary difference is that in FreeBSD, DTrace is " +"implemented as a set of kernel modules and DTrace can not be used until the " +"modules are loaded. To load all of the necessary modules:" +msgstr "" +"В то время как DTrace в FreeBSD схож с тем, что представлен в Solaris(TM), " +"различия существуют. Основное различие заключается в том, что в FreeBSD " +"DTrace реализован в виде набора модулей ядра, и DTrace нельзя использовать " +"до загрузки этих модулей. Чтобы загрузить все необходимые модули:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:89 +#, no-wrap +msgid "# kldload dtraceall\n" +msgstr "# kldload dtraceall\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:92 +msgid "" +"Beginning with FreeBSD 10.0-RELEASE, the modules are automatically loaded " +"when man:dtrace[1] is run." +msgstr "" +"Начиная с FreeBSD 10.0-RELEASE, модули автоматически загружаются при запуске " +"man:dtrace[1]." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:97 +msgid "" +"FreeBSD uses the `DDB_CTF` kernel option to enable support for loading " +"man:ctf[5] data from kernel modules and the kernel itself. `CTF` is the " +"Solaris(TM) Compact C Type Format which encapsulates a reduced form of " +"debugging information similar to `DWARF` and the venerable stabs. `CTF` " +"data is added to binaries by the man:ctfconvert[1] and man:ctfmerge[1] build " +"tools. The `ctfconvert` utility parses `DWARF` `ELF` debug sections created " +"by the compiler and `ctfmerge` merges `CTF` `ELF` sections from objects into " +"either executables or shared libraries." +msgstr "" +"FreeBSD использует параметр ядра `DDB_CTF` для включения поддержки загрузки " +"данных man:ctf[5] из модулей ядра и самого ядра. `CTF` — это Compact C Type " +"Format от Solaris(TM), который инкапсулирует упрощённую форму отладочной " +"информации, аналогичную `DWARF` и устаревшему stabs. Данные `CTF` " +"добавляются в бинарные файлы с помощью инструментов сборки man:ctfconvert[1] " +"и man:ctfmerge[1]. Утилита `ctfconvert` обрабатывает отладочные секции " +"`DWARF``ELF`, созданные компилятором, а `ctfmerge` объединяет секции " +"`CTF``ELF` из объектных файлов в исполняемые файлы или разделяемые " +"библиотеки." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:104 +msgid "" +"Some different providers exist for FreeBSD than for Solaris(TM). Most " +"notable is the `dtmalloc` provider, which allows tracing man:malloc[9] by " +"type in the FreeBSD kernel. Some of the providers found in Solaris(TM), " +"such as `cpc`, are not present in FreeBSD. These may appear in future " +"versions of FreeBSD. Moreover, some of the providers available in both " +"operating systems are not compatible, in the sense that their probes have " +"different argument types. Thus, `D` scripts written on Solaris(TM) may or " +"may not work unmodified on FreeBSD, and vice versa." +msgstr "" +"В FreeBSD есть некоторые провайдеры, которых нет в Solaris(TM). Наиболее " +"примечательным является провайдер `dtmalloc`, который позволяет трассировать " +"man:malloc[9] по типам в ядре FreeBSD. Некоторые провайдеры, присутствующие " +"в Solaris(TM), такой как `cpc`, отсутствуют в FreeBSD. Они могут появиться в " +"будущих версиях FreeBSD. Кроме того, некоторые провайдеры, доступные в обеих " +"операционных системах, несовместимы в том смысле, что их пробы имеют разные " +"типы аргументов. Таким образом, скрипты `D`, написанные для Solaris(TM), " +"могут работать или не работать без изменений в FreeBSD, и наоборот." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:108 +msgid "" +"Due to security differences, only `root` may use DTrace on FreeBSD. " +"Solaris(TM) has a few low level security checks which do not yet exist in " +"FreeBSD. As such, the [.filename]#/dev/dtrace/dtrace# is strictly limited " +"to `root`." +msgstr "" +"Из-за различий в безопасности, только пользователь `root` может использовать " +"DTrace в FreeBSD. В Solaris(TM) есть несколько проверок безопасности низкого " +"уровня, которые пока отсутствуют в FreeBSD. Поэтому доступ к [.filename]#/" +"dev/dtrace/dtrace# строго ограничился только пользователем `root`." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:112 +msgid "" +"DTrace falls under the Common Development and Distribution License (`CDDL`) " +"license. To view this license on FreeBSD, see [.filename]#/usr/src/cddl/" +"contrib/opensolaris/OPENSOLARIS.LICENSE# or view it online at http://" +"opensource.org/licenses/CDDL-1.0[http://opensource.org/licenses/CDDL-1.0]. " +"While a FreeBSD kernel with DTrace support is `BSD` licensed, the `CDDL` is " +"used when the modules are distributed in binary form or the binaries are " +"loaded." +msgstr "" +"DTrace распространяется под лицензией Common Development and Distribution " +"License (`CDDL`). Чтобы ознакомиться с текстом этой лицензии в FreeBSD, см. " +"[.filename]#/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE# или " +"просмотрите её онлайн по адресу http://opensource.org/licenses/" +"CDDL-1.0[http://opensource.org/licenses/CDDL-1.0]. Хотя ядро FreeBSD с " +"поддержкой DTrace лицензировано под `BSD`, лицензия `CDDL` применяется при " +"распространении модулей в бинарной форме или при загрузке бинарных файлов." + +#. type: Title == +#: documentation/content/en/books/handbook/dtrace/_index.adoc:114 +#, no-wrap +msgid "Enabling DTrace Support" +msgstr "Включение поддержки DTrace" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:118 +msgid "" +"In FreeBSD 9.2 and 10.0, DTrace support is built into the " +"[.filename]#GENERIC# kernel. Users of earlier versions of FreeBSD or who " +"prefer to statically compile in DTrace support should add the following " +"lines to a custom kernel configuration file and recompile the kernel using " +"the instructions in crossref:kernelconfig[kernelconfig,Configuring the " +"FreeBSD Kernel]:" +msgstr "" +"В FreeBSD 9.2 и 10.0 поддержка DTrace встроена в ядро [.filename]#GENERIC#. " +"Пользователям более ранних версий FreeBSD или тем, кто предпочитает " +"статически компилировать поддержку DTrace, следует добавить следующие строки " +"в пользовательский конфигурационный файл ядра и перекомпилировать ядро, " +"следуя инструкциям в crossref:kernelconfig[kernelconfig,Настройка ядра " +"FreeBSD]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:125 +#, no-wrap +msgid "" +"options KDTRACE_HOOKS\n" +"options DDB_CTF\n" +"makeoptions\tDEBUG=-g\n" +"makeoptions\tWITH_CTF=1\n" +msgstr "" +"options KDTRACE_HOOKS\n" +"options DDB_CTF\n" +"makeoptions\tDEBUG=-g\n" +"makeoptions\tWITH_CTF=1\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:128 +msgid "Users of the AMD64 architecture should also add this line:" +msgstr "Пользователи архитектуры AMD64 также должны добавить эту строку:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:132 +#, no-wrap +msgid "options KDTRACE_FRAME\n" +msgstr "options KDTRACE_FRAME\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:136 +msgid "" +"This option provides support for man:dtrace_fbt[4]. While DTrace will work " +"without this option, there will be limited support for function boundary " +"tracing." +msgstr "" +"Эта опция обеспечивает поддержку man:dtrace_fbt[4]. Хотя DTrace будет " +"работать без этой опции, поддержка трассировки входов и выходов функций " +"будет ограничена." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:140 +msgid "" +"Once the FreeBSD system has rebooted into the new kernel, or the DTrace " +"kernel modules have been loaded using `kldload dtraceall`, install the " +"current DTrace Toolkit (package:sysutils/dtrace-toolkit[]), a collection of " +"ready-made scripts for collecting system information. There are scripts to " +"check open files, memory, CPU usage, and a lot more. FreeBSD includes some " +"scripts in the base system as well; see [.filename]#/usr/share/dtrace#." +msgstr "" +"После перезагрузки системы FreeBSD с новым ядром или загрузки модулей DTrace " +"с помощью `kldload dtraceall`, установите текущий DTrace Toolkit " +"(package:sysutils/dtrace-toolkit[]) — набор готовых скриптов для сбора " +"системной информации. Включает скрипты для проверки открытых файлов, " +"использования памяти, загрузки CPU и многое другое. Некоторые скрипты также " +"присутствуют в базовой системе FreeBSD — см. [.filename]#/usr/share/dtrace#." + +#. type: delimited block = 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:145 +msgid "" +"The scripts found in [.filename]#/usr/share/dtrace# have been specifically " +"ported to FreeBSD. Not all of the scripts found in the DTrace Toolkit will " +"work as-is on FreeBSD and some scripts may require some effort in order for " +"them to work on FreeBSD." +msgstr "" +"Скрипты в каталоге [.filename]#/usr/share/dtrace# были специально " +"портированы для FreeBSD. Не все скрипты из DTrace Toolkit будут работать на " +"FreeBSD без изменений, и для некоторых может потребоваться доработка." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:152 +msgid "" +"The DTrace Toolkit includes many scripts in the special language of DTrace. " +"This language is called the D language and it is very similar to C++. An in " +"depth discussion of the language is beyond the scope of this document. " +"Refer to the FreeBSD man:d[7] manual page for an overview of the D language " +"on FreeBSD. The D language is also covered extensively in the https://" +"www.illumos.org/books/dtrace/bookinfo.html[illumos Dynamic Tracing Guide]." +msgstr "" +"Набор инструментов DTrace включает множество скриптов на специальном языке " +"DTrace. Этот язык называется D и очень похож на C++. Подробное обсуждение " +"языка выходит за рамки данного документа. Обратитесь к странице man:d[7] для " +"обзора языка D в FreeBSD. Язык D также подробно рассмотрен в https://" +"www.illumos.org/books/dtrace/bookinfo.html[illumos Dynamic Tracing Guide]." + +#. type: Title == +#: documentation/content/en/books/handbook/dtrace/_index.adoc:154 +#, no-wrap +msgid "Enabling DTrace in Out-of-Kernel Modules" +msgstr "Включение DTrace во внешних модулях ядра" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:157 +msgid "" +"To add DTrace support to an out-of-kernel module, which is useful for " +"development and debugging, include the following line in the module's " +"Makefile:" +msgstr "" +"Чтобы добавить поддержку DTrace во внешний модуль ядра, что полезно для " +"разработки и отладки, включите следующую строку в Makefile модуля:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:161 +#, no-wrap +msgid "CFLAGS+= -DKDTRACE_HOOKS\n" +msgstr "CFLAGS+= -DKDTRACE_HOOKS\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:165 +msgid "" +"This flag enables DTrace hooks during compilation, allowing for advanced " +"debugging and monitoring of the module. Ensure to recompile the module " +"after this modification to activate DTrace functionality." +msgstr "" +"Этот флаг включает DTrace-хуки во время компиляции, позволяя проводить " +"расширенную отладку и мониторинг модуля. Убедитесь, что модуль " +"перекомпилирован после этого изменения, чтобы активировать функциональность " +"DTrace." + +#. type: Title == +#: documentation/content/en/books/handbook/dtrace/_index.adoc:167 +#, no-wrap +msgid "Using DTrace" +msgstr "Использование DTrace" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:174 +msgid "" +"DTrace scripts consist of a list of one or more _probes_, or instrumentation " +"points, where each probe is associated with an action. Whenever the " +"condition for a probe is met, the associated action is executed. For " +"example, an action may occur when a file is opened, a process is started, or " +"a line of code is executed. The action might be to log some information or " +"to modify context variables. The reading and writing of context variables " +"allows probes to share information and to cooperatively analyze the " +"correlation of different events." +msgstr "" +"Скрипты DTrace состоят из списка одного или нескольких _проб_ (точек " +"инструментирования), где каждая проба связана с действием. Когда условие для " +"пробы выполняется, запускается соответствующее действие. Например, действие " +"может происходить при открытии файла, запуске процесса или выполнении строки " +"кода. Действие может заключаться в записи некоторой информации или изменении " +"контекстных переменных. Чтение и запись контекстных переменных позволяют " +"пробам обмениваться информацией и совместно анализировать взаимосвязь " +"различных событий." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:176 +msgid "" +"To view all probes, the administrator can execute the following command:" +msgstr "" +"Для просмотра всех проб администратор может выполнить следующую команду:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:180 +#, no-wrap +msgid "# dtrace -l | more\n" +msgstr "# dtrace -l | more\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:184 +msgid "" +"Each probe has an `ID`, a `PROVIDER` (e.g., `dtrace` or `fbt`), a `MODULE`, " +"and a `FUNCTION NAME`. Refer to man:dtrace[1] for more information about " +"this command." +msgstr "" +"У каждого зонда есть `ID`, `PROVIDER` (например, `dtrace` или `fbt`), " +"`MODULE` и `FUNCTION NAME`. Дополнительную информацию об этой команде можно " +"найти в man:dtrace[1]." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:186 +msgid "" +"The examples in this section provide an overview of how to use two of the " +"fully supported scripts from the DTrace Toolkit: the [.filename]#hotkernel# " +"and [.filename]#procsystime# scripts." +msgstr "" +"Примеры в этом разделе дают общее представление о том, как использовать два " +"полностью поддерживаемых скрипта из DTrace Toolkit: [.filename]#hotkernel# и " +"[.filename]#procsystime#." + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:189 +msgid "" +"The [.filename]#hotkernel# script is designed to identify which function is " +"using the most kernel time. It will produce output similar to the following:" +msgstr "" +"Скрипт [.filename]#hotkernel# предназначен для определения функции, которая " +"использует наибольшее время ядра. Он выводит информацию, похожую на " +"следующую:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:195 +#, no-wrap +msgid "" +"# cd /usr/local/share/dtrace-toolkit\n" +"# ./hotkernel\n" +"Sampling... Hit Ctrl-C to end.\n" +msgstr "" +"# cd /usr/local/share/dtrace-toolkit\n" +"# ./hotkernel\n" +"Sampling... Hit Ctrl-C to end.\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:199 +msgid "" +"As instructed, use the kbd:[Ctrl+C] key combination to stop the process. " +"Upon termination, the script will display a list of kernel functions and " +"timing information, sorting the output in increasing order of time:" +msgstr "" +"Как указано, используйте комбинацию клавиш kbd:[Ctrl+C], чтобы остановить " +"процесс. После завершения скрипт отобразит список функций ядра и информацию " +"о времени, сортируя вывод в порядке возрастания времени:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:228 +#, no-wrap +msgid "" +"kernel`_thread_lock_flags 2 0.0%\n" +"0xc1097063 2 0.0%\n" +"kernel`sched_userret 2 0.0%\n" +"kernel`kern_select 2 0.0%\n" +"kernel`generic_copyin 3 0.0%\n" +"kernel`_mtx_assert 3 0.0%\n" +"kernel`vm_fault 3 0.0%\n" +"kernel`sopoll_generic 3 0.0%\n" +"kernel`fixup_filename 4 0.0%\n" +"kernel`_isitmyx 4 0.0%\n" +"kernel`find_instance 4 0.0%\n" +"kernel`_mtx_unlock_flags 5 0.0%\n" +"kernel`syscall 5 0.0%\n" +"kernel`DELAY 5 0.0%\n" +"0xc108a253 6 0.0%\n" +"kernel`witness_lock 7 0.0%\n" +"kernel`read_aux_data_no_wait 7 0.0%\n" +"kernel`Xint0x80_syscall 7 0.0%\n" +"kernel`witness_checkorder 7 0.0%\n" +"kernel`sse2_pagezero 8 0.0%\n" +"kernel`strncmp 9 0.0%\n" +"kernel`spinlock_exit 10 0.0%\n" +"kernel`_mtx_lock_flags 11 0.0%\n" +"kernel`witness_unlock 15 0.0%\n" +"kernel`sched_idletd 137 0.3%\n" +"0xc10981a5 42139 99.3%\n" +msgstr "" +"kernel`_thread_lock_flags 2 0.0%\n" +"0xc1097063 2 0.0%\n" +"kernel`sched_userret 2 0.0%\n" +"kernel`kern_select 2 0.0%\n" +"kernel`generic_copyin 3 0.0%\n" +"kernel`_mtx_assert 3 0.0%\n" +"kernel`vm_fault 3 0.0%\n" +"kernel`sopoll_generic 3 0.0%\n" +"kernel`fixup_filename 4 0.0%\n" +"kernel`_isitmyx 4 0.0%\n" +"kernel`find_instance 4 0.0%\n" +"kernel`_mtx_unlock_flags 5 0.0%\n" +"kernel`syscall 5 0.0%\n" +"kernel`DELAY 5 0.0%\n" +"0xc108a253 6 0.0%\n" +"kernel`witness_lock 7 0.0%\n" +"kernel`read_aux_data_no_wait 7 0.0%\n" +"kernel`Xint0x80_syscall 7 0.0%\n" +"kernel`witness_checkorder 7 0.0%\n" +"kernel`sse2_pagezero 8 0.0%\n" +"kernel`strncmp 9 0.0%\n" +"kernel`spinlock_exit 10 0.0%\n" +"kernel`_mtx_lock_flags 11 0.0%\n" +"kernel`witness_unlock 15 0.0%\n" +"kernel`sched_idletd 137 0.3%\n" +"0xc10981a5 42139 99.3%\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:232 +msgid "" +"This script will also work with kernel modules. To use this feature, run " +"the script with `-m`:" +msgstr "" +"Этот скрипт также работает с модулями ядра. Чтобы использовать эту " +"возможность, запустите скрипт с ключом `-m`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:251 +#, no-wrap +msgid "" +"# ./hotkernel -m\n" +"Sampling... Hit Ctrl-C to end.\n" +"^C\n" +"MODULE COUNT PCNT\n" +"0xc107882e 1 0.0%\n" +"0xc10e6aa4 1 0.0%\n" +"0xc1076983 1 0.0%\n" +"0xc109708a 1 0.0%\n" +"0xc1075a5d 1 0.0%\n" +"0xc1077325 1 0.0%\n" +"0xc108a245 1 0.0%\n" +"0xc107730d 1 0.0%\n" +"0xc1097063 2 0.0%\n" +"0xc108a253 73 0.0%\n" +"kernel 874 0.4%\n" +"0xc10981a5 213781 99.6%\n" +msgstr "" +"# ./hotkernel -m\n" +"Sampling... Hit Ctrl-C to end.\n" +"^C\n" +"MODULE COUNT PCNT\n" +"0xc107882e 1 0.0%\n" +"0xc10e6aa4 1 0.0%\n" +"0xc1076983 1 0.0%\n" +"0xc109708a 1 0.0%\n" +"0xc1075a5d 1 0.0%\n" +"0xc1077325 1 0.0%\n" +"0xc108a245 1 0.0%\n" +"0xc107730d 1 0.0%\n" +"0xc1097063 2 0.0%\n" +"0xc108a253 73 0.0%\n" +"kernel 874 0.4%\n" +"0xc10981a5 213781 99.6%\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:257 +msgid "" +"The [.filename]#procsystime# script captures and prints the system call time " +"usage for a given process `ID` (`PID`) or process name. In the following " +"example, a new instance of [.filename]#/bin/csh# was spawned. Then, " +"[.filename]#procsystime# was executed and remained waiting while a few " +"commands were typed on the other incarnation of `csh`. These are the " +"results of this test:" +msgstr "" +"Скрипт [.filename]#procsystime# захватывает и выводит время использования " +"системных вызовов для заданного идентификатора процесса (`PID`) или имени " +"процесса. В следующем примере был создан новый экземпляр [.filename]#/bin/" +"csh#. Затем был запущен [.filename]#procsystime#, который оставался в " +"ожидании, пока в другом экземпляре `csh` было набрано несколько команд. Вот " +"результаты этого теста:" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:263 +#, no-wrap +msgid "" +"# ./procsystime -n csh\n" +"Tracing... Hit Ctrl-C to end...\n" +"^C\n" +msgstr "" +"# ./procsystime -n csh\n" +"Tracing... Hit Ctrl-C to end...\n" +"^C\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:265 +#, no-wrap +msgid "Elapsed Times for processes csh,\n" +msgstr "Elapsed Times for processes csh,\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/handbook/dtrace/_index.adoc:285 +#, no-wrap +msgid "" +" SYSCALL TIME (ns)\n" +" getpid 6131\n" +" sigreturn 8121\n" +" close 19127\n" +" fcntl 19959\n" +" dup 26955\n" +" setpgid 28070\n" +" stat 31899\n" +" setitimer 40938\n" +" wait4 62717\n" +" sigaction 67372\n" +" sigprocmask 119091\n" +" gettimeofday 183710\n" +" write 263242\n" +" execve 492547\n" +" ioctl 770073\n" +" vfork 3258923\n" +" sigsuspend 6985124\n" +" read 3988049784\n" +msgstr "" +" SYSCALL TIME (ns)\n" +" getpid 6131\n" +" sigreturn 8121\n" +" close 19127\n" +" fcntl 19959\n" +" dup 26955\n" +" setpgid 28070\n" +" stat 31899\n" +" setitimer 40938\n" +" wait4 62717\n" +" sigaction 67372\n" +" sigprocmask 119091\n" +" gettimeofday 183710\n" +" write 263242\n" +" execve 492547\n" +" ioctl 770073\n" +" vfork 3258923\n" +" sigsuspend 6985124\n" +" read 3988049784\n" + +#. type: Plain text +#: documentation/content/en/books/handbook/dtrace/_index.adoc:287 +msgid "" +"As shown, the man:read[2] system call used the most time in nanoseconds " +"while the man:getpid[2] system call used the least amount of time." +msgstr "" +"Как показано, системный вызов man:read[2] использовал наибольшее время в " +"наносекундах, тогда как системный вызов man:getpid[2] использовал наименьшее " +"количество времени." + +#~ msgid "" +#~ "Once the FreeBSD system has rebooted into the new kernel, or the DTrace " +#~ "kernel modules have been loaded using `kldload dtraceall`, the system " +#~ "will need support for the Korn shell as the DTrace Toolkit has several " +#~ "utilities written in `ksh`. Make sure that the package:shells/ksh93[] " +#~ "package or port is installed. It is also possible to run these tools " +#~ "under package:shells/pdksh[] or package:shells/mksh[]." +#~ msgstr "" +#~ "После перезагрузки системы FreeBSD в новое ядро или загрузки модулей " +#~ "DTrace с помощью `kldload dtraceall`, системе потребуется поддержка " +#~ "оболочки Korn, так как в DTrace Toolkit есть несколько утилит, написанных " +#~ "на `ksh`. Убедитесь, что установлен пакет или порт package:shells/" +#~ "ksh93[]. Также эти инструменты могут работать под package:shells/pdksh[] " +#~ "или package:shells/mksh[]." + +#~ msgid "" +#~ "Finally, install the current DTrace Toolkit, a collection of ready-made " +#~ "scripts for collecting system information. There are scripts to check " +#~ "open files, memory, `CPU` usage, and a lot more. FreeBSD 10 installs a " +#~ "few of these scripts into [.filename]#/usr/share/dtrace#. On other " +#~ "FreeBSD versions, or to install the full DTrace Toolkit, use the " +#~ "package:sysutils/dtrace-toolkit[] package or port." +#~ msgstr "" +#~ "Наконец, установите текущую версию DTrace Toolkit — набор готовых " +#~ "скриптов для сбора системной информации. Существуют скрипты для проверки " +#~ "открытых файлов, использования памяти, загрузки `CPU` и многое другое. " +#~ "FreeBSD 10 устанавливает некоторые из этих скриптов в [.filename]#/usr/" +#~ "share/dtrace#. В других версиях FreeBSD или для установки полного набора " +#~ "DTrace Toolkit используйте пакет package:sysutils/dtrace-toolkit[] или " +#~ "порт." diff --git a/documentation/content/ru/books/handbook/eresources/_index.adoc b/documentation/content/ru/books/handbook/eresources/_index.adoc index 98b46c6bfc..b5f6479b61 100644 --- a/documentation/content/ru/books/handbook/eresources/_index.adoc +++ b/documentation/content/ru/books/handbook/eresources/_index.adoc @@ -1,17 +1,19 @@ --- -title: Приложение C. Ресурсы в интернет -part: Часть V. Приложения -prev: books/handbook/bibliography +description: 'Дополнительные ресурсы FreeBSD в интернете, такие как веб-сайты, списки рассылки, зеркала и так далее' next: books/handbook/pgpkeys -showBookMenu: true -weight: 36 params: - path: "/books/handbook/eresources/" + path: /books/handbook/eresources/ +part: 'Часть V. Приложения' +prev: books/handbook/bibliography +showBookMenu: true +tags: ["eresources", "Websites", "Mailing Lists", "Usenet", "Newsgroups"] +title: 'Приложение C. Ресурсы в Интернете' +weight: 43 --- [appendix] [[eresources]] -= Ресурсы в интернет += Ресурсы в Интернете :doctype: book :toc: macro :toclevels: 1 @@ -48,791 +50,90 @@ toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] -Высокая скорость прогресса FreeBSD делает непрактичным использование печатных изданий для информирования о последних разработках. Электронные ресурсы это лучший, а зачастую и единственный способ информирования о новых возможностях. Поскольку FreeBSD основывается на усилиях добровольцев, сообщество пользователей само по себе зачастую выполняет роль "службы технической поддержки", а электронная почта, веб форумы и новости USENET это наиболее эффективный способ обращения к этому сообществу. - -Наиболее важная контактная информация сообщества пользователей FreeBSD показана ниже. Если вам известно о других ресурсах, не упомянутых здесь, пожалуйста отправьте информацию о них в {freebsd-doc}, чтобы мы могли включить в этот документ. - -[[eresources-mail]] -== Списки рассылки - -Обращение в списки рассылки является наиболее простым способом задания вопросов или открытия технических дискуссий в сосредоточенной аудитории пользователей и разработчиков FreeBSD. Существует большое разнообразие списков по десяткам разных тем FreeBSD. Обращение в наиболее подходящий список рассылки обеспечит вас более быстрым и более точным ответом. - -[WARNING] -==== - -Все сообщения в приведенные ниже списки рассылки должны быть составлены _только на английском языке_. -==== - -Описание каждой рассылки дано в конце этого документа. _Пожалуйста, прочтите описание перед подпиской или отправкой почты в любой из списков_. Большинство наших подписчиков получают многие сотни относящихся к FreeBSD сообщений каждый день, и определяя правила использования рассылок мы стремимся удержать высокое соотношение "сигнал к шуму". При меньшем соотношении списки рассылки перестанут быть эффективной средой общения участников проекта. - -[NOTE] -==== -_Если вы желаете проверить возможность отправки сообщений в списки рассылки FreeBSD, пошлите тестовое сообщение на {freebsd-test}._ Пожалуйста, не шлите тестовые сообщения в любой другой список рассылки. -==== - -Если вы сомневаетесь, в какой именно список рассылки нужно направить вопрос, то прочтите статью extref:{freebsd-questions-article}[Как эффективно использовать список рассылки FreeBSD-questions]. - -Перед тем, как направлять сообщение в любой список рассылки, пожалуйста, выясните, как лучше всего их использовать, например, как избежать частого повторения одних и тех же дискуссий, прочитав документ extref:{mailing-list-faq}[Часто задаваемые вопросы о списках рассылки] (FAQ). - -Архивы поддерживаются для всех списков рассылки и поиск по ним организован на link:https://www.FreeBSD.org/ru/search/[WWW сервере FreeBSD]. Поиск в архиве по ключевым словам дает отличный способ получения ответов на часто задаваемые вопросы и должен быть выполнен перед отправкой вопроса. Следует также отметить то, что отправленные в списки рассылок сообщения сохраняются в архивах навсегда. Если есть необходимость сохранить приватность, то задействуйте любой доступный вам второстепенный адрес электронной почты, предоставляя в сообщении лишь публичную информацию. - -[[eresources-summary]] -=== Списки рассылки - -_Общие списки:_ Ниже представлены общие списки рассылки, к которым каждый может (и приглашается) присоединиться: - -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| Список -| Назначение - -|link:{freebsd-advocacy-url}[freebsd-advocacy] -|В защиту FreeBSD - -|{freebsd-announce} -|Важные события и вехи проекта - -|link:{freebsd-arch-url}[freebsd-arch] -|Обсуждения архитектуры и дизайна системы - -|link:{freebsd-bugbusters-url}[freebsd-bugbusters] -|Обсуждения, относящиеся к поддержке базы данных сообщений о проблемах FreeBSD и соответствующим инструментам - -|link:{freebsd-bugs-url}[freebsd-bugs] -|Сообщения о проблемах - -|link:{freebsd-chat-url}[freebsd-chat] -|Не-технические темы, относящиеся к сообществу FreeBSD - -|link:{freebsd-chromium-url}[freebsd-chromium] -|Вопросы, относящиеся к Chromium во FreeBSD - -|{freebsd-current} -|Обсуждения, относящиеся к использованию FreeBSD-CURRENT - -|link:{freebsd-isp-url}[freebsd-isp] -|Вопросы использования FreeBSD провайдерами - -|link:{freebsd-jobs-url}[freebsd-jobs] -|Вакансии и резюме, относящиеся к FreeBSD, с полной и частичной занятостью - -|link:{freebsd-policy-url}[freebsd-policy] -|Публикация правил FreeBSD Core team. Только для чтения, малое количество сообщений - -|link:{freebsd-questions-url}[freebsd-questions] -|Вопросы пользователей и техническая поддержка - -|{freebsd-security-notifications} -|Уведомления безопасности - -|{freebsd-stable} -|Обсуждения, относящиеся к использованию FreeBSD-STABLE - -|{freebsd-test} -|Рассылка для отправки тестовых сообщений (вместо обычных списков рассылки -|=== - -_Технические списки:_ Следующие списки предназначены для технических обсуждений. Вам необходимо внимательно прочитать описание перед подпиской или отправкой почты в один из этих списков, поскольку они предназначены для использования внутри проекта. - -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| Список -| Назначение - -|{freebsd-acpi} -|Разработка ACPI и системы управления энергопотреблением - -|link:{freebsd-afs-url}[freebsd-afs] -|Портирование AFS на FreeBSD - -|link:{freebsd-aic7xxx-url}[freebsd-aic7xxx] -|Разработка драйверов для Adaptec(R) AIC 7xxx - -|link:{freebsd-amd64-url}[freebsd-amd64] -|Портирование FreeBSD на системы AMD64 - -|link:{freebsd-apache-url}[freebsd-apache] -|Обсуждение портов, относящихся к Apache - -|link:{freebsd-arm-url}[freebsd-arm] -|Портирование FreeBSD на процессоры ARM(R) - -|link:{freebsd-atm-url}[freebsd-atm] -|Использование ATM сетей с FreeBSD - -|link:{freebsd-audit-url}[freebsd-audit] -|Проект аудита исходных текстов - -|link:{freebsd-binup-url}[freebsd-binup] -|Дизайн и разработка системы бинарных обновлений - -|link:{freebsd-bluetooth-url}[freebsd-bluetooth] -|Использование технологии Bluetooth(R) во FreeBSD - -|link:{freebsd-cluster-url}[freebsd-cluster] -|Использование FreeBSD в кластерах - -|link:{freebsd-cvsweb-url}[freebsd-cvsweb] -|Поддержка CVSweb - -|link:{freebsd-database-url}[freebsd-database] -|Обсуждение использования и разработки баз данных под FreeBSD - -|link:{freebsd-doc-url}[freebsd-doc] -|Создание относящихся к FreeBSD документов - -|link:{freebsd-drivers-url}[freebsd-drivers] -|Создание драйверов устройств для FreeBSD - -|link:{freebsd-eclipse-url}[freebsd-eclipse] -|Использование в FreeBSD Eclipse IDE, а также приложений и портов для нее. - -|link:{freebsd-eol-url}[freebsd-eol] -|Взаимная поддержка относящегося к FreeBSD программного обеспечения, более не поддерживаемого проектом FreeBSD. - -|link:{freebsd-embedded-url}[freebsd-embedded] -|Использование FreeBSD во встроенных системах - -|link:{freebsd-emulation-url}[freebsd-emulation] -|Эмуляция других систем, таких как Linux/MS-DOS(R)/Windows(R) - -|link:{freebsd-firewire-url}[freebsd-firewire] -|Техническое обсуждение FreeBSD FireWire(R) (iLink, IEEE 1394) - -|link:{freebsd-fs-url}[freebsd-fs] -|Файловые системы - -|link:{freebsd-gecko-url}[freebsd-gecko] -|Проблемы со средствами визуализации Gecko - -|link:{freebsd-geom-url}[freebsd-geom] -|Относящиеся к GEOM обсуждения и реализации - -|link:{freebsd-gnome-url}[freebsd-gnome] -|Портирование GNOME и приложений GNOME - -|link:{freebsd-hackers-url}[freebsd-hackers] -|Общее техническое обсуждение +Разработка FreeBSD идёт слишком быстро, чтобы печатные издания могли эффективно информировать пользователей. Для отслеживания новостей лучше использовать электронные альтернативы печати. -|link:{freebsd-hardware-url}[freebsd-hardware] -|Общее обсуждение оборудования для FreeBSD +Сообщество пользователей FreeBSD предоставляет обширную техническую поддержку — среди наиболее популярных и эффективных способов общения можно выделить форумы, чаты и электронную почту. -|link:{freebsd-i18n-url}[freebsd-i18n] -|Интернационализация FreeBSD +Ниже приведены наиболее важные точки взаимодействия. Раздел link:https://wiki.freebsd.org/Community[Сообщества на вики] может содержать более актуальную информацию. -|link:{freebsd-ia32-url}[freebsd-ia32] -|FreeBSD на платформе IA-32 (Intel(R) x86) +Пожалуйста, сообщите команде {freebsd-doc} о любом ресурсе, который является избыточным или ещё не указан ниже. -|link:{freebsd-ia64-url}[freebsd-ia64] -|Портирование FreeBSD на будущие системы Intel(R) IA64 +[[eresources-www]] +== Вебсайты -|link:{freebsd-ipfw-url}[freebsd-ipfw] -|Технические обсуждения, относящиеся к переработке кода IP брандмауэра +* link:https://forums.FreeBSD.org/[Форумы FreeBSD] предоставляют веб-форум для обсуждения вопросов, связанных с FreeBSD, и технических дискуссий. +* Ссылка link:https://wiki.FreeBSD.org/[FreeBSD Wiki] содержит различную информацию, которая ещё не вошла в Руководство. +* Портал link:https://docs.FreeBSD.org/[документации] предлагает гораздо больше, чем просто Руководство FreeBSD, здесь доступно более сорока книг и статей. +* link:https://freebsdfoundation.org/our-work/journal/browser-based-edition/[FreeBSD Journal] — это бесплатный профессионально редактируемый технический журнал, выпускаемый раз в два месяца организацией link:https://freebsdfoundation.org[The FreeBSD Foundation]. +* Канал link:http://www.youtube.com/bsdconferences[BSDConferences на YouTube] содержит коллекцию высококачественных видео с конференций BSD со всего мира. Это отличный способ увидеть выступления ключевых разработчиков о новых работах в FreeBSD. +* link:https://www.freebsd.org/status/[Отчёты о состоянии FreeBSD] выпускаются раз в три месяца и отслеживают прогресс в разработке FreeBSD. +* Вот ссылка на группу в Reddit, посвящённую FreeBSD: link:https://www.reddit.com/r/freebsd/[r/freebsd]. +* link:https://superuser.com/questions/tagged/freebsd[Super User] и link:https://serverfault.com/questions/tagged/freebsd[Server Fault], сервисы Stack Exchange для системных администраторов. +* link:https://wiki.freebsd.org/Discord[FreeBSD Discord сервер] — это платформа для общения и объединения сообщества, где участники сообщества FreeBSD могут общаться, получать поддержку или помогать другим, учиться, вносить свой вклад, сотрудничать и быть в курсе всего, что связано с FreeBSD. +* link:https://wiki.freebsd.org/IRC/Channels[IRC-каналы] — широко распространённый, технически зрелый, открытый стандарт текстового чата. -|link:{freebsd-isdn-url}[freebsd-isdn] -|Разработчики ISDN - -|link:{freebsd-jail-url}[freebsd-jail] -|Обсуждение man:jail[8] - -|link:{freebsd-java-url}[freebsd-java] -|Разработчики Java(TM) и те, кто занимается переносом JDK(TM) на FreeBSD - -|link:{freebsd-kde-url}[freebsd-kde] -|Портирование KDE и приложений KDE - -|link:{freebsd-lfs-url}[freebsd-lfs] -|Портирование LFS на FreeBSD - -|link:{freebsd-libh-url}[freebsd-libh] -|Второе поколение программы установки системы и пакетов - -|link:{freebsd-mips-url}[freebsd-mips] -|Портирование FreeBSD на MIPS(R) - -|link:{freebsd-mobile-url}[freebsd-mobile] -|Обсуждение портативных компьютеров - -|link:{freebsd-mono-url}[freebsd-mono] -|Mono и C# приложения на FreeBSD - -|link:{freebsd-mozilla-url}[freebsd-mozilla] -|Портирование Mozilla на FreeBSD - -|{freebsd-multimedia} -|Мультимедиа приложения - -|link:{freebsd-new-bus-url}[freebsd-new-bus] -|Технические обсуждения архитектуры шины - -|link:{freebsd-net-url}[freebsd-net] -|Обсуждения, относящиеся к сети и исходному тексту TCP/IP - -|link:{freebsd-office-url}[freebsd-office] -|Офисные приложения во FreeBSD - -|link:{freebsd-performance-url}[freebsd-performance] -|Вопросы оптимизации производительности для быстрых/работающих под большой нагрузкой серверов - -|link:{freebsd-perl-url}[freebsd-perl] -|Поддержка различных портов, относящихся к Perl - -|link:{freebsd-pf-url}[freebsd-pf] -|Обсуждение брандмауэра на базе packet filter - -|link:{freebsd-platforms-url}[freebsd-platforms] -|Относится к портам для платформ не-Intel(R) архитектуры - -|link:{freebsd-ports-url}[freebsd-ports] -|Обсуждения Коллекции Портов - -|link:{freebsd-ports-bugs-url}[freebsd-ports-bugs] -|Обсуждения относящихся к портам ошибок/PR - -|link:{freebsd-ppc-url}[freebsd-ppc] -|Портирование FreeBSD на PowerPC(R) - -|link:{freebsd-proliant-url}[freebsd-proliant] -|Работа FreeBSD на серверной платформе HP ProLiant - -|link:{freebsd-python-url}[freebsd-python] -|Вопросы, специфичные для использования Python во FreeBSD - -|link:{freebsd-rc-url}[freebsd-rc] -|Обсуждения, касающиеся системы [.filename]#rc.d# и работы над ней - -|link:{freebsd-realtime-url}[freebsd-realtime] -|Разработка расширений реального времени для FreeBSD - -|link:{freebsd-ruby-url}[freebsd-ruby] -|Обсуждения, касающиеся специфики использования Ruby во FreeBSD - -|link:{freebsd-scsi-url}[freebsd-scsi] -|Подсистема SCSI - -|{freebsd-security} -|Сообщения безопасности, касающиеся FreeBSD - -|link:{freebsd-small-url}[freebsd-small] -|Использование FreeBSD во встроенных приложениях (устарел; следует использовать link:{freebsd-embedded-url}[freebsd-embedded]) - -|link:{freebsd-sparc64-url}[freebsd-sparc64] -|Портирование FreeBSD на системы, основанные на SPARC(R) - -|link:{freebsd-standards-url}[freebsd-standards] -|Соответствие FreeBSD стандартам C99 и POSIX(R) - -|link:{freebsd-sysinstall-url}[freebsd-sysinstall] -|Разработка man:sysinstall[8] - -|link:{freebsd-threads-url}[freebsd-threads] -|Потоки в FreeBSD - -|link:{freebsd-testing-url}[freebsd-testing] -|Тестирование производительности и стабильности FreeBSD - -|link:{freebsd-tilera-url}[freebsd-tilera] -|Портирование FreeBSD на процессоры Tilera - -|link:{freebsd-tokenring-url}[freebsd-tokenring] -|Поддержка Token Ring в FreeBSD - -|link:{freebsd-toolchain-url}[freebsd-toolchain] -|Поддержка встроенных инструментальных средств FreeBSD - -|link:{freebsd-usb-url}[freebsd-usb] -|Обсуждение поддержки USB в FreeBSD - -|link:{freebsd-virtualization-url}[freebsd-virtualization] -|Обсуждение различных техник виртуализации, поддерживаемых FreeBSD - -|link:{freebsd-vuxml-url}[freebsd-vuxml] -|Обсуждение инфраструктуры VuXML - -|link:{freebsd-x11-url}[freebsd-x11] -|Сопровождение и поддержка X11 в FreeBSD - -|link:{freebsd-xen-url}[freebsd-xen] -|Обсуждение портирования FreeBSD на Xen(TM) - реализация и использование -|=== - -_Ограниченные списки:_ Следующие списки рассылки предназначены для более специализированной (и более официальной) аудитории и вероятно не могут заинтересовать широкую публику. Вероятно хорошей идеей будет сначала наладить общение в технических списках рассылки перед присоединением к ограниченным спискам, так вы сможете освоить этику общения. - -[.informaltable] -[cols="1,1", frame="none", options="header"] -|=== -| Список -| Назначение - -|link:{freebsd-hubs-url}[freebsd-hubs] -|Люди, поддерживающие зеркала (поддержка инфраструктуры) - -|link:{freebsd-user-groups-url}[freebsd-user-groups] -|Координация групп пользователей - -|link:{freebsd-vendors-url}[freebsd-vendors] -|Координация поставщиков перед релизом - -|link:{freebsd-wip-status-url}[freebsd-wip-status] -|Статус начатых работ (Work-In-Progress) во FreeBSD - -|link:{freebsd-wireless-url}[freebsd-wireless] -|Обсуждение разработки стека 802.11, утилит, драйверов устройств - -|link:{freebsd-www-url}[freebsd-www] -|Ответственные за link:https://www.FreeBSD.org/[www.FreeBSD.org] -|=== - -_Дайджест рассылки:_ Все вышеприведенные списки доступны в формате дайджеста. После подписки на рассылку, вы можете изменить параметры дайджеста в разделе настроек учетной записи. - -_CVS и SVN рассылки:_ Следующие рассылки предназначены для людей, заинтересованных в просмотре сообщений об изменении в различных областях дерева исходных текстов. Это списки _только для чтения_ и вы не должны отправлять туда почту. - -[.informaltable] -[cols="1,1,1", frame="none", options="header"] -|=== -| Рассылка -| Область исходного текста -| Описание области исходного текста - -|link:{cvs-all-url}[cvs-all] -|[.filename]#/usr/(CVSROOT\|doc\|ports)# -|Все изменения в любой области дерева исходных текстов (надмножество других списков рассылки CVS) - -|link:{cvs-doc-url}[cvs-doc] -|[.filename]#/usr/(doc\|www)# -|Все изменения в дереве исходных текстов документации и Web-сервера - -|link:{cvs-ports-url}[cvs-ports] -|[.filename]#/usr/ports# -|Все изменения в дереве портов - -|link:{cvs-projects-url}[cvs-projects] -|[.filename]#/usr/projects# -|Все изменения в дереве проектов - -|link:{cvs-src-url}[cvs-src] -|[.filename]#/usr/src# -|Все изменения в дереве исходных текстов системы (создаваемых во время импорта из SVN в CVS) - -|{svn-src-all} -|[.filename]#/usr/src# -|Все изменения в репозитории Subversion (за исключением [.filename]#user# и [.filename]#projects#) - -|{svn-src-head} -|[.filename]#/usr/src# -|Все изменения в ветке "head" репозитория Subversion (ветка FreeBSD-CURRENT) +[[eresources-mail]] +== Почтовые рассылки -|link:{svn-src-projects-url}[svn-src-projects] -|[.filename]#/usr/projects# -|Все изменения в части [.filename]#projects# дерева исходных текстов репозитория Subversion +Почтовые рассылки — это самый прямой способ задать вопрос или начать техническое обсуждение среди заинтересованной аудитории FreeBSD. Существует множество рассылок, посвящённых различным темам, связанным с FreeBSD. Отправка вопросов в наиболее подходящую рассылку, как правило, гарантирует более быстрый и точный ответ. -|link:{svn-src-release-url}[svn-src-release] -|[.filename]#/usr/src# -|Все изменения в части [.filename]#release# дерева исходных текстов репозитория Subversion +Технические обсуждения в списках рассылки должны оставаться техническими. -|link:{svn-src-releng-url}[svn-src-releng] -|[.filename]#/usr/src# -|Все изменения в части [.filename]#releng# дерева исходных текстов репозитория Subversion +Все пользователи и разработчики FreeBSD должны подписаться на рассылку {freebsd-announce}. -|link:{svn-src-stable-url}[svn-src-stable] -|[.filename]#/usr/src# -|Все изменения во всех ветках stable дерева исходных текстов репозитория Subversion +[NOTE] +==== +Для проверки возможностей списка рассылки FreeBSD направляйте сообщения в {freebsd-test}. Пожалуйста, не отправляйте тестовые сообщения в другие списки. +==== -|link:{svn-src-stable-6-url}[svn-src-stable-6] -|[.filename]#/usr/src# -|Все изменения в ветке [.filename]#stable/6# дерева исходных текстов репозитория Subversion +Если вы не уверены, в какой список отправить вопрос, обратитесь к extref:{freebsd-questions-article}[Как получить наилучшие результаты из списка рассылки FreeBSD-questions]. -|link:{svn-src-stable-7-url}[svn-src-stable-7] -|[.filename]#/usr/src# -|Все изменения в ветке [.filename]#stable/7# дерева исходных текстов репозитория Subversion +Перед отправкой сообщения в любой список, пожалуйста: -|link:{svn-src-stable-8-url}[svn-src-stable-8] -|[.filename]#/usr/src# -|Все изменения в ветке [.filename]#stable/8# дерева исходных текстов репозитория Subversion +* Узнайте, как лучше всего использовать списки рассылки, например, как помочь избежать часто повторяющихся обсуждений, прочитав документ extref:{mailing-list-faq}[Часто задаваемые вопросы о списках рассылки] (FAQ) +* поищите в архивах, чтобы убедиться, что кто-то уже не публиковал то, что вы собираетесь написать. -|link:{svn-src-stable-other-url}[svn-src-stable-other] -|[.filename]#/usr/src# -|Все изменения в предыдущих ветках [.filename]#stable# дерева исходных текстов репозитория Subversion +Интерфейсы поиска в архивах включают: + +- https://lists.freebsd.org/search[] (FreeBSD, экспериментальный интерфейс) +- https://www.freebsd.org/search/[] (DuckDuckGo) -|link:{svn-src-svnadmin-url}[svn-src-svnadmin] -|[.filename]#/usr/src# -|Все изменения в административных скриптах, хуках (hook) и других конфигурационных параметрах дерева исходных текстов репозитория Subversion +Обратите внимание, что это также означает, что сообщения, отправленные в списки рассылки FreeBSD, хранятся в архиве бессрочно. Если важна конфиденциальность, рекомендуется использовать одноразовый дополнительный адрес электронной почты и публиковать только общедоступную информацию. -|link:{svn-src-user-url}[svn-src-user] -|[.filename]#/usr/src# -|Все изменения в экспериментальной части [.filename]#user# дерева исходных текстов репозитория Subversion +Предоставляемые FreeBSD архивы: + +* не отображают ссылки в виде ссылок +* не отображают встроенные изображения +* не отображают HTML-содержимое HTML-сообщений. -|link:{svn-src-vendor-url}[svn-src-vendor] -|[.filename]#/usr/src# -|Все изменения в части дерева исходных текстов репозитория Subversion, выделенной для работы поставщиков (vendor) -|=== +[[eresources-summary]] +Списки публичных рассылок FreeBSD можно найти link:{mailing-lists-url}[здесь]. [[eresources-subscribe]] -=== Как подписаться - -Для подписки на рассылку, нажмите на название списка рассылки выше или воспользуйтесь ссылкой {mailing-lists-url} и нажмите на имя рассылки, которой вы заинтересовались. Страница списка рассылки содержит все необходимые инструкции по подписке. +=== Как подписаться или отписаться -Для отправки сообщения в выбранный список рассылки, отправьте письмо в mailto:listname@FreeBSD.org[listname@FreeBSD.org]. Это письмо будет разослано участникам рассылки по всему миру. +На {mailing-lists-url} нажмите на название списка, чтобы увидеть доступные опции. -Для отписки от рассылки, нажмите на ссылку, находящуюся внизу каждого письма, отправляемого через список рассылки. Возможна также отписка путем отправки письма на mailto:listname-unsubscribe@FreeBSD.org[listname-unsubscribe@FreeBSD.org]. - -Напоминаем, что обсуждение в технических списках рассылки должно оставаться в рамках технической темы. Если вас интересует только получение важных анонсов, мы предлагаем подписаться на рассылку с небольшим трафиком {freebsd-announce}. +Для отправки сообщения после подписки отправьте письмо на `listname@FreeBSD.org`. Сообщение будет распространено среди участников списка. [[eresources-charters]] -=== Описание рассылок - -_Все_ списки рассылки FreeBSD имеют определенные основные правила, которых должен придерживаться каждый использующий их. Несоблюдение этих правил приведет к отправлению двух (2) предупреждений от FreeBSD Postmaster mailto:postmaster@FreeBSD.org[postmaster@FreeBSD.org], после которых, после третьего нарушения, подписчик будет удален из всех списков рассылки FreeBSD и дальнейшие его сообщения будут отфильтровываться. Мы сожалеем, что эти правила и меры вообще необходимы, но современный интернет это довольно суровая среда и многие его механизмы довольно слабы. - -Основные правила: - -* Тема любого сообщения должна соответствовать назначению списка рассылки, в который это сообщение отправляется. Например, если список рассылки посвящен техническим вопросам, сообщение должно быть техническим. Продолжающееся обсуждение вне темы, или флейм только понижают ценность рассылки для всех ее участников и поэтому не разрешаются. Для обсуждений вне какой-либо определенной темы необходимо использовать {freebsd-chat}, специально для этого предназначенный. -* Ни одно сообщение не должно отправляться более чем в 2 рассылки, отправка сообщения в 2 рассылки должна выполняться только при наличии простой и очевидной причины для дублирования сообщения. В большинстве рассылок подписчикам уже приходит много избыточного материала, и за исключением редких случаев (скажем, "-stable & -scsi"), на самом деле нет причины отправлять сообщение более чем в один список рассылки. Если сообщение отправлено вам так, что в поле `Cc` находятся несколько списков рассылки, необходимо урезать поле `Cc` перед отправкой ответа. _Именно вы отвечаете за собственные сообщения, независимо от того, кто был автором исходного письма._ -* Персональные нападки и профанация (в контексте аргументов) не разрешены, это относится и к пользователям, и к разработчикам. Грубые нарушения сетевой этики, такие как цитирование или пересылка личной переписки без специального на то разрешения, осуждаются но специальные меры в этом случае не принимаются. _Однако_, существует несколько специальных случаев, когда такие письма не отвечают назначению списка рассылки и, следовательно, могут повлечь отправку предупреждения (или исключение из списка рассылки). -* Реклама не-FreeBSD продуктов или сервисов строго запрещена и исключение из списка рассылки последует незамедлительно, если станет очевидным, что это спам. - -_Описания рассылок:_ - -{freebsd-acpi}:: -_Разработка ACPI и системы управления энергопотреблением_ - -link:{freebsd-afs-url}[freebsd-afs]:: -_Andrew File System_ -+ -Этот список предназначен для обсуждения портирования и использования AFS от CMU/Transarc - -{freebsd-announce}:: -_Важные события / вехи проекта_ -+ -Этот список рассылки предназначен для тех, кто интересуется только периодическими анонсами значительных событий FreeBSD. Сюда включаются анонсы снэпшотов и других релизов, а также новых возможностей FreeBSD. Рассылка может содержать призыв к добровольцам и т.п. Это строго модерируемый список рассылки с малым объемом трафика. - -link:{freebsd-arch-url}[freebsd-arch]:: -_Обсуждение архитектуры и дизайна системы_ -+ -Эта рассылка предназначена для обсуждения архитектуры FreeBSD. Сообщения в основном строго технические. Примеры подходящих тем: - -** Как изменить систему сборки для одновременной сборки нескольких по-разному настроенных систем. -** Что необходимо исправить в VFS для включения слоев Heidemann. -** Как необходимо изменить интерфейс драйверов устройств для использования одних и тех же драйверов на множестве шин и архитектур. -** Как написать сетевой драйвер. - -link:{freebsd-audit-url}[freebsd-audit]:: -_Проект аудита исходных текстов_ -+ -Это список рассылки для проекта аудита исходных текстов FreeBSD. Хотя первоначально он предназначался для изменений, связанных с безопасностью, его назначение было расширено для пересмотра всех изменений кода. -+ -В эту рассылку отправляется большой объем исправлений, и она вероятно не представляет интереса для обычного пользователя FreeBSD. Обсуждения безопасности, не относящиеся к определенному изменению в коде, ведутся в freebsd-security. Разработчикам предлагается отправлять изменения в этот список рассылки для просмотра, особенно если эти изменения затрагивают части кода, ошибки в которых могут повлечь нарушение целостности системы. - -link:{freebsd-binup-url}[freebsd-binup]:: -_Проект бинарного обновления FreeBSD_ -+ -Этот список предназначен для обсуждений системы бинарного обновления системы, или binup. В этой рассылке обсуждаются вопросы дизайна, детали реализации, исправления, сообщения об ошибках, сообщения о статусе, запросы на расширение функциональности, протоколы коммитов, и все, что относится к binup. - -link:{freebsd-bluetooth-url}[freebsd-bluetooth]:: -_Bluetooth(R) во FreeBSD_ -+ -Это форум, где собираются пользователи Bluetooth(R) во FreeBSD. Обсуждения касаются вопросов архитектуры, деталей реализации, патчей, сообщений об ошибках, состояния работы, запросов на добавление функций и всего, что относится к Bluetooth(R). - -link:{freebsd-bugbusters-url}[freebsd-bugbusters]:: -_Координация усилий по обработке сообщений о проблемах_ -+ -Назначение этой рассылки в координации и предоставлении места для обсуждения для лиц, обслуживающих базу данных сообщений о проблемах (bugmeister, bugbusters) и для всех сторон, интересующихся базой данных PR. Эта рассылка не предназначена для обсуждения отдельных проблем, исправлений или PR. - -link:{freebsd-bugs-url}[freebsd-bugs]:: -_Сообщения об ошибках_ -+ -Этот список рассылки предназначен для отправки сообщений об ошибках в FreeBSD. Когда это возможно, сообщения должны отправляться с использованием man:send-pr[1] или через link:https://www.FreeBSD.org/ru/send-pr/[WEB интерфейс] к `send-pr`. - -link:{freebsd-chat-url}[freebsd-chat]:: -_Не-технические темы, относящиеся к сообществу FreeBSD_ -+ -В эту рассылку входят все темы, не подходящие для других рассылок, с не-технической, социальной информацией. Она включает обсуждения на темы: кто пьет слишком много кофе, где варят лучшее пиво, кто варит пиво в своем подвале, и так далее. Нерегулярные анонсы важных событий (такие как будущие встречи, свадьбы, дни рождения, новая работа и т.д.) могут быть опубликованы в технических рассылках, но ответы должны отправляться в -chat. - -link:{freebsd-chromium-url}[freebsd-chromium]:: -_Вопросы, относящиеся к Chromium во FreeBSD_ -+ -Список рассылки, предназначенный для обсуждения поддержки Chromium во FreeBSD. Это технический список рассылки, в котором обговаривается разработка и установка Chromium. - -{core-name}:: -_Команда FreeBSD core_ -+ -Это внутренний список рассылки, используемый членами core. Сообщения в эту рассылку могут быть отправлены по серьезной, имеющей отношение к FreeBSD причине, которая требует рассмотрения на самом высоком уровне. - -{freebsd-current}:: -_Обсуждения, касающиеся использования FreeBSD-CURRENT_ -+ -Это список рассылки для пользователей FreeBSD-CURRENT. Он включает предупреждения о новых возможностях, вносимых в -CURRENT, влияющих на пользователей, и инструкции относительно действий, которые должны быть предприняты для поддержки -CURRENT. Всякий, работающий с "CURRENT", должен подписаться на эту рассылку. Это технический список рассылки, все сообщения должны быть строго техническими. - -link:{freebsd-cvsweb-url}[freebsd-cvsweb]:: -_FreeBSD CVSweb Project_ -+ -Технические обсуждения использования, разработки и поддержки FreeBSD-CVSweb. - -link:{freebsd-doc-url}[freebsd-doc]:: -_Проект документирования_ -+ -Этот список рассылки предназначен для обсуждения вопросов и проектов, относящихся к созданию документации для FreeBSD. Члены этой рассылки все вместе обозначаются как "The FreeBSD Documentation Project". Это открытая рассылка; присоединяйтесь и участвуйте! - -link:{freebsd-drivers-url}[freebsd-drivers]:: -_Создание драйверов устройств для FreeBSD_ -+ -Этот список рассылки предназначен для технических дискуссий, относящихся к написанию драйверов устройств для FreeBSD. Это наилучшее место для того, чтобы задать вопросы по форматам и протоколам общенияi (API) драйверов устройств с ядром FreeBSD. - -link:{freebsd-eclipse-url}[freebsd-eclipse]:: -_Список рассылки для пользователей системы Eclipse IDE под FreeBSD, а также ее приложений и портов._ -+ -Этот список рассылки призван оказать помощь тем, кто выбирает, устанавливает, использует, разрабатывает и поддерживает работу Eclipse IDE под FreeBSD, а также портирует их под FreeBSD. -+ -Кроме того, в данном списке для общего блага пересекаются и обмениваются информацией сообщества Eclipse и FreeBSD. -+ -Хотя данный список предназначен главным образом для тех, кто использует Eclipse, в нем также можно обсуждать средства разработки приложений для FreeBSD при помощи среды Eclipse. - -link:{freebsd-embedded-url}[freebsd-embedded]:: -_Использование FreeBSD во встроенных системах_ -+ -Этот список рассылки, предназначенный для технических обсуждений, рассматривает работу FreeBSD в особо стесненных условиях, в частности, во встроенных (embedded) системах. В данном случае встроенными считаются вычислительные устройства, отличные от настольных компьютеров и выполняющие, как правило, специализированные задачи. Примером могут служить смартфоны, сетевые устройства, такие как маршрутизаторы, коммутаторы и офисные АТС, телеметрические системы, КПК, кассовые терминалы и т.п. - -link:{freebsd-emulation-url}[freebsd-emulation]:: -_Эмуляция других систем, таких как Linux/MS-DOS(R)/Windows(R) _ -+ -Этот список рассылки предназначен для обсуждения вопросов запуска и эксплуатации под FreeBSD программ, предназначенных для работы под другими операционными системами. - -link:{freebsd-eol-url}[freebsd-eol]:: -_Взаимная поддержка относящегося к FreeBSD программного обеспечения, более не поддерживаемого проектом FreeBSD._ -+ -Этот список рассылки предназначен для интересующихся предоставлением или использованием взаимной поддержки относящегося к FreeBSD программного обеспечения, для которого проект FreeBSD более не предоставляет официальной поддержки (например, в виде сообщений безопасности или патчей). - -link:{freebsd-firewire-url}[freebsd-firewire]:: -_FireWire(R) (iLink, IEEE 1394)_ -+ -Это список рассылки, предназначенный для обсуждения дизайна и реализации подсистемы FireWire(R) (также известной как IEEE 1394 или iLink) в FreeBSD. Соответствующие темы относятся к стандартам, устройствам шины и их протоколам, наборам плат/карт/чипов адаптера, а также архитектуре и реализации кода для их правильной поддержки. - -link:{freebsd-fs-url}[freebsd-fs]:: -_Файловые системы_ -+ -Обсуждения, относящиеся к файловым системам FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-gecko-url}[freebsd-gecko]:: -_Средства визуализации Gecko_ -+ -Дискуссия о приложениях Gecko, используемых на FreeBSD. -+ -Обсуждение сосредоточено вокруг портированных приложений Gecko, их установки, разработки и поддержки во FreeBSD. - -link:{freebsd-geom-url}[freebsd-geom]:: -_GEOM_ -+ -Обсуждения, относящиеся к GEOM и связанным с GEOM реализациям. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-gnome-url}[freebsd-gnome]:: -_GNOME_ -+ -Обсуждения, относящиеся к графической среде GNOME для системы FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-ipfw-url}[freebsd-ipfw]:: -_IP брандмауэр_ -+ -Это форум для технических обсуждений, относящихся к перепроектированию кода межсетевого экрана IP во FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-ia64-url}[freebsd-ia64]:: -_Портирование FreeBSD на IA64_ -+ -Это технический список рассылки для тех, кто активно работает над портированием FreeBSD на платформу IA-64 от Intel(R), предназначенный для поднятия вопросов или обсуждения альтернативных решений. Те, кто интересуется обсуждаемыми проблемами, также приглашаются к участию в рассылке. - -link:{freebsd-isdn-url}[freebsd-isdn]:: -_ISDN соединения_ -+ -Это список рассылки для обсуждения разработки поддержки ISDN для FreeBSD. - -link:{freebsd-java-url}[freebsd-java]:: -_Разработка Java(TM)_ -+ -Этот список рассылки предназначен для обсуждения ключевых приложений Java(TM) для FreeBSD, а также портирования и поддержки JDK(TM). - -[[eresources-charters-jobs]] -link:{freebsd-jobs-url}[freebsd-jobs]:: -_Предложение и поиск работы_ -+ -Это форум для публикации вакансий и резюме, относящихся к FreeBSD. Например, если вы ищете работу, относящеюся к FreeBSD, или у вас есть работа, связанная с FreeBSD, вы можете разместить соответствующую информацию именно здесь. Эта рассылка _не_ предназначена для обсуждения общих вопросов о приеме на работу, поскольку форумы на соответствующие темы уже существуют на других сайтах. -+ -Имейте ввиду, что эта рассылка, как и другие рассылки `FreeBSD.org`, распространяется по всему миру. Поэтому вам необходимо чётко указать свое местоположение и область, с которой возможны телекоммуникации или помощь в перемещении. -+ -Письма должны быть составлены только в открытых форматах - предпочтителен чистый текст, но Portable Document Format (PDF), HTML, и некоторые другие форматы могут быть прочитаны многими. Закрытые форматы, такие как Microsoft(R) Word ([.filename]#.doc#) будут отброшены сервером почтовой рассылки. - -link:{freebsd-kde-url}[freebsd-kde]:: -_KDE_ -+ -Обсуждения, относящиеся к KDE в системах FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-hackers-url}[freebsd-hackers]:: -_Технические обсуждения_ -+ -Это форум для технических обсуждений, относящихся к FreeBSD. Это в основном технический список рассылки. Он предназначен для тех, кто активно работает над FreeBSD, и служит для поднятия вопросов или обсуждения альтернативных решений. Те, кто интересуется обсуждаемыми вопросами, также приглашаются к участию в обсуждении. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-hardware-url}[freebsd-hardware]:: -_Общее обсуждение оборудования FreeBSD_ -+ -Общее обсуждение типов оборудования, на котором работает FreeBSD, различных проблем и предложений относительно того, какое оборудование можно покупать а какое нет. - -link:{freebsd-hubs-url}[freebsd-hubs]:: -_Сайты зеркал_ -+ -Анонсы и обсуждения для поддерживающих зеркала FreeBSD. - -link:{freebsd-isp-url}[freebsd-isp]:: -_Вопросы использования FreeBSD провайдерами_ -+ -Этот список рассылки предназначен для обсуждения тем, имеющих значение для провайдеров, использующих FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-mono-url}[freebsd-mono]:: -_Mono и C# приложения на FreeBSD_ -+ -Этот список рассылки посвящен обсуждениям разработки инфраструктуры Mono на FreeBSD. Это технический список рассылки, который предназначен для людей, активно работающих над портированием Mono или C# приложений на FreeBSD, для освещения проблем или обсуждения альтернативных решений. Также к дискуссии приглашаются все заинтересованные данной темой. - -link:{freebsd-office-url}[freebsd-office]:: -_Офисные приложения во FreeBSD_ -+ -Тема этого списка рассылки - офисные приложения, установка офисных приложений, их разработка и поддержка во FreeBSD. - -link:{freebsd-performance-url}[freebsd-performance]:: -_Обсуждения оптимизации или повышения скорости FreeBSD_ -+ -Этот список рассылки существует как место для обсуждения тем, имеющих отношение к производительности FreeBSD, хакерами, администраторами, и/или заинтересованными сторонами. Приемлемые темы включают обсуждения установок FreeBSD, которые находятся под высокой нагрузкой и сталкиваются с проблемами производительности, или преодоление ограничений FreeBSD. Заинтересованным сторонам, собирающимся работать над улучшением производительности FreeBSD, настоятельно рекомендуется подписаться на эту рассылку. Это техническая рассылка, идеально подходящая для пользователей, хакеров или администраторов, заинтересованных в скорости, стабильности и расширяемости FreeBSD. Это не рассылка вопросов-и-ответов, заменяющая чтение документации, а место, где можно внести свой вклад или получить информацию по еще незатронутой теме, связанной с производительностью. - -link:{freebsd-pf-url}[freebsd-pf]:: -_Обсуждение брандмауэра на базе packet filter_ -+ -Обсуждения, касающиеся работы пакетного фильтра pf под FreeBSD. Допускаются как вопросы пользователей, так и технические дискуссии. Помимо этого, в данном списке уместно обсуждать инфраструктуру ALTQ QoS. - -link:{freebsd-platforms-url}[freebsd-platforms]:: -_Портирование на не-Intel(R) платформы_ -+ -Кросс-платформенные вопросы FreeBSD, общее обсуждение и предложения для не-Intel(R) портов FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-policy-url}[freebsd-policy]:: -_Правила core team_ -+ -Это рассылка с малым количеством сообщений, только для чтения, предназначенная для публикации решений FreeBSD Core Team. - -link:{freebsd-ports-url}[freebsd-ports]:: -_Обсуждения "ports"_ -+ -Обсуждения, относящиеся к "коллекции портов" FreeBSD, ([.filename]#/usr/ports#), инфраструктуры портов и общих усилий по координации портов. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-ports-bugs-url}[freebsd-ports-bugs]:: -_Обсуждение проблем в "ports"_ -+ -Обсуждения, относящиеся к сообщениям о проблемах для "коллекции портов" FreeBSD ([.filename]#/usr/ports#), предлагаемых портов, или изменений к портам. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-proliant-url}[freebsd-proliant]:: -_Работа FreeBSD на серверной платформе HP ProLiant_ -+ -Этот список используется для обсуждения технических аспектов использования FreeBSD на серверах HP ProLiant, в том числе для обсуждения специфичных для ProLiant драйверов, управляющего ПО, систем конфигурации и обновлений BIOS. В частности, это основное место для обсуждения модулей hpasmd, hpasmcli и hpacucli. - -link:{freebsd-python-url}[freebsd-python]:: -_Python во FreeBSD_ -+ -Этот список рассылки посвящён обсуждениям, связанным с улучшением поддержки Python во FreeBSD. Это технический список рассылки. Он предназначен тем, кто работает над портированием во FreeBSD языка Python, модулей сторонних разработчиков для него и Zope. К участию приглашаются также все, кому интересны технические вопросы. - -link:{freebsd-questions-url}[freebsd-questions]:: -_Вопросы пользователей_ -+ -Это список рассылки по вопросам о FreeBSD. Вы не должны отправлять вопросы "как сделать" в технические рассылки, если только не уверены, что ваш вопрос чисто технический. - -link:{freebsd-ruby-url}[freebsd-ruby]:: -_Обсуждения, касающиеся специфики использования Ruby во FreeBSD_ -+ -Список рассылки по вопросам поддержки Ruby на FreeBSD. Это технический список рассылки, который предназначен для людей, работающих над портами Ruby, над инфраструктурой и библиотеками от третьих сторон. -+ -Также к обсуждению приглашаются все, кто заинтересован этой технической дискуссией. - -link:{freebsd-scsi-url}[freebsd-scsi]:: -_Подсистема SCSI_ -+ -Это список рассылки для тех, кто работает над подсистемой SCSI для FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. - -{freebsd-security}:: -_Вопросы безопасности_ -+ -Вопросы безопасности FreeBSD (DES, Kerberos, известные проблемы безопасности и исправления, и т.п.). Это технический список рассылки, предназначенный только для технических обсуждений. Обратите внимание, что это не рассылка вопросов-и-ответов, но дополнения в FAQ (И вопрос И ответ) приветствуются. - -{freebsd-security-notifications}:: -_Уведомления безопасности_ -+ -Уведомления о проблемах безопасности FreeBSD и исправления. Эта рассылка не предназначена для обсуждений. Для обсуждения предназначена рассылка FreeBSD-security. - -link:{freebsd-small-url}[freebsd-small]:: -_Использование FreeBSD во встроенных приложениях_ -+ -В этой рассылке обсуждаются темы, связанные с необычно малыми и встроенными установками FreeBSD. Это технический список рассылки, предназначенный только для технических обсуждений. -+ - -[NOTE] -==== -Этот список рассылки устарел; следует использовать link:{freebsd-embedded-url}[freebsd-embedded]. -==== - -{freebsd-stable}:: -_Обсуждения, касающиеся использования FreeBSD-STABLE_ -+ -Этот список рассылки предназначен для пользователей FreeBSD-STABLE. Он включает предупреждения о новых возможностях, добавляемых в -STABLE, и влияющих на пользователей, и инструкции по действиям, которые необходимы для поддержки системы в состоянии -STABLE. Всякий, использующий "STABLE", должен подписаться на эту рассылку. Это технический список рассылки, предназначенный только для технических обсуждений. - -link:{freebsd-standards-url}[freebsd-standards]:: -_Соответствие C99 и POSIX_ -+ -Это форум для технических обсуждений, относящихся к соответствию FreeBSD стандартам C99 и POSIX. - -link:{freebsd-toolchain-url}[freebsd-toolchain]:: -_Поддержка встроенных инструментальных средств FreeBSD_ -+ -Список рассылки для технических дискуссий, относящихся к поддержке инструментальных средств, поставляемых с FreeBSD. Сюда включено состояние Clang и GCC, а также части программного обеспечения, такого как ассемблеры, компоновщики и отладчики. - -link:{freebsd-usb-url}[freebsd-usb]:: -_Обсуждение поддержки USB в FreeBSD_ -+ -Это форум для технических обсуждений, относящихся к поддержке в FreeBSD устройств с интерфейсом USB. - -link:{freebsd-user-groups-url}[freebsd-user-groups]:: -_Список координации групп пользователей_ -+ -Этот список рассылки предназначен для обсуждения вопросов координаторами каждой группы пользователей и назначенным членом Core Team. Обсуждения в этой рассылке ограничены темой встреч и координацией проектов, относящихся к группам пользователей. +=== Основные правила списков -link:{freebsd-vendors-url}[freebsd-vendors]:: -_Поставщики_ -+ -Обсуждения, относящиеся к координации между FreeBSD Project и поставщиками программного и аппаратного обеспечения для FreeBSD. +_Все_ списки рассылки FreeBSD имеют определенные основные правила, которые должны соблюдаться всеми участниками. Несоблюдение этих правил приведет к двум (2) письменным предупреждениям от постмастера FreeBSD mailto:postmaster@FreeBSD.org[postmaster@FreeBSD.org], после чего, при третьем нарушении, отправитель будет удален из всех списков рассылки FreeBSD и заблокирован для дальнейших отправок. Мы сожалеем, что такие правила и меры вообще необходимы, но сегодняшний Интернет, кажется, довольно суровая среда, и многие не осознают, насколько хрупкими могут быть некоторые его механизмы. -link:{freebsd-virtualization-url}[freebsd-virtualization]:: -_Обсуждение различных техник виртуализации, поддерживаемых FreeBSD_ -+ -Список рассылки, который предназначен для обсуждений различных техник виртуализации, поддерживаемых FreeBSD. С одной стороны фокус сосредоточен на реализации базовой функциональности, также, как и на добавлении новых возможностей. С другой стороны, пользователи получают возможность обратиться за помощью в случае возникновения проблем или обсудить их конкретные варианты использования. +Правила поведения: -link:{freebsd-wip-status-url}[freebsd-wip-status]:: -_Статус начатых работ (Work-In-Progress) во FreeBSD_ -+ -Этот список рассылки может быть использован для анонсов начала и прогресса вашей работы над FreeBSD. Сообщения модерируются. Предполагается, что сообщение посылается ("To:") в тематический список рассылки FreeBSD, а в этот список отправляется копия ("BCC:"). Таким образом ваша работа может обсуждаться в тематическом списке рассылки, так как в этом списке дискуссии не разрешены. -+ -Выборочный обзор сообщений из этого списка рассылки может публиковаться на сайте FreeBSD как часть Status Reports . -+ -Если вам нужны подходящие примеры сообщений, загляните в архивы рассылки или на страницу Status Reports. - -link:{freebsd-wireless-url}[freebsd-wireless]:: -_Обсуждение разработки стека 802.11, утилит, драйверов устройств_ -+ -Список рассылки FreeBSD-wireless предназначен для обсуждения разработки стека 802.11 (sys/net80211), утилит и драйверов устройств. Сообщения о проблемах и новых функциональных возможностях также направляются в эту рассылку. - -link:{freebsd-xen-url}[freebsd-xen]:: -_Обсуждение портирования FreeBSD на Xen(TM) - реализация и использование_ -+ -Список рассылки, предназначенный для дискуссий на тему портирования FreeBSD на Xen(TM). Ожидаемый объем сообщений довольно невелик, поэтому эта рассылка объединяет как технические обсуждения реализации и деталей дизайна, так и административные вопросы развертывания. +* Тема любого сообщения должна соответствовать основному описанию списка рассылки, в который оно отправляется. Если список посвящён техническим вопросам, сообщение должно содержать техническое обсуждение. Постоянные не относящиеся к делу разговоры или флейм только снижают ценность списка рассылки для всех его участников и не допускаются. Для свободного обсуждения без определённой темы доступен список {freebsd-chat}, который и следует использовать в таких случаях. +* Ни одно сообщение не должно отправляться более чем в 2 списки рассылки, и только в 2, если существует явная и очевидная необходимость отправить в оба списка. Для большинства списков уже существует значительное пересечение подписчиков, и, за исключением самых экзотических комбинаций (например, «-stable & -scsi»), нет никаких оснований отправлять сообщение более чем в один список одновременно. Если получено сообщение с несколькими списками рассылки в строке `Cc`, сократите строку `Cc` перед ответом. _Тот, кто отвечает, по-прежнему несёт ответственность за перекрёстную публикацию, независимо от того, кем был отправитель._ +* Личные оскорбления и ненормативная лексика (в контексте спора) не допускаются, и это касается как пользователей, так и разработчиков. Грубые нарушения сетевого этикета, такие как цитирование или перепубликация личной переписки без разрешения, когда такое разрешение не было и не могло быть получено, не приветствуются, но специально не пресекаются. +* Реклама продуктов или услуг, не связанных с FreeBSD, строго запрещена и приведёт к немедленному бану, если очевидно, что нарушитель занимается спамом. [[eresources-mailfiltering]] -=== Фильтрация списков рассылки +=== Фильтрация в почтовых рассылках -Списки рассылки FreeBSD фильтруются различными способами для предотвращения распространения спама, вирусов, и другой нежелательной почты. Действия по фильтрации, описанные в этом разделе, не включают всех используемых для фильтрации списков рассылки проекта действий. +Списки рассылки FreeBSD фильтруются несколькими способами, чтобы избежать распространения спама, вирусов и других нежелательных писем. Описанные в этом разделе действия по фильтрации не включают все методы, используемые для защиты списков рассылки. -Только определенные типы вложений разрешены в списках рассылки. Все вложения с типами MIME содержимого, не входящие в список ниже, будут вырезаться перед тем, как письмо будет отправлено в список рассылки. +На почтовых рассылках разрешены только определенные типы вложений. Все вложения с типом содержимого MIME, не указанным в списке ниже, будут удалены перед рассылкой письма. * application/octet-stream * application/pdf @@ -849,216 +150,40 @@ _Обсуждение портирования FreeBSD на Xen(TM) - реали [NOTE] ==== -Некоторые из списков рассылки могут пропускать вложения других типов MIME, но список выше применим к большинству рассылок. +Некоторые из списков рассылки могут разрешать вложения с другими типами MIME-контента, но приведённый выше список должен быть применим для большинства списков рассылки. ==== -Если письмо содержит как HTML, так и только текстовую версию, версия HTML будет удалена. Если письмо содержит только HTML версию, она будет конвертирована в простой текст. +Если многосоставное сообщение включает части text/plain и text/html: + +- получатели получат обе части +- lists.freebsd.org будет отображать text/plain с возможностью просмотра исходного текста (исходник, включая сырой HTML среди частей). + +Если text/plain не сопровождает text/html: + +- Будет выполнено преобразование из HTML в простой текст. [[eresources-news]] -== Новостные группы Usenet +== Группы новостей Usenet -В дополнение к двум относящимся к FreeBSD группам новостей, существуют множество других, где обсуждается FreeBSD или куда помещается другая информация, относящаяся к пользователям FreeBSD. http://minnie.tuhs.org/BSD-info/bsdnews_search.html[Архивы с поиском по ключевому слову] доступны для некоторых из этих новостных групп благодаря Warren Toomey mailto:wkt@cs.adfa.edu.au[wkt@cs.adfa.edu.au]. +Помимо двух тематических групп новостей, посвящённых FreeBSD, существует множество других, где обсуждается FreeBSD или которые иным образом связаны с интересами пользователей FreeBSD. -=== Относящиеся к BSD новостные группы +=== Новостные группы, специфичные для BSD * link:news:comp.unix.bsd.freebsd.announce[comp.unix.bsd.freebsd.announce] * link:news:comp.unix.bsd.freebsd.misc[comp.unix.bsd.freebsd.misc] -* link:news:de.comp.os.unix.bsd[de.comp.os.unix.bsd] (German) -* link:news:fr.comp.os.bsd[fr.comp.os.bsd] (French) -* link:news:it.comp.os.freebsd[it.comp.os.freebsd] (Italian) -* link:news:tw.bbs.comp.386bsd[tw.bbs.comp.386bsd] (Traditional Chinese) +* link:news:de.comp.os.unix.bsd[de.comp.os.unix.bsd] (немецкий) +* link:news:fr.comp.os.bsd[fr.comp.os.bsd] (французский) -=== Другие интересные UNIX(R) новостные группы +=== Другие новостные группы UNIX(R), представляющие интерес * link:news:comp.unix[comp.unix] * link:news:comp.unix.questions[comp.unix.questions] * link:news:comp.unix.admin[comp.unix.admin] * link:news:comp.unix.programmer[comp.unix.programmer] * link:news:comp.unix.shell[comp.unix.shell] -* link:news:comp.unix.user-friendly[comp.unix.user-friendly] -* link:news:comp.security.unix[comp.security.unix] -* link:news:comp.sources.unix[comp.sources.unix] -* link:news:comp.unix.advocacy[comp.unix.advocacy] * link:news:comp.unix.misc[comp.unix.misc] -* link:news:comp.bugs.4bsd[comp.bugs.4bsd] -* link:news:comp.bugs.4bsd.ucb-fixes[comp.bugs.4bsd.ucb-fixes] * link:news:comp.unix.bsd[comp.unix.bsd] -=== X Window System +=== Система X Window -* link:news:comp.windows.x.i386unix[comp.windows.x.i386unix] * link:news:comp.windows.x[comp.windows.x] -* link:news:comp.windows.x.apps[comp.windows.x.apps] -* link:news:comp.windows.x.announce[comp.windows.x.announce] -* link:news:comp.windows.x.intrinsics[comp.windows.x.intrinsics] -* link:news:comp.windows.x.motif[comp.windows.x.motif] -* link:news:comp.windows.x.pex[comp.windows.x.pex] -* link:news:comp.emulators.ms-windows.wine[comp.emulators.ms-windows.wine] - -[[eresources-web]] -== Серверы World Wide Web - -<<central-mirrors, {central}>>, <<armenia-mirrors, {mirrors-armenia}>>, <<australia-mirrors, {mirrors-australia}>>, <<austria-mirrors, {mirrors-austria}>>, <<czech-republic-mirrors, {mirrors-czech}>>, <<denmark-mirrors, {mirrors-denmark}>>, <<finland-mirrors, {mirrors-finland}>>, <<france-mirrors, {mirrors-france}>>, <<germany-mirrors, {mirrors-germany}>>, <<hong-kong-mirrors, {mirrors-hongkong}>>, <<ireland-mirrors, {mirrors-ireland}>>, <<japan-mirrors, {mirrors-japan}>>, <<latvia-mirrors, {mirrors-latvia}>>, <<lithuania-mirrors, {mirrors-lithuania}>>, <<netherlands-mirrors, {mirrors-netherlands}>>, <<norway-mirrors, {mirrors-norway}>>, <<russia-mirrors, {mirrors-russia}>>, <<slovenia-mirrors, {mirrors-slovenia}>>, <<south-africa-mirrors, {mirrors-south-africa}>>, <<spain-mirrors, {mirrors-spain}>>, <<sweden-mirrors, {mirrors-sweden}>>, <<switzerland-mirrors, {mirrors-switzerland}>>, <<taiwan-mirrors, {mirrors-taiwan}>>, <<uk-mirrors, {mirrors-uk}>>, <<usa-mirrors, {mirrors-us}>>. - -(as of UTC) - -[[central-mirrors]] -*{central}* - -* {central-www} - -[[armenia-mirrors]] -*{mirrors-armenia}* - -* {mirrors-armenia-www-httpv6} (IPv6) - -[[australia-mirrors]] -*{mirrors-australia}* - -* {mirrors-australia-www-http} -* {mirrors-australia-www2-http} - -[[austria-mirrors]] -*{mirrors-austria}* - -* {mirrors-armenia-www-httpv6} (IPv6) - -[[czech-republic-mirrors]] -*{mirrors-czech}* - -* {mirrors-czech-www-httpv6} (IPv6) - -[[denmark-mirrors]] -*{mirrors-denmark}* - -* {mirrors-denmark-www-httpv6} (IPv6) - -[[finland-mirrors]] -*{mirrors-finland}* - -* {mirrors-finland-www-http} - -[[france-mirrors]] -*{mirrors-france}* - -* {mirrors-france-www-http} - -[[germany-mirrors]] -*{mirrors-germany}* - -* {mirrors-germany-www-http} - -[[hong-kong-mirrors]] -*{mirrors-hongkong}* - -* {mirrors-hongkong-www} - -[[ireland-mirrors]] -*{mirrors-ireland}* - -* {mirrors-ireland-www} - -[[japan-mirrors]] -*{mirrors-japan}* - -* {mirrors-japan-www-httpv6} (IPv6) - -[[latvia-mirrors]] -*{mirrors-latvia}* - -* {mirrors-latvia-www} - -[[lithuania-mirrors]] -*{mirrors-lithuania}* - -* {mirrors-lithuania-www} - -[[netherlands-mirrors]] -*{mirrors-netherlands}* - -* {mirrors-netherlands-www} - -[[norway-mirrors]] -*{mirrors-norway}* - -* {mirrors-norway-www} - -[[russia-mirrors]] -*{mirrors-russia}* - -* {mirrors-russia-www-httpv6} (IPv6) - -[[slovenia-mirrors]] -*{mirrors-slovenia}* - -* {mirrors-slovenia-www} - -[[south-africa-mirrors]] -*{mirrors-south-africa}* - -* {mirrors-south-africa-www} - -[[spain-mirrors]] -*{mirrors-spain}* - -* {mirrors-spain-www} -* {mirrors-spain-www2} - -[[sweden-mirrors]] -*{mirrors-sweden}* - -* {mirrors-sweden-www} - -[[switzerland-mirrors]] -*{mirrors-switzerland}* - -* {mirrors-switzerland-www-httpv6} (IPv6) -* {mirrors-switzerland-www2-httpv6} (IPv6) - -[[taiwan-mirrors]] -*{mirrors-taiwan}* - -* {mirrors-taiwan-www} -* {mirrors-taiwan-www2} -* {mirrors-taiwan-www4} -* {mirrors-taiwan-www5-httpv6} (IPv6) - -[[uk-mirrors]] -*{mirrors-uk}* - -* {mirrors-uk-www} -* {mirrors-uk-www3} - -[[usa-mirrors]] -*{mirrors-us}* - -* {mirrors-us-www5-httpv6} (IPv6) - -[[eresources-web-social]] -=== Форумы, блоги и социальные сети - -* Страница http://forums.freebsd.org/[форумов FreeBSD] предоставляет веб форум для технических дискуссий и вопросов о FreeBSD. -* Страница http://planet.freebsdish.org/[Planet FreeBSD] содержит коллекцию ссылок на десятки блогов, ведомых разработчиками FreeBSD. Многие разработчики используют свои блоги для размещения коротких сообщений о своих текущих занятостях, о новых патчах и о прогрессе в своих работах. -* Страница http://www.youtube.com/bsdconferences[Конференций BSD на YouTube] предоставляет коллекцию видеозаписей с Конференций BSD со всего мира. Это прекрасная возможность ознакомиться с презентациями от ключевых разработчиков, освещающих новые работы во FreeBSD. - -[[eresources-web-mirrors]] -=== Официальные зеркала - -[[eresources-email]] -== Адреса Email - -Следующие группы пользователей предоставляют для своих участников почтовые адреса. Приведенные в списке администраторы оставляют за собой право удалить адреса при любом злоупотреблении. - -[.informaltable] -[cols="1,1,1,1", frame="none", options="header"] -|=== -| Домен -| Возможности -| Группа пользователей -| Администратор - -|ukug.uk.FreeBSD.org -|Только пересылка -|mailto:ukfreebsd@uk.FreeBSD.org[ukfreebsd@uk.FreeBSD.org] -|Lee Johnston mailto:lee@uk.FreeBSD.org[lee@uk.FreeBSD.org] -|=== diff --git a/documentation/content/ru/books/handbook/eresources/_index.po b/documentation/content/ru/books/handbook/eresources/_index.po new file mode 100644 index 0000000000..89db87c3a0 --- /dev/null +++ b/documentation/content/ru/books/handbook/eresources/_index.po @@ -0,0 +1,681 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-10-20 11:02+0300\n" +"PO-Revision-Date: 2025-06-12 17:10+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/bookshandbookeresources_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3 |
