O filesystem.manifest é gerado com o comando:
dpkg-query -W --showformat='${Package} ${Version}\n' > casper/filesystem.manifest
A sintaxe é, portanto, package_name version
, Exemplo:
xserver-xorg-video-nouveau 1:0.0.16+git20110411+8378443-1
O formato de dpkg --get-selections
é um pouco diferente, package_name install
Exemplo
xserver-xorg-video-nouveau install
Assim, você pode usar o arquivo, provavelmente em mais de uma maneira,
apt-get install -y $(awk '{print }' filesystem.manifest)
Para ser honesto, depois de fazer algumas iso personalizadas ao longo dos anos, há uma curva de aprendizado sobre como isso funciona. Uma vez que você entenda algumas coisas, não é muito difícil, é apenas o conhecimento necessário é moderadamente grande e não há uma fonte única e atualizada de informações.
Você usa dois diretórios de compilação
~/custom - build directory for the iso
~/rootfs - build directory for the root file system.
custom - este diretório contém todos os arquivos que irão para o iso final. Ele contém o sistema de arquivos raiz, um kernel, um initramfs e o isolinux.
rootfs - este diretório contém o sistema de arquivos live CD e você compacta esse diretório (usando mksquashfs) e o inclui no CD. Você pode construir isso com o debootstrap (live D do zero) ou extrair o sistema de arquivos do ubuntu-desktop.iso (personalize um live CD). Veja os links do wiki do ubuntu abaixo para detalhes.
pontos-chave
1) Entenda o mksquashfs - você usa o mksquashfs para compactar o sistema de arquivos raiz em casper/filesystem.squashfs
sudo mksquashfs /home/bodhi/rootfs custom/casper/filesystem.squashfs
2) Entenda o isolinux - isso torna o iso inicializável, assim como o seu menu de CD (boot). Veja Arch Linux Wiki syslinux .
Você pode usar o grub2 como uma alternativa ao isolinux, mas você precisará entender como o grub2 funciona;). A maioria dos CDs ao vivo ainda usa o isolinux.
3) Como criar um initramfs. O initramfs é um segundo sistema de arquivos, usado para inicializar. Muitas vezes, quando você está tendo um problema (a imagem de inicialização personalizada não está funcionando, módulos do kernel não estão sendo carregados) e você não consegue entender por que está olhando seu sistema de arquivos raiz, a resposta é muito provável no initramfs.
#extract to a working_directory , I use ~/initrd
cd ~/initrd
lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames
# Make your edits / adjustments
# Package
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../custom.initrd.lz
Você então move seu novo initrd.lz para o seu diretório de compilação personalizado, custom/casper/initrd.lz
4) casper. Casper, e os scripts do casper estão localizados em 3 locais, e todos os 3 podem desempenhar um papel. Eles são todos scripts bash, e em algum momento você quase certamente vai querer olhar através deles.
host - /usr/share/initramfs-tools/scripts/casper
sistema de arquivos raiz - customizado / usr / share / initramfs-tools / scripts / casper
C. no initramfs - Veja o diretório / scripts.
Veja casper do homem do Ubuntu
5) Você faz personalizações na interface do usuário / aplicativos em /usr/share
, /usr/share/gnome*
, por exemplo, os locais exatos variam com o lançamento, /usr/share/gnome-background-properties/ubuntu-wallpapers.xml
é um clássico e bastante padronizado nas versões.
6) Se você não puder fazer personalizações em /usr/share/
, use /etc/skel
, aqui /etc/skel/.bashrc
é um clássico, esse arquivo é copiado para ~ / .bashrc. Você pode colocar vários arquivos confg lá, para o firefox ou gnome ou não, mas / usr / share é melhor se for possível (varia de acordo com a configuração).
7) mkisofs - você usa o mkisofs para converter seu diretório de construção para um iso
cd ~/custom
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-12.04-custom.iso .
8) Persistência. Você pode usar persistência com muitos CDs ao vivo, incluindo o cd ubuntu-desktop e um cd customizado, isso é implementado pelo casper.
root - casper montará uma partição ou arquivo rotulado como casper-rw
como uma sobreposição de vaca em /. Se você instalar um pacote ou modificar um arquivo de configuração, as alterações persistirão durante a reinicialização.
Use isso com moderação. Se você atualizar todos os pacotes, será necessário muito espaço. Eu também acho que este método é por vezes buggy.
Home - peitoril casper montar uma partição ou arquivo rotulado aas home-rw
como uma sobreposição de vaca em / home.
Prefiro isso, pois os favoritos e os dados privados do Firefox serão preservados em todas as inicializações e eu acho mais confiável.
Casa persistente (mude para casper-rw para uma persistente /)
# this is a 1 Gb file, increase or decrease the count to make it larger or smaller
dd if=/dev/zero of=home-rw bs=1M count=1000
# make a file system
mkfs.ext4 home-rw
mke2fs 1.41.14 (22-Dec-2010)
home-rw is not a block special device.
Proceed anyway? (y,n) y <-- ANSWER 'y' here
#tune the file system to remove reserved blocks and label it 'home-rw'
tune2fs -m 0 -L home-rw home-rw
Coloque home-rw
em / (no diretório raiz de uma partição) ou em uma unidade flash (não em um subdiretório).
Quando você inicializa o live CD, pressione a tecla F6 , eles Esc , adicione a opção persistent
aos parâmetros de inicialização, na frente do '- '
quiet splash persistent --
Os scripts de inicialização do casper então localizam uma montagem automaticamente.
Veja Persistência do wiki do Ubuntu - A página wiki do ubuntu abordou apenas o casper-rw, mas o home-rw é referenciado nos scripts casper e funciona da mesma forma, apenas o nome foi alterado.
Veja Esta postagem nos fóruns do Ubuntu para ver uma captura de tela (embora com diferentes opções).
C. Você pode ativar a persistência com várias das ferramentas gráficas, unetbootin por exemplo. As ferramentas gráficas (até onde eu sei) usam casper-rw
.
OK, agora que você entendeu tudo isso, essas duas páginas começarão a fazer mais sentido
Wiki do Ubuntu ao vivo do zero
O wiki do Ubuntu personaliza o CD ao vivo
Você precisará do google. Você encontrará fragmentos de conselhos por toda a Internet.
Exemplo: Como alterar a tela inicial do Live CD
Debian Live
Agora que você entende tudo isso, use os scripts Debian Live . Não deixe o nome enganá-lo, esses scripts funcionam muito bem em qualquer sistema .deb, incluindo Mint e Ubuntu.
Para instalar
sudo apt-get install live-build
Existe uma interface gráfica
sudo apt-get install live-magic
Entenda que o gui da magia ao vivo pode falhar, assim como as remastersys e outros guis falham. Nesse caso, você volta para os scripts de construção ao vivo (live-magic gerará um diretório de construção).
Demora um tempo para aprender os scripts de compilação ao vivo e o layout / estrutura do diretório
Veja o Debian Live Manuel Sim, é longo, apenas trabalhe nele um iso de cada vez.
A vantagem dos scripts live-build, uma vez que você entende os componentes de um live CD, os scripts automatizam mais de 90% da build, e fazer uma mudança é uma simples edição em um arquivo de configuração (geralmente) ou um initramfs.
Demasiado longo
Se isso for muito longo para você, respire fundo, relaxe e trabalhe com a informação em uma parte de cada vez. Eu prometo que vai começar a fazer algum sentido e você vai achar que o tempo vale a pena.
Se você começar com outro conjunto de ferramentas, volte a este conjunto de ferramentas e depois de alguns iso você apreciará este conjunto de instruções;)
Minha versão customizada do 12.04, ela suporta o gma500, apenas 2d (sem 3D) (estará tornando a iso publicamente disponível para o público do gma 500 nos próximos dias).