Archiso (Português)

From ArchWiki
Jump to: navigation, search
Status de tradução: Esse artigo é uma tradução de Archiso. Data da última tradução: 2018-11-11. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Archiso é um pequeno conjunto de scripts bash capazes de construir imagens em CD/DVD/USB Live totalmente funcionais do Arch Linux. É a mesma ferramenta usada para gerar as imagens oficiais, mas como é uma ferramenta muito genérica, pode ser usada para gerar qualquer coisa desde sistemas de resgate, discos de instalação, até sistemas de CD/DVD/USB Live, e quem sabe o que outro. Simplificando, se envolve Arch em uma montanha russa brilhante, pode fazê-lo. O coração e a alma de Archiso são mkarchiso. Todas as suas opções estão documentadas em sua saída de uso, portanto, seu uso direto não será coberto aqui. Em vez disso, este artigo da wiki funcionará como um guia para rolar sua própria mídia ao vivo em pouco tempo!

Configuração

Nota: Recomenda-se atuar como root em todas as etapas a seguir. Caso contrário, é muito provável que tenha problemas com permissões falsas mais tarde.

Antes de começar, instale o pacote archiso ou archiso-gitAUR.

O Archiso vem com dois "perfis": releng e baseline.

  • Se você deseja criar uma versão live totalmente personalizada do Arch Linux, pré-instalada com todos os seus programas e configurações favoritos, use releng.
  • Se você quer apenas criar a mídia live mais básica, sem pacotes pré-instalados e uma configuração minimalista, use baseline.

Agora copie o perfil de sua escolha para um diretório (archlive, no exemplo abaixo) onde você pode fazer ajustes e compilá-lo. Execute o seguinte, substituindo perfil por releng ou baseline.

# cp -r /usr/share/archiso/configs/perfil/archlive
  • Se você estiver usando o perfil releng para criar uma imagem totalmente personalizada, poderá prosseguir para #Configurar a mídia live.
  • Se você estiver usando o perfil baseline para criar uma imagem simples, não precisará fazer nenhuma personalização e prosseguir para #Compilando a ISO.

Configurar a mídia live

Esta seção detalha a configuração da imagem que você criará, permitindo que você defina os pacotes e as configurações que deseja que sua imagem live contenha.

Dentro do diretório archlive criado em #Configuração, há vários arquivos e diretórios. Estamos preocupados apenas com alguns deles, principalmente:

  • packages.x86_64 - é aqui que você lista, linha por linha, os pacotes que deseja instalar e
  • o diretório airootfs - esse diretório age como uma sobreposição e é onde você faz todas as personalizações.

Geralmente, cada tarefa administrativa que você faria normalmente após uma nova instalação, exceto a instalação do pacote, pode ser colocada no script archlive/airootfs/root/customize_airootfs.sh. Tem que ser escrito a partir da perspectiva do novo ambiente, então / no script significa a raiz da iso live a ser criada.

Instalando pacotes

Edite as listas de pacotes em packages.x86_64 para indicar quais pacotes estão instalados na mídia live.

Nota: Se você quiser usar um gerenciador de janela no Live CD, deverá adicionar os drivers de vídeo necessários e corretos, ou o gerenciador de janela poderá congelar durante o carregamento.

Repositório local personalizado

Para o propósito de preparar pacotes ou pacotes personalizados a partir de AUR / ABS, você também pode criar um repositório local personalizado. Se você deseja oferecer suporte a várias arquiteturas, deve-se tomar precauções para evitar erros. Cada arquitetura deve ter sua própria árvore de diretórios:

$ tree ~/customrepo/ | sed "s/$(uname -m)/<arch>/g"
/home/archie/customrepo/
└── <arch>
    ├── customrepo.db -> customrepo.db.tar.xz
    ├── customrepo.db.tar.xz
    ├── customrepo.files -> customrepo.files.tar.xz
    ├── customrepo.files.tar.xz
    └── personal-website-git-b99cce0-1-<arch>.pkg.tar.xz

1 directory, 5 files

Você pode então adicionar seu repositório colocando o seguinte em ~/archlive/pacman.conf, acima das outras entradas do repositório (para prioridade máxima):

~/archlive/pacman.conf
...
# repositório personalizado
[customrepo]
SigLevel = Optional TrustAll
Server = file:///home/usuário/customrepo/$arch
...

O executável repo-add verifica se o pacote é apropriado. Se esse não for o caso, você encontrará mensagens de erro semelhantes a esta:

==> ERRO: '/home/archie/customrepo/<arch>/foo-<arch>.pkg.tar.xz' não tem uma extensão válida para arquivo de base de dados.

Impedindo a instalação de pacotes pertencentes ao grupo base

Por padrão, /usr/bin/mkarchiso, um script usado por ~/archlive/build.sh, chama um dos arch-install-scripts chamados pacstrap sem a opção -i, que faz com que o pacman não aguardar por entrada de usuário durante o processo de instalação.

Ao colocar os pacotes do grupo base na lista negra adicionando-os à linha IgnorePkg em ~/archlive/pacman.conf, o pacman pergunta se eles ainda devem ser instalados, o que significa que eles quando eles forem, a entrada do usuário é ignorada. Para se livrar desses pacotes, existem várias opções:

  • Suja: Adicionar a opção -i a cada linha chamando pacstrap no /usr/bin/mkarchiso.
  • Limpa: Criar uma cópia de /usr/bin/mkarchiso na qual você adiciona a opção e adapta ~/archlive/build.sh de forma que ela chama a versão modificada do script mkarchiso.
  • Avançado: Criar uma função para ~/archlive/build.sh que remova explicitamente os pacotes após a instalação base. Isso deixaria o conforto de não ter que digitar muito durante o processo de instalação.

Instalando pacotes do multilib

Para instalar pacotes do repositório multilib, simplesmente remova o comentário do repositório em ~/archlive/pacman.conf:

pacman.conf
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

Adicionando arquivos à imagem

Nota: Você deve ser root para fazer isso, não altere a propriedade de nenhum dos arquivos que você copiou, tudo dentro do diretório airootfs deve ser propriedade da raiz. As propriedades apropriadas serão resolvidas em breve.

O diretório airootfs atua como uma sobreposição, pense nele como o diretório raiz '/' em seu sistema atual, portanto, todos os arquivos que você colocar dentro deste diretório serão copiados na inicialização.

Então, se você tem um conjunto de scripts do iptables em seu sistema atual que deseja usar na imagem ao vivo, copie-os da seguinte forma:

# cp -r /etc/iptables ~/archlive/airootfs/etc

Colocar arquivos no diretório inicial dos usuários é um pouco diferente. Não os coloque dentro de airootfs/home, mas crie um diretório skel dentro de airootfs/ e coloque-os lá. Em seguida, adicionaremos os comandos relevantes ao customize_airootfs.sh que usaremos para copiá-los durante a inicialização e classificar as permissões.

Primeiro, cria o diretório skel:

# mkdir ~/archlive/airootfs/etc/skel

Agora, copie os arquivos 'home' para o diretório skel, por exemplo, para .bashrc:

# cp ~/.bashrc ~/archlive/airootfs/etc/skel/

Quando ~/archlive/airootfs/root/customize_airootfs.sh é executado e um novo usuário é criado, os arquivos do diretório skel serão automaticamente copiados para a nova pasta base, com as permissões definidas corretamente.

Da mesma forma, alguns cuidados são necessários para arquivos de configuração especiais que residem em algum ponto da hierarquia. Como um exemplo, o arquivo de configuração /etc/X11/xinit/xinitrc reside em um caminho que pode ser sobrescrito pela instalação de um pacote. Para colocar o arquivo de configuração deve-se colocar o xinitrc personalizado em ~/archlive/airootfs/etc/skel/ e então modificar customize_airootfs.sh para movê-lo adequadamente.

