initrd(4) Device Drivers Manual initrd(4) NOME initrd - carregador de inicializacao inicializado com disco RAM CONFIGURACAO 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 Also, support for both "RAM disk" and "Initial RAM disk" (e.g., CONFIG_BLK_DEV_RAM=y and CONFIG_BLK_DEV_INITRD=y) must be compiled directly into the Linux kernel to use /dev/initrd. When using /dev/initrd, the RAM disk driver cannot be loaded as a module. DESCRICAO The special file /dev/initrd is a read-only block device. This device is a RAM disk that is initialized (e.g., loaded) by the boot loader before the kernel is started. The kernel then can use /dev/initrd's contents for a two-phase system boot-up. Na primeira fase, o kernel inicia e monta um sistema de arquivos inicial 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 superusuario. Depois do carregamento dos modulos iniciais, um novo sistema de arquivos (isto e, o sistema de arquivos normal) e montado a partir de um dispositivo diferente. Boot-up operation Quando o carregamento inicia com initrd, o sistema inicia como segue: (1) O carregador de inicializacao carrega o programa kernel e o conteudo de /dev/initrd na memoria. (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 para 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 quando /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. Opcoes 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. 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 This boot option disables the two-phase boot-up operation. The kernel performs the usual boot sequence as if /dev/initrd was not initialized. With this option, any contents of /dev/initrd loaded into memory by the boot loader contents are preserved. This option permits the contents of /dev/initrd to be any data and need not be limited to a filesystem image. However, device /dev/initrd is read-only and can be read only one time after system startup. 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. Changing the normal root filesystem By default, the kernel's settings (e.g., set in the kernel file with rdev(8) or compiled into the kernel file), or the boot loader option setting is used for the normal root filesystems. For an NFS-mounted normal root filesystem, one has to use the nfs_root_name and nfs_root_addrs boot options to give the NFS settings. For more information on NFS-mounted root see the kernel documentation file Documentation/filesystems/nfs/nfsroot.txt (or Documentation/filesystems/nfsroot.txt before Linux 2.6.33). For more information on setting the root filesystem see also the LILO and LOADLIN documentation. It is also possible for the /linuxrc executable to change the normal root device. For /linuxrc to change the normal root device, /proc must be mounted. After mounting /proc, /linuxrc changes the normal root device by writing into the proc files /proc/sys/kernel/real-root-dev, /proc/sys/kernel/nfs-root-name, and /proc/sys/kernel/nfs-root-addrs. For a physical root device, the root device is changed by having /linuxrc write the new root filesystem device number into /proc/sys/kernel/real-root-dev. For an NFS root filesystem, the root device is changed by having /linuxrc write the NFS setting into files /proc/sys/kernel/nfs-root-name and /proc/sys/kernel/nfs-root-addrs and then writing 0xff (e.g., the pseudo-NFS-device number) into file /proc/sys/kernel/real-root-dev. For example, the following shell command line would change the normal root device to /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 parapara um diretorio NSF /var/nfsroot na rede local com numero IP 193.8.232.7 para um sistema com numero IP 193.8.232.2 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 Note: The use of /proc/sys/kernel/real-root-dev to change the root filesystem is obsolete. See the Linux kernel source file Documentation/admin-guide/initrd.rst (or Documentation/initrd.txt before Linux 4.10) as well as pivot_root(2) and pivot_root(8) for information on the modern method of changing the root filesystem. 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) The executable /linuxrc sets /proc/sys/kernel/real-root-dev, unmounts /proc, the normal root filesystem and any other filesystems it has mounted, and then terminates. (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. ARQUIVOS /dev/initrd /dev/ram0 /linuxrc /initrd NOTAS o 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. o 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. o Usuarios de /dev/initrd nao devem depender do comportamento fornecido nas notas acima. O comportamente pode ser alterado nas futuras versoes do kernel Linux. VEJA TAMBEM chown(1), mknod(1), ram(4), freeramdisk(8), rdev(8) Documentation/admin-guide/initrd.rst (or Documentation/initrd.txt before Linux 4.10) in the Linux kernel source tree, the LILO documentation, the LOADLIN documentation, the SYSLINUX documentation TRADUCAO A traducao para portugues brasileiro desta pagina man foi criada por Andre Luiz Fassone e Carlos Augusto Horylka Esta traducao e uma documentacao livre; leia a Licenca Publica Geral GNU Versao 3 ou posterior para as condicoes de direitos autorais. Nenhuma responsabilidade e aceita. Se voce encontrar algum erro na traducao desta pagina de manual, envie um e-mail para a lista de discussao de tradutores . Linux man-pages 6.06 31 outubro 2023 initrd(4)