aboutsummaryrefslogtreecommitdiff
path: root/pt_BR.ISO8859-1/articles/solid-state/article.xml
blob: 3d190e05dac4639f2493f9a3e70df7bbcce15a32 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!-- Copyright (c) 2001 The FreeBSD Documentation Project

     Redistribution and use in source (SGML DocBook) and 'compiled' forms
     (SGML, HTML, PDF, PostScript, RTF and so forth) with or without
     modification, are permitted provided that the following conditions
     are met:

      1. Redistributions of source code (SGML DocBook) must retain the above
         copyright notice, this list of conditions and the following
         disclaimer as the first lines of this file unmodified.

      2. Redistributions in compiled form (transformed to other DTDs,
         converted to PDF, PostScript, RTF and other formats) must reproduce
         the above copyright notice, this list of conditions and the
         following disclaimer in the documentation and/or other materials
         provided with the distribution.

     THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS
     IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NIK CLAYTON BE LIABLE FOR ANY
     DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
     POSSIBILITY OF SUCH DAMAGE.

     $FreeBSD$
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:its="http://www.w3.org/2005/11/its" version="5.0" xml:lang="pt_BR"> <info>
    <title>FreeBSD e Dispositivos de Estado Sólido</title>

    <authorgroup>
      <author><personname> <firstname>John</firstname> <surname>Kozubik</surname> </personname> <affiliation> <address>
	    <email>john@kozubik.com</email>
	  </address> </affiliation></author>
    </authorgroup>

    <copyright><year>2001</year> <year>2009</year> <holder>Projeto de Documentação do FreeBSD</holder></copyright>

    <legalnotice xml:id="trademarks" role="trademarks">
      <para>FreeBSD is a registered trademark of the FreeBSD Foundation.</para>
      <para>Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the <quote></quote> or the <quote>®</quote> symbol.</para>
    </legalnotice>

    
