mkinitcpio - Cria um ambiente ramdisk inicial
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.
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.