iDRAC-Redfish-Scripting icon indicating copy to clipboard operation
iDRAC-Redfish-Scripting copied to clipboard

Unable to set boot order

Open srikarpyda opened this issue 11 months ago • 16 comments

Hello Tex,

I am having issues with configuring the Dell machine I am working with to boot off HTTP device 1. We want the machine to repeatedly try booting off HTTP device 1 until it is successfully able to. However, right now, the Dell machine continues to boot off the local ubuntu image.We use this procedure against both Dell R670 and DellR650 machines succesfully.

I was hoping to get your guidance on how we can configure the machine to boot off HTTP device 1.

Model: PowerEdge XE9680 BIOS Version: 2.4.4 iDRAC Firmware Version: 7.10.50.10

We tried two procedures:

  1. Procedure 1: specifying only the HTTP device 1 boot option (this is the behavior we want). This is normally what we do against other Dell models.

`curl -v -k -X PATCH -u user:'password' -H "Content-Type: application/json" https://bmc_ip_address/redfish/v1/Systems/System.Embedded.1/Bios/Settings -d '{ "@Redfish.SettingsApplyTime": { "ApplyTime": "OnReset" }, "Attributes": { "SetBootOrderEn": "NIC.HttpDevice.1-1" } }'

curl -k -u user:'password' https://bmc_ip_address/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset -H "Content-Type: application/json" -X POST -d '{"ResetType": "ForceRestart"}'`

  1. Procedure 2: specifying all the boot options.

`curl -v -k -X PATCH -u user:'password' -H "Content-Type: application/json" https://bmc_ip_address/redfish/v1/Systems/System.Embedded.1/Bios/Settings -d '{ "@Redfish.SettingsApplyTime": { "ApplyTime": "OnReset" }, "Attributes": { "SetBootOrderEn": "NIC.HttpDevice.1-1,Disk.Bay.7:Enclosure.Internal.0-1,BOSS.SL.16-1" } }'

curl -k -u user:'password' https://bmc_ip_address/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset -H "Content-Type: application/json" -X POST -d '{"ResetType": "ForceRestart"}'`

However, regardless of the procedure adopted, the boot order is staying as: Disk.Bay.7:Enclosure.Internal.0-1,BOSS.SL.16-1, NIC.HttpDevice.1-1

Here is the full BIOS settings for the machine:

