Como adicionar scripts personalizados ao fazer uma personalização do LiveCD

0

Eu quero adicionar scripts personalizados ao fazer uma personalização de um LiveCD do Ubuntu.

    
por aditya 16.03.2012 / 07:06

1 resposta

1

Minha resposta comercial para essa pergunta é neste artigo no blog da Turnkeylinux. É uma distro derivada do Ubuntu e eles têm um conjunto de scripts físicos para viver em seu repositório que funciona muito bem. Bônus, você pode instalar seus scripts na linha principal do Ubuntu.

Há também remastersys e alguns outros, mas achei os scripts prontos para uso realmente simples para as minhas necessidades.

O artigo:
Convertendo uma imagem de disco virtual: VDI ou VMDK para um ISO, você pode distribuir Por Alon Swartz - 58 comentários | Últimas por unidade

Por que alguém em sã consciência deseja converter uma VM em uma ISO?

Boa pergunta, a resposta para Conor Fox (que foi a inspiração para este post - obrigado Conor!) foi distribuir sua imagem personalizada do TurnKey PostgreSQL para que outros pudessem usá-la.

A distribuição de um ISO em oposição a uma imagem de VM permite que ele seja instalado em qualquer plataforma de virtualização, bem como em bare-metal, com a vantagem adicional de ser executado em tempo real.

Suponho que isso seja uma boa razão, então vamos ao assunto.

Converta o disco da VM em imagem bruta e monte-o

Primeiramente, precisamos obter o qemu-img, uma ferramenta empacotada com o qemu (back-end de virtualização do KVM) para converter o disco da VM em uma imagem bruta e o TKLPatch, o mecanismo de personalização do TurnKey para empacotar a ISO.

Se você não estiver usando uma instalação do TurnKey, consulte as notas de instalação do TKLPatch .

apt-get install qemu
apt-get install tklpatch

Mostrarei como converter uma imagem VMWare VMDK em formato de disco bruto. Se você estiver usando uma plataforma de virtualização diferente, como o Virtualbox, veja este post ao converter um VDI em um arquivo raw imagem.

qemu-img convert -f vmdk turnkey-core.vmdk -O raw turnkey-core.raw

Em seguida, monte o disco bruto como um dispositivo de loopback.

mkdir turnkey-core.mount monte -o laço turnkey-core.raw turnkey-core.mount

GOTCHA 1 : Se sua VM tiver partições, é um pouco complicado. Você precisará configurar o dispositivo de loop, mapear partições e, finalmente, montar a partição rootfs. Você precisará do kpartx para configurar os mapeamentos.

loopdev=$(losetup -s -f turnkey-core.raw)

apt-get install kpartx
kpartx -a $loopdev

# p1 refers to the first partition (rootfs)
mkdir turnkey-core.mount
mount /dev/mapper/$(basename $loopdev)p1 turnkey-core.mount

Extrair o sistema de arquivos raiz e ajustar a configuração ISO

Agora, faça uma cópia do sistema de arquivos raiz e desmonte o loopback.

mkdir turnkey-core.rootfs
rsync -a -t -r -S -I turnkey-core.mount/ turnkey-core.rootfs

umount -d turnkey-core.mount

Se sua VM tiver partições (GOTCHA 1):

kpartx -d $ loopdev losetup -d $ loopdev

Como a VM é um sistema instalado, ao contrário do ISO, a tabela do sistema de arquivos precisa ser atualizada.

cat&gtturnkey-core.rootfs/etc/fstab&lt&ltEOF
aufs / aufs rw 0 0
tmpfs /tmp tmpfs nosuid,nodev 0 0
EOF

GOTCHA 2 : Se sua VM usa um kernel otimizado para virtualização (como o incluído nas compilações de TurnKey VM), você precisa substituí-lo por um kernel genérico e também remover as ferramentas vmware se instalado.

tklpatch-chroot turnkey-core.rootfs

# inside the chroot
apt-get update
apt-get install linux-image-generic
dpkg --purge $(dpkg-query --showformat='${Package}\n' -W 'vmware-tools*')
dpkg --purge $(dpkg-query --showformat='${Package}\n' -W '*-virtual')

exit

Gerar o ISO

Finalmente, prepare o cdroot e gere o ISO.

tklpatch-prepare-cdroot turnkey-core.rootfs/
tklpatch-geniso turnkey-core.cdroot/

É isso!

Bônus: Por padrão, o ISO será inicializado automaticamente. Se você quiser incluir o bootsplash e o bootmenu do TurnKey, extraia o cdroot de um ISO do TurnKey e diga ao tklpatch-prepare-cdroot para usá-lo como um modelo.

tklpatch-extractiso turnkey-core.iso
tklpatch-prepare-cdroot turnkey-core.rootfs/ turnkey-core.cdroot/
tklpatch-geniso turnkey-core.cdroot/
    
por RobotHumans 16.03.2012 / 10:31