Provided by: manpages-pt_20040726-5_all bug

NOME

       initrd - carregador de inicialização inicializado com disco RAM

DESCRIÇÃO

       O  arquivo  especial  /dev/initrd  é  um  dispositivo  de  bloco  de  leitura  somente.  O
       dispositivo /dev/initrd é um disco de ram que é  inicializado  (isto  é,  carregado)  pelo
       carreegador  de  inicialização  depois  que o kernel é iniciado.  O kernel então pode usar
       conteúdo 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
       conteúdos  de  /dev/initrd  (isto  é,  o  disco  de  RAM  inicializado  pelo carregador de
       inicialização).  Na segunda fase, controladores adicionais e outros módulos são carregados
       a partir do dispositivo de conteúdo do super usuário.  Depois carregando módulos iniciais,
       um novo sistema de arquivos (isto é, o sistema de arquivos normal) é montado a  partir  de
       um dispositivo diferente.

OPERAÇÃO DE CARREGAMENTO DO SISTEMA

       Quando o carregamento inicia com initrd, the system boots as follows:

         1. O carregador de inicialização carrega o programa kernel e o conteúdo de /dev/initrdna
         memória.

         2. Na inicilização do kernel, o kernel decomprime e  copia  o  conteúdo  do  dispositivo
         /dev/initrd  para  o  dispositivo  /dev/ram0  e  então  a  memória  livre  é  usada  por
         /dev/initrd.

         3. O kernel então monta o dispostivo em leitura-escrita  /dev/ram0  como  o  sistema  de
         arquivo raiz inicial.

         4.  Se  a  indicação normal do sistema de arquivo raiz é além disto o sistema de arquivo
         raiz inicial (isto é, /dev/ram0 ) então o kernel salta o último passo para  a  seqüência
         usual de inicialização.

         5.  Se  o  arquivo executável /linuxrc está presente no sistema de arquivo raiz inicial,
         /linuxrc é executado com uid 0.  (O arquivo /linuxrc deve ter permissão de execução.   O
         arquivo  /linuxrc pode ser um executável válido, incluindo um script de interpretador de
         comando.)

         6. Se /linuxrc não é executado ou /linuxrc termina, o sistema de arquivo raiz  normal  é
         montado.  (Se /linuxrc existe com qualquer sistema de arquivo raiz montado no sistema de
         arquivo raiz inicial, então o comportamento do kernel não é ESPECIFICADO.  Veja a  seção
         de NOTAS para o comportamento atual do kernel.)

         7.  Se o arquivo raiz normal tem o diretório /initrd, o dispositivo /dev/ram0 é movido a
         partir de / para /initrd.  De outra forma se o diretório /initrd não  é  um  dispositivo
         existente/dev/ram0  não é montado.  (Quando movido a partir de / para /initrd, /dev/ram0
         não é montado e então processos podem  ficar  rodando  a  paritr  de  /dev/ram0.   Se  o
         diretório  /initrd  não  existe  no  sistema de arquivo raiz e quaisquer processos ficam
         rodando a partir de /dev/ram0 quando /linuxrc existe, o comportamento do  kernel  não  é
         ESPECIFICADO.  Veja as seções NOTAS para o comportamento atual do kernel.)

         8.  A  seqüência  usual de inicialização (isto é, a invocação de /sbin/init) é executado
         sobre o sistema de arquivo raiz normal.

