Posso criar uma ISO do Ubuntu a partir de um manifesto?

Respostas:

21

O filesystem.manifest é gerado com o comando:

dpkg-query -W --showformat='${Package} ${Version}\n' > casper/filesystem.manifest

A sintaxe é assim 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 

Então você pode usar o arquivo, provavelmente em mais de uma maneira,

apt-get install -y $(awk '{print $1}' filesystem.manifest)

Para ser honesto, depois de fazer algumas iso personalizadas ao longo dos anos, há uma curva de aprendizado sobre como ela funciona. Depois de entender algumas coisas, não é muito difícil, apenas o conhecimento necessário é moderadamente grande e não há uma fonte de informação única e atualizada.

Você usa 2 diretórios de construção

~/custom - build directory for the iso
~/rootfs - build directory for the root file system.

customizado - esse diretório contém todos os arquivos que entrarão no 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 do Live CD e você o compacta (usando mksquashfs) e o inclui no CD. Você constrói isso com o debootstrap (live D do zero) ou extrai o sistema de arquivos do ubuntu-desktop.iso (personalize um live CD). Veja os links wiki do ubuntu abaixo para obter detalhes.

pontos chave

1) Entenda o mksquashfs - você usa o mksquashfs para compactar o sistema de arquivos raiz paracasper/filesystem.squashfs

sudo mksquashfs /home/bodhi/rootfs custom/casper/filesystem.squashfs

2) Entenda o isolinux - isso torna o iso inicializável, assim como o menu do CD (inicialização). Veja o Arch Linux Wiki syslinux .

Você pode usar o grub2 como alternativa ao isolinux, mas precisará entender como o grub2 funciona;). A maioria dos CD ao vivo ainda está usando o isolinux.

3) Como fazer um initramfs. O initramfs é um segundo sistema de arquivos, usado para inicializar. Freqüentemente, quando você está tendo um problema (a imagem de inicialização personalizada não está funcionando, os módulos do kernel não estão sendo carregados) e não consegue entender por que olhar para o 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 diretório de compilação personalizado, custom/casper/initrd.lz

4) casper. O Casper e os scripts do casper estão localizados em 3 locais e os 3 podem desempenhar um papel. Eles são todos scripts bash e, em algum momento, você quase certamente desejará examiná-los.

Um hospedeiro - /usr/share/initramfs-tools/scripts/casper

B. sistema de arquivos raiz - customizado / usr / share / initramfs-tools / scripts / casper

C. no initramfs - Veja o diretório / scripts.

Veja Ubuntu man casper

5) Você faz personalizações para a interface do usuário / aplicativos em /usr/share, /usr/share/gnome*por exemplo, os locais exatos variam de acordo com a liberação, /usr/share/gnome-background-properties/ubuntu-wallpapers.xmlé um clássico e bastante padrão entre as versões.

6) Se você não pode fazer personalizações /usr/share/, use /etc/skel, aqui /etc/skel/.bashrcestá um clássico, esse arquivo é copiado para ~ / .bashrc. Você pode colocar vários arquivos confg lá, no firefox ou no gnome ou não, mas / usr / share é melhor se possível (varia de acordo com a configuração).

7) mkisofs - você usa o mkisofs para converter seu diretório de construção em 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 CD ao vivo, incluindo o CD do ubuntu-desktop e um CD personalizado, isso é implementado pelo casper.

A. O root - casper montará uma partição ou arquivo rotulado casper-rwcomo uma sobreposição de vaca em /. Se você instalar um pacote ou modificar um arquivo de configuração, as alterações persistirão durante uma reinicialização.

Use isso com moderação. Se você atualizar todos os pacotes, será necessário muito espaço. Também acho que esse método às vezes é de buggy.

B. Soleira do casper - montar uma partição ou arquivo rotulado home-rwcomo aas como uma sobreposição de vaca em / home.

Eu prefiro isso, pois meus favoritos e dados privados do firefox serão preservados entre as botas e acho mais confiável.

Casa persistente (mude para casper-rw para um 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-rwem / (no diretório raiz de uma partição) ou em uma unidade flash (não em um subdiretório).

Quando você inicializa o CD ao vivo, pressiona a F6tecla, eles Escadicionam a opção persistentaos parâmetros de inicialização, na frente do '-'

quiet splash persistent --

Os scripts de inicialização do casper encontrarão uma montagem automaticamente.

Veja Persistência do wiki do Ubuntu - A página wiki do ubuntu discutiu apenas o casper-rw, mas o home-rw é mencionado nos scripts do casper e funciona da mesma maneira, apenas o nome foi alterado.

Veja Esta publicação nos fóruns do Ubuntu para obter uma captura de tela (embora com opções diferentes).

C. Você pode ativar a persistência com várias ferramentas gráficas, unetbootin, por exemplo. As ferramentas gráficas (tanto quanto eu sei) usam casper-rw.

OK, agora que você entender tudo isso, essas duas páginas começarão a fazer mais sentido

Ubuntu wiki live cd do zero

CD ao vivo do wiki wiki do Ubuntu

Google

Você precisará pesquisar no 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 do Debian Live . Não deixe o nome enganar você, esses scripts funcionam muito bem em qualquer sistema .deb, incluindo o Mint e o Ubuntu.

Para instalar

sudo apt-get install live-build

Existe uma interface gráfica

sudo apt-get install live-magic

magia ao vivo

Entenda que o gui da magia ao vivo pode falhar, assim como a remastersys e outros guis falham. Nesse caso, você volta aos scripts de construção ao vivo (a live-magic gera um diretório de construção).

Demora um pouco para aprender os scripts de construção ao vivo e o layout / estrutura do diretório

Veja o Debian Live Manuel Aye, é longo, apenas trabalhe um iso de cada vez.

A vantagem dos scripts de construção ao vivo, depois de entender os componentes de um CD ao vivo, os scripts automatizam mais de 90% da construção, e fazer uma alteração é uma edição simples de um arquivo de configuração (geralmente) ou, às vezes, a criação de um initramfs.

Demasiado longo

Se isso foi muito longo para você, respire fundo, relaxe e trabalhe com as informações uma parte de cada vez. Eu prometo que isso começará a fazer algum sentido e você descobrirá que o tempo vale a pena.

Se você começar com outro conjunto de ferramentas, volte a esse conjunto de ferramentas e, depois de algumas iso, apreciará este conjunto de instruções;)

Minha versão 12.04 personalizada, suporta o gma500, apenas 2d (sem 3d) pronto para uso (estará disponibilizando o iso publicamente para a multidão do gma 500 nos próximos dias).

gma 500

bodhi.zazen
fonte
1
Oh meu. Esta é uma resposta maravilhosa. Eu sei o que estou fazendo hoje à noite.
JRG
Agradável. Se isso não obtiver 40 votos, ninguém deve obtê-los;)
Rinzwind
Para quem estiver interessado, disponibilizo uma respin, consulte meu blog (também no Ubuntu Planet) para obter detalhes e fazer o download. blog.bodhizazen.net/linux/ubuntu-gma500-live-cd
Panther