Archiso (Português)

Status de tradução:
Esse artigo é uma tradução de
Archiso
. Data da última tradução: 2021-12-25. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Artigos relacionados
Archiso como servidor pxe
Instalação offline
Archiso
é uma ferramenta altamente customizável para construir imagens ISO do Arch Linux live CD/USB. As
imagens oficiais
são construídas com Archiso. Ele pode ser usado como base para sistemas de resgate, instaladores de linux ou outros sistemas. Este artigo wiki explica como instalar o Archiso, e como configurá-lo para controlar aspectos da imagem ISO resultante, tais como pacotes e arquivos incluídos. Requisitos técnicos e etapas de construção podem ser encontrados na
documentação oficial do projeto
. O Archiso é implementado com uma série de scripts bash. O componente central do Archiso é o comando
mkarchiso
. Suas opções estão documentadas em
mkarchiso -h
e não são cobertas aqui.
Instalação
Install
O pacote
archiso
ou
archiso-git
AUR
.
Preparar um perfil personalizado
Archiso vem com dois perfis,
releng
e
baseline
.
releng
é utilizado para criar a ISO oficial de instalação mensal. Ela pode ser usada como ponto de partida para a criação de uma imagem ISO personalizada.
baseline
é uma configuração minimalista, que inclui apenas os pacotes mínimos necessários para arrancar o ambiente vivo a partir do meio.
Para construir uma versão não modificada dos perfis, pule para
#Construir a ISO
. Caso contrário, se você desejar adaptar ou personalizar um dos perfis enviados pela Archiso, copie-o de
/usr/share/archiso/configs/
profile-name
/
para um diretório gravável com um nome à sua escolha. Por exemplo:
$ cp -r /usr/share/archiso/configs/
profile
/
archlive
Proceder às seções seguintes para personalizar e construir o perfil personalizado.
Estrutura do perfil
Um perfil archiso contém uma configuração que define a imagem ISO resultante. A estrutura do perfil é documentada em
/usr/share/doc/archiso/README.profile.rst
[1]
.
Selecionando pacotes
Edite
packages.x86_64
para selecionar quais pacotes devem ser instalados na imagem live do sistema, listando os pacotes linha por linha.
Repositório local personalizado
archlive
/pacman.conf
...
[
customrepo
]
SigLevel = Optional TrustAll
Server = file://
/path/to/customrepo
...
Note
O ordenamento dentro de
pacman.conf
importa. Para dar prioridade máxima ao seu repositório personalizado, coloque-o acima das outras entradas do repositório.
Pacotes de multilib
Para instalar pacotes do repositório
multilib
, simplesmente descomente esse repositório em
pacman.conf
.
Adicionando arquivos para a imagem
O diretório airootfs é usado como ponto de partida para o
diretório root
(
/
) do sistema live da imagem. Todo o seu conteúdo será copiado para o diretório de trabalho antes que os pacotes sejam instalados.
Coloque quaisquer arquivos e/ou diretórios personalizados no local desejado sob
airootfs/
. Por exemplo, se você tiver um conjunto de scripts iptables em seu sistema atual que você deseja utilizar em sua imagem live, copie-os tal como:
$ cp -r /etc/iptables
archlive
/airootfs/etc
Da mesma forma, é necessário algum cuidado com arquivos de configuração especiais que residem em algum lugar abaixo da hierarquia. Partes em falta da estrutura do diretório podem ser simplesmente criadas com
mkdir(1)
.
Tip
Para adicionar um arquivo ao diretório home do usuário instalador, coloque-o em
archlive
/airootfs/root/
. Para adicionar um arquivo a todos os outros diretórios residenciais dos usuários, coloque-o em
archlive
/airootfs/etc/skel/
.
Note
Arquivos personalizados que entrem em conflito com aqueles fornecidos por pacotes serão sobrescritos, a menos que um pacote os especifique como
arquivos de backup
.
Por padrão,
permissions
será
644
para arquivos e
755
para diretórios. Todos eles serão de propriedade do usuário root.  Para definir diferentes permissões ou propriedade para arquivos e/ou pastas específicos, use a matriz associativa
file_permissions
em
profiledef.sh
. Veja
README.profile.rst
para detalhes.
Kernel
Embora ambos os perfis incluídos no Archiso tenham apenas
linux
, as ISOs podem ser feitas para incluir outros ou mesmo múltiplos
kernels
.
Primeiro, edite
packages.x86_64
para incluir os nomes dos pacotes do kernel que você deseja. Quando
mkarchiso
for executado, incluirá todos os arquivos
work_dir
/airootfs/boot/vmlinuz-*
e
work_dir
/boot/initramfs-*.img
no arquivo ISO (e adicionalmente na imagem FAT usada para inicialização da UEFI).
mkinitcpio
predefinidos por padrão construirão imagens de initramas de recurso. Para uma ISO, a imagem principal do initramfs não incluiria normalmente o gancho
autodetect
tornando assim desnecessária uma imagem adicional de fallback. Para evitar a criação de uma imagem de fallback initramfs, para que ela não tome espaço ou retarde o processo de construção, coloque um preset personalizado em
archlive
/airootfs/etc/mkinitcpio.d/
pkgbase
.preset
por exemplo, para
linux-lts
:
archlive
/airootfs/etc/mkinitcpio.d/linux-lts.preset
PRESETS=('archiso')

