Provided by: manpages-pt_20040726-2_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)