Sie müssen ein Dual-Boot-Katalog-ISO erstellen, damit EFI und MBR gebootet werden. Die standardmäßige Ubuntu 14.04 x64 ISO-Datei funktioniert auf diese Weise, es sind jedoch keine Anweisungen verfügbar, um eine neue bootfähige ISO 14.04 für EFI-Systeme zu erstellen. Ich konnte die richtigen Schritte zusammenstellen, um eine solche ISO zu erstellen.
Mit diesen Anweisungen können Sie ein benutzerdefiniertes Ubuntu 14.04-Server-ISO erstellen, das EFI und MBR booten kann. Wenn EFI auf einem System mit einer leeren, nicht initialisierten Festplatte gestartet wird (z. B. auf einer neuen Generation 2-VM in Hyper-V), wird das Setup automatisch gestartet. Anschließend wird die Festplatte automatisch gelöscht und die Ubuntu-Server-Basispakete und OpenSSH installiert. Dies ist für die automatische Bereitstellung neuer Systeme mit Ubuntu 14.04 unter Verwendung von LVM und automatischer Partitionierung vorgesehen. Wenn Sie diese ISO auf einem vorhandenen Linux-System verwenden, stoppt das Installationsprogramm, wenn vorhandene Festplatten erkannt werden, und wartet auf Eingaben. Wenn Sie diese ISO auf einem Nicht-EFI-System (z. B. einer Hyper-V-VM der 1. Generation) verwenden, wartet sie auf dem Startbildschirm des grafischen Installationsprogramms und erfordert Eingaben, bevor Sie mit der automatischen Installation fortfahren.
Das Ergebnis ist eine Ubuntu-Server-Basisinstallation mit Ubuntu-Server und OpenSh-Server.
So erstellen Sie ein EFI-bootfähiges ISO:
Holen Sie sich die 14.04 ISO:
wget http://releases.ubuntu.com/14.04/ubuntu-14.04-server-amd64.iso
Hängen Sie es ein und extrahieren Sie den Inhalt in einen neuen Ordner:
sudo mkdir -p ~/iso
sudo mount -o loop ubuntu-14.04-server-amd64.iso.iso ~/iso
sudo mkdir ~/ubuntu
sudo cp -rT ~/iso ~/ubuntu
Wechseln Sie in das Verzeichnis, in dem wir arbeiten werden:
cd ~/ubuntu
Stellen Sie die Sprache auf Englisch ein:
sudo -i
echo en >/home/user/ubuntu/isolinux/lang
exit
Erstellen Sie eine Voreinstellungsdatei, die mithilfe von LVM die Festplatte automatisch unter Verwendung des gesamten verfügbaren Speicherplatzes partitioniert:
sudo nano ~/ubuntu/ks.preseed
Ersetzen Sie den Dateiinhalt durch Folgendes:
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
Erstellen Sie eine Kickstart-Datei, die Ubuntu während der Installation konfiguriert: (Stellen Sie sicher, dass Sie den Benutzernamen ändern und verschlüsselte Passwörter verwenden)
sudo nano ~/ubuntu/ks.cfg
Ersetzen Sie den Dateiinhalt durch Folgendes:
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
Bearbeiten Sie die Grub-Konfigurationsdatei so, dass der Bootloader beim Ausführen eines EFI-Bootvorgangs die richtigen Optionen verwendet, um unsere Voreinstellungs- und Konfigurationsdateien zu verwenden:
sudo nano ~/ubuntu/boot/grub/grub.cfg
Ersetzen Sie den Dateiinhalt durch Folgendes:
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
}
Bearbeiten Sie das Isolinux-Startmenü für Nicht-EFI-Startvorgänge (MBR-Startvorgänge), um die benutzerdefinierte Konfiguration und die benutzerdefinierte Voreinstellung zu verwenden:
sudo nano ~/ubuntu/isolinux/txt.cfg
Ersetzen Sie den Dateiinhalt durch Folgendes:
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
Erstellen Sie die ISO:
Dieser Befehl ist eine modifizierte Version des Befehls, der unter http://petersmithphotog.no-ip.biz/wiki/index.php/Unattended_Install angezeigt wird . Diese Anweisungen funktionieren nicht für Ubuntu 14.04, da sie auf die falschen Speicherorte für die Datei efi.img verweisen. (sollte in ./boot/grub/ auf der ISO sein)
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 .
Vergewissern Sie sich, dass die ISO die richtigen Startkataloge hat:
Das Original-ISO, das Sie von Ubuntu heruntergeladen haben:
dumpet -i ~/ubuntu-14.04-server-amd64.iso
Ausgabe:
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)
Die neue ISO, die Sie erstellt haben:
dumpet -i ~/Custom1404.iso
Ausgabe:
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)
Sie können diese Ausgabe mit der Ausgabe vergleichen, die Sie von einer ISO-Datei erhalten, die anhand der Anweisungen unter Wie erstelle ich eine völlig unbeaufsichtigte Installation von Ubuntu? : (Sie erstellen nur ein MBR-ISO, kein Dual-Boot-Katalog-ISO.)
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 .
Holen Sie sich ISO-Informationen:
dumpet -i ~/non-efi-ubuntu.iso
Ausgabe:
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)