.\" -*- nroff -*- .\" This man-page is Copyright (C) 1997 John S. Kallal .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and author(s) of this work. .\" .\" If the you wish to distribute versions of this work under other .\" conditions than the above, please contact the author(s) at the following .\" for permission: .\" .\" John S. Kallal - .\" email: .\" mail: 518 Kerfoot Farm RD, Wilmington, DE 19803-2444, USA .\" phone: (302)654-5478 .\" .\" $Id: initrd.4,v 1.1 2000/10/20 13:05:11 ricardo Exp $ .TH INITRD 4 "6/11/1997" "Linux 2.0" "Manual do Programador Linux" .SH NOME initrd \- carregador de inicialização inicializado com disco RAM .\" .\" .\" .SH DESCRIÇÃO O arquivo especial .B /dev/initrd é um dispositivo de bloco de leitura somente. O dispositivo .B /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 .BR /dev/initrd "'s " para uma carga do sistema em duas fases. .PP Na primeira fase, o kernel inicia e monta um sistema de arquivos inical a partir dos conteúdos de .B /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. .\" .\" .\" .SH "OPERAÇÃO DE CARREGAMENTO DO SISTEMA" Quando o carregamento inicia com .BR initrd ", the system boots as follows:" .RS 0.2i .PP 1. O carregador de inicialização carrega o programa kernel e .BR "o conteúdo de "/dev/initrd "na memória." .PP 2. Na inicilização do kernel, o kernel decomprime e copia o conteúdo do dispositivo .B /dev/initrd para o dispositivo .B /dev/ram0 e então a memória livre é usada por .BR /dev/initrd . .PP 3. O kernel então monta o dispostivo em leitura-escrita .B /dev/ram0 como o sistema de arquivo raiz inicial. .PP 4. Se a indicação normal do sistema de arquivo raiz é além disto o sistema de arquivo raiz inicial (isto é, .B /dev/ram0 ) então o kernel salta o último passo para a seqüência usual de inicialização. .PP 5. Se o arquivo executável .BR /linuxrc " está presente no sistema de arquivo raiz inicial, " /linuxrc é executado com uid 0. (O arquivo .B /linuxrc deve ter permissão de execução. O arquivo .B /linuxrc pode ser um executável válido, incluindo um script de interpretador de comando.) .PP 6. Se .B /linuxrc não é executado ou .B /linuxrc termina, o sistema de arquivo raiz normal é montado. (Se .BR /linuxrc existe com qualquer sistema de arquivo raiz montado no sistema de arquivo raiz inicial, então o comportamento do kernel não é .BR ESPECIFICADO . Veja a seção de .BR NOTAS para o comportamento atual do kernel.) .PP 7. Se o arquivo raiz normal tem o diretório .BR /initrd ", o dispositivo" .B /dev/ram0 é movido a partir de .BR / " para " /initrd . De outra forma se o diretório .BR /initrd " não é um dispositivo existente" /dev/ram0 " não é montado." (Quando movido a partir de .BR / " para " /initrd ", " /dev/ram0 não é montado e então processos podem ficar rodando a paritr de .BR /dev/ram0 . Se o diretório .BR /initrd não existe no sistema de arquivo raiz e quaisquer processos ficam rodando a partir de .BR /dev/ram0 " quando " /linuxrc existe, o comportamento do kernel não é .BR ESPECIFICADO . Veja as seções .BR NOTAS para o comportamento atual do kernel.) .PP 8. A seqüência usual de inicialização (isto é, a invocação de .BR /sbin/init ") é executado sobre o sistema de arquivo raiz normal." .\" .\" .\" .SH OPÇÕES As seguintes opções do carregador de inicialização quando usadas com .BR initrd ", afetam a operação de carregamento do kernel:" .TP .BI initrd= "nomearquivo" Especifica o arquivo para carregar como o conteúdo de .BR /dev/initrd . .RB "Para o " LOADLIN isto é um opção de comando de linha. .RB "Para o " LILO " você deve usar este comando no arquivo de configuração do .BR 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. .TP .B 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 .B /dev/initrd não fosse inicializado. Com esta opção, qualquer conteúdo carregado de .B /dev/initrd para dento da memória pelo carregador de inicialização são preservados. Esta opção permite o conteúdo de .B /dev/initrd ser qualquer dados e não necessita ser limitado para uma imagem do sistema de arquivo. De qualquer forma, o dispositivo .B /dev/initrd é de somente leitura e pode ser lido somente uma vez depois da inicialização do sistema. .TP .BI root= "device-name" Especifica o dispositivo para ser usado como o sistema de arquivo raiz normal. .RB "Para " LOADLIN esta é uma opção de comando de linha. .RB "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 .BR 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. .\" .\" .\" .SH "MUDANDO O SISTEMA DE ARQUIVOS RAIZ NORMAL" Por padrão, a seleção do kernel (isto é, marcado no arquivo do kernel com .B 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 .BR 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 .BR nfsroot.txt . Para mais informações sobre marcações do sistema de arquivo raiz veja além disso a documentação do .BR LILO " e " LOADLIN " . .PP Isto é além disso possível para o executável .BR /linuxrc alterar o dispositivo raiz normal. Para o .BR /linuxrc alterar o dispositivo raiz normal, .BR /proc " deve ser montado." Depois da montagem de .BR /proc ", " /linuxrc altera o dispositivo raiz normal pela escrita dentro dos arquivos proc .BR /proc/sys/kernel/real-root-dev ", " .BR /proc/sys/kernel/nfs-root-name ", e " .BR /proc/sys/kernel/nfs-root-addrs . Para um dispositivo raiz físico, o dispositivo raiz é alterado por tendo .BR /linuxrc escrito o novo número de dispositivo de sistema de arquivo raiz dentro de .BR /proc/sys/kernel/real-root-dev . Para um sistema de arquivo raiz NFS, o dispositivo raiz é alterado por tendo .BR /linuxrc escrito a marcação NFS dentro dos arquivos .BR /proc/sys/kernel/nfs-root-name " e " .BR /proc/sys/kernel/nfs-root-addrs e então escrevendo 0xff (isto é, o falso número de dispositivo NFS) dentro do arquivo .BR /proc/sys/kernel/real-root-dev . Por exemplo, a seguinte linha de comando do interpretador de comando alteraria o dispositivo raiz normal para .BR /dev/hdb1 : .nf echo 0x365 >/proc/sys/kernel/real-root-dev .fi Um exemplo NSF, a seguinte linha de comando do interpretador de comando alteraria o dispositivo raiz normal para para um diretório NSF .BR /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': .nf 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 .fi .\" .\" .\" .SH "USO" A motivação principal para implementação de .BR initrd é para permitir uma configuração modular do kernel na isntalação do sistema. .PP Um cenário possível de instalação do sistema é o seguinte: .RS 0.2i .PP 1. O programa carregador inicializa a partir do disquete ou outra midia com um kernel mínimo (isto é, suporte para .BR /dev/ram ", " /dev/initrd ", e o sistema de arquivos ext2) e carrega " .BR /dev/initrd " com uma versão compactado em gzip do sitema de arquivo inicial. .PP 2. O executável .BR /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. .PP 3. O executável .BR /linuxrc carrega os módulos necessários a partir do sistema de arquivo raiz inicial. .PP 4. O executável .BR /linuxrc cria e propaga o sistema de arquivo raiz. (Neste estágio o sitema de arquivo raiz normal não é um sitema completo ainda.) .PP 5. O executável .BR /linuxrc " marca " /proc/sys/kernel/real-root-dev, desmonta .BR /proc ", " o sistema de arquivo raiz norma e qualquer outro sistema de arquivo que está montado, e então termina. .PP 6. O kernel então mounta o sistem de arquivo raiz normal. .PP 7. Agora que o sistema de arquivo é acessível e intacto, o carregador de inicialização pode ser instalado. .PP 8. O carregador de inicalização é configurado para carregar dentro de .BR /dev/initrd um sistema de arquivo com a marca de módulos que está acostumado executar no sistema. (isto é, O Dispositivo .BR /dev/ram0 pode ser modificado, então desmontado, e finalmente, a imagem é escrita a partir de .BR /dev/ram0 para um arquivo.) .PP 9. O sistema é agora inicializável e tarefas de instalações adicionais podem ser executadas. .RE .PP A função de chave de .BR /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. .PP 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 .B /linuxrc para um arquivo executado por .B /linuxrc pode ser diferente. .PP 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 .B /dev/initrd que pode usar um diálogo e/ou auto detecção seguida por uma possível controle de sanidade. .PP Por último mas não menos importante, as distribuições Linux em CD-ROM podem usar .BR initrd para instalação facilitada a partir do CD-ROM. A distribuição pode usar .BR LOADLIN para carga diretamentente .BR /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 .BR LILO e então um grande disco RAM via .BR /dev/initrd " a partir do CD-ROM." .\" .\" .\" .SH CONFIGURAÇÃO O .B /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 .B /dev/initrd é propriedade de .B root.disk com modo 0400 (acesso de leitura para o super usuário somente). Se o sistema Linux não tem .B /dev/initrd criado, ele pode ser criado com os seguintes comandos: .nf \fB mknod -m 400 /dev/initrd b 1 250 chown root:disk /dev/initrd \fP .fi Além disso, suporte para ambos "RAM disk" e "Initial RAM disk" (isto é, .BR CONFIG_BLK_DEV_RAM=y " e " CONFIG_BLK_DEV_INITRD=y ) suporte dever ser compilado dentro do kernel Linux para uso de .BR /dev/initrd . Quando usando, .BR /dev/initrd ", " o controlador de disco RAM não pode ser carregado com um módulo. .\" .\" .\" .SH ARQUIVOS .I /dev/initrd .br .I /dev/ram0 .br .I /linuxrc .br .I /initrd .SH "VEJA TAMBÉM" .BR chown (1), .BR mknod (1), .BR /dev/ram (4), .BR freeramdisk (8), .BR rdev (8), O arquivo de documentação .I initrd.txt na pacote fonte do kernel, o documentação do LILO e do LOADLIN, a documentação SYSLINUX. .\" .\" .\" .SH NOTAS 1. Com o kernel atual, qualquer sistema de arquivo fica montado quando .BR /dev/ram0 " e movida a partir de " / " para " /initrd continua sendo acessível. De outra forma, a entrada .BR /proc/mounts não é atualizada. .PP 2. Com o kernel atual, se o diretório .BR /initrd " não existe, então " /dev/ram0 não irá ser completamente desmontado se .BR /dev/ram0 é usada por qualquer processo ou qualquer sistema de arquivo é montado nela. Se .BR /dev/ram0 " não é completamente desmontada, " então .BR /dev/ram0 ira ficar na memória. .PP 3. Usuários de .BR /dev/initrd não devem depender do comportamento fornecido nas notas acima. O comportamente pode ser alterado nas futuras versões do kernel Linux. .\" .\" .\" .SH AUTORES O código do kernl para o dispositivo .BR initrd foi escrio por Werner Almesberger e Hans Lermen . O código para .BR initrd foi adicionado no kernel Linux na versão de desenvolvimento 1.3.73. .SH TRADUZIDO POR LDP-BR em 21/08/2000. \&\fR\&\f(CWAndré L. Fassone Canova (tradução)\fR \&\fR\&\f(CWCarlos Augusto Horylka (revisão)\fR