<legalnotice xml:id="legalnotice">
  <title>Copyright</title>

  <para>Redistribution and use in source (XML DocBook) and 'compiled' forms (XML, HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted provided that the following conditions are met:</para>

  <orderedlist>
    <listitem>
      <para>Redistributions of source code (XML DocBook) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.</para>
    </listitem>

    <listitem>
      <para>Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</para>
    </listitem>
  </orderedlist>

  <important>
    <para>THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</para>
  </important>
</legalnotice>


    <pubdate>$FreeBSD$</pubdate>

    <releaseinfo>$FreeBSD$</releaseinfo>

    <abstract>
      <para>Este artigo aborda o uso de dispositivos de disco de estado sólido no FreeBSD para criar sistemas embarcados.</para>

      <para>Os sistemas embarcados têm a vantagem de uma maior estabilidade devido à ausência de partes móveis (discos rígidos). No entanto, é preciso ter em conta que o espaço disponível em disco é geralmente baixo no sistema e a durabilidade do meio de armazenamento.</para>

      <para>Tópicos específicos a serem abordados incluem os tipos e atributos das mídia de estado sólido adequadas para uso como disco no FreeBSD, opções de kernel que são de interesse em tal ambiente, os mecanismos <filename>rc.initdiskless</filename> que automatizam a inicialização de tais sistemas e a necessidade de sistemas de arquivos read-only e a construção de sistemas de arquivos a partir do zero. O artigo será concluído com algumas estratégias gerais para ambientes FreeBSD pequenos e read-only .</para>
    </abstract>
  </info>

  <sect1 xml:id="intro">
    <title>Dispositivos de Disco de Estado Sólido</title>

    <para>O escopo deste artigo será limitado a dispositivos de disco de estado sólido feitos de memória flash. A memória flash é uma memória de estado sólido (sem partes móveis) que é não volátil (a memória mantém os dados mesmo depois de todas as fontes de energia terem sido desconectadas). A memória flash pode suportar um enorme choque físico e é razoavelmente rápida (as soluções de memória flash abordadas neste artigo são um pouco mais lentas que um disco rígido EIDE para operações de gravação e muito mais rápidas para operações de leitura). Um aspecto muito importante da memória flash, cujas ramificações serão discutidas mais adiante neste artigo, é que cada setor tem uma capacidade limitada de reescrita. Você só pode gravar, apagar e gravar novamente em um setor de memória flash um certo número de vezes antes que o setor fique permanentemente inutilizável. Embora muitos produtos de memória flash mapeiam automaticamente os blocos defeituosos, e embora alguns até distribuam operações de gravação uniformemente por toda a unidade, a verdade é que existe um limite para a quantidade de escrita que pode ser feita no dispositivo. Unidades competitivas possuem entre 1.000.000 e 10.000.000 gravações por setor em suas especificações. Este valor varia com à temperatura do ambiente.</para>

    <para>Especificamente, estaremos discutindo unidades compact-flash compatíveis com ATA, as quais são bastante populares como mídia de armazenamento para câmeras digitais. De particular interesse é o fato de que eles são fixados diretamente no barramento IDE e são compatíveis com o conjunto de comandos ATA. Portanto, com um adaptador muito simples e de baixo custo, esses dispositivos podem ser conectados diretamente a um barramento IDE em um computador. Uma vez implementado desta maneira, sistemas operacionais como o FreeBSD vêem o dispositivo como um disco rígido normal (embora pequeno).</para>

    <para>Outras soluções de disco de estado sólido existem, mas seu custo, obscuridade e relativa dificuldade de uso os colocam além do escopo deste artigo.</para>
  </sect1>

  <sect1 xml:id="kernel">
    <title>Opções do Kernel</title>

    <para>Algumas opções do kernel são de interesse específico para aqueles que criam sistemas FreeBSD embarcados.</para>

    <para>Todos os sistemas embarcados FreeBSD que usam memória flash como disco para o sistema estarão interessados ​​em usar discos em memória e sistemas de arquivos em memória. Devido ao número limitado de gravações que podem ser feitas na memória flash, o disco e os sistemas de arquivos no disco provavelmente serão montados como read-only. Nesse ambiente, sistemas de arquivos tais como <filename>/tmp</filename> e <filename>/var</filename> são montados como sistemas de arquivos em memória para permitir que o sistema crie logs e atualize contadores e arquivos temporários. Os sistemas de arquivos em memória são um componente crítico para uma implementação bem-sucedida do FreeBSD em dispositivos de estado sólido.</para>

    <para>Você deve ter certeza de que as seguintes linhas existem no seu arquivo de configuração do kernel:</para>

    <programlisting>options         MFS             # Memory Filesystem
options         MD_ROOT         # md device usable as a potential root device
pseudo-device   md              # memory disk</programlisting>
  </sect1>

  <sect1 xml:id="ro-fs">
    <title>O Subsistema <literal>rc</literal> e os Sistemas de Arquivos Read-Only</title>

    <para>A inicialização pós-boot de um sistema FreeBSD embarcado é controlada por <filename>/etc/rc.initdiskless</filename>.</para>

    <para>O <filename>/etc/rc.d/var</filename> monta o <filename>/var</filename> como um sistema de arquivos em memória, cria uma lista configurável de diretórios em <filename>/var</filename> com o comando <citerefentry><refentrytitle>mkdir</refentrytitle><manvolnum>1</manvolnum></citerefentry> e altera os modos em alguns desses diretórios. Na execução do <filename>/etc/rc.d/var</filename>, uma outra variável <filename>rc.conf</filename> entra em jogo – <literal>varsize</literal>. Uma partição <filename>/var</filename> é criada por <filename> /etc/rc.d/var</filename> baseado no valor desta variável em <filename>rc.conf</filename>:</para>

    <programlisting>varsize=8192</programlisting>

    <para>Lembre-se de que esse valor é informado em setores, por padrão.</para>

    <para>O fato do <filename>/var</filename> ser um sistema de arquivos read-write é uma distinção importante, pois a partição <filename>/</filename> (e quaisquer outras partições que você possa ter em sua mídia flash) deve ser montada como read-only. Lembre-se que em <xref linkend="intro"/> detalhamos as limitações da memória flash - especificamente a capacidade de gravação limitada. A importância de não montar sistemas de arquivos em mídia flash em modo read-write, e a importância de não usar um arquivo de swap, não pode ser exagerado. Um arquivo de swap em um sistema ocupado pode inutilizar uma mídia flash em menos de um ano. Criação de log pesado ou criação e destruição de arquivos temporários podem fazer o mesmo. Portanto, além de remover a entrada <literal>swap</literal> do seu <filename>/etc/fstab</filename>, você também deve alterar o campo Options para cada sistema de arquivos para <literal>ro</literal> como segue:</para>

    <programlisting># Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1a             /               ufs     ro              1       1</programlisting>

    <para>Alguns aplicativos no sistema começarão a falhar imediatamente como resultado desta alteração. Por exemplo, o cron não será executado corretamente como resultado da falta de crontabs no <filename>/var</filename> criado pelo <filename>/etc/rc.d/var</filename>, o syslog e o dhcp também irão encontrar problemas como resultado do sistema de arquivos estar em modo read-only e dos itens ausentes no <filename>/var</filename> que o <filename>/etc/rc.d/var</filename> criou. Estes são apenas problemas temporários, embora sejam abordados, juntamente com soluções para a execução de outros pacotes de software comuns em <xref linkend="strategies"/>.</para>

    <para>Uma coisa importante para lembrar é que um sistema de arquivos que foi montado como read-only com o  <filename>/etc/fstab</filename> pode ser colocado em modo read-write a qualquer momento, executando o comando:</para>

    <screen><prompt>#</prompt> <userinput>/sbin/mount -uw <replaceable>partition</replaceable></userinput></screen>

    <para>e pode ser alternado de volta para somente leitura com o comando:</para>

    <screen><prompt>#</prompt> <userinput>/sbin/mount -ur <replaceable>partition</replaceable></userinput></screen>
  </sect1>

  <sect1>
    <title>Construindo um sistema de arquivos a partir do zero</title>

    <para>Como os cartões Compact Flash compatíveis com ATA são vistos pelo FreeBSD como discos rígidos IDE normais, você poderia teoricamente instalar o FreeBSD a partir da rede usando o os disquetes do kern e mfsroot ou de um CD.</para>

    <para>No entanto, mesmo uma pequena instalação do FreeBSD utilizando procedimentos normais de instalação pode produzir um sistema com tamanho maior que 200 megabytes. Como a maioria das pessoas usará dispositivos de memória flash menores (128 megabytes são considerados razoavelmente grandes - 32 ou até mesmo 16 megabytes são comuns), uma instalação usando mecanismos normais não será possível - simplesmente não há espaço em disco suficiente nem para as menores instalações convencionais.</para>

    <para>A maneira mais fácil de superar essa limitação de espaço é instalar o FreeBSD usando meios convencionais em um disco rígido normal. Após a conclusão da instalação, reduza o sistema operacional para um tamanho que caiba na mídia flash e compacte o sistema de arquivos inteiro com o tar. Os passos seguintes irão guiá-lo através do processo de preparação de uma parte da memória flash para o seu sistema de arquivos compactado com o tar. Lembre-se de que não estamos executando uma instalação normal, logo as operações como particionamento, criação dos labels, criação do sistema de arquivos, etc. precisam ser executadas manualmente. Além dos disquetes do kern e mfsroot, você também precisará usar o disquete do fixit.</para>

    <procedure>
      <step>
	<title>Particionando seu Dispositivo de Mídia Flash</title>

	<para>Após inicializar com os disquetes do kern e mfsroot, escolha <literal>custom</literal> no menu de instalação. No menu de instalação personalizada, escolha <literal>partition</literal>. No menu de partições, você deve apagar todas as partições existentes usando a tecla <keycap>d</keycap>. Depois de excluir todas as partições existentes, crie uma partição usando a tecla <keycap>c</keycap> e aceite o valor padrão para o tamanho da partição. Quando perguntado sobre o tipo da partição, certifique-se de que o valor esteja configurado para <literal>165</literal>. Agora escreva esta tabela de partições no disco pressionando <keycap>w</keycap> (esta é uma opção oculta nesta tela). Se você estiver usando um cartão compact flash compatível com ATA, deverá escolher o FreeBSD Boot Manager. Agora pressione <keycap>q</keycap> para sair do menu de partições. Você verá novamente o menu do gerenciador de inicialização - repita a escolha feita anteriormente.</para>
      </step>

      <step>
	<title>Criando Sistemas de Arquivos em seu Dispositivo de Memória Flash</title>

	<para>Saia do menu de instalação personalizada e, no menu de instalação principal, escolha a opção <literal>fixit</literal>. Depois de entrar no ambiente do fixit, digite o seguinte comando:</para>

	<screen><prompt>#</prompt> <userinput>disklabel -e /dev/ad0c</userinput></screen>

	<para>Neste ponto, você terá entrado no editor vi sob os auspícios do comando disklabel. Em seguida, você precisa adicionar uma linha <literal>a:</literal> no final do arquivo. Esta linha <literal>a:</literal> deve ser semelhante a linha abaixo:</para>

	<programlisting>a:      <replaceable>123456</replaceable>  0       4.2BSD  0       0</programlisting>

	<para>Onde <replaceable>123456</replaceable> é um número o qual é exatamente o mesmo que o número existente na entrada <literal>c:</literal> para o tamanho. Basicamente, você está duplicando a linha <literal>c:</literal> existente como uma linha <literal>a:</literal>, certifique-se de que o fstype seja <literal>4.2BSD</literal>. Salve o arquivo e saia.</para>

	<screen><prompt>#</prompt> <userinput>disklabel -B -r /dev/ad0c</userinput>
<prompt>#</prompt> <userinput>newfs /dev/ad0a</userinput></screen>
      </step>

      <step>
	<title>Colocando seu Sistema de Arquivos na Mídia Flash</title>

	<para>Monte a mídia flash recém-preparada:</para>

	<screen><prompt>#</prompt> <userinput>mount /dev/ad0a /flash</userinput></screen>

	<para>Coloque esta máquina na rede para que possamos transferir nosso arquivo tar e extrai-lo em nosso sistema de arquivos de mídia flash. Um exemplo de como fazer isso é:</para>

	<screen><prompt>#</prompt> <userinput>ifconfig xl0 192.168.0.10 netmask 255.255.255.0</userinput>
<prompt>#</prompt> <userinput>route add default 192.168.0.1</userinput></screen>

	<para>Agora que a máquina está na rede, transfira seu arquivo tar. Você pode se deparar com um pequeno dilema neste ponto - se a sua memória flash tiver por exemplo 128 megabytes, e seu arquivo tar for maior que 64 megabytes, você não poderá ter o seu arquivo tar na mídia flash ao mesmo tempo em que realiza a descompressão - você ficará sem espaço. Uma solução para esse problema, se você estiver usando FTP, é descompactar o arquivo enquanto ele é transferido por FTP. Se você realizar sua transferência desta maneira, você nunca terá o arquivo tar e o conteúdo do tar em seu disco ao mesmo tempo:</para>

	<screen><prompt>ftp&gt;</prompt> <userinput>get tarfile.tar "| tar xvf -"</userinput></screen>

	<para>Se o seu arquivo tar estiver gzipado, você pode fazer isso também:</para>

	<screen><prompt>ftp&gt;</prompt> <userinput>get tarfile.tar "| zcat | tar xvf -"</userinput></screen>

	<para>Depois que o conteúdo do seu sistema de arquivos compactado pelo tar estiver no sistema de arquivos da sua memória flash, você poderá desmontar a memória flash e reinicializar:</para>

	<screen><prompt>#</prompt> <userinput>cd /</userinput>
<prompt>#</prompt> <userinput>umount /flash</userinput>
<prompt>#</prompt> <userinput>exit</userinput></screen>

	<para>Assumindo que você configurou seu sistema de arquivos corretamente quando ele foi construído no disco rígido normal (com seus sistemas de arquivos montado como read-only, e com as opções necessárias compiladas no kernel) você agora deve inicializar com sucesso seu sistema embarcado FreeBSD.</para>
      </step>
    </procedure>
  </sect1>

  <sect1 xml:id="strategies">
    <title>Estratégias do Sistema para Ambientes Pequenos e Somente Leitura</title>

    <para>Em <xref linkend="ro-fs"/>, foi apontado que o sistema de arquivos <filename>/var</filename> construído pelo <filename>/etc/rc.d/var</filename> e a presença de um sistema de arquivos raiz read-only causa problemas com muitos pacotes de software comuns usados ​​com o FreeBSD. Neste artigo, serão fornecidas sugestões para a execução bem-sucedida do cron, do syslog, instalações de ports e do servidor Web Apache.</para>

    <sect2>
      <title>Cron</title>

      <para>Na inicialização, o <filename>/var</filename> é preenchido pelo <filename>/etc/rc.d/var</filename> usando a lista disponível em <filename>/etc/mtree/BSD.var.dist</filename>, então o <filename>cron</filename>, o <filename>cron/tabs</filename>, <filename>at</filename>, e alguns outros diretórios padrões são criados.</para>

      <para>No entanto, isso não resolve o problema de manter as crontabs entre nas reinicializações. Quando o sistema for reinicializado, o sistema de arquivos <filename>/var</filename> que está na memória desaparecerá e todas as crontabs que você tenha nele também desaparecerão. Portanto, uma solução seria criar crontabs para os usuários que precisam delas, montar seu sistema de arquivos <filename>/</filename> como read-write e copiar estas crontabs para algum lugar seguro, como <filename>/etc/tabs</filename>, em seguida, adicione uma linha ao final do  <filename>/etc/rc.initdiskless</filename> que copie estes crontabs para <filename>/var/cron/tabs</filename> depois que o diretório for criado durante inicialização do sistema. Você também pode precisar adicionar uma linha que altere modos e permissões nos diretórios criados e nos arquivos copiados com <filename>/etc/rc.initdiskless</filename>.</para>
    </sect2>

    <sect2>
      <title>Syslog</title>

      <para>O <filename>syslog.conf</filename> especifica os locais de certos arquivos de log que existem em <filename>/var/log</filename>. Esses arquivos não são criados pelo <filename>/etc/rc.d/var</filename> na inicialização do sistema. Portanto, em algum lugar do <filename>/etc/rc.d/var</filename>, logo após a seção que cria os diretórios em <filename>/var</filename>, você precisará adicionar algo como isto:</para>

      <screen><prompt>#</prompt> <userinput>touch /var/log/security /var/log/maillog /var/log/cron /var/log/messages</userinput>
<prompt>#</prompt> <userinput>chmod 0644 /var/log/*</userinput></screen>
    </sect2>

    <sect2>
      <title>Instalação de Ports</title>

      <para>Antes de discutir as alterações necessárias para usar com êxito a árvore de ports, é necessário um lembrete sobre a natureza read-only dos seus sistemas de arquivos na mídia flash. Como eles são read-only, você precisará montá-los temporariamente para read-write usando a sintaxe de montagem mostrada em <xref linkend="ro-fs"/>. Você sempre deve remontar esses sistemas de arquivos no modo read-only quando tiver terminado qualquer manutenção - gravações desnecessárias na mídia flash podem reduzir consideravelmente sua vida útil.</para>

      <para>Para tornar possível entrar em um diretório do ports e executar com sucesso o comando <command>make</command> <buildtarget>install</buildtarget>, devemos criar um diretório de pacotes em um sistema de arquivos que não esteja localizado na memória o qual manterá o controle dos nossos pacotes entre as reinicializações . Como é necessário montar seus sistemas de arquivos como read-write para a instalação de um pacote, é sensato supor que uma área na mídia flash também possa ser usada para que as informações do pacote sejam gravadas.</para>

      <para>Primeiro, crie o diretório do banco de dados de pacotes. Ele fica normalmente em <filename>/var/db/pkg</filename>, mas não podemos colocá-lo lá, pois ele irá desaparecer toda vez que o sistema for inicializado.</para>

      <screen><prompt>#</prompt> <userinput>mkdir /etc/pkg</userinput></screen>

      <para>Agora, adicione uma linha ao arquivo <filename>/etc/rc.d/var</filename> que vincule o <filename>/etc/pkg</filename> ao <filename>/var/db/pkg</filename>. Um exemplo:</para>

      <screen><prompt>#</prompt> <userinput>ln -s /etc/pkg /var/db/pkg</userinput></screen>

      <para>Agora, sempre que montar seus sistemas de arquivos como read-write e instalar um pacote, o <command>make</command> <buildtarget>install</buildtarget> funcionará e as informações do pacote serão gravadas com êxito em <filename>/etc/pkg</filename> (porque o sistema de arquivos será, naquele momento, montado como read-write) que estará sempre disponível para o sistema operacional como <filename>/var/db/pkg</filename>.</para>
    </sect2>

    <sect2>
      <title>Servidor Web Apache</title>

      <note>
	<para>As etapas nesta seção são necessárias apenas se o Apache estiver configurado para gravar suas informações de pid ou log fora do <filename>/var</filename>. Por padrão, o Apache mantém seu arquivo pid em <filename>/var/run/httpd.pid</filename> e seus arquivos de log em <filename>/var/log</filename>.</para>
      </note>

      <para>Agora é assumido que o Apache mantém seus arquivos de log em um diretório <filename><replaceable>apache_log_dir</replaceable></filename> fora do <filename>/var</filename>. Quando esse diretório reside em um sistema de arquivos read-only, o Apache não poderá salvar nenhum arquivo de log e pode ter problemas para funcionar. Se assim for, é necessário adicionar um novo diretório à lista de diretórios em <filename>/etc/rc.d/var</filename> para criar no <filename>/var</filename> e vincular <filename><replaceable>apache_log_dir</replaceable></filename> ao <filename>/var/log/apache</filename>. Também é necessário definir permissões e propriedade neste novo diretório.</para>

      <para>Primeiro, adicione o diretório <literal>log/apache</literal> à lista de diretórios a serem criados em <filename>/etc/rc.d/var</filename>.</para>

      <para>Segundo, adicione estes comandos ao <filename>/etc/rc.d/var</filename> após a seção de criação do diretório:</para>

      <screen><prompt>#</prompt> <userinput>chmod 0774 /var/log/apache</userinput>
<prompt>#</prompt> <userinput>chown nobody:nobody /var/log/apache</userinput></screen>

      <para>Por fim, remova o diretório <filename><replaceable>apache_log_dir</replaceable></filename> existente e substitua-o por um link:</para>

      <screen><prompt>#</prompt> <userinput>rm -rf <replaceable>apache_log_dir</replaceable></userinput>
<prompt>#</prompt> <userinput>ln -s /var/log/apache <replaceable>apache_log_dir</replaceable></userinput></screen>
    </sect2>
  </sect1>
</article>