diff options
Diffstat (limited to 'documentation/content/ru/articles/nanobsd')
-rw-r--r-- | documentation/content/ru/articles/nanobsd/_index.adoc | 424 | ||||
-rw-r--r-- | documentation/content/ru/articles/nanobsd/_index.po | 1550 |
2 files changed, 1974 insertions, 0 deletions
diff --git a/documentation/content/ru/articles/nanobsd/_index.adoc b/documentation/content/ru/articles/nanobsd/_index.adoc new file mode 100644 index 0000000000..3f8255591a --- /dev/null +++ b/documentation/content/ru/articles/nanobsd/_index.adoc @@ -0,0 +1,424 @@ +--- +authors: + - + author: 'Daniel Gerzo' +copyright: '2006 The FreeBSD Documentation Project' +description: 'Этот документ предоставляет информацию об инструментах NanoBSD, которые могут быть использованы для создания образов системы FreeBSD для встраиваемых приложений, подходящих для использования на USB-накопителе, карте памяти или других носителях данных.' +tags: ["nanobsd", "guide", "embedded", "FreeBSD"] +title: 'Введение в NanoBSD' +trademarks: ["freebsd", "general"] +--- + += Введение в NanoBSD +:doctype: article +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:source-highlighter: rouge +:experimental: +:images-path: articles/nanobsd/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +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[] +:imagesdir: ../../../images/{images-path} +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +[.abstract-title] +Аннотация + +Этот документ предоставляет информацию об инструментах NanoBSD, которые могут быть использованы для создания образов системы FreeBSD для встраиваемых приложений, подходящих для использования на USB-накопителе, карте памяти или других носителях данных. + +''' + +toc::[] + +[[intro]] +== Введение в NanoBSD + +NanoBSD — это инструмент, разработанный {phk} и в настоящее время поддерживаемый {imp}. Он создает образ системы FreeBSD для встраиваемых приложений, подходящий для использования на USB-накопителе, карте памяти или другом носителе данных. + +Он может использоваться для создания специализированных установочных образов, предназначенных для простой установки и обслуживания систем, обычно называемых "компьютерными устройствами". Компьютерные устройства объединяют аппаратное и программное обеспечение в одном продукте, что означает, что все приложения предустановлены. Устройство подключается к существующей сети и может начать работу (почти) сразу. + +Возможности NanoBSD включают: + +* Порты и пакеты работают так же, как в FreeBSD — любое приложение может быть установлено и использовано в образе NanoBSD так же, как и в FreeBSD. +* Отсутствие недостающей функциональности — если что-то возможно сделать в FreeBSD, то это же можно сделать и в NanoBSD, за исключением случаев, когда определённые функции были явно удалены из образа NanoBSD при его создании. +* Всё доступно только для чтения во время работы — можно безопасно выдернуть шнур питания. Нет необходимости запускать man:fsck[8] после нештатного завершения работы системы. +* Простота сборки и настройки — используя всего один shell-скрипт и один файл конфигурации, можно создавать уменьшенные и настроенные образы, удовлетворяющие любым произвольным требованиям. + +[[howto]] +== Инструкция по NanoBSD + +[[design]] +=== Дизайн NanoBSD + +После того как образ записан на носитель, можно загрузить NanoBSD. По умолчанию носитель данных разделён на три части: + +* Два раздела с образами: `code#1` и `code#2`. +* Файловый раздел конфигурации, который может быть смонтирован в каталоге [.filename]#/cfg# во время выполнения. + +Эти разделы обычно монтируются в режиме только для чтения. + +Каталоги [.filename]#/etc# и [.filename]#/var# являются дисками man:md[4] (malloc). + +Раздел конфигурации сохраняется в каталоге [.filename]#/cfg#. Он содержит файлы для каталога [.filename]#/etc# и кратковременно монтируется в режиме только для чтения сразу после загрузки системы, поэтому необходимо копировать изменённые файлы из [.filename]#/etc# обратно в каталог [.filename]#/cfg#, если требуется, чтобы изменения сохранялись после перезагрузки системы. + +.Внесение постоянных изменений в [.filename]#/etc/resolv.conf# +[example] +==== + +[source, shell] +.... +# vi /etc/resolv.conf +[...] +# mount /cfg +# cp /etc/resolv.conf /cfg +# umount /cfg +.... + +==== + +[NOTE] +==== +Раздел, содержащий [.filename]#/cfg#, должен монтироваться только во время загрузки и при переопределении конфигурационных файлов. + +Постоянное подключение [.filename]#/cfg# не является хорошей идеей, особенно если Система NanoBSD работает на носителе данных, который может быть повреждён из-за большого количества операций записи в раздел (например, когда синхронизатор файловой системы записывает данные на системные диски). +==== + +=== Создание образа NanoBSD + +Для сборки NanoBSD необходим исходный код FreeBSD. Чтобы получить исходный код: + +[source, shell] +.... +# git clone https://git.FreeBSD.org/src.git /usr/src +.... + +Для более подробной информации выполните шаги, описанные extref:{handbook}cutting-edge#updating-src-obtaining-src[здесь]. + +Образ NanoBSD создаётся с помощью простого скрипта [.filename]#nanobsd.sh#, который находится в каталоге [.filename]#/usr/src/tools/tools/nanobsd#. Этот скрипт создаёт образ, который можно записать на носитель с помощью утилиты man:dd[1]. + +Необходимые команды для создания образа NanoBSD: + +[source, shell] +.... +# cd /usr/src/tools/tools/nanobsd <.> +# sh nanobsd.sh <.> +# cd /usr/obj/nanobsd.full <.> +# dd if=_.disk.full of=/dev/da0 bs=64k <.> +.... + +<.> Измените текущий каталог на базовый каталог скрипта сборки NanoBSD. + +<.> Начните процесс сборки. + +<.> Измените текущий каталог на место, где расположены собранные образы. + +<.> Установите NanoBSD на носитель данных. + +==== Параметры при сборке образа NanoBSD + +При создании образа NanoBSD можно передать несколько параметров сборки в [.filename]#nanobsd.sh# через командную строку. Эти параметры могут существенно повлиять на процесс сборки. + +Некоторые параметры предназначены для информирования в большем или меньшем объеме: + +* `-h`: выводит страницу с краткой справкой. +* `-q`: делает вывод менее подробным. +* `-v`: делает вывод более подробным + +Некоторые другие параметры могут использоваться для ограничения процесса сборки. Иногда нет необходимости пересобирать всё из исходников, особенно если образ уже был собран и внесены лишь небольшие изменения. + +* `-k`: не собирать ядро +* `-w`: не собирать world +* `-b`: не собирать ни ядро, ни систему +* `-i`: не создавать образ диска. Поскольку файл не будет создан, его нельзя будет записать на носитель с помощью man:dd[1]. +* `-f`: не создавать образ диска первого раздела (что полезно для целей обновления) +* `-n`: добавляет `-DNO_CLEAN` к `buildworld`, `buildkernel`. Кроме того, все файлы, которые уже были собраны в предыдущем запуске, сохраняются. + +Файл конфигурации можно использовать для настройки множества элементов. Загрузите его с помощью `-c` + +Последние параметры: + +* `-K`: не устанавливать ядро. Образ диска без ядра не сможет выполнить нормальную последовательность загрузки. + +==== Полный процесс сборки образа + +Полный процесс сборки образа проходит через множество этапов. Точные шаги зависят от выбранных опций при запуске скрипта. При условии, что скрипт запущен без специальных опций, вот что произойдет. + +. `run_early_customize`: команды, определенные в предоставленном файле конфигурации. +. `clean_build`: Просто очищает среду сборки, удаляя ранее созданные файлы. +. `make_conf_build`: Собрать make.conf из переменных `CONF_WORLD` и `CONF_BUILD`. +. `build_world`: Сборка системы. +. `build_kernel`: Собрать файлы ядра. +. `clean_world`: Очистить целевую директорию. +. `make_conf_install`: Собрать make.conf из переменных `CONF_WORLD` и `CONF_INSTALL`. +. `install_world`: Установить все файлы, собранные во время `buildworld`. +. `install_etc`: Установить необходимые файлы в директорию [.filename]#/etc#, используя команду `make distribution`. +. `setup_nanobsd_etc`: на этом этапе происходит первая специфичная для NanoBSD настройка. Создается [.filename]#/etc/diskless#, а корневая файловая система определяется как доступная только для чтения. +. `install_kernel`: устанавливаются файлы ядра и модулей. +. `run_customize`: будут вызваны все пользовательские процедуры настройки. +. `setup_nanobsd`: создаётся специальная структура конфигурационных каталогов. Каталог [.filename]#/usr/local/etc# перемещается в [.filename]#/etc/local#, а затем создаётся символическая ссылка из [.filename]#/etc/local# обратно в [.filename]#/usr/local/etc#. +. `prune_usr`: пустые директории в [.filename]#/usr# удаляются. +. `run_late_customize`: на этом этапе могут быть выполнены самые последние пользовательские скрипты. +. `fixup_before_diskimage`: Вывести список всех установленных файлов в metalog +. `create_diskimage`: создает образ диска на основе предоставленных параметров геометрии диска. +. `last_orders`: в настоящее время ничего не делает. + +=== Настройка образа NanoBSD + +Вероятно, это самая важная и интересная функция NanoBSD. Здесь же вы проведёте большую часть времени при разработке с NanoBSD. + +Вызов следующей команды заставит [.filename]#nanobsd.sh# прочитать конфигурацию из файла [.filename]#myconf.nano#, расположенного в текущем каталоге: + +[source, shell] +.... +# sh nanobsd.sh -c myconf.nano +.... + +Настройка выполняется двумя способами: + +* Параметры конфигурации +* Пользовательские функции + +==== Параметры конфигурации + +С помощью настроек конфигурации можно задать параметры, передаваемые как на этапах `buildworld`, так и `installworld` процесса сборки NanoBSD, а также внутренние параметры, передаваемые основному процессу сборки NanoBSD. Эти параметры позволяют сократить систему так, чтобы она помещалась всего на 64 МБ. Вы можете использовать конфигурационные опции для ещё большего урезания FreeBSD, пока она не будет состоять только из ядра и двух-трёх файлов в пользовательском пространстве. + +Файл конфигурации состоит из параметров конфигурации, которые переопределяют значения по умолчанию. Наиболее важные директивы: + +* `NANO_NAME` - Имя сборки (используется для формирования имен рабочих каталогов). +* `NANO_SRC` - Путь к исходному дереву, используемому для сборки образа. +* `NANO_KERNEL` - Имя файла конфигурации ядра, используемого для сборки ядра. +* `CONF_BUILD` - Параметры, передаваемые на этапе `buildworld` сборки. +* `CONF_INSTALL` - Параметры, передаваемые на этапе `installworld` при сборке. +* `CONF_WORLD` - Параметры, передаваемые на этапах `buildworld` и `installworld` сборки. +* `FlashDevice` - Определяет тип носителя для использования. Подробности смотрите в [.filename]#FlashDevice.sub#. + +Существует множество дополнительных параметров конфигурации, которые могут быть актуальными в зависимости от типа NanoBSD. + +===== Общая настройка + +Существует три этапа, на которых по замыслу можно внести изменения, влияющие на процесс сборки, просто установив переменную в предоставленном конфигурационном файле: + +* `run_early_customize`: до выполнения любых других действий. +* `run_customize`: после того как все стандартные файлы будут размещены +* `run_late_customize`: в самом конце процесса, непосредственно перед созданием фактического образа NanoBSD. + +Для настройки образа NanoBSD на любом из этих этапов лучше всего добавить конкретное значение в одну из соответствующих переменных. + +Переменная `NANO_EARLY_CUSTOMIZE` используется на первом этапе процесса сборки. На данный момент нет примера того, что можно сделать с помощью этой переменной, но это может измениться в будущем. + +Переменная `NANO_CUSTOMIZE` используется после установки ядра, системы и конфигурационных файлов etc, а также настройки файлов etc для установки NanoBSD. Таким образом, это правильный этап процесса сборки для изменения параметров конфигурации и добавления пакетов, как в примере cust_nobeastie. + +Переменная `NANO_LATE_CUSTOMIZE` используется непосредственно перед созданием образа диска, поэтому это последний момент для внесения изменений. Помните, что процедура `setup_nanobsd` уже выполнена и каталоги [.filename]#etc#, [.filename]#conf# и [.filename]#cfg#, включая подкаталоги, уже изменены, поэтому сейчас не время их корректировать. Вместо этого можно добавить или удалить конкретные файлы. + +===== Параметры загрузки + +Существуют также переменные, которые могут изменить способ загрузки образа NanoBSD. Два параметра передаются в man:boot0cfg[8] для инициализации загрузочного сектора образа диска: + +* `NANO_BOOT0CFG` +* `NANO_BOOTLOADER` + +С помощью `NANO_BOOTLOADER` можно выбрать файл загрузчика. Наиболее распространённые варианты — [.filename]#boot0sio# и [.filename]#boot0#, в зависимости от наличия последовательного порта у устройства. Лучше не указывать другой загрузчик, но это возможно. Для этого рекомендуется предварительно ознакомиться с extref:{handbook}boot[главой FreeBSD Handbook] о процессе загрузки. + +С помощью `NANO_BOOT0CFG` можно настроить процесс загрузки, например, выбрать раздел, с которого будет загружаться образ NanoBSD. Перед изменением значения этой переменной рекомендуется ознакомиться со страницей руководства man:boot0cfg[8]. Один из интересных параметров, который можно изменить, — это таймаут процедуры загрузки. Для этого переменную `NANO_BOOT0CFG` можно изменить на `"-o packet -s 1 -m 3 -t 36"`. В этом случае процесс загрузки начнётся примерно через 2 секунды, так как редко возникает необходимость ждать 10 секунд перед началом загрузки. + +Хорошо знать: переменная `NANO_BOOT2CFG` используется только в подпрограмме `cust_comconsole`, которая может вызываться на этапе `NANO_CUSTOMIZE`, если устройство имеет последовательный порт и весь ввод и вывод консоли должен осуществляться через него. Обязательно проверьте соответствующие параметры последовательного порта, так как установка некорректного значения параметра может сделать его бесполезным. + +===== Создание образа диска + +В конце процесса загрузки происходит создание образа диска. На этом этапе скрипт NanoBSD предоставляет файл, который можно просто скопировать на диск для устройства, и это позволит ему загрузиться и запуститься. + +Существует множество переменных, которые должны быть настроены правильно, чтобы скрипт создал пригодный для использования образ диска. + +* Переменная `NANO_DRIVE` должна быть установлена в имя накопителя носителя во время выполнения. Обычно ожидается, что значение по умолчанию `ada0`, которое представляет первое устройство `IDE`/`ATA`/`SATA` на устройстве, будет правильным, но также может использоваться другой тип накопителя — например, USB-ключ, в этом случае это скорее будет `da0`. +* Переменная `NANO_MEDIASIZE` должна быть установлена в значение размера (в секторах по 512 байт) носителя данных, который будет использоваться. Если задать её неправильно, образ NanoBSD может вообще не загрузиться, а во время загрузки появится сообщение о некорректной геометрии диска. + +* Каталоги [.filename]#/etc#, [.filename]#/var# и [.filename]#/tmp# выделяются как диски man:md[4] (malloc) при загрузке; их размеры могут быть настроены в соответствии с потребностями устройства. Переменная `NANO_RAM_ETCSIZE` задаёт размер [.filename]#/etc#, а переменная `NANO_RAM_TMPVARSIZE` определяет размер как [.filename]#/var#, так и [.filename]#/tmp#, поскольку [.filename]#/tmp# символически ссылается на [.filename]#/var/tmp#. По умолчанию размер обоих дисков malloc установлен в 20 МБ каждый. Их можно изменить, но обычно [.filename]#/etc# не сильно увеличивается в размере, поэтому 20 МБ — хорошая начальная точка, тогда как [.filename]#/var# и особенно [.filename]#/tmp# могут стать значительно больше, если не следить за ними. Для систем с ограниченной памятью можно выбрать меньшие размеры файловых систем. +* Поскольку NanoBSD в основном предназначен для создания образа системы для устройства, предполагается, что используемые носители данных будут относительно небольшими. По этой причине файловая система настроена на использование небольшого размера блока (4 Кб) и небольшого размера фрагмента (512 байт). Параметры конфигурации файловой системы можно изменить с помощью переменной `NANO_NEWFS`, но синтаксис должен соответствовать формату команды man:newfs[8]. Кроме того, по умолчанию в файловой системе включены Soft Updates. Подробнее об этом можно узнать в extref:{handbook}[FreeBSD Handbook]. +* Различные размеры разделов могут быть заданы с использованием `NANO_CODESIZE`, `NANO_CONFSIZE` и `NANO_DATASIZE` в виде кратного 512-байтным секторам. `NANO_CODESIZE` определяет размер первых двух разделов образа: `code#1` и `code#2`. Они должны быть достаточно большими, чтобы вместить все файлы, созданные в результате процессов `buildworld` и `buildkernel`. `NANO_CONFSIZE` определяет размер раздела для конфигурационных файлов, поэтому он не должен быть очень большим; однако не стоит делать его слишком маленьким, чтобы он мог вместить все конфигурационные файлы. Наконец, `NANO_DATASIZE` определяет размер дополнительного раздела, который может использоваться на устройстве. Последний раздел может быть использован, например, для хранения файлов, создаваемых на лету на диске. + +==== Пользовательские Функции + +Возможно тонко настроить NanoBSD с помощью функций оболочки в конфигурационном файле. Следующий пример иллюстрирует базовую модель пользовательских функций: + +[.programlisting] +.... +cust_foo () ( + echo "bar=baz" > \ + ${NANO_WORLDDIR}/etc/foo +) +customize_cmd cust_foo +.... + +Более полезный пример функции настройки — следующий, который изменяет размер каталога [.filename]#/etc# по умолчанию с 5 МБ на 30 МБ: + +[.programlisting] +.... +cust_etc_size () ( + cd ${NANO_WORLDDIR}/conf + echo 30000 > default/etc/md_size +) +customize_cmd cust_etc_size +.... + +Существует несколько предопределённых функций для настройки, готовых к использованию: + +* `cust_comconsole` - Отключает man:getty[8] на VGA-устройствах (узлы устройств [.filename]#/dev/ttyv*#) и позволяет использовать последовательный порт COM1 в качестве системной консоли. +* `cust_allow_ssh_root` - Разрешить `root` входить через man:sshd[8]. +* `cust_install_files` - Устанавливает файлы из каталога [.filename]#nanobsd/Files#, который содержит полезные скрипты для администрирования системы. +* `cust_pkgng` - Устанавливает пакеты из каталога [.filename]#nanobsd/Pkg# (также требуется пакет pkg-* для начальной загрузки). + +==== Добавление пакетов + +Пакеты могут быть добавлены в образ NanoBSD для обеспечения специфических функциональных возможностей устройства. Для этого можно: + +* Добавьте `cust_pkgng` в переменную `NANO_CUSTOMIZE` или +* Добавьте команду `'customize_cmd cust_pkgng'` в настраиваемый конфигурационный файл. + +Оба метода приводят к одному результату: запуск процедуры `cust_pkgng`. Эта процедура проверит каталог `NANO_PACKAGE_DIR` для поиска всех пакетов или только списка пакетов, указанных в переменной `NANO_PACKAGE_LIST`. + +Обычно при установке приложений через pkg в стандартной среде FreeBSD процесс установки размещает конфигурационные файлы в каталоге [.filename]#usr/local/etc#, а скрипты запуска — в каталоге [.filename]#/usr/local/etc/rc.d#. Поэтому после установки необходимых пакетов их нужно настроить, чтобы они запускались сразу после установки. Для этого необходимо разместить соответствующие конфигурационные файлы в правильных каталогах. Это можно сделать, написав специализированные процедуры, или использовать общую процедуру `cust_install_files` для корректного размещения файлов из каталога [.filename]#/usr/src/tools/tools/nanobsd/Files#. Обычно также требуется добавить одну или несколько записей в файл [.filename]#/etc/rc.conf# для каждого пакета. + +==== Пример файла конфигурации + +Полный пример конфигурационного файла для создания пользовательского образа NanoBSD может выглядеть следующим образом: + +[.programlisting] +.... +NANO_NAME=custom +NANO_SRC=/usr/src +NANO_KERNEL=MYKERNEL +NANO_IMAGES=2 + +CONF_BUILD=' +WITHOUT_KLDLOAD=YES +WITHOUT_NETGRAPH=YES +WITHOUT_PAM=YES +' + +CONF_INSTALL=' +WITHOUT_ACPI=YES +WITHOUT_BLUETOOTH=YES +WITHOUT_FORTRAN=YES +WITHOUT_HTML=YES +WITHOUT_LPR=YES +WITHOUT_MAN=YES +WITHOUT_SENDMAIL=YES +WITHOUT_SHAREDOCS=YES +WITHOUT_EXAMPLES=YES +WITHOUT_INSTALLLIB=YES +WITHOUT_CALENDAR=YES +WITHOUT_MISC=YES +WITHOUT_SHARE=YES +' + +CONF_WORLD=' +WITHOUT_BIND=YES +WITHOUT_MODULES=YES +WITHOUT_KERBEROS=YES +WITHOUT_GAMES=YES +WITHOUT_RESCUE=YES +WITHOUT_LOCALES=YES +WITHOUT_SYSCONS=YES +WITHOUT_INFO=YES +' + +FlashDevice SanDisk 1G + +cust_nobeastie() ( + touch ${NANO_WORLDDIR}/boot/loader.conf + echo "beastie_disable=\"YES\"" >> ${NANO_WORLDDIR}/boot/loader.conf +) + +customize_cmd cust_comconsole +customize_cmd cust_install_files +customize_cmd cust_allow_ssh_root +customize_cmd cust_nobeastie +.... + +Все параметры сборки и установки можно найти на странице Справочника man:src.conf[5], но не все параметры можно или следует использовать при создании образа NanoBSD. Параметры сборки и установки должны определяться в соответствии с потребностями создаваемого образа. + +Например, FTP-клиент и сервер могут не потребоваться. Добавление `WITHOUT_FTP=TRUE` в файл конфигурации в разделе `CONF_BUILD` позволит избежать их сборки. Также, если устройство NanoBSD не будет использоваться для сборки программ, можно добавить `WITHOUT_BINUTILS=TRUE` в раздел `CONF_INSTALL`, но не в раздел `CONF_BUILD`, так как они будут использоваться для сборки образа NanoBSD. + +Не сборка определенного набора программ — через опцию компиляции — сокращает общее время сборки и уменьшает требуемый размер дискового образа, тогда как отсутствие установки того же набора программ не сокращает общее время сборки. + +=== Обновление NanoBSD + +Процесс обновления NanoBSD относительно прост: + +[.procedure] +==== +. Соберите новый образ NanoBSD, как обычно. +. Загрузите новый образ в неиспользуемый раздел работающего устройства NanoBSD. ++ +Важнейшее отличие этого шага от первоначальной установки NanoBSD заключается в том, что теперь вместо использования [.filename]#\_.disk.full# (который содержит образ всего диска), устанавливается образ [.filename]#_.disk.image# (который содержит образ одного системного раздела). +. Перезагрузите систему и запустите её с только что установленного раздела. +. Если все прошло успешно, обновление завершено. +. Если что-то пойдет не так, перезагрузитесь обратно в предыдущий раздел (который содержит старую, рабочую версию), чтобы восстановить работоспособность системы как можно быстрее. Исправьте все проблемы новой сборки и повторите процесс. +==== + +Для установки нового образа на работающую систему NanoBSD можно использовать скрипт [.filename]#updatep1# или [.filename]#updatep2#, расположенный в директории [.filename]#/root#, в зависимости от того, с какого раздела запущена текущая система. + +В зависимости от того, какие службы доступны на хосте, предоставляющем новый образ NanoBSD, и какой тип передачи предпочтителен, можно рассмотреть один из этих трех способов: + +==== Использование man:ftp[1] + +Если скорость передачи данных стоит на первом месте, используйте этот пример: + +[source, shell] +.... +# ftp myhost +get _.disk.image "| sh updatep1" +.... + +==== Использование man:ssh[1] + +Если предпочтителен безопасный способ передачи, рассмотрите следующий пример: + +[source, shell] +.... +# ssh myhost cat _.disk.image.gz | zcat | sh updatep1 +.... + +==== Использование man:nc[1] + +Попробуйте этот пример, если на удалённом хосте не запущены ни служба man:ftpd[8], ни служба man:sshd[8]: + +[.procedure] +==== +. Сначала откройте TCP-слушатель на хосте, обслуживающем образ, и настройте его на отправку образа клиенту: ++ +[source, shell] +.... +myhost# nc -l 2222 < _.disk.image +.... ++ +[NOTE] +====== +Убедитесь, что используемый порт не заблокирован для приёма входящих подключений с хоста NanoBSD межсетевым экраном. +====== +. Подключитесь к хосту, предоставляющему новый образ, и выполните скрипт [.filename]#updatep1#: ++ +[source, shell] +.... +# nc myhost 2222 | sh updatep1 +.... +==== diff --git a/documentation/content/ru/articles/nanobsd/_index.po b/documentation/content/ru/articles/nanobsd/_index.po new file mode 100644 index 0000000000..f7bfc67304 --- /dev/null +++ b/documentation/content/ru/articles/nanobsd/_index.po @@ -0,0 +1,1550 @@ +# 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: 2024-01-17 20:35-0300\n" +"PO-Revision-Date: 2025-08-12 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/articlesnanobsd_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: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:1 +#: documentation/content/en/articles/nanobsd/_index.adoc:46 +#, no-wrap +msgid "This document provides information about the NanoBSD tools, which can be used to create FreeBSD system images for embedded applications, suitable for use on a USB key, memory card or other mass storage media." +msgstr "" +"Этот документ предоставляет информацию об инструментах NanoBSD, которые " +"могут быть использованы для создания образов системы FreeBSD для " +"встраиваемых приложений, подходящих для использования на USB-накопителе, " +"карте памяти или других носителях данных." + +#. type: Title == +#: documentation/content/en/articles/nanobsd/_index.adoc:1 +#: documentation/content/en/articles/nanobsd/_index.adoc:11 +#: documentation/content/en/articles/nanobsd/_index.adoc:52 +#, no-wrap +msgid "Introduction to NanoBSD" +msgstr "Введение в NanoBSD" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:44 +msgid "Abstract" +msgstr "Аннотация" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:48 +msgid "'''" +msgstr "'''" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:56 +msgid "" +"NanoBSD is a tool developed by {phk} and now maintained by {imp}. It " +"creates a FreeBSD system image for embedded applications, suitable for use " +"on a USB key, memory card or other mass storage media." +msgstr "" +"NanoBSD — это инструмент, разработанный {phk} и в настоящее время " +"поддерживаемый {imp}. Он создает образ системы FreeBSD для встраиваемых " +"приложений, подходящий для использования на USB-накопителе, карте памяти или " +"другом носителе данных." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:60 +msgid "" +"It can be used to build specialized install images, designed for easy " +"installation and maintenance of systems commonly called \"computer " +"appliances\". Computer appliances have their hardware and software bundled " +"in the product, which means all applications are pre-installed. The " +"appliance is plugged into an existing network and can begin working (almost) " +"immediately." +msgstr "" +"Он может использоваться для создания специализированных установочных " +"образов, предназначенных для простой установки и обслуживания систем, обычно " +"называемых \"компьютерными устройствами\". Компьютерные устройства " +"объединяют аппаратное и программное обеспечение в одном продукте, что " +"означает, что все приложения предустановлены. Устройство подключается к " +"существующей сети и может начать работу (почти) сразу." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:62 +msgid "The features of NanoBSD include:" +msgstr "Возможности NanoBSD включают:" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:64 +msgid "" +"Ports and packages work as in FreeBSD - Every single application can be " +"installed and used in a NanoBSD image, the same way as in FreeBSD." +msgstr "" +"Порты и пакеты работают так же, как в FreeBSD — любое приложение может быть " +"установлено и использовано в образе NanoBSD так же, как и в FreeBSD." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:65 +msgid "" +"No missing functionality - If it is possible to do something with FreeBSD, " +"it is possible to do the same thing with NanoBSD, unless the specific " +"feature or features were explicitly removed from the NanoBSD image when it " +"was created." +msgstr "" +"Отсутствие недостающей функциональности — если что-то возможно сделать в " +"FreeBSD, то это же можно сделать и в NanoBSD, за исключением случаев, когда " +"определённые функции были явно удалены из образа NanoBSD при его создании." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:66 +msgid "" +"Everything is read-only at run-time - It is safe to pull the power-plug. " +"There is no necessity to run man:fsck[8] after a non-graceful shutdown of " +"the system." +msgstr "" +"Всё доступно только для чтения во время работы — можно безопасно выдернуть " +"шнур питания. Нет необходимости запускать man:fsck[8] после нештатного " +"завершения работы системы." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:67 +msgid "" +"Easy to build and customize - Making use of just one shell script and one " +"configuration file it is possible to build reduced and customized images " +"satisfying any arbitrary set of requirements." +msgstr "" +"Простота сборки и настройки — используя всего один shell-скрипт и один файл " +"конфигурации, можно создавать уменьшенные и настроенные образы, " +"удовлетворяющие любым произвольным требованиям." + +#. type: Title == +#: documentation/content/en/articles/nanobsd/_index.adoc:69 +#, no-wrap +msgid "NanoBSD Howto" +msgstr "Инструкция по NanoBSD" + +#. type: Title === +#: documentation/content/en/articles/nanobsd/_index.adoc:72 +#, no-wrap +msgid "The Design of NanoBSD" +msgstr "Дизайн NanoBSD" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:76 +msgid "" +"Once the image is present on the medium, it is possible to boot NanoBSD. " +"The mass storage medium is divided into three parts by default:" +msgstr "" +"После того как образ записан на носитель, можно загрузить NanoBSD. По " +"умолчанию носитель данных разделён на три части:" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:78 +msgid "Two image partitions: `code#1` and `code#2`." +msgstr "Два раздела с образами: `code#1` и `code#2`." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:79 +msgid "" +"The configuration file partition, which can be mounted under the [." +"filename]#/cfg# directory at run time." +msgstr "" +"Файловый раздел конфигурации, который может быть смонтирован в каталоге [." +"filename]#/cfg# во время выполнения." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:81 +msgid "These partitions are normally mounted read-only." +msgstr "Эти разделы обычно монтируются в режиме только для чтения." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:83 +msgid "" +"The [.filename]#/etc# and [.filename]#/var# directories are man:md[4] " +"(malloc) disks." +msgstr "" +"Каталоги [.filename]#/etc# и [.filename]#/var# являются дисками man:md[4] " +"(malloc)." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:86 +msgid "" +"The configuration file partition persists under the [.filename]#/cfg# " +"directory. It contains files for [.filename]#/etc# directory and is briefly " +"mounted read-only right after the system boot, therefore it is required to " +"copy modified files from [.filename]#/etc# back to the [.filename]#/cfg# " +"directory if changes are expected to persist after the system restarts." +msgstr "" +"Раздел конфигурации сохраняется в каталоге [.filename]#/cfg#. Он содержит " +"файлы для каталога [.filename]#/etc# и кратковременно монтируется в режиме " +"только для чтения сразу после загрузки системы, поэтому необходимо " +"копировать изменённые файлы из [.filename]#/etc# обратно в каталог [." +"filename]#/cfg#, если требуется, чтобы изменения сохранялись после " +"перезагрузки системы." + +#. type: Block title +#: documentation/content/en/articles/nanobsd/_index.adoc:87 +#, no-wrap +msgid "Making Persistent Changes to [.filename]#/etc/resolv.conf#" +msgstr "Внесение постоянных изменений в [.filename]#/etc/resolv.conf#" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:98 +#, no-wrap +msgid "" +"# vi /etc/resolv.conf\n" +"[...]\n" +"# mount /cfg\n" +"# cp /etc/resolv.conf /cfg\n" +"# umount /cfg\n" +msgstr "" +"# vi /etc/resolv.conf\n" +"[...]\n" +"# mount /cfg\n" +"# cp /etc/resolv.conf /cfg\n" +"# umount /cfg\n" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:105 +msgid "" +"The partition containing [.filename]#/cfg# should be mounted only at boot " +"time and while overriding the configuration files." +msgstr "" +"Раздел, содержащий [.filename]#/cfg#, должен монтироваться только во время " +"загрузки и при переопределении конфигурационных файлов." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:107 +msgid "" +"Keeping [.filename]#/cfg# mounted at all times is not a good idea, " +"especially if the NanoBSD system runs off a mass storage medium that may be " +"adversely affected by a large number of writes to the partition (like when " +"the filesystem syncer flushes data to the system disks)." +msgstr "" +"Постоянное подключение [.filename]#/cfg# не является хорошей идеей, особенно " +"если Система NanoBSD работает на носителе данных, который может быть " +"повреждён из-за большого количества операций записи в раздел (например, " +"когда синхронизатор файловой системы записывает данные на системные диски)." + +#. type: Title === +#: documentation/content/en/articles/nanobsd/_index.adoc:109 +#, no-wrap +msgid "Building a NanoBSD Image" +msgstr "Создание образа NanoBSD" + +#. type: delimited block = 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:113 +msgid "" +"The source code of FreeBSD is required to build NanoBSD. To obtain the " +"source code:" +msgstr "" +"Для сборки NanoBSD необходим исходный код FreeBSD. Чтобы получить исходный " +"код:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:117 +#, no-wrap +msgid "# git clone https://git.FreeBSD.org/src.git /usr/src\n" +msgstr "# git clone https://git.FreeBSD.org/src.git /usr/src\n" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:120 +msgid "" +"For more details, follow the steps extref:{handbook}cutting-edge#updating-" +"src-obtaining-src[here]." +msgstr "" +"Для более подробной информации выполните шаги, описанные extref:{handbook" +"}cutting-edge#updating-src-obtaining-src[здесь]." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:123 +msgid "" +"A NanoBSD image is built using a simple [.filename]#nanobsd.sh# shell " +"script, which can be found in the [.filename]#/usr/src/tools/tools/nanobsd# " +"directory. This script creates an image, which can be copied on the storage " +"medium using the man:dd[1] utility." +msgstr "" +"Образ NanoBSD создаётся с помощью простого скрипта [.filename]#nanobsd.sh#, " +"который находится в каталоге [.filename]#/usr/src/tools/tools/nanobsd#. Этот " +"скрипт создаёт образ, который можно записать на носитель с помощью утилиты " +"man:dd[1]." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:125 +msgid "The necessary commands to build a NanoBSD image are:" +msgstr "Необходимые команды для создания образа NanoBSD:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:132 +#, no-wrap +msgid "" +"# cd /usr/src/tools/tools/nanobsd <.>\n" +"# sh nanobsd.sh <.>\n" +"# cd /usr/obj/nanobsd.full <.>\n" +"# dd if=_.disk.full of=/dev/da0 bs=64k <.>\n" +msgstr "" +"# cd /usr/src/tools/tools/nanobsd <.>\n" +"# sh nanobsd.sh <.>\n" +"# cd /usr/obj/nanobsd.full <.>\n" +"# dd if=_.disk.full of=/dev/da0 bs=64k <.>\n" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:135 +msgid "" +"Change the current directory to the base directory of the NanoBSD build " +"script." +msgstr "Измените текущий каталог на базовый каталог скрипта сборки NanoBSD." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:137 +msgid "Start the build process." +msgstr "Начните процесс сборки." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:139 +msgid "" +"Change the current directory to the place where the built images are located." +msgstr "Измените текущий каталог на место, где расположены собранные образы." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:141 +msgid "Install NanoBSD onto the storage medium." +msgstr "Установите NanoBSD на носитель данных." + +#. type: Title ==== +#: documentation/content/en/articles/nanobsd/_index.adoc:142 +#, no-wrap +msgid "Options When Building a NanoBSD Image" +msgstr "Параметры при сборке образа NanoBSD" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:146 +msgid "" +"When building a NanoBSD image, several build options can be passed to [." +"filename]#nanobsd.sh# on the command line. These options can have a " +"significant impact on the build process." +msgstr "" +"При создании образа NanoBSD можно передать несколько параметров сборки в [." +"filename]#nanobsd.sh# через командную строку. Эти параметры могут " +"существенно повлиять на процесс сборки." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:148 +msgid "Some options are for verbosity purposes:" +msgstr "" +"Некоторые параметры предназначены для информирования в большем или меньшем " +"объеме:" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:150 +msgid "`-h`: prints the help summary page." +msgstr "`-h`: выводит страницу с краткой справкой." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:151 +msgid "`-q`: makes output quieter." +msgstr "`-q`: делает вывод менее подробным." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:152 +msgid "`-v`: makes output more verbose" +msgstr "`-v`: делает вывод более подробным" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:155 +msgid "" +"Some other options can be used to restrict the building process. Sometimes " +"it is not necessary to rebuild everything from sources, especially if an " +"image has already been built, and only little change is made." +msgstr "" +"Некоторые другие параметры могут использоваться для ограничения процесса " +"сборки. Иногда нет необходимости пересобирать всё из исходников, особенно " +"если образ уже был собран и внесены лишь небольшие изменения." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:157 +msgid "`-k`: do not build the kernel" +msgstr "`-k`: не собирать ядро" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:158 +msgid "`-w`: do not build world" +msgstr "`-w`: не собирать world" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:159 +msgid "`-b`: do not build either kernel and world" +msgstr "`-b`: не собирать ни ядро, ни систему" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:160 +msgid "" +"`-i`: do not build a disk image at all. As a file will not be created, it " +"will not be possible to man:dd[1] it to a storage media." +msgstr "" +"`-i`: не создавать образ диска. Поскольку файл не будет создан, его нельзя " +"будет записать на носитель с помощью man:dd[1]." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:161 +msgid "" +"`-f`: do not build a disk image of the first partition (which is useful for " +"upgrade purposes)" +msgstr "" +"`-f`: не создавать образ диска первого раздела (что полезно для целей " +"обновления)" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:162 +msgid "" +"`-n`: add `-DNO_CLEAN` to `buildworld`, `buildkernel`. Also, all the files " +"that have already been built in a previous run are kept." +msgstr "" +"`-n`: добавляет `-DNO_CLEAN` к `buildworld`, `buildkernel`. Кроме того, все " +"файлы, которые уже были собраны в предыдущем запуске, сохраняются." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:165 +msgid "" +"A configuration file can be used to tweak as many elements as desired. Load " +"it with `-c`" +msgstr "" +"Файл конфигурации можно использовать для настройки множества элементов. " +"Загрузите его с помощью `-c`" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:167 +msgid "The last options are:" +msgstr "Последние параметры:" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:169 +msgid "" +"`-K`: do not install a kernel. A disk image without a kernel will not be " +"able to achieve a normal boot sequence." +msgstr "" +"`-K`: не устанавливать ядро. Образ диска без ядра не сможет выполнить " +"нормальную последовательность загрузки." + +#. type: Title ==== +#: documentation/content/en/articles/nanobsd/_index.adoc:170 +#, no-wrap +msgid "The Complete Image Building Process" +msgstr "Полный процесс сборки образа" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:175 +msgid "" +"The complete image building process is going through a lot of steps. The " +"exact steps taken will depend on the chosen options when starting the " +"script. Assuming the script is run with no particular options, this is what " +"will happen." +msgstr "" +"Полный процесс сборки образа проходит через множество этапов. Точные шаги " +"зависят от выбранных опций при запуске скрипта. При условии, что скрипт " +"запущен без специальных опций, вот что произойдет." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:177 +msgid "" +"`run_early_customize`: commands that are defined in a supplied configuration " +"file." +msgstr "" +"`run_early_customize`: команды, определенные в предоставленном файле " +"конфигурации." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:178 +msgid "" +"`clean_build`: Just cleans the build environment by deleting the previously " +"built files." +msgstr "" +"`clean_build`: Просто очищает среду сборки, удаляя ранее созданные файлы." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:179 +msgid "" +"`make_conf_build`: Assemble make.conffrom the `CONF_WORLD` and `CONF_BUILD` " +"variables." +msgstr "" +"`make_conf_build`: Собрать make.conf из переменных `CONF_WORLD` и " +"`CONF_BUILD`." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:180 +msgid "`build_world`: Build world." +msgstr "`build_world`: Сборка системы." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:181 +msgid "`build_kernel`: Build the kernel files." +msgstr "`build_kernel`: Собрать файлы ядра." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:182 +msgid "`clean_world`: Clean the destination directory." +msgstr "`clean_world`: Очистить целевую директорию." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:183 +msgid "" +"`make_conf_install`: Assemble make.conf from the `CONF_WORLD` and " +"`CONF_INSTALL` variables." +msgstr "" +"`make_conf_install`: Собрать make.conf из переменных `CONF_WORLD` и " +"`CONF_INSTALL`." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:184 +msgid "`install_world`: Install all files built during `buildworld`." +msgstr "`install_world`: Установить все файлы, собранные во время `buildworld`." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:185 +msgid "" +"`install_etc`: Install the necessary files in the [.filename]#/etc# " +"directory, based on the `make distribution` command." +msgstr "" +"`install_etc`: Установить необходимые файлы в директорию [.filename]#/etc#, " +"используя команду `make distribution`." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:186 +msgid "" +"`setup_nanobsd_etc`: the first configuration specific to NanoBSD takes place " +"at this stage. The [.filename]#/etc/diskless# is created and the root " +"filesystem is defined as read-only." +msgstr "" +"`setup_nanobsd_etc`: на этом этапе происходит первая специфичная для NanoBSD " +"настройка. Создается [.filename]#/etc/diskless#, а корневая файловая система " +"определяется как доступная только для чтения." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:187 +msgid "`install_kernel`: the kernel and modules files are installed." +msgstr "`install_kernel`: устанавливаются файлы ядра и модулей." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:188 +msgid "" +"`run_customize`: all the customizing routines defined by the user will be " +"called." +msgstr "" +"`run_customize`: будут вызваны все пользовательские процедуры настройки." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:189 +msgid "" +"`setup_nanobsd`: a special configuration directory layout is setup. The [." +"filename]#/usr/local/etc# gets moved to [.filename]#/etc/local# and a " +"symbolic link is created back from [.filename]#/etc/local# to [.filename]#/" +"usr/local/etc#." +msgstr "" +"`setup_nanobsd`: создаётся специальная структура конфигурационных каталогов. " +"Каталог [.filename]#/usr/local/etc# перемещается в [.filename]#/etc/local#, " +"а затем создаётся символическая ссылка из [.filename]#/etc/local# обратно в [" +".filename]#/usr/local/etc#." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:190 +msgid "`prune_usr`: the empty directories from [.filename]#/usr# are removed." +msgstr "`prune_usr`: пустые директории в [.filename]#/usr# удаляются." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:191 +msgid "" +"`run_late_customize`: the very last custom scripts can be run at this point." +msgstr "" +"`run_late_customize`: на этом этапе могут быть выполнены самые последние " +"пользовательские скрипты." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:192 +msgid "`fixup_before_diskimage`: List all installed files in a metalog" +msgstr "" +"`fixup_before_diskimage`: Вывести список всех установленных файлов в metalog" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:193 +msgid "" +"`create_diskimage`: creates the actual disk image, based on the disk " +"geometries provides parameters." +msgstr "" +"`create_diskimage`: создает образ диска на основе предоставленных параметров " +"геометрии диска." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:194 +msgid "`last_orders`: does nothing for now." +msgstr "`last_orders`: в настоящее время ничего не делает." + +#. type: Title === +#: documentation/content/en/articles/nanobsd/_index.adoc:195 +#, no-wrap +msgid "Customizing a NanoBSD Image" +msgstr "Настройка образа NanoBSD" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:199 +msgid "" +"This is probably the most important and most interesting feature of " +"NanoBSD. This is also where you will be spending most of the time when " +"developing with NanoBSD." +msgstr "" +"Вероятно, это самая важная и интересная функция NanoBSD. Здесь же вы " +"проведёте большую часть времени при разработке с NanoBSD." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:201 +msgid "" +"Invocation of the following command will force the [.filename]#nanobsd.sh# " +"to read its configuration from [.filename]#myconf.nano# located in the " +"current directory:" +msgstr "" +"Вызов следующей команды заставит [.filename]#nanobsd.sh# прочитать " +"конфигурацию из файла [.filename]#myconf.nano#, расположенного в текущем " +"каталоге:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:205 +#, no-wrap +msgid "# sh nanobsd.sh -c myconf.nano\n" +msgstr "# sh nanobsd.sh -c myconf.nano\n" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:208 +msgid "Customization is done in two ways:" +msgstr "Настройка выполняется двумя способами:" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:210 +msgid "Configuration options" +msgstr "Параметры конфигурации" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:211 +msgid "Custom functions" +msgstr "Пользовательские функции" + +#. type: Title ==== +#: documentation/content/en/articles/nanobsd/_index.adoc:212 +#, no-wrap +msgid "Configuration Options" +msgstr "Параметры конфигурации" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:217 +msgid "" +"With configuration settings, it is possible to configure options passed to " +"both the `buildworld` and `installworld` stages of the NanoBSD build " +"process, as well as internal options passed to the main build process of " +"NanoBSD. Through these options it is possible to cut the system down, so it " +"will fit on as little as 64MB. You can use the configuration options to " +"trim down FreeBSD even more, until it will consists of just the kernel and " +"two or three files in the userland." +msgstr "" +"С помощью настроек конфигурации можно задать параметры, передаваемые как на " +"этапах `buildworld`, так и `installworld` процесса сборки NanoBSD, а также " +"внутренние параметры, передаваемые основному процессу сборки NanoBSD. Эти " +"параметры позволяют сократить систему так, чтобы она помещалась всего на 64 " +"МБ. Вы можете использовать конфигурационные опции для ещё большего урезания " +"FreeBSD, пока она не будет состоять только из ядра и двух-трёх файлов в " +"пользовательском пространстве." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:220 +msgid "" +"The configuration file consists of configuration options, which override the " +"default values. The most important directives are:" +msgstr "" +"Файл конфигурации состоит из параметров конфигурации, которые переопределяют " +"значения по умолчанию. Наиболее важные директивы:" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:222 +msgid "`NANO_NAME` - Name of build (used to construct the workdir names)." +msgstr "" +"`NANO_NAME` - Имя сборки (используется для формирования имен рабочих " +"каталогов)." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:223 +msgid "`NANO_SRC` - Path to the source tree used to build the image." +msgstr "`NANO_SRC` - Путь к исходному дереву, используемому для сборки образа." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:224 +msgid "`NANO_KERNEL` - Name of kernel configuration file used to build kernel." +msgstr "" +"`NANO_KERNEL` - Имя файла конфигурации ядра, используемого для сборки ядра." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:225 +msgid "`CONF_BUILD` - Options passed to the `buildworld` stage of the build." +msgstr "`CONF_BUILD` - Параметры, передаваемые на этапе `buildworld` сборки." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:226 +msgid "" +"`CONF_INSTALL` - Options passed to the `installworld` stage of the build." +msgstr "" +"`CONF_INSTALL` - Параметры, передаваемые на этапе `installworld` при сборке." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:227 +msgid "" +"`CONF_WORLD` - Options passed to both the `buildworld` and the " +"`installworld` stage of the build." +msgstr "" +"`CONF_WORLD` - Параметры, передаваемые на этапах `buildworld` и " +"`installworld` сборки." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:228 +msgid "" +"`FlashDevice` - Defines what type of media to use. Check [." +"filename]#FlashDevice.sub# for more details." +msgstr "" +"`FlashDevice` - Определяет тип носителя для использования. Подробности " +"смотрите в [.filename]#FlashDevice.sub#." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:230 +msgid "" +"There are many more configuration options that could be relevant depending " +"upon the kind of NanoBSD that is desired." +msgstr "" +"Существует множество дополнительных параметров конфигурации, которые могут " +"быть актуальными в зависимости от типа NanoBSD." + +#. type: Title ===== +#: documentation/content/en/articles/nanobsd/_index.adoc:231 +#, no-wrap +msgid "General Customization" +msgstr "Общая настройка" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:234 +msgid "" +"There are three stages, by design, at which it is possible to make changes " +"that affect the building process, just by setting up a variable in the " +"provided configuration file:" +msgstr "" +"Существует три этапа, на которых по замыслу можно внести изменения, влияющие " +"на процесс сборки, просто установив переменную в предоставленном " +"конфигурационном файле:" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:236 +msgid "`run_early_customize`: before anything else happens." +msgstr "`run_early_customize`: до выполнения любых других действий." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:237 +msgid "`run_customize`: after all the standard files have been laid out" +msgstr "`run_customize`: после того как все стандартные файлы будут размещены" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:238 +msgid "" +"`run_late_customize`: at the very end of the process, just before the actual " +"NanoBSD image is built." +msgstr "" +"`run_late_customize`: в самом конце процесса, непосредственно перед " +"созданием фактического образа NanoBSD." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:240 +msgid "" +"To customize a NanoBSD image, at any of these steps, it is best to add a " +"specific value to one of the corresponding variables." +msgstr "" +"Для настройки образа NanoBSD на любом из этих этапов лучше всего добавить " +"конкретное значение в одну из соответствующих переменных." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:243 +msgid "" +"The `NANO_EARLY_CUSTOMIZE` variable is used at the first step of the " +"building process. At this point, there is no example as to what can be done " +"using that variable, but it may change in the future." +msgstr "" +"Переменная `NANO_EARLY_CUSTOMIZE` используется на первом этапе процесса " +"сборки. На данный момент нет примера того, что можно сделать с помощью этой " +"переменной, но это может измениться в будущем." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:246 +msgid "" +"The `NANO_CUSTOMIZE` variable is used after the kernel, world and etc " +"configuration files have been installed, and the etc files have been setup " +"as to be a NanoBSD installation. So it is the correct step in the building " +"process to tweak configuration options and add packages, like in the " +"cust_nobeastie example." +msgstr "" +"Переменная `NANO_CUSTOMIZE` используется после установки ядра, системы и " +"конфигурационных файлов etc, а также настройки файлов etc для установки " +"NanoBSD. Таким образом, это правильный этап процесса сборки для изменения " +"параметров конфигурации и добавления пакетов, как в примере cust_nobeastie." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:250 +msgid "" +"The `NANO_LATE_CUSTOMIZE` variable is used just before the disk image is " +"created, so it is the very last moment to change anything. Remember that " +"the `setup_nanobsd` routine already executed and that the [.filename]#etc#, " +"[.filename]#conf# and [.filename]#cfg# directories and subdirectories are " +"already modified, so it is not time to change them at this point. Rather, " +"it is possible to add or remove specific files." +msgstr "" +"Переменная `NANO_LATE_CUSTOMIZE` используется непосредственно перед " +"созданием образа диска, поэтому это последний момент для внесения изменений. " +"Помните, что процедура `setup_nanobsd` уже выполнена и каталоги [." +"filename]#etc#, [.filename]#conf# и [.filename]#cfg#, включая подкаталоги, " +"уже изменены, поэтому сейчас не время их корректировать. Вместо этого можно " +"добавить или удалить конкретные файлы." + +#. type: Title ===== +#: documentation/content/en/articles/nanobsd/_index.adoc:251 +#, no-wrap +msgid "Booting Options" +msgstr "Параметры загрузки" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:255 +msgid "" +"There are also variables that can change the way the NanoBSD image boots. " +"Two options are passed to man:boot0cfg[8] to initialize the boot sector of " +"the disk image:" +msgstr "" +"Существуют также переменные, которые могут изменить способ загрузки образа " +"NanoBSD. Два параметра передаются в man:boot0cfg[8] для инициализации " +"загрузочного сектора образа диска:" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:257 +msgid "`NANO_BOOT0CFG`" +msgstr "`NANO_BOOT0CFG`" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:258 +msgid "`NANO_BOOTLOADER`" +msgstr "`NANO_BOOTLOADER`" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:263 +msgid "" +"With `NANO_BOOTLOADER` a bootloader file can be chosen. The most common " +"possible options are between [.filename]#boot0sio# and [.filename]#boot0# " +"depending on whether the appliance has a serial port or not. It is best to " +"avoid supplying a different bootloader, but it is possible. To do so, it is " +"best to have checked the extref:{handbook}boot[FreeBSD Handbook] chapter on " +"the boot process." +msgstr "" +"С помощью `NANO_BOOTLOADER` можно выбрать файл загрузчика. Наиболее " +"распространённые варианты — [.filename]#boot0sio# и [.filename]#boot0#, в " +"зависимости от наличия последовательного порта у устройства. Лучше не " +"указывать другой загрузчик, но это возможно. Для этого рекомендуется " +"предварительно ознакомиться с extref:{handbook}boot[главой FreeBSD Handbook] " +"о процессе загрузки." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:270 +msgid "" +"With `NANO_BOOT0CFG`, the booting process can be tweaked, like selecting on " +"which partition the NanoBSD image will actually boot. It is best to check " +"the man:boot0cfg[8] page before changing the default value of this " +"variable. One option that could be interesting to change is the timeout of " +"the booting procedure. To do so, the `NANO_BOOT0CFG` variable can be " +"changed to `\"-o packet -s 1 -m 3 -t 36\"`. That way the booting process " +"would start after approximately 2 seconds; because it is rare that waiting " +"10 seconds before actually booting is desired." +msgstr "" +"С помощью `NANO_BOOT0CFG` можно настроить процесс загрузки, например, " +"выбрать раздел, с которого будет загружаться образ NanoBSD. Перед изменением " +"значения этой переменной рекомендуется ознакомиться со страницей руководства " +"man:boot0cfg[8]. Один из интересных параметров, который можно изменить, — " +"это таймаут процедуры загрузки. Для этого переменную `NANO_BOOT0CFG` можно " +"изменить на `\"-o packet -s 1 -m 3 -t 36\"`. В этом случае процесс загрузки " +"начнётся примерно через 2 секунды, так как редко возникает необходимость " +"ждать 10 секунд перед началом загрузки." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:273 +msgid "" +"Good to know: the `NANO_BOOT2CFG` variable is only used in the " +"`cust_comconsole` routine that can be called at the `NANO_CUSTOMIZE` step if " +"the appliance has a serial port and all console input and output has to take " +"place through it. Be sure to check the relevant parameters of the serial " +"port, as setting a bad parameter value can make it useless." +msgstr "" +"Хорошо знать: переменная `NANO_BOOT2CFG` используется только в подпрограмме " +"`cust_comconsole`, которая может вызываться на этапе `NANO_CUSTOMIZE`, если " +"устройство имеет последовательный порт и весь ввод и вывод консоли должен " +"осуществляться через него. Обязательно проверьте соответствующие параметры " +"последовательного порта, так как установка некорректного значения параметра " +"может сделать его бесполезным." + +#. type: Title ===== +#: documentation/content/en/articles/nanobsd/_index.adoc:274 +#, no-wrap +msgid "Disk Image Creation" +msgstr "Создание образа диска" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:278 +msgid "" +"In the end of the boot process is the disk image creation. With this step, " +"the NanoBSD script provides a file that can simply be copied onto a disk for " +"the appliance, and that will make it boot and start." +msgstr "" +"В конце процесса загрузки происходит создание образа диска. На этом этапе " +"скрипт NanoBSD предоставляет файл, который можно просто скопировать на диск " +"для устройства, и это позволит ему загрузиться и запуститься." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:280 +msgid "" +"There are many variable that need to be set just right for the script to " +"produce a usable disk image." +msgstr "" +"Существует множество переменных, которые должны быть настроены правильно, " +"чтобы скрипт создал пригодный для использования образ диска." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:282 +msgid "" +"The `NANO_DRIVE` variable must be set to the drive name of the media at " +"runtime. Usually, the default value `ada0`, which represents the first `IDE`/" +"`ATA`/`SATA` device on the appliance is expected to be the correct one, but " +"a different type of storage could also be used - like a USB key, in which " +"case, it would rather be da0." +msgstr "" +"Переменная `NANO_DRIVE` должна быть установлена в имя накопителя носителя во " +"время выполнения. Обычно ожидается, что значение по умолчанию `ada0`, " +"которое представляет первое устройство `IDE`/`ATA`/`SATA` на устройстве, " +"будет правильным, но также может использоваться другой тип накопителя — " +"например, USB-ключ, в этом случае это скорее будет `da0`." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:283 +msgid "" +"The `NANO_MEDIASIZE` variable must be set to the size (in 512 bytes sectors) " +"of the storage media that will be used. If you set it wrong, it is possible " +"that the NanoBSD image will not boot at all, and a message at boot time will " +"be warning about incorrect disk geometry." +msgstr "" +"Переменная `NANO_MEDIASIZE` должна быть установлена в значение размера (в " +"секторах по 512 байт) носителя данных, который будет использоваться. Если " +"задать её неправильно, образ NanoBSD может вообще не загрузиться, а во время " +"загрузки появится сообщение о некорректной геометрии диска." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:285 +msgid "" +"The [.filename]#/etc#, [.filename]#/var#, and [.filename]#/tmp# directories " +"are allocated as man:md[4] (malloc) disks at boot time; so their sizes can " +"be tailored to suit the appliance needs. The `NANO_RAM_ETCSIZE` variable " +"sets the size of the [.filename]#/etc#; and the `NANO_RAM_TMPVARSIZE` " +"variable sets the size of both the [.filename]#/var# and [.filename]#/tmp# " +"directory, as [.filename]#/tmp# is symbolically linked to [.filename]#/var/" +"tmp#. By default, both malloc disks sizes are set at 20MB each. They can " +"always be changed, but usually the [.filename]#/etc# does not grow too much " +"in size, so 20MB is a good starting point, whereas the [.filename]#/var# and " +"especially [.filename]#/tmp# can grow much larger if not careful about it. " +"For memory constrained systems, smaller filesystem sizes may be chosen." +msgstr "" +"Каталоги [.filename]#/etc#, [.filename]#/var# и [.filename]#/tmp# выделяются " +"как диски man:md[4] (malloc) при загрузке; их размеры могут быть настроены в " +"соответствии с потребностями устройства. Переменная `NANO_RAM_ETCSIZE` " +"задаёт размер [.filename]#/etc#, а переменная `NANO_RAM_TMPVARSIZE` " +"определяет размер как [.filename]#/var#, так и [.filename]#/tmp#, поскольку [" +".filename]#/tmp# символически ссылается на [.filename]#/var/tmp#. По " +"умолчанию размер обоих дисков malloc установлен в 20 МБ каждый. Их можно " +"изменить, но обычно [.filename]#/etc# не сильно увеличивается в размере, " +"поэтому 20 МБ — хорошая начальная точка, тогда как [.filename]#/var# и " +"особенно [.filename]#/tmp# могут стать значительно больше, если не следить " +"за ними. Для систем с ограниченной памятью можно выбрать меньшие размеры " +"файловых систем." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:286 +msgid "" +"As NanoBSD is mainly designed to build a system image for an appliance, it " +"is assumed that the storage media used will be relatively small. For that " +"reason, the filesystem that is laid out is configured to have a small block " +"size (4Kb) and a small fragment size (512b). The configuration options of " +"the filesystem can be modified through the `NANO_NEWFS` variable, but the " +"syntax must respect the man:newfs[8] command format. Also, by default, the " +"filesystem has Soft Updates enabled. The extref:{handbook}[FreeBSD Handbook] " +"can be checked about this." +msgstr "" +"Поскольку NanoBSD в основном предназначен для создания образа системы для " +"устройства, предполагается, что используемые носители данных будут " +"относительно небольшими. По этой причине файловая система настроена на " +"использование небольшого размера блока (4 Кб) и небольшого размера фрагмента " +"(512 байт). Параметры конфигурации файловой системы можно изменить с помощью " +"переменной `NANO_NEWFS`, но синтаксис должен соответствовать формату команды " +"man:newfs[8]. Кроме того, по умолчанию в файловой системе включены Soft " +"Updates. Подробнее об этом можно узнать в extref:{handbook}[FreeBSD " +"Handbook]." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:287 +msgid "" +"The different partition sizes can be set through the use of `NANO_CODESIZE`, " +"`NANO_CONFSIZE`, and `NANO_DATASIZE` as a multiple of 512 bytes sectors. " +"`NANO_CODESIZE` defines the size of the first two image partitions: `code#1` " +"and `code#2`. They have to be big enough to hold all the files that will be " +"produced as a result of the `buildworld` and `buildkernel` processes. " +"`NANO_CONFSIZE` defines the size of the configuration file partition, so it " +"does not need to be very big; but do not make it so small that it will not " +"hold all configuration files. Finally, `NANO_DATASIZE` defines the size of " +"an optional partition, that can be used on the appliance. The last partition " +"can be used, for example, to keep files created on the fly on disk." +msgstr "" +"Различные размеры разделов могут быть заданы с использованием `NANO_CODESIZE`" +", `NANO_CONFSIZE` и `NANO_DATASIZE` в виде кратного 512-байтным секторам. " +"`NANO_CODESIZE` определяет размер первых двух разделов образа: `code#1` и " +"`code#2`. Они должны быть достаточно большими, чтобы вместить все файлы, " +"созданные в результате процессов `buildworld` и `buildkernel`. " +"`NANO_CONFSIZE` определяет размер раздела для конфигурационных файлов, " +"поэтому он не должен быть очень большим; однако не стоит делать его слишком " +"маленьким, чтобы он мог вместить все конфигурационные файлы. Наконец, " +"`NANO_DATASIZE` определяет размер дополнительного раздела, который может " +"использоваться на устройстве. Последний раздел может быть использован, " +"например, для хранения файлов, создаваемых на лету на диске." + +#. type: Title ==== +#: documentation/content/en/articles/nanobsd/_index.adoc:288 +#, no-wrap +msgid "Custom Functions" +msgstr "Пользовательские Функции" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:292 +msgid "" +"It is possible to fine-tune NanoBSD using shell functions in the " +"configuration file. The following example illustrates the basic model of " +"custom functions:" +msgstr "" +"Возможно тонко настроить NanoBSD с помощью функций оболочки в " +"конфигурационном файле. Следующий пример иллюстрирует базовую модель " +"пользовательских функций:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:300 +#, no-wrap +msgid "" +"cust_foo () (\n" +"\techo \"bar=baz\" > \\\n" +"\t\t${NANO_WORLDDIR}/etc/foo\n" +")\n" +"customize_cmd cust_foo\n" +msgstr "" +"cust_foo () (\n" +"\techo \"bar=baz\" > \\\n" +"\t\t${NANO_WORLDDIR}/etc/foo\n" +")\n" +"customize_cmd cust_foo\n" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:303 +msgid "" +"A more useful example of a customization function is the following, which " +"changes the default size of the [.filename]#/etc# directory from 5MB to 30MB:" +msgstr "" +"Более полезный пример функции настройки — следующий, который изменяет размер " +"каталога [.filename]#/etc# по умолчанию с 5 МБ на 30 МБ:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:311 +#, no-wrap +msgid "" +"cust_etc_size () (\n" +"\tcd ${NANO_WORLDDIR}/conf\n" +"\techo 30000 > default/etc/md_size\n" +")\n" +"customize_cmd cust_etc_size\n" +msgstr "" +"cust_etc_size () (\n" +"\tcd ${NANO_WORLDDIR}/conf\n" +"\techo 30000 > default/etc/md_size\n" +")\n" +"customize_cmd cust_etc_size\n" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:314 +msgid "" +"There are a few default pre-defined customization functions ready for use:" +msgstr "" +"Существует несколько предопределённых функций для настройки, готовых к " +"использованию:" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:316 +msgid "" +"`cust_comconsole` - Disables man:getty[8] on the VGA devices (the [." +"filename]#/dev/ttyv*# device nodes) and enables the use of the COM1 serial " +"port as the system console." +msgstr "" +"`cust_comconsole` - Отключает man:getty[8] на VGA-устройствах (узлы " +"устройств [.filename]#/dev/ttyv*#) и позволяет использовать последовательный " +"порт COM1 в качестве системной консоли." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:317 +msgid "`cust_allow_ssh_root` - Allow `root` to login via man:sshd[8]." +msgstr "`cust_allow_ssh_root` - Разрешить `root` входить через man:sshd[8]." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:318 +msgid "" +"`cust_install_files` - Installs files from the [.filename]#nanobsd/Files# " +"directory, which contains some useful scripts for system administration." +msgstr "" +"`cust_install_files` - Устанавливает файлы из каталога [.filename]#nanobsd/" +"Files#, который содержит полезные скрипты для администрирования системы." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:319 +msgid "" +"`cust_pkgng` - Installs packages from the [.filename]#nanobsd/Pkg# directory " +"(needs also pkg-* package to bootstrap)." +msgstr "" +"`cust_pkgng` - Устанавливает пакеты из каталога [.filename]#nanobsd/Pkg# (" +"также требуется пакет pkg-* для начальной загрузки)." + +#. type: Title ==== +#: documentation/content/en/articles/nanobsd/_index.adoc:320 +#, no-wrap +msgid "Adding Packages" +msgstr "Добавление пакетов" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:323 +msgid "" +"Packages can be added to a NanoBSD image, to provide specific " +"functionalities on the appliance. To do so, either:" +msgstr "" +"Пакеты могут быть добавлены в образ NanoBSD для обеспечения специфических " +"функциональных возможностей устройства. Для этого можно:" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:325 +msgid "Add the `cust_pkgng` to the `NANO_CUSTOMIZE` variable, or" +msgstr "Добавьте `cust_pkgng` в переменную `NANO_CUSTOMIZE` или" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:326 +msgid "" +"Add a `'customize_cmd cust_pkgng'` command in a customized configuration " +"file." +msgstr "" +"Добавьте команду `'customize_cmd cust_pkgng'` в настраиваемый " +"конфигурационный файл." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:329 +msgid "" +"Both methods achieve the same result: launching the `cust_pkgng` routine. " +"This routine will go through `NANO_PACKAGE_DIR` directory to find either all " +"packages or just the list of packages in the `NANO_PACKAGE_LIST` variable." +msgstr "" +"Оба метода приводят к одному результату: запуск процедуры `cust_pkgng`. Эта " +"процедура проверит каталог `NANO_PACKAGE_DIR` для поиска всех пакетов или " +"только списка пакетов, указанных в переменной `NANO_PACKAGE_LIST`." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:335 +msgid "" +"It is common, when installing applications through pkg on a standard FreeBSD " +"environment, that the install process puts configuration files, in the [." +"filename]#usr/local/etc# directory, and startup scripts in the [.filename]#/" +"usr/local/etc/rc.d# directory. So, after the required packages have been " +"installed, they need to be configured in order for them to start right out " +"of the box. To do so, the necessary configuration files have to be " +"installed in the correct directories. This can be achieved by writing " +"dedicated routines or the generic `cust_install_files` routine can be used " +"to lay out files properly from the [.filename]#/usr/src/tools/tools/nanobsd/" +"Files# directory. Usually a statement, sometimes multiple statements, in " +"the [.filename]#/etc/rc.conf# also needs to be added for each package." +msgstr "" +"Обычно при установке приложений через pkg в стандартной среде FreeBSD " +"процесс установки размещает конфигурационные файлы в каталоге [.filename]#" +"usr/local/etc#, а скрипты запуска — в каталоге [.filename]#/usr/local/etc/rc." +"d#. Поэтому после установки необходимых пакетов их нужно настроить, чтобы " +"они запускались сразу после установки. Для этого необходимо разместить " +"соответствующие конфигурационные файлы в правильных каталогах. Это можно " +"сделать, написав специализированные процедуры, или использовать общую " +"процедуру `cust_install_files` для корректного размещения файлов из каталога " +"[.filename]#/usr/src/tools/tools/nanobsd/Files#. Обычно также требуется " +"добавить одну или несколько записей в файл [.filename]#/etc/rc.conf# для " +"каждого пакета." + +#. type: Title ==== +#: documentation/content/en/articles/nanobsd/_index.adoc:336 +#, no-wrap +msgid "Configuration File Example" +msgstr "Пример файла конфигурации" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:339 +msgid "" +"A complete example of a configuration file for building a custom NanoBSD " +"image can be:" +msgstr "" +"Полный пример конфигурационного файла для создания пользовательского образа " +"NanoBSD может выглядеть следующим образом:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:346 +#, no-wrap +msgid "" +"NANO_NAME=custom\n" +"NANO_SRC=/usr/src\n" +"NANO_KERNEL=MYKERNEL\n" +"NANO_IMAGES=2\n" +msgstr "" +"NANO_NAME=custom\n" +"NANO_SRC=/usr/src\n" +"NANO_KERNEL=MYKERNEL\n" +"NANO_IMAGES=2\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:352 +#, no-wrap +msgid "" +"CONF_BUILD='\n" +"WITHOUT_KLDLOAD=YES\n" +"WITHOUT_NETGRAPH=YES\n" +"WITHOUT_PAM=YES\n" +"'\n" +msgstr "" +"CONF_BUILD='\n" +"WITHOUT_KLDLOAD=YES\n" +"WITHOUT_NETGRAPH=YES\n" +"WITHOUT_PAM=YES\n" +"'\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:368 +#, no-wrap +msgid "" +"CONF_INSTALL='\n" +"WITHOUT_ACPI=YES\n" +"WITHOUT_BLUETOOTH=YES\n" +"WITHOUT_FORTRAN=YES\n" +"WITHOUT_HTML=YES\n" +"WITHOUT_LPR=YES\n" +"WITHOUT_MAN=YES\n" +"WITHOUT_SENDMAIL=YES\n" +"WITHOUT_SHAREDOCS=YES\n" +"WITHOUT_EXAMPLES=YES\n" +"WITHOUT_INSTALLLIB=YES\n" +"WITHOUT_CALENDAR=YES\n" +"WITHOUT_MISC=YES\n" +"WITHOUT_SHARE=YES\n" +"'\n" +msgstr "" +"CONF_INSTALL='\n" +"WITHOUT_ACPI=YES\n" +"WITHOUT_BLUETOOTH=YES\n" +"WITHOUT_FORTRAN=YES\n" +"WITHOUT_HTML=YES\n" +"WITHOUT_LPR=YES\n" +"WITHOUT_MAN=YES\n" +"WITHOUT_SENDMAIL=YES\n" +"WITHOUT_SHAREDOCS=YES\n" +"WITHOUT_EXAMPLES=YES\n" +"WITHOUT_INSTALLLIB=YES\n" +"WITHOUT_CALENDAR=YES\n" +"WITHOUT_MISC=YES\n" +"WITHOUT_SHARE=YES\n" +"'\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:379 +#, no-wrap +msgid "" +"CONF_WORLD='\n" +"WITHOUT_BIND=YES\n" +"WITHOUT_MODULES=YES\n" +"WITHOUT_KERBEROS=YES\n" +"WITHOUT_GAMES=YES\n" +"WITHOUT_RESCUE=YES\n" +"WITHOUT_LOCALES=YES\n" +"WITHOUT_SYSCONS=YES\n" +"WITHOUT_INFO=YES\n" +"'\n" +msgstr "" +"CONF_WORLD='\n" +"WITHOUT_BIND=YES\n" +"WITHOUT_MODULES=YES\n" +"WITHOUT_KERBEROS=YES\n" +"WITHOUT_GAMES=YES\n" +"WITHOUT_RESCUE=YES\n" +"WITHOUT_LOCALES=YES\n" +"WITHOUT_SYSCONS=YES\n" +"WITHOUT_INFO=YES\n" +"'\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:381 +#, no-wrap +msgid "FlashDevice SanDisk 1G\n" +msgstr "FlashDevice SanDisk 1G\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:386 +#, no-wrap +msgid "" +"cust_nobeastie() (\n" +"\ttouch ${NANO_WORLDDIR}/boot/loader.conf\n" +"\techo \"beastie_disable=\\\"YES\\\"\" >> ${NANO_WORLDDIR}/boot/loader.conf\n" +")\n" +msgstr "" +"cust_nobeastie() (\n" +"\ttouch ${NANO_WORLDDIR}/boot/loader.conf\n" +"\techo \"beastie_disable=\\\"YES\\\"\" >> ${NANO_WORLDDIR}/boot/loader.conf\n" +")\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:391 +#, no-wrap +msgid "" +"customize_cmd cust_comconsole\n" +"customize_cmd cust_install_files\n" +"customize_cmd cust_allow_ssh_root\n" +"customize_cmd cust_nobeastie\n" +msgstr "" +"customize_cmd cust_comconsole\n" +"customize_cmd cust_install_files\n" +"customize_cmd cust_allow_ssh_root\n" +"customize_cmd cust_nobeastie\n" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:395 +msgid "" +"All the build and install compilation options can be found in the man:src." +"conf[5] man page, but not all options can or should be used when building a " +"NanoBSD image. The build and install options should be defined according to " +"the needs of the image being built." +msgstr "" +"Все параметры сборки и установки можно найти на странице Справочника man:src." +"conf[5], но не все параметры можно или следует использовать при создании " +"образа NanoBSD. Параметры сборки и установки должны определяться в " +"соответствии с потребностями создаваемого образа." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:399 +msgid "" +"For example, the ftp client and server might not be needed. Adding " +"`WITHOUT_FTP=TRUE` to a configuration file in the `CONF_BUILD` section will " +"avoid having them built. Also, if the NanoBSD appliance will not be used to " +"build programs then it is possible to add the `WITHOUT_BINUTILS=TRUE` in the " +"`CONF_INSTALL` section; but not in the `CONF_BUILD` section as they will be " +"used to build the NanoBSD image." +msgstr "" +"Например, FTP-клиент и сервер могут не потребоваться. Добавление " +"`WITHOUT_FTP=TRUE` в файл конфигурации в разделе `CONF_BUILD` позволит " +"избежать их сборки. Также, если устройство NanoBSD не будет использоваться " +"для сборки программ, можно добавить `WITHOUT_BINUTILS=TRUE` в раздел " +"`CONF_INSTALL`, но не в раздел `CONF_BUILD`, так как они будут " +"использоваться для сборки образа NanoBSD." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:401 +msgid "" +"Not building a particular set of programs - through a compilation option - " +"shortens the overall building time and lowers the required size for the disk " +"image, whereas not installing the same specific set of programs does not " +"lower the overall building time." +msgstr "" +"Не сборка определенного набора программ — через опцию компиляции — сокращает " +"общее время сборки и уменьшает требуемый размер дискового образа, тогда как " +"отсутствие установки того же набора программ не сокращает общее время сборки." + +#. type: Title === +#: documentation/content/en/articles/nanobsd/_index.adoc:402 +#, no-wrap +msgid "Updating NanoBSD" +msgstr "Обновление NanoBSD" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:405 +msgid "The update process of NanoBSD is relatively simple:" +msgstr "Процесс обновления NanoBSD относительно прост:" + +#. type: delimited block = 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:409 +msgid "Build a new NanoBSD image, as usual." +msgstr "Соберите новый образ NanoBSD, как обычно." + +#. type: delimited block = 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:410 +msgid "" +"Upload the new image into an unused partition of a running NanoBSD appliance." +msgstr "" +"Загрузите новый образ в неиспользуемый раздел работающего устройства NanoBSD." + +#. type: delimited block = 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:412 +msgid "" +"The most important difference of this step from the initial NanoBSD " +"installation is that now instead of using [.filename]#\\_.disk.full# (which " +"contains an image of the entire disk), the [.filename]#_.disk.image# image " +"is installed (which contains an image of a single system partition)." +msgstr "" +"Важнейшее отличие этого шага от первоначальной установки NanoBSD заключается " +"в том, что теперь вместо использования [.filename]#\\_.disk.full# (который " +"содержит образ всего диска), устанавливается образ [.filename]#_.disk.image# " +"(который содержит образ одного системного раздела)." + +#. type: delimited block = 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:413 +msgid "Reboot, and start the system from the newly installed partition." +msgstr "" +"Перезагрузите систему и запустите её с только что установленного раздела." + +#. type: delimited block = 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:414 +msgid "If all goes well, the upgrade is finished." +msgstr "Если все прошло успешно, обновление завершено." + +#. type: delimited block = 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:415 +msgid "" +"If anything goes wrong, reboot back into the previous partition (which " +"contains the old, working image), to restore system functionality as fast as " +"possible. Fix any problems of the new build, and repeat the process." +msgstr "" +"Если что-то пойдет не так, перезагрузитесь обратно в предыдущий раздел (" +"который содержит старую, рабочую версию), чтобы восстановить " +"работоспособность системы как можно быстрее. Исправьте все проблемы новой " +"сборки и повторите процесс." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:418 +msgid "" +"To install new image onto the running NanoBSD system, it is possible to use " +"either the [.filename]#updatep1# or [.filename]#updatep2# script located in " +"the [.filename]#/root# directory, depending from which partition is running " +"the current system." +msgstr "" +"Для установки нового образа на работающую систему NanoBSD можно использовать " +"скрипт [.filename]#updatep1# или [.filename]#updatep2#, расположенный в " +"директории [.filename]#/root#, в зависимости от того, с какого раздела " +"запущена текущая система." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:420 +msgid "" +"According to which services are available on host serving new NanoBSD image " +"and what type of transfer is preferred, it is possible to examine one of " +"these three ways:" +msgstr "" +"В зависимости от того, какие службы доступны на хосте, предоставляющем новый " +"образ NanoBSD, и какой тип передачи предпочтителен, можно рассмотреть один " +"из этих трех способов:" + +#. type: Title ==== +#: documentation/content/en/articles/nanobsd/_index.adoc:421 +#, no-wrap +msgid "Using man:ftp[1]" +msgstr "Использование man:ftp[1]" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:424 +msgid "If the transfer speed is in first place, use this example:" +msgstr "" +"Если скорость передачи данных стоит на первом месте, используйте этот пример:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:429 +#, no-wrap +msgid "" +"# ftp myhost\n" +"get _.disk.image \"| sh updatep1\"\n" +msgstr "" +"# ftp myhost\n" +"get _.disk.image \"| sh updatep1\"\n" + +#. type: Title ==== +#: documentation/content/en/articles/nanobsd/_index.adoc:431 +#, no-wrap +msgid "Using man:ssh[1]" +msgstr "Использование man:ssh[1]" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:434 +msgid "If a secure transfer is preferred, consider using this example:" +msgstr "" +"Если предпочтителен безопасный способ передачи, рассмотрите следующий пример:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:438 +#, no-wrap +msgid "# ssh myhost cat _.disk.image.gz | zcat | sh updatep1\n" +msgstr "# ssh myhost cat _.disk.image.gz | zcat | sh updatep1\n" + +#. type: Title ==== +#: documentation/content/en/articles/nanobsd/_index.adoc:440 +#, no-wrap +msgid "Using man:nc[1]" +msgstr "Использование man:nc[1]" + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:443 +msgid "" +"Try this example if the remote host is not running neither man:ftpd[8] or " +"man:sshd[8] service:" +msgstr "" +"Попробуйте этот пример, если на удалённом хосте не запущены ни служба " +"man:ftpd[8], ни служба man:sshd[8]:" + +#. type: delimited block = 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:447 +msgid "" +"At first, open a TCP listener on host serving the image and make it send the " +"image to client:" +msgstr "" +"Сначала откройте TCP-слушатель на хосте, обслуживающем образ, и настройте " +"его на отправку образа клиенту:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:451 +#, no-wrap +msgid "myhost# nc -l 2222 < _.disk.image\n" +msgstr "myhost# nc -l 2222 < _.disk.image\n" + +#. type: delimited block = 6 +#: documentation/content/en/articles/nanobsd/_index.adoc:456 +msgid "" +"Make sure that the used port is not blocked to receive incoming connections " +"from NanoBSD host by firewall." +msgstr "" +"Убедитесь, что используемый порт не заблокирован для приёма входящих " +"подключений с хоста NanoBSD межсетевым экраном." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:458 +msgid "" +"Connect to the host serving new image and execute [.filename]#updatep1# " +"script:" +msgstr "" +"Подключитесь к хосту, предоставляющему новый образ, и выполните скрипт [." +"filename]#updatep1#:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/nanobsd/_index.adoc:462 +#, no-wrap +msgid "# nc myhost 2222 | sh updatep1\n" +msgstr "# nc myhost 2222 | sh updatep1\n" |