Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-8191

[aarch64] Unable to enter the PXE installer again if the guest MAC address changes

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Minor Minor
    • None
    • rhel-9.4
    • edk2
    • None
    • Low
    • CustomerScenariosInitiative
    • rhel-sst-virtualization
    • ssg_virtualization
    • None
    • QE ack
    • False
    • Hide

      None

      Show
      None
    • None
    • Red Hat Enterprise Linux
    • None
    • None
    • None
    • aarch64
    • Linux
    • None

      What were you trying to do that didn't work?

      Start a qemu process with an empty image, and try to install a guest from PXE server. In the first time, can enter the PXE installer, then stop the qemu process and change the MAC address, start the qemu process again, the guest will directly enter the EDK2 UEFI shell interface.

      I tested on OVMF, but cannot reproduce this problem.

      Please provide the package NVR for which bug is seen:

      qemu: qemu-kvm-8.1.0-1.el9.aarch64
      edk2: edk2-aarch64-20230524-3.el9.noarch

      How reproducible:

      always

      Steps to reproduce

      1. Start a qemu process with an empty image
        # qemu-img create -f qcow2 /home/kvm_autotest_root/images/pxe-test.qcow2 1G
        # cp /usr/share/edk2/aarch64/vars-template-pflash.qcow2 /root/avocado/data/avocado-vt/avocado-vt-vm1_pxe-test_qcow2_filesystem_VARS.qcow2 
        # MALLOC_PERTURB_=1  /usr/libexec/qemu-kvm  \
            -name 'avocado-vt-vm1'  \
            -sandbox on \
            -blockdev '{"node-name": "file_aavmf_code", "driver": "file", "filename": "/usr/share/edk2/aarch64/QEMU_EFI-silent-pflash.qcow2", "auto-read-only": true, "discard": "unmap"}' \
            -blockdev '{"node-name": "drive_aavmf_code", "driver": "qcow2", "read-only": true, "file": "file_aavmf_code"}' \
            -blockdev '{"node-name": "file_aavmf_vars", "driver": "file", "filename": "/root/avocado/data/avocado-vt/avocado-vt-vm1_pxe-test_qcow2_filesystem_VARS.qcow2", "auto-read-only": true, "discard": "unmap"}' \
            -blockdev '{"node-name": "drive_aavmf_vars", "driver": "qcow2", "read-only": false, "file": "file_aavmf_vars"}' \
            -machine virt,gic-version=host,pflash0=drive_aavmf_code,pflash1=drive_aavmf_vars,memory-backend=mem-machine_mem \
            -device '{"id": "pcie-root-port-0", "driver": "pcie-root-port", "multifunction": true, "bus": "pcie.0", "addr": "0x1", "chassis": 1}' \
            -device '{"id": "pcie-pci-bridge-0", "driver": "pcie-pci-bridge", "addr": "0x0", "bus": "pcie-root-port-0"}'  \
            -nodefaults \
            -device '{"id": "pcie-root-port-1", "port": 1, "driver": "pcie-root-port", "addr": "0x1.0x1", "bus": "pcie.0", "chassis": 2}' \
            -device '{"driver": "virtio-gpu-pci", "bus": "pcie-root-port-1", "addr": "0x0"}' \
            -m 8192 \
            -object '{"size": 8589934592, "id": "mem-machine_mem", "qom-type": "memory-backend-ram"}'  \
            -smp 4,maxcpus=4,cores=2,threads=1,clusters=1,sockets=2  \
            -cpu 'host' \
            -serial unix:'/var/tmp/serial-serial0',server=on,wait=off \
            -device '{"id": "pcie-root-port-2", "port": 2, "driver": "pcie-root-port", "addr": "0x1.0x2", "bus": "pcie.0", "chassis": 3}' \
            -device '{"driver": "qemu-xhci", "id": "usb1", "bus": "pcie-root-port-2", "addr": "0x0"}' \
            -device '{"driver": "usb-tablet", "id": "usb-tablet1", "bus": "usb1.0", "port": "1"}' \
            -device '{"id": "pcie-root-port-3", "port": 3, "driver": "pcie-root-port", "addr": "0x1.0x3", "bus": "pcie.0", "chassis": 4}' \
            -device '{"id": "virtio_scsi_pci0", "driver": "virtio-scsi-pci", "bus": "pcie-root-port-3", "addr": "0x0"}' \
            -blockdev '{"node-name": "file_pxe", "driver": "file", "auto-read-only": true, "discard": "unmap", "aio": "threads", "filename": "/home/kvm_autotest_root/images/pxe-test.qcow2", "cache": {"direct": true, "no-flush": false}}' \
            -blockdev '{"node-name": "drive_pxe", "driver": "qcow2", "read-only": false, "cache": {"direct": true, "no-flush": false}, "file": "file_pxe"}' \
            -device '{"driver": "scsi-hd", "id": "pxe", "drive": "drive_pxe", "write-cache": "on"}' \
            -device '{"id": "pcie-root-port-4", "port": 4, "driver": "pcie-root-port", "addr": "0x1.0x4", "bus": "pcie.0", "chassis": 5}' \
            -device '{"driver": "virtio-net-pci", "mac": "9a:32:e9:39:65:cb", "rombar": 0, "id": "id4lFrAS", "netdev": "idRFtWNP", "bus": "pcie-root-port-4", "addr": "0x0"}'  \
            -netdev tap,id=idRFtWNP,vhost=on  \
            -vnc :0  \
            -rtc base=utc,clock=host \
            -enable-kvm \
            -monitor stdio
        
      2. Connect to the serial console and check the output
        BdsDxe: failed to load Boot0001 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0x1,0x3)/Pci(0x0,0x0)/Scsi(0x0,0x0): Not Found
        
        >>Start PXE over IPv4.
          Station IP address is 10.19.243.85
        
          Server IP address is 10.19.165.164
          NBP filename is aarch64/grubaa64_rhel74.efi
          NBP filesize is 891344 Bytes
         Downloading NBP file...
        
          NBP file downloaded successfully.
        BdsDxe: loading Boot0002 "UEFI PXEv4 (MAC:9A32E93965CB)" from PciRoot(0x0)/Pci(0x1,0x4)/Pci(0x0,0x0)/MAC(9A32E93965CB,0x1)/IPv4(0.0.0.0,0x0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)
        BdsDxe: starting Boot0002 "UEFI PXEv4 (MAC:9A32E93965CB)" from PciRoot(0x0)/Pci(0x1,0x4)/Pci(0x0,0x0)/MAC(9A32E93965CB,0x1)/IPv4(0.0.0.0,0x0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)
        
        
        
              Exit PXE
              Install distro from Beaker x86_64
              Install distro from Beaker AARCH64
        
      3. Quit the process and start again, then check the console output
        BdsDxe: failed to load Boot0001 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0x1,0x3)/Pci(0x0,0x0)/Scsi(0x0,0x0): Not Found
        
        >>Start PXE over IPv4.
          Station IP address is 10.19.243.85
        
          Server IP address is 10.19.165.164
          NBP filename is aarch64/grubaa64_rhel74.efi
          NBP filesize is 891344 Bytes
         Downloading NBP file...
        
          NBP file downloaded successfully.
        BdsDxe: loading Boot0002 "UEFI PXEv4 (MAC:9A32E93965CB)" from PciRoot(0x0)/Pci(0x1,0x4)/Pci(0x0,0x0)/MAC(9A32E93965CB,0x1)/IPv4(0.0.0.0,0x0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)
        BdsDxe: starting Boot0002 "UEFI PXEv4 (MAC:9A32E93965CB)" from PciRoot(0x0)/Pci(0x1,0x4)/Pci(0x0,0x0)/MAC(9A32E93965CB,0x1)/IPv4(0.0.0.0,0x0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)
        
        
        
              Exit PXE
              Install distro from Beaker x86_64
              Install distro from Beaker AARCH64
        
      4. Quit and change the MAC address, then start the qemu process
            -device '{"driver": "virtio-net-pci", "mac": "9a:32:e9:39:65:cc", "rombar": 0, "id": "id4lFrAS", "netdev": "idRFtWNP", "bus": "pcie-root-port-4", "addr": "0x0"}'  \
        

      Expected results

      Can enter the PXE installer

      Actual results

      BdsDxe: failed to load Boot0001 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0x1,0x3)/Pci(0x0,0x0)/Scsi(0x0,0x0): Not Found
      BdsDxe: loading Boot0006 "EFI Internal Shell" from Fv(64074AFE-340A-4BE6-94BA-91B5B4D0F71E)/FvFile(7C04A583-9E3E-4F1C-AD65-E05268D0B4D1)
      BdsDxe: starting Boot0006 "EFI Internal Shell" from Fv(64074AFE-340A-4BE6-94BA-91B5B4D0F71E)/FvFile(7C04A583-9E3E-4F1C-AD65-E05268D0B4D1)
      UEFI Interactive Shell v2.2
      EDK II
      UEFI v2.70 (EDK II, 0x00010000)
      Mapping table
           BLK0: Alias(s):
                PciRoot(0x0)/Pci(0x1,0x3)/Pci(0x0,0x0)/Scsi(0x0,0x0)
      Press ESC in 1 seconds to skip startup.nsh or any other key to continue.
      Shell>
      

              osteffen@redhat.com Oliver Steffen
              rhn-support-yihyu Yihuang Yu
              virt-maint virt-maint
              Yihuang Yu Yihuang Yu
              Votes:
              0 Vote for this issue
              Watchers:
              13 Start watching this issue

                Created:
                Updated:
                Resolved: