MKINITCPIO(8) mkinitcpio MKINITCPIO(8)

mkinitcpio - Cria um ambiente ramdisk inicial

mkinitcpio [opções]

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.

-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 especificado, 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.

-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, /boot/vmlinuz-${KERNELVERSION} ou /boot/vmlinuz-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.

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>_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).

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.

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.

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.

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). Eles recebem o kernel como o primeiro argumento, a imagem como o segundo e, opcionalmente, a imagem de kernel unificada como um terceiro.

Observe que o primeiro argumento estará vazio quando o mkinitcpio for invocado com -k none ou -k versão e a imagem do kernel não puder ser encontrada no sistema de arquivos.

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.

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.

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.

More information can be found at https://reproducible-builds.org.

/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.

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.

A more thorough article on configuring mkinitcpio: https://wiki.archlinux.org/title/mkinitcpio

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

Upon writing this man page, there were no noticeable bugs present. Please visit https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio/-/issues for an up to date list.

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

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

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 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.

27 abril 2024  "