In MAAS, we use grub-mkimage to create a bootloader for VM's to PXE boot of MAAS by a grub bootloader that we provide over the network. (we call this bootppc64.bin).
This bootloader is created with the following grub configuration:
And the result is that grub has used to correct MAC address for the PXE process.
2018-08-07 17:07:45 provisioningserver.rackdservices.tftp: [info] bootppc64.bin requested by 10.245.136.136
2018-08-07 17:07:46 provisioningserver.rackdservices.tftp: [info] /grub/grub.cfg-52:54:00:7f:83:62 requested by 10.245.136.136
2018-08-07 17:07:47 provisioningserver.rackdservices.tftp: [info] ubuntu/ppc64el/generic/bionic/daily/boot-kernel requested by 10.245.136.136
2018-08-07 17:08:17 provisioningserver.rackdservices.tftp: [info] ubuntu/ppc64el/generic/bionic/daily/boot-initrd requested by 10.245.136.136
It would seem as the firmware in bionic is automatically generating a new MAC address.
Bionic console log
-------------------------------------------------------------------------------
Using default console: /vdevice/vty@30000000
Welcome to Open Firmware
Copyright (c) 2004, 2017 IBM Corporation All rights reserved.
This program and the accompanying materials are made available
under the terms of the BSD License available at http://www.opensource.org/licenses/bsd-license.php
Trying to load: from: /pci@800000020000000/ethernet@4 ...
Initializing NIC
Reading MAC address from device: 52:54:00:7f:83:62
Requesting information via DHCP: done
Using IPv4 address: 10.245.136.136
Requesting file "bootppc64.bin" via TFTP from 10.245.136.6
Receiving data: 1665 KBytes
TFTP: Received bootppc64.bin (1665 KBytes)
Successfully loaded
Booting under MAAS direction... [ grub.cfg-default-ppc 642B 100% 57.16B/s ]
OF stdout device is: /vdevice/vty@30000000initrd 55.89MiB 100% 647.54KiB/s ]
Preparing to boot Linux version 4.15.0-30-generic (buildd@bos02-ppc64el-011) (gcc version 7.3.0 (Ubuntu 7
.3.0-16ubuntu3)) #32-Ubuntu SMP Thu Jul 26 17:43:11 UTC 2018 (Ubuntu 4.15.0-30.32-generic 4.15.18)
Detected machine type: 0000000000000101
command line: BOOT_IMAGE=ubuntu/ppc64el/ga-18.04/bionic/daily/boot-kernel nomodeset ro root=squash:http:/
/10.245.136.6:5248/images/ubuntu/ppc64el/ga-18.04/bionic/daily/squashfs ip=::::maas-enlist:BOOTIF ip6=off
overlayroot=tmpfs overlayroot_cfgdisk=disabled cc:{datasource_list: [MAAS]}end_cc cloud-config-url=http:
//10-245-136-0--21.maas-internal:5248/MAAS/metadata/latest/enlist-preseed/?op=get_enlist_preseed apparmor
=0 log_host=10.245.136.6 log_port=514 BOOTIF=01-80:1c:b0:c0:7d:c5
Xenial console log
--------------------------------------------------------------------
Using default console: /vdevice/vty@30000000 [1032/2975]
Welcome to Open Firmware
Copyright (c) 2004, 2017 IBM Corporation All rights reserved.
This program and the accompanying materials are made available
under the terms of the BSD License available at http://www.opensource.org/licenses/bsd-license.php
Trying to load: from: /pci@800000020000000/ethernet@4 ...
Initializing NIC
Reading MAC address from device: 52:54:00:7f:83:62
Requesting information via DHCP: done
Using IPv4 address: 10.245.136.136
Requesting file "bootppc64.bin" via TFTP from 10.245.136.6
Receiving data: 1714 KBytes
TFTP: Received bootppc64.bin (1714 KBytes)
Successfully loaded
Booting under MAAS direction... [ grub.cfg-52:54:00:7f 640B 100% 0.62B/s ]
OF stdout device is: /vdevice/vty@30000000initrd 55.89MiB 100% 958.95KiB/s ]
Preparing to boot Linux version 4.15.0-30-generic (buildd@bos02-ppc64el-011) (gcc version 7.3.0 (Ubuntu $
.3.0-16ubuntu3)) #32-Ubuntu SMP Thu Jul 26 17:43:11 UTC 2018 (Ubuntu 4.15.0-30.32-generic 4.15.18)
Detected machine type: 0000000000000101
command line: BOOT_IMAGE=ubuntu/ppc64el/generic/bionic/daily/boot-kernel nomodeset ro root=squash:http:/$
10.245.136.6:5248/images/ubuntu/ppc64el/generic/bionic/daily/squashfs ip=::::fast-cow:BOOTIF ip6=off ove$
layroot=tmpfs overlayroot_cfgdisk=disabled cc:{datasource_list: [MAAS]}end_cc cloud-config-url=http://10$
245-136-0--21.maas-internal:5248/MAAS/metadata/latest/by-id/4ysp63/?op=get_preseed apparmor=0 log_host=1$
.245.136.6 log_port=514 rootdelay=60 BOOTIF=01-52:54:00:7f:83:62
Max number of cores passed to firmware: 2048 (NR_CPUS = 2048)
In MAAS, we use grub-mkimage to create a bootloader for VM's to PXE boot of MAAS by a grub bootloader that we provide over the network. (we call this bootppc64.bin).
This bootloader is created with the following grub configuration:
grub_config: |
# MAAS GRUB2 pre-loader configuration file
# Load based on MAC address first. grub.cfg- ${net_default_ mac}
configfile (pxe)/grub/
# Failed to load based on MAC address. grub.cfg- default- arm64
# Load arm64 by default, UEFI only supported by 64-bit
configfile (pxe)/grub/
When we use bionic bootloader, we see the following output in the console:
"Booting under MAAS direction... [ grub.cfg- default- ppc 642B 100% 57.16B/s ]"
And in rackd.log we see:
2018-08-07 17:37:21 provisioningser ver.rackdservic es.tftp: [info] bootppc64.bin requested by 10.245.136.136 ver.rackdservic es.tftp: [info] /grub/grub. cfg-80: 1c:b0:c0: 7d:c5 requested by 10.245.136.136 ver.rackdservic es.tftp: [info] /grub/grub. cfg-default- ppc64el requested by 10.245.136.136 ver.rackdservic es.tftp: [info] ubuntu/ ppc64el/ ga-18.04/ bionic/ daily/boot- kernel requested by 10.245.136.136
2018-08-07 17:37:24 provisioningser
2018-08-07 17:37:24 provisioningser
2018-08-07 17:37:24 provisioningser
This means that the VM attempted to PXE boot with MAC address "80:1c: b0:c0:7d: c5", but the VM itself has a different MAC address "52:54:00:7f:83:62"
<interface type='network'> '52:54: 00:7f:83: 62'/>
<mac address=
<source network='maas'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</interface>
If we are to switch the bootloader to the one created with xenial as a base, we see correct behavior.
"Booting under MAAS direction... [ grub.cfg- 52:54:00: 7f 640B 100% 0.62B/s ] "
And the result is that grub has used to correct MAC address for the PXE process.
2018-08-07 17:07:45 provisioningser ver.rackdservic es.tftp: [info] bootppc64.bin requested by 10.245.136.136 ver.rackdservic es.tftp: [info] /grub/grub. cfg-52: 54:00:7f: 83:62 requested by 10.245.136.136 ver.rackdservic es.tftp: [info] ubuntu/ ppc64el/ generic/ bionic/ daily/boot- kernel requested by 10.245.136.136 ver.rackdservic es.tftp: [info] ubuntu/ ppc64el/ generic/ bionic/ daily/boot- initrd requested by 10.245.136.136
2018-08-07 17:07:46 provisioningser
2018-08-07 17:07:47 provisioningser
2018-08-07 17:08:17 provisioningser
It would seem as the firmware in bionic is automatically generating a new MAC address.
Bionic console log ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- -- vty@30000000
-------
Using default console: /vdevice/
Welcome to Open Firmware
Copyright (c) 2004, 2017 IBM Corporation All rights reserved. www.opensource. org/licenses/ bsd-license. php
This program and the accompanying materials are made available
under the terms of the BSD License available at
http://
Trying to load: from: /pci@8000000200 00000/ethernet@ 4 ... default- ppc 642B 100% 57.16B/s ] vty@30000000ini trd 55.89MiB 100% 647.54KiB/s ] bos02-ppc64el- 011) (gcc version 7.3.0 (Ubuntu 7 30.32-generic 4.15.18) ubuntu/ ppc64el/ ga-18.04/ bionic/ daily/boot- kernel nomodeset ro root=squash:http:/ 136.6:5248/ images/ ubuntu/ ppc64el/ ga-18.04/ bionic/ daily/squashfs ip=:::: maas-enlist: BOOTIF ip6=off cfgdisk= disabled cc:{datasource_ list: [MAAS]}end_cc cloud-config- url=http: 136-0-- 21.maas- internal: 5248/MAAS/ metadata/ latest/ enlist- preseed/ ?op=get_ enlist_ preseed apparmor 10.245. 136.6 log_port=514 BOOTIF= 01-80:1c: b0:c0:7d: c5
Initializing NIC
Reading MAC address from device: 52:54:00:7f:83:62
Requesting information via DHCP: done
Using IPv4 address: 10.245.136.136
Requesting file "bootppc64.bin" via TFTP from 10.245.136.6
Receiving data: 1665 KBytes
TFTP: Received bootppc64.bin (1665 KBytes)
Successfully loaded
Booting under MAAS direction... [ grub.cfg-
OF stdout device is: /vdevice/
Preparing to boot Linux version 4.15.0-30-generic (buildd@
.3.0-16ubuntu3)) #32-Ubuntu SMP Thu Jul 26 17:43:11 UTC 2018 (Ubuntu 4.15.0-
Detected machine type: 0000000000000101
command line: BOOT_IMAGE=
/10.245.
overlayroot=tmpfs overlayroot_
//10-245-
=0 log_host=
Xenial console log ------- ------- ------- ------- ------- ------- ------- ------- ----- vty@30000000 [1032/2975]
-------
Using default console: /vdevice/
Welcome to Open Firmware
Copyright (c) 2004, 2017 IBM Corporation All rights reserved. www.opensource. org/licenses/ bsd-license. php
This program and the accompanying materials are made available
under the terms of the BSD License available at
http://
Trying to load: from: /pci@8000000200 00000/ethernet@ 4 ... 52:54:00: 7f 640B 100% 0.62B/s ] vty@30000000ini trd 55.89MiB 100% 958.95KiB/s ] bos02-ppc64el- 011) (gcc version 7.3.0 (Ubuntu $ 30.32-generic 4.15.18) ubuntu/ ppc64el/ generic/ bionic/ daily/boot- kernel nomodeset ro root=squash:http:/$ 136.6:5248/ images/ ubuntu/ ppc64el/ generic/ bionic/ daily/squashfs ip=:::: fast-cow: BOOTIF ip6=off ove$ cfgdisk= disabled cc:{datasource_ list: [MAAS]}end_cc cloud-config-url=http:// 10$ 0--21.maas- internal: 5248/MAAS/ metadata/ latest/ by-id/4ysp63/ ?op=get_ preseed apparmor=0 log_host=1$ 01-52:54: 00:7f:83: 62
Initializing NIC
Reading MAC address from device: 52:54:00:7f:83:62
Requesting information via DHCP: done
Using IPv4 address: 10.245.136.136
Requesting file "bootppc64.bin" via TFTP from 10.245.136.6
Receiving data: 1714 KBytes
TFTP: Received bootppc64.bin (1714 KBytes)
Successfully loaded
Booting under MAAS direction... [ grub.cfg-
OF stdout device is: /vdevice/
Preparing to boot Linux version 4.15.0-30-generic (buildd@
.3.0-16ubuntu3)) #32-Ubuntu SMP Thu Jul 26 17:43:11 UTC 2018 (Ubuntu 4.15.0-
Detected machine type: 0000000000000101
command line: BOOT_IMAGE=
10.245.
layroot=tmpfs overlayroot_
245-136-
.245.136.6 log_port=514 rootdelay=60 BOOTIF=
Max number of cores passed to firmware: 2048 (NR_CPUS = 2048)