Provided by:
manpages-pt_20040726-4_all 
NOME
initrd - carregador de inicializacao inicializado com disco RAM
DESCRI,C~AO
O arquivo especial /dev/initrd e um dispositivo de bloco de leitura
somente. O dispositivo /dev/initrd e um disco de ram que e
inicializado (isto e, carregado) pelo carreegador de inicializacao
depois que o kernel e iniciado. O kernel entao pode usar conteudo do
dispositivo de bloco /dev/initrd's para uma carga do sistema em duas
fases.
Na primeira fase, o kernel inicia e monta um sistema de arquivos inical
a partir dos conteudos de /dev/initrd (isto e, o disco de RAM
inicializado pelo carregador de inicializacao). Na segunda fase,
controladores adicionais e outros modulos sao carregados a partir do
dispositivo de conteudo do super usuario. Depois carregando modulos
iniciais, um novo sistema de arquivos (isto e, o sistema de arquivos
normal) e montado a partir de um dispositivo diferente.
OPERA,C~AO DE CARREGAMENTO DO SISTEMA
Quando o carregamento inicia com initrd, the system boots as follows:
1. O carregador de inicializacao carrega o programa kernel e o
conte'udo de /dev/initrdna mem'oria.
2. Na inicilizacao do kernel, o kernel decomprime e copia o conteudo
do dispositivo /dev/initrd para o dispositivo /dev/ram0 e entao a
memoria livre e usada por /dev/initrd.
3. O kernel entao monta o dispostivo em leitura-escrita /dev/ram0
como o sistema de arquivo raiz inicial.
4. Se a indicacao normal do sistema de arquivo raiz e alem disto o
sistema de arquivo raiz inicial (isto e, /dev/ram0 ) entao o kernel
salta o ultimo passo para a sequencia usual de inicializacao.
5. Se o arquivo executavel /linuxrc esta presente no sistema de
arquivo raiz inicial, /linuxrc e executado com uid 0. (O arquivo
/linuxrc deve ter permissao de execucao. O arquivo /linuxrc pode ser
um executavel valido, incluindo um script de interpretador de
comando.)
6. Se /linuxrc nao e executado ou /linuxrc termina, o sistema de
arquivo raiz normal e montado. (Se /linuxrc existe com qualquer
sistema de arquivo raiz montado no sistema de arquivo raiz inicial,
entao o comportamento do kernel nao e ESPECIFICADO. Veja a secao de
NOTAS para o comportamento atual do kernel.)
7. Se o arquivo raiz normal tem o diretorio /initrd, o dispositivo
/dev/ram0 e movido a partir de / para /initrd. De outra forma se o
diretorio /initrd nao e um dispositivo existente/dev/ram0 nao e
montado. (Quando movido a partir de / para /initrd, /dev/ram0 nao e
montado e entao processos podem ficar rodando a paritr de /dev/ram0.
Se o diretorio /initrd nao existe no sistema de arquivo raiz e
quaisquer processos ficam rodando a partir de /dev/ram0 quando
/linuxrc existe, o comportamento do kernel nao e ESPECIFICADO. Veja
as secoes NOTAS para o comportamento atual do kernel.)
8. A sequencia usual de inicializacao (isto e, a invocacao de
/sbin/init) e executado sobre o sistema de arquivo raiz normal.
OP,C~OES
As seguintes opcoes do carregador de inicializacao quando usadas com
initrd, afetam a operacao de carregamento do kernel:
initrd=nomearquivo
Especifica o arquivo para carregar como o conteudo de
/dev/initrd. Para o LOADLIN isto e um opcao de comando de
linha. Para o LILO voce deve usar este comando no arquivo de
configuracao do LILO em /etc/lilo.config. O nome do arquivo
especificado com esta opcao devera, tipicamente, ser um] imagem
compactada com o gzip do sistema de arquivo.
noinitrd
Esta opcao em tempo de caregamento desativa a segunda fase da
operacao de carregamento. O kernel executa aa sequencia usual
de inicializacao como se /dev/initrd nao fosse inicializado.
Com esta opcao, qualquer conteudo carregado de /dev/initrd para
dento da memoria pelo carregador de inicializacao sao
preservados. Esta opcao permite o conteudo de /dev/initrd ser
qualquer dados e nao necessita ser limitado para uma imagem do
sistema de arquivo. De qualquer forma, o dispositivo
/dev/initrd e de somente leitura e pode ser lido somente uma vez
depois da inicializacao do sistema.
root=device-name
Especifica o dispositivo para ser usado como o sistema de
arquivo raiz normal. Para LOADLIN esta e uma opcao de comando
de linha. Para LILO esta e uma opcao de tempo de carga ou pode
ser usada com um opcao de linha no arquivo de configuracao do
LILO em /etc/lilo.config. O dispositivo especificado por esta
opcao deve ser um dispositivo montavel tendo um sistema se
arquivo raiz compativel.
MUDANDO O SISTEMA DE ARQUIVOS RAIZ NORMAL
Por padrao, a selecao do kernel (isto e, marcado no arquivo do kernel
com rdev ou compilada dentro do arquivo do kernel), ou a opcao marcada
no carregador de inicializacao e usada para o sistema de arquivo raiz
normal. Para um sistema de arquivo raiz normal montado via NFS, ele
tem que usar as opcao de carregamento nfs_root_name e nfs_root_addrs
para determinar as marcacoes NFS. Para mais informacoes sobre NFS veja
o arquivo de documentacao do kernel nfsroot.txt. Para mais informacoes
sobre marcacoes do sistema de arquivo raiz veja alem disso a
documentacao do LILO e LOADLIN .
Isto e alem disso possivel para o executavel /linuxrc alterar o
dispositivo raiz normal. Para o /linuxrc alterar o dispositivo raiz
normal, /proc deve ser montado. Depois da montagem de /proc, /linuxrc
altera o dispositivo raiz normal pela escrita dentro dos arquivos proc
/proc/sys/kernel/real-root-dev, /proc/sys/kernel/nfs-root-name, e
/proc/sys/kernel/nfs-root-addrs. Para um dispositivo raiz fisico, o
dispositivo raiz e alterado por tendo /linuxrc escrito o novo numero de
dispositivo de sistema de arquivo raiz dentro de /proc/sys/kernel/real-
root-dev. Para um sistema de arquivo raiz NFS, o dispositivo raiz e
alterado por tendo /linuxrc escrito a marcacao NFS dentro dos arquivos
/proc/sys/kernel/nfs-root-name e /proc/sys/kernel/nfs-root-addrs e
entao escrevendo 0xff (isto e, o falso numero de dispositivo NFS)
dentro do arquivo /proc/sys/kernel/real-root-dev. Por exemplo, a
seguinte linha de comando do interpretador de comando alteraria o
dispositivo raiz normal para /dev/hdb1:
echo 0x365 >/proc/sys/kernel/real-root-dev
Um exemplo NSF, a seguinte linha de comando do interpretador de comando
alteraria o dispositivo raiz normal para para um diretorio NSF
/var/nfsroot na rede local com numero IP 193.8.232.7 para um sistema
com numero IP 193.8.232.7 e chamado de 'idefix':
echo /var/nfsroot >/proc/sys/kernel/nfs-root-name
echo 193.8.232.2:193.8.232.7::255.255.255.0:idefix \
>/proc/sys/kernel/nfs-root-addrs
echo 255 >/proc/sys/kernel/real-root-dev
USO
A motivacao principal para implementacao de initrd e para permitir uma
configuracao modular do kernel na isntalacao do sistema.
Um cenario possivel de instalacao do sistema e o seguinte:
1. O programa carregador inicializa a partir do disquete ou outra
midia com um kernel minimo (isto e, suporte para /dev/ram,
/dev/initrd, e o sistema de arquivos ext2) e carrega /dev/initrd com
uma versao compactado em gzip do sitema de arquivo inicial.
2. O executavel /linuxrc determina o que e necessario para (1) montar
o sistema de arquivo raiz normal (isto e, tipo de dispositivo,
controlador de dispositivo, sistema de arquivo) e (2) a midia da
distribuicao (isto e, CD-ROM, network, tape, ...). Isto pode ser
feito questionando-se o usuario, pela auto-checagem, ou usando uma
abordagem hibrida.
3. O executavel /linuxrc carrega os modulos necessarios a partir do
sistema de arquivo raiz inicial.
4. O executavel /linuxrc cria e propaga o sistema de arquivo raiz.
(Neste estagio o sitema de arquivo raiz normal nao e um sitema
completo ainda.)
5. O executavel /linuxrc marca /proc/sys/kernel/real-root-dev,
desmonta /proc, o sistema de arquivo raiz norma e qualquer outro
sistema de arquivo que esta montado, e entao termina.
6. O kernel entao mounta o sistem de arquivo raiz normal.
7. Agora que o sistema de arquivo e acessivel e intacto, o carregador
de inicializacao pode ser instalado.
8. O carregador de inicalizacao e configurado para carregar dentro de
/dev/initrd um sistema de arquivo com a marca de modulos que esta
acostumado executar no sistema. (isto e, O Dispositivo /dev/ram0
pode ser modificado, entao desmontado, e finalmente, a imagem e
escrita a partir de /dev/ram0 para um arquivo.)
9. O sistema e agora inicializavel e tarefas de instalacoes
adicionais podem ser executadas.
A funcao de chave de /dev/initrd no citado acima e para o re-uso dos
dados de configuracao durante a operacao normal do sistema sem a
requisicao inicial no selecao do kernel, um kernel generico longo ou,
um kernel recompilado.
Um segundo cenario e para instalacoes onde o Linux e executado sobre
sistemas com diferentes configuracoes de hardware em uma simples rede
administrativa. Em casos semelhantes, pode ser desejavel usar somente
um pequeno conjunto de kerneis (idealmente somente um) e por economia o
sistema especifico parte de informacoes de configuracoes como pequena
como possivel. Neste caso, cria um arquivo comum com todos os modulos
necessarios. Entao, somente o arquivo /linuxrc para um arquivo
executado por /linuxrc pode ser diferente.
Um terceiro cenario e mais conveniente para disco de recuperacao. Por
causa de informacoes como a localizacao da particao do sistema de
arquivo raiz nao ser necessaria em tempo de cargo, o sistema pode ser
carregado a partir de /dev/initrd que pode usar um dialogo e/ou auto
deteccao seguida por uma possivel controle de sanidade.
Por ultimo mas nao menos importante, as distribuicoes Linux em CD-ROM
podem usar initrd para instalacao facilitada a partir do CD-ROM. A
distribuicao pode usar LOADLIN para carga diretamentente /dev/initrd a
partir do CD-ROM sem o uso de qualquer disquete. A distribuicao pode
tambem usar um disquete de inicializacao LILO e entao um grande disco
RAM via /dev/initrd a partir do CD-ROM.
CONFIGURA,C~AO
O /dev/initrd e um dispositivo de bloco de leitura somente designado
com o maior numero de dispositivo 1 e o menor numero de dispositivo
250. Tipicamente /dev/initrd e propriedade de root.disk com modo 0400
(acesso de leitura para o super usuario somente). Se o sistema Linux
nao tem /dev/initrd criado, ele pode ser criado com os seguintes
comandos:
mknod -m 400 /dev/initrd b 1 250
chown root:disk /dev/initrd
Alem disso, suporte para ambos "RAM disk" e "Initial RAM disk" (isto e,
CONFIG_BLK_DEV_RAM=y e CONFIG_BLK_DEV_INITRD=y ) suporte dever ser
compilado dentro do kernel Linux para uso de /dev/initrd. Quando
usando, /dev/initrd, o controlador de disco RAM nao pode ser carregado
com um modulo.
ARQUIVOS
/dev/initrd
/dev/ram0
/linuxrc
/initrd
VEJA TAMB'EM
chown(1), mknod(1), /dev/ram(4), freeramdisk(8), rdev(8), O arquivo de
documentacao initrd.txt na pacote fonte do kernel, o documentacao do
LILO e do LOADLIN, a documentacao SYSLINUX.
NOTAS
1. Com o kernel atual, qualquer sistema de arquivo fica montado quando
/dev/ram0 e movida a partir de / para /initrd continua sendo acessivel.
De outra forma, a entrada /proc/mounts nao e atualizada.
2. Com o kernel atual, se o diretorio /initrd nao existe, entao
/dev/ram0 nao ira ser completamente desmontado se /dev/ram0 e usada por
qualquer processo ou qualquer sistema de arquivo e montado nela. Se
/dev/ram0 nao e completamente desmontada, entao /dev/ram0 ira ficar na
memoria.
3. Usuarios de /dev/initrd nao devem depender do comportamento
fornecido nas notas acima. O comportamente pode ser alterado nas
futuras versoes do kernel Linux.
AUTORES
O codigo do kernl para o dispositivo initrd foi escrio por Werner
Almesberger <almesber@lrc.epfl.ch> e Hans Lermen
<lermen@elserv.ffm.fgan.de>. O codigo para initrd foi adicionado no
kernel Linux na versao de desenvolvimento 1.3.73.
TRADUZIDO POR LDP-BR em 21/08/2000.
Andre L. Fassone Canova <lonelywolf@blv.com.br> (traducao) Carlos
Augusto Horylka <horylka@conectiva.com.br> (revisao)