Pular para o conteúdo

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.
Matheus pylm
Hits: 8.327 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

Parte 3: 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.

   1. Introdução
   2. Personalizando
   3. Colocando tudo no seu lugar
Nenhum artigo encontrado.

Por quê?

Festival: O sintetizador de voz para Linux

Agendando tarefas com o crontab

Sound Converter: Converta formatos de música no Linux

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

#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: Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva.
#3 Comentário enviado por dtox712 em 27/06/2018 - 15:50h
excelente parabens pelo artigo.

Contribuir com comentário

Entre na sua conta para comentar.