diff --git a/documentation/content/ru/articles/nanobsd/_index.adoc b/documentation/content/ru/articles/nanobsd/_index.adoc index 903f6c41ba..c7b00566ef 100644 --- a/documentation/content/ru/articles/nanobsd/_index.adoc +++ b/documentation/content/ru/articles/nanobsd/_index.adoc @@ -1,424 +1,428 @@ --- 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`: делает вывод более подробным +* `-v`: делает вывод более подробным. Некоторые другие параметры могут использоваться для ограничения процесса сборки. Иногда нет необходимости пересобирать всё из исходников, особенно если образ уже был собран и внесены лишь небольшие изменения. -* `-k`: не собирать ядро -* `-w`: не собирать world -* `-b`: не собирать ни ядро, ни систему +* `-k`: не собирать ядро. +* `-w`: не собирать системное окружение (world). +* `-b`: не собирать ни ядро, ни системное окружение. * `-i`: не создавать образ диска. Поскольку файл не будет создан, его нельзя будет записать на носитель с помощью man:dd[1]. -* `-f`: не создавать образ диска первого раздела (что полезно для целей обновления) +* `-f`: не создавать образ диска первого раздела (что полезно для целей обновления). +* `-p`: не подготавливать образ. Пропустить выполнение сценариев настройки и ранней настройки для инкрементального улучшения образа из world, ядра или пакетов. * `-n`: добавляет `-DNO_CLEAN` к `buildworld`, `buildkernel`. Кроме того, все файлы, которые уже были собраны в предыдущем запуске, сохраняются. Файл конфигурации можно использовать для настройки множества элементов. Загрузите его с помощью `-c` Последние параметры: * `-K`: не устанавливать ядро. Образ диска без ядра не сможет выполнить нормальную последовательность загрузки. +* `-W`: не собирать системное окружение. +* `-B`: не инсталлировать ни ядро, ни системное окружение. +* `-I`: собрать образ диска из существующей сборки или установки. Не собирать и не устанавливать ядро, системное окружение и файл конфигурации etc, только создать образ диска. ==== Полный процесс сборки образа Полный процесс сборки образа проходит через множество этапов. Точные шаги зависят от выбранных опций при запуске скрипта. При условии, что скрипт запущен без специальных опций, вот что произойдет. -. `run_early_customize`: команды, определенные в предоставленном файле конфигурации. +. `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 +. `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_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_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, и какой тип передачи предпочтителен, можно рассмотреть один из этих трех способов: +В зависимости от того, какие службы доступны на хосте, предоставляющем новый образ 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 межсетевым экраном. +Убедитесь, что выбранный порт не заблокирован межсетевым экраном для приёма входящих соединений с хоста 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 index 68a9ca7cb6..d037e5aeb9 100644 --- a/documentation/content/ru/articles/nanobsd/_index.po +++ b/documentation/content/ru/articles/nanobsd/_index.po @@ -1,1550 +1,1579 @@ # SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. -# Vladlen Popolitov , 2025. +# Vladlen Popolitov , 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" -"POT-Creation-Date: 2024-01-17 20:35-0300\n" -"PO-Revision-Date: 2025-11-12 04:45+0000\n" +"POT-Creation-Date: 2026-02-22 15:58+0000\n" +"PO-Revision-Date: 2026-03-04 20:01+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \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-накопителе, " -"карте памяти или других носителях данных." +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." +"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[здесь]." +"Для более подробной информации выполните шаги, описанные 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`: делает вывод более подробным" +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`: не собирать ядро" +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" +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`: не собирать ни ядро, ни систему" +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)" +"upgrade purposes)." msgstr "" "`-f`: не создавать образ диска первого раздела (что полезно для целей " -"обновления)" +"обновления)." #. type: Plain text #: documentation/content/en/articles/nanobsd/_index.adoc:162 msgid "" +"`-p`: do not prepare the image. Skip running customization and early-" +"customization scripts for incremental image refinement from world, kernel, " +"or packages." +msgstr "" +"`-p`: не подготавливать образ. Пропустить выполнение сценариев настройки и " +"ранней настройки для инкрементального улучшения образа из world, ядра или " +"пакетов." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:163 +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 +#: documentation/content/en/articles/nanobsd/_index.adoc:166 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:168 msgid "The last options are:" msgstr "Последние параметры:" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:169 +#: documentation/content/en/articles/nanobsd/_index.adoc:170 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: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:171 +msgid "`-W`: do not install world." +msgstr "`-W`: не собирать системное окружение." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:172 +msgid "`-B`: do not install either kernel and world." +msgstr "`-B`: не инсталлировать ни ядро, ни системное окружение." + +#. type: Plain text +#: documentation/content/en/articles/nanobsd/_index.adoc:173 +msgid "" +"`-I`: build a disk image from an existing build or install. Do not build or " +"install kernel, world, and the etc configuration file, just create the disk " +"image." +msgstr "" +"`-I`: собрать образ диска из существующей сборки или установки. Не собирать " +"и не устанавливать ядро, системное окружение и файл конфигурации etc, только " +"создать образ диска." + #. type: Title ==== -#: documentation/content/en/articles/nanobsd/_index.adoc:170 +#: documentation/content/en/articles/nanobsd/_index.adoc:174 #, no-wrap msgid "The Complete Image Building Process" msgstr "Полный процесс сборки образа" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:175 +#: documentation/content/en/articles/nanobsd/_index.adoc:179 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:181 msgid "" -"`run_early_customize`: commands that are defined in a supplied configuration " +"`run_early_customize`: Commands that are defined in a supplied configuration " "file." msgstr "" -"`run_early_customize`: команды, определенные в предоставленном файле " +"`run_early_customize`: команды, определённые в предоставленном файле " "конфигурации." #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:178 +#: documentation/content/en/articles/nanobsd/_index.adoc:182 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:183 msgid "" -"`make_conf_build`: Assemble make.conffrom the `CONF_WORLD` and `CONF_BUILD` " +"`make_conf_build`: Assemble make.conf from 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:184 msgid "`build_world`: Build world." msgstr "`build_world`: Сборка системы." #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:181 +#: documentation/content/en/articles/nanobsd/_index.adoc:185 msgid "`build_kernel`: Build the kernel files." msgstr "`build_kernel`: Собрать файлы ядра." #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:182 +#: documentation/content/en/articles/nanobsd/_index.adoc:186 msgid "`clean_world`: Clean the destination directory." msgstr "`clean_world`: Очистить целевой каталог." #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:183 +#: documentation/content/en/articles/nanobsd/_index.adoc:187 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:188 msgid "`install_world`: Install all files built during `buildworld`." -msgstr "`install_world`: Установить все файлы, собранные во время `buildworld`." +msgstr "" +"`install_world`: Установить все файлы, собранные во время `buildworld`." #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:185 +#: documentation/content/en/articles/nanobsd/_index.adoc:189 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:190 msgid "" -"`setup_nanobsd_etc`: the first configuration specific to NanoBSD takes place " +"`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." +#: documentation/content/en/articles/nanobsd/_index.adoc:191 +msgid "`install_kernel`: The kernel and modules files are installed." msgstr "`install_kernel`: устанавливаются файлы ядра и модулей." #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:188 +#: documentation/content/en/articles/nanobsd/_index.adoc:192 msgid "" -"`run_customize`: all the customizing routines defined by the user will be " +"`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 +#: documentation/content/en/articles/nanobsd/_index.adoc:193 msgid "" -"`setup_nanobsd`: a special configuration directory layout is setup. The [." +"`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." +#: documentation/content/en/articles/nanobsd/_index.adoc:194 +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 +#: documentation/content/en/articles/nanobsd/_index.adoc:195 msgid "" -"`run_late_customize`: the very last custom scripts can be run at this point." +"`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" +#: documentation/content/en/articles/nanobsd/_index.adoc:196 +msgid "`fixup_before_diskimage`: List all installed files in a metalog." msgstr "" -"`fixup_before_diskimage`: Вывести список всех установленных файлов в metalog" +"`fixup_before_diskimage`: Вывести список всех установленных файлов в metalog." #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:193 +#: documentation/content/en/articles/nanobsd/_index.adoc:197 msgid "" -"`create_diskimage`: creates the actual disk image, based on the disk " +"`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." +#: documentation/content/en/articles/nanobsd/_index.adoc:198 +msgid "`last_orders`: Does nothing for now." msgstr "`last_orders`: в настоящее время ничего не делает." #. type: Title === -#: documentation/content/en/articles/nanobsd/_index.adoc:195 +#: documentation/content/en/articles/nanobsd/_index.adoc:199 #, no-wrap msgid "Customizing a NanoBSD Image" msgstr "Настройка образа NanoBSD" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:199 +#: documentation/content/en/articles/nanobsd/_index.adoc:203 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:205 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:209 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:212 msgid "Customization is done in two ways:" msgstr "Настройка выполняется двумя способами:" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:210 +#: documentation/content/en/articles/nanobsd/_index.adoc:214 msgid "Configuration options" msgstr "Параметры конфигурации" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:211 +#: documentation/content/en/articles/nanobsd/_index.adoc:215 msgid "Custom functions" msgstr "Пользовательские функции" #. type: Title ==== -#: documentation/content/en/articles/nanobsd/_index.adoc:212 +#: documentation/content/en/articles/nanobsd/_index.adoc:216 #, no-wrap msgid "Configuration Options" msgstr "Параметры конфигурации" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:217 +#: documentation/content/en/articles/nanobsd/_index.adoc:221 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:224 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:226 msgid "`NANO_NAME` - Name of build (used to construct the workdir names)." msgstr "" -"`NANO_NAME` - Имя сборки (используется для формирования имен рабочих " +"`NANO_NAME` - Имя сборки (используется для формирования имён рабочих " "каталогов)." #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:223 +#: documentation/content/en/articles/nanobsd/_index.adoc:227 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:228 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:229 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:230 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:231 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:232 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:234 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:235 #, no-wrap msgid "General Customization" msgstr "Общая настройка" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:234 +#: documentation/content/en/articles/nanobsd/_index.adoc:238 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:240 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`: после того как все стандартные файлы будут размещены" +#: documentation/content/en/articles/nanobsd/_index.adoc:241 +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 +#: documentation/content/en/articles/nanobsd/_index.adoc:242 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:244 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:247 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:250 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:254 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:255 #, no-wrap msgid "Booting Options" msgstr "Параметры загрузки" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:255 +#: documentation/content/en/articles/nanobsd/_index.adoc:259 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:261 msgid "`NANO_BOOT0CFG`" msgstr "`NANO_BOOT0CFG`" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:258 +#: documentation/content/en/articles/nanobsd/_index.adoc:262 msgid "`NANO_BOOTLOADER`" msgstr "`NANO_BOOTLOADER`" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:263 +#: documentation/content/en/articles/nanobsd/_index.adoc:267 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:274 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:277 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:278 #, no-wrap msgid "Disk Image Creation" msgstr "Создание образа диска" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:278 +#: documentation/content/en/articles/nanobsd/_index.adoc:282 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:284 msgid "" -"There are many variable that need to be set just right for the script to " +"There are many variables 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:286 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." +"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 +#: documentation/content/en/articles/nanobsd/_index.adoc:287 msgid "" -"The `NANO_MEDIASIZE` variable must be set to the size (in 512 bytes sectors) " +"The `NANO_MEDIASIZE` variable must be set to the size (in 512-byte 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:289 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#. По " +"определяет размер как [.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 +#: documentation/content/en/articles/nanobsd/_index.adoc:290 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:291 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_CONFSIZE`, and `NANO_DATASIZE` as a multiple of 512-byte 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:292 #, no-wrap msgid "Custom Functions" -msgstr "Пользовательские Функции" +msgstr "Пользовательские функции" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:292 +#: documentation/content/en/articles/nanobsd/_index.adoc:296 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:304 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:307 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:315 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:318 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:320 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:321 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:322 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:323 msgid "" "`cust_pkgng` - Installs packages from the [.filename]#nanobsd/Pkg# directory " "(needs also pkg-* package to bootstrap)." msgstr "" -"`cust_pkgng` - Устанавливает пакеты из каталога [.filename]#nanobsd/Pkg# (" -"также требуется пакет pkg-* для начальной загрузки)." +"`cust_pkgng` - Устанавливает пакеты из каталога [.filename]#nanobsd/Pkg# " +"(также требуется пакет pkg-* для начальной загрузки)." #. type: Title ==== -#: documentation/content/en/articles/nanobsd/_index.adoc:320 +#: documentation/content/en/articles/nanobsd/_index.adoc:324 #, no-wrap msgid "Adding Packages" msgstr "Добавление пакетов" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:323 +#: documentation/content/en/articles/nanobsd/_index.adoc:327 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:329 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:330 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:333 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:339 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# для " -"каждого пакета." +"процесс установки размещает конфигурационные файлы в каталоге [." +"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 +#: documentation/content/en/articles/nanobsd/_index.adoc:340 #, no-wrap msgid "Configuration File Example" msgstr "Пример файла конфигурации" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:339 +#: documentation/content/en/articles/nanobsd/_index.adoc:343 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:350 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:356 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:372 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:383 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:385 #, no-wrap msgid "FlashDevice SanDisk 1G\n" msgstr "FlashDevice SanDisk 1G\n" #. type: delimited block . 4 -#: documentation/content/en/articles/nanobsd/_index.adoc:386 +#: documentation/content/en/articles/nanobsd/_index.adoc:390 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:395 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:399 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:403 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:405 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:406 #, no-wrap msgid "Updating NanoBSD" msgstr "Обновление NanoBSD" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:405 +#: documentation/content/en/articles/nanobsd/_index.adoc:409 msgid "The update process of NanoBSD is relatively simple:" msgstr "Процесс обновления NanoBSD относительно прост:" #. type: delimited block = 4 -#: documentation/content/en/articles/nanobsd/_index.adoc:409 +#: documentation/content/en/articles/nanobsd/_index.adoc:413 msgid "Build a new NanoBSD image, as usual." msgstr "Соберите новый образ NanoBSD, как обычно." #. type: delimited block = 4 -#: documentation/content/en/articles/nanobsd/_index.adoc:410 +#: documentation/content/en/articles/nanobsd/_index.adoc:414 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:416 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:417 msgid "Reboot, and start the system from the newly installed partition." msgstr "" "Перезагрузите систему и запустите её с только что установленного раздела." #. type: delimited block = 4 -#: documentation/content/en/articles/nanobsd/_index.adoc:414 +#: documentation/content/en/articles/nanobsd/_index.adoc:418 msgid "If all goes well, the upgrade is finished." msgstr "Если все прошло успешно, обновление завершено." #. type: delimited block = 4 -#: documentation/content/en/articles/nanobsd/_index.adoc:415 +#: documentation/content/en/articles/nanobsd/_index.adoc:419 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:422 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:424 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:" +"According to which services are available on the host serving the new " +"NanoBSD image and what type of transfer is preferred, it is possible to use " +"one of these three methods:" msgstr "" "В зависимости от того, какие службы доступны на хосте, предоставляющем новый " -"образ NanoBSD, и какой тип передачи предпочтителен, можно рассмотреть один " -"из этих трех способов:" +"образ NanoBSD, и какой тип передачи предпочтителен, можно использовать один " +"из следующих трёх способов:" #. type: Title ==== -#: documentation/content/en/articles/nanobsd/_index.adoc:421 +#: documentation/content/en/articles/nanobsd/_index.adoc:425 #, 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:" +#: documentation/content/en/articles/nanobsd/_index.adoc:428 +msgid "If the transfer speed is most important, use this example:" msgstr "" "Если скорость передачи данных стоит на первом месте, используйте этот пример:" #. type: delimited block . 4 -#: documentation/content/en/articles/nanobsd/_index.adoc:429 +#: documentation/content/en/articles/nanobsd/_index.adoc:433 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:435 #, no-wrap msgid "Using man:ssh[1]" msgstr "Использование man:ssh[1]" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:434 +#: documentation/content/en/articles/nanobsd/_index.adoc:438 msgid "If a secure transfer is preferred, consider using this example:" msgstr "" "Если предпочтителен безопасный способ передачи, рассмотрите следующий пример:" #. type: delimited block . 4 -#: documentation/content/en/articles/nanobsd/_index.adoc:438 +#: documentation/content/en/articles/nanobsd/_index.adoc:442 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:444 #, no-wrap msgid "Using man:nc[1]" msgstr "Использование man:nc[1]" #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:443 +#: documentation/content/en/articles/nanobsd/_index.adoc:447 msgid "" -"Try this example if the remote host is not running neither man:ftpd[8] or " -"man:sshd[8] service:" +"Try this example if the remote host is not running the 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:451 msgid "" -"At first, open a TCP listener on host serving the image and make it send the " -"image to client:" +"First, open a TCP listener on the host serving the image, and make it send " +"the image to the client:" msgstr "" "Сначала откройте TCP-слушатель на хосте, обслуживающем образ, и настройте " "его на отправку образа клиенту:" #. type: delimited block . 4 -#: documentation/content/en/articles/nanobsd/_index.adoc:451 +#: documentation/content/en/articles/nanobsd/_index.adoc:455 #, 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 +#: documentation/content/en/articles/nanobsd/_index.adoc:460 msgid "" -"Make sure that the used port is not blocked to receive incoming connections " -"from NanoBSD host by firewall." +"Make sure that the chosen port is not blocked by the firewall to receive " +"incoming connections from the NanoBSD host." msgstr "" -"Убедитесь, что используемый порт не заблокирован для приёма входящих " -"подключений с хоста NanoBSD межсетевым экраном." +"Убедитесь, что выбранный порт не заблокирован межсетевым экраном для приёма " +"входящих соединений с хоста NanoBSD." #. type: Plain text -#: documentation/content/en/articles/nanobsd/_index.adoc:458 +#: documentation/content/en/articles/nanobsd/_index.adoc:462 msgid "" -"Connect to the host serving new image and execute [.filename]#updatep1# " -"script:" +"Connect to the host serving the new image, and execute the [." +"filename]#updatep1# script:" msgstr "" "Подключитесь к хосту, предоставляющему новый образ, и выполните скрипт [." "filename]#updatep1#:" #. type: delimited block . 4 -#: documentation/content/en/articles/nanobsd/_index.adoc:462 +#: documentation/content/en/articles/nanobsd/_index.adoc:466 #, no-wrap msgid "# nc myhost 2222 | sh updatep1\n" msgstr "# nc myhost 2222 | sh updatep1\n"