Personalizando um live CD e bootando-o diretamente do Grub

Este artigo irá lhe guiar pelo processo de personalização de um sistema Linux distribuído em live ISO, além de lhe ensinar a adicionar a mesma para boot através do Grub, sem a necessidade de uma mídia externa.

[ Hits: 6.550 ]

Por: Matheus em 18/06/2018


Colocando tudo no seu lugar



Finalizadas as devidas personalizações no sistema, é hora de desmontar tudo e botar de volta na caixa, no nosso caso, na ISO.

Saia do chroot e desmonte tudo:

# umount -R dev
# umount -R sys
# umount -R proc


Antes de fazer um squashfs do nosso novo live é interessante remover alguns arquivos:

# rm -rf /usr/portage/*
# rm -rf /var/tmp/portage/


Para fazer nosso squashfs devemos saber o tipo de compressão utilizado no original para evitar problemas no boot, você pode obter essa informação assim:

unsquashfs -s /mnt/cdrom/image.squashfs

Agora sim, proceda com a criação do squashfs:

# mksquashfs squashfs-root image.squashfs.new -comp xz

O processo deve rodar como root pois há arquivos no live que pertencem ao mesmo e se rodarmos como usuário comum eles serão ignorados, nos levando há um sistema quebrado.

Fato curioso, nossa squashfs descompactada terminou com um tamanho total de 10 GB:

du -sch squashfs-root
10G     squashfs-root
10G     total

Enquanto que a squashfs...

ls -lah image.squashfs.new
-rw-r--r-- 1 root root 1,9G mai  5 05:00 image.squashfs.new

Incrível o nível de compressão que se consegue com isso.

Agora continuando, crie uma pasta (se já não criou) para ser a base da ISO do seu novo live, copie todo o conteúdo de /mnt/cdrom e cuidado pois ele possui um image.squashfs (motivo pelo qual nomeamos a nossa com a extensão .new), se livre da mesma e deixe a sua no lugar.

# cp -r /mnt/cdrom/* .
# rm image.squashfs
# mv image.squashfs.new image.squashfs


Para a criação da ISO estarei usando o mkisofs que é parte do pacote cdrtools.

Você deve estar em uma pasta contendo todo o necessário (o novo image.squashfs e os conteúdos originais da ISO). Para que a criação da ISO ocorra sem problemas as informações como o label devem ser mantidas como no original, você pode usar o blkid para isso:

# blkid Downloads/livedvd-amd64-multilib-20160704.iso
Downloads/livedvd-amd64-multilib-20160704.iso: UUID="2016-07-04-02-56-54-00" LABEL="Gentoo-amd64" TYPE="iso9660" PTUUID="13d41d02" PTTYPE="dos"

Adicionalmente, para que possamos usar essa ISO em um pen drive ou HD deveremos utilizar o isohybryd, parte do pacote syslinux. O truque aqui é que a versão do arquivo isolinux.bin da ISO deve ser a mesma da versão instalada no seu sistema, para que não haja complicações iremos simplesmente copiar o da nossa instalação para a ISO:

# cp /usr/share/syslinux/isolinux.bin /home/pylm/Downloads/gentooDVD/

Agora crie a ISO utilizando a label descoberta com o blkid:

# mkisofs -l -r -J -V "Gentoo-amd64" -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o /home/pylm/gentoo-dvd.iso .

Para finalizar a preparação da ISO para boot em pen drive ou HD:

# isohybrid gentoo-dvd.iso

Se estiver utilizando um computador com UEFI adicione também o parâmetro -u ao comando acima.

Finalizando

Agora você já tem um sistema personalizado para usar como bem entender, entretanto deixo aqui um "bônus" que está descrito no título desse artigo, a possibilidade de iniciar essa ISO customizada diretamente do grub sem a necessidade de um DVD ou pen drive. A utilidade? Suponha que você fez algo muito muito errado no seu sistema e agora ele não boota mais, você não tem um pen drive com um live no mesmo e a última vez que usou um DVD foi a 5 anos atrás, seu leitor sequer funciona mais, e é aí que entra essa dica.

O processo é mais simples do que parece, basta mover a sua ISO para a raiz e adicionar a seguinte entrada no seu /boot/grub/grub.cfg:

menuentry "Gentoo Live" {
        set iso=/.gentoo-dvd.iso
        loopback loop ${iso}
        linux  (loop)/isolinux/gentoo isoloop=${iso}
        initrd (loop)/isolinux/gentoo.xz
}

Note o . na frente do nome, deixei a ISO oculta na raiz por questões de organização.

Entretanto essa entrada é temporária e não "sobreviveria" a uma atualização automatizada na configuração do grub, motivo pelo qual a adicionaremos no arquivo /etc/grub.d/40_custom que existe para esse propósito.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Personalizando
   3. Colocando tudo no seu lugar
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Liberdade, usuários e políticas de manutenção de ignorância

Como fazer uma distribuição Linux (parte 1)

Compilando e instalando o XFCE 4.2 no SuSE através dos fontes

Comando du - encontrando as maiores pastas e arquivos no Linux

Personalizando seu lilo no Debian

  
Comentários
[1] Comentário enviado por edps em 19/06/2018 - 14:14h

Ótimo artigo e me deu umas ideias, vou montar um *Box aqui, removendo tudo o que é desnecessário e porei em login automático:

https://edpsblog.wordpress.com/2018/04/30/how-to-login-no-ambiente-grafico-sem-display-manager/

Thanks pela contribuição.

[2] Comentário enviado por albfneto em 26/06/2018 - 21:57h

eu vou usar para personalizar Live DVDs, Favoritado.
excelente Artigo.
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: [i] Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva[/i].

[3] Comentário enviado por dtox712 em 27/06/2018 - 15:50h

excelente parabens pelo artigo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts