- MFen: solid-state/article.sgml 1.13 --> 1.18
- fix a few typos PR: docs/145361 Approved by: maxim (mentor), marck (mentor)
This commit is contained in:
parent
100a0f21e3
commit
fecf40468e
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=35994
1 changed files with 95 additions and 274 deletions
|
@ -33,7 +33,7 @@
|
||||||
$FreeBSD$
|
$FreeBSD$
|
||||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/solid-state/article.sgml,v 1.7 2006/03/28 16:20:06 gad Exp $
|
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/solid-state/article.sgml,v 1.7 2006/03/28 16:20:06 gad Exp $
|
||||||
|
|
||||||
Original revision: 1.13
|
Original revision: 1.18
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
||||||
|
@ -61,12 +61,12 @@
|
||||||
|
|
||||||
<copyright>
|
<copyright>
|
||||||
<year>2001</year>
|
<year>2001</year>
|
||||||
|
<year>2009</year>
|
||||||
<holder>The FreeBSD Documentation Project</holder>
|
<holder>The FreeBSD Documentation Project</holder>
|
||||||
</copyright>
|
</copyright>
|
||||||
|
|
||||||
<legalnotice id="trademarks" role="trademarks">
|
<legalnotice id="trademarks" role="trademarks">
|
||||||
&tm-attrib.freebsd;
|
&tm-attrib.freebsd;
|
||||||
&tm-attrib.m-systems;
|
|
||||||
&tm-attrib.general;
|
&tm-attrib.general;
|
||||||
</legalnotice>
|
</legalnotice>
|
||||||
|
|
||||||
|
@ -74,22 +74,22 @@
|
||||||
|
|
||||||
<abstract>
|
<abstract>
|
||||||
<para>В этой статье описывается использование твердотельных дисковых
|
<para>В этой статье описывается использование твердотельных дисковых
|
||||||
устройств для создания встраиваемых систем на основе FreeBSD.</para>
|
устройств для создания встраиваемых систем на основе &os;</para>
|
||||||
|
|
||||||
<para>Встраиваемые системы имеют преимущество в повышенной надежности
|
<para>Встраиваемые системы имеют преимущество в повышенной надежности
|
||||||
по причине отсутствия в них движущихся частей (жестких дисков). Однако
|
по причине отсутствия в них движущихся частей (жестких дисков). Однако,
|
||||||
следует принять во внимание, что системе, как правило, доступно очень
|
следует принять во внимание, что системе, как правило, доступно очень
|
||||||
малое дисковое пространство и ограниченный объем запоминающего
|
малое дисковое пространство и ограниченный объем запоминающего
|
||||||
устройства.</para>
|
устройства.</para>
|
||||||
|
|
||||||
<para>К отдельно рассматриваемым вопросам относятся типы и характеристики
|
<para>К отдельно рассматриваемым вопросам относятся типы и характеристики
|
||||||
твердотельных носителей, подходящих для использования в качестве дисков
|
твердотельных носителей, подходящих для использования в качестве дисков
|
||||||
во FreeBSD, параметры ядра, которые представляют интерес в таких
|
во &os;, параметры ядра, которые представляют интерес в таких
|
||||||
условиях, механизмы <filename>rc.diskless</filename>, автоматизирующие
|
условиях, механизмы <filename>rc.initdiskless</filename>, автоматизирующие
|
||||||
инициализацию таких систем и удовлетворяющие требованиям файловых
|
инициализацию таких систем и удовлетворяющие требованиям файловых
|
||||||
систем, доступных только для чтения, а также построение файловых систем
|
систем, доступных только для чтения, а также построение файловых систем
|
||||||
с нуля. Статья заканчивается описанием некоторых общих стратегий для
|
с нуля. Статья заканчивается описанием некоторых общих стратегий для
|
||||||
случаев малых систем FreeBSD и работ в режиме только для чтения.</para>
|
случаев малых систем &os; и работ в режиме только для чтения.</para>
|
||||||
</abstract>
|
</abstract>
|
||||||
</articleinfo>
|
</articleinfo>
|
||||||
|
|
||||||
|
@ -118,23 +118,13 @@
|
||||||
могут зависеть от температуры рабочей среды.</para>
|
могут зависеть от температуры рабочей среды.</para>
|
||||||
|
|
||||||
<para>В частности, мы обсудим компактные модули флэш-памяти, совместимые со
|
<para>В частности, мы обсудим компактные модули флэш-памяти, совместимые со
|
||||||
стандартом ATA и модули флэш-памяти &diskonchip; компании M-Systems.
|
стандартом ATA, которые стали весьма популярными в качестве
|
||||||
Совместимые с ATA компактные флэш-карты весьма популярны в качестве
|
|
||||||
носителя данных для цифровых камер. Особый интерес представляет тот
|
носителя данных для цифровых камер. Особый интерес представляет тот
|
||||||
факт, что они соответствуют шине IDE по контактам и совместимы с набором
|
факт, что они соответствуют шине IDE по контактам и совместимы с набором
|
||||||
команд ATA. Таким образом, при помощи очень простого и дешевого адаптера
|
команд ATA. Таким образом, при помощи очень простого и дешевого адаптера
|
||||||
такие устройства могут подключаться непосредственно к шине IDE
|
такие устройства могут подключаться непосредственно к шине IDE
|
||||||
компьютера. Если поступить таки образом, то такие операционные системы,
|
компьютера. Если поступить таким образом, то такие операционные системы,
|
||||||
как FreeBSD, распознают диск как обычный винчестер (весьма маленький).
|
как &os;, распознают диск как обычный винчестер (весьма маленький).</para>
|
||||||
Продукт M-Systems &diskonchip; основан на той же самой технологии
|
|
||||||
флэш-памяти, как и совместимые с ATA компактные флэш-карты, но отличаются
|
|
||||||
форм-фактором DIP и не совместимы с ATA. Для использования такого
|
|
||||||
устройства, вы не только должны установить его на материнскую плату с
|
|
||||||
разъемом &diskonchip;, но также встроить драйвер `fla` во все ядра
|
|
||||||
FreeBSD, с которыми хотите его использовать. Более того, в загрузочном
|
|
||||||
секторе этого устройства находится критичные данные, так что бы не должны
|
|
||||||
устанавливать загрузчик FreeBSD (и вообще какой-либо другой загрузчик)
|
|
||||||
при его использовании.</para>
|
|
||||||
|
|
||||||
<para>Существуют и другие решения для твердотельных дисков, но их
|
<para>Существуют и другие решения для твердотельных дисков, но их
|
||||||
стоимость, безвестность и сравнительная сложность использования выводят
|
стоимость, безвестность и сравнительная сложность использования выводят
|
||||||
|
@ -144,10 +134,10 @@
|
||||||
<sect1 id="kernel">
|
<sect1 id="kernel">
|
||||||
<title>Параметры ядра</title>
|
<title>Параметры ядра</title>
|
||||||
|
|
||||||
<para>Для тех. кто создает встраиваемую систему FreeBSD, интерес
|
<para>Для тех, кто создает встраиваемую систему &os;, интерес
|
||||||
представляют несколько параметров ядра.</para>
|
представляют несколько параметров ядра.</para>
|
||||||
|
|
||||||
<para>Во-первых, все встраиваемые системы FreeBSD, которые используют
|
<para>Все встраиваемые системы &os;, которые используют
|
||||||
флэш-память в качестве системного диска, заинтересованы в использовании
|
флэш-память в качестве системного диска, заинтересованы в использовании
|
||||||
дисков в памяти и файловых систем в памяти. Из-за ограниченного
|
дисков в памяти и файловых систем в памяти. Из-за ограниченного
|
||||||
количества циклов записи, которые можно выполнить с флэш-памятью, диск
|
количества циклов записи, которые можно выполнить с флэш-памятью, диск
|
||||||
|
@ -156,7 +146,7 @@
|
||||||
<filename>/tmp</filename> и <filename>/var</filename> монтируются как
|
<filename>/tmp</filename> и <filename>/var</filename> монтируются как
|
||||||
файловые системы в памяти для того, чтобы позволить системе создать
|
файловые системы в памяти для того, чтобы позволить системе создать
|
||||||
журналы и обновить счетчики и временные файлы. Файловые системы в памяти
|
журналы и обновить счетчики и временные файлы. Файловые системы в памяти
|
||||||
являются критическим компонентом успешной работы FreeBSD на твердотельных
|
являются критическим компонентом успешной работы &os; на твердотельных
|
||||||
устройствах.</para>
|
устройствах.</para>
|
||||||
|
|
||||||
<para>Вы должны удостовериться, что в конфигурационном файле вашего ядра
|
<para>Вы должны удостовериться, что в конфигурационном файле вашего ядра
|
||||||
|
@ -167,71 +157,43 @@ 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>
|
||||||
|
|
||||||
<para>Во-вторых, если вы будете использовать продукт M-Systems
|
|
||||||
&diskonchip;, вы должны также включить такую строку:</para>
|
|
||||||
|
|
||||||
<programlisting>device fla0 at isa?</programlisting>
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="ro-fs">
|
<sect1 id="ro-fs">
|
||||||
<title><filename>rc.diskless</filename> файловые системы в режиме только
|
<title>Подсистема <literal>rc</literal> и файловые системы в режиме только
|
||||||
чтения</title>
|
чтения</title>
|
||||||
|
|
||||||
<para>Инициализация встраиваемой системы FreeBSD после загрузки управляется
|
<para>Инициализация встраиваемой системы &os; после загрузки управляется
|
||||||
<filename>/etc/rc.diskless2</filename>
|
<filename>/etc/rc.initdiskless</filename>.</para>
|
||||||
(<filename>/etc/rc.diskless1</filename> для бездисковой загрузки
|
|
||||||
посредством BOOTP). Этот начальный скрипт вызывается, если поместить
|
|
||||||
в файл <filename>/etc/rc.conf</filename> такую строку:</para>
|
|
||||||
|
|
||||||
<programlisting>diskless_mount=/etc/rc.diskless2</programlisting>
|
<para><filename>/etc/rc.d/var</filename> монтирует
|
||||||
|
|
||||||
<para><filename>rc.diskless2</filename> монтирует
|
|
||||||
<filename>/var</filename> как файловую систему в памяти, создает
|
<filename>/var</filename> как файловую систему в памяти, создает
|
||||||
указываемый список каталогов в <filename>/var</filename> при помощи
|
указываемый список каталогов в <filename>/var</filename> при помощи
|
||||||
команды &man.mkdir.1;, изменяет режимы доступа на некоторые из этих
|
команды &man.mkdir.1;, изменяет режимы доступа на некоторые из этих
|
||||||
каталогов и помещает целый набор файлов устройств копированием на
|
каталогов. В процессе выполнения
|
||||||
доступный для записи (опять же, это файловая система в памяти) раздел
|
<filename>/etc/rc.d/var</filename> задействуется еще одна переменная
|
||||||
<filename>/dev</filename>. В процессе выполнения
|
<filename>rc.conf</filename> – <literal>varsize</literal>. Скрипт
|
||||||
<filename>/etc/rc.diskless2</filename>, задействуется еще одна переменная
|
<filename>/etc/rc.d/var</filename> создает раздел
|
||||||
<filename>rc.conf</filename> - <literal>varsize</literal>. Скрипт
|
|
||||||
<filename>/etc/rc.diskless2</filename> создает раздел
|
|
||||||
<filename>/var</filename> на основе значения этой переменной из
|
<filename>/var</filename> на основе значения этой переменной из
|
||||||
<filename>rc.conf</filename>:</para>
|
<filename>rc.conf</filename>:</para>
|
||||||
|
|
||||||
<programlisting>varsize=8192</programlisting>
|
<programlisting>varsize=8192</programlisting>
|
||||||
|
|
||||||
<para>Запомните, что это значение указано в секторах. Создание раздела
|
<para>Запомните, что по умолчанию это значение указано в секторах.</para>
|
||||||
<filename>/dev</filename> при помощи
|
|
||||||
<filename>/etc/rc.diskless2</filename>, однако, ограничено
|
|
||||||
предопределенным значением в 4096 секторов. Легко изменить это значение
|
|
||||||
непосредственно в файле <filename>/etc/rc.diskless2</filename>, хотя
|
|
||||||
для каталога <filename>/dev</filename> вряд ли вам понадобится больше
|
|
||||||
дискового пространства.</para>
|
|
||||||
|
|
||||||
<para>Важно помнить, что скрипт <filename>/etc/rc.diskless2</filename>
|
<para>Факт использования файловой системы <filename>/var</filename>
|
||||||
предполагает, что вы уже удалили ваш обычный раздел
|
в режиме чтения и записи является
|
||||||
<filename>/tmp</filename> и заменили его символической ссылкой на
|
|
||||||
<filename>/var/tmp</filename>. Так как <filename>tmp</filename> является
|
|
||||||
одним из каталогов, создаваемых в <filename>/var</filename> скриптом
|
|
||||||
<filename>/etc/rc.diskless2</filename> и <filename>/var</filename>
|
|
||||||
является файловой системой в памяти (которая монтируется с правами чтения
|
|
||||||
и записи), то <filename>/tmp</filename> будет каталогом, также доступным
|
|
||||||
для чтения и записи.</para>
|
|
||||||
|
|
||||||
<para>Тот факт, что <filename>/var</filename> и <filename>/dev</filename>
|
|
||||||
являются файловыми системами, доступными для чтения и записи, является
|
|
||||||
важным признаком, так как раздел <filename>/</filename> (и любые другие
|
важным признаком, так как раздел <filename>/</filename> (и любые другие
|
||||||
разделы, которые могут находиться на флэш-носителе) должен монтироваться
|
разделы, которые могут находиться на флэш-носителе) должен монтироваться
|
||||||
в режиме только для чтения. Вспомните, что <xref linkend="intro"> мы
|
в режиме только для чтения. Вспомните, что в <xref linkend="intro"> мы
|
||||||
касались ограничений флэш-памяти - особенно ограничений, касающихся
|
касались ограничений флэш-памяти - особенно ограничений, касающихся
|
||||||
возможностей записи. Важно не монтировать файловые системы на
|
возможностей записи. Важно не монтировать файловые системы на
|
||||||
флэш-носителях в режимах чтения и записи, и важность отказа от файла
|
флэш-носителях в режимах чтения и записи, и важность отказа от файла
|
||||||
подкачки не может быть переоценена. Файл подкачки на загруженной системе
|
подкачки не может быть переоценена. Файл подкачки на загруженной системе
|
||||||
может пережечь кусок флэш-носителя менее чем за год. Частое
|
может пережечь кусок флэш-носителя менее чем за год. Частое
|
||||||
журналирование и создание временных файлов приводят к тому же результату.
|
журналирование и создание временных файлов приводят к тому же результату.
|
||||||
Поэтому, кроме удаления записей <literal>swap</literal> и
|
Поэтому, кроме удаления записи <literal>swap</literal>
|
||||||
<literal>/proc</literal> из вашего файла <filename>/etc/fstab</filename>,
|
из вашего файла <filename>/etc/fstab</filename>,
|
||||||
вы должны также изменить поле параметров каждой файловой системы на
|
вы должны также изменить поле параметров каждой файловой системы на
|
||||||
<literal>ro</literal> таким образом:</para>
|
<literal>ro</literal> таким образом:</para>
|
||||||
|
|
||||||
|
@ -241,15 +203,13 @@ pseudo-device md # memory disk
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>В результате этих изменений в среднестатистической системе несколько
|
<para>В результате этих изменений в среднестатистической системе несколько
|
||||||
приложений немедленно перестанут работать. Например, порты не будут
|
приложений немедленно перестанут работать. Например, cron не будет нормально
|
||||||
устанавливаться из дерева портов из-за отсутствия файла
|
|
||||||
<filename>/var/db/port.mkversion</filename>, cron не будет нормально
|
|
||||||
запускаться в результате отсутствия таблиц для него в каталоге
|
запускаться в результате отсутствия таблиц для него в каталоге
|
||||||
<filename>/var</filename>, созданном
|
<filename>/var</filename>, созданном
|
||||||
<filename>/etc/rc.diskless2</filename>, а syslog и dhcp будут испытывать
|
<filename>/etc/rc.d/var</filename>, а syslog и dhcp будут испытывать
|
||||||
проблемы из-за доступа файловой системы только для чтения, а также
|
проблемы из-за доступа файловой системы только для чтения, а также
|
||||||
отсутствия записей в <filename>/var</filename>, который был создан
|
отсутствия записей в <filename>/var</filename>, который был создан
|
||||||
скриптом <filename>/etc/rc.diskless2</filename>. Хотя эти проблемы
|
скриптом <filename>/etc/rc.d/var</filename>. Хотя эти проблемы
|
||||||
являются временными и обсуждаются вместе с решением проблем с запуском
|
являются временными и обсуждаются вместе с решением проблем с запуском
|
||||||
распространенных программных пакетов, в <xref
|
распространенных программных пакетов, в <xref
|
||||||
linkend="strategies">.</para>
|
linkend="strategies">.</para>
|
||||||
|
@ -275,14 +235,11 @@ pseudo-device md # memory disk
|
||||||
<title>Создание файловой системы с нуля</title>
|
<title>Создание файловой системы с нуля</title>
|
||||||
|
|
||||||
<para>Так как совместимые с ATA компактные флэш-карты распознаются во
|
<para>Так как совместимые с ATA компактные флэш-карты распознаются во
|
||||||
FreeBSD как обычные жесткие диски IDE, как это происходит с продуктом
|
&os; как обычные жесткие диски IDE,
|
||||||
M-Systems &diskonchip; (когда вы запускаете ядро с встроенным драйвером
|
то теоретически вы можете установить &os; по сети при помощи
|
||||||
fla), то теоретически вы можете установить FreeBSD по сети при помощи
|
дискет kern и mfsroot или с компакт-диска.</para>
|
||||||
дискет kern и mfsroot или с компакт-диска. Кроме того, что вам не нужно
|
|
||||||
записывать какой бы то ни было начальный загрузчик на устройство
|
|
||||||
M-Systems, никаких дополнительных инструкций не требуется.</para>
|
|
||||||
|
|
||||||
<para>Однако даже маленькая установка FreeBSD при помощи обычных процедур
|
<para>Однако даже маленькая установка &os; при помощи обычных процедур
|
||||||
установки может привести к созданию системы размером, превышающим 200
|
установки может привести к созданию системы размером, превышающим 200
|
||||||
мегабайт. Так как большинство людей используют устройства флэш-памяти
|
мегабайт. Так как большинство людей используют устройства флэш-памяти
|
||||||
меньшего размера (128 мегабайт считается весьма большим - 32 или даже 16
|
меньшего размера (128 мегабайт считается весьма большим - 32 или даже 16
|
||||||
|
@ -291,7 +248,7 @@ pseudo-device md # memory disk
|
||||||
установки.</para>
|
установки.</para>
|
||||||
|
|
||||||
<para>Самым простым способом обойти это ограничение на объем является
|
<para>Самым простым способом обойти это ограничение на объем является
|
||||||
установка FreeBSD обычным образом на обычный жесткий диск. После
|
установка &os; обычным образом на обычный жесткий диск. После
|
||||||
окончания установки, обрежьте операционную систему до размера, который
|
окончания установки, обрежьте операционную систему до размера, который
|
||||||
помещается на ваш флэш-носитель, а затем полностью заархивируйте файловую
|
помещается на ваш флэш-носитель, а затем полностью заархивируйте файловую
|
||||||
систему. Следующие шаги поведут вас через процесс подготовки части
|
систему. Следующие шаги поведут вас через процесс подготовки части
|
||||||
|
@ -299,11 +256,7 @@ pseudo-device md # memory disk
|
||||||
из-за того, что обычная установка не выполнялась, такие операции, как
|
из-за того, что обычная установка не выполнялась, такие операции, как
|
||||||
разбиение на разделы, разметка, создание файловой системы и так далее
|
разбиение на разделы, разметка, создание файловой системы и так далее
|
||||||
должны быть выполнены вручную. Кроме дискет kern и mfsroot вам также
|
должны быть выполнены вручную. Кроме дискет kern и mfsroot вам также
|
||||||
нужно воспользоваться дискетой fixit. Если вы используете M-Systems
|
нужно воспользоваться дискетой fixit.</para>
|
||||||
&diskonchip;, то ядро с дискеты kern должно иметь вкомпилированный
|
|
||||||
параметр <literal>fla</literal>, описываемый в <xref linkend="kernel">.
|
|
||||||
Пожалуйста, обратитесь к <xref linkend="kern.flp"> для получения указаний
|
|
||||||
по созданию нового ядра для <filename>kern.flp</filename>.</para>
|
|
||||||
|
|
||||||
<procedure>
|
<procedure>
|
||||||
<step>
|
<step>
|
||||||
|
@ -319,9 +272,7 @@ pseudo-device md # memory disk
|
||||||
опрошены на предмет типа раздела, удостоверьтесь, что значение типа
|
опрошены на предмет типа раздела, удостоверьтесь, что значение типа
|
||||||
равно <literal>165</literal>. Теперь запишите эту таблицу разделов
|
равно <literal>165</literal>. Теперь запишите эту таблицу разделов
|
||||||
на диск, нажав клавишу <keycap>w</keycap> (на этом экране эта опция
|
на диск, нажав клавишу <keycap>w</keycap> (на этом экране эта опция
|
||||||
скрыта). Находясь в меню выбора менеджера загрузки, обратите
|
скрыта). Если вы используете компактную флэш-карту,
|
||||||
внимание на выбор <literal>None</literal>, если вы используете
|
|
||||||
M-Systems &diskonchip;. Если вы используете компактную флэш-карту,
|
|
||||||
совместимую с ATA, вы должны выбрать FreeBSD Boot Manager. Теперь
|
совместимую с ATA, вы должны выбрать FreeBSD Boot Manager. Теперь
|
||||||
нажмите клавишу <keycap>q</keycap> для выхода из меню работы с
|
нажмите клавишу <keycap>q</keycap> для выхода из меню работы с
|
||||||
разделами. Должно быть выдано еще раз меню для выбора менеджера
|
разделами. Должно быть выдано еще раз меню для выбора менеджера
|
||||||
|
@ -333,38 +284,13 @@ pseudo-device md # memory disk
|
||||||
|
|
||||||
<para>Выйдите из меню установки custom, и из главного меню установки
|
<para>Выйдите из меню установки custom, и из главного меню установки
|
||||||
выберите пункт <literal>fixit</literal>. После входа в режим работы
|
выберите пункт <literal>fixit</literal>. После входа в режим работы
|
||||||
fixit, введите следующие команды:</para>
|
fixit, введите следующую команду:</para>
|
||||||
|
|
||||||
<informaltable frame="none" pgwide="1">
|
<screen>&prompt.root; <userinput>disklabel -e /dev/ad0c</userinput></screen>
|
||||||
<tgroup cols="2">
|
|
||||||
<thead>
|
|
||||||
<row>
|
|
||||||
<entry align="center">Совместимые с ATA</entry>
|
|
||||||
|
|
||||||
<entry align="center">&diskonchip;</entry>
|
|
||||||
</row>
|
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody>
|
|
||||||
<row>
|
|
||||||
<entry><para><screen>&prompt.root; <userinput>mknod /dev/ad0a c 116 0</userinput>
|
|
||||||
&prompt.root; <userinput>mknod /dev/ad0c c 116 2</userinput>
|
|
||||||
&prompt.root; <userinput>disklabel -e /dev/ad0c</userinput></screen></para></entry>
|
|
||||||
|
|
||||||
<entry><para><screen>&prompt.root; <userinput>mknod /dev/fla0a c 102 2</userinput>
|
|
||||||
&prompt.root; <userinput>mknod /dev/fla0c c 102 2</userinput>
|
|
||||||
&prompt.root; <userinput>disklabel -e /dev/fla0c</userinput></screen></para></entry>
|
|
||||||
</row>
|
|
||||||
</tbody>
|
|
||||||
</tgroup>
|
|
||||||
</informaltable>
|
|
||||||
|
|
||||||
<para>В этот момент вы войдете в редактор vi из-под команды disklabel.
|
<para>В этот момент вы войдете в редактор vi из-под команды disklabel.
|
||||||
Если вы используете &diskonchip;, то первым шагом будет изменение
|
Затем, вам нужно добавить строку <literal>a:</literal> в конце файла.
|
||||||
значения типа около начала файла с <literal>ESDI</literal> на
|
Эта
|
||||||
<literal>DOC2K</literal>. Затем, вне зависимости от того,
|
|
||||||
используете ли вы &diskonchip; или совместимый с ATA компактный
|
|
||||||
флэш-носитель, вам нужно добавить строку <literal>a:</literal> в конце файла. Эта
|
|
||||||
строка <literal>a:</literal> должна выглядеть примерно так:</para>
|
строка <literal>a:</literal> должна выглядеть примерно так:</para>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
|
@ -378,27 +304,8 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
не забывая определить fstype как <literal>4.2BSD</literal>.
|
не забывая определить fstype как <literal>4.2BSD</literal>.
|
||||||
Сохраните файл и завершите редактирование.</para>
|
Сохраните файл и завершите редактирование.</para>
|
||||||
|
|
||||||
<informaltable frame="none" pgwide="1">
|
<screen>&prompt.root; <userinput>disklabel -B -r /dev/ad0c</userinput>
|
||||||
<tgroup cols="2">
|
&prompt.root; <userinput>newfs /dev/ad0a</userinput></screen>
|
||||||
<thead>
|
|
||||||
<row>
|
|
||||||
<entry align="center">Совместимые с ATA</entry>
|
|
||||||
|
|
||||||
<entry align="center">&diskonchip;</entry>
|
|
||||||
</row>
|
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody>
|
|
||||||
<row>
|
|
||||||
<entry><para><screen>&prompt.root; <userinput>disklabel -B -r /dev/ad0c</userinput>
|
|
||||||
&prompt.root; <userinput>newfs /dev/ad0a</userinput></screen></para></entry>
|
|
||||||
|
|
||||||
<entry><para><screen>&prompt.root; <userinput>disklabel -B -r /dev/fla0c</userinput>
|
|
||||||
&prompt.root; <userinput>newfs /dev/fla0a</userinput></screen></para></entry>
|
|
||||||
</row>
|
|
||||||
</tbody>
|
|
||||||
</tgroup>
|
|
||||||
</informaltable>
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step>
|
<step>
|
||||||
|
@ -406,24 +313,7 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
|
|
||||||
<para>Смонтируйте только что подготовленный флэш-носитель:</para>
|
<para>Смонтируйте только что подготовленный флэш-носитель:</para>
|
||||||
|
|
||||||
<informaltable frame="none" pgwide="1">
|
<screen>&prompt.root; <userinput>mount /dev/ad0a /flash</userinput></screen>
|
||||||
<tgroup cols="2">
|
|
||||||
<thead>
|
|
||||||
<row>
|
|
||||||
<entry align="center">Совместимые с ATA</entry>
|
|
||||||
|
|
||||||
<entry align="center">&diskonchip;</entry>
|
|
||||||
</row>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<row>
|
|
||||||
<entry><para><screen>&prompt.root; <userinput>mount /dev/ad0a /flash</userinput></screen></para></entry>
|
|
||||||
|
|
||||||
<entry><para><screen>&prompt.root; <userinput>mount /dev/fla0a /flash</userinput></screen></para></entry>
|
|
||||||
</row>
|
|
||||||
</tbody>
|
|
||||||
</tgroup>
|
|
||||||
</informaltable>
|
|
||||||
|
|
||||||
<para>Подключите эту машину к сети, чтобы можно было перенести наш
|
<para>Подключите эту машину к сети, чтобы можно было перенести наш
|
||||||
tar-файл и распаковать его в файловую систему на флэш-носителе. Вот
|
tar-файл и распаковать его в файловую систему на флэш-носителе. Вот
|
||||||
|
@ -467,114 +357,52 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
|
|
||||||
<para>Полагая, что вы правильно настроили вашу файловую систему при
|
<para>Полагая, что вы правильно настроили вашу файловую систему при
|
||||||
ее построении на обычном диске (с вашей файловой системой,
|
ее построении на обычном диске (с вашей файловой системой,
|
||||||
смонтированной в режиме доступа только для чтения и необходимыми
|
смонтированной в режиме доступа только для чтения, и необходимыми
|
||||||
параметрами, присутствующими в ядре) вы должны успешно загрузить вашу
|
параметрами, присутствующими в ядре) вы должны успешно загрузить вашу
|
||||||
встраиваемую систему на основе FreeBSD.</para>
|
встраиваемую систему на основе &os;.</para>
|
||||||
</step>
|
</step>
|
||||||
</procedure>
|
</procedure>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="kern.flp">
|
|
||||||
<title>Построение установочной дискеты <filename>kern.flp</filename> с
|
|
||||||
драйвером fla</title>
|
|
||||||
|
|
||||||
<note>
|
|
||||||
<para>Этот раздел статьи предназначен только тем, кто использует
|
|
||||||
флэш-носители M-Systems &diskonchip;.</para>
|
|
||||||
</note>
|
|
||||||
|
|
||||||
<para>Возможно, что на загрузочная дискете <filename>kern.flp</filename>
|
|
||||||
нет ядра со встроенным драйвером <devicename>fla</devicename>, который
|
|
||||||
необходим для работы системы с &diskonchip;. Если вы загрузились с
|
|
||||||
установочных дискет и оказалось, что диски не были обнаружены, то,
|
|
||||||
вероятно, в вашем ядре отсутствует драйвер
|
|
||||||
<devicename>fla</devicename>.</para>
|
|
||||||
|
|
||||||
<para>После построения вами ядра с поддержкой <devicename>fla</devicename>,
|
|
||||||
которое имеет объем, меньший, чем 1.4 мегабайт, вы можете создать
|
|
||||||
собственный образ дискеты <filename>kern.flp</filename> с этим ядром
|
|
||||||
с помощью следующей последовательности действий:</para>
|
|
||||||
|
|
||||||
<procedure>
|
|
||||||
<step>
|
|
||||||
<para>Возьмите существующий файл образа kern.flp</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<para>
|
|
||||||
<screen>
|
|
||||||
&prompt.root; <userinput>vnconfig vn0c kern.flp</userinput>
|
|
||||||
</screen>
|
|
||||||
</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<para>
|
|
||||||
<screen>
|
|
||||||
&prompt.root; <userinput>mount /dev/vn0c /mnt</userinput>
|
|
||||||
</screen>
|
|
||||||
</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<para>Перепишите ваш файл ядра в каталог <filename>/mnt</filename>,
|
|
||||||
заместив при этом уже находящееся там ядро</para>
|
|
||||||
</step>
|
|
||||||
|
|
||||||
<step>
|
|
||||||
<para>
|
|
||||||
<screen>
|
|
||||||
&prompt.root; <userinput>vnconfig -d vn0c</userinput>
|
|
||||||
</screen>
|
|
||||||
</para>
|
|
||||||
</step>
|
|
||||||
</procedure>
|
|
||||||
|
|
||||||
<para>Теперь в вашем файле <filename>kern.flp</filename> находится новое
|
|
||||||
ядро.</para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 id="strategies">
|
<sect1 id="strategies">
|
||||||
<title>Стратегии работы с системой для случаев небольших и доступных
|
<title>Стратегии работы с системой для случаев небольших и доступных
|
||||||
только для чтения файловых систем</title>
|
только для чтения файловых систем</title>
|
||||||
|
|
||||||
<para>В <xref linkend="ro-fs"> было указано, что файловая система
|
<para>В <xref linkend="ro-fs"> было указано, что файловая система
|
||||||
<filename>/var</filename>, создаваемая скриптом
|
<filename>/var</filename>, создаваемая скриптом
|
||||||
<filename>/etc/rc.diskless2</filename> и наличие корневой файловой
|
<filename>/etc/rc.d/var</filename>, и наличие корневой файловой
|
||||||
системы, доступной только для чтения, приводят к проблемам при работе
|
системы, доступной только для чтения, приводят к проблемам при работе
|
||||||
многих распространенных программных пакетов, используемых во FreeBSD.
|
многих распространенных программных пакетов, используемых во &os;.
|
||||||
В этой статье будут даны рекомендации по настройке нормальной работы
|
В этой статье будут даны рекомендации по настройке нормальной работы
|
||||||
cron и syslog, установке портов и веб-сервера Apache.</para>
|
cron и syslog, установке портов и веб-сервера Apache.</para>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>cron</title>
|
<title>cron</title>
|
||||||
|
|
||||||
<para>В файле <filename>/etc/rc.diskless2</filename> имеется переменная
|
<para>Во время загрузки содержимое каталогa
|
||||||
<literal>var_dirs</literal>. Эта переменная задает список каталогов,
|
<filename class="directory">/var</filename> формируется скриптом
|
||||||
разделенных запятыми, которые будут созданы в каталоге
|
<filename>/etc/rc.d/var</filename> используя данные из
|
||||||
<filename>/var</filename> после его монтирования как файловой системы
|
<filename>/etc/mtree/BSD.var.dist</filename>, поэтому в нем создается
|
||||||
в памяти. <filename>cron</filename> и <filename>cron/tabs</filename>
|
несколько стандартных каталогов, в числе которых —
|
||||||
в этот список не входят, а без этих каталогов cron нормально работать
|
<filename class="directory">cron</filename>,
|
||||||
не будет. Включив <literal>cron</literal>,
|
<filename class="directory">cron/tabs</filename>,
|
||||||
<literal>cron/tabs</literal> и, может быть, даже <literal>at</literal>
|
<filename class="directory">at</filename>.</para>
|
||||||
и <literal>at/jobs</literal> в качестве элементов этой переменной, вы
|
|
||||||
обеспечите работу даемонов &man.cron.8; и &man.at.1;.</para>
|
|
||||||
|
|
||||||
<para>Однако это все же не решит проблему с сохранением cron-таблиц
|
<para>Однако это не решает проблему с сохранением cron-таблиц
|
||||||
между перезагрузками. Когда система перезагружается, то файловая
|
между перезагрузками. Когда система перезагружается, то файловая
|
||||||
система <filename>/var</filename>, которая располагается в памяти,
|
система <filename>/var</filename>, которая располагается в памяти,
|
||||||
будет уничтожена, вместе со всеми cron-таблицами, которые вы могли там
|
будет уничтожена, вместе со всеми cron-таблицами, которые вы могли там
|
||||||
иметь. Поэтому одним из решений может стать создание cron-таблиц для
|
иметь. Поэтому одним из решений может стать создание cron-таблиц для
|
||||||
пользователей, которым они нужны, монтирование вашей файловой системы
|
пользователей, которым они нужны, монтирование вашей файловой системы
|
||||||
<filename>/</filename> в режиме чтения и записи и копирование этих
|
<filename>/</filename> в режиме чтения и записи, и копирование этих
|
||||||
cron-таблиц в безопасное место, например,
|
cron-таблиц в безопасное место, например,
|
||||||
<filename>/etc/tabs</filename> и последующее добавление строки в
|
в <filename>/etc/tabs</filename>, и последующее добавление строки в
|
||||||
конец скрипта <filename>/etc/rc.diskless2</filename> для копирования
|
конец скрипта <filename>/etc/rc.initdiskless</filename> для копирования
|
||||||
этих cron-таблиц в каталог <filename>/var/cron/tabs</filename> после
|
этих cron-таблиц в каталог <filename>/var/cron/tabs</filename> после
|
||||||
его создания во время инициализации системы. Вам может также
|
его создания во время инициализации системы. Вам может также
|
||||||
потребоваться добавить строку, которая изменяет режимы доступа и
|
потребоваться добавить строку, которая изменяет режимы доступа и
|
||||||
права на каталоги, которые вы создали и на файлы, которые вы
|
права на каталоги, которые вы создали, и на файлы, которые вы
|
||||||
скопировали в скрипте <filename>/etc/rc.diskless2</filename>.</para>
|
скопировали в скрипте <filename>/etc/rc.initdiskless</filename>.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
|
@ -583,8 +411,8 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
<para>В файле <filename>syslog.conf</filename> задано местоположение
|
<para>В файле <filename>syslog.conf</filename> задано местоположение
|
||||||
некоторых файлов протоколов, которые имеются в каталоге
|
некоторых файлов протоколов, которые имеются в каталоге
|
||||||
<filename>/var/log</filename>. Эти файлы не создаются скриптом
|
<filename>/var/log</filename>. Эти файлы не создаются скриптом
|
||||||
<filename>/etc/rc.diskless2</filename> во время инициализации системы
|
<filename>/etc/rc.d/var</filename> во время инициализации системы.
|
||||||
Поэтому где-нибудь в скрипте <filename>/etc/rc.diskless2</filename>,
|
Поэтому где-нибудь в скрипте <filename>/etc/rc.d/var</filename>,
|
||||||
после секции, создающей каталоги в <filename>/var</filename>, вам нужно
|
после секции, создающей каталоги в <filename>/var</filename>, вам нужно
|
||||||
добавить нечто вроде следующего:</para>
|
добавить нечто вроде следующего:</para>
|
||||||
|
|
||||||
|
@ -592,10 +420,6 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
&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>
|
&prompt.root; <userinput>chmod 0644 /var/log/*</userinput>
|
||||||
</screen>
|
</screen>
|
||||||
|
|
||||||
<para>Вам также потребуется добавить каталог с протоколами работы к
|
|
||||||
списку каталогов, создаваемых скриптом
|
|
||||||
<filename>/etc/rc.diskless2</filename>.</para>
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
|
@ -603,7 +427,7 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
|
|
||||||
<para>Перед тем, как обсудить изменения, которые нужно сделать для
|
<para>Перед тем, как обсудить изменения, которые нужно сделать для
|
||||||
успешного использования дерева портов, необходимо напомнить о том,
|
успешного использования дерева портов, необходимо напомнить о том,
|
||||||
что ваши файловые системе на флэш-носителях доступны только для чтения.
|
что ваши файловые системы на флэш-носителях доступны только для чтения.
|
||||||
Поэтому вам нужно временно монтировать их в режиме чтения и записи,
|
Поэтому вам нужно временно монтировать их в режиме чтения и записи,
|
||||||
используя параметры командной строки, как это показано в
|
используя параметры командной строки, как это показано в
|
||||||
<xref linkend="ro-fs">. Вы всегда должны перемонтировать эти файловые
|
<xref linkend="ro-fs">. Вы всегда должны перемонтировать эти файловые
|
||||||
|
@ -612,9 +436,8 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
срок эксплуатации.</para>
|
срок эксплуатации.</para>
|
||||||
|
|
||||||
<para>Чтобы можно было войти в каталог с портами и успешно выполнить
|
<para>Чтобы можно было войти в каталог с портами и успешно выполнить
|
||||||
команду <command>make install</command>, необходимо наличие файла
|
команду <command>make</command> <maketarget>install</maketarget>,
|
||||||
<filename>/var/db/port.mkversion</filename>, в котором записана
|
необходимо создать каталог для пакаджей в
|
||||||
правильная дата. Затем мы должны создать каталог для пакаджей в
|
|
||||||
файловой системе, не располагающейся в памяти, где будут храниться
|
файловой системе, не располагающейся в памяти, где будут храниться
|
||||||
пакаджи между перезагрузками. Так как для установки пакаджа в любом
|
пакаджи между перезагрузками. Так как для установки пакаджа в любом
|
||||||
случае требуется монтирование ваших файловых систем для чтения и
|
случае требуется монтирование ваших файловых систем для чтения и
|
||||||
|
@ -628,7 +451,7 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>mkdir /etc/pkg</userinput></screen>
|
<screen>&prompt.root; <userinput>mkdir /etc/pkg</userinput></screen>
|
||||||
|
|
||||||
<para>Теперь в скрипт <filename>/etc/rc.diskless2</filename> добавьте
|
<para>Теперь в скрипт <filename>/etc/rc.d/var</filename> добавьте
|
||||||
строку, которая связывает каталог <filename>/etc/pkg</filename> с
|
строку, которая связывает каталог <filename>/etc/pkg</filename> с
|
||||||
<filename>/var/db/pkg</filename>. Например:</para>
|
<filename>/var/db/pkg</filename>. Например:</para>
|
||||||
|
|
||||||
|
@ -636,25 +459,11 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput>
|
&prompt.root; <userinput>ln -s /etc/pkg /var/db/pkg</userinput>
|
||||||
</screen>
|
</screen>
|
||||||
|
|
||||||
<para>Добавьте в скрипт <filename>/etc/rc.diskless2</filename> еще одну
|
|
||||||
строку, которая создает и копирует
|
|
||||||
<filename>/var/db/port.mkversion</filename></para>
|
|
||||||
|
|
||||||
<screen>
|
|
||||||
&prompt.root; <userinput>touch /var/db/port.mkversion</userinput>
|
|
||||||
&prompt.root; <userinput>chmod 0644 /var/db/port.mkversion</userinput>
|
|
||||||
&prompt.root; <userinput>echo <replaceable>20010412</replaceable> >> /var/db/port.mkversion</userinput>
|
|
||||||
</screen>
|
|
||||||
|
|
||||||
<para>где <replaceable>20010412</replaceable> является датой,
|
|
||||||
соответствующей вашей версии FreeBSD.</para>
|
|
||||||
|
|
||||||
<para>Теперь каждый раз при монтировании ваших файловых систем для чтения
|
<para>Теперь каждый раз при монтировании ваших файловых систем для чтения
|
||||||
и записи и установки пакаджа, команда <command>make install</command>
|
и записи и установки пакаджа, команда <command>make</command> <maketarget>install</maketarget>
|
||||||
будет работать, потому что найдет подходящий файл
|
будет работать, а информация о пакадже
|
||||||
<filename>/var/db/port.mkversion</filename>, а информация о пакадже
|
|
||||||
будет успешно записана в каталог <filename>/etc/pkg</filename> (так как
|
будет успешно записана в каталог <filename>/etc/pkg</filename> (так как
|
||||||
файловая система будут в это время смонтирована для чтения и записи),
|
файловая система будет в это время смонтирована для чтения и записи),
|
||||||
который всегда будет доступным операционной системе как
|
который всегда будет доступным операционной системе как
|
||||||
<filename>/var/db/pkg</filename>.</para>
|
<filename>/var/db/pkg</filename>.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
@ -662,22 +471,34 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Веб-сервер Apache</title>
|
<title>Веб-сервер Apache</title>
|
||||||
|
|
||||||
<para>Apache хранит pid-файлы и протоколы в каталоге
|
<note>
|
||||||
<filename><replaceable>apache_install</replaceable>/logs</filename>.
|
<para>Шаги, описанные в этой части статьи, необходимо выполнить лишь
|
||||||
Так как этот каталог, без сомнения, располагается на файловой системе,
|
в том случае, если Apache настроен сохранять свой pid или лог файл
|
||||||
доступной только для чтения, то это работать не будет. Необходимо
|
вне каталога <filename class="directory">/var</filename>.
|
||||||
добавить новый каталог к списку каталогов из
|
С настройками по умолчанию Apache формирует свой pid файл в <filename
|
||||||
<filename>/etc/rc.diskless2</filename> для их создания в каталоге
|
class="directory">/var/run/httpd.pid</filename>, а лог файлы —
|
||||||
|
в <filename class="directory">/var/log</filename>.</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>Далее в статье подразумевается,
|
||||||
|
что Apache сохраняет свои лог файлы в каталог <filename
|
||||||
|
class="directory"><replaceable>apache_log_dir</replaceable></filename>
|
||||||
|
вне каталога <filename class="directory">/var</filename>.
|
||||||
|
Когда этот каталог расположен на файловой системе, смонтированной
|
||||||
|
в режиме только для чтения, Apache не сможет сохранять лог файлы, что
|
||||||
|
в свою очередь может вызывать проблемы в работе веб-сервера. В таком случае необходимо
|
||||||
|
добавить новый каталог к списку каталогов из
|
||||||
|
<filename>/etc/rc.d/var</filename> для их создания в каталоге
|
||||||
<filename>/var</filename> и связать
|
<filename>/var</filename> и связать
|
||||||
<filename><replaceable>apache_install</replaceable>/logs</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> к списку
|
||||||
каталогов, создаваемых скриптом
|
каталогов, создаваемых скриптом
|
||||||
<filename>/etc/rc.diskless2</filename>.</para>
|
<filename>/etc/rc.d/var</filename>.</para>
|
||||||
|
|
||||||
<para>Затем добавьте в скрипт <filename>/etc/rc.diskless2</filename>
|
<para>Затем добавьте в скрипт <filename>/etc/rc.d/var</filename>
|
||||||
после секции создания каталогов такие команды:</para>
|
после секции создания каталогов такие команды:</para>
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
|
@ -686,12 +507,12 @@ a: <replaceable>123456</replaceable> 0 4.2BSD 0 0
|
||||||
</screen>
|
</screen>
|
||||||
|
|
||||||
<para>И наконец, удалите существующий каталог
|
<para>И наконец, удалите существующий каталог
|
||||||
<filename><replaceable>apache_install</replaceable>/logs</filename> и
|
<filename class="directory"><replaceable>apache_install</replaceable>/logs</filename> и
|
||||||
замените его ссылкой:</para>
|
замените его ссылкой:</para>
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
&prompt.root; <userinput>rm -rf (apache_install)/logs</userinput>
|
&prompt.root; <userinput>rm -rf <filename class="directory"><replaceable>apache_log_dir</replaceable></filename></userinput>
|
||||||
&prompt.root; <userinput>ln -s /var/log/apache (apache_install)/logs</userinput>
|
&prompt.root; <userinput>ln -s <filename class="directory"><replaceable>apache_log_dir</replaceable></filename></userinput>
|
||||||
</screen>
|
</screen>
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
Loading…
Reference in a new issue