Escolar Documentos
Profissional Documentos
Cultura Documentos
baseada no Debian
Sobre o instrutor
Claudio A. Silva
Fundador: DuZeru Community
Analista de infraestrutura
Certificações:
● ITIL (Information Technology Infrastructure Library)
● Ethical hacking
● CTFL (Certified Tester Foundation Level)
● Green IT Citizen
● ISMP (Information Security Management Professional baseado na ISO / IEC 27001)
● CompTia Linux+
● LFX (Linux Foundation professional Institute Certified)
Requisitos
Construir imagens do sistema em modo live possui pouquíssimos
requisitos de sistema:
03 Firmwares / Drivers
● Suporte.
● Atualização de pacotes.
● Desenvolvimento de pacotes.
Debian e derivados
Há vários sistemas live baseados no Debian disponíveis e eles estão fazendo um ótimo
trabalho. Do ponto de vista do Debian, a maioria deles tem diversos aspectos totalmente
diferentes do Debian e por isso não podem ser considerados Debian:
● Eles não são projetos Debian e, portanto, não possuem suporte dentro do Debian.
● Eles misturam diferentes distribuições, por exemplo, testes e instáveis .
● Eles modificam o comportamento e / ou a aparência de pacotes, desmontando-os
para economizar espaço.
● Eles incluem pacotes de fora do repositório Debian.
● Eles enviam kernels customizados com patches adicionais que não fazem parte do
Debian.
● Eles não estão disponíveis em diferentes tipos, por exemplo, CDs, DVDs, imagens
USB-stick e netboots.
O que é Live Build
live-build é um conjunto de scripts para criar imagens do sistema live.
A ideia por trás do live-build é um conjunto de ferramentas que usa um diretório de
configuração para automatizar e personalizar completamente aspectos da construção de
uma imagem live.
O trabalho real de live-build é implementado nos comandos de baixo nível, Eles não são
usados pelos usuários finais.
Os comandos mencionados no texto devem ser executados com privilégios de
superusuário que podem ser obtidos ao se tornar o usuário root via su ou usando o sudo
. Para distinguir entre comandos que podem ser executados por um usuário não
privilegiado e aqueles que requerem privilégios de superusuário, os comandos são
prefixados por $ ou # respectivamente. Este símbolo não faz parte do comando.
Tipos de imagem
Trabalharemos com o processo de construção e instruções para um dos três tipos de
imagem, a iso-hybrid, o tipo de imagem mais versátil.
iso-hybrid - Pode ser usado em uma máquina virtual, mídia óptica ou dispositivo de
armazenamento portátil USB.
hdd - Uma imagem HDD é similar a uma imagem híbrida ISO em todos os aspectos, mas é
adequada para inicializar a partir de pendrives USB, discos rígidos USB e vários outros
dispositivos de armazenamento portáteis. Normalmente, uma imagem iso-hybrid pode
ser utilizada para esta finalidade, mas se você tiver um BIOS que não manipule
corretamente as imagens híbridas, precisará de uma imagem de HDD.
netboot - como o próprio nome diz, uma imagem de boot pela rede.
Live System
Imagem do kernel do Linux: geralmente chamada vmlinuz
Imagem de disco RAM inicial (initrd): um disco RAM configurado para a inicialização do Linux,
contendo módulos possivelmente necessários para montar a imagem do sistema e alguns
scripts para fazer isso, não o faremos manualmente, apesar de ser possível.
Bootloader: Um pequeno pedaço de código criado para inicializar a partir do meio escolhido,
possivelmente apresentando um prompt ou menu para permitir a seleção de
opções/configurações. Ele carrega o kernel do Linux e seu initrd para rodar com um sistema de
arquivos do sistema associado. Diferentes soluções podem ser usadas, mas padronizando aqui
vamos utilizar o GRUB (GRand Unifield Bootloader) criado pela GNU.
Estrutura Live resumida
(Raiz do sistema)
|-------+boot
| |-------+grub
| | |-------menu.lst
| |-------vmlinuz
| |-------initrd.gz
|
|-------+live
| |-------filesystem.squashfs
lb build : Responsável por iniciar uma construção do sistema Live. Veja O comando lb
build para mais informações.
Live Systems Project : O projeto que mantém, entre outros, os pacotes live-boot ,
live-build , live-config , live-tools e live-manual .
live-build : Uma coleção de scripts usados para construir sistemas live personalizados
live-config : Uma coleção de scripts usados para configurar um sistema ativo durante
o processo de inicialização.
live-tools : Uma coleção de scripts adicionais usados para executar tarefas úteis
dentro de um sistema ativo em execução.
cache: como o nome sugere, é o cache live-build, com os pacotes necessários para
compilar, assim como o bootstrap básico.
chroot: o famoso subsistema no qual todo o seu live CD é construído. O Chroot se torna o
squashfs compactado em /binary/live.
cache: como o nome sugere, é o cache live-build, com os pacotes necessários para
compilar, assim como o bootstrap básico.
chroot: o famoso subsistema no qual todo o seu live CD é construído. O Chroot se torna o
squashfs compactado em /binary/live.
--memtest memtest86+|memtest86|none
--parent-mirror-chroot http://packages.duzeru.orgg
define o local do espelho do pacote debian que será usado para buscar os pacotes da derivada para construir o
sistema ativo.
--parent-mirror-binary http://packages.duzeru.org
define o local do espelho do pacote derivativo que deve ser configurado na imagem final e que é aquele que um
usuário visualizaria e utilizaria.
--parent-mirror-chroot-backports | security
--parent-mirror-binary-backports | security
Comandos Live-build 2
--archive-areas “main contrib non-free"
Áreas do repositório em modo live
--parent-archive-areas “main contrib non-free"
Áreas do repositório após instalado no usuário final
--security true|false
define se os repositórios de segurança especificados nas opções de espelhamento de segurança devem ser
usados ou não.
--updates true|false
define se os arquivos do pacote debian updates devem ser incluídos na imagem ou não.
--backports true|false
define se os arquivos do pacote backports deviam ser incluídos na imagem ou não.
--parent-distribution
define a distribuição pai resultante do seu sistema live.
Tipos de Pacotes
Todos os pacotes incluídos na distribuição oficial do Debian são livres. A distribuição oficial é a que está
contida na seção main do repositório, pacotes de terceiros são oferecidos em seções separadas que não
podem ser incluídas na distribuição main por causa de licenças restritivas ou problemas legais. Eles
incluem:
config/archives/your-repository.list.chroot
Permite que você instale pacotes do repositório de captura instantânea debian-live no
momento da compilação do sistema live
config/archives/your-repository.list.binary
o repositório será adicionado ao diretório /etc/apt/sources.list.d/ do seu sistema
Você também deve colocar a chave GPG utilizada para assinar o repositório em:
config/archives/your-repository.key.{binary,chroot}
Comandos Live-build 3
--apt apt|aptitude \
--architectures ARCHITECTURE \
--binary-images iso|iso-hybrid|netboot|tar|hdd
--image-name remaster
O Nome da imagem remaster.ISO
--iso-publisher NAME
Quem publica a ISO
--interactive shell
define se após o estágio chroot terá um login do shell interativo para permitir que você faça customizações
manuais. Depois de fechar a sessão com o exit, a compilação continuará como de costume. Note que é
fortemente desencorajado pois destrói a beleza de poder automatizar completamente o processo de construção
e torná-lo não interativo. Por padrão vem false.
Comandos Live-build 4
lb config --apt-indices false
Isso não influenciará as entradas em /etc/apt/sources.list, apenas em /var/lib/apt que contém os arquivos de
índices.
A desvantagem é que o APT precisa desses índices para operar no sistema quer seja live ou não, então antes de
executar o apt-cache search ou o apt-get install, o usuário deve atualizar o apt para primeiro criar esses
índices com apt-get update.
--apt-options --yes
para permitir a instalação não interativa de pacotes.
Escolhendo pacotes para instalar
Existem várias maneiras de escolher quais pacotes serão instalados em sua imagem,
cobrindo uma variedade de diferentes necessidades.
Listas de pacotes
Uma maneira poderosa de expressar quais pacotes devem ser instalados. A sintaxe da
lista suporta seções condicionais que facilitam a construção de listas e adaptá-las para
uso em várias configurações.
Este diretório corresponde ao diretório raiz / do sistema ativo. Um uso típico é preencher
o esqueleto do diretório ( /etc/skel ) usado pelo sistema Live para criar o diretório inicial
do usuário. Outra é fornecer arquivos de configuração que podem ser simplesmente
adicionados ou substituídos na imagem sem processamento.
#!/bin/bash
mkdir /teste-live && touch /teste-live/arquivo.txt
echo “testes para script live” >> /teste-live/arquivo.txt
vim config/includes.binary/leiame.txt
/usr/share/live/build/bootloaders/*
para
config/includes.binary
https://www.debian.org/releases/stable/amd64/apb.html
https://wiki.debian.org/SystemBuildTools
https://manpages.debian.org/testing/live-build/lb_config.1.en.html
https://live-team.pages.debian.net/live-manual/