2018-12-05, 23:31
I've been trying to boot the newer Dell computers with UEFI, given they no longer support the BIOS boot method from hard drive, and you need to boot UEFI to install Ubuntu as UEFI.
I've set up the Ubuntu 16.04 LTS installer, I boot the computer on UEFI and boot iPXE. I select the menu entry for installing Ubuntu 16.04, and the screen shows the kernel downloading and the initrd downloading:
From there, the kernel boots, and almost immediately shows the error that it cannot open root device "nfs":
The ipxe code to do this,
... and when I boot this on BIOS boot method, I hit the break at the top of the init script. When I boot this on UEFI, I get that the root device NFS does not exist.
It feels like NIC drivers, so I compiled the e1000e driver into the Ubuntu kernel and tried booting... only to get the same error again. At that point, it still felt like it wasn't loading the initramfs, so I did what any experimental person would do: I compiled the initramfs into the kernel, yielding a 200MB bzimage. I edited the menu,
and booted. I hit the breakpoint at the top of the init script.
It seems like the initramfs as loaded by ipxe isn't being used specifically in UEFI boot mode. Perhaps it's being loaded to an incorrect area. Does anyone have input here?
I've set up the Ubuntu 16.04 LTS installer, I boot the computer on UEFI and boot iPXE. I select the menu entry for installing Ubuntu 16.04, and the screen shows the kernel downloading and the initrd downloading:
From there, the kernel boots, and almost immediately shows the error that it cannot open root device "nfs":
The ipxe code to do this,
Code:
set nfs_path /home/netboot/images
set nfs_file nfs://${nfs_ip}${nfs_path}
set ubuntu_path ori-xenial
kernel ${nfs_file}/${ubuntu_path}/install/hwe-netboot/ubuntu-installer/amd64/linux-ori
initrd ${nfs_file}/${ubuntu_path}/install/hwe-netboot/ubuntu-installer/amd64/initrd-ori
iseq ${enable-debug} true && set additional-args DEBCONF_DEBUG=developer ||
imgargs linux-ori root=/dev/nfs hostname=netboot-inst url=tftp://${nfs_ip}/${ubuntu_path}/preseed/optimus.seed file=preseed/optimus.seed auto=true boot=casper netboot=nfs nfsrootdebug nfsroot=${nfs_ip}:${nfs_path}/${ubuntu_path} tftppath=${ubuntu_path} ip=dhcp ${additional-args} break=top BOOT_DEBUG=3 debug -- || goto boot_err
... and when I boot this on BIOS boot method, I hit the break at the top of the init script. When I boot this on UEFI, I get that the root device NFS does not exist.
It feels like NIC drivers, so I compiled the e1000e driver into the Ubuntu kernel and tried booting... only to get the same error again. At that point, it still felt like it wasn't loading the initramfs, so I did what any experimental person would do: I compiled the initramfs into the kernel, yielding a 200MB bzimage. I edited the menu,
Code:
kernel ${nfs_file}/${ubuntu_path}/install/hwe-netboot/ubuntu-installer/amd64/linux-allinone
#initrd ...
It seems like the initramfs as loaded by ipxe isn't being used specifically in UEFI boot mode. Perhaps it's being loaded to an incorrect area. Does anyone have input here?