Finalidade
Quero instalar o Ubuntu Desktop 16.04.1 LTS completamente autônomo. Coloque o CD ISO e vá embora.
Problemas
- Parâmetros de inicialização incorretos
- Perguntas ainda sendo feitas e que precisam de cliques no mouse
- Respostas complicadas usando kickstart / preseed
- Exemplos de documentação que não funcionam como indicado, especificamente de partman e ubunutu
Me deparei com este post aqui e era quase o que eu precisava, mas não conseguiu o que precisava, pois era para o Ubuntu Server. A postagem sugere o uso de uma instalação "não gráfica" do Ubuntu, mas não consegui encontrar uma instalação não gráfica para o Ubuntu Desktop, o que faz sentido. Tentei adaptar as etapas e fazê-lo funcionar no Ubuntu Desktop 16.04.1 LTS.
Documentação Utilizada
Eu usei todos os seguintes recursos ...
Aparentemente, não posso incluir todos os meus recursos porque o askubuntu não permite mais de 2 links. Bem, isso não é muito útil - então aqui está apenas uma lista:
- AskUbuntu
- Ubuntu install.en.pdf
- Exemplos Preseed
- Documentação do Ubiquity Installer
- Documentação e exemplos da Partman
- Receita da partição Explicação dos 3 números e sua ponderação
- Um exemplo preseed mais complexo
Solução Atual
No momento, criei uma instalação autônoma, mas não tenho certeza se ela está correta - o que significa que eu deveria ter editado o isolinux / isolinux.cfg
Havia muitas diferenças entre o post que eu vinculei e a imagem do Ubuntu Desktop. Aqui está a minha solução:
Passo 1
ISO do Ubuntu montado para que eu possa copiar o conteúdo para outro diretório e editar os arquivos pertinentes.
mkdir -p /mnt/iso
mount -o loop ubuntu.iso /mnt/iso
Passo 2
Copiei os arquivos ISO para outro diretório para edição.
mkdir -p /opt/ubuntuiso
cp -rT /mnt/iso /opt/ubuntuiso
etapa 3
Editei o isolinux/isolinux.cfg
arquivo e substituí tudo dentro pelo seguinte:
default live-install
label live-install
menu label ^Install Ubuntu
kernel /casper/vmlinuz.efi
append file=/cdrom/ks.preseed auto=true priority=critical debian-installer/locale=en_US keyboard-configuration/layoutcode=us ubiquity/reboot=true languagechooser/language-name=English countrychooser/shortlist=US localechooser/supported-locales=en_US.UTF-8 boot=casper automatic-ubiquity initrd=/casper/initrd.lz quiet splash noprompt noshell ---
A linha de acréscimo é muito longa, portanto, para facilitar a leitura, aqui estão todas as opções que usei:
file=/cdrom/ks.preseed
auto=true
priority=critical
debian-installer/locale=en_US
keyboard-configuration/layoutcode=us
ubiquity/reboot=true
languagechooser/language-name=English
countrychooser/shortlist=US
localechooser/supported-locales=en_US.UTF-8
boot=casper
automatic-ubiquity
initrd=/casper/initrd.lz
quiet
splash
noprompt
noshell
Descobri que todos esses parâmetros de inicialização eram necessários para obter uma instalação completamente autônoma. Para o Ubuntu Server, pode ser diferente.
Passo 4
Tentei usar e criar muitos arquivos preseed, mas achei que quanto mais complexo, maior a chance de erros. Atualmente, este é o meu arquivo preseed simples que funciona com o isolinux.cfg
arquivo acima .
### Partitioning
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto/choose_recipe select atomic
# This makes partman automatically partition without confirmation
d-i partman-partitioning/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
# Locale
d-i debian-installer/locale string en_US
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
# Network
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
d-i netcfg/choose_interface select auto
# Clock
d-i clock-setup/utc-auto boolean true
d-i clock-setup/utc boolean true
d-i time/zone string US/Pacific
d-i clock-setup/ntp boolean true
# Packages, Mirrors, Image
d-i base-installer/kernel/override-image string linux-server
d-i base-installer/kernel/override-image string linux-image-amd64
d-i mirror/country string US
d-i mirror/http/proxy string
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i pkgsel/install-language-support boolean false
tasksel tasksel/first multiselect ubuntu-desktop
# Users
d-i passwd/user-fullname string Liason
d-i passwd/username string liason
d-i passwd/user-password-crypted password [crpyt 3]
d-i passwd/root-login boolean true
d-i passwd/root-password-crypted password [crypt 3]
d-i user-setup/allow-password-weak boolean true
# Grub
d-i grub-installer/grub2_instead_of_grub_legacy boolean true
d-i grub-installer/only_debian boolean true
d-i finish-install/reboot_in_progress note
# Custom Commands
Como não incluí minhas senhas criptografadas, se você tentar esse arquivo preseed, altere-as para uma senha criptografada. Aqui estão três maneiras de criar a senha.
Etapa 5
Eu criei o novo ISO a partir do /opt/ubuntuiso/
diretório
mkisofs -D -r -V ATTENDLESS_UBUNTU -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso
Etapa 6
Finalmente testei com o Virtualbox e ele criou uma instalação completamente autônoma.
Questões
Devo ter que editar o isolinux/isolinux.cfg
arquivo?
No outro post, parece que eles podem editar o isolinux/txt.cfg
arquivo e fazê-lo funcionar. Tentei por cerca de uma hora usar o isolinux/txt.cfg
, mas não funcionou.
Alguém tem uma receita partman de trabalho mais complexa que especifica diretamente partições? Ou uma configuração de LVM funcional? Tentei usar uma configuração simples do LVM, mas após a reinicialização não inicializava e apenas exibia uma tela preta. Além disso, nenhum dos exemplos preseed que listei na documentação também funcionou.
Obrigado por qualquer ajuda.
dd if=/tmp/ubuntu16-desktop-unattended-install.iso of=/dev/sdc bs=4M && sync
. Infelizmente, a chave USB (somente quando contém essa iso personalizada: funciona para a original) não está nas opções de inicialização propostas, portanto parece que não é "inicializável". Talvez você tenha uma idéia do que está acontecendo?