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.961 ]

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

O futuro e o Linux

Com vocês, Larry, a vaca

Impressione seus amigos com o Tux bonitinho no login modo console

Técnicas de memorização para facilitar o uso VI (Comandos básicos)

Servidor VNC no Fedora

  
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