MKINITCPIO(8)

NOME
mkinitcpio - Cria um ambiente ramdisk inicial

SINOPSE

mkinitcpio [opções]

DESCRIÇÃO

Cria um ambiente ramdisk inicial para inicializar o kernel Linux. O ramdisk inicial é, em essência, um ambiente muito pequeno (espaço de usuário antecipado) que carrega vários módulos do kernel e configura as coisas necessárias antes de entregar o controle para o init. Isso torna possível ter, por exemplo, sistemas de arquivos raiz criptografados e sistemas de arquivos raiz em um arranjo RAID de software. mkinitcpio permite fácil extensão com ganchos personalizados, tem autodetecção em tempo de execução e muitos outros recursos.

OPÇÕES

-A, --addhooks ganchos
    Adiciona os ganchos adicionais à imagem. Eles serão processados ​​em ordem após todos os outros ganchos do arquivo de configuração. Vários ganchos devem ser separados por vírgulas. Esta opção pode ser especificada várias vezes.

-c, --config configuração
    Usa o arquivo configuração para gerar o ramdisk. Padrão: /etc/mkinitcpio.conf. Se especificada, os arquivos drop-in em /etc/mkinitcpio.conf.d/ serão ignorados.

-d, --generatedir diretório
    Define diretório como o local onde o initramfs é construído. Isso pode ser útil para gerar um ramfs de desligamento em /run/initramfs/.

-D, --hookdir diretório
    Define diretório como o local onde os ganchos serão pesquisados ​​ao gerar a imagem.

-g, --generate nome-de-arquivo
    Gera uma imagem CPIO como nome-de-arquivo. Padrão: não; isso significa que nada será gravado no sistema de arquivos a menos que essa opção seja especificada.

-H, --hookhelp nome-do-gancho
    Exibe a ajuda para o nome de gancho nome-de-gancho.

-h, --help
    Exibe uma breve visão geral das opções de linha de comando disponíveis.

-k, --kernel versão-do-kernel
    Usa versão-do-kernel, em vez do kernel em execução no momento. Este pode ser um caminho para uma imagem do kernel (suportado somente para arquiteturas baseadas em x86), uma versão específica do kernel ou a palavra-chave especial none. No último caso, nenhum módulo do kernel é adicionado à imagem.

-L, --listhooks
    Lista todos os ganchos disponíveis.

-M, --automods
    Exibe módulos encontrados via autodetecção. mkinitcpio tentará determinar automaticamente quais módulos do kernel são necessários para iniciar seu computador. Esta opção lista quais módulos foram detectados.

-n, --nocolor
    Desabilita a saída com cores.

--nopost
    Não executa pós-ganchos.

-U, --uki nome-de-arquivo
    Gera uma imagem de kernel unificada, ou UKI, como nome-de-arquivo. Se uma imagem CPIO for construída com sucesso, ela será usada para gerar uma imagem de kernel unificada para inicialização UEFI. Isso combina o initramfs, o kernel e o cmdline do kernel em um executável. Isso é útil para a integridade da cadeia de inicialização onde o arquivo é assinado. Padrão: não. Para uma lista de opções relevantes, consulte Opções para imagem de kernel unificada abaixo.

-P, --allpresets
    Processa todas as predefinições contidas em /etc/mkinitcpio.d. Veja a opção -p para mais detalhes sobre predefinições.

-p, --preset predefinição
    Cria imagens initramfs de acordo com a predefinição especificada. Pode ser um arquivo em /etc/mkinitcpio.d (sem a extensão .preset) ou um caminho completo e absoluto para um arquivo. Esta opção pode ser especificada várias vezes para processar várias predefinições.

-R, --remove
    Remove imagens initramfs geradas pelas predefinições especificados. Se usado em combinação com -P|--allpresets, remove as imagens para todos as predefinições. Esta opção só pode ser usada com -p|--presets ou -P|--allpresets.

-r, --moduleroot raiz
    Especifica o diretório raiz para encontrar os módulos, o padrão é /.

-S, --skiphooks ganchos
    Ignora ganchos ao gerar a imagem. Vários ganchos devem ser separados por vírgula. Esta opção pode ser especificada várias vezes.

-s, --save
    Salva o diretório de construção para o ramdisk inicial. Padrão: não; Isso significa que o diretório não será retido se essa opção não for especificada. Útil para propósitos de depuração.

-t, --builddir tmpdir
    Usa tmpdir como o diretório de construção temporário em vez de /tmp. tmpdir deve existir. A variável de ambiente TMPDIR também é honrada para definir esse local, mas a opção de linha de comando terá precedência.

-V, --version
    Exibe a informação da versão.

-v, --verbose
    Saída detalhada. Produz mais informações sobre o que está acontecendo durante a criação do ramdisk.

-z, --compress compactação
    Substitui o método de compactação pelo programa compactação.

OPÇÕES PARA IMAGEM DE KERNEL UNIFICADA

--cmdline nome-de-arquivo
    Usa a linha de comando do kernel com a imagem de kernel unificada. Se nenhuma for especificada, tente um dos arquivos /etc/kernel/cmdline, /usr/lib/kernel/cmdline ou /proc/cmdline.

--no-cmdline
    Omite a incorporação de uma string de linha de comando do kernel na imagem de kernel unificada. As opções de linha de comando do kernel precisarão ser passadas pela linha de comando do kernel. Substitui a opção --cmdline.

--splash nome-de-arquivo
    Os executáveis ​​UEFI podem mostrar um arquivo bitmap na inicialização.

--uefistub nome-de-arquivo
    Imagem stub UEFI usada para geração unificada de imagem do kernel. Não tem efeito se ukify estiver sendo usado. Padrão: tenta procurar um carregador stub systemd-boot ou gummiboot.

--ukiconfig nome-de-arquivo
    Arquivo de configuração para passar para ukify. Se nenhum for especificado, tenta um dos arquivos /etc/kernel/uki.conf ou /usr/lib/kernel/uki.conf. Se nenhum deles existir, ukify usará seu padrão interno.

--no-ukify
    Não usa ukify para construir UKIs mesmo que esteja disponível. Isso não é recomendado.

--kernelimage nome-de-arquivo
    Inclui uma imagem do kernel para a imagem de kernel unificada. Padrão: um de /lib/modules/${KERNELVERSION}/vmlinuz, /lib/modules/${KERNELVERSION}/vmlinux, /boot/vmlinuz-${KERNELVERSION}, /boot/vmlinux-${KERNELVERSION}, /boot/vmlinuz-linux ou /boot/vmlinux-linux.

--osrelease nome-de-arquivo
    Inclui um arquivo os-release para a imagem de kernel unificada. Padrão: /etc/os-release ou /usr/lib/os-release.

SOBRE AS PREDEFINIÇÕES

Uma predefinição é uma forma dizer como criar um ramdisk inicial. Em vez de especificar o arquivo de configuração e qual arquivo de saída, toda vez que você gera um novo ramdisk inicial, você cria uma predefinição e usa o switch -p para gerar um ramdisk inicial de acordo com sua predefinição.

Normalmente, as predefinições são arquivos localizados em /etc/mkinitcpio.d com a extensão .preset, por exemplo, /etc/mkinitcpio.d/linux.preset para a predefinição linux. Também é possível usar arquivos em outros locais. Então, o caminho para esse arquivo precisa ser especificado.

Arquivos de predefinições são scripts de shell que são originados pelo mkinitcpio e as seguintes variáveis ​​influenciarão seu comportamento.

Note que mkinitcpio chama a si mesmo para cada predefinição e passa as opções definidas no arquivo de predefinição via argumentos de linha de comando. Elas são mencionadas na descrição das opções abaixo, então consulte o manual dos argumentos de linha de comando para mais informações sobre uma opção em particular.

PRESETS
    Um vetor de nomes de predefinições definidos neste arquivo. Esses nomes serão usados ​​como prefixo para outras opções para fornecer opções específicas de predefinições. Por exemplo, se um PRESET=('custom') for fornecido, a imagem será especificada via custom_image='/boot/custom.img'.

<predefinição>_kver (o valor padrão é ALL_kver — um dos dois é required)
    Especifica a versão do kernel (via -k em mkinitcpio).

<predefinição>_config (o padrão é o valor de ALL_config — um dos dois é required)
    Caminho para o arquivo de configuração (passado via -c para mkinitcpio).

<predefinição>_uki (um de <predefinição>_uki e <predefinição>_image é obrigatório)
    Caminho do arquivo de saída para uma imagem de kernel unificada (passada via -U para mkinitcpio).

<predefinição>_image (um de <predefinição>_uki e <predefinição>_image é obrigatório)
    Caminho do arquivo de saída para a imagem gerada (passada via -g para mkinitcpio).

<predefinição>_comdline (o padrão é o valor de ALL_cmdline)
    Caminho para o arquivo de linha de comando do kernel (passado via --cmdline para o mkinitcpio). Esta opção é usada apenas ao gerar imagens de kernel unificadas.

<predefinição>_splash (o valor padrão é ALL_splash)
    Caminho para o arquivo de imagem do splash (passado via --splash para o mkinicpio). Esta opção é usada apenas para gerar imagens de kernel unificadas.

<predefinição>_kerneldest (o valor padrão é ALL_kerneldest)
    Caminho de destino do kernel que será passado para os pós-ganchos. Isso substitui o local padrão do kernel (geralmente /boot) e permite a personalização de onde o kernel deve ser localizado para inicialização. O valor é passado para os pós-ganchos por meio da variável de ambiente KERNELDESTINATION.

<predefinição>_options
    Mais argumentos de linha de comando para passar para mkinitcpio como uma string ou um vetor. Eles serão anexados no final da chamada para mkinitcpio (depois de todas as opções mencionadas acima), então isso pode ser usado para sobrescrever opções (por exemplo, passe um -S gancho aqui para pular um gancho).

SOBRE OS GANCHOS DE INSTALAÇÃO

Os ganchos de instalação são scripts bash que são originados durante o tempo de execução do mkinitcpio para adicionar módulos, binários e outros arquivos à imagem. Uma variedade de funções existe para facilitar isso.

add_module nome-do-módulo
    Adiciona o módulo especificado por nome-do-módilo à imagem. Dependências são derivadas e adicionadas automaticamente.

add_binary binário [ destino ] [ modo ]
    Adiciona um binário à imagem. O argumento binário não precisa ser um caminho absoluto e, se necessário, uma pesquisa será realizada. Se o binário for um binário ELF vinculado dinamicamente, as dependências serão adicionadas automaticamente. Se for um link simbólico, tanto o link simbólico quanto o binário de destino serão adicionados. Opcionalmente, um destino dentro da imagem initramfs, bem como um modo de arquivo, podem ser especificados. Por padrão, o destino e o modo são obtidos da fonte derivada de binário.

add_file caminho [ destino ] [ modo ]
    Adiciona um arquivo e quaisquer diretórios pais necessários à imagem. Se for um link simbólico, tanto o link simbólico quanto o arquivo de destino serão adicionados. Opcionalmente, um destino dentro da imagem initramfs, bem como um modo de arquivo, podem ser especificados. Por padrão, o destino e o modo serão obtidos da fonte e do modo do arquivo especificados pelo caminho.

add_file_early caminho [ destino ] [ modo ]
    Adiciona um arquivo e quaisquer diretórios pais necessários à imagem antecipada descompactada. Funciona da mesma forma que add_file.

add_dir caminho
    Adiciona um diretório e seus pais à imagem.

add_dir_early caminho
    Adiciona um diretório e seus pais à imagem antecipada descompactada. Funciona da mesma forma que add_dir.

add_full_dir diretório [ glob ] [ prefixo_a_remover ]
    Adiciona recursivamente um diretório à imagem percorrendo o caminho fornecido e chamando add_file, add_dir e add_symlink adequadamente. Esta função não seguirá links simbólicos, nem adicionará os alvos de links simbólicos.
    Se o argumento glob for passado, somente arquivos e links simbólicos correspondentes a esse glob serão adicionados.
    Se o argumento prefixo_a_remover for passado, ele será usado para remover o caminho de destino (caminho na imagem initramfs) do prefixo especificado pelo argumento prefixo_a_remover. Isso pode ser útil ao escrever ganchos rootfs-overlay.

add_symlink caminho [ alvo-link ]
    Adiciona um link simbólico à imagem no caminho especificado, opcionalmente apontando para o alvo-link especificado. Se o alvo-link não for fornecido, presume-se que esse link simbólico existe no sistema de arquivos real, e o alvo será lido usando readlink(1). Não há verificação feita para garantir que o alvo do link simbólico exista, e os links simbólicos não serão seguidos recursivamente.

add_all_modules [ -f filtro ] padrão
    Adiciona módulos à imagem, sem considerar a lista de permissões de autodetecção. padrão deve ser um subdiretório dentro da árvore do kernel descrevendo um subconjunto de módulos a serem incluídos. Refinamento adicional pode ser fornecido por meio do sinalizador -f com uma expressão regular estendida.

add_checked_modules [ -f filtro ] padrão
    Semelhante a add_all_modules com a restrição de que apenas módulos que correspondem à lista de permissões gerada pelo gancho autodetect serão adicionados à imagem. Se o gancho autodetect não estiver presente na imagem, esta função é idêntica a add_all_modules.

add_runscript nome-do-script
    Adiciona um gancho de tempo de execução à imagem, que é um script de shell compatível com ash do busybox. O nome do script tem garantia de corresponder ao nome do gancho do qual o script é chamado.

add_udev_rule arquivo-de-regra
    Adiciona uma regra udev à imagem. Dependências em binários serão descobertas e adicionadas. O argumento pode ser um nome de arquivo de regra (descoberto de caminhos udev bem conhecidos) ou um caminho absoluto.

add_all_modules_from_symbol símbolo caminhos
    Adiciona módulos dos diretórios caminhos contendo o símbolo à imagem.

add_checked_modules_from_symbol símbolo caminhos
    Semelhante a add_all_modules_from_symbol com a restrição de que apenas módulos que correspondem à lista de permissões gerada pelo gancho autodetect serão adicionados à imagem. Se o gancho autodetect não estiver presente na imagem, esta função é idêntica a add_all_modules_from_symbol.

SOBRE O CPIO ANTECIPADO

mkinitcpio tem suporte para CPIO antecipado. Esses são arquivos CPIO descompactados anexados ao arquivo CPIO principal compactado. Eles são usados ​​para carregamento antecipado de microcódigo de CPU ou carregamento de substituições de tabela ACPI.

Os ganchos de instalação podem instalar arquivos neste arquivo adicionando-os a $EARLYROOT.

SOBRE OS GANCHOS DE TEMPO DE EXECUÇÃO

Ganchos de tempo de execução adicionados à imagem por meio da função add_runscript de um gancho de instalação são capazes de fornecer funcionalidade extra durante o espaço de usuário antecipado. Funções específicas nesses arquivos serão executadas em momentos diferentes. Um gancho pode definir um ou mais deles. Em cada ponto de gancho, os ganchos são executados na ordem em que são definidos na variável HOOKS, exceto para ganchos de limpeza que são executados ao contrário.

run_earlyhook
    Funções com esse nome serão executadas assim que as montagens da API forem configuradas e a linha de comando do kernel for analisada. Daemons necessários para o espaço de usuário antecipado devem ser iniciados a partir desse ponto de gancho.

run_hook
    Funções com esse nome serão executadas após quaisquer ganchos antecipados e após módulos definidos pelo usuário terem sido instalados. Esse é o ponto de gancho mais comum, e funcionalidades como varredura de volumes LVM e mapeamento de volumes criptografados devem ser executadas aqui.

run_latehook
    Funções com esse nome serão executadas após a raiz ter sido montada. Isso geralmente é usado para configuração necessária adicional na raiz real, como montar outras partições do sistema.

run_cleanuphook
    Funções com esse nome são executadas o mais tarde possível. Quaisquer daemons iniciados a partir de uma função run_earlyhook devem ser desligados aqui em preparação para alternar para a raiz real.

run_emergencyhook
    Funções com esse nome são executadas antes do shell de emergência ser iniciado em caso de falha de inicialização. Por exemplo, isso permite que telas de inicialização terminem seu processo, para que os usuários percebam a falha.

getarg argumento [ padrão ]
    Esta função pode ser usada em ganchos de tempo de execução para obter um argumento do cmdline do kernel. Se argumento existir com um valor, o valor será retornado. Se argumento existir sem um valor, y será retornado. Se argumento não existir, padrão será retornado. Se padrão não for especificado, nada será retornado.

SOBRE os PÓS-GANCHOS

Pós-ganchos são executáveis ​​ou scripts que são executados após a imagem ter sido gerada com sucesso e podem ser usados ​​para processamento posterior (por exemplo, assinatura). Quando kernel-install(8) invoca mkinitcpio, pós-ganchos são desabilitados.

Eles recebem o kernel como o primeiro argumento, a imagem como segundo e, opcionalmente, a imagem de kernel unficada como um terceiro.

Observe: Se mkinicpio é invocado com -k none ou -k versão e a imagem do kernel não puder ser encontrada, o primeiro argumento estará vazio.

As seguintes variáveis ​​de ambiente são passadas:

KERNELVERSION
    Contém a versão completa do kernel a partir do qual a imagem foi construída.

KERNELDESTINATION
    O local padrão onde o kernel deve estar localizado para inicialização. Isso geralmente é o mesmo que o primeiro argumento, mas pode ser diferente se mkinitcpio não tiver sido invocado com -k /boot/*. Se nenhuma imagem de kernel tiver sido encontrada, essa variável também estará vazia.

AMBIENTE INIT ANTECIPADO

mkinitcpio dá tratamento especial a certas variáveis ​​de ambiente passadas na linha de comando do kernel:

break[=<premount|postmount>]
    Se especificado, mkinitcpio iniciará um shell durante o início do init. O parâmetro opcional controla quando isso ocorre: quando premount ou nenhum parâmetro for especificado, o shell será iniciado antes da montagem da raiz. Se postmount for especificado, o shell será iniciado após a montagem da raiz.

disablehooks=lista-de-ganchos
    Esta é uma lista separada por vírgulas de ganchos que serão ignorados durante o init antecipado.

earlymodules=lista-de-módulos
    Esta é uma lista separada por vírgulas de módulos que serão carregados antes de quaisquer outros. Isso geralmente não é necessário e geralmente aponta para um problema de configuração ou kernel.

quiet
    Faz com que o mkinitcpio produza menos mensagens durante a inicialização. Erros não serão suprimidos.

ro
    Especifica que a raiz deve ser montada com permissões somente leitura. Esse é o comportamento padrão.

rw
    Especifica que a raiz deve ser montada com permissões de leitura e escrita. Isso geralmente só é útil se seu initramfs usar o gancho fsck.

root=dispositivo-raiz
    Esta variável descreve a partição raiz que o init antecipado montará antes de passar o controle para o init real. mkinitcpio entende uma variedade de formatos, o mais básico dos quais é o caminho para o dispositivo de bloco, seja diretamente, como /dev/sda2, ou usando um link simbólico udev, como /dev/disk/by-label/CorsairF80-root. Suporte para identificação por tags LABEL ou UUID também é suportado, como LABEL=CorsairF80-root. A partir do util-linux 2.22, PARTUUID e PARTLABEL também são suportados. A identificação via ID de dispositivo principal/secundário codificado em hexadecimal é suportada por razões de legado, mas deve ser evitada, pois tende a ser frágil.

rootdelay[=segundos]
    Define o atraso, em segundos, que o mkinitcpio está disposto a esperar até que o dispositivo raiz apareça, se ele não estiver disponível imediatamente. O padrão é 10 segundos. Se um inteiro inválido for passado, essa variável não terá efeito.

rootflags=lista-de-singalizadores
    Uma lista separada por vírgulas de sinalizadores que serão passados ​​para o comando mount(8) ao montar o sistema de arquivos raiz. Valores aceitáveis ​​são específicos do sistema de arquivos.

rootfstype=tipo-de-fs
    Substitui o tipo de sistema de arquivos que está sendo montado como raiz. Isso quase nunca deve ser necessário, pois mount(8) geralmente detecta isso sozinho.

rd.debug
    Habilita a depuração do shell (xtrace). Se rd.log não for também um parâmetro na linha de comando do kernel, este parâmetro implica rd.log=console.

rd.log[=<console|file|kmsg|all>]
    Habilita o registro de mensagens de espaço do usuário antecipadas. Se especificado, o parâmetro opcional descreve onde essas informações são registradas. Várias opções podem ser juntadas em OU, usando o caractere pipe (|). As mensagens são sempre registradas no console, a menos que o parâmetro quiet seja passado. Se o parâmetro opcional não for especificado, kmsg|console será assumido. Se rd.log não estiver presente na linha de comando de kernel, nenhum registro ocorrerá.

    console
        Escreve a saída para /dev/console.

    file
        Escreve a saída para /run/initramfs/init.log.

    kmsg
        Escreve a saída para o dispositivo /dev/kmsg (introduzido no Linux 3.5). Esta opção é um no-op se seu kernel carece de suporte para /dev/kmsg.

    all
        Escreve a saída para todos os alvos de logs conhecidos.

Essas são apenas as variáveis ​​que o núcleo do mkinitcpio honra. Ganchos adicionais podem procurar outras variáveis ​​de ambiente e devem ser documentados pela saída de ajuda para o gancho.

REPRODUTIBILIDADE

O mkinitcpio tem como objetivo criar imagens initramfs reproduzíveis por padrão.

Isso significa que duas execuções subsequentes do mkinitcpio devem produzir dois arquivos idênticos no nível binário.

Os registros de data e hora no initramfs são definidos para o epoch Unix de 1970-01-01.

Note que para que a compilação seja totalmente reproduzível, o compressor especificado (por exemplo, gzip, xz) também deve produzir arquivos reproduzíveis. No momento da escrita, como um exemplo inexaustivo, o compressor lzop é incapaz de produzir arquivos reproduzíveis devido à inserção de um registro de data e hora do tempo de execução.

Mais informações podem ser encontradas em

ARQUIVOS

/etc/mkinitcpio.conf
    Arquivo de configuração padrão do mkinitcpio.

/etc/mkinitcpio.conf.d
    Diretório contendo arquivos de configuração drop-in.

/etc/mkinitcpio.d
    Diretório contendo predefinições do mkinitcpio.

/etc/initcpio/install, /usr/lib/initcpio/install
    Caminho de pesquisa para ganchos de tempo de construção.

/etc/initcpio/hooks, /usr/lib/initcpio/hooks
    Caminho de pesquisa para ganchos de tempo de execução do espaço do usuário antecipado.

/etc/initcpio/post, /usr/lib/initcpio/post
    Caminho de pesquisa para ganchos de pós-geração.

EXEMPLOS

mkinitcpio
    Executa um teste. Isso gerará um ramdisk inicial, mas não gravará nada. Use -g para criar a imagem real.

mkinitcpio -p linux
    Cria um ramdisk inicial com base na predefinição linux.

mkinitcpio -g /boot/initramfs-linux.img -k /boot/vmlinuz-linux
    Cria um ramdisk inicial para o kernel em /boot/vmlinuz-linux. A imagem resultante será gravada em /boot/initramfs-linux.img.

mkinitcpio -U /efi/EFI/Linux/systemd-linux.efi
    Cria um ramdisk inicial para o kernel junto com uma imagem de kernel unificada. O executável resultante será gravado em /efi/EFI/Linux/systemd-linux.efi.

mkinitcpio -U /efi/EFI/Linux/systemd-linux.efi --splash /usr/share/systemd/bootctl/splash-arch.bmp
    Cria um ramdisk inicial para o kernel e uma imagem de kernel unificada. Isso também inclui uma imagem splash que será usada durante a inicialização.

VEJA TAMBÉM

Um artigo mais completo sobre a configuração do mkinitcpio:

initrd(4), lsinitcpio(1), mkinitcpio.conf(5), bootparam(7)

BUGS

Ao escrever esta página de manual, não havia nenhum bug perceptível presente. Visite para uma lista atualizada.

AUTORES

mkinitcpio é mantido pela comunidade Arch Linux. Consulte o arquivo AUTHORS para uma lista completa de contribuidores.

DIREITOS AUTORAIS

Copyright 🄯 Contribuidores do mkinitcpio. GPL-2.0-only.

TRADUÇÃO
A tradução para português brasileiro desta página man foi criada por Rafael Fontenelle <rafaelff@gnome.org>

Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 (https://www.gnu.org/licenses/gpl-3.0.html) ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita.

Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para a lista de discussão de tradutores (debian-l10n-portuguese@lists.debian.org).