ALL_kver='/boot/vmlinuz-linux-lts'
ALL_config='/etc/mkinitcpio.conf'

archiso_image="/boot/initramfs-linux-lts.img"
Finalmente criar
configuração do boot loader
para permitir a inicialização do(s) kernel(s).
Boot loader
Archiso suporta
syslinux
para a inicialização da BIOS e
systemd-boot
para a inicialização da UEFI.
Consulte os artigos dos boot loaders para obter informações sobre sua sintaxe de configuração.
Tip
O perfil
releng
por padrão é construído em uma ISO que suporta tanto BIOS quanto UEFI boot quando gravado em um disco óptico usando El Torito, ou quando gravado em um disco rígido (ou unidade flash USB, ou similar) usando
Isohybrid
.
Devido à natureza modular do isolinux, você é capaz de usar muitos addons uma vez que todos os arquivos
.c32
são copiados e estão disponíveis para você. Dê uma olhada no
site oficial do syslinux
e no
archiso git repo
. Usando esses addons, é possível tornar os menus visualmente atraentes e complexos. Veja
[2]
.
mkarchiso espera que a configuração
systemd-boot
esteja no diretório
efiboot
, e a configuração
syslinux
nos diretórios
syslinux
e
isolinux
.
UEFI Secure Boot
Se você quiser tornar seu Archiso inicializável em um ambiente UEFI Secure Boot habilitado, você deve usar um boot loader assinado. Você pode seguir as instruções em
Secure Boot#Booting an installation medium
.
systemd units
Para
enable
systemd services/sockets/timers para o ambiente live você precisa criar manualmente os links simbólicos, assim como o
systemctl enable
o faz.
Por exemplo, para ativar
gpm.service
, que contém
WantedBy=multi-user.target
, execute:
$ mkdir -p
archlive
/airootfs/etc/systemd/system/multi-user.target.wants
$ ln -s /usr/lib/systemd/system/gpm.service
archlive
/airootfs/etc/systemd/system/multi-user.target.wants/
Os links simbólicos necessários podem ser enconrados lendo a unidade do systemd, ou se você tem o serviço instalado,
enabling
e observando a saída do systemctl.
Gerir o Login
O início do X na inicialização é feito habilitando o serviço
systemd
de seu login manager.Se você não souber qual
.service
habilita, você pode facilmente descobrir caso esteja usando o mesmo programa no sistema em que você constrói sua ISO. Basta usar:
$ ls -l /etc/systemd/system/display-manager.service
Agora crie o mesmo link simbólico em
archlive
/airootfs/etc/systemd/system/
. Para LXDM:
$ ln -s /usr/lib/systemd/system/lxdm.service
archlive
/airootfs/etc/systemd/system/display-manager.service
Isto permitirá o LXDM no início do sistema em seu sistema live.
Mudança de login automático
A configuração para o login automático da getty está localizada em
airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf
.
Você pode modificar este arquivo para mudar o usuário do login automático:
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin
username
--noclear %I 38400 linux
Ou removê-lo completamente para desativar o login automático.
Usuários e senhas
Para criar um
usuário
que estará disponível no ambiente live, você deve editar manualmente
archlive
/airootfs/etc/passwd
,
archlive
/airootfs/etc/shadow
,
archlive
/airootfs/etc/group
e
archlive
/airootfs/etc/gshadow
.
Note
Se esses arquivos existirem, eles devem conter o usuário root e o grupo.
Por exemplo, para adicionar um usuário
archie
. Adicioná-los ao
archlive
/airootfs/etc/passwd
seguindo a sintaxe
passwd(5)
:
archlive
/airootfs/etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh
archie:x:1000:1000::/home/archie:/usr/bin/zsh
Gerar um hash de senha com
openssl passwd -6
e adicioná-lo ao
archlive
/airootfs/etc/shadow
seguindo a sintaxe de
shadow(5)
. Por exemplo:
archlive
/airootfs/etc/shadow
root::14871::::::
archie:$6$randomsalt$cij4/pJREFQV/NgAgh9YyBIoCRRNq2jp5l8lbnE5aLggJnzIRmNVlogAg8N6hEEecLwXHtMQIl2NX2HlDqhCU1:14871::::::
Adicionar o grupo do usuário e os grupos dos quais farão parte ao
archlive
/airootfs/etc/group
de acordo com
group(5)
. Por exemplo:
archlive
/airootfs/etc/group
root:x:0:root
adm:x:4:archie
wheel:x:10:archie
uucp:x:14:archie
archie:x:1000:
Criar o apropriado
archlive
/airootfs/etc/gshadow
de acordo com
gshadow(5)
:
archlive
/airootfs/etc/gshadow
root:!*::root
archie:!*::
Certifique-se de que
/etc/shadow
e
/etc/gshadow
tenham as permissões corretas:
archlive
/profiledef.sh
...
file_permissions=(
  ...
  ["/etc/shadow"]="0:0:0400"
  ["/etc/gshadow"]="0:0:0400"
)
Após a instalação do pacote,
mkarchiso
criará todos os diretórios home especificados para os usuários listados em
archlive
/airootfs/etc/passwd
e copiará
work_directory
/x86_64/airootfs/etc/skel/*
para eles. Os arquivos copiados terão a propriedade apropriada do usuário e do grupo.
Construir a ISO
Construa uma ISO que você pode então gravar em CD ou USB, executando:
# mkarchiso -v -w
/path/to/work_dir
-o
/path/to/out_dir
/path/to/profile/
-w
especifica o diretório de trabalho. Se a opção não for especificada, por padrão será
work
no diretório atual.
-o
especifica o diretório onde a imagem ISO construída será colocada. Se a opção não for especificada, por padrão será
out
no diretório atual.
Deve-se notar que o arquivo de perfil
profiledef.sh
não pode ser especificado ao executar mkarchiso, apenas o caminho para o arquivo
Substitua
/path/to/profile/
pelo caminho para seu perfil personalizado, ou por
/usr/share/archiso/configs/releng/
se você estiver construindo um perfil não modificado.
Tip
Se a memória permitir, é preferível colocar o diretório de trabalho em
tmpfs
. Ex.:
# mkarchiso -v -w /tmp/archiso-tmp
/path/to/profile/
Quando executado, o script irá baixar e instalar os pacotes que você especificou para
work_directory
/x86_64/airootfs
, criar o kernel e as imagens init, aplicar suas customizações e finalmente construir a ISO no diretório de saída.
Remoção do diretório de trabalho
Warning
Se
mkarchiso
for interrompido, execute
findmnt(8)
para ter certeza de que não há amarras de montagem antes de apagá-lo - caso contrário,
você pode perder dados
(por exemplo, um dispositivo externo montado em
/run/media/
user
/
label
} fica preso dentro de
work/x86_64/airootfs/run/media/
user
/
label
durante o processo de construção).
Os arquivos temporários são copiados para o diretório de trabalho. Após a construção bem sucedida da ISO, o diretório de trabalho e seu conteúdo podem ser excluídos. Por exemplo:
# rm -rf
/path/to/work_dir
usando a ISO
Ver
Installation guide (Português)#Preparar uma mídia de instalação
para várias opções.
Teste a ISO no QEMU
Install
as dependências opcionais
qemu-desktop
e
edk2-ovmf
.
Use o script de conveniência
run_archiso
para executar uma imagem construída usando
QEMU
.
$ run_archiso -i
/path/to/
archlinux-
yyyy.mm.dd
-x86_64.iso
A máquina virtual também pode ser executada utilizando a emulação UEFI:
$ run_archiso -u -i
/path/to/
archlinux-
yyyy.mm.dd
-x86_64.iso
Dicas e truques
Criptografia
Para gerar uma imagem encriptada, você pode usar o pacote
archiso-encryption
AUR
[
link quebrado
: package not found]
.
Para construir o perfil incluído
releng
, voce tem que configurar um repositório personalizado contendo o pacote
cryptsetup-archiso
AUR
[
link quebrado
: package not found]
.
Se você tiver problemas para encontrar o dispositivo raiz em tempo de execução, ajuste o
encrypt
gancho do pacote acima.
Preparar uma ISO para uma instalação via SSH
Note
Desde
archlinux-2021.02.01-x86_64.iso
,
cloud-init support
é fornecido, e
sshd.service
é
habilitado por padrão
.
Para
Install Arch Linux via SSH (Português)
sem qualquer interação com o sistema, uma chave pública SSH deve ser colocada em
authorized_keys
.
A adição da chave SSH pode ser feita manualmente (explicada aqui), ou
por cloud-init
.
Para adicionar a chave manualmente, primeiro
copiar o perfil releng do Archiso
a um diretório gravável. O seguinte exemplo usa
archlive
.
$ cp -r /usr/share/archiso/configs/
profile/
archlive
Criar um diretório
.ssh
no diretório home do usuário que será usado para fazer o login. O exemplo a seguir será a utilização do usuário root.
$ mkdir archlive/airootfs/root/.ssh
Adicionar a(s) chave(s) pública(s) SSH, que será(ão) usada(s) para fazer o login, a
authorized_keys
:
$ cat ~/.ssh/
key1
.pub >> archlive/airootfs/root/.ssh/authorized_keys
$ cat ~/.ssh/
key2
.pub >> archlive/airootfs/root/.ssh/authorized_keys
Definir as
permissões
corretas e a propriedade para o diretório
.ssh
e o arquivo
authorized_keys
:
archlive/profiledef.sh
...
file_permissions=(
  ...
  ["/root"]="0:0:0750"
  ["/root/.ssh"]="0:0:0700"
  ["/root/.ssh/authorized_keys"]="0:0:0600"
)
Finalmente
construa a ISO
. Ao inicializar a ISO,
OpenSSH
começará e será possível fazer o log in usando a(s) chave(s) privada(s) SSH correspondente(s).
Conectar-se automaticamente a uma rede Wi-Fi usando iwd
Crie
/var/lib/iwd/
dentro do diretório
airootfs
do perfil e defina as permissões corretas::
$ mkdir -p
archlive
/airootfs/var/lib/iwd
archlive/profiledef.sh
...
file_permissions=(
  ...
  ["/var/lib/iwd"]="0:0:0700"
)
Siga as instruções em
iwd (Português)#Configuração de rede
e
iwd.network(5)
para criar um arquivo de configuração de rede para sua rede Wi-Fi.
Salve o arquivo de configuração dentro de
archlive
/airootfs/var/lib/iwd/
.
Ajustando o tamanho da partição da root na mosca
Se você receber a seguinte mensagem de erro ao baixar arquivos ou instalar pacotes no ambiente ISO inicializado, você pode precisar desligar e ajustar o tamanho da partição root enquanto inicializa o Archiso novamente.
error: partition / too full: 63256 blocks needed, 61450 blocks free
error: not enough free disk space
error: failed to commit transaction (not enough free disk space)
Errors occurred: no packages were upgraded.
Para ajustar o tamanho da partição root no sistema Arch Linux live, pressione a tecla
Tab
para editar os parâmetros do kernel.
Anexe
spaço_de_vaca=2G
no final para obter o tamanho 2G para a partição root.
Pressione
Enter
para continuar a inicialização no sistema live.
Você pode verificar o tamanho dos sistemas de arquivos executando:
$ df -h
Você também pode ajustar o tamanho da partição root na hora, executando este comando:
# mount -o remount,size=2G /run/archiso/cowspace
Veja mais parâmetros de inicialização
aqui
Solução de problemas
O window manager congela
Se você quiser usar um
window manager
no Live CD, então você deve adicionar os necessários e os corretos
video drivers
, ou a WM pode congelar no carregamento.
Veja também
Página do projeto Archiso
Documentação oficial
Lista de discussão Arch Linux Release Engineering
#archlinux-releng — Arch Linux Release Engineering Canal IRC
archiso-manager — a ferramenta utilizada para a construção das ISOs mensais oficiais