Bạn cần tạo một danh mục khởi động kép ISO để nó sẽ khởi động EFI và MBR. Tệp ISO Ubuntu 14.04 x64 tiêu chuẩn hoạt động theo cách này nhưng không có hướng dẫn nào để tạo ISO 14.04 có thể khởi động mới cho các hệ thống EFI. Tôi đã có thể ghép các bước đúng để tạo ra một ISO như thế này.
Các hướng dẫn này sẽ cho phép bạn tạo một Ubuntu 14.04 Server ISO tùy chỉnh có thể khởi động EFI và MBR. Khi EFI khởi động trên hệ thống với một đĩa trống, chưa được khởi tạo (ví dụ trên VM thế hệ 2 mới trong Hyper-V), thiết lập sẽ tự động bắt đầu, sau đó tự động xóa sạch đĩa và cài đặt các gói máy chủ ub Ubuntu cơ sở và OpenSSH. Điều này được thiết kế để tự động cung cấp các hệ thống mới với Ubuntu 14.04 bằng cách sử dụng LVM và phân vùng tự động. Nếu bạn sử dụng ISO này trên hệ thống Linux hiện có thì trình cài đặt sẽ dừng khi phát hiện các đĩa hiện có và chờ đầu vào. Nếu bạn sử dụng ISO này trên hệ thống không phải EFI (ví dụ: Máy ảo Hyper-V thế hệ 1) thì nó sẽ đợi ở màn hình khởi động trình cài đặt đồ họa và yêu cầu nhập trước khi tiếp tục trình cài đặt tự động.
Kết quả là một cài đặt Ubuntu Server cơ sở với máy chủ ubfox và máy chủ openssh.
Dưới đây là các bước để tạo ISO có thể khởi động EFI:
Nhận ISO 14.04:
wget http://releases.ubuntu.com/14.04/ubuntu-14.04-server-amd64.iso
Gắn kết và trích xuất nội dung của nó vào một thư mục mới:
sudo mkdir -p ~/iso
sudo mount -o loop ubuntu-14.04-server-amd64.iso.iso ~/iso
sudo mkdir ~/ubuntu
sudo cp -rT ~/iso ~/ubuntu
Thay đổi vào thư mục nơi chúng tôi sẽ thực hiện công việc của mình:
cd ~/ubuntu
Đặt ngôn ngữ thành tiếng Anh:
sudo -i
echo en >/home/user/ubuntu/isolinux/lang
exit
Tạo một tệp preseed sẽ sử dụng LVM để tự động phân vùng đĩa bằng tất cả không gian có sẵn:
sudo nano ~/ubuntu/ks.preseed
Thay thế nội dung tập tin bằng cái này:
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
Tạo một tệp khởi động sẽ cấu hình Ubuntu trong khi cài đặt: (đảm bảo bạn thay đổi phần tên người dùng và bạn nên sử dụng mật khẩu được mã hóa)
sudo nano ~/ubuntu/ks.cfg
Thay thế nội dung tập tin bằng cái này:
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
Chỉnh sửa tệp cấu hình grub để khi ISO thực hiện khởi động EFI, bộ tải khởi động sử dụng các tùy chọn phù hợp để sử dụng các tệp cấu hình và định sẵn của chúng tôi:
sudo nano ~/ubuntu/boot/grub/grub.cfg
Thay thế nội dung tập tin bằng cái này:
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
}
Chỉnh sửa menu khởi động isolinux để khởi động không phải EFI (khởi động MBR) để sử dụng cấu hình tùy chỉnh và tùy chỉnh preseed:
sudo nano ~/ubuntu/isolinux/txt.cfg
Thay thế nội dung tập tin bằng cái này:
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
Tạo ISO:
Lệnh này là một phiên bản sửa đổi của lệnh được hiển thị tại http://petermithph photo.no-ip.biz/wiki/index.php/Unattends_Install . Các hướng dẫn đó không hoạt động cho Ubuntu 14.04 vì chúng trỏ đến các vị trí sai cho tệp efi.img. (nên ở ./boot/grub/ trên 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 .
Xác minh ISO có danh mục khởi động đúng kiểu:
ISO gốc bạn đã tải xuống từ Ubuntu:
dumpet -i ~/ubuntu-14.04-server-amd64.iso
Đầu ra:
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 mới mà bạn đã tạo:
dumpet -i ~/Custom1404.iso
Đầu ra:
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)
Bạn có thể so sánh đầu ra này với đầu ra bạn nhận được từ một ISO được xây dựng bằng cách sử dụng các hướng dẫn tại Làm cách nào để tôi tạo một bản cài đặt Ubuntu hoàn toàn không giám sát? : (họ tạo ISO chỉ MBR, không phải ISO danh mục khởi động kép)
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 .
Nhận thông tin ISO:
dumpet -i ~/non-efi-ubuntu.iso
Đầu ra:
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)