Vous devez créer un catalogue ISO de démarrage double afin qu'il démarre EFI et MBR. Le fichier ISO Ubuntu 14.04 x64 standard fonctionne de cette façon, mais il n'y a pas d'instructions disponibles pour créer une nouvelle ISO 14.04 amorçable pour les systèmes EFI. J'ai pu rassembler les bonnes étapes pour créer un ISO comme celui-ci.
Ces instructions vous permettront de créer une image ISO de serveur Ubuntu 14.04 personnalisée pouvant démarrer EFI et MBR. Lorsque EFI démarre sur un système avec un disque vierge et non initialisé (par exemple sur une nouvelle machine virtuelle de génération 2 dans Hyper-V), la configuration démarre automatiquement, puis essuie automatiquement le disque et installe les packages de base ubuntu-server et OpenSSH. Ceci est conçu pour provisionner automatiquement de nouveaux systèmes avec Ubuntu 14.04 en utilisant LVM et le partitionnement automatique. Si vous utilisez cette image ISO sur un système Linux existant, le programme d'installation s'arrêtera lorsqu'il détectera les disques existants et attendra l'entrée. Si vous utilisez cette image ISO sur un système non EFI (par exemple une machine virtuelle Hyper-V de génération 1), elle attendra à l'écran de démarrage du programme d'installation graphique et nécessitera une entrée avant de passer à l'installateur automatique.
Le résultat est une installation de base du serveur Ubuntu avec ubuntu-server et openssh-server uniquement.
Voici les étapes pour créer un ISO amorçable EFI:
Obtenez l'ISO 14.04:
wget http://releases.ubuntu.com/14.04/ubuntu-14.04-server-amd64.iso
Montez-le et extrayez son contenu dans un nouveau dossier:
sudo mkdir -p ~/iso
sudo mount -o loop ubuntu-14.04-server-amd64.iso.iso ~/iso
sudo mkdir ~/ubuntu
sudo cp -rT ~/iso ~/ubuntu
Changez dans le répertoire où nous allons faire notre travail:
cd ~/ubuntu
Réglez la langue sur l'anglais:
sudo -i
echo en >/home/user/ubuntu/isolinux/lang
exit
Créez un fichier préconfiguré qui utilisera LVM pour partitionner automatiquement le disque en utilisant tout l'espace disponible:
sudo nano ~/ubuntu/ks.preseed
Remplacez le contenu du fichier par ceci:
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
Créez un fichier kickstart qui configurera Ubuntu lors de l'installation: (assurez-vous de changer la partie du nom d'utilisateur et vous devez utiliser des mots de passe chiffrés)
sudo nano ~/ubuntu/ks.cfg
Remplacez le contenu du fichier par ceci:
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
Modifiez le fichier de configuration grub de sorte que lorsque l'ISO effectue un démarrage EFI, le chargeur de démarrage utilise les bonnes options pour utiliser nos fichiers de préconfiguration et de configuration:
sudo nano ~/ubuntu/boot/grub/grub.cfg
Remplacez le contenu du fichier par ceci:
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
}
Modifiez le menu de démarrage isolinux pour un démarrage non EFI (démarrage MBR) afin d'utiliser la configuration personnalisée et la préconfiguration personnalisée:
sudo nano ~/ubuntu/isolinux/txt.cfg
Remplacez le contenu du fichier par ceci:
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
Créez l'ISO:
Cette commande est une version modifiée de la commande affichée sur http://petersmithphotog.no-ip.biz/wiki/index.php/Unattended_Install . Ces instructions ne fonctionnent pas pour Ubuntu 14.04 car elles pointent vers les mauvais emplacements pour le fichier efi.img. (devrait être dans ./boot/grub/ sur l'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 .
Vérifiez que l'ISO a les catalogues de démarrage de style correct:
L'ISO d'origine que vous avez téléchargée depuis Ubuntu:
dumpet -i ~/ubuntu-14.04-server-amd64.iso
Production:
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)
La nouvelle ISO que vous avez créée:
dumpet -i ~/Custom1404.iso
Production:
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)
Vous pouvez comparer cette sortie à la sortie que vous obtenez à partir d'une image ISO construite à l'aide des instructions de Comment créer une installation d'Ubuntu sans assistance? : (ils créent une ISO de MBR uniquement, pas une ISO de catalogue de démarrage double)
sudo mkisofs -D -r -V "non-efi-ubuntu" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../non-efi-ubuntu.iso .
Obtenez des informations ISO:
dumpet -i ~/non-efi-ubuntu.iso
Production:
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)