IP Library › Granted Patent US 11,169,818
Granted Patent B2
US 11,169,818 · App. 16/394,652 · Granted Nov 9, 2021

Systems and methods for dynamically locating and accessing operating system (OS) file system data from a pre-boot environment

Inventors: Shekar Babu Suryanarayana (Bangalore, IN); Ibrahim Sayyed (Georgetown, TX)
Assignee: Dell Products L.P.
G06F9/441G06F9/5061G06F11/1435G06F16/907
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,169,818
App. No.
16/394,652
Filed
Apr 25, 2019
Granted
Nov 9, 2021
Kind
B2
Art Unit
2186
USPC
713/2
Abstract

Systems and methods that may be implemented in a Unified Extensible Firmware Interface (UEFI) pre-boot environment time to dynamically locate and load bootable images stored in one or more operating system (OS) partitions on a system storage device/s (e.g., HDD, SSD) that is formatted with an advanced filesystem (e.g., such as NTFS, EXT3, etc.). An OS-based filesystem-independent method may be provided to access OS filesystem data during UEFI pre-boot time. Individual selected boot images stored across multiple OS filesystem partitions may be located and loaded to boot from UEFI pre-boot.

Claims (51)

1. A method, comprising:

creating multiple selected bootable images on system storage of an information handling system by writing the multiple selected bootable images to respective non-contiguous storage locations in at least one operating system (OS) partition on the system storage; and

updating boot metadata of a Unified Extensible Firmware Interface (UEFI) on the information handling system with an identity of a current storage location of each of the created selected bootable images on the system storage of the information handling system, the UEFI boot metadata being separate and different from filesystem data of the at least one OS partition;

where the selected bootable images are bootable using the UEFI boot metadata by a host programmable integrated circuit of the information handling system from a UEFI pre-boot environment at the same time an OS of the at least one OS partition is not operating.

2. The method of claim 1 , where the UEFI boot metadata is stored together with a UEFI firmware image in non-volatile storage of the information handling system separately from the filesystem data of the at least one OS partition.

3. The method of claim 1 , where the current storage location of the selected bootable images comprises respective disk data offsets of the selected bootable images in the at least one OS partition on the system storage of the information handling system.

4. The method of claim 1 , where the method further comprises writing the selected bootable images in the at least one OS partition on a system storage device of the information handling system; and where the updated UEFI boot metadata is stored together with UEFI basic input/output system (BIOS) code in a non-volatile serial peripheral interface (SPI) Flash memory device that is separate from the system storage device.

5. The method of claim 1 , where the selected bootable images comprise recovery images of a diagnostic OS; and where the method further comprises executing a first OS during a system runtime, the first OS being different from the diagnostic OS.

6. The method of claim 1 , where the creating multiple selected bootable images further comprises writing the multiple selected bootable images that are bootable from the UEFI pre-boot environment without booting an OS of the at least one OS partition and without employing EFI System Partition and/or FAT32 partitions and without keeping the selected bootable images in a dedicated bootable partition.

7. The method of claim 1 , where the method further comprises creating the multiple selected bootable images on the system storage of the information handling system by writing the multiple selected bootable images to multiple different OS partitions on the system storage of the information handling system.

8. The method of claim 1 , where the creating further comprises using a dynamic Advanced Configuration and Power Interface (ACPI) General Purpose Event (GPE) during OS runtime to create device path indices to each of the multiple non-contiguous bootable images and to synchronize these device path indices on the UEFI boot metadata to be located and accessed by a host programmable integrated circuit of the information handling system during a later UEFI pre-boot time.

9. A method, comprising:

creating one or more selected bootable images on system storage of an information handling system by writing the one or more selected bootable images to respective locations in at least one operating system (OS) partition on the system storage; and

updating metadata with an identity of a current storage location of each of the created selected bootable images on the system storage of the information handling system, the metadata being separate and different from filesystem data of the at least one OS partition;

where the selected bootable images are only a portion of all the bootable images being written to respective locations in the at least one OS partition on the system storage; and where the method further comprises:

responding to the creation of the one or more selected bootable images on the system storage by obtaining a file signature of each of the one or more selected bootable images,

determining an identity of each of the selected bootable images written to the system storage by comparing and matching the file signature of each of the selected bootable images to a respective file signature of a bootable image written to the system storage to distinguish the selected bootable images from any remaining non-selected bootable images written to the system storage,

then obtaining an identity of the storage location of each of the confirmed selected bootable images as written to the system storage, and

then updating the metadata with the obtained identity of the current storage location of each of the confirmed selected bootable images as written to the system storage of the information handling system without updating the metadata with an identity of a storage location of any remaining non-selected bootable images as written to the system storage of the information handling system.

10. A method, comprising performing the following in a Unified Extensible Firmware Interface (UEFI) pre-boot environment prior to booting an operating system (OS) on at least one programmable integrated circuit of an information handling system:

scan through one or more operating system (OS) partitions on system storage of the information handling system using UEFI boot metadata that is separate and different from filesystem data of the OS partitions to dynamically locate one or more selected bootable images stored in at least one of the OS partitions without mounting a complete filesystem of the at least one OS partition; and

then loading, booting and executing the selected bootable images on the programmable integrated circuit from the UEFI pre-boot environment at the same time an OS of the at least one OS partition is not operating.

11. The method of claim 10 , where the selected bootable images are only a portion of all the bootable images stored in the least one OS partition; and where the method further comprises loading and booting only the selected bootable images on the programmable integrated circuit without loading and booting the remaining bootable images stored in the at least one OS partition.

12. The method of claim 11 , where the UEFI boot metadata is stored together with a UEFI firmware image in non-volatile storage of the information handling system separately from the filesystem data of the at least one OS partition; and where the method further comprises updating the UEFI boot metadata with the current storage location of the selected bootable images stored in the at least one operating system (OS) partition prior to scanning through the operating system (OS) partitions on the system storage using the UEFI boot metadata to locate the selected bootable images stored in the at least one operating system (OS) partition on the system storage of the information handling system.

13. The method of claim 12 , where the current storage location of the selected bootable images comprises respective disk data offsets of the selected bootable images in the at least one operating system (OS) partition on the system storage of the information handling system; and where the method further comprises using the UEFI boot metadata to locate the selected bootable images without referencing the filesystem prior to loading and booting the selected bootable images on the programmable integrated circuit.

14. The method of claim 10 , further comprising:

scanning through the operating system (OS) partitions on the system storage using the UEFI boot metadata to locate one or more selected bootable images stored in multiple OS partitions on the system storage of the information handling system without mounting the complete filesystems of the OS partitions; and

then loading and booting the selected bootable images on the programmable integrated circuit from the UEFI pre-boot environment at the same time the OS of the at least one OS partition is not operating.

15. The method of claim 10 , where the selected bootable images are stored in the at least one OS partition on a system storage device of the information handling system; and where the UEFI boot metadata is stored together with UEFI basic input/output system (BIOS) code in a non-volatile serial peripheral interface (SPI) Flash memory device that is separate from the system storage device.

16. The method of claim 10 , where the selected bootable images comprise recovery images of a diagnostic OS; and where the method further comprises:

executing a first OS during a system runtime, the first OS being different from the diagnostic OS; and

then responding to occurrence of a system failure where the first OS is unable to boot by locating, loading and booting the selected bootable images of the diagnostic OS on the programmable integrated circuit.

17. The method of claim 10 , where the selected bootable images comprise multiple bootable images stored in non-contiguous storage locations in the at least one operating system (OS) partition on system storage of the information handling system; and where the method further comprises then loading and booting the multiple selected bootable images together on the programmable integrated circuit.

18. The method of claim 10 , where the selected bootable images comprise multiple bootable images stored in non-contiguous storage locations in multiple operating system (OS) partitions on system storage of the information handling system; and where the method further comprises then loading and booting the multiple selected bootable images together on the programmable integrated circuit.

19. The method of claim 10 , further comprising:

first executing the OS of the at least one OS partition on a host programmable integrated circuit of the information handling system; and

then responding to a system failure that renders the OS inoperable by executing the host programmable integrated circuit to perform the loading, booting and executing the selected bootable images on the programmable integrated circuit at the same time that the OS is inoperable.

20. An information handling system, comprising:

at least one host programmable integrated circuit programmed to execute an operating system (OS) for the information handling system;

system storage coupled to the host programmable integrated circuit, the system storage comprising one or more non-volatile storage devices having one or more selected bootable images stored thereon at respective locations in at least one operating system (OS) partition on the system storage; and

non-volatile storage coupled to the host programmable integrated circuit, the non-volatile storage storing Unified Extensible Firmware Interface (UEFI) boot metadata separately from the filesystem data of the at least one OS partition;

where the UEFI boot metadata comprises an identity of a current storage location of each of the selected bootable images on the system storage of the information handling system, the UEFI boot metadata being separate and different from a filesystem data of the at least one OS partition; and

where the selected bootable images are bootable using the UEFI boot metadata by the host programmable integrated circuit from a UEFI pre-boot environment at the same time the OS of the at least one OS partition is not operating.

21. The information handling system of claim 20 , where the selected bootable images are only a portion of all the bootable images stored in the least one OS partition on the system storage; and where the programmable integrated circuit is programmed to:

create the selected bootable images on the system storage by writing the selected bootable images to respective locations in the at least one OS partition on the system storage; and

update the UEFI boot metadata with an identity of the current storage location of each of the created selected bootable images on the system storage, the UEFI boot metadata being separate and different from a filesystem data of the at least one OS partition.

22. The information handling system of claim 20 , where the selected bootable images are only a portion of all the bootable images stored in the least one OS partition on the system storage; and where the programmable integrated circuit is programmed to perform the following in a pre-boot environment prior to booting an OS of the information handling system:

scan through one or more operating system (OS) partitions on system storage of the information handling system using the UEFI boot metadata that is separate and different from filesystem data of the OS partitions to dynamically locate the selected bootable images stored in at least one of the OS partitions without mounting a complete filesystem of the at least one OS partition; and

then load, boot and execute the selected bootable images from the UEFI pre-boot environment at the same time the OS is not operating.

23. The information handling system of claim 20 , where the UEFI boot metadata is stored separately from the filesystem data of the at least one OS partition and stored together with UEFI basic input/output system (BIOS) code in a non-volatile serial peripheral interface (SPI) Flash memory device that is separate from the non-volatile storage devices of the system storage; where the current storage location of the selected bootable images comprises respective disk data offsets of the selected bootable images in the at least one OS partition on the system storage; and where the selected bootable images comprise multiple selected bootable images stored at respective non-contiguous storage locations in the at least one OS partition on the system storage.

24. The information handling system of claim 23 , where the selected bootable images comprise multiple selected bootable images stored on multiple different OS partitions of the system storage.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2019
From: SURYANARAYANA, SHEKAR BABU; SAYYED, IBRAHIM
To: DELL PRODUCTS L.P.
Reel/Frame 048998/0133 →
Continuity (1)
Related Publication 20200341774A1 · Oct 29, 2020
Cited By (1)
US 12,373,569