Gerenciador de boot

O arquivo padrão deve funcionar bem, então você não precisa tocá-lo.

Devido à natureza modular do isolinux, você pode usar muitos addons, pois todos os arquivos *.c32 são copiados e disponibilizados para você. Dê uma olhada no site oficial do syslinux e no repositório git do archiso. Utilizando os referidos addons, é possível fazer menus visualmente atraentes e complexos. Veja aqui.

Secure Boot do UEFI

Se você deseja tornar seu Archiso inicializável em um ambiente ativado pelo UEFI Secure Boot, você deve usar um gerenciador de boot assinado. Você pode seguir as instruções em Secure Boot#Using a signed boot loader.

Gerenciador de login

O início do X na inicialização do sistema é feita ativando o serviço systemd do gerenciador de login. Se você souber qual arquivo .service precisa de um link de software: Ótimo. Caso contrário, você pode descobrir facilmente caso esteja usando o mesmo programa no sistema em que você criou sua iso. Apenas use:

$ ls -l /etc/systemd/system/display-manager.service

Agora, crie o mesmo link em ~/archlive/airootfs/etc/systemd/system. Para LXDM:

# ln -s /usr/lib/systemd/system/lxdm.service ~/archlive/airootfs/etc/systemd/system/display-manager.service

Isso vai habilitar LXDM na inicialização do sistema em seu sistema live.

Alternativamente, você pode simplesmente habilitar o serviço em airootfs/root/customize_airootfs.sh junto com outros serviços que estão habilitados lá.

Se você deseja que o ambiente gráfico inicie automaticamente durante a inicialização, certifique-se de editar airootfs/root/customize_airootfs.sh e substituir

systemctl set-default multi-user.target

com

systemctl set-default graphical.target

Alterando login automático

A configuração para o login automático do getty está localizada em airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf.

Você pode modificar este arquivo para alterar o usuário de login automático:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin isouser --noclear %I 38400 linux

Ou remova-o completamente para desativar o login automático.

Compilando a ISO

Agora você está pronto para transformar seus arquivos no .iso que você pode gravar em CD ou USB:

Primeiro, crie o diretório out/ (opcional, build.sh o criará se não existir),

# mkdir ~/archlive/out/

então, dentro de ~/archlive, execute:

# ./build.sh -v

O script agora baixará e instalará os pacotes que você especificou para work/*/airootfs, criará o kernel e iniciará as imagens, aplicará suas personalizações e, finalmente, compilará a iso em out/.

Recompilar a ISO

Recompilar a iso após modificações não é oficialmente suportado. No entanto, é facilmente possível através da aplicação de dois passos. Primeiro você tem que remover os arquivos de bloqueio no diretório de trabalho:

# rm -v work/build.make_*

Além disso, é necessário editar o script airootfs/root/customize_airootfs.sh e adicionar um comando id no início da linha useradd como mostrado aqui. Caso contrário, a reconstrução será interrompida neste ponto, porque o usuário a ser adicionado já existe FS#41865.

! id arch && useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh arch

Também remova dados persistentes, como usuários criados ou links simbólicos, como /etc/sudoers.

As recompilações podem ser aceleradas ligeiramente editando o script pacstrap (localizado em /bin/pacstrap) e alterando o seguinte na linha 361:

Antes:

if ! pacman -r "$newroot" -Sy "${pacman_args[@]}"; then

Após:

if ! pacman -r "$newroot" -Sy --needed "${pacman_args[@]}"; then

Isso aumenta a velocidade do bootstrap inicial, já que ele não precisa baixar e instalar nenhum dos pacotes base que já estão instalados.

Usando a ISO

Veja a seção Obtendo e instalando o Arch#Métodos de instalação para várias opções.

Veja também

Documentação e tutoriais

Exemplo de modelo para personalização

Criando uma ISO de instalação offline