我目前正在尝试使用预置文件和 kickstart 文件在 Intel UP² 主板上执行 Ubuntu Server 16.04 的无人值守安装。
目前,我并没有真正关注安装的无人值守方面。我只想使用 preseed 和 kickstart 安装操作系统。我设法让 ISO 工作,但一旦安装了 Ubuntu Server,我就无法启动它。我甚至看不到 GRUB 屏幕,我得到的是一个黑屏,我在那里停滞不前。我尝试按 Ctrl+Alt+F1 到 F9 来打开我的一个 tty,但它什么也没做。
为了创建 ISO 并刻录 USB,我受到了以下启发:邮政。现在我将一步一步地向你们展示我到底做了什么。
在此之前,让我告诉你,新的 Intel UP² 主板似乎无法处理 MBR 安装,所以我的 USB 密钥必须是 EFI 可启动的。(我不确定我们是不是这样说的,如果我错了,请纠正我)
假设我有一个位于 ~/Downloads 的 Ubuntu Server ISO:
# mount original ISO
sudo mount -o loop ~/Downloads/ubuntu-16.04.5-server-amd64.iso /mnt/iso
# copy data
sudo cp -rT /mnt/iso /opt/ubuntuiso
现在我有一个文件夹,里面有制作 ISO 所需的一切。我正在使用这个预置文件 (ks.preseed)
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
这个 kickstart 文件 (ks.cfg)
#Generated by Kickstart Configurator
#platform=x86
#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard fr
#System mouse
mouse
#System timezone
timezone Europe/Paris
#Root password
rootpw --disabled
#Initial user
user eb --fullname "Laia001" --iscrypted --password $1$uPBQ18Zj$ye8BIWTa7eOWVgdhtQQ8b0
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use CDROM installation media
cdrom
#System bootloader configuration
#bootloader --location=partition
#Clear the Master Boot Record
#zerombr yes
#Partition clearing information
#clearpart --all --initlabel
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=dhcp --device=enp2s0
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
skipx
%packages
@ ubuntu-server
openssh-server
这个 grub 配置文件(grub.cfg):
if loadfont /boot/grub/font.pf2 ; then
set gfxmode=auto
insmod efi_gop
insmod efi_uga
insmod gfxterm
terminal_output gfxterm
fi
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
}
假设所有先前的文件都位于 ~/newIsoFiles 中:
# copy data into ISO folder
sudo cp ~/newIsoFiles/ks.* /opt/ubuntuiso/ubuntu
sudo cp ~/newIsoFiles/grub.cfg /opt/ubuntuiso/boot/grub/
# create ISO
sudo xorriso -as mkisofs -V "Unattended Server" -no-emul-boot -boot-load-size 4 -boot-info-table -iso-level 4 -b isolinux/isolinux.bin -c isolinux/boot.cat -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -o /tmp/ubuntu16-server-unattended-install.iso /opt/ubuntuiso/
# treat ISO to make it bootable
sudo isohybrid --uefi /tmp/ubuntu16-server-unattended-install.iso
# Finally, burn it on USB
sudo dd if=/tmp/ubuntu16-server-unattended-install.iso of=/dev/sdb bs=4k
之后,我只需将 USB 插入 UP² 板并安装所有东西即可。在最终重启之前,一切似乎都运行正常,之后我得到一个黑屏,甚至看不到 GRUB 屏幕。
有人能看到我做错什么了吗?