Anda perlu membuat katalog boot ganda ISO sehingga akan mem-boot EFI dan MBR. File ISO Ubuntu 14.04 x64 standar berfungsi dengan cara ini tetapi tidak ada instruksi yang tersedia untuk membuat ISO 14,04 bootable baru untuk sistem EFI. Saya bisa menyatukan langkah yang tepat untuk membuat ISO seperti ini.
Instruksi ini memungkinkan Anda membuat ISO 14 Ubuntu Server kustom yang dapat mem-boot EFI dan MBR. Ketika EFI melakukan booting pada sistem dengan disk kosong yang tidak diinisialisasi (misalnya pada VM Generasi 2 baru di Hyper-V), setup akan dimulai secara otomatis, kemudian secara otomatis menghapus disk dan menginstal paket dasar ubuntu-server dan OpenSSH. Ini dirancang untuk secara otomatis menyediakan sistem baru dengan Ubuntu 14.04 menggunakan LVM dan auto-partisi. Jika Anda menggunakan ISO ini pada sistem Linux yang ada maka installer akan berhenti ketika mendeteksi disk yang ada dan menunggu input. Jika Anda menggunakan ISO ini pada sistem non-EFI (misalnya Generasi 1 Hyper-V VM) maka ia akan menunggu di layar startup pemasang grafis dan memerlukan input sebelum melanjutkan ke pemasang otomatis.
Hasilnya adalah instalasi dasar Ubuntu Server dengan ubuntu-server dan openssh-server saja.
Berikut adalah langkah-langkah untuk membuat ISO EFI-bootable:
Dapatkan 14,04 ISO:
wget http://releases.ubuntu.com/14.04/ubuntu-14.04-server-amd64.iso
Pasang dan ekstrak isinya ke folder baru:
sudo mkdir -p ~/iso
sudo mount -o loop ubuntu-14.04-server-amd64.iso.iso ~/iso
sudo mkdir ~/ubuntu
sudo cp -rT ~/iso ~/ubuntu
Ubah ke direktori tempat kami akan melakukan pekerjaan kami:
cd ~/ubuntu
Setel bahasa ke Bahasa Inggris:
sudo -i
echo en >/home/user/ubuntu/isolinux/lang
exit
Buat file preseed yang akan menggunakan LVM untuk mempartisi-otomatis disk menggunakan semua ruang yang tersedia:
sudo nano ~/ubuntu/ks.preseed
Ganti konten file dengan ini:
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
Buat file kickstart yang akan mengonfigurasi Ubuntu selama instalasi: (pastikan Anda mengubah bagian nama pengguna, dan Anda harus menggunakan kata sandi terenkripsi)
sudo nano ~/ubuntu/ks.cfg
Ganti konten file dengan ini:
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
Edit file konfigurasi grub sehingga ketika ISO melakukan boot EFI bootloader menggunakan opsi yang tepat untuk menggunakan file konfigurasi dan preseed kami:
sudo nano ~/ubuntu/boot/grub/grub.cfg
Ganti konten file dengan ini:
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
}
Edit menu boot isolinux untuk booting non-EFI (boot MBR) untuk menggunakan konfigurasi khusus dan preseed kustom:
sudo nano ~/ubuntu/isolinux/txt.cfg
Ganti konten file dengan ini:
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
Buat ISO:
Perintah ini adalah versi modifikasi dari perintah yang ditampilkan di http://petersmithphotog.no-ip.biz/wiki/index.php/Unattended_Install . Instruksi-instruksi itu tidak berfungsi untuk Ubuntu 14.04 karena mereka menunjuk ke lokasi yang salah untuk file efi.img. (harus dalam ./boot/grub/ di 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 .
Pastikan ISO memiliki katalog boot gaya yang benar:
ISO asli yang Anda unduh dari Ubuntu:
dumpet -i ~/ubuntu-14.04-server-amd64.iso
Keluaran:
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)
ISO baru yang Anda buat:
dumpet -i ~/Custom1404.iso
Keluaran:
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)
Anda dapat membandingkan output ini dengan output yang Anda dapatkan dari ISO yang dibuat menggunakan instruksi di Bagaimana cara membuat instalasi Ubuntu yang benar-benar tanpa pengawasan? : (mereka membuat ISO MBR saja, bukan ISO katalog booting ganda)
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 .
Dapatkan info ISO:
dumpet -i ~/non-efi-ubuntu.iso
Keluaran:
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)