curl -k -u user:'password' -H 'content-type: application/json' -X GET https://bmc_ip_address/redfish/v1/Systems/System.Embedded.1/Bios | jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5362  100  5362    0     0    936      0  0:00:05  0:00:05 --:--:--  1521
{
  "@odata.context": "/redfish/v1/$metadata#Bios.Bios",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/Bios",
  "@odata.type": "#Bios.v1_2_3.Bios",
  "Id": "Bios",
  "Name": "BIOS Configuration Current Settings",
  "Description": "BIOS Configuration Current Settings",
  "AttributeRegistry": "BiosAttributeRegistry.v1_0_3",
  "Attributes": {
    "AvxIccpPreGrantLicense": "Disabled",
    "BiosNvmeDriver": "DellQualifiedDrives",
    "BootMode": "Uefi",
    "BootSeqRetry": "Enabled",
    "ControlledTurbo": "Disabled",
    "ControlledTurboMinusBin": 0,
    "CpuCrashLogControl": "Disabled",
    "CpuInterconnectBusSpeed": "MaxDataRate",
    "CpuPaLimit": "Enabled",
    "DcuIpPrefetcher": "Enabled",
    "DcuStreamerPrefetcher": "Enabled",
    "DeadLineLlcAlloc": "Enabled",
    "DirectoryAtoS": "Disabled",
    "DirectoryMode": "Enabled",
    "EmbSata": "AhciMode",
    "GenericUsbBoot": "Disabled",
    "HddFailover": "Disabled",
    "HddPlaceholder": "Enabled",
    "HostNqnMode": "HostNqnModeDell",
    "HttpDev1EnDis": "Enabled",
    "HttpDev2EnDis": "Disabled",
    "HttpDev3EnDis": "Disabled",
    "HttpDev4EnDis": "Disabled",
    "InteractiveMode": "Enabled",
    "IscsiDev1EnDis": "Disabled",
    "IscsiInitiatorName": "",
    "KernelDmaProtection": "Disabled",
    "LlcPrefetch": "Enabled",
    "LmceEn": "Enabled",
    "LogicalProc": "Disabled",
    "MadtCoreEnumeration": "Linear",
    "NumberOfPxeDevices": "4",
    "NvmeMode": "NonRaid",
    "NvmeofEnDis": "Disabled",
    "NvmeofHostDellNqn": "nqn.1988-11.com.dell:PowerEdge.XE9680.J7L2144",
    "NvmeofHostId": "4C4C4544-0037-4C10-8032-CAC04F313434",
    "NvmeofHostSecurityPath": "",
    "OneTimeBootMode": "Disabled",
    "OneTimeUefiBootSeqDev": "Disk.Bay.7:Enclosure.Internal.0-1",
    "OpportunisticSnoopBroadcast": "Auto",
    "Proc1Brand": "Intel(R) Xeon(R) Platinum 8480+",
    "Proc1Id": "6-8F-8",
    "Proc1L2Cache": "56x2 MB",
    "Proc1L3Cache": "105 MB",
    "Proc1Microcode": "0x2B000603",
    "Proc1NumCores": 56,
    "Proc2Brand": "Intel(R) Xeon(R) Platinum 8480+",
    "Proc2Id": "6-8F-8",
    "Proc2L2Cache": "56x2 MB",
    "Proc2L3Cache": "105 MB",
    "Proc2Microcode": "0x2B000603",
    "Proc2NumCores": 56,
    "ProcAdjCacheLine": "Enabled",
    "ProcAmpPrefetch": "Disabled",
    "ProcAvxP1": "Normal",
    "ProcBusSpeed": "16 GT/s",
    "ProcCoreSpeed": "2.00 GHz",
    "ProcCores": "All",
    "ProcHomelessPrefetch": "Auto",
    "ProcHwPrefetcher": "Enabled",
    "ProcUncoreFreqRapl": "Enabled",
    "ProcVirtualization": "Disabled",
    "ProcX2Apic": "Disabled",
    "ProcessorActivePbf": "Disabled",
    "ProcessorSstCpSetting": "Disabled",
    "PxeDev1EnDis": "Disabled",
    "PxeDev1Interface": "NIC.Embedded.1-1-1",
    "PxeDev1Protocol": "IPv4",
    "PxeDev1VlanEnDis": "Disabled",
    "PxeDev1VlanId": 1,
    "PxeDev1VlanPriority": 0,
    "PxeDev2EnDis": "Disabled",
    "PxeDev2Interface": "NIC.Embedded.1-1-1",
    "PxeDev2Protocol": "IPv4",
    "PxeDev2VlanEnDis": "Disabled",
    "PxeDev3EnDis": "Disabled",
    "PxeDev3Interface": "NIC.Embedded.1-1-1",
    "PxeDev3Protocol": "IPv4",
    "PxeDev3VlanEnDis": "Disabled",
    "PxeDev4EnDis": "Disabled",
    "PxeDev4Interface": "NIC.Embedded.1-1-1",
    "PxeDev4Protocol": "IPv4",
    "PxeDev4VlanEnDis": "Disabled",
    "PxeDev4VlanId": 1,
    "PxeDev4VlanPriority": 0,
    "PxeDev5VlanId": 1,
    "PxeDev5VlanPriority": 0,
    "SecurityFreezeLock": "Enabled",
    "SetBootOrderDis": "",
    "SetBootOrderDis2": "",
    "SetBootOrderEn": "Disk.Bay.7:Enclosure.Internal.0-1,BOSS.SL.16-1,NIC.HttpDevice.1-1",
    "SetBootOrderEn2": "",
    "SetBootOrderFqdd1": "",
    "SetBootOrderFqdd10": "",
    "SetBootOrderFqdd11": "",
    "SetBootOrderFqdd12": "",
    "SetBootOrderFqdd13": "",
    "SetBootOrderFqdd14": "",
    "SetBootOrderFqdd15": "",
    "SetBootOrderFqdd16": "",
    "SetBootOrderFqdd2": "",
    "SetBootOrderFqdd3": "",
    "SetBootOrderFqdd4": "",
    "SetBootOrderFqdd5": "",
    "SetBootOrderFqdd6": "",
    "SetBootOrderFqdd7": "",
    "SetBootOrderFqdd8": "",
    "SetBootOrderFqdd9": "",
    "SetLegacyHddOrderFqdd1": "",
    "SetLegacyHddOrderFqdd10": "",
    "SetLegacyHddOrderFqdd11": "",
    "SetLegacyHddOrderFqdd12": "",
    "SetLegacyHddOrderFqdd13": "",
    "SetLegacyHddOrderFqdd14": "",
    "SetLegacyHddOrderFqdd15": "",
    "SetLegacyHddOrderFqdd16": "",
    "SetLegacyHddOrderFqdd2": "",
    "SetLegacyHddOrderFqdd3": "",
    "SetLegacyHddOrderFqdd4": "",
    "SetLegacyHddOrderFqdd5": "",
    "SetLegacyHddOrderFqdd6": "",
    "SetLegacyHddOrderFqdd7": "",
    "SetLegacyHddOrderFqdd8": "",
    "SetLegacyHddOrderFqdd9": "",
    "SubNumaCluster": "Disabled",
    "SysMfrContactInfo": "www.dell.com",
    "SysPrepClean": "None",
    "SystemBiosVersion": "2.4.4",
    "SystemCpldVersion": "1.4.2",
    "SystemManufacturer": "Dell Inc.",
    "SystemMeVersion": "6.1.4.47",
    "SystemServiceTag": "J7L2144",
    "UefiComplianceVersion": "2.7",
    "UmaBasedClusteringStatus": "Quadrant",
    "UpiPrefetch": "Enabled",
    "WriteCache": "Disabled",
    "XptPrefetch": "Enabled"
  },
  "Actions": {
    "#Bios.ChangePassword": {
      "target": "/redfish/v1/Systems/System.Embedded.1/Bios/Actions/Bios.ChangePassword"
    },
    "#Bios.ResetBios": {
      "target": "/redfish/v1/Systems/System.Embedded.1/Bios/Actions/Bios.ResetBios"
    },
    "Oem": {
      "#DellBios.RunBIOSLiveScanning": {
        "target": "/redfish/v1/Systems/System.Embedded.1/Bios/Actions/Oem/DellBios.RunBIOSLiveScanning"
      }
    }
  },
  "@Redfish.Settings": {
    "@odata.context": "/redfish/v1/$metadata#Settings.Settings",
    "@odata.type": "#Settings.v1_4_0.Settings",
    "SettingsObject": {
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/Bios/Settings"
    },
    "SupportedApplyTimes": [
      "OnReset",
      "AtMaintenanceWindowStart",
      "InMaintenanceWindowOnReset"
    ]
  },
  "Links": {
    "SoftwareImages": [
      {
        "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Previous-159-2.0.4__BIOS.Setup.1-1"
      },
      {
        "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Installed-159-2.4.4__BIOS.Setup.1-1"
      },
      {
        "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Current-159-2.4.4__BIOS.Setup.1-1"
      }
    ],
    "[email protected]": 3,
    "ActiveSoftwareImage": {
      "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/Installed-159-2.4.4__BIOS.Setup.1-1"
    }
  },
  "ResetBiosToDefaultsPending": false
}

Thanks

srikarpyda avatar Mar 05 '25 03:03 srikarpyda

Hi @srikarpyda

You're setting the incorrect BIOS attribute for modifying BIOS boot order. Attribute "SetBootOrderEn" is used to enable disabled devices in the boot order, it will not change the ordering of the devices. To change the ordering of devices and set a device as first device in the boot order use attribute "SetBootOrderFqdd1".

Example below setting HTTP device as first device in the boot order.

  1. Get current BIOS boot order, on this server HTTP device is reported last in the boot order.
