LiveCDCustomizationHowToBr

来自Ubuntu中文
跳到导航跳到搜索

Como Personalizar o Novo Live CD do Ubuntu

Tentaremos explicar aqui como construir um LiveCD Ubuntu personalizado baseado na infraestrutura do novo Live CD (usado inicialmente no ciclo de desenvolvimento do HoaryHedgehog). O método será modificar um cd já existente e reconstruí-lo. Esta forma é menos flexível, mas evita grande parte da complexidade (realmente desnecessária) de construir CDs do zero.

Por quê? Bem, porque algumas pessoas querem criar Live CDs especializados para demonstrar uma aplicação em particular ou traduzir o ambiente para um dado idioma. Se você imaginar algo mais que possa ser feito, por favor coloque no wiki.

Configuração e Requisitos do Sistema

  • Cerca de 3 gigabytes de espaço disponível em disco
  • `cloop-utils` - ferramentas para compactar e descompactar a imagem do sistema de arquivos
  • `mkisofs`
  • Kernel do Ubuntu, versão `2.6.9-7` ou posterior (para o módulo `cloop`)

Copie e cole:

$ sudo apt-get install cloop-utils mkisofs
$ echo "Kernel version is" $(dpkg-query -W --showformat '${Version}' linux-image-$(uname -r))


O Processo

Primeiro você deve extrair a imagem compactada do sistema de arquivo - Cloop, e então seremos capazes de personalizá-la da forma que acharmos melhor - isto usualmente significa configurar pacotes e software que gostaríamos de ter disponíveis no LiveCD, pré-definindo algumas de suas configurações e muito mais. Após todo nosso trabalho estar pronto, colocaríamos tudo de volta, e um novo LiveCD estará pronto.

Simples.

O Processo de Extração

NOTA: Antes de começar, certifique-se que seu locale não está definido, isso torna a vida mais fácil. i.e. LANG=""

Baixe uma imagem do cd em http://cdimage.ubuntu.com/ e coloque-a num diretório vazio. Certifique-se de que é uma imagem do Hoary (o Warty usa um sistema diferente).

  • Monte a imagem() como um dispositivo de laço (loop device):
$ mkdir mnt
$ sudo mount hoary-live-i386.iso mnt -o loop
  • Extraia tudo exceto o sistema de arquivos compactado para um diretório temporário:
$ rsync --exclude=/casper/filesystem.cloop -a mnt/ extracted_cd
  • Então nós descompactamos e extraímos o sistema de arquivos compactado:
$ extract_compressed_fs mnt/casper/filesystem.cloop > extracted_fs

(É melhor você sair para um café, logo que esse processo leva tempo)

  • Depois desses passos, terminamos de usar a imagem original e podemos desmontá-la (ou até mesmo apagá-la se você estiver sem espaço no disco):
$ sudo umount mnt

Personalizações

Para fazer as personalizações monte a imagem do agora descompactado sistema de arquivos, usando chroot para fazer suas modificações e então comece a colocar tudo de volta novamente.

Preparando o chroot
  • Assim, para montar o sistema de arquivos descompactado nós fazemos:
$ sudo mount extracted_fs mnt -o loop
  • Montar proc e sysfs pode ser também uma boa idéia:
$ sudo mount -t proc proc mnt/proc
$ sudo mount -t sysfs sys mnt/sys
  • Se você você quer transferir os dados do seu home, a maneira mais simples é um bind mount:
$ sudo mount -o bind /home mnt/home

NOTA: Obviamente economizar espaço no sistema de arquivos compactado é uma boa idéia, então durante estas personalizações algumas partes do sistema de arquivos podem ser temporariamente montadas com tmpfs e desmontadas mais tarde. Desta forma muito espaço pode ser economizado. Alguns bons alvos para estas montagens são '/var/log', '/var/run', '/var/cache/apt', '/var/lib/apt' e '/tmp'. Apenas lembre de desmontá-las todas antes de desmontar a imagem extracted_fs!

Localizações do Idiomas

TODO -

  • Pré-instalar um pacote de idiomas e suportes locais associados
  • Pré-selecionar um idioma padrão
  • Ajudar a traduzir usando o Rosetta
Instalando Pacotes Adicionais

Um uso comum para um LiveCD é mostrar uma aplicação, normalmente ainda não instalada no CD.

NOTA: O usuário padrão é criado na inicialização, então se você quiser copiar um arquivo para o diretório inicial do usuário padrão, você pode colocar o arquivo em `mnt/etc/skel`.

  • Copie em `resolv.conf`:
$ sudo cp /etc/resolv.conf mnt/etc
  • Se os pacotes que você deseja adicionar não estão disponíveis no arquivo padrão `sources.list`, você pode modificá-lo, ou copiar o seu próprio:
$ sudo vi mnt/etc/apt/sources.list
  • Finalmente, nós usamos o chroot e instalamos alguns pacotes, atualizando o cache do apt no processo:
$ sudo chroot mnt /bin/bash
# apt-get update
# apt-get install bannana deadly-weapon
# apt-get clean
# exit
  • Gere novamente o arquivo manifest para refletir quaisquer mudanças que você tenha feito:
$ chroot mnt dpkg-query -W --showformat='${Package} ${Version}\n' > extracted_cd/casper/filesystem.manifest
Fechando o chroot
  • Certifique-se de desmontar tudo que foi montado quando configurando o chroot ('/tmp'? '/var/log'?):
$ sudo umount /mnt/sys
$ sudo umount /mnt/proc
$ sudo umount /mnt/home
$ sudo umount /mnt

Pondo tudo de volta no CD

Ok, quase pronto. Precisamos apenas empacotar o CD.

  • Primeiro compacte o sistema de arquivos compactado e coloque-o de volta no CD (hora de mais um cafezinho):
$ create_compressed_fs extracted_fs 65536 > filesystem.cloop
$ sudo mv filesystem.cloop extracted_cd/casper
  • Então nós re-construímos o cd. NOTA: Este procedimento é específico para o live CD para Intel x86 (i386). Outras arquiteturas, tais como PowerPC, precisarão de diferentes opções nas linhas de comando.
$ sudo mkisofs -r -V "$(cat extracted_cd/.disk/info)" \
-cache-inodes \
-J -l -b isolinux/isolinux.bin \
-c isolinux/boot.cat -no-emul-boot \
-boot-load-size 4 -boot-info-table \
-o custom-hoary-live-i386.iso extracted_cd

E está pronto!

Mais informações

O LiveCD é baseado no instalador do Ubuntu e usa sua infraestrutura para inicializar o sistema. Um componente adicional (`casper`) ao instalador é usado para carregar o ambiente live após se completar a inicialização.

Talvez você possa achar mais informações aqui (em inglês): [LiveCDDesign], [LiveCD]. Ou baixar o casper e o debian installer e dar uma olhada nos códigos (apt-get source casper debian-installer). NOTA: não são necessárias modificações de qualquer tipo no código fonte para personalizar o ambiente live (por exemplo, instalar pacotes adicionais). Isto é puramente informativo.


Traduzido de LiveCDCustomization