Você precisa criar um ISO de catálogo de inicialização dupla para que ele inicialize o EFI e o MBR. O arquivo ISO padrão 14.04 x64 do Ubuntu funciona desta forma, mas não há instruções disponíveis para criar um novo ISO inicializável 14.04 para sistemas EFI. Consegui juntar os passos certos para criar um ISO como este.
Estas instruções permitem criar um ISO do servidor Ubuntu 14.04 personalizado que pode inicializar o EFI e o MBR. Quando a inicialização EFI em um sistema com um disco vazio, não inicializado (por exemplo, em uma nova geração 2 VM no Hyper-V), a instalação será iniciada automaticamente, em seguida, limpe automaticamente o disco e instale os pacotes ubuntu-server e OpenSSH. Isto é projetado para provisionar automaticamente novos sistemas com o Ubuntu 14.04 usando o LVM e o particionamento automático. Se você usar este ISO em um sistema Linux existente, o instalador parará quando detectar discos existentes e aguardará a entrada. Se você usar esse ISO em um sistema que não seja EFI (por exemplo, uma VM Hyper-V da geração 1), ele aguardará na tela de inicialização do instalador gráfico e exigirá entrada antes de continuar com o instalador automático.
O resultado é uma instalação básica do Ubuntu Server apenas com ubuntu-server e openssh-server.
Aqui estão os passos para criar um ISO inicializável por EFI:
Obtenha o ISO 14.04:
wget http://releases.ubuntu.com/14.04/ubuntu-14.04-server-amd64.iso
Monte-o e extraia seu conteúdo para uma nova pasta:
sudo mkdir -p ~/iso
sudo mount -o loop ubuntu-14.04-server-amd64.iso.iso ~/iso
sudo mkdir ~/ubuntu
sudo cp -rT ~/iso ~/ubuntu
Mude para o diretório em que faremos nosso trabalho:
cd ~/ubuntu
Defina o idioma para inglês:
sudo -i
echo en >/home/user/ubuntu/isolinux/lang
exit
Crie um arquivo preseed que usará o LVM para particionar automaticamente o disco usando todo o espaço disponível:
sudo nano ~/ubuntu/ks.preseed
Substitua o conteúdo do arquivo por este:
d-i partman-auto/method string lvm
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm_nooverwrite boolean true
d-i partman/confirm boolean true
d-i partman-auto/purge_lvm_from_device boolean true
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto/init_automatically_partition select Guided - use entire disk and set up LVM
d-i partman/choose_partition select Finish partitioning and write changes to disk
d-i partman-auto-lvm/no_boot boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-md/confirm boolean true
d-i partman-md/confirm_nooverwrite boolean true
Crie um arquivo de kickstart que irá configurar o Ubuntu durante a instalação: (certifique-se de alterar a parte do nome de usuário, e você deve usar senhas criptografadas)
sudo nano ~/ubuntu/ks.cfg
Substitua o conteúdo do arquivo por este:
lang en_US
langsupport en_US
keyboard us
mouse
timezone America/Los_Angeles
rootpw --disabled
user USERNAME --fullname "USERNAME" --password "PASSWORD"
reboot
text
install
cdrom
auth --useshadow --enablemd5
network --bootproto=dhcp --device=eth0
firewall --disabled
skipx
%packages
@ ubuntu-server
openssh-server
Edite o arquivo de configuração do grub para que, quando o ISO executar uma inicialização EFI, o carregador de inicialização use as opções corretas para usar nossos arquivos de configuração e de pré-configuração:
sudo nano ~/ubuntu/boot/grub/grub.cfg
Substitua o conteúdo do arquivo por este:
if loadfont /boot/grub/font.pf2 ; then
set gfxmode=auto
insmod efi_gop
insmod efi_uga
insmod gfxterm
terminal_output gfxterm
fi
set menu_color_normal=white/light-blue
set menu_color_highlight=light-blue/light-gray
set timeout=10
set default=0
menuentry "Automatically Install Ubuntu Server with Custom Config" {
set gfxpayload=keep
linux /install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed quiet ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
initrd /install/initrd.gz
}
menuentry "OEM install (for manufacturers)" {
set gfxpayload=keep
linux /install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed quiet oem-config/enable=true --
initrd /install/initrd.gz
}
menuentry "Multiple server install with MAAS" {
set gfxpayload=keep
linux /install/vmlinuz modules=maas-enlist-udeb vga=788 initrd=/install/initrd.gz quiet --
initrd /install/initrd.gz
}
menuentry "Check disc for defects" {
set gfxpayload=keep
linux /install/vmlinuz MENU=/bin/cdrom-checker-menu quiet --
initrd /install/initrd.gz
}
menuentry "Rescue a broken system" {
set gfxpayload=keep
linux /install/vmlinuz rescue/enable=true --
initrd /install/initrd.gz
}
Edite o menu de inicialização do isolinux para inicialização não-EFI (inicialização do MBR) para usar a configuração personalizada e a pré-configuração personalizada:
sudo nano ~/ubuntu/isolinux/txt.cfg
Substitua o conteúdo do arquivo por este:
default install
label install
menu label ^Install Ubuntu Server with Custom Config
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
label cloud
menu label ^Multiple server install with MAAS
kernel /install/vmlinuz
append modules=maas-enlist-udeb vga=788 initrd=/install/initrd.gz quiet --
label check
menu label ^Check disc for defects
kernel /install/vmlinuz
append MENU=/bin/cdrom-checker-menu vga=788 initrd=/install/initrd.gz quiet --
label memtest
menu label Test ^memory
kernel /install/mt86plus
label hd
menu label ^Boot from first hard disk
localboot 0x80
Crie o ISO:
Este comando é uma versão modificada do comando mostrado no link . Essas instruções não funcionam para o Ubuntu 14.04 porque apontam para os locais errados para o arquivo efi.img. (deve estar em ./boot/grub/ no ISO)
sudo mkisofs -U -A "Custom1404" -V "Custom1404" -volset "Custom1404" -J -joliet-long -r -v -T -o ../Custom1404.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot .
Verifique se o ISO tem os catálogos de inicialização de estilo corretos:
O ISO original que você baixou do Ubuntu:
dumpet -i ~/ubuntu-14.04-server-amd64.iso
Saída:
Validation Entry:
Header Indicator: 0x01 (Validation Entry)
PlatformId: 0x00 (80x86)
ID: ""
Checksum: 0x55aa
Key bytes: 0x55aa
Boot Catalog Default Entry:
Entry is bootable
Boot Media emulation type: no emulation
Media load segment: 0x0 (0000:7c00)
System type: 0 (0x00)
Load Sectors: 4 (0x0004)
Load LBA: 8446 (0x000020fe)
Section Header Entry:
Header Indicator: 0x91 (Final Section Header Entry)
PlatformId: 0xef (EFI)
Section Entries: 1
ID: ""
Boot Catalog Section Entry:
Entry is bootable
Boot Media emulation type: no emulation
Media load address: 0 (0x0000)
System type: 0 (0x00)
Load Sectors: 4672 (0x1240)
Load LBA: 24754 (0x000060b2)
O novo ISO que você criou:
dumpet -i ~/Custom1404.iso
Saída:
Validation Entry:
Header Indicator: 0x01 (Validation Entry)
PlatformId: 0x00 (80x86)
ID: ""
Checksum: 0x55aa
Key bytes: 0x55aa
Boot Catalog Default Entry:
Entry is bootable
Boot Media emulation type: no emulation
Media load segment: 0x0 (0000:7c00)
System type: 0 (0x00)
Load Sectors: 4 (0x0004)
Load LBA: 3100 (0x00000c1c)
Section Header Entry:
Header Indicator: 0x91 (Final Section Header Entry)
PlatformId: 0xef (EFI)
Section Entries: 1
ID: ""
Boot Catalog Section Entry:
Entry is bootable
Boot Media emulation type: no emulation
Media load address: 0 (0x0000)
System type: 0 (0x00)
Load Sectors: 4672 (0x1240)
Load LBA: 1932 (0x0000078c)
Você pode comparar essa saída com a saída obtida de uma ISO construída usando as instruções em
Obtenha informações ISO: Saída: dumpet -i ~/non-efi-ubuntu.iso
Validation Entry:
Header Indicator: 0x01 (Validation Entry)
PlatformId: 0x00 (80x86)
ID: ""
Checksum: 0x55aa
Key bytes: 0x55aa
Boot Catalog Default Entry:
Entry is bootable
Boot Media emulation type: no emulation
Media load segment: 0x0 (0000:7c00)
System type: 0 (0x00)
Load Sectors: 4 (0x0004)
Load LBA: 1925 (0x00000785)