[root@localhost ~]# curl -k -u root:calvin -X GET 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1/BootOptions?$expand=*($levels=1)' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3163  100  3163    0     0  13070      0 --:--:-- --:--:-- --:--:-- 13070
{
  "@odata.context": "/redfish/v1/$metadata#BootOptionCollection.BootOptionCollection",
  "@odata.type": "#BootOptionCollection.BootOptionCollection",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions",
  "Description": "Collection of BootOptions",
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0000",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Floppy Drive",
      "Id": "Boot0000",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x1)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0001",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0001",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Optical Drive",
      "Id": "Boot0001",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x0)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0009",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0009",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "RAID Controller in SL 5: VMware ESXi",
      "Id": "Boot0009",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "HD(1,GPT,48D50228-D7A4-4F76-BADA-88AE8BA26278,0x40,0x32000)/\\EFI\\VMware\\safeboot64.efi"
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0002",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0002",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "PXE Device 1: Integrated NIC 1 Port 1 Partition 1",
      "Id": "Boot0002",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(3A191845-5F86-4E78-8FCE-C4CFF59F9DAA)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkDeviceFunctions/NIC.Integrated.1-1-1"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0003",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0003",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "HTTP Device 1: Embedded NIC 1 Port 1 Partition 1",
      "Id": "Boot0003",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Embedded.1/NetworkDeviceFunctions/NIC.Embedded.1-1-1"
        }
      ]
    }
  ],
  "[email protected]": 5,
  "Name": "Boot Options Collection"
}
  1. Next run PATCH to set attribute pending value and create BIOS config job (config job URI will be returned in the headers location.
[root@localhost ~]# curl -k -u root:calvin -X PATCH 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1/Bios/Settings' --insecure -H "Content-Type: application/json" -d '{"Attributes":{"SetBootOrderFqdd1":"NIC.HttpDevice.1-1"},"@Redfish.SettingsApplyTime":{"ApplyTime":"OnReset"}}' -i
HTTP/1.1 202 Accepted
Date: Thu, 06 Mar 2025 00:04:02 GMT
Server: Apache
OData-Version: 4.0
Cache-Control: no-cache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Location: /redfish/v1/TaskService/Tasks/JID_412194432377
Content-Length: 0
Content-Type: application/json;odata.metadata=minimal;charset=utf-8
  1. Confirm config job is marked scheduled.
[root@localhost ~]# curl -k -u root:calvin -X GET 'https://192.168.0.120/redfish/v1/TaskService/Tasks/JID_412194432377' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   907  100   907    0     0   4031      0 --:--:-- --:--:-- --:--:--  4031
{
  "@odata.context": "/redfish/v1/$metadata#Task.Task",
  "@odata.id": "/redfish/v1/TaskService/Tasks/JID_412194432377",
  "@odata.type": "#Task.v1_7_4.Task",
  "Description": "Server Configuration and other Tasks running on iDRAC are listed here",
  "Id": "JID_412194432377",
  "Messages": [
    {
      "Message": "Task successfully scheduled.",
      "MessageArgs": [],
      "[email protected]": 0,
      "MessageId": "IDRAC.2.9.JCP001"
    }
  ],
  "[email protected]": 1,
  "Name": "Configure: BIOS.Setup.1-1",
  "Oem": {
    "Dell": {
      "@odata.type": "#DellJob.v1_5_0.DellJob",
      "CompletionTime": null,
      "Description": "Job Instance",
      "EndTime": "TIME_NA",
      "Id": "JID_412194432377",
      "JobState": "Scheduled",
      "JobType": "BIOSConfiguration",
      "Message": "Task successfully scheduled.",
      "MessageArgs": [],
      "MessageId": "IDRAC.2.9.JCP001",
      "Name": "Configure: BIOS.Setup.1-1",
      "PercentComplete": 0,
      "StartTime": "TIME_NOW",
      "TargetSettingsURI": null
    }
  },
  "PercentComplete": 0,
  "TaskState": "Starting",
  "TaskStatus": "OK"
}
  1. Reboot the server.
[root@localhost ~]#  curl -k -u root:calvin -X POST 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset' --insecure -H "Content-Type: application/json" -d '{"ResetType":"ForceRestart"}' -i
HTTP/1.1 204 No Content
Date: Thu, 06 Mar 2025 00:05:13 GMT
Server: Apache
OData-EntityId: /redfish/v1/Systems/System.Embedded.1
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  1. Monitor the job status until marked completed.
[root@localhost ~]# curl -k -u root:calvin -X GET 'https://192.168.0.120/redfish/v1/TaskService/Tasks/JID_412194432377' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   961  100   961    0     0    965      0 --:--:-- --:--:-- --:--:--   964
{
  "@odata.context": "/redfish/v1/$metadata#Task.Task",
  "@odata.id": "/redfish/v1/TaskService/Tasks/JID_412194432377",
  "@odata.type": "#Task.v1_7_4.Task",
  "Description": "Server Configuration and other Tasks running on iDRAC are listed here",
  "EndTime": "2025-03-05T18:09:13-06:00",
  "Id": "JID_412194432377",
  "Messages": [
    {
      "Message": "Job completed successfully.",
      "MessageArgs": [],
      "[email protected]": 0,
      "MessageId": "IDRAC.2.9.PR19"
    }
  ],
  "[email protected]": 1,
  "Name": "Configure: BIOS.Setup.1-1",
  "Oem": {
    "Dell": {
      "@odata.type": "#DellJob.v1_5_0.DellJob",
      "CompletionTime": "2025-03-05T18:09:13",
      "Description": "Job Instance",
      "EndTime": "TIME_NA",
      "Id": "JID_412194432377",
      "JobState": "Completed",
      "JobType": "BIOSConfiguration",
      "Message": "Job completed successfully.",
      "MessageArgs": [],
      "MessageId": "IDRAC.2.9.PR19",
      "Name": "Configure: BIOS.Setup.1-1",
      "PercentComplete": 100,
      "StartTime": "TIME_NOW",
      "TargetSettingsURI": null
    }
  },
  "PercentComplete": 100,
  "TaskState": "Completed",
  "TaskStatus": "OK"
}
  1. Get BIOS boot order and confirm HTTP device is now first device in the boot order.
[root@localhost ~]# curl -k -u root:calvin -X GET 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1/BootOptions?$expand=*($levels=1)' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3163  100  3163    0     0  11501      0 --:--:-- --:--:-- --:--:-- 11460
{
  "@odata.context": "/redfish/v1/$metadata#BootOptionCollection.BootOptionCollection",
  "@odata.type": "#BootOptionCollection.BootOptionCollection",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions",
  "Description": "Collection of BootOptions",
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0003",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0003",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "HTTP Device 1: Embedded NIC 1 Port 1 Partition 1",
      "Id": "Boot0003",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Embedded.1/NetworkDeviceFunctions/NIC.Embedded.1-1-1"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0000",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Floppy Drive",
      "Id": "Boot0000",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x1)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0001",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0001",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Optical Drive",
      "Id": "Boot0001",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x0)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0009",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0009",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "RAID Controller in SL 5: VMware ESXi",
      "Id": "Boot0009",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "HD(1,GPT,48D50228-D7A4-4F76-BADA-88AE8BA26278,0x40,0x32000)/\\EFI\\VMware\\safeboot64.efi"
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0002",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0002",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "PXE Device 1: Integrated NIC 1 Port 1 Partition 1",
      "Id": "Boot0002",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(3A191845-5F86-4E78-8FCE-C4CFF59F9DAA)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkDeviceFunctions/NIC.Integrated.1-1-1"
        }
      ]
    }
  ],
  "[email protected]": 5,
  "Name": "Boot Options Collection"
}

