Public bug reported:
Booting grub over the network sets various variables (default server
172.18.1.1, gw 172.18.1.2):
pxe_default_server
net_default_ip
net_default_mac
net_default_server
After successfully booting grub over PXE (with grub upstream):
net_default_interface=efinet1
net_default_ip=172.18.1.209
net_default_mac=11:22:33:44:55:66
net_default_server=172.18.1.1
net_efinet1_boot_file=pxeboot.img
net_efinet1_ip=172.18.1.209
net_efinet1_mac=11:22:33:44:55:66
prefix=(tftp,172.18.1.1)/tftp
pxe_default_server=172.18.1.1
root=tftp,172.18.1.1
After successfully booting grub over PXE (with an older grub):
net_default_ip=172.18.1.209
net_default_mac=11:22:33:44:55:66
net_default_server=172.18.1.1
prefix=(tftp,172.18.1.1)/tftp
pxe_default_server=172.18.1.1
root=tftp,172.18.1.1
But using grub provided by Ubuntu 14.04:
net_default_ip=172.18.1.209
net_default_mac=
net_default_server=
pxe_default_server=
prefix=(tftp,172.18.1.1)/tftp
root=tftp,172.18.1.1
In turn booting from nfs with grub script:
menuentry "Rescue 64-Bit" {
recordfail
set gfxpayload=$linux_gfx_mode
set root='(pxe)'
echo "loading kernel ..."
linux (pxe)/rcd/isolinux/rescue64 vga=788
nfsboot=$net_default_server:/data/tftp/rcd
echo "loading initrd ..."
initrd (pxe)/rcd/isolinux/initram.igz
}
Fails because the kernel tries to mount :/data/tftp/rcd
The same is for booting FreeBSD:
menuentry "FreeBSD 10 ..." {
echo "Loading kernel ..."
recordfail
set gfxpayload=$linux_gfx_mode
set root='(pxe)'
kfreebsd /freebsd/10/boot/kernel/kernel
#
echo "Loading device hints ..."
kfreebsd_loadenv /freebsd/9/boot/device.hints
#
echo "Loading initrd ..."
kfreebsd_module /freebsd/10/mfsroot.gz type=mfs_root
#
set
kFreeBSD.vfs.root.mountfrom=nfs:$pxe_default_server:/data/tftp/freebsd/10
set kFreeBSD.vfs.root.mountfrom.options=ro
#
set kFreeBSD.boot.nfsroot.server=$pxe_default_server
set kFreeBSD.boot.netif.hwaddr=$net_pxe_mac
set kFreeBSD.boot.netif.ip=$net_pxe_ip
set kFreeBSD.boot.netif.netmask=255.255.255.0
set kFreeBSD.boot.netif.gateway=$pxe_default_gateway
set kFreeBSD.dhcp.host-name=$net_pxe_hostname
set kFreeBSD.dhcp.routers=$pxe_default_gateway
set kFreeBSD.boot.kspath=$ks_path
}
Because all those unset variables lead to unset kernel-Variables. In
tune FreeBSD loads the kernel, but can't continue, because it doesn't
find the system to load.
Grub shall set these variables accordingly to what dhcp provides.
This seems fixed in upstream grub from gnu.
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: grub2 (not installed)
ProcVersionSignature: Ubuntu 3.13.0-17.37-generic 3.13.6
Uname: Linux 3.13.0-17-generic x86_64
ApportVersion: 2.13.3-0ubuntu1
Architecture: amd64
Date: Thu Mar 13 10:56:30 2014
InstallationDate: Installed on 2014-01-31 (40 days ago)
InstallationMedia: Ubuntu-Server 13.10 "Saucy Salamander" - Release amd64
(20131016)
ProcEnviron:
TERM=xterm-256color
PATH=(custom, no user)
XDG_RUNTIME_DIR=<set>
LANG=de_DE.UTF-8
SHELL=/bin/bash
SourcePackage: grub2
UpgradeStatus: Upgraded to trusty on 2014-01-31 (40 days ago)
** Affects: grub2 (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug trusty
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1291900
Title:
grub does not fill in various variables pxe_default_* and
net_default_*
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1291900/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs