Provided by: manpages-pt_20040726-4_all bug

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)