OPÇÕES

       As seguintes opções do carregador de inicialização quando  usadas  com  initrd,  afetam  a
       operação de carregamento do kernel:

       initrd=nomearquivo
              Especifica  o arquivo para carregar como o conteúdo de /dev/initrd.  Para o LOADLIN
              isto é um opção de comando de linha.  Para o LILO você deve usar  este  comando  no
              arquivo   de   configuração  do  LILO  em  /etc/lilo.config.   O  nome  do  arquivo
              especificado com esta opção deverá, tipicamente, ser um] imagem  compactada  com  o
              gzip do sistema de arquivo.

       noinitrd
              Esta  opção  em  tempo  de  caregamento  desativa  a  segunda  fase  da operação de
              carregamento.  O kernel  executa  aa  seqüência  usual  de  inicialização  como  se
              /dev/initrd não fosse inicializado.  Com esta opção, qualquer conteúdo carregado de
              /dev/initrd para dento da memória pelo carregador de inicialização são preservados.
              Esta opção permite o conteúdo de /dev/initrd ser qualquer dados e não necessita ser
              limitado para uma imagem do sistema de arquivo.  De qualquer forma,  o  dispositivo
              /dev/initrd  é  de  somente  leitura  e  pode  ser  lido  somente uma vez depois da
              inicialização do sistema.

       root=device-name
              Especifica o dispositivo para ser usado como o  sistema  de  arquivo  raiz  normal.
              Para  LOADLIN  esta é uma opção de comando de linha.  Para LILO esta é uma opção de
              tempo de carga ou pode ser usada com um opção de linha no arquivo  de  configuração
              do LILO em /etc/lilo.config.  O dispositivo especificado por esta opção deve ser um
              dispositivo montável tendo um sistema se arquivo raiz compatível.

MUDANDO O SISTEMA DE ARQUIVOS RAIZ NORMAL

       Por padrão, a seleção do kernel (isto  é,  marcado  no  arquivo  do  kernel  com  rdev  ou
       compilada  dentro do arquivo do kernel), ou a opção marcada no carregador de inicialização
       é usada para o sistema de arquivo raiz normal.  Para um sistema  de  arquivo  raiz  normal
       montado  via NFS, ele tem que usar as opção de carregamento nfs_root_name e nfs_root_addrs
       para determinar as marcações NFS.  Para mais informações  sobre  NFS  veja  o  arquivo  de
       documentação  do  kernel nfsroot.txt.  Para mais informações sobre marcações do sistema de
       arquivo raiz veja além disso a documentação do LILO e LOADLIN .

       Isto é além disso possível para o executável /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 físico, o  dispositivo  raiz  é
       alterado  por  tendo  /linuxrc  escrito o novo número 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 é alterado por tendo /linuxrc escrito a marcação NFS dentro dos arquivos
       /proc/sys/kernel/nfs-root-name e /proc/sys/kernel/nfs-root-addrs e então  escrevendo  0xff
       (isto é, o  falso número 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 diretório NSF /var/nfsroot na rede local  com  número
       IP 193.8.232.7 para um sistema com número 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  motivação  principal  para  implementação  de  initrd  é para permitir uma configuração
       modular do kernel na isntalação do sistema.

       Um cenário possível de instalação do sistema é o seguinte:

         1. O programa carregador inicializa a partir do disquete ou outra midia  com  um  kernel
         mínimo  (isto  é,  suporte  para  /dev/ram, /dev/initrd, e o sistema de arquivos ext2) e
         carrega /dev/initrd com uma versão compactado em gzip do sitema de arquivo inicial.

         2. O executável /linuxrc determina o que é necessário  para  (1)  montar  o  sistema  de
         arquivo raiz normal (isto é, tipo de dispositivo, controlador de dispositivo, sistema de
         arquivo) e (2) a midia da distribuição (isto é, CD-ROM, network, tape, ...).  Isto  pode
         ser  feito  questionando-se  o  usuário,  pela  auto-checagem,  ou  usando uma abordagem
         hibrida.

         3. O executável /linuxrc carrega os módulos necessários a partir do sistema  de  arquivo
         raiz inicial.

         4.  O  executável  /linuxrc  cria  e propaga o sistema de arquivo raiz. (Neste estágio o
         sitema de arquivo raiz normal não é um sitema completo ainda.)

         5. O executável /linuxrc marca /proc/sys/kernel/real-root-dev, desmonta /proc, o sistema
         de  arquivo  raiz  norma  e  qualquer outro sistema de arquivo que está montado, e então
         termina.

         6. O kernel então mounta o sistem de arquivo raiz normal.

         7. Agora que o sistema de arquivo é acessível e intacto, o carregador  de  inicialização
         pode ser instalado.

         8.  O  carregador  de  inicalização é configurado para carregar dentro de /dev/initrd um
         sistema de arquivo com a marca de módulos  que  está  acostumado  executar  no  sistema.
         (isto  é, O Dispositivo /dev/ram0 pode ser modificado, então desmontado, e finalmente, a
         imagem é escrita a partir de /dev/ram0 para um arquivo.)

         9. O sistema é agora  inicializável  e  tarefas  de  instalações  adicionais  podem  ser
         executadas.

       A função de chave de /dev/initrd no citado acima é para o re-uso dos dados de configuração
       durante a operação normal do sistema sem a requisição inicial no  seleção  do  kernel,  um
       kernel genérico longo ou, um kernel recompilado.

       Um  segundo  cenário  é  para  instalações  onde  o  Linux  é executado sobre sistemas com
       diferentes configurações de  hardware  em  uma  simples  rede  administrativa.   Em  casos
       semelhantes,  pode  ser  desejável usar somente um pequeno conjunto de kerneis (idealmente
       somente um) e por economia o sistema especifico parte de informações de configurações como
       pequena  como  possível.   Neste  caso,  cria  um  arquivo  comum  com  todos  os  módulos
       necessários.  Então, somente o arquivo /linuxrc para um  arquivo  executado  por  /linuxrc
       pode ser diferente.

       Um  terçeiro  cenário  é  mais  conveniente  para  disco  de  recuperação.   Por  causa de
       informações como a localização da partição do sistema de arquivo raiz não  ser  necessária
       em  tempo  de cargo, o sistema pode ser carregado a partir de /dev/initrd que pode usar um
       diálogo e/ou auto detecção seguida por uma possível controle de sanidade.

       Por último mas não menos importante, as distribuições Linux em CD-ROM  podem  usar  initrd
       para  instalação  facilitada  a  partir  do CD-ROM.  A distribuição pode usar LOADLIN para
       carga diretamentente /dev/initrd a partir do CD-ROM sem o uso  de  qualquer  disquete.   A
       distribuição  pode  também  usar um disquete de inicialização LILO e então um grande disco
       RAM via /dev/initrd a partir do CD-ROM.

CONFIGURAÇÃO

       O /dev/initrd é um dispositivo de bloco de leitura somente designado com o maior número de
       dispositivo  1 e o menor número de dispositivo 250.  Tipicamente /dev/initrd é propriedade
       de root.disk com modo 0400 (acesso de leitura para o super usuário somente).  Se o sistema
       Linux não 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
       Além   disso,   suporte   para   ambos   "RAM   disk"   e  "Initial  RAM  disk"  (isto  é,
       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 não pode ser carregado com um módulo.

ARQUIVOS

       /dev/initrd
       /dev/ram0
       /linuxrc
       /initrd

VEJA TAMBÉM

       chown(1), mknod(1),  /dev/ram(4),  freeramdisk(8),  rdev(8),  O  arquivo  de  documentação
       initrd.txt  na pacote fonte do kernel, o documentação do LILO e do LOADLIN, a documentação
       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  acessível.  De  outra  forma,  a entrada
       /proc/mounts não é atualizada.

       2. Com o kernel atual, se o diretório /initrd não existe,  então  /dev/ram0  não  irá  ser
       completamente desmontado se /dev/ram0 é usada por qualquer processo ou qualquer sistema de
       arquivo é montado nela.  Se /dev/ram0 não é completamente desmontada, então /dev/ram0  ira
       ficar na memória.

       3.  Usuários de /dev/initrd não devem depender do comportamento fornecido nas notas acima.
       O comportamente pode ser alterado nas futuras versões do kernel Linux.

AUTORES

       O  código  do  kernl  para  o  dispositivo  initrd  foi  escrio  por  Werner   Almesberger
       <almesber@lrc.epfl.ch>  e  Hans  Lermen <lermen@elserv.ffm.fgan.de>.  O código para initrd
       foi adicionado no kernel Linux na versão de desenvolvimento 1.3.73.

TRADUZIDO POR LDP-BR em 21/08/2000.

       André  L.  Fassone  Canova  <lonelywolf@blv.com.br>  (tradução)  Carlos  Augusto   Horylka
       <horylka@conectiva.com.br> (revisão)