Thanks Tex

texroemer avatar Mar 05 '25 23:03 texroemer

Hey Tex,

Really appreciate your prompt response. I tried following the procedure you outlined above. Unfortunately, the boot order did not change.

  1. Get current BIOS boot order
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1980  100  1980    0     0   8038      0 --:--:-- --:--:-- --:--:--  8016
{
  "@odata.context": "/redfish/v1/$metadata#BootOptionCollection.BootOptionCollection",
  "@odata.type": "#BootOptionCollection.BootOptionCollection",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions",
  "Description": "Collection of BootOptions",
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0001",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0001",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "PCIe SSD in Slot 7 in Bay 1: ubuntu",
      "Id": "Boot0001",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "HD(1,GPT,4318A1BA-A084-413B-9251-0EE4110BA4D8,0x800,0x219800)/\\EFI\\ubuntu\\shimx64.efi"
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0004",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0004",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "BOSS in SL 16: EFI Fixed Disk Boot Device 1",
      "Id": "Boot0004",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0xA,0x0)/Pci(0x0,0x0)/NVMe(0x1,01-00-00-0C-68-43-50-00)/HD(1,GPT,F58E3FB2-86AA-42B2-9F51-3499D0636EF1,0x800,0x100000)"
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0000",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "HTTP Device 1: NIC in Slot 31 Port 1 Partition 1",
      "Id": "Boot0000",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Slot.31/NetworkDeviceFunctions/NIC.Slot.31-1-1"
        }
      ]
    }
  ],
  "[email protected]": 3,
  "Name": "Boot Options Collection"
}
  1. Next run PATCH to set attribute pending value and create BIOS config job (config job URI will be returned in the headers location.
HTTP/1.1 202 Accepted
Date: Fri, 07 Mar 2025 00:20:30 GMT
Server: Apache
OData-Version: 4.0
Cache-Control: no-cache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Location: /redfish/v1/TaskService/Tasks/JID_413068308171
Content-Length: 0
Content-Type: application/json;odata.metadata=minimal;charset=utf-8
  1. Confirm config job is marked scheduled.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   907  100   907    0     0   2976      0 --:--:-- --:--:-- --:--:--  2973
{
  "@odata.context": "/redfish/v1/$metadata#Task.Task",
  "@odata.id": "/redfish/v1/TaskService/Tasks/JID_413068308171",
  "@odata.type": "#Task.v1_7_4.Task",
  "Description": "Server Configuration and other Tasks running on iDRAC are listed here",
  "Id": "JID_413068308171",
  "Messages": [
    {
      "Message": "Task successfully scheduled.",
      "MessageArgs": [],
      "[email protected]": 0,
      "MessageId": "IDRAC.2.9.JCP001"
    }
  ],
  "[email protected]": 1,
  "Name": "Configure: BIOS.Setup.1-1",
  "Oem": {
    "Dell": {
      "@odata.type": "#DellJob.v1_5_0.DellJob",
      "CompletionTime": null,
      "Description": "Job Instance",
      "EndTime": "TIME_NA",
      "Id": "JID_413068308171",
      "JobState": "Scheduled",
      "JobType": "BIOSConfiguration",
      "Message": "Task successfully scheduled.",
      "MessageArgs": [],
      "MessageId": "IDRAC.2.9.JCP001",
      "Name": "Configure: BIOS.Setup.1-1",
      "PercentComplete": 0,
      "StartTime": "TIME_NOW",
      "TargetSettingsURI": null
    }
  },
  "PercentComplete": 0,
  "TaskState": "Starting",
  "TaskStatus": "OK"
}```

4. Reboot the server

```spyda@pdx01-m01-h16-cpu-1:~$ curl -k -u root:'password' -X POST 'https://10.217.157.99/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset' --insecure -H "Content-Type: application/json" -d '{"ResetType":"ForceRestart"}' -i
HTTP/1.1 204 No Content
Date: Fri, 07 Mar 2025 00:21:27 GMT
Server: Apache
OData-EntityId: /redfish/v1/Systems/System.Embedded.1
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload```

5. Monitor the job status until marked completed.

```spyda@pdx01-m01-h16-cpu-1:~$ curl -k -u root:'password' -X GET 'https://10.217.157.99/redfish/v1/TaskService/Tasks/JID_413068308171' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   961  100   961    0     0   1276      0 --:--:-- --:--:-- --:--:--  1276
{
  "@odata.context": "/redfish/v1/$metadata#Task.Task",
  "@odata.id": "/redfish/v1/TaskService/Tasks/JID_413068308171",
  "@odata.type": "#Task.v1_7_4.Task",
  "Description": "Server Configuration and other Tasks running on iDRAC are listed here",
  "EndTime": "2025-03-06T18:29:56-06:00",
  "Id": "JID_413068308171",
  "Messages": [
    {
      "Message": "Job completed successfully.",
      "MessageArgs": [],
      "[email protected]": 0,
      "MessageId": "IDRAC.2.9.PR19"
    }
  ],
  "[email protected]": 1,
  "Name": "Configure: BIOS.Setup.1-1",
  "Oem": {
    "Dell": {
      "@odata.type": "#DellJob.v1_5_0.DellJob",
      "CompletionTime": "2025-03-06T18:29:56",
      "Description": "Job Instance",
      "EndTime": "TIME_NA",
      "Id": "JID_413068308171",
      "JobState": "Completed",
      "JobType": "BIOSConfiguration",
      "Message": "Job completed successfully.",
      "MessageArgs": [],
      "MessageId": "IDRAC.2.9.PR19",
      "Name": "Configure: BIOS.Setup.1-1",
      "PercentComplete": 100,
      "StartTime": "TIME_NOW",
      "TargetSettingsURI": null
    }
  },
  "PercentComplete": 100,
  "TaskState": "Completed",
  "TaskStatus": "OK"
}
  1. Unfortunately, the boot order is unchanged:
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1980  100  1980    0     0   1527      0  0:00:01  0:00:01 --:--:--  1528
{
  "@odata.context": "/redfish/v1/$metadata#BootOptionCollection.BootOptionCollection",
  "@odata.type": "#BootOptionCollection.BootOptionCollection",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions",
  "Description": "Collection of BootOptions",
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0001",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0001",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "PCIe SSD in Slot 7 in Bay 1: ubuntu",
      "Id": "Boot0001",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "HD(1,GPT,4318A1BA-A084-413B-9251-0EE4110BA4D8,0x800,0x219800)/\\EFI\\ubuntu\\shimx64.efi"
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0004",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0004",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "BOSS in SL 16: EFI Fixed Disk Boot Device 1",
      "Id": "Boot0004",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0xA,0x0)/Pci(0x0,0x0)/NVMe(0x1,01-00-00-0C-68-43-50-00)/HD(1,GPT,F58E3FB2-86AA-42B2-9F51-3499D0636EF1,0x800,0x100000)"
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0000",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "HTTP Device 1: NIC in Slot 31 Port 1 Partition 1",
      "Id": "Boot0000",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Slot.31/NetworkDeviceFunctions/NIC.Slot.31-1-1"
        }
      ]
    }
  ],
  "[email protected]": 3,
  "Name": "Boot Options Collection"
}

Thanks, Srikar

srikarpyda avatar Mar 06 '25 18:03 srikarpyda

On a separate note, you mentioned that the bios attribute "SetBootOrderEn" is used to enable disabled devices in the boot order.

Is there a separate bios attribute that I can use to disable some of the enabled devices in the boot order? Maybe I can disable the other two boot options (Boot0001 and Boot0004) from above instead of trying to re-order the boot options to make the HTTP device the first boot option.

srikarpyda avatar Mar 06 '25 18:03 srikarpyda

Thanks for the info, can you reboot the server and check in F2 BIOS Settings, see if the boot order really did change or didn't?

Can you try workflow below to change the boot order and see if it works. If this works then there is some issue with using BIOS attribute SetBootOrderFqdd1 but i tested the same iDRAC / BIOS version on my server and no issues. If still fails can you update to latest iDRAC 7.20.10.05 and try again.

  1. Get current boot order and locate the boot reference ID for HTTP device 1 (on this server its "Boot0003").
[root@localhost ~]# curl -k -u root:calvin -X GET 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1/BootOptions?$expand=*($levels=1)' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3169  100  3169    0     0   5569      0 --:--:-- --:--:-- --:--:--  5559
{
  "@odata.context": "/redfish/v1/$metadata#BootOptionCollection.BootOptionCollection",
  "@odata.type": "#BootOptionCollection.BootOptionCollection",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions",
  "Description": "Collection of BootOptions",
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0002",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0002",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "PXE Device 1: Integrated NIC 1 Port 1 Partition 1",
      "Id": "Boot0002",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(3A191845-5F86-4E78-8FCE-C4CFF59F9DAA)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkDeviceFunctions/NIC.Integrated.1-1-1"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0000",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Floppy Drive",
      "Id": "Boot0000",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x1)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0001",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0001",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Optical Drive",
      "Id": "Boot0001",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x0)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0009",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0009",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "RAID Controller in SL 5: VMware ESXi",
      "Id": "Boot0009",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "HD(1,GPT,48D50228-D7A4-4F76-BADA-88AE8BA26278,0x40,0x32000)/\\EFI\\VMware\\safeboot64.efi"
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0003",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0003",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "HTTP Device 1: Integrated NIC 1 Port 2 Partition 1",
      "Id": "Boot0003",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkDeviceFunctions/NIC.Integrated.1-2-1"
        }
      ]
    }
  ],
  "[email protected]": 5,
  "Name": "Boot Options Collection"
}
  1. Run PATCH to set pending boot order to assign HTTP device 1 as first device, create config job.
[root@localhost ~]# curl -k -u root:calvin -X PATCH 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1' --insecure -H "Content-Type: application/json" -d '{"Boot":{"BootOrder":["Boot0003"]}}' -i
HTTP/1.1 200 OK
Date: Fri, 07 Mar 2025 00:39:03 GMT
Server: Apache
OData-Version: 4.0
Cache-Control: no-cache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Location: /redfish/v1/Managers/iDRAC.Embedded.1/Oem/Dell/Jobs/JID_413079434685
Content-Length: 578
Vary: Accept-Encoding
Content-Type: application/json;odata.metadata=minimal;charset=utf-8
  1. Confirm config job is scheduled.
[root@localhost ~]# curl -k -u root:calvin -X GET 'https://192.168.0.120/redfish/v1/Managers/iDRAC.Embedded.1/Oem/Dell/Jobs/JID_413079434685' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   603  100   603    0     0   2817      0 --:--:-- --:--:-- --:--:--  2817
{
  "@odata.context": "/redfish/v1/$metadata#DellJob.DellJob",
  "@odata.id": "/redfish/v1/Managers/iDRAC.Embedded.1/Oem/Dell/Jobs/JID_413079434685",
  "@odata.type": "#DellJob.v1_5_0.DellJob",
  "ActualRunningStartTime": 0,
  "ActualRunningStopTime": 0,
  "CompletionTime": null,
  "Description": "Job Instance",
  "EndTime": "TIME_NA",
  "Id": "JID_413079434685",
  "JobState": "Scheduled",
  "JobType": "BIOSConfiguration",
  "Message": "Task successfully scheduled.",
  "MessageArgs": [],
  "[email protected]": 0,
  "MessageId": "JCP001",
  "Name": "Configure: BIOS.Setup.1-1",
  "PercentComplete": 0,
  "StartTime": "2025-03-06T18:39:03",
  "TargetSettingsURI": null
}
  1. Reboot the server.
[root@localhost ~]# curl -k -u root:calvin -X POST 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset' --insecure -H "Content-Type: application/json" -d '{"ResetType":"ForceRestart"}' -i
HTTP/1.1 204 No Content
Date: Fri, 07 Mar 2025 00:40:55 GMT
Server: Apache
OData-EntityId: /redfish/v1/Systems/System.Embedded.1
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  1. Confirm job is marked completed.
[root@localhost ~]# curl -k -u root:calvin -X GET 'https://192.168.0.120/redfish/v1/Managers/iDRAC.Embedded.1/Oem/Dell/Jobs/JID_413079434685' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   659  100   659    0     0   1282      0 --:--:-- --:--:-- --:--:--  1282
{
  "@odata.context": "/redfish/v1/$metadata#DellJob.DellJob",
  "@odata.id": "/redfish/v1/Managers/iDRAC.Embedded.1/Oem/Dell/Jobs/JID_413079434685",
  "@odata.type": "#DellJob.v1_5_0.DellJob",
  "ActualRunningStartTime": "2025-03-06T18:42:16",
  "ActualRunningStopTime": "2025-03-06T18:45:02",
  "CompletionTime": "2025-03-06T18:45:02",
  "Description": "Job Instance",
  "EndTime": "TIME_NA",
  "Id": "JID_413079434685",
  "JobState": "Completed",
  "JobType": "BIOSConfiguration",
  "Message": "Job completed successfully.",
  "MessageArgs": [],
  "[email protected]": 0,
  "MessageId": "PR19",
  "Name": "Configure: BIOS.Setup.1-1",
  "PercentComplete": 100,
  "StartTime": "2025-03-06T18:39:03",
  "TargetSettingsURI": null
}
  1. Get boot order and confirm first device in boot order is HTTP device 1.
 [root@localhost ~]# curl -k -u root:calvin -X GET 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1/BootOptions?$expand=*($levels=1)' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3169  100  3169    0     0   7089      0 --:--:-- --:--:-- --:--:--  7089
{
  "@odata.context": "/redfish/v1/$metadata#BootOptionCollection.BootOptionCollection",
  "@odata.type": "#BootOptionCollection.BootOptionCollection",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions",
  "Description": "Collection of BootOptions",
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0003",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0003",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "HTTP Device 1: Integrated NIC 1 Port 2 Partition 1",
      "Id": "Boot0003",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkDeviceFunctions/NIC.Integrated.1-2-1"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0002",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0002",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "PXE Device 1: Integrated NIC 1 Port 1 Partition 1",
      "Id": "Boot0002",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(3A191845-5F86-4E78-8FCE-C4CFF59F9DAA)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkDeviceFunctions/NIC.Integrated.1-1-1"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0000",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Floppy Drive",
      "Id": "Boot0000",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x1)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0001",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0001",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Optical Drive",
      "Id": "Boot0001",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x0)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0009",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0009",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "RAID Controller in SL 5: VMware ESXi",
      "Id": "Boot0009",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "HD(1,GPT,48D50228-D7A4-4F76-BADA-88AE8BA26278,0x40,0x32000)/\\EFI\\VMware\\safeboot64.efi"
    }
  ],
  "[email protected]": 5,
  "Name": "Boot Options Collection"
}

Thanks Tex

texroemer avatar Mar 06 '25 23:03 texroemer

Hey Tex,

I was able to use this secondary workflow that you provided:

[root@localhost ~]# curl -k -u root:calvin -X PATCH 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1' --insecure -H "Content-Type: application/json" -d '{"Boot":{"BootOrder":["Boot0003"]}}' -i

Wondering whether there is some alternative you can suggest to set the boot order through PATCH-ing the bios attributes. Or, if there is a way to disable the other boot options?

Ideally, I am looking for the boot order to look like:

{
  "@odata.context": "/redfish/v1/$metadata#BootOptionCollection.BootOptionCollection",
  "@odata.type": "#BootOptionCollection.BootOptionCollection",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions",
  "Description": "Collection of BootOptions",
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0000",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "HTTP Device 1: NIC in Slot 31 Port 1 Partition 1",
      "Id": "Boot0000",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Slot.31/NetworkDeviceFunctions/NIC.Slot.31-1-1"
        }
      ]
    },
  "[email protected]": 1,
  "Name": "Boot Options Collection"
}

Thanks, Srikar

srikarpyda avatar Mar 07 '25 14:03 srikarpyda

Good to hear the secondary workflow works to set the boot order.

If you want to disable devices in the boot order using PATCH, leverage BIOS attribute SetBootOrderDis and pass in all boot device values except for NIC.HttpDevice.1-1.

Example:

GET current enabled boot order devices using attribute SetBootOrderEn, it returns these values:

"NIC.PxeDevice.1-1,Floppy.iDRACVirtual.1-1,Optical.iDRACVirtual.1-1,RAID.SL.5-2, NIC.HttpDevice.1-1"

Now for PATCH payload, pass in this string value for attribute SetBootOrderDis:

"NIC.PxeDevice.1-1,Floppy.iDRACVirtual.1-1,Optical.iDRACVirtual.1-1,RAID.SL.5-2"

Once the config job is completed the boot order doesn't change but all devices except for NIC.HttpDevice.1-1 will be disabled.

Here's one more solution you can try using PATCH call which is actually simpler compared to the other two solutions (no config job creation needed).

  1. Get current boot order to confirm HTTP device is not first in the boot order.
 [root@localhost ~]# curl -k -u root:calvin -X GET 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1/BootOptions?$expand=*($levels=1)' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3169  100  3169    0     0  11565      0 --:--:-- --:--:-- --:--:-- 11565
{
  "@odata.context": "/redfish/v1/$metadata#BootOptionCollection.BootOptionCollection",
  "@odata.type": "#BootOptionCollection.BootOptionCollection",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions",
  "Description": "Collection of BootOptions",
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0002",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0002",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "PXE Device 1: Integrated NIC 1 Port 1 Partition 1",
      "Id": "Boot0002",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(3A191845-5F86-4E78-8FCE-C4CFF59F9DAA)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkDeviceFunctions/NIC.Integrated.1-1-1"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0000",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Floppy Drive",
      "Id": "Boot0000",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x1)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0001",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0001",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Optical Drive",
      "Id": "Boot0001",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x0)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0009",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0009",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "RAID Controller in SL 5: VMware ESXi",
      "Id": "Boot0009",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "HD(1,GPT,48D50228-D7A4-4F76-BADA-88AE8BA26278,0x40,0x32000)/\\EFI\\VMware\\safeboot64.efi"
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0003",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0003",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "HTTP Device 1: Integrated NIC 1 Port 2 Partition 1",
      "Id": "Boot0003",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkDeviceFunctions/NIC.Integrated.1-2-1"
        }
      ]
    }
  ],
  "[email protected]": 5,
  "Name": "Boot Options Collection"
}
  1. Run PATCH to set BootSourceOverrideTarget to UefiHttp and BootSourceOverrideEnabled to Continuous.
[root@localhost ~]# curl -k -u root:calvin -X PATCH 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1' --insecure -H "Content-Type: application/json" -d '{"Boot":{"BootSourceOverrideTarget":"UefiHttp", "BootSourceOverrideEnabled": "Continuous"}}' -i
HTTP/1.1 200 OK
Date: Fri, 07 Mar 2025 16:10:21 GMT
Server: Apache
OData-Version: 4.0
Cache-Control: no-cache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Content-Length: 506
Vary: Accept-Encoding
Content-Type: application/json;odata.metadata=minimal;charset=utf-8
  1. Reboot the server.
[root@localhost ~]# curl -k -u root:calvin -X POST 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset' --insecure -H "Content-Type: application/json" -d '{"ResetType":"ForceRestart"}' -i
HTTP/1.1 204 No Content
Date: Fri, 07 Mar 2025 16:10:40 GMT
Server: Apache
OData-EntityId: /redfish/v1/Systems/System.Embedded.1
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  1. Once POST completes server will attempt to boot to HTTP device but also since you set BootSourceOverrideEnabled to Continuous, your boot order has now changed and it will show HTTP device as first device in the boot order. Below i pull the boot order again to confirm HTTP is first in the boot order.

Also wanted to mention here that using this workflow only one server reboot is needed to set the boot order. The other two workflow examples the server performs two reboots (one reboot to start the config job running and one reboot to complete the job and update inventory with config changes).

[root@localhost ~]# curl -k -u root:calvin -X GET 'https://192.168.0.120/redfish/v1/Systems/System.Embedded.1/BootOptions?$expand=*($levels=1)' --insecure -H "Content-Type: application/json" | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3169  100  3169    0     0   8682      0 --:--:-- --:--:-- --:--:--  8658
{
  "@odata.context": "/redfish/v1/$metadata#BootOptionCollection.BootOptionCollection",
  "@odata.type": "#BootOptionCollection.BootOptionCollection",
  "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions",
  "Description": "Collection of BootOptions",
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0003",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0003",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "HTTP Device 1: Integrated NIC 1 Port 2 Partition 1",
      "Id": "Boot0003",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkDeviceFunctions/NIC.Integrated.1-2-1"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0002",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0002",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "PXE Device 1: Integrated NIC 1 Port 1 Partition 1",
      "Id": "Boot0002",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "VenHw(3A191845-5F86-4E78-8FCE-C4CFF59F9DAA)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Integrated.1/NetworkDeviceFunctions/NIC.Integrated.1-1-1"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0000",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Floppy Drive",
      "Id": "Boot0000",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x1)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0001",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0001",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "Virtual Optical Drive",
      "Id": "Boot0001",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/USB(0x3,0x0)/USB(0x0,0x0)/Unit(0x0)",
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Systems/System.Embedded.1/VirtualMedia"
        }
      ]
    },
    {
      "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption",
      "@odata.id": "/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0009",
      "@odata.type": "#BootOption.v1_0_6.BootOption",
      "BootOptionEnabled": true,
      "BootOptionReference": "Boot0009",
      "Description": "Current settings of the UEFI Boot option",
      "DisplayName": "RAID Controller in SL 5: VMware ESXi",
      "Id": "Boot0009",
      "Name": "Uefi Boot Option",
      "UefiDevicePath": "HD(1,GPT,48D50228-D7A4-4F76-BADA-88AE8BA26278,0x40,0x32000)/\\EFI\\VMware\\safeboot64.efi"
    }
  ],
  "[email protected]": 5,
  "Name": "Boot Options Collection"
}

Thanks Tex

texroemer avatar Mar 07 '25 15:03 texroemer

Hey Tex, I went ahead and upgraded both the IDRAC and BIOS on the machine (IDRAC:7.20.10.05/BIOS:2.4.4).

Neither option 1 (setting the SetBootOrderFqdd1 attribute) or option 3 (setting the BootSourceOverrideTarget) that you outlined above are working to set HttpDev1 as the first boot option. Is there anything I can do to debug this further? This is even after I used the SetBootOrderDis attribute to disable all other boot options.

Thanks, Srikar

srikarpyda avatar Mar 12 '25 15:03 srikarpyda

Thanks for trying option 3 and yes have some troubleshooting questions i need answered to help narrow down the issue.

  1. Try to set a different device as first device in the boot order instead of the HTTP device (use option 1 workflow)? Want to see if other devices can be set as first device or does all devices fail to set.

  2. Try setting HTTP device as first device in the boot order from F2, confirm this does work.

  3. Does this issue only happen on XE9680 or are you seeing it on all platforms in your environment?

Thanks Tex

texroemer avatar Mar 12 '25 22:03 texroemer

Hey Tex,

I wanted to follow up here. I am currently using option 3 to configure my Dell to HTTP boot. Afterwards, I lock the BMC down and enable System Lockdown mode. The boot order looks like this before I lock the system down:

Afterwards, a different tenant got access to the same machine. They seem to be using the HTTP boot option to place a bootable image on to a local drive.

When I get the machine back, I want it to HTTP boot so that I can load my own image on it. However, the boot order shows up like this, and the bootable image comes first (and enabled) in the boot order: { "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption", "@odata.id": "[/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0001]", "@odata.type": "#BootOption.v1_0_6.BootOption", "BootOptionEnabled": true, "BootOptionReference": "Boot0001", "Description": "Current settings of the UEFI Boot option", "DisplayName": "Unavailable: ubuntu", "Id": "Boot0001", "Name": "Uefi Boot Option", "UefiDevicePath": "HD(1,GPT,4318A1BA-A084-413B-9251-0EE4110BA4D8,0x800,0x219800)/\\EFI\\ubuntu\\shimx64.efi" } { "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption", "@odata.id": "[/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0002]", "@odata.type": "#BootOption.v1_0_6.BootOption", "BootOptionEnabled": false, "BootOptionReference": "Boot0002", "Description": "Current settings of the UEFI Boot option", "DisplayName": "BOSS in SL 16: ubuntu", "Id": "Boot0002", "Name": "Uefi Boot Option", "UefiDevicePath": "HD(1,GPT,F58E3FB2-86AA-42B2-9F51-3499D0636EF1,0x800,0x100000)/\\EFI\\ubuntu\\shimx64.efi" } { "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption", "@odata.id": "[/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000]", "@odata.type": "#BootOption.v1_0_6.BootOption", "BootOptionEnabled": true, "BootOptionReference": "Boot0000", "Description": "Current settings of the UEFI Boot option", "DisplayName": "HTTP Device 1: NIC in Slot 31 Port 1 Partition 1", "Id": "Boot0000", "Name": "Uefi Boot Option", "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)", "RelatedItem": [ { "@odata.id": "[/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Slot.31/NetworkDeviceFunctions/NIC.Slot.31-1-1] } ] }

I tried to use option (3) again to disable the additional boot option, but I get an error because the bmc is locked down. When I try to get it to pxe boot once I get a similar error: 0: HTTP 400 Bad Request at https://10.217.157.99/redfish/v1/Managers/iDRAC.Embedded.1/Attributes: {"error":{"@Message.ExtendedInfo":[{"Message":"Unable to start the configuration operation because the System Lockdown mode is enabled.","MessageArgs":["Lockdown.1.SystemLockdown"],"[email protected]":1,"MessageId":"IDRAC.2.9.SYS406","RelatedProperties":["#/Attributes/Lockdown.1.SystemLockdown"],"[email protected]":1,"Resolution":"Make sure that the Lockdown.1.SystemLockdown attribute is set to Disabled by running the HTTP PATCH method on \"Managers OemAttributes\" Redfish API, and then retry the operation.","Severity":"Informational"}],"code":"Base.1.12.GeneralError","message":"A general error has occurred. See ExtendedInfo for more information"}}

Is there something I missing here? I was hoping that the boot order could not be changed while the server is locked down. Is there something else I can do to fix the boot order after getting the server back while it is locked down?

Thanks, Srikar

srikarpyda avatar Jun 30 '25 17:06 srikarpyda

Hi @srikarpyda

Trying to understand the issue here, are you asking if possible to change BIOS boot order or disable a boot order device while system lockdown mode is enabled? If yes then this is not supported. When in lockdown mode is enabled no configuration changes are allowed to the server which means you can't change the boot order, disable a boot device or set onetime boot.

Thanks Tex

texroemer avatar Jun 30 '25 17:06 texroemer

Hey Tex,

The issue is that a new BootOption 0001 was added (internally, by the server) after system lockdown mode was enabled. Prior to locking the server down, there were only two boot options (Boot0002 and Boot0000); Boot0000 was the only enabled boot option.

The new boot option was added when I handed off the locked down server to a different tenant; that tenant used Boot0000 (UEFI HTTP Boot) to place a bootable image on to a local drive (while system lockdown mode was enabled), which resulted in Boot0001. It seems like the server scans the local drive on UEFI startup and creates this new boot option.

Now, once I got the server back from the tenant, I expect it to HTTP boot (Boot0000) because that was the boot order that I configured before locking the system down, but instead, it is booting into the previous tenant's image on the local drive (Boot0001).

Is there a way to prevent the creation of this new boot option while the server is locked down (is there some bios configuration before locking the server down to have it always use Boot0000)? Or, once I get the server back from the tenant, is there a way to get the server to HTTP boot (without unlocking it)?

Thanks, Srikar

srikarpyda avatar Jun 30 '25 18:06 srikarpyda

@srikarpyda

Thanks for the details and explaining the issue. So there is no way to stop BIOS from scanning for new boot devices detected during POST. But when a new boot device is detected it should get added to the end of the boot order not added to the top. Are you seeing when BIOS detects this new boot device it's reporting it at the top of the boot order?

Thanks Tex

texroemer avatar Jul 01 '25 14:07 texroemer

Hey Tex,

Yes, the new boot device is at the top of the boot order. The server keeps booting back into it.

Just to clarify the new boot device is being added while the server is locked down. On Lenovos, I am able to solve this by doing a one-time boot to force it to HTTP boot on the next reboot. How would you suggest moving forward?

Thanks, Srikar

srikarpyda avatar Jul 01 '25 16:07 srikarpyda

Do you have a copy of the boot order before you handed over the server to the other person to use?

In this boot order example you pasted:

{ "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption", "@odata.id": "[/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0001]", "@odata.type": "#BootOption.v1_0_6.BootOption", "BootOptionEnabled": true, "BootOptionReference": "Boot0001", "Description": "Current settings of the UEFI Boot option", "DisplayName": "Unavailable: ubuntu", "Id": "Boot0001", "Name": "Uefi Boot Option", "UefiDevicePath": "HD(1,GPT,4318A1BA-A084-413B-9251-0EE4110BA4D8,0x800,0x219800)/\\EFI\\ubuntu\\shimx64.efi" } { "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption", "@odata.id": "[/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0002]", "@odata.type": "#BootOption.v1_0_6.BootOption", "BootOptionEnabled": false, "BootOptionReference": "Boot0002", "Description": "Current settings of the UEFI Boot option", "DisplayName": "BOSS in SL 16: ubuntu", "Id": "Boot0002", "Name": "Uefi Boot Option", "UefiDevicePath": "HD(1,GPT,F58E3FB2-86AA-42B2-9F51-3499D0636EF1,0x800,0x100000)/\\EFI\\ubuntu\\shimx64.efi" } { "@odata.context": "/redfish/v1/$metadata#BootOption.BootOption", "@odata.id": "[/redfish/v1/Systems/System.Embedded.1/BootOptions/Boot0000]", "@odata.type": "#BootOption.v1_0_6.BootOption", "BootOptionEnabled": true, "BootOptionReference": "Boot0000", "Description": "Current settings of the UEFI Boot option", "DisplayName": "HTTP Device 1: NIC in Slot 31 Port 1 Partition 1", "Id": "Boot0000", "Name": "Uefi Boot Option", "UefiDevicePath": "VenHw(986D1755-B9D0-4F8D-A0DA-D1DB18672045)", "RelatedItem": [ { "@odata.id": "[/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters/NIC.Slot.31/NetworkDeviceFunctions/NIC.Slot.31-1-1] } ] }

I see Boot0001 reported as an unavailable entry meaning there's no bootloader so BIOS should fail to boot and then try the next device in the boot order list which is Boot0002. Boot0002 is valid with an OS so BIOS should boot this device. Is this the device you are seeing the server booting to or do you see on the screen BIOS keeps retrying to boot Boot0001?

Thanks Tex

texroemer avatar Jul 01 '25 17:07 texroemer

Hey Tex,

Sorry, the above example is bad as Boot0001 is reported as an unavailable entry:

Here the boot order of a different Dell XE9860 with the same issue:

Image

The server keeps booting into Boot0002.

Prior to locking the server down/handing the server to a different tenant, the boot order was the same, but we disabled Boot0002 using option (3) from above.

We are actively looking to reproduce this issue internally so we can provide you with more data.

srikarpyda avatar Jul 01 '25 23:07 srikarpyda

Thanks for the boot order example. On this server after you disabled Boot0002 did you pull the boot order again to confirm it really was disabled? In the boot order example it shows boot_option_enabled property set to true which means this device is not disabled.

Also are you still unable to change the boot order and set Boot0000 as first device in the boot order? If yes can you flash latest BIOS 2.6.3 and iDRAC 7.20.30.50, try again.

-Tex

texroemer avatar Jul 02 '25 21:07 texroemer