Guia para detalhes na personalização do Ubuntu Installer

9

Tentei ler os guias para pré - configuração e personalização , mas não entendi como e onde modificar quais opções. Só posso aprender confortavelmente através de exemplos práticos, para os quais faço essa pergunta.

Estou procurando soluções de pré-configuração e personalização para executar apenas algumas tarefas específicas:

  • Reescreva completamente os pacotes instalados por padrão, como instalações mínimas e com o --no-install-recommendssinalizador de apt-get.
  • Adicione alguns aplicativos proprietários à lista de instalação padrão
  • Instale e monte automaticamente drivers proprietários na instalação e na sessão ao vivo
  • Edite os arquivos de configuração padrão para aplicativos instalados por padrão
  • Especifique partições junto com a permissão
  • Modifique o pool de pacotes na mídia do instalador (CD / DVD / USB), de preferência usando ferramentas de linha de comando semelhantes a apt-gete aptitude.

Alguém pode me dizer como configurar a opção preseed para apenas fazer o que precede?

Nota: eu não entendo a parte GPG depois de adicionar / remover pacotes no pool.

PS O terceiro ponto é de particular importância.

Oxwivi
fonte
Só para esclarecer, o "Ubuntu Installer" se refere ao instalador gráfico (unicidade) ou alternativo (debian-installer)?
31711 komputes
@komputes, qualquer um servirá.
Oxwivi 8/03/11

Respostas:

6

Para uma referência preseed, você pode consultar o Installation-Guide-i386, que contém a seguinte amostra preseed:

  /usr/share/doc/installation-guide-i386/example-preseed.txt.gz
  • Reescreva completamente os pacotes instalados por padrão, como instalações mínimas
  • Adicione alguns aplicativos proprietários à lista de instalação padrão

Para fornecer a lista de pacotes que você deseja instalar, convém procurar a seguinte linha:

  tasksel tasksel/first   multiselect ubuntu-desktop

Onde "ubuntu-desktop" pode ser alterado para um número arbitrário de pacotes ou meta pacotes.

  • Instale e monte automaticamente drivers proprietários na instalação e na sessão ao vivo

Além de especificar os pacotes necessários (para os drivers proprietários), não tenho certeza de como isso seria realizado. Como observação, você "monta" uma partição, "carrega" um módulo / driver do kernel.

  • Edite os arquivos de configuração padrão para aplicativos instalados por padrão

Para fazer esse tipo de alteração de script, você provavelmente deseja examinar:

  d-i preseed/late_command string ...

Onde o "..." pode ser substituído por comandos arbitrários como sed -i, por exemplo.

  • Especifique partições junto com a permissão

Há uma seção de partição no exemplo preseed mencionado acima.

Onipresença com preseed

Casper suporta preseed e a onipresença pode ter muitos valores preseed. Aqui estão algumas das variáveis ​​que podem ser consideradas relevantes para a onipresença:

ubiquity countrychooser/shortlist select US
ubiquity languagechooser/language-name select English
ubiquity localechooser/supported-locales multiselect en_US.UTF-8
ubiquity ubiquity/summary note
ubiquity ubiquity/reboot boolean true
ubiquity ubiquity/poweroff boolean true
ubiquity ubiquity/success_command string ...

Onde "..." conteria o mesmo que o late_command mencionado acima, success_command é lido por ubiquity e late_command por di.

komputes
fonte
Não há como alterar os arquivos de configuração antecipadamente? Como evito a instalação dos pacotes recomendados? Como adiciono pacotes proprietários para instalação offline?
precisa saber é o seguinte
Parece que você deseja criar uma imagem personalizada, conforme descrito aqui: help.ubuntu.com/community/LiveCDCustomization A imagem também pode conter um arquivo preseed onde você pode alterar os arquivos de configuração conforme descrito anteriormente. Outra abordagem é que você também pode criar seus próprios pacotes para algumas das personalizações.
komputes
Ok, esqueça de alterar a configuração. Preciso personalizar as instruções do CD para incluir pacotes que não estão presentes no disco por padrão?
Oxwivi 11/03/11
Montei uma imagem, copiei o conteúdo para um diretório, modifiquei os parâmetros da Ubiquity. Como finalizo?
Oxwivi 12/03/11
Para finalizar / construir a imagem ISO siga a conversa intitulada "Produzir a imagem do CD" aqui: help.ubuntu.com/community/LiveCDCustomization
komputes
3

A seguir, cria uma imagem de inicialização modificada. Grave-o em um CD ou insira o ISO em uma VM para testá-lo. Você precisará cpioe genisoimage(esse é o nome dos pacotes e executáveis).

O seguinte está na forma de um Makefile, mas pode ser inserido interativamente. ${IN_ISO}refere-se à imagem ISO original (usei a -alternativeversão e sugiro que você faça o mesmo) ${OUT_ISO}ao nome ISO desejado.

# Extract the ISO image to mount/ and copy it to cdroot/
cdroot:
    mkdir -p mount
    sudo mount -o loop ${IN_ISO} mount
    mkdir cdroot
    cd cdroot && tar cf - ../mount --transform 's,^mount/,,' | tar xf -
    sudo umount mount && rm -r mount
    chmod -R a+rw cdroot

# Copy new files to the disk. Content of those files is posted below
prepare: cdroot
    cp isolinux.cfg cdroot/isolinux/isolinux.cfg
    test -e ./initrd.orig.gz || cp cdroot/install/initrd.gz ./initrd.orig.gz
    mkdir -p initrd
    cd initrd && gunzip <../initrd.orig.gz | sudo cpio -i && cd ..
    cp preseed.cfg initrd/preseed.cfg
    cd initrd && find . | cpio -o --format=newc | gzip -9 > ../cdroot/install/initrd.gz && cd ..
    sudo rm -rf initrd

# Create the ISO image. Make sure to use extensions for lower-case filenames    
iso: cdroot prepare
    genisoimage -o ${OUT_ISO} \
        -force-rr -J \
        -b isolinux/isolinux.bin -c isolinux/boot.cat \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        cdroot

Você precisa de alguns arquivos adicionais:

isolinux.cfgconfigura o carregador de inicialização. Você deseja que ele seja inicializado apenas e passe automaticamente pelo processo de instalação. Deve ficar assim:

default install
label install
  menu label ^Install my custom Ubuntu
  kernel /install/vmlinuz
  append auto initrd=/install/initrd.gz --
# Leave 2 seconds to abort or debug
prompt 1
timeout 20

Isso é tudo que precisamos antes de realmente configurar a instalação. Faça o download do exemplo preseed e denomine preseed.cfg. Passe por ele e edite o que quiser. As opções importantes são:

# Locale
d-i debian-installer/locale string en_US
d-i time/zone string US/Eastern

# Partitioning. The following settings WILL OVERWRITE ANYTHING
# Don't insert the CD into your boss' computer ...
d-i partman-auto/method string regular
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# To create a normal user account.
d-i passwd/user-fullname string Ubuntu User
d-i passwd/username string ubuntu
d-i passwd/user-password password insecure
d-i passwd/user-password-again password insecure
d-i user-setup/allow-password-weak boolean true

# Package selection. Don't include ubuntu-desktop to significantly reduce the content
tasksel tasksel/first multiselect standard

#d-i preseed/early_command string driver installation commands (stuff needed to boot)
#d-i preseed/late_command string driver installation commands, custom software, etc.

Mas eu sugiro que você não use o exemplo acima, mas faça o download do exemplo do Ubuntu e configure-o de acordo com as suas necessidades late_command. Você pode fazer qualquer coisa a partir do shell, incluindo o download e a execução de um script que instala e configura o seu software personalizado. Por exemplo, use isso como late_command:

d-i preseed/late_command string in-target sh -c 'wget https://example.com/my/install.sh && sh install.sh'

Como alternativa, você pode colocar install.shno initrd acima e executá-lo diretamente. Seu conteúdo pode ficar assim:

#!/bin/sh
aptitude install -y x11-apps any-package-you-want-installed
wget http://proprietary.com/drivers/for/ubuntu.tar.gz -O- | tar xf - && sh drivers/instal.sh

Realmente depende de como a rotina de instalação do driver proprietário funciona.

phihag
fonte
Como eu disse na pergunta, quero orientação sobre exatamente as tarefas que listei; como reescrevo os pacotes que serão instalados? E a instalação automática de drivers proprietários?
Oxwivi 9/03/11
@Oxwivi Escreva um script que instale tudo o que você deseja, faça o download e execute-o late_command. Package selectioné a parte que você pode usar para instalar seus próprios pacotes, mas também pode fazê-lo no script.
phihag
1
@Oxwivi Você pode instalar o jockey e depois removê-lo aptitude purge jockeyem um script. Não sei ao certo o que você quer dizer com "uma maneira genérica de instalar qualquer tipo de driver proprietário". Essa é uma maneira genérica de instalar qualquer driver restrito, basta colocar o pacote do driver que você está instalando no tasksel ou depois aptitude install -yno script, e ele funcionará. Se você deseja que sua imagem funcione em várias máquinas, provavelmente precisará encontrar uma maneira de solicitar ao jockey todos os drivers proprietários aplicáveis. ...
phihag
1
@ Ocwivi ... No entanto, a instalação de todos os drivers proprietários disponíveis geralmente é uma má idéia: os drivers proprietários geralmente são antigos, não são suportados e exigem configuração adicional não padrão. Além disso, você deve garantir legalmente a distribuição de drivers não livres.
phihag
1
@Oxwivi Essa confiança é infundada, já que qualquer pessoa pode colocar qualquer coisa nos repositórios não-livres. No entanto, essa discussão está muito fora do escopo desta pergunta (sobre pré-configuração). Você deve perguntar como obter uma lista de drivers proprietários aplicáveis ​​ao sistema atual.
585 phihag #