- "dirty" formatting changes ( space->tab substitutions,

trailing white space skips, white spaces within several
      <screen></screen> and <programlisting></programlisting>
      elements have been hit, too)

Approved by: maxim (mentor), marck (mentor)
This commit is contained in:
Taras Korenko 2010-07-12 11:36:57 +00:00
parent fecf40468e
commit ed1b220cbf
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=35995

View file

@ -77,15 +77,15 @@
устройств для создания встраиваемых систем на основе &os;</para> устройств для создания встраиваемых систем на основе &os;</para>
<para>Встраиваемые системы имеют преимущество в повышенной надежности <para>Встраиваемые системы имеют преимущество в повышенной надежности
по причине отсутствия в них движущихся частей (жестких дисков). Однако, по причине отсутствия в них движущихся частей (жестких дисков).
следует принять во внимание, что системе, как правило, доступно очень Однако, следует принять во внимание, что системе, как правило, доступно
малое дисковое пространство и ограниченный объем запоминающего очень малое дисковое пространство и ограниченный объем запоминающего
устройства.</para> устройства.</para>
<para>К отдельно рассматриваемым вопросам относятся типы и характеристики <para>К отдельно рассматриваемым вопросам относятся типы и характеристики
твердотельных носителей, подходящих для использования в качестве дисков твердотельных носителей, подходящих для использования в качестве дисков
во &os;, параметры ядра, которые представляют интерес в таких во &os;, параметры ядра, которые представляют интерес в таких условиях,
условиях, механизмы <filename>rc.initdiskless</filename>, автоматизирующие механизмы <filename>rc.initdiskless</filename>, автоматизирующие
инициализацию таких систем и удовлетворяющие требованиям файловых инициализацию таких систем и удовлетворяющие требованиям файловых
систем, доступных только для чтения, а также построение файловых систем систем, доступных только для чтения, а также построение файловых систем
с нуля. Статья заканчивается описанием некоторых общих стратегий для с нуля. Статья заканчивается описанием некоторых общих стратегий для
@ -118,13 +118,13 @@
могут зависеть от температуры рабочей среды.</para> могут зависеть от температуры рабочей среды.</para>
<para>В частности, мы обсудим компактные модули флэш-памяти, совместимые со <para>В частности, мы обсудим компактные модули флэш-памяти, совместимые со
стандартом ATA, которые стали весьма популярными в качестве стандартом ATA, которые стали весьма популярными в качестве носителя
носителя данных для цифровых камер. Особый интерес представляет тот данных для цифровых камер. Особый интерес представляет тот факт, что они
факт, что они соответствуют шине IDE по контактам и совместимы с набором соответствуют шине IDE по контактам и совместимы с набором команд ATA.
команд ATA. Таким образом, при помощи очень простого и дешевого адаптера Таким образом, при помощи очень простого и дешевого адаптера такие
такие устройства могут подключаться непосредственно к шине IDE устройства могут подключаться непосредственно к шине IDE компьютера.
компьютера. Если поступить таким образом, то такие операционные системы, Если поступить таким образом, то такие операционные системы, как &os;,
как &os;, распознают диск как обычный винчестер (весьма маленький).</para> распознают диск как обычный винчестер (весьма маленький).</para>
<para>Существуют и другие решения для твердотельных дисков, но их <para>Существуют и другие решения для твердотельных дисков, но их
стоимость, безвестность и сравнительная сложность использования выводят стоимость, безвестность и сравнительная сложность использования выводят
@ -152,11 +152,9 @@
<para>Вы должны удостовериться, что в конфигурационном файле вашего ядра <para>Вы должны удостовериться, что в конфигурационном файле вашего ядра
присутствуют следующие строки:</para> присутствуют следующие строки:</para>
<programlisting> <programlisting>options MFS # Memory Filesystem
options MFS # Memory Filesystem
options MD_ROOT # md device usable as a potential root device options MD_ROOT # md device usable as a potential root device
pseudo-device md # memory disk pseudo-device md # memory disk</programlisting>
</programlisting>
</sect1> </sect1>
<sect1 id="ro-fs"> <sect1 id="ro-fs">
@ -192,26 +190,22 @@ pseudo-device md # memory disk
подкачки не может быть переоценена. Файл подкачки на загруженной системе подкачки не может быть переоценена. Файл подкачки на загруженной системе
может пережечь кусок флэш-носителя менее чем за год. Частое может пережечь кусок флэш-носителя менее чем за год. Частое
журналирование и создание временных файлов приводят к тому же результату. журналирование и создание временных файлов приводят к тому же результату.
Поэтому, кроме удаления записи <literal>swap</literal> Поэтому, кроме удаления записи <literal>swap</literal> из вашего файла
из вашего файла <filename>/etc/fstab</filename>, <filename>/etc/fstab</filename>, вы должны также изменить поле параметров
вы должны также изменить поле параметров каждой файловой системы на каждой файловой системы на <literal>ro</literal> таким образом:</para>
<literal>ro</literal> таким образом:</para>
<programlisting> <programlisting># Device Mountpoint FStype Options Dump Pass#
# Device Mountpoint FStype Options Dump Pass# /dev/ad0s1a / ufs ro 1 1</programlisting>
/dev/ad0s1a / ufs ro 1 1
</programlisting>
<para>В результате этих изменений в среднестатистической системе несколько <para>В результате этих изменений в среднестатистической системе несколько
приложений немедленно перестанут работать. Например, cron не будет нормально приложений немедленно перестанут работать. Например, cron не будет
запускаться в результате отсутствия таблиц для него в каталоге нормально запускаться в результате отсутствия таблиц для него в каталоге
<filename>/var</filename>, созданном <filename>/var</filename>, созданном <filename>/etc/rc.d/var</filename>,
<filename>/etc/rc.d/var</filename>, а syslog и dhcp будут испытывать а syslog и dhcp будут испытывать проблемы из-за доступа файловой системы
проблемы из-за доступа файловой системы только для чтения, а также только для чтения, а также отсутствия записей в <filename>/var</filename>,
отсутствия записей в <filename>/var</filename>, который был создан который был создан скриптом <filename>/etc/rc.d/var</filename>. Хотя эти
скриптом <filename>/etc/rc.d/var</filename>. Хотя эти проблемы проблемы являются временными и обсуждаются вместе с решением проблем
являются временными и обсуждаются вместе с решением проблем с запуском с запуском распространенных программных пакетов, в <xref
распространенных программных пакетов, в <xref
linkend="strategies">.</para> linkend="strategies">.</para>
<para>Важно помнить, что файловая система, которая была смонтирована <para>Важно помнить, что файловая система, которая была смонтирована
@ -219,25 +213,20 @@ pseudo-device md # memory disk
любой момент может быть сделана доступной по чтению и записи выдачей любой момент может быть сделана доступной по чтению и записи выдачей
команды:</para> команды:</para>
<screen> <screen>&prompt.root; <userinput>/sbin/mount -uw <replaceable>partition</replaceable></userinput></screen>
&prompt.root; <userinput>/sbin/mount -uw <replaceable>partition</replaceable></userinput>
</screen>
<para>и может быть возвращена к режиму доступа только для чтения по такой <para>и может быть возвращена к режиму доступа только для чтения по такой
команде:</para> команде:</para>
<screen> <screen>&prompt.root; <userinput>/sbin/mount -ur <replaceable>partition</replaceable></userinput></screen>
&prompt.root; <userinput>/sbin/mount -ur <replaceable>partition</replaceable></userinput>
</screen>
</sect1> </sect1>
<sect1> <sect1>
<title>Создание файловой системы с нуля</title> <title>Создание файловой системы с нуля</title>
<para>Так как совместимые с ATA компактные флэш-карты распознаются во <para>Так как совместимые с ATA компактные флэш-карты распознаются во &os;
&os; как обычные жесткие диски IDE, как обычные жесткие диски IDE, то теоретически вы можете установить &os;
то теоретически вы можете установить &os; по сети при помощи по сети при помощи дискет kern и mfsroot или с компакт-диска.</para>
дискет kern и mfsroot или с компакт-диска.</para>
<para>Однако даже маленькая установка &os; при помощи обычных процедур <para>Однако даже маленькая установка &os; при помощи обычных процедур
установки может привести к созданию системы размером, превышающим 200 установки может привести к созданию системы размером, превышающим 200
@ -248,15 +237,15 @@ pseudo-device md # memory disk
установки.</para> установки.</para>
<para>Самым простым способом обойти это ограничение на объем является <para>Самым простым способом обойти это ограничение на объем является
установка &os; обычным образом на обычный жесткий диск. После установка &os; обычным образом на обычный жесткий диск. После окончания
окончания установки, обрежьте операционную систему до размера, который установки, обрежьте операционную систему до размера, который помещается
помещается на ваш флэш-носитель, а затем полностью заархивируйте файловую на ваш флэш-носитель, а затем полностью заархивируйте файловую систему.
систему. Следующие шаги поведут вас через процесс подготовки части Следующие шаги поведут вас через процесс подготовки части флэш-памяти
флэш-памяти для вашей заархивированной файловой системы. Запомните, что для вашей заархивированной файловой системы. Запомните, что из-за того,
из-за того, что обычная установка не выполнялась, такие операции, как что обычная установка не выполнялась, такие операции, как разбиение
разбиение на разделы, разметка, создание файловой системы и так далее на разделы, разметка, создание файловой системы и так далее должны быть
должны быть выполнены вручную. Кроме дискет kern и mfsroot вам также выполнены вручную. Кроме дискет kern и mfsroot вам также нужно
нужно воспользоваться дискетой fixit.</para> воспользоваться дискетой fixit.</para>
<procedure> <procedure>
<step> <step>
@ -272,11 +261,11 @@ pseudo-device md # memory disk
опрошены на предмет типа раздела, удостоверьтесь, что значение типа опрошены на предмет типа раздела, удостоверьтесь, что значение типа
равно <literal>165</literal>. Теперь запишите эту таблицу разделов равно <literal>165</literal>. Теперь запишите эту таблицу разделов
на диск, нажав клавишу <keycap>w</keycap> (на этом экране эта опция на диск, нажав клавишу <keycap>w</keycap> (на этом экране эта опция
скрыта). Если вы используете компактную флэш-карту, скрыта). Если вы используете компактную флэш-карту, совместимую
совместимую с ATA, вы должны выбрать FreeBSD Boot Manager. Теперь с ATA, вы должны выбрать FreeBSD Boot Manager. Теперь нажмите
нажмите клавишу <keycap>q</keycap> для выхода из меню работы с клавишу <keycap>q</keycap> для выхода из меню работы с разделами.
разделами. Должно быть выдано еще раз меню для выбора менеджера Должно быть выдано еще раз меню для выбора менеджера загрузки -
загрузки - повторите то, что вы выбирали ранее.</para> повторите то, что вы выбирали ранее.</para>
</step> </step>
<step> <step>
@ -290,16 +279,13 @@ pseudo-device md # memory disk
<para>В этот момент вы войдете в редактор vi из-под команды disklabel. <para>В этот момент вы войдете в редактор vi из-под команды disklabel.
Затем, вам нужно добавить строку <literal>a:</literal> в конце файла. Затем, вам нужно добавить строку <literal>a:</literal> в конце файла.
Эта Эта строка <literal>a:</literal> должна выглядеть примерно так:</para>
строка <literal>a:</literal> должна выглядеть примерно так:</para>
<programlisting> <programlisting>a: <replaceable>123456</replaceable> 0 4.2BSD 0 0</programlisting>
a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
</programlisting>
<para>Здесь <replaceable>123456</replaceable> является числом, в <para>Здесь <replaceable>123456</replaceable> является числом, в
точности совпадающим с тем, что характеризует размер имеющейся точности совпадающим с тем, что характеризует размер имеющейся записи
записи для <literal>c:</literal>. В общем, вы копируете существующую для <literal>c:</literal>. В общем, вы копируете существующую
строку для <literal>c:</literal> для строки <literal>a:</literal>, строку для <literal>c:</literal> для строки <literal>a:</literal>,
не забывая определить fstype как <literal>4.2BSD</literal>. не забывая определить fstype как <literal>4.2BSD</literal>.
Сохраните файл и завершите редактирование.</para> Сохраните файл и завершите редактирование.</para>
@ -319,10 +305,8 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
tar-файл и распаковать его в файловую систему на флэш-носителе. Вот tar-файл и распаковать его в файловую систему на флэш-носителе. Вот
пример того, как это можно сделать:</para> пример того, как это можно сделать:</para>
<screen> <screen>&prompt.root; <userinput>ifconfig xl0 192.168.0.10 netmask 255.255.255.0</userinput>
&prompt.root; <userinput>ifconfig xl0 192.168.0.10 netmask 255.255.255.0</userinput> &prompt.root; <userinput>route add default 192.168.0.1</userinput></screen>
&prompt.root; <userinput>route add default 192.168.0.1</userinput>
</screen>
<para>Теперь, когда машина находится в сети, перепишите ваш tar-файл. <para>Теперь, когда машина находится в сети, перепишите ваш tar-файл.
Здесь вы можете столкнуться с некоторой проблемой - если объем вашей Здесь вы можете столкнуться с некоторой проблемой - если объем вашей
@ -334,26 +318,20 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
файл именно так, то вы никогда не получите на диске одновременно файл именно так, то вы никогда не получите на диске одновременно
архивный файл и его содержимое:</para> архивный файл и его содержимое:</para>
<screen> <screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| tar xvf -"</userinput></screen>
<prompt>ftp></prompt> <userinput>get tarfile.tar "| tar xvf -"</userinput>
</screen>
<para>Если ваш файл обработан утилитой gzip, вы также можете этого <para>Если ваш файл обработан утилитой gzip, вы также можете этого
добиться:</para> добиться:</para>
<screen> <screen><prompt>ftp></prompt> <userinput>get tarfile.tar "| zcat | tar xvf -"</userinput></screen>
<prompt>ftp></prompt> <userinput>get tarfile.tar "| zcat | tar xvf -"</userinput>
</screen>
<para>После того, как вы получили содержимое вашей заархивированной <para>После того, как вы получили содержимое вашей заархивированной
файловой системы на файловой системе флэш-памяти, вы можете файловой системы на файловой системе флэш-памяти, вы можете
размонтировать флэш-память и выполнить перезагрузку:</para> размонтировать флэш-память и выполнить перезагрузку:</para>
<screen> <screen>&prompt.root; <userinput>cd /</userinput>
&prompt.root; <userinput>cd /</userinput>
&prompt.root; <userinput>umount /flash</userinput> &prompt.root; <userinput>umount /flash</userinput>
&prompt.root; <userinput>exit</userinput> &prompt.root; <userinput>exit</userinput></screen>
</screen>
<para>Полагая, что вы правильно настроили вашу файловую систему при <para>Полагая, что вы правильно настроили вашу файловую систему при
ее построении на обычном диске (с вашей файловой системой, ее построении на обычном диске (с вашей файловой системой,
@ -416,10 +394,8 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
после секции, создающей каталоги в <filename>/var</filename>, вам нужно после секции, создающей каталоги в <filename>/var</filename>, вам нужно
добавить нечто вроде следующего:</para> добавить нечто вроде следующего:</para>
<screen> <screen>&prompt.root; <userinput>touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages</userinput>
&prompt.root; <userinput>touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages</userinput> &prompt.root; <userinput>chmod 0644 /var/log/*</userinput></screen>
&prompt.root; <userinput>chmod 0644 /var/log/*</userinput>
</screen>
</sect2> </sect2>
<sect2> <sect2>
@ -437,12 +413,12 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
<para>Чтобы можно было войти в каталог с портами и успешно выполнить <para>Чтобы можно было войти в каталог с портами и успешно выполнить
команду <command>make</command> <maketarget>install</maketarget>, команду <command>make</command> <maketarget>install</maketarget>,
необходимо создать каталог для пакаджей в необходимо создать каталог для пакаджей в файловой системе, не
файловой системе, не располагающейся в памяти, где будут храниться располагающейся в памяти, где будут храниться пакаджи между
пакаджи между перезагрузками. Так как для установки пакаджа в любом перезагрузками. Так как для установки пакаджа в любом случае требуется
случае требуется монтирование ваших файловых систем для чтения и монтирование ваших файловых систем для чтения и записи, имеет смысл
записи, имеет смысл выделить область флэш-носителя также и для записи выделить область флэш-носителя также и для записи информации
информации о пакадже.</para> о пакадже.</para>
<para>Прежде всего создайте каталог с базой данных о пакаджах. Обычно <para>Прежде всего создайте каталог с базой данных о пакаджах. Обычно
это каталог <filename>/var/db/pkg</filename>, но мы не можем разместить это каталог <filename>/var/db/pkg</filename>, но мы не можем разместить
@ -455,13 +431,11 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
строку, которая связывает каталог <filename>/etc/pkg</filename> с строку, которая связывает каталог <filename>/etc/pkg</filename> с
<filename>/var/db/pkg</filename>. Например:</para> <filename>/var/db/pkg</filename>. Например:</para>
<screen> <screen>&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput></screen>
&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput>
</screen>
<para>Теперь каждый раз при монтировании ваших файловых систем для чтения <para>Теперь каждый раз при монтировании ваших файловых систем для чтения
и записи и установки пакаджа, команда <command>make</command> <maketarget>install</maketarget> и записи и установки пакаджа, команда <command>make</command>
будет работать, а информация о пакадже <maketarget>install</maketarget> будет работать, а информация о пакадже
будет успешно записана в каталог <filename>/etc/pkg</filename> (так как будет успешно записана в каталог <filename>/etc/pkg</filename> (так как
файловая система будет в это время смонтирована для чтения и записи), файловая система будет в это время смонтирована для чтения и записи),
который всегда будет доступным операционной системе как который всегда будет доступным операционной системе как
@ -483,16 +457,16 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
<para>Далее в статье подразумевается, <para>Далее в статье подразумевается,
что Apache сохраняет свои лог файлы в каталог <filename что Apache сохраняет свои лог файлы в каталог <filename
class="directory"><replaceable>apache_log_dir</replaceable></filename> class="directory"><replaceable>apache_log_dir</replaceable></filename>
вне каталога <filename class="directory">/var</filename>. вне каталога <filename class="directory">/var</filename>. Когда этот
Когда этот каталог расположен на файловой системе, смонтированной каталог расположен на файловой системе, смонтированной в режиме только
в режиме только для чтения, Apache не сможет сохранять лог файлы, что для чтения, Apache не сможет сохранять лог файлы, что в свою очередь
в свою очередь может вызывать проблемы в работе веб-сервера. В таком случае необходимо может вызывать проблемы в работе веб-сервера. В таком случае
добавить новый каталог к списку каталогов из необходимо добавить новый каталог к списку каталогов из
<filename>/etc/rc.d/var</filename> для их создания в каталоге <filename>/etc/rc.d/var</filename> для их создания в каталоге
<filename>/var</filename> и связать <filename>/var</filename> и связать
<filename class="directory"><replaceable>apache_log_dir</replaceable></filename> с <filename class="directory"><replaceable>apache_log_dir</replaceable></filename>
<filename>/var/log/apache</filename>. Нужно также задать права доступа с <filename>/var/log/apache</filename>. Нужно также задать права
и владельца нового каталога.</para> доступа и владельца нового каталога.</para>
<para>Сначала добавьте каталог <literal>log/apache</literal> к списку <para>Сначала добавьте каталог <literal>log/apache</literal> к списку
каталогов, создаваемых скриптом каталогов, создаваемых скриптом
@ -501,19 +475,15 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
<para>Затем добавьте в скрипт <filename>/etc/rc.d/var</filename> <para>Затем добавьте в скрипт <filename>/etc/rc.d/var</filename>
после секции создания каталогов такие команды:</para> после секции создания каталогов такие команды:</para>
<screen> <screen>&prompt.root; <userinput>chmod 0774 /var/log/apache</userinput>
&prompt.root; <userinput>chmod 0774 /var/log/apache</userinput> &prompt.root; <userinput>chown nobody:nobody /var/log/apache</userinput></screen>
&prompt.root; <userinput>chown nobody:nobody /var/log/apache</userinput>
</screen>
<para>И наконец, удалите существующий каталог <para>И наконец, удалите существующий каталог
<filename class="directory"><replaceable>apache_install</replaceable>/logs</filename> и <filename class="directory"><replaceable>apache_install</replaceable>/logs</filename>
замените его ссылкой:</para> и замените его ссылкой:</para>
<screen> <screen>&prompt.root; <userinput>rm -rf <filename class="directory"><replaceable>apache_log_dir</replaceable></filename></userinput>
&prompt.root; <userinput>rm -rf <filename class="directory"><replaceable>apache_log_dir</replaceable></filename></userinput> &prompt.root; <userinput>ln -s <filename class="directory"><replaceable>apache_log_dir</replaceable></filename></userinput></screen>
&prompt.root; <userinput>ln -s <filename class="directory"><replaceable>apache_log_dir</replaceable></filename></userinput>
</screen>
</sect2> </sect2>
</sect1> </sect1>
</article> </article>