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)

Linux 2.0                                           6/11/1997                                          INITRD(4)