# 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. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2024-12-29 08:30-0500\n" "PO-Revision-Date: 2025-11-20 04:45+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: YAML Front Matter: description #: documentation/content/en/articles/solid-state/_index.adoc:1 #, no-wrap msgid "The use of solid state disk devices in FreeBSD" msgstr "Использование твердотельных накопителей (SSD) в FreeBSD" #. type: Title = #: documentation/content/en/articles/solid-state/_index.adoc:1 #: documentation/content/en/articles/solid-state/_index.adoc:12 #, no-wrap msgid "FreeBSD and Solid State Devices" msgstr "FreeBSD и твердотельные устройства (SSD)" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:45 msgid "Abstract" msgstr "Аннотация" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:47 msgid "" "This article covers the use of solid state disk devices in FreeBSD to create " "embedded systems." msgstr "" "В этой статье описывается использование твердотельных дисковых устройств для " "создания встраиваемых систем на основе FreeBSD." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:50 msgid "" "Embedded systems have the advantage of increased stability due to the lack " "of integral moving parts (hard drives). Account must be taken, however, for " "the generally low disk space available in the system and the durability of " "the storage medium." msgstr "" "Встраиваемые системы имеют преимущество в повышенной надёжности по причине " "отсутствия в них движущихся частей (жестких дисков). Однако, следует принять " "во внимание, что системе, как правило, доступно очень малое дисковое " "пространство и ограниченный объем запоминающего устройства." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:53 msgid "" "Specific topics to be covered include the types and attributes of solid " "state media suitable for disk use in FreeBSD, kernel options that are of " "interest in such an environment, the [.filename]#rc.initdiskless# mechanisms " "that automate the initialization of such systems and the need for read-only " "filesystems, and building filesystems from scratch. The article will " "conclude with some general strategies for small and read-only FreeBSD " "environments." msgstr "" "К отдельно рассматриваемым вопросам относятся типы и характеристики " "твердотельных носителей, подходящих для использования в качестве дисков во " "FreeBSD, параметры ядра, которые представляют интерес в таких условиях, " "механизмы [.filename]#rc.initdiskless#, автоматизирующие инициализацию таких " "систем и удовлетворяющие требованиям файловых систем, доступных только для " "чтения, а также построение файловых систем с нуля. Статья заканчивается " "описанием некоторых общих стратегий для случаев малых систем FreeBSD и работ " "в режиме только для чтения." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:55 msgid "'''" msgstr "'''" #. type: Title == #: documentation/content/en/articles/solid-state/_index.adoc:59 #, no-wrap msgid "Solid State Disk Devices" msgstr "Твердотельные дисковые устройства" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:69 msgid "" "The scope of this article will be limited to solid state disk devices made " "from flash memory. Flash memory is a solid state memory (no moving parts) " "that is non-volatile (the memory maintains data even after all power sources " "have been disconnected). Flash memory can withstand tremendous physical " "shock and is reasonably fast (the flash memory solutions covered in this " "article are slightly slower than a EIDE hard disk for write operations, and " "much faster for read operations). One very important aspect of flash " "memory, the ramifications of which will be discussed later in this article, " "is that each sector has a limited rewrite capacity. You can only write, " "erase, and write again to a sector of flash memory a certain number of times " "before the sector becomes permanently unusable. Although many flash memory " "products automatically map bad blocks, and although some even distribute " "write operations evenly throughout the unit, the fact remains that there " "exists a limit to the amount of writing that can be done to the device. " "Competitive units have between 1,000,000 and 10,000,000 writes per sector in " "their specification. This figure varies due to the temperature of the " "environment." msgstr "" "Эта статья будет ограничиваться рассмотрением твердотельных дисковых " "устройств, которые делаются на основе флеш-памяти. Флеш-память является " "твердотельным (здесь нет движущихся частей) запоминающим устройством, " "которое является энергонезависимым (данные остаются в памяти даже после " "отключения всех источников питания). Флеш-память может быть нечувствительной " "к сильным физическим воздействиям и достаточно быстра (решения на основе " "флеш-памяти, описываемые в этой статье, гораздо медленнее, чем диски EIDE " "для операций записи, и гораздо быстрее их в случае выполнения операций " "чтения). Одним из очень важных свойств флеш-памяти, различные варианты " "которого будут рассмотрены далее в этой статье, является то, что каждый " "сектор имеет ограниченные возможности по перезаписыванию. Вы можете только " "записывать, стирать и снова записывать на сектор флеш-памяти определенное " "количество раз до того, как сектор станет полностью неработоспособным. Хотя " "многие продукты на основе флеш-памяти автоматически перенаправляют " "испорченные блоки, а некоторые даже распределяют операции записи по всему " "модулю, фактом является наличие ограничения на количество операций записи, " "которые могут выполняться с устройством. Современные модули имеют " "характеристики от 1,000,000 до 10,000,000 циклов записи на сектор. Эти " "характеристики могут зависеть от температуры рабочей среды." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:74 msgid "" "Specifically, we will be discussing ATA compatible compact-flash units, " "which are quite popular as storage media for digital cameras. Of particular " "interest is the fact that they pin out directly to the IDE bus and are " "compatible with the ATA command set. Therefore, with a very simple and low-" "cost adaptor, these devices can be attached directly to an IDE bus in a " "computer. Once implemented in this manner, operating systems such as " "FreeBSD see the device as a normal hard disk (albeit small)." msgstr "" "В частности, мы обсудим компактные модули флеш-памяти, совместимые со " "стандартом ATA, которые стали весьма популярными в качестве носителя данных " "для цифровых камер. Особый интерес представляет тот факт, что они " "соответствуют шине IDE по контактам и совместимы с набором команд ATA. Таким " "образом, при помощи очень простого и дешевого адаптера такие устройства " "могут подключаться непосредственно к шине IDE компьютера. Если поступить " "таким образом, то такие операционные системы, как FreeBSD, распознают диск " "как обычный винчестер (весьма маленький)." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:76 msgid "" "Other solid state disk solutions do exist, but their expense, obscurity, and " "relative unease of use places them beyond the scope of this article." msgstr "" "Существуют и другие решения для твердотельных дисков, но их стоимость, " "безвестность и сравнительная сложность использования выводят их за рамки " "этой статьи." #. type: Title == #: documentation/content/en/articles/solid-state/_index.adoc:78 #, no-wrap msgid "Kernel Options" msgstr "Параметры ядра" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:81 msgid "" "A few kernel options are of specific interest to those creating an embedded " "FreeBSD system." msgstr "" "Для тех, кто создает встраиваемую систему FreeBSD, интерес представляют " "несколько параметров ядра." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:86 msgid "" "All embedded FreeBSD systems that use flash memory as system disk will be " "interested in memory disks and memory filesystems. As a result of the " "limited number of writes that can be done to flash memory, the disk and the " "filesystems on the disk will most likely be mounted read-only. In this " "environment, filesystems such as [.filename]#/tmp# and [.filename]#/var# are " "mounted as memory filesystems to allow the system to create logs and update " "counters and temporary files. Memory filesystems are a critical component " "to a successful solid state FreeBSD implementation." msgstr "" "Все встраиваемые системы FreeBSD, которые используют флеш-память в качестве " "системного диска, заинтересованы в использовании дисков в памяти и файловых " "систем в памяти. Из-за ограниченного количества циклов записи, которые можно " "выполнить с флеш-памятью, диск и файловые системы на нем будут, скорее " "всего, монтироваться в режиме доступа только для чтения. В таком случае " "файловые системы типа [.filename]#/tmp# и [.filename]#/var# монтируются как " "файловые системы в памяти для того, чтобы позволить системе создать журналы " "и обновить счетчики и временные файлы. Файловые системы в памяти являются " "критическим компонентом успешной работы FreeBSD на твердотельных устройствах." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:88 msgid "" "You should make sure the following lines exist in your kernel configuration " "file:" msgstr "" "Вы должны удостовериться, что в конфигурационном файле вашего ядра " "присутствуют следующие строки:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:92 #, no-wrap msgid "options MD_ROOT # md device usable as a potential root device\n" msgstr "" "options MD_ROOT # md device usable as a potential root " "device\n" #. type: Title == #: documentation/content/en/articles/solid-state/_index.adoc:95 #, no-wrap msgid "The `rc` Subsystem and Read-Only Filesystems" msgstr "Подсистема `rc` и файловые системы в режиме только чтения" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:98 msgid "" "The post-boot initialization of an embedded FreeBSD system is controlled by " "[.filename]#/etc/rc.initdiskless#." msgstr "" "Инициализация встраиваемой системы FreeBSD после загрузки управляется [." "filename]#/etc/rc.initdiskless#." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:102 msgid "" "[.filename]#/etc/rc.d/var# mounts [.filename]#/var# as a memory filesystem, " "makes a configurable list of directories in [.filename]#/var# with the man:" "mkdir[1] command, and changes modes on some of those directories. In the " "execution of [.filename]#/etc/rc.d/var#, one other [.filename]#rc.conf# " "variable comes into play - `varsize`. A [.filename]#/var# partition is " "created by [.filename]#/etc/rc.d/var# based on the value of this variable in " "[.filename]#rc.conf#:" msgstr "" "[.filename]#/etc/rc.d/var# монтирует [.filename]#/var# как файловую систему " "в памяти, создает указываемый список каталогов в [.filename]#/var# при " "помощи команды man:mkdir[1], изменяет режимы доступа на некоторые из этих " "каталогов. В процессе выполнения [.filename]#/etc/rc.d/var# задействуется " "еще одна переменная [.filename]#rc.conf# - `varsize`. Скрипт [.filename]#/" "etc/rc.d/var# создает раздел [.filename]#/var# на основе значения этой " "переменной из [.filename]#rc.conf#:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:106 #, no-wrap msgid "varsize=8192\n" msgstr "varsize=8192\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:109 msgid "Remember that this value is in sectors by default." msgstr "Запомните, что по умолчанию это значение указано в секторах." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:116 msgid "" "The fact that [.filename]#/var# is a read-write filesystem is an important " "distinction, as the [.filename]#/# partition (and any other partitions you " "may have on your flash media) should be mounted read-only. Remember that in " "crossref:solid-state[intro, Solid State Disk Devices] we detailed the " "limitations of flash memory - specifically the limited write capability. " "The importance of not mounting filesystems on flash media read-write, and " "the importance of not using a swap file, cannot be overstated. A swap file " "on a busy system can burn through a piece of flash media in less than one " "year. Heavy logging or temporary file creation and destruction can do the " "same. Therefore, in addition to removing the `swap` entry from your [." "filename]#/etc/fstab#, you should also change the Options field for each " "filesystem to `ro` as follows:" msgstr "" "Факт использования файловой системы [.filename]#/var# в режиме чтения и " "записи является важным признаком, так как раздел [.filename]#/# (и любые " "другие разделы, которые могут находиться на флеш-носителе) должен " "монтироваться в режиме только для чтения. Вспомните, что в разделе crossref" ":solid-state[intro, Твердотельные дисковые устройства] мы касались " "ограничений флеш-памяти - особенно ограничений, касающихся возможностей " "записи. Важно не монтировать файловые системы на флеш-носителях в режимах " "чтения и записи, и важность отказа от файла подкачки не может быть " "переоценена. Файл подкачки на загруженной системе может пережечь кусок флеш-" "носителя менее чем за год. Частое журналирование и создание временных файлов " "приводят к тому же результату. Поэтому, кроме удаления записи `swap` из " "вашего файла [.filename]#/etc/fstab#, вы должны также изменить поле " "параметров каждой файловой системы на `ro` таким образом:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:121 #, no-wrap msgid "" "# Device Mountpoint FStype Options Dump Pass#\n" "/dev/ad0s1a / ufs ro 1 1\n" msgstr "" "# Device Mountpoint FStype Options Dump Pass#" "\n" "/dev/ad0s1a / ufs ro 1 1\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:128 msgid "" "A few applications in the average system will immediately begin to fail as a " "result of this change. For instance, cron will not run properly as a result " "of missing cron tabs in the [.filename]#/var# created by [.filename]#/etc/rc." "d/var#, and syslog and dhcp will encounter problems as well as a result of " "the read-only filesystem and missing items in the [.filename]#/var# that [." "filename]#/etc/rc.d/var# has created. These are only temporary problems " "though, and are addressed, along with solutions to the execution of other " "common software packages in crossref:solid-state[strategies, System " "Strategies for Small and Read Only Environments]." msgstr "" "В результате этих изменений в среднестатистической системе несколько " "приложений немедленно перестанут работать. Например, cron не будет нормально " "запускаться в результате отсутствия таблиц для него в каталоге [." "filename]#/var#, созданном [.filename]#/etc/rc.d/var#, а syslog и dhcp будут " "испытывать проблемы из-за доступа файловой системы только для чтения, а " "также отсутствия записей в [.filename]#/var#, который был создан скриптом [." "filename]#/etc/rc.d/var#. Хотя эти проблемы являются временными и " "обсуждаются вместе с решением проблем с запуском распространённых " "программных пакетов в разделе crossref:solid-state[strategies, Стратегии " "работы с системой для случаев небольших и доступных только для чтения " "файловых систем]." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:130 msgid "" "An important thing to remember is that a filesystem that was mounted read-" "only with [.filename]#/etc/fstab# can be made read-write at any time by " "issuing the command:" msgstr "" "Важно помнить, что файловая система, которая была смонтирована только для " "чтения при помощи файла [.filename]#/etc/fstab#, в любой момент может быть " "сделана доступной по чтению и записи выдачей команды:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:134 #, no-wrap msgid "# /sbin/mount -uw partition\n" msgstr "# /sbin/mount -uw partition\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:137 msgid "and can be toggled back to read-only with the command:" msgstr "" "и может быть возвращена к режиму доступа только для чтения по такой команде:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:141 #, no-wrap msgid "# /sbin/mount -ur partition\n" msgstr "# /sbin/mount -ur partition\n" #. type: Title == #: documentation/content/en/articles/solid-state/_index.adoc:143 #, no-wrap msgid "Building a File System from Scratch" msgstr "Создание файловой системы с нуля" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:146 msgid "" "Since ATA compatible compact-flash cards are seen by FreeBSD as normal IDE " "hard drives, you could theoretically install FreeBSD from the network using " "the kern and mfsroot floppies or from a CD." msgstr "" "Так как совместимые с ATA компактные флеш-карты распознаются во FreeBSD как " "обычные жесткие диски IDE, то теоретически вы можете установить FreeBSD по " "сети при помощи дискет kern и mfsroot или с компакт-диска." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:149 msgid "" "However, even a small installation of FreeBSD using normal installation " "procedures can produce a system in size of greater than 200 megabytes. Most " "people will be using smaller flash memory devices (128 megabytes is " "considered fairly large - 32 or even 16 megabytes is common), so an " "installation using normal mechanisms is not possible-there is simply not " "enough disk space for even the smallest of conventional installations." msgstr "" "Однако даже маленькая установка FreeBSD при помощи обычных процедур " "установки может привести к созданию системы размером, превышающим 200 " "мегабайт. Так как большинство людей используют устройства флеш-памяти " "меньшего размера (128 мегабайт считается весьма большим - 32 или даже 16 " "мегабайт используются гораздо чаще), то установка обычным образом не " "подходит-просто на диске нет места даже для самой минимальной установки." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:155 msgid "" "The easiest way to overcome this space limitation is to install FreeBSD " "using conventional means to a normal hard disk. After the installation is " "complete, pare down the operating system to a size that will fit onto your " "flash media, then tar the entire filesystem. The following steps will guide " "you through the process of preparing a piece of flash memory for your tarred " "filesystem. Remember, because a normal installation is not being performed, " "operations such as partitioning, labeling, file-system creation, etc. need " "to be performed by hand. In addition to the kern and mfsroot floppy disks, " "you will also need to use the fixit floppy." msgstr "" "Самым простым способом обойти это ограничение на объем является установка " "FreeBSD обычным образом на обычный жесткий диск. После окончания установки, " "обрежьте операционную систему до размера, который помещается на ваш флеш-" "носитель, а затем полностью заархивируйте файловую систему. Следующие шаги " "поведут вас через процесс подготовки части флеш-памяти для вашей " "заархивированной файловой системы. Запомните, что из-за того, что обычная " "установка не выполнялась, такие операции, как разбиение на разделы, " "разметка, создание файловой системы и так далее должны быть выполнены " "вручную. Кроме дискет kern и mfsroot вам также нужно воспользоваться " "дискетой fixit." #. type: delimited block = 4 #: documentation/content/en/articles/solid-state/_index.adoc:159 msgid "Partitioning Your Flash Media Device" msgstr "Разбиение вашего флеш-носителя на разделы" #. type: delimited block = 4 #: documentation/content/en/articles/solid-state/_index.adoc:169 msgid "" "After booting with the kern and mfsroot floppies, choose `custom` from the " "installation menu. In the custom installation menu, choose `partition`. In " "the partition menu, you should delete all existing partitions using kbd:" "[d]. After deleting all existing partitions, create a partition using kbd:" "[c] and accept the default value for the size of the partition. When asked " "for the type of the partition, make sure the value is set to `165`. Now " "write this partition table to the disk by pressing kbd:[w] (this is a hidden " "option on this screen). If you are using an ATA compatible compact flash " "card, you should choose the FreeBSD Boot Manager. Now press kbd:[q] to quit " "the partition menu. You will be shown the boot manager menu once more - " "repeat the choice you made earlier." msgstr "" "После загрузки при помощи дискет kern и mfsroot, выберите пункт `custom` из " "меню установки. Из следующего пункта меню выберите `partition`. В меню " "работы с разделами вы должны удалить все существующие разделы при помощи " "клавиши kbd:[d]. После удаления всех имеющихся разделов создайте раздел при " "помощи клавиши kbd:[c] и согласитесь с предлагаемым по умолчанию размером " "раздела. Когда вы будете опрошены на предмет типа раздела, удостоверьтесь, " "что значение типа равно `165`. Теперь запишите эту таблицу разделов на диск, " "нажав клавишу kbd:[w] (на этом экране эта опция скрыта). Если вы используете " "компактную флеш-карту, совместимую с ATA, вы должны выбрать FreeBSD Boot " "Manager. Теперь нажмите клавишу kbd:[q] для выхода из меню работы с " "разделами. Должно быть выдано еще раз меню для выбора менеджера загрузки - " "повторите то, что вы выбирали ранее." #. type: delimited block = 4 #: documentation/content/en/articles/solid-state/_index.adoc:170 msgid "Creating Filesystems on Your Flash Memory Device" msgstr "Создание файловых систем на вашем устройстве флеш-памяти" #. type: delimited block = 4 #: documentation/content/en/articles/solid-state/_index.adoc:173 msgid "" "Exit the custom installation menu, and from the main installation menu " "choose the `fixit` option. After entering the fixit environment, enter the " "following command:" msgstr "" "Выйдите из меню установки custom, и из главного меню установки выберите " "пункт `fixit`. После входа в режим работы fixit, введите следующую команду:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:177 #, no-wrap msgid "# disklabel -e /dev/ad0c\n" msgstr "# disklabel -e /dev/ad0c\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:181 msgid "" "At this point you will have entered the vi editor under the auspices of the " "disklabel command. Next, you need to add an `a:` line at the end of the " "file. This `a:` line should look like:" msgstr "" "В этот момент вы войдете в редактор vi из-под команды disklabel. Затем, вам " "нужно добавить строку `a:` в конце файла. Эта строка `a:` должна выглядеть " "примерно так:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:185 #, no-wrap msgid "a: 123456 0 4.2BSD 0 0\n" msgstr "a: 123456 0 4.2BSD 0 0\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:190 msgid "" "Where _123456_ is a number that is exactly the same as the number in the " "existing `c:` entry for size. Basically you are duplicating the existing `c:" "` line as an `a:` line, making sure that fstype is `4.2BSD`. Save the file " "and exit." msgstr "" "Здесь _123456_ является числом, в точности совпадающим с тем, что " "характеризует размер имеющейся записи для `c:`. В общем, вы копируете " "существующую строку для `c:` для строки `a:`, не забывая определить fstype " "как `4.2BSD`. Сохраните файл и завершите редактирование." #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:195 #, no-wrap msgid "" "# disklabel -B -r /dev/ad0c\n" "# newfs /dev/ad0a\n" msgstr "" "# disklabel -B -r /dev/ad0c\n" "# newfs /dev/ad0a\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:198 msgid "Placing Your Filesystem on the Flash Media" msgstr "Размещение вашей файловой системы на флеш-носителе" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:200 msgid "Mount the newly prepared flash media:" msgstr "Смонтируйте только что подготовленный флеш-носитель:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:204 #, no-wrap msgid "# mount /dev/ad0a /flash\n" msgstr "# mount /dev/ad0a /flash\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:208 msgid "" "Bring this machine up on the network so we may transfer our tar file and " "explode it onto our flash media filesystem. One example of how to do this " "is:" msgstr "" "Подключите эту машину к сети, чтобы можно было перенести наш tar-файл и " "распаковать его в файловую систему на флеш-носителе. Вот пример того, как " "это можно сделать:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:213 #, no-wrap msgid "" "# ifconfig xl0 192.168.0.10 netmask 255.255.255.0\n" "# route add default 192.168.0.1\n" msgstr "" "# ifconfig xl0 192.168.0.10 netmask 255.255.255.0\n" "# route add default 192.168.0.1\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:219 msgid "" "Now that the machine is on the network, transfer your tar file. You may be " "faced with a bit of a dilemma at this point - if your flash memory part is " "128 megabytes, for instance, and your tar file is larger than 64 megabytes, " "you cannot have your tar file on the flash media at the same time as you " "explode it - you will run out of space. One solution to this problem, if " "you are using FTP, is to untar the file while it is transferred over FTP. " "If you perform your transfer in this manner, you will never have the tar " "file and the tar contents on your disk at the same time:" msgstr "" "Теперь, когда машина находится в сети, перепишите ваш tar-файл. Здесь вы " "можете столкнуться с некоторой проблемой - если объем вашей флеш-памяти " "равен, к примеру, 128 мегабайтам, а ваш tar-файл превышает 64 мегабайта, то " "вы не можете одновременно разместить tar-файл на флеш-носителе и распаковать " "его - вам не хватит места. Одним из решений этой проблемы, если вы " "используете FTP, является распаковка файла во время его передачи по FTP. " "Если вы передаёте файл именно так, то вы никогда не получите на диске " "одновременно архивный файл и его содержимое:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:223 #, no-wrap msgid "ftp> get tarfile.tar \"| tar xvf -\"\n" msgstr "ftp> get tarfile.tar \"| tar xvf -\"\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:226 msgid "If your tarfile is gzipped, you can accomplish this as well:" msgstr "Если ваш файл обработан утилитой gzip, вы также можете этого добиться:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:230 #, no-wrap msgid "ftp> get tarfile.tar \"| zcat | tar xvf -\"\n" msgstr "ftp> get tarfile.tar \"| zcat | tar xvf -\"\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:233 msgid "" "After the contents of your tarred filesystem are on your flash memory " "filesystem, you can unmount the flash memory and reboot:" msgstr "" "После того, как вы получили содержимое вашей заархивированной файловой " "системы на файловой системе флеш-памяти, вы можете размонтировать флеш-" "память и выполнить перезагрузку:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:239 #, no-wrap msgid "" "# cd /\n" "# umount /flash\n" "# exit\n" msgstr "" "# cd /\n" "# umount /flash\n" "# exit\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:242 msgid "" "Assuming that you configured your filesystem correctly when it was built on " "the normal hard disk (with your filesystems mounted read-only, and with the " "necessary options compiled into the kernel) you should now be successfully " "booting your FreeBSD embedded system." msgstr "" "При условии, что вы правильно настроили файловую систему при её создании на " "обычном жёстком диске (с монтированием файловых систем в режиме только для " "чтения и с необходимыми опциями, встроенными в ядро), ваша встраиваемая " "система FreeBSD теперь должна успешно загружаться." #. type: Title == #: documentation/content/en/articles/solid-state/_index.adoc:245 #, no-wrap msgid "System Strategies for Small and Read Only Environments" msgstr "" "Стратегии работы с системой для случаев небольших и доступных только для " "чтения файловых систем" #. type: delimited block = 4 #: documentation/content/en/articles/solid-state/_index.adoc:249 msgid "" "In crossref:solid-state[ro-fs, The `rc` Subsystem and Read-Only " "Filesystems], it was pointed out that the [.filename]#/var# filesystem " "constructed by [.filename]#/etc/rc.d/var# and the presence of a read-only " "root filesystem causes problems with many common software packages used with " "FreeBSD. In this article, suggestions for successfully running cron, " "syslog, ports installations, and the Apache web server will be provided." msgstr "" "В разделе crossref:solid-state[ro-fs, Подсистема `rc` и файловые системы в " "режиме только чтения] было указано, что файловая система [.filename]#/var#, " "создаваемая скриптом [.filename]#/etc/rc.d/var#, и наличие корневой файловой " "системы, доступной только для чтения, приводят к проблемам при работе многих " "распространённых программных пакетов, используемых во FreeBSD. В этой статье " "будут даны рекомендации по настройке нормальной работы cron и syslog, " "установке портов и веб-сервера Apache." #. type: Title === #: documentation/content/en/articles/solid-state/_index.adoc:250 #, no-wrap msgid "Cron" msgstr "Cron" #. type: delimited block = 4 #: documentation/content/en/articles/solid-state/_index.adoc:253 msgid "" "Upon boot, [.filename]#/var# gets populated by [.filename]#/etc/rc.d/var# " "using the list from [.filename]#/etc/mtree/BSD.var.dist#, so the [." "filename]#cron#, [.filename]#cron/tabs#, [.filename]#at#, and a few other " "standard directories get created." msgstr "" "Во время загрузки содержимое каталогa [.filename]#/var# формируется скриптом " "[.filename]#/etc/rc.d/var# используя данные из [.filename]#/etc/mtree/BSD.var" ".dist#, поэтому в нем создается несколько стандартных каталогов, в числе " "которых - [.filename]#cron#, [.filename]#cron/tabs#, [.filename]#at#." #. type: delimited block = 4 #: documentation/content/en/articles/solid-state/_index.adoc:258 msgid "" "However, this does not solve the problem of maintaining cron tabs across " "reboots. When the system reboots, the [.filename]#/var# filesystem that is " "in memory will disappear and any cron tabs you may have had in it will also " "disappear. Therefore, one solution would be to create cron tabs for the " "users that need them, mount your [.filename]#/# filesystem as read-write and " "copy those cron tabs to somewhere safe, like [.filename]#/etc/tabs#, then " "add a line to the end of [.filename]#/etc/rc.initdiskless# that copies those " "crontabs into [.filename]#/var/cron/tabs# after that directory has been " "created during system initialization. You may also need to add a line that " "changes modes and permissions on the directories you create and the files " "you copy with [.filename]#/etc/rc.initdiskless#." msgstr "" "Однако это не решает проблему с сохранением cron-таблиц между " "перезагрузками. Когда система перезагружается, то файловая система [." "filename]#/var#, которая располагается в памяти, будет уничтожена, вместе со " "всеми cron-таблицами, которые вы могли там иметь. Поэтому одним из решений " "может стать создание cron-таблиц для пользователей, которым они нужны, " "монтирование вашей файловой системы [.filename]#/# в режиме чтения и записи, " "и копирование этих cron-таблиц в безопасное место, например, в [.filename]#/" "etc/tabs#, и последующее добавление строки в конец скрипта [.filename]#/etc/" "rc.initdiskless# для копирования этих cron-таблиц в каталог [.filename]#/var/" "cron/tabs# после его создания во время инициализации системы. Вам может " "также потребоваться добавить строку, которая изменяет режимы доступа и права " "на каталоги, которые вы создали, и на файлы, которые вы скопировали в " "скрипте [.filename]#/etc/rc.initdiskless#." #. type: Title === #: documentation/content/en/articles/solid-state/_index.adoc:259 #, no-wrap msgid "Syslog" msgstr "Syslog" #. type: delimited block = 4 #: documentation/content/en/articles/solid-state/_index.adoc:264 msgid "" "[.filename]#syslog.conf# specifies the locations of certain log files that " "exist in [.filename]#/var/log#. These files are not created by [.filename]#/" "etc/rc.d/var# upon system initialization. Therefore, somewhere in [." "filename]#/etc/rc.d/var#, after the section that creates the directories in " "[.filename]#/var#, you will need to add something like this:" msgstr "" "В файле [.filename]#syslog.conf# задано местоположение некоторых файлов " "протоколов, которые имеются в каталоге [.filename]#/var/log#. Эти файлы не " "создаются скриптом [.filename]#/etc/rc.d/var# во время инициализации " "системы. Поэтому где-нибудь в скрипте [.filename]#/etc/rc.d/var#, после " "секции, создающей каталоги в [.filename]#/var#, вам нужно добавить нечто " "вроде следующего:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:269 #, no-wrap msgid "" "# touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages\n" "# chmod 0644 /var/log/*\n" msgstr "" "# touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages\n" "# chmod 0644 /var/log/*\n" #. type: Title === #: documentation/content/en/articles/solid-state/_index.adoc:271 #, no-wrap msgid "Ports Installation" msgstr "Установка портов" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:277 msgid "" "Before discussing the changes necessary to successfully use the ports tree, " "a reminder is necessary regarding the read-only nature of your filesystems " "on the flash media. Since they are read-only, you will need to temporarily " "mount them read-write using the mount syntax shown in crossref:solid-" "state[ro-fs, The `rc` Subsystem and Read-Only Filesystems]. You should " "always remount those filesystems read-only when you are done with any " "maintenance - unnecessary writes to the flash media could considerably " "shorten its lifespan." msgstr "" "Перед тем, как обсудить изменения, которые нужно сделать для успешного " "использования дерева портов, необходимо напомнить о том, что ваши файловые " "системы на флеш-носителях доступны только для чтения. Поэтому вам нужно " "временно монтировать их в режиме чтения и записи, используя параметры " "командной строки, как это показано в crossref:solid-state[ro-fs, Подсистема " "`rc` и файловые системы в режиме только чтения]. Вы всегда должны " "перемонтировать эти файловые системы в режим только для чтения после " "окончания работ - излишние записи на флеш носитель могут значительно " "сократить его срок эксплуатации." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:280 msgid "" "To make it possible to enter a ports directory and successfully run `make " "install`, we must create a packages directory on a non-memory filesystem " "that will keep track of our packages across reboots. As it is necessary to " "mount your filesystems as read-write for the installation of a package " "anyway, it is sensible to assume that an area on the flash media can also be " "used for package information to be written to." msgstr "" "Чтобы можно было войти в каталог с портами и успешно выполнить команду make " "`install`, необходимо создать каталог для пакетов в файловой системе, не " "располагающейся в памяти, где будут храниться пакеты между перезагрузками. " "Так как для установки пакета в любом случае требуется монтирование ваших " "файловых систем для чтения и записи, имеет смысл выделить область флеш-" "носителя также и для записи информации о пакете." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:283 msgid "" "First, create a package database directory. This is normally in [." "filename]#/var/db/pkg#, but we cannot place it there as it will disappear " "every time the system is booted." msgstr "" "Прежде всего создайте каталог с базой данных о пакетах. Обычно это каталог [." "filename]#/var/db/pkg#, но мы не можем разместить базу именно здесь, так как " "она исчезнет после перезагрузки системы." #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:287 #, no-wrap msgid "# mkdir /etc/pkg\n" msgstr "# mkdir /etc/pkg\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:290 msgid "" "Now, add a line to [.filename]#/etc/rc.d/var# that links the [.filename]#/" "etc/pkg# directory to [.filename]#/var/db/pkg#. An example:" msgstr "" "Теперь в скрипт [.filename]#/etc/rc.d/var# добавьте строку, которая " "связывает каталог [.filename]#/etc/pkg# с [.filename]#/var/db/pkg#. Например:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:294 #, no-wrap msgid "# ln -s /etc/pkg /var/db/pkg\n" msgstr "# ln -s /etc/pkg /var/db/pkg\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:297 msgid "" "Now, any time that you mount your filesystems as read-write and install a " "package, the `make install` will work, and package information will be " "written successfully to [.filename]#/etc/pkg# (because the filesystem will, " "at that time, be mounted read-write) which will always be available to the " "operating system as [.filename]#/var/db/pkg#." msgstr "" "Теперь каждый раз при монтировании ваших файловых систем для чтения и записи " "и установки пакета, команда make `install` будет работать, а информация о " "пакете будет успешно записана в каталог [.filename]#/etc/pkg# (так как " "файловая система будет в это время смонтирована для чтения и записи), " "который всегда будет доступным операционной системе как [.filename]#/var/db/" "pkg#." #. type: Title === #: documentation/content/en/articles/solid-state/_index.adoc:298 #, no-wrap msgid "Apache Web Server" msgstr "Веб-сервер Apache" #. type: delimited block = 4 #: documentation/content/en/articles/solid-state/_index.adoc:304 msgid "" "The steps in this section are only necessary if Apache is set up to write " "its pid or log information outside of [.filename]#/var#. By default, Apache " "keeps its pid file in [.filename]#/var/run/httpd.pid# and its log files in [." "filename]#/var/log#." msgstr "" "Шаги, описанные в этой части статьи, необходимо выполнить лишь в том случае, " "если Apache настроен сохранять свой pid или журнал вне каталога [." "filename]#/var#. С настройками по умолчанию Apache формирует свой pid файл в " "[.filename]#/var/run/httpd.pid#, а файлы журналов - в [.filename]#/var/log#." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:310 msgid "" "It is now assumed that Apache keeps its log files in a directory [." "filename]#apache_log_dir# outside of [.filename]#/var#. When this directory " "lives on a read-only filesystem, Apache will not be able to save any log " "files, and may have problems working. If so, it is necessary to add a new " "directory to the list of directories in [.filename]#/etc/rc.d/var# to create " "in [.filename]#/var#, and to link [.filename]#apache_log_dir# to [." "filename]#/var/log/apache#. It is also necessary to set permissions and " "ownership on this new directory." msgstr "" "Далее в статье подразумевается, что Apache сохраняет свои файлы журналов в " "каталог [.filename]#apache_log_dir# вне каталога [.filename]#/var#. Когда " "этот каталог расположен на файловой системе, смонтированной в режиме только " "для чтения, Apache не сможет сохранять файлы журналов, что в свою очередь " "может вызывать проблемы в работе веб-сервера. В таком случае необходимо " "добавить новый каталог к списку каталогов из [.filename]#/etc/rc.d/var# для " "их создания в каталоге [.filename]#/var# и связать [." "filename]#apache_log_dir# с [.filename]#/var/log/apache#. Нужно также задать " "права доступа и владельца нового каталога." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:312 msgid "" "First, add the directory `log/apache` to the list of directories to be " "created in [.filename]#/etc/rc.d/var#." msgstr "" "Сначала добавьте каталог `log/apache` к списку каталогов, создаваемых " "скриптом [.filename]#/etc/rc.d/var#." #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:314 msgid "" "Second, add these commands to [.filename]#/etc/rc.d/var# after the directory " "creation section:" msgstr "" "Затем добавьте в скрипт [.filename]#/etc/rc.d/var# после секции создания " "каталогов такие команды:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:319 #, no-wrap msgid "" "# chmod 0774 /var/log/apache\n" "# chown nobody:nobody /var/log/apache\n" msgstr "" "# chmod 0774 /var/log/apache\n" "# chown nobody:nobody /var/log/apache\n" #. type: Plain text #: documentation/content/en/articles/solid-state/_index.adoc:322 msgid "" "Finally, remove the existing [.filename]#apache_log_dir# directory, and " "replace it with a link:" msgstr "" "И наконец, удалите существующий каталог [.filename]#apache_install/logs# и " "замените его ссылкой:" #. type: delimited block . 4 #: documentation/content/en/articles/solid-state/_index.adoc:327 #, no-wrap msgid "" "# rm -rf apache_log_dir\n" "# ln -s /var/log/apache apache_log_dir\n" msgstr "" "# rm -rf apache_log_dir\n" "# ln -s /var/log/apache apache_log_dir\n"