WO2022265615A1 - Image file installations - Google Patents

Image file installations Download PDF

Info

Publication number
WO2022265615A1
WO2022265615A1 PCT/US2021/037173 US2021037173W WO2022265615A1 WO 2022265615 A1 WO2022265615 A1 WO 2022265615A1 US 2021037173 W US2021037173 W US 2021037173W WO 2022265615 A1 WO2022265615 A1 WO 2022265615A1
Authority
WO
WIPO (PCT)
Prior art keywords
image file
staging area
data storage
storage device
processor
Prior art date
Application number
PCT/US2021/037173
Other languages
French (fr)
Inventor
Zachary TAHENAKOS
Timothy J. Freese
Michael J. Frick
Xinwei Zhang
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2021/037173 priority Critical patent/WO2022265615A1/en
Publication of WO2022265615A1 publication Critical patent/WO2022265615A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Definitions

  • Electronic devices may store information on memory resources.
  • an electronic device may store information in volatile memory such as random-access memory (RAM), in a non-volatile memory such as a data storage device, or in a combination thereof.
  • RAM random-access memory
  • non-volatile memory such as a data storage device
  • the information stored in a memory resource includes executable instructions.
  • executable instructions for an operating system (OS) may be stored in a memory resource.
  • OS operating system
  • Fig. 1 is a block diagram of an electronic device to install an image file, according to an example.
  • FIG. 2 illustrates a flow diagram depicting a method for installing an image file, according to an example.
  • Fig. 3 is a block diagram of an electronic device to install an image file, according to an example.
  • Fig. 4 illustrates a flow diagram depicting a method for installing an image file, according to an example.
  • Fig. 5 illustrates a flow diagram depicting another method for installing an image file, according to an example.
  • An electronic device may run an operating system (OS).
  • OS operating system
  • Some examples of an OS include Windows ® OS, Linux ® OS, or a distribution of Linux ® OS (e.g., Ubuntu ®, HP ThinPro ®).
  • OS operating system
  • a user may obtain a new image file or a user may create an image file themselves.
  • the image file may be used to update the electronic device.
  • an “image file” is a record of the entire state of a data storage device.
  • An image file may be referred to as a disk image, a system image, or an image.
  • an image file may include the contents and structure of a disk volume of an entire data storage device.
  • a data storage device include a hard disk drive (HDD), solid-state drive (SSD), tape drive, floppy disk, optical disc, and USB flash drive.
  • an image file may be created by a sector-by-sector copy of the source medium (e.g., a source data storage device). The image file may replicate the structure and contents of the source data storage device. In some examples, the image file may replicate an OS from the source data storage device. In some examples, a disk image may be included on a single image file or may span multiple image files.
  • a complete copy of the source data storage device may be copied to a client data storage device.
  • a client data storage device is a data storage device in which the image file is installed. This process may be referred to as cloning of the source data storage device.
  • portions of the data storage device are overwritten such that upon completion of the image file installation, the state of the client data storage device replicates the state of the source data storage device.
  • installation of the image file may create a new instance of the OS on an electronic device. For example, an existing OS on the electronic device may be replaced by an OS from the image file.
  • an electronic device may have storage capacity constraints on its data storage device and memory.
  • memory may refer to random-access memory (RAM) or read-only memory (ROM).
  • an attempt to install an image file on an electronic device may leave the electronic device in an unusable state due to network issues and space constraints on the memory. For example, during an image installation process, parts of the OS on the electronic device may be copied into and executed from memory (e.g., RAM), leaving the data storage device free to be overwritten.
  • the new image file may then be streamed from the network directly to the data storage device. However in these approaches, the network may encounter a disruption or may fail completely. When this occurs, the electronic device may be left in an unusable state because the original OS on the data storage device has been overwritten.
  • a copy of the OS that is loaded in memory may not be able to connect to complex networks.
  • the image installation process may fail, but the electronic device may still be usable due to the original OS not being overwritten.
  • an OS does not perform disk image updates during an update process for executable instructions. Instead, the OS downloads individual packages of executable instructions from the network and stores the packages on local file systems. Then, the OS calls a package manager to install those individual packages one by one, followed by one reboot or multiple reboots if certain packages are to be installed after the reboot. In these approaches, the partition structure of the data storage device is preserved during the update. Thus, additional partitions are not created or deleted to assist the update.
  • a user may use a second storage medium (e.g., a removable USB flash drive) to store the new image file.
  • a second storage medium e.g., a removable USB flash drive
  • the user boots the electronic device from the second storage medium and uses the image file on the second storage medium to update the data storage device on the electronic device. The user then has the option to repartition the data storage device during the install.
  • the present specification and figures describe examples for installing image files.
  • the examples described herein may provide a more robust and manageable way to update a data storage device with an image file via a network by downloading the new image file to the local electronic device before any existing OS is overwritten.
  • the image file may be cached (e.g., saved) on the data storage device, or in a combination of the data storage device and memory before the image file is installed (e.g., written) to the data storage device.
  • the examples of the present specification and figures may use the data storage device, or a combination of the data storage device and memory as a staging area for the new image file. Also, eliminating the use of additional storage media for the installation of the image file may avoid leaving devices in an unusable state due to network outages. Furthermore, the examples described herein provide a management solution to install new image files remotely and without manual intervention, which facilitates centrally-managed information technology (IT) infrastructures.
  • IT information technology
  • processor may be a processor resource, a controller, an application-specific integrated circuit (ASIC), a semiconductor-based microprocessor, a central processing unit (CPU), and a field-programmable gate array (FPGA), and/or other hardware device that executes instructions.
  • ASIC application-specific integrated circuit
  • CPU central processing unit
  • FPGA field-programmable gate array
  • the term “memory” may include a computer-readable storage medium, which computer-readable storage medium may contain, or store computer-usable program code for use by or in connection with an instruction execution system, apparatus, or device.
  • the memory may take many types of memory including volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM).
  • data storage device may include a non-volatile computer-readable storage medium.
  • Examples of the data storage device include hard disk drives, solid-state drives, writable optical memory disks, magnetic disks, among others.
  • the executable instructions may, when executed by the respective component, cause the component to implement the functionality described herein.
  • Fig. 1 is a block diagram of an electronic device 100 to install an image file 110, according to an example.
  • the example electronic device 100 may include a processor 102, memory 104, and a data storage device 106.
  • Examples of the electronic device 100 include a desktop computer, laptop computer, workstation, server, terminal device, tablet computer, router, or other computing device.
  • the processor 102 of the electronic device 100 may be implemented as dedicated hardware circuitry.
  • the dedicated hardware circuitry may be implemented as a central processing unit (CPU).
  • a dedicated hardware CPU may be implemented as a single to many- core general purpose processor.
  • a dedicated hardware CPU may also be implemented as a multi-chip solution, where more than one CPU are linked through a bus and schedule processing tasks across the more than one CPU.
  • the memory 104 may be dedicated hardware circuitry to host executable instructions 105 for the processor 102 to execute. Analogous to the processor 102, dedicated hardware circuitry may be implemented with dynamic random-access memory (DRAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), or other hardware implementations for storing executable instructions 105.
  • DRAM dynamic random-access memory
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • the executable instructions 105 may be implemented in a platform specific language that the processor 102 may decode and execute.
  • the executable instructions 105 may be stored in the memory 104 during execution.
  • the executable instructions 105 may include operations executable by the processor 102 to effectuate the installation of an image file 110.
  • the executable instructions 105 when executed may enable the processor 102 to create a staging area 108 on the data storage device 106, save the image file 110 in the staging area 108, and install the image file 110 in a portion of the data storage device 106 outside the staging area 108, as described herein.
  • the data storage device 106 may be a non-volatile storage medium.
  • the data storage device 106 can store information even after power is removed from the data storage device 106.
  • Examples of the data storage device 106 include hard disk drive (HDD), solid-state drive (SSD), tape drive, floppy disk, optical disc, and USB flash drive.
  • the electronic device 100 may receive an image file 110.
  • the image file 110 may copy the contents of a source data storage device. As described above, the image file 110 may replicate the state of the source data storage device. In some examples, unused space on the source data storage device may be omitted from the image file 110. In some examples, the contents (also referred to as used space) of the source data storage device may be compressed on the image file 110 to reduce the size of the image file 110. In some examples, the image file 110 may copy the OS, settings, data of the source data storage device, or a combination thereof.
  • the electronic device 100 may receive the image file 110 from a network resource.
  • the electronic device 100 may include a network interface to communicate on a network.
  • the network resource may be a management server that sends the image file 110 to the electronic device 100.
  • the management server may send the image file 110 to update the functionality of the electronic device 100.
  • the image file 110 may update the OS of the electronic device 100.
  • the processor 102 may store the image file 110 on the data storage device 106 upon receiving the image file 110.
  • the processor 102 may create and save configuration files for later use during image file installation.
  • the configuration files may include information that is used by the processor 102 for during the image file installation. Examples of the configuration files include a name of the electronic device 100, network parameters for the electronic device 100, the name of the image file 110, the location of the image file 110 on the data storage device 106, or a combination thereof.
  • the processor 102 may cause the electronic device 100 to boot to an installation OS that is run from memory 104.
  • the installation OS may be a subset of the current OS (e.g., the OS that is being executed on the electronic device 100 when the image file 110 is received).
  • the processor 102 may cause a subset of components from the current OS to be loaded into memory 104.
  • the installation OS may include functionality to perform the installation of the image file 110 on the data storage device 106.
  • the installation OS may be executed by the processor 102 from the memory 104 without depending upon resources of the data storage device 106.
  • the processor 102 may create a staging area 108 on the data storage device 106 based on a size of the image file 110 and a size of available storage space on the data storage device 106.
  • the staging area 108 is a portion of the data storage device 106 reserved from being overwritten during installation of the image file 110.
  • the staging area 108 may be designated as a region of the data storage device 106 that is protected from being overwritten.
  • the staging area 108 may be a partition that is created on the data storage device 106.
  • the staging area 108 may be certain portions (e.g., blocks, sectors, tracks, clusters) of the data storage device 106 that are reserved from being overwritten.
  • the staging area 108 may be created without creating a new partition.
  • the staging area 108 may be created on the data storage device 106 when there is insufficient space available in the memory 104 to save the image file 110 in its entirety.
  • the executable instructions 105 may cause the processor 102 to determine that the image file size is greater than a size of available memory.
  • available memory includes storage space in the memory 104 that is free for storing information.
  • a portion of the memory 104 may include the OS, data used by the OS, other information, or a combination thereof. These occupied portions of the memory 104 are unavailable to save data (e.g., the image file 110).
  • the available memory includes the remaining, unoccupied portion of the memory 104.
  • the processor 102 may create the staging area 108 on the data storage device 106 to store the entire image file 110. For example, the processor 102 may determine that the size of the image file 110 is less than the size of available storage space on the data storage device 106. The processor 102 may then create the staging area 108 on the data storage device 106 with a size that is equal to or greater than the image file size. In other words, the size of the staging area 108 created by the processor 102 may be equal to or may exceed the image file size.
  • the processor 102 may save the image file 110 in the staging area 108 in response to creating the staging area 108. For example, the processor 102 may move the image file 110 into the staging area 108. Once the image file 110 is saved in the staging area 108, the image file 110 may be protected from being overwritten during installation of the image file 110. The portion of the data storage device 106 outside the staging area 108 may be free to be overwritten. As used herein, a portion of the data storage device 106 outside the staging area 108 refers to a storage area of the data storage device 106 that is not designated as the staging area 108.
  • the processor 102 may unmount the data storage device 106.
  • the installation OS may unmount the data storage device 106.
  • unmounting the data storage device 106 may include making the filesystem of the data storage device 106 inaccessible to the OS.
  • unmounting the data storage device 106 may include detaching the filesystem from a file hierarchy that defines the directory structure and directory contents of the data storage device 106. It should be noted that because the installation OS is executed from memory 104, the data storage device 106 may be unmounted.
  • the image file 110 may be installed in a portion of the data storage device 106 outside the staging area 108 using the image file 110 saved in the staging area 108.
  • the image file 110 may include a copy of a source data storage device in a transferrable format.
  • the image file 110 may be a compressed copy of the contents of the source data storage device.
  • Installation of the image file 110 may include writing the uncompressed data from the image file 110 to the data storage device 106 such that the data storage device 106 replicates the state of the source data storage device.
  • the configuration files may be applied during installation of the image file 110 to adjust the image file specific to the electronic device 100.
  • the processor 102 may apply information (e.g., the name of the electronic device 100, network parameters for the electronic device 100, etc.) specific to the electronic device 100.
  • the staging area 108 may be removed. For example, if the staging area 108 is a partition of the data storage device 106, the partition may be removed to free up the space occupied by the staging area 108. In another example, if the staging area 108 is a designated region of the data storage device 106 (without having a dedicated partition), then the processor 102 may remove the designation of the staging area 108. In this case, the newly installed OS may treat the region formerly designated as the staging area 108 as available storage space. For example, the OS may overwrite the image file 110 once the staging area 108 is removed. In some examples, the processor 102 may delete the image file 110 upon completion of the image file installation.
  • the processor 102 may cause the electronic device 100 to reboot to the newly installed OS.
  • the image file 110 may include a functional OS.
  • the installed OS may mount the data storage device 106 and load the installed filesystem saved on the data storage device 106.
  • the image file installation described herein may be used to implement a staged deployment of the image file 110 to multiple electronic devices. For example, in response to receiving the image file 110 at the electronic device 100, the processor 102 may automatically create the staging area 108, move the image file 110 to the staging area 108, and install the image file 110 on the data storage device 106.
  • Receiving the image file 110 may trigger the installation process.
  • This installation process may proceed without human intervention. In other words, this installation process may avoid having a human user physically install a separate storage medium to transfer the image file 110 and initiate the image file installation.
  • the image file installation may be scheduled based on when the image file 110 is sent to designated electronic devices. For example, a first set of electronic devices may be scheduled to receive and install the image file 110 at a first time, a second set of electronic devices may be scheduled to receive and install the image file 110 at a second time, and so forth.
  • Fig. 2 illustrates a flow diagram depicting a method 200 for installing an image file, according to an example.
  • the method 200 may be performed by a processor, such as the processor 102 of Fig. 1 .
  • an image file may be received from a network resource.
  • an electronic device may include a network interface.
  • the image file may be received from a network resource (e.g., management server) using the network interface.
  • the image file may be provided to the processor.
  • the processor may save the image file to a first location of the data storage device.
  • a staging area may be created on a data storage device based on the size of the image file and the size of the available storage space on the data storage device.
  • the electronic device may include a data storage device.
  • the processor may determine that the size of the image file is less than the size of available storage space on the data storage device.
  • the processor may then create the staging area on the data storage device with a size that is equal to or greater than the image file size.
  • the staging area may be created by partitioning the data storage device.
  • the staging area may be created by designating a portion of the data storage device as the staging area.
  • the processor may determine that the image file size is greater than the size of available memory of the electronic device. The processor may then create the staging area on the data storage device to store the entire image file in response to determining that the image file size is greater than the size of available memory.
  • the staging area may be protected from being overwritten during installation of the image file.
  • the staging area may be protected from being overwritten by virtue of being a separate partition of the data storage device.
  • the staging area may be protected from being overwritten by instructions stored in memory that indicate that the staging area is not to be overwritten during installation of the image file.
  • the image file may be saved in the staging area in response to creating the staging area.
  • the processor may move the image file from the first location of the data storage device into the staging area.
  • the processor may move the image file from the non-staging area of the data storage device to the staging area.
  • the image file may be installed in a portion of the data storage device outside the staging area using the image file saved in the staging area.
  • the processor may uncompress the image file, if the image file is saved in a compressed format.
  • the processor may then write the contents of the image file to the data storage device while ensuring that the image file saved in the staging area is not overwritten.
  • Fig. 3 is a block diagram of an electronic device 300 to install an image file 310, according to an example.
  • the example electronic device 300 may include a processor 302, memory 304, and a data storage device 306, as described in Fig. 1.
  • the processor 302, memory 304, and data storage device 306 of Fig. 3 may be implemented according to the processor 102, memory 104, and data storage device 106 of Fig. 1.
  • the memory 304 may be dedicated hardware circuitry to host executable instructions 305 for the processor 302 to execute.
  • the executable instructions 305 when executed may enable the processor 302 to create a first staging area 308-1 in the memory 304 and a second staging area 308-2 on the data storage device 306.
  • the executable instructions 305 when executed may also enable the processor 302 to save a first image file portion 312 in the first staging area 308-1 and save a second image file portion 314 in the second staging area 308-2.
  • the executable instructions 305 when executed may further enable the processor 302 to install the image file 310 on the data storage device 306 using the first image file portion 312 in the first staging area 308-1 and the second image file portion 314 in the second staging area 308-2. Examples of the image file installation are now described.
  • the processor 302 may use both the memory 304 and the data storage device 306 when creating a staging area for installation of the image file 310.
  • the memory 304 may be a volatile memory (e.g., RAM) and the data storage device 306 may be non-volatile memory.
  • the electronic device 300 may receive the image file 310.
  • the electronic device 300 may receive the image file 310 over a network.
  • the processor 302 may save the image file 310 to the data storage device 306.
  • the processor 302 may create a first staging area 308-1 in the memory 304 and a second staging area 308-2 on the data storage device 306 based on a size of the image file 310, the size of available memory, and the size of available storage space on the data storage device 306. For example, the processor 302 may determine whether the image file 310 will fit in the available memory. In some examples, the processor 302 may determine that the image file size is greater than the size of the available memory. In this case, the entire image file 310 may not be able to fit in memory 304. The processor 302 may create the first staging area 308-1 in the memory 304 using the available memory.
  • a staging area may be a temporary location to store the image file 310 (or a portion of the image file 310) to protect the image file 310 from being overwritten during installation.
  • the processor 302 may designate a portion of the available memory as the first staging area 308-1 .
  • the first staging area 308-1 may be protected from being overwritten during installation of the image file 310.
  • the image file 310 may have a size of 2 gigabytes (GBs) and the memory 304 may have a storage capacity of 4 GBs. However, in this example, 3 GBs of the memory 304 may be used to store data and is unavailable. Therefore, in this example, the size of the available memory is 1 GB.
  • the processor 302 may create first staging area 308-1 using the 1 GB of available memory or a portion of the available memory.
  • the processor 302 may create a second staging area 308-2 on the data storage device 306.
  • the processor 302 may create the second staging area 308-2 on the data storage device 306 based on a difference between the image file size and the available memory. Continuing the example above, if the available memory is 1 GB and the image file size is 2 GB, then the difference is 1 GB.
  • the processor 302 may create the second staging area 308-2 by reserving 1 GB of storage space on the data storage device 306.
  • the size of the second staging area 308-2 may be greater than the difference between the image file size and the size of the first staging area 308-1.
  • the processor 302 may split the image file 310 into portions that are to be saved in the first staging area 308-1 and the first staging area 308-2.
  • an image file portion is a segment (e.g., subset) of the image file 310.
  • the processor 302 may determine a first image file portion 312 that is to be saved in the first staging area 308-1 based on the available memory. For example, the size of the first image file portion 312 may be equal to or less than the size of the available memory.
  • the processor 302 may then determine the second image file portion 314 based on the amount of the image file 310 omitted from the first image file portion 312.
  • the second image file portion 314 may include the remainder of the image file 310 that is not included in the first image file portion 312. It should be noted that in other examples, the contents of the second image file portion 314 may be determined first and the contents of the first image file portion 312 may include the remainder of the image file 310.
  • the processor 302 may save the first image file portion 312 in the first staging area 308-1 of the memory 304.
  • the processor 302 may also save the second image file portion 314 in the second staging area 308-2 of the data storage device 306.
  • the data storage device 306 may be unmounted.
  • the processor 302 may unmount the data storage device 306 in response to moving the first image file portion 312 to the first staging area 308-1 and moving the second image file portion 314 to the second staging area 308-2.
  • the processor 302 may install the image file 310 on the data storage device 306 using the first image file portion 312 in the first staging area 308-1 and the second image file portion 314 in the second staging area 314.
  • the processor 302 may combine the first image file portion 312 from the memory 304 and the second image file portion 314 from the data storage device 306 during installation of the image file 310.
  • installation of the image file 310 may include writing the first image file portion 312 to the data storage device 306 followed by writing the second image file portion 314.
  • the processor 302 may remove the first staging area 308-1 from the memory 304 and the second staging area 308-2 from the data storage device 306. The processor 302 may then cause the electronic device 300 to reboot to the OS installed with the image file 310.
  • Fig. 4 illustrates a flow diagram depicting a method 400 for installing an image file, according to an example.
  • the method 400 may be performed by a processor, such as the processor 302 of Fig. 3.
  • method 400 may be performed by a processor of an electronic device that has a memory and a data storage device.
  • an image file may be received from a network resource.
  • the electronic device may include a network interface.
  • the image file may be received from the network resource (e.g., management server) using the network interface.
  • the received image file may be stored on the data storage device.
  • the electronic device may be rebooted to an OS executed from memory.
  • an OS executed from memory For example, a subset of the existing OS may be loaded and executed from the memory. Rebooting to the OS executed from the memory may allow the data storage device to be unmounted.
  • a first staging area may be created on the memory and a second staging area may be created on the data storage device based on an image file size, available memory, and available storage on the data storage device.
  • the processor may determine that the image file size is greater than the size of the available memory.
  • the processor may create the first staging area in the memory using the available memory.
  • the processor may create the second staging area on the data storage device based on the difference between the image file size and the available memory.
  • a first image file portion may be moved to the first staging area.
  • the processor may determine the first image file portion based on the available memory.
  • the first image file portion may be part of the image file.
  • the size of the first file portion may be determined to fit available memory.
  • the processor may save the first image file portion in the first staging area.
  • the processor may determine the second image file portion based on an amount of the image file omitted from the first image file portion.
  • the second image file portion may be a part of the image file that is not included in the first image file portion.
  • the processor may save the second image file portion in the second staging area.
  • the image file may be installed on the data storage device using the first image file portion in the first staging area and the second image file portion in the second staging area.
  • the processor may combine the first image file portion from the memory and the second image file portion from the data storage device during installation of the image file.
  • Fig. 5 illustrates a flow diagram depicting a method 500 for installing an image file, according to an example.
  • the method 500 may be performed by a processor, such as the processor 302 of Fig. 3.
  • method 500 may be performed by a processor of an electronic device that has a memory and a data storage device.
  • an image file may be received at the electronic device from a network resource.
  • the processor may determine that the image file size is greater than the size of available memory. For example, a portion of the memory may be available to store data. The size of this available memory may be less than the size of the image file.
  • a first staging area may be created in the memory using the available memory.
  • the processor may reserve a portion of the available memory as the first staging area.
  • a first image file portion may be determined based on the available memory. For example, the processor may divide the image file into multiple portions. The first image file portion may be sized to fit in the available memory. In some examples, the size of the first image file portion may be less than or equal to the size of the first staging area.
  • the first image file portion may be saved to the first staging area.
  • the processor may write the contents of the image file corresponding to the first image file portion to the first staging area.
  • a second staging area may be created on the data storage device based on the difference between the image file size and the size available memory. For example, a portion of the data storage device may be reserved for the second staging area. The size of the second staging area may be equal to or greater than the difference between the image file size and the size of available memory.
  • a second image file portion may be determined based on an amount of the image file omitted from the first image file portion. For example, the processor may determine which part of the image file was included in the first image file portion. The processor may include the remaining part of the image file in the second image file portion.
  • the second image file portion may be saved to the second staging area. For example, the processor may write the contents of the image file corresponding to the second image file portion to the second staging area.
  • the image file may be installed on the data storage device using the first image file portion in the first staging area and the second image file portion in the second staging area. For example, the processor may combine the first image file portion from the memory and the second image file portion from the data storage device during installation of the image file.
  • examples described may include various components and features. It should also be noted that numerous specific details are set forth to provide a thorough understanding of the examples. However, it should be noted that the examples may be practiced without limitations to these specific details. In other instances, methods and structures may not be described in detail to avoid unnecessarily obscuring the description of the examples. Also, the examples may be used in combination with each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

In examples in accordance with the present disclosure, an electronic device is described. An example electronic device includes a data storage device, a processor, and a memory. The example memory is communicatively coupled to the processor and stores executable instructions that when executed cause the processor to create a staging area on the data storage device based on a size of an image file and a size of available storage space on the data storage device. The executable instructions also cause the processor to save the image file in the staging area in response to creating the staging area. The executable instructions further cause the processor to install the image file in a portion of the data storage device outside the staging area using the image file saved in the staging area.

Description

IMAGE FILE INSTALLATIONS
BACKGROUND
[0001] Electronic devices may store information on memory resources. For example, an electronic device may store information in volatile memory such as random-access memory (RAM), in a non-volatile memory such as a data storage device, or in a combination thereof. In some examples, the information stored in a memory resource includes executable instructions. For example, executable instructions for an operating system (OS) may be stored in a memory resource.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The accompanying drawings illustrate various examples of the principles described herein and are part of the specification. The illustrated examples are given merely for illustration, and do not limit the scope of the claims.
[0003] Fig. 1 is a block diagram of an electronic device to install an image file, according to an example.
[0004] Fig. 2 illustrates a flow diagram depicting a method for installing an image file, according to an example.
[0005] Fig. 3 is a block diagram of an electronic device to install an image file, according to an example.
[0006] Fig. 4 illustrates a flow diagram depicting a method for installing an image file, according to an example. [0007] Fig. 5 illustrates a flow diagram depicting another method for installing an image file, according to an example.
[0008] Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements. The figures are not necessarily to scale, and the size of some parts may be exaggerated to more clearly illustrate the example shown. Moreover, the drawings provide examples and/or implementations consistent with the description; however, the description is not limited to the examples and/or implementations provided in the drawings.
DETAILED DESCRIPTION
[0009] An electronic device may run an operating system (OS). Some examples of an OS include Windows ® OS, Linux ® OS, or a distribution of Linux ® OS (e.g., Ubuntu ®, HP ThinPro ®). In some examples, to upgrade the OS of the electronic device, a user may obtain a new image file or a user may create an image file themselves. The image file may be used to update the electronic device. As used herein an “image file” is a record of the entire state of a data storage device. An image file may be referred to as a disk image, a system image, or an image.
[0010] In some examples, an image file may include the contents and structure of a disk volume of an entire data storage device. Examples of a data storage device include a hard disk drive (HDD), solid-state drive (SSD), tape drive, floppy disk, optical disc, and USB flash drive. In some examples, an image file may be created by a sector-by-sector copy of the source medium (e.g., a source data storage device). The image file may replicate the structure and contents of the source data storage device. In some examples, the image file may replicate an OS from the source data storage device. In some examples, a disk image may be included on a single image file or may span multiple image files.
[0011] Upon installation of the image file, a complete copy of the source data storage device may be copied to a client data storage device. As used herein, a client data storage device is a data storage device in which the image file is installed. This process may be referred to as cloning of the source data storage device. In some examples, during installation of the image file, portions of the data storage device are overwritten such that upon completion of the image file installation, the state of the client data storage device replicates the state of the source data storage device. In some examples, installation of the image file may create a new instance of the OS on an electronic device. For example, an existing OS on the electronic device may be replaced by an OS from the image file.
[0012] In some examples, an electronic device may have storage capacity constraints on its data storage device and memory. As used herein, memory may refer to random-access memory (RAM) or read-only memory (ROM). In some examples, an attempt to install an image file on an electronic device may leave the electronic device in an unusable state due to network issues and space constraints on the memory. For example, during an image installation process, parts of the OS on the electronic device may be copied into and executed from memory (e.g., RAM), leaving the data storage device free to be overwritten. In some approaches, the new image file may then be streamed from the network directly to the data storage device. However in these approaches, the network may encounter a disruption or may fail completely. When this occurs, the electronic device may be left in an unusable state because the original OS on the data storage device has been overwritten.
[0013] In other examples, a copy of the OS that is loaded in memory may not be able to connect to complex networks. In this case, the image installation process may fail, but the electronic device may still be usable due to the original OS not being overwritten.
[0014] In some approaches, an OS does not perform disk image updates during an update process for executable instructions. Instead, the OS downloads individual packages of executable instructions from the network and stores the packages on local file systems. Then, the OS calls a package manager to install those individual packages one by one, followed by one reboot or multiple reboots if certain packages are to be installed after the reboot. In these approaches, the partition structure of the data storage device is preserved during the update. Thus, additional partitions are not created or deleted to assist the update.
[0015] I n other approaches, if a user wants to erase the data storage device and install a new image file on the data storage device, the user may use a second storage medium (e.g., a removable USB flash drive) to store the new image file. In these approaches, the user boots the electronic device from the second storage medium and uses the image file on the second storage medium to update the data storage device on the electronic device. The user then has the option to repartition the data storage device during the install.
[0016] The present specification and figures describe examples for installing image files. The examples described herein may provide a more robust and manageable way to update a data storage device with an image file via a network by downloading the new image file to the local electronic device before any existing OS is overwritten. In some examples, the image file may be cached (e.g., saved) on the data storage device, or in a combination of the data storage device and memory before the image file is installed (e.g., written) to the data storage device.
[0017] The examples of the present specification and figures may use the data storage device, or a combination of the data storage device and memory as a staging area for the new image file. Also, eliminating the use of additional storage media for the installation of the image file may avoid leaving devices in an unusable state due to network outages. Furthermore, the examples described herein provide a management solution to install new image files remotely and without manual intervention, which facilitates centrally-managed information technology (IT) infrastructures.
[0018] As used in the present specification and in the appended claims, the term “processor” may be a processor resource, a controller, an application- specific integrated circuit (ASIC), a semiconductor-based microprocessor, a central processing unit (CPU), and a field-programmable gate array (FPGA), and/or other hardware device that executes instructions.
[0019] As used in the present specification and in the appended claims, the term “memory” may include a computer-readable storage medium, which computer-readable storage medium may contain, or store computer-usable program code for use by or in connection with an instruction execution system, apparatus, or device. The memory may take many types of memory including volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM).
[0020] As used in the present specification and in the appended claims, the term “data storage device” may include a non-volatile computer-readable storage medium. Examples of the data storage device include hard disk drives, solid-state drives, writable optical memory disks, magnetic disks, among others. The executable instructions may, when executed by the respective component, cause the component to implement the functionality described herein.
[0021] Various examples described below relate to installation of image files. Turning now to the figures, Fig. 1 is a block diagram of an electronic device 100 to install an image file 110, according to an example. The example electronic device 100 may include a processor 102, memory 104, and a data storage device 106. Examples of the electronic device 100 include a desktop computer, laptop computer, workstation, server, terminal device, tablet computer, router, or other computing device.
[0022] In some examples, the processor 102 of the electronic device 100 may be implemented as dedicated hardware circuitry. In some examples, the dedicated hardware circuitry may be implemented as a central processing unit (CPU). A dedicated hardware CPU may be implemented as a single to many- core general purpose processor. A dedicated hardware CPU may also be implemented as a multi-chip solution, where more than one CPU are linked through a bus and schedule processing tasks across the more than one CPU. [0023] In some examples, the memory 104 may be dedicated hardware circuitry to host executable instructions 105 for the processor 102 to execute. Analogous to the processor 102, dedicated hardware circuitry may be implemented with dynamic random-access memory (DRAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), or other hardware implementations for storing executable instructions 105.
[0024] The executable instructions 105 may be implemented in a platform specific language that the processor 102 may decode and execute. The executable instructions 105 may be stored in the memory 104 during execution. The executable instructions 105 may include operations executable by the processor 102 to effectuate the installation of an image file 110. The executable instructions 105 when executed may enable the processor 102 to create a staging area 108 on the data storage device 106, save the image file 110 in the staging area 108, and install the image file 110 in a portion of the data storage device 106 outside the staging area 108, as described herein.
[0025] The data storage device 106 may be a non-volatile storage medium. The data storage device 106 can store information even after power is removed from the data storage device 106. Examples of the data storage device 106 include hard disk drive (HDD), solid-state drive (SSD), tape drive, floppy disk, optical disc, and USB flash drive.
[0026] In some examples, the electronic device 100 may receive an image file 110. The image file 110 may copy the contents of a source data storage device. As described above, the image file 110 may replicate the state of the source data storage device. In some examples, unused space on the source data storage device may be omitted from the image file 110. In some examples, the contents (also referred to as used space) of the source data storage device may be compressed on the image file 110 to reduce the size of the image file 110. In some examples, the image file 110 may copy the OS, settings, data of the source data storage device, or a combination thereof.
[0027] In some examples, the electronic device 100 may receive the image file 110 from a network resource. For example, the electronic device 100 may include a network interface to communicate on a network. In some examples, the network resource may be a management server that sends the image file 110 to the electronic device 100. In some examples, the management server may send the image file 110 to update the functionality of the electronic device 100. For example, the image file 110 may update the OS of the electronic device 100. In some examples, upon receiving the image file 110, the processor 102 may store the image file 110 on the data storage device 106.
[0028] In some examples, the processor 102 may create and save configuration files for later use during image file installation. In some examples, the configuration files may include information that is used by the processor 102 for during the image file installation. Examples of the configuration files include a name of the electronic device 100, network parameters for the electronic device 100, the name of the image file 110, the location of the image file 110 on the data storage device 106, or a combination thereof.
[0029] In some examples, the processor 102 may cause the electronic device 100 to boot to an installation OS that is run from memory 104. For example, the installation OS may be a subset of the current OS (e.g., the OS that is being executed on the electronic device 100 when the image file 110 is received). The processor 102 may cause a subset of components from the current OS to be loaded into memory 104. The installation OS may include functionality to perform the installation of the image file 110 on the data storage device 106. Upon reboot, the installation OS may be executed by the processor 102 from the memory 104 without depending upon resources of the data storage device 106.
[0030] The processor 102 may create a staging area 108 on the data storage device 106 based on a size of the image file 110 and a size of available storage space on the data storage device 106. As used herein, the staging area 108 is a portion of the data storage device 106 reserved from being overwritten during installation of the image file 110. The staging area 108 may be designated as a region of the data storage device 106 that is protected from being overwritten. In some examples, the staging area 108 may be a partition that is created on the data storage device 106. In some examples, the staging area 108 may be certain portions (e.g., blocks, sectors, tracks, clusters) of the data storage device 106 that are reserved from being overwritten. In some examples, the staging area 108 may be created without creating a new partition.
[0031] In some examples, the staging area 108 may be created on the data storage device 106 when there is insufficient space available in the memory 104 to save the image file 110 in its entirety. For example, the executable instructions 105 may cause the processor 102 to determine that the image file size is greater than a size of available memory. As used herein, available memory includes storage space in the memory 104 that is free for storing information. For example, a portion of the memory 104 may include the OS, data used by the OS, other information, or a combination thereof. These occupied portions of the memory 104 are unavailable to save data (e.g., the image file 110). The available memory includes the remaining, unoccupied portion of the memory 104.
[0032] In response to determining that the image file 110 is greater than the available memory, the processor 102 may create the staging area 108 on the data storage device 106 to store the entire image file 110. For example, the processor 102 may determine that the size of the image file 110 is less than the size of available storage space on the data storage device 106. The processor 102 may then create the staging area 108 on the data storage device 106 with a size that is equal to or greater than the image file size. In other words, the size of the staging area 108 created by the processor 102 may be equal to or may exceed the image file size.
[0033] In some examples, the processor 102 may save the image file 110 in the staging area 108 in response to creating the staging area 108. For example, the processor 102 may move the image file 110 into the staging area 108. Once the image file 110 is saved in the staging area 108, the image file 110 may be protected from being overwritten during installation of the image file 110. The portion of the data storage device 106 outside the staging area 108 may be free to be overwritten. As used herein, a portion of the data storage device 106 outside the staging area 108 refers to a storage area of the data storage device 106 that is not designated as the staging area 108.
[0034] In some examples, the processor 102 may unmount the data storage device 106. For example, upon saving the image file 110 in the staging area 108, the installation OS may unmount the data storage device 106. In some examples, unmounting the data storage device 106 may include making the filesystem of the data storage device 106 inaccessible to the OS. In some examples, unmounting the data storage device 106 may include detaching the filesystem from a file hierarchy that defines the directory structure and directory contents of the data storage device 106. It should be noted that because the installation OS is executed from memory 104, the data storage device 106 may be unmounted.
[0035] The image file 110 may be installed in a portion of the data storage device 106 outside the staging area 108 using the image file 110 saved in the staging area 108. As described above, the image file 110 may include a copy of a source data storage device in a transferrable format. In some examples, the image file 110 may be a compressed copy of the contents of the source data storage device. Installation of the image file 110 may include writing the uncompressed data from the image file 110 to the data storage device 106 such that the data storage device 106 replicates the state of the source data storage device. In some examples, the configuration files may be applied during installation of the image file 110 to adjust the image file specific to the electronic device 100. For example, the processor 102 may apply information (e.g., the name of the electronic device 100, network parameters for the electronic device 100, etc.) specific to the electronic device 100.
[0036] Upon installing the image file 110, the staging area 108 may be removed. For example, if the staging area 108 is a partition of the data storage device 106, the partition may be removed to free up the space occupied by the staging area 108. In another example, if the staging area 108 is a designated region of the data storage device 106 (without having a dedicated partition), then the processor 102 may remove the designation of the staging area 108. In this case, the newly installed OS may treat the region formerly designated as the staging area 108 as available storage space. For example, the OS may overwrite the image file 110 once the staging area 108 is removed. In some examples, the processor 102 may delete the image file 110 upon completion of the image file installation.
[0037] Upon completing the image file installation, the processor 102 may cause the electronic device 100 to reboot to the newly installed OS. For example, the image file 110 may include a functional OS. Upon rebooting, the installed OS may mount the data storage device 106 and load the installed filesystem saved on the data storage device 106. [0038] In some examples, the image file installation described herein may be used to implement a staged deployment of the image file 110 to multiple electronic devices. For example, in response to receiving the image file 110 at the electronic device 100, the processor 102 may automatically create the staging area 108, move the image file 110 to the staging area 108, and install the image file 110 on the data storage device 106.
[0039] Receiving the image file 110 may trigger the installation process. This installation process may proceed without human intervention. In other words, this installation process may avoid having a human user physically install a separate storage medium to transfer the image file 110 and initiate the image file installation.
[0040] In an example where multiple electronic devices are to be updated via an image file 110, the image file installation may be scheduled based on when the image file 110 is sent to designated electronic devices. For example, a first set of electronic devices may be scheduled to receive and install the image file 110 at a first time, a second set of electronic devices may be scheduled to receive and install the image file 110 at a second time, and so forth.
[0041] Fig. 2 illustrates a flow diagram depicting a method 200 for installing an image file, according to an example. The method 200 may be performed by a processor, such as the processor 102 of Fig. 1 .
[0042] At 201 , an image file may be received from a network resource. For example, an electronic device may include a network interface. The image file may be received from a network resource (e.g., management server) using the network interface. The image file may be provided to the processor. Upon receiving the image file, the processor may save the image file to a first location of the data storage device.
[0043] At 203, a staging area may be created on a data storage device based on the size of the image file and the size of the available storage space on the data storage device. For example, the electronic device may include a data storage device. The processor may determine that the size of the image file is less than the size of available storage space on the data storage device. The processor may then create the staging area on the data storage device with a size that is equal to or greater than the image file size. In some examples, the staging area may be created by partitioning the data storage device. In some examples, the staging area may be created by designating a portion of the data storage device as the staging area.
[0044] In some examples, the processor may determine that the image file size is greater than the size of available memory of the electronic device. The processor may then create the staging area on the data storage device to store the entire image file in response to determining that the image file size is greater than the size of available memory.
[0045] The staging area may be protected from being overwritten during installation of the image file. In some examples, the staging area may be protected from being overwritten by virtue of being a separate partition of the data storage device. In some examples, the staging area may be protected from being overwritten by instructions stored in memory that indicate that the staging area is not to be overwritten during installation of the image file.
[0046] At 205, the image file may be saved in the staging area in response to creating the staging area. For example, the processor may move the image file from the first location of the data storage device into the staging area. In other words, the processor may move the image file from the non-staging area of the data storage device to the staging area.
[0047] At 207, the image file may be installed in a portion of the data storage device outside the staging area using the image file saved in the staging area. For example, the processor may uncompress the image file, if the image file is saved in a compressed format. The processor may then write the contents of the image file to the data storage device while ensuring that the image file saved in the staging area is not overwritten.
[0048] Fig. 3 is a block diagram of an electronic device 300 to install an image file 310, according to an example. The example electronic device 300 may include a processor 302, memory 304, and a data storage device 306, as described in Fig. 1. For example, the processor 302, memory 304, and data storage device 306 of Fig. 3 may be implemented according to the processor 102, memory 104, and data storage device 106 of Fig. 1. [0049] In some examples, the memory 304 may be dedicated hardware circuitry to host executable instructions 305 for the processor 302 to execute. The executable instructions 305 when executed may enable the processor 302 to create a first staging area 308-1 in the memory 304 and a second staging area 308-2 on the data storage device 306. The executable instructions 305 when executed may also enable the processor 302 to save a first image file portion 312 in the first staging area 308-1 and save a second image file portion 314 in the second staging area 308-2. The executable instructions 305 when executed may further enable the processor 302 to install the image file 310 on the data storage device 306 using the first image file portion 312 in the first staging area 308-1 and the second image file portion 314 in the second staging area 308-2. Examples of the image file installation are now described.
[0050] In some examples, the processor 302 may use both the memory 304 and the data storage device 306 when creating a staging area for installation of the image file 310. As described above, in some examples, the memory 304 may be a volatile memory (e.g., RAM) and the data storage device 306 may be non-volatile memory.
[0051] In some examples, the electronic device 300 may receive the image file 310. For example, the electronic device 300 may receive the image file 310 over a network. Upon receiving the image file 310, the processor 302 may save the image file 310 to the data storage device 306.
[0052] The processor 302 may create a first staging area 308-1 in the memory 304 and a second staging area 308-2 on the data storage device 306 based on a size of the image file 310, the size of available memory, and the size of available storage space on the data storage device 306. For example, the processor 302 may determine whether the image file 310 will fit in the available memory. In some examples, the processor 302 may determine that the image file size is greater than the size of the available memory. In this case, the entire image file 310 may not be able to fit in memory 304. The processor 302 may create the first staging area 308-1 in the memory 304 using the available memory. As described above, a staging area may be a temporary location to store the image file 310 (or a portion of the image file 310) to protect the image file 310 from being overwritten during installation. In this case, the processor 302 may designate a portion of the available memory as the first staging area 308-1 . The first staging area 308-1 may be protected from being overwritten during installation of the image file 310.
[0053] In an example, the image file 310 may have a size of 2 gigabytes (GBs) and the memory 304 may have a storage capacity of 4 GBs. However, in this example, 3 GBs of the memory 304 may be used to store data and is unavailable. Therefore, in this example, the size of the available memory is 1 GB. The processor 302 may create first staging area 308-1 using the 1 GB of available memory or a portion of the available memory.
[0054] The processor 302 may create a second staging area 308-2 on the data storage device 306. In some examples, the processor 302 may create the second staging area 308-2 on the data storage device 306 based on a difference between the image file size and the available memory. Continuing the example above, if the available memory is 1 GB and the image file size is 2 GB, then the difference is 1 GB. In this example, the processor 302 may create the second staging area 308-2 by reserving 1 GB of storage space on the data storage device 306. In another example, the size of the second staging area 308-2 may be greater than the difference between the image file size and the size of the first staging area 308-1.
[0055] The processor 302 may split the image file 310 into portions that are to be saved in the first staging area 308-1 and the first staging area 308-2. As used herein an image file portion is a segment (e.g., subset) of the image file 310. In some examples, the processor 302 may determine a first image file portion 312 that is to be saved in the first staging area 308-1 based on the available memory. For example, the size of the first image file portion 312 may be equal to or less than the size of the available memory. The processor 302 may then determine the second image file portion 314 based on the amount of the image file 310 omitted from the first image file portion 312. In other words, the second image file portion 314 may include the remainder of the image file 310 that is not included in the first image file portion 312. It should be noted that in other examples, the contents of the second image file portion 314 may be determined first and the contents of the first image file portion 312 may include the remainder of the image file 310.
[0056] The processor 302 may save the first image file portion 312 in the first staging area 308-1 of the memory 304. The processor 302 may also save the second image file portion 314 in the second staging area 308-2 of the data storage device 306.
[0057] As described above, the data storage device 306 may be unmounted. For example, the processor 302 may unmount the data storage device 306 in response to moving the first image file portion 312 to the first staging area 308-1 and moving the second image file portion 314 to the second staging area 308-2. [0058] The processor 302 may install the image file 310 on the data storage device 306 using the first image file portion 312 in the first staging area 308-1 and the second image file portion 314 in the second staging area 314. For example, the processor 302 may combine the first image file portion 312 from the memory 304 and the second image file portion 314 from the data storage device 306 during installation of the image file 310. In some examples, installation of the image file 310 may include writing the first image file portion 312 to the data storage device 306 followed by writing the second image file portion 314.
[0059] Upon completing the installation of the image file 310, the processor 302 may remove the first staging area 308-1 from the memory 304 and the second staging area 308-2 from the data storage device 306. The processor 302 may then cause the electronic device 300 to reboot to the OS installed with the image file 310.
[0060] Fig. 4 illustrates a flow diagram depicting a method 400 for installing an image file, according to an example. The method 400 may be performed by a processor, such as the processor 302 of Fig. 3. In some examples, method 400 may be performed by a processor of an electronic device that has a memory and a data storage device.
[0061] At 401 , an image file may be received from a network resource. For example, the electronic device may include a network interface. The image file may be received from the network resource (e.g., management server) using the network interface. At 403, the received image file may be stored on the data storage device.
[0062] At 405, the electronic device may be rebooted to an OS executed from memory. For example, a subset of the existing OS may be loaded and executed from the memory. Rebooting to the OS executed from the memory may allow the data storage device to be unmounted.
[0063] At 407, a first staging area may be created on the memory and a second staging area may be created on the data storage device based on an image file size, available memory, and available storage on the data storage device. For example, the processor may determine that the image file size is greater than the size of the available memory. The processor may create the first staging area in the memory using the available memory. The processor may create the second staging area on the data storage device based on the difference between the image file size and the available memory.
[0064] At 409, a first image file portion may be moved to the first staging area. For example, the processor may determine the first image file portion based on the available memory. In some examples, the first image file portion may be part of the image file. The size of the first file portion may be determined to fit available memory. The processor may save the first image file portion in the first staging area.
[0065] At 411 , move a second image file portion to the second staging area. For example, the processor may determine the second image file portion based on an amount of the image file omitted from the first image file portion. In some examples, the second image file portion may be a part of the image file that is not included in the first image file portion. The processor may save the second image file portion in the second staging area.
[0066] At 413, the image file may be installed on the data storage device using the first image file portion in the first staging area and the second image file portion in the second staging area. For example, the processor may combine the first image file portion from the memory and the second image file portion from the data storage device during installation of the image file. [0067] Fig. 5 illustrates a flow diagram depicting a method 500 for installing an image file, according to an example. The method 500 may be performed by a processor, such as the processor 302 of Fig. 3. In some examples, method 500 may be performed by a processor of an electronic device that has a memory and a data storage device.
[0068] At 501 , an image file may be received at the electronic device from a network resource. At 503, the processor may determine that the image file size is greater than the size of available memory. For example, a portion of the memory may be available to store data. The size of this available memory may be less than the size of the image file.
[0069] At 505, a first staging area may be created in the memory using the available memory. For example, the processor may reserve a portion of the available memory as the first staging area.
[0070] At 507, a first image file portion may be determined based on the available memory. For example, the processor may divide the image file into multiple portions. The first image file portion may be sized to fit in the available memory. In some examples, the size of the first image file portion may be less than or equal to the size of the first staging area.
[0071] At 509, the first image file portion may be saved to the first staging area. For example, the processor may write the contents of the image file corresponding to the first image file portion to the first staging area.
[0072] At 511 , a second staging area may be created on the data storage device based on the difference between the image file size and the size available memory. For example, a portion of the data storage device may be reserved for the second staging area. The size of the second staging area may be equal to or greater than the difference between the image file size and the size of available memory.
[0073] At 513, a second image file portion may be determined based on an amount of the image file omitted from the first image file portion. For example, the processor may determine which part of the image file was included in the first image file portion. The processor may include the remaining part of the image file in the second image file portion. [0074] At 515, the second image file portion may be saved to the second staging area. For example, the processor may write the contents of the image file corresponding to the second image file portion to the second staging area. [0075] At 517, the image file may be installed on the data storage device using the first image file portion in the first staging area and the second image file portion in the second staging area. For example, the processor may combine the first image file portion from the memory and the second image file portion from the data storage device during installation of the image file.
[0076] It should be noted that examples described may include various components and features. It should also be noted that numerous specific details are set forth to provide a thorough understanding of the examples. However, it should be noted that the examples may be practiced without limitations to these specific details. In other instances, methods and structures may not be described in detail to avoid unnecessarily obscuring the description of the examples. Also, the examples may be used in combination with each other.

Claims

CLAIMS What is claimed is:
1. An electronic device, comprising: a data storage device; a processor; and a memory communicatively coupled to the processor and storing executable instructions that when executed cause the processor to: create a staging area on the data storage device based on a size of an image file and a size of available storage space on the data storage device; save the image file in the staging area in response to creating the staging area; and install the image file in a portion of the data storage device outside the staging area using the image file saved in the staging area.
2. The electronic device of claim 1 , wherein the staging area comprises a portion of the data storage device reserved from being overwritten during installation of the image file.
3. The electronic device of claim 1 , wherein the executable instructions to create the staging area comprise executable instructions to cause the processor to: determine that the image file size is greater than a size of available memory; and create the staging area on the data storage device to store the entire image file in response to determining that the image file size is greater than the size of available memory.
4. The electronic device of claim 1 , further comprising a network interface device to receive the image file from a network resource.
5. The electronic device of claim 4, wherein the executable instructions further comprise executable instructions to cause the processor to automatically create the staging area, move the image file to the staging area, and install the image file on the data storage device in response to the image file being received at the electronic device.
6. An electronic device, comprising: a data storage device; a processor; and a memory communicatively coupled to the processor and storing executable instructions that when executed cause the processor to: create a first staging area in the memory and a second staging area on the data storage device based on a size of an image file, a size of available memory, and a size of available storage space on the data storage device; save a first image file portion in the first staging area; save a second image file portion in the second staging area; and install the image file on the data storage device using the first image file portion in the first staging area and the second image file portion in the second staging area.
7. The electronic device of claim 6, wherein the memory comprises a random-access memory (RAM).
8. The electronic device of claim 6, wherein the executable instructions further comprise executable instructions to cause the processor to: determine that the image file size is greater than the size of the available memory; create the first staging area in the memory using the available memory; and determine the first image file portion based on the available memory.
9. The electronic device of claim 8, wherein the executable instructions further comprise executable instructions to cause the processor to: create the second staging area on the data storage device based on a difference between the image file size and the available memory; and determine the second image file portion based on an amount of the image file omitted from the first image file portion.
10. The electronic device of claim 6, wherein the executable instructions further comprise executable instructions to cause the processor to: combine the first image file portion from the memory and the second image file portion from the data storage device during installation of the image file.
11. A method, comprising: receiving an image file at an electronic device from a network resource; storing the image file to a data storage device of the electronic device; rebooting the electronic device to an operating system (OS) executed from a memory of the electronic device; creating a first staging area in the memory and a second staging area on the data storage device based on an image file size, a size of available memory, and a size of available storage space on the data storage device; moving a first image file portion to the first staging area; moving a second image file portion to the second staging area; and installing the image file on the data storage device using the first image file portion in the first staging area and the second image file portion in the second staging area.
12. The method of claim 11 , further comprising unmounting the data storage device in response to moving the first image file portion to the first staging area and moving the second image file portion to the second staging area.
13. The method of claim 12, wherein rebooting to the OS executed from the memory allows the data storage device to be unmounted.
14. The method of claim 12, wherein responsive to unmounting the data storage device, installing the image file comprises overwriting a portion of the data storage device outside the second staging area.
15. The method of claim 11 , further comprising removing the first staging area and the second staging area in response to installing the image file on the data storage device.
PCT/US2021/037173 2021-06-14 2021-06-14 Image file installations WO2022265615A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2021/037173 WO2022265615A1 (en) 2021-06-14 2021-06-14 Image file installations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/037173 WO2022265615A1 (en) 2021-06-14 2021-06-14 Image file installations

Publications (1)

Publication Number Publication Date
WO2022265615A1 true WO2022265615A1 (en) 2022-12-22

Family

ID=84526432

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2021/037173 WO2022265615A1 (en) 2021-06-14 2021-06-14 Image file installations

Country Status (1)

Country Link
WO (1) WO2022265615A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050209991A1 (en) * 2004-03-22 2005-09-22 Microsoft Corporation Computing device with relatively limited storage space and operating / file system thereof
US20120198149A1 (en) * 2006-06-20 2012-08-02 Microsoft Corporation Efficiently synchronizing with separated disk caches
US20170329593A1 (en) * 2016-05-16 2017-11-16 Netapp, Inc. INPLACE RETURN TO FACTORY INSTALL (iRTFI)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050209991A1 (en) * 2004-03-22 2005-09-22 Microsoft Corporation Computing device with relatively limited storage space and operating / file system thereof
US20120198149A1 (en) * 2006-06-20 2012-08-02 Microsoft Corporation Efficiently synchronizing with separated disk caches
US20170329593A1 (en) * 2016-05-16 2017-11-16 Netapp, Inc. INPLACE RETURN TO FACTORY INSTALL (iRTFI)

Similar Documents

Publication Publication Date Title
US10296423B2 (en) System and method for live virtual incremental restoring of data from cloud storage
US10241873B2 (en) Headstart restore of first volume to a second volume
US10762039B2 (en) Backup and restoration for storage system
US7669021B2 (en) File system based offline disk management
US7519806B2 (en) Virtual partition for recording and restoring computer data files
US9400611B1 (en) Data migration in cluster environment using host copy and changed block tracking
US9852198B1 (en) Method and system for fast generation of file system snapshot bitmap in virtual environment
CN107870968B (en) Performing real-time updates to a file system volume
US7721138B1 (en) System and method for on-the-fly migration of server from backup
US9009443B2 (en) System and method for optimized reclamation processing in a virtual tape library system
EP1907935B1 (en) System and method for virtualizing backup images
US8234359B2 (en) System and method for remotely re-imaging a computer system
JP6064608B2 (en) Storage device, backup program, and backup method
US20120239922A1 (en) Preparing and preserving a system configuration during a hot upgrade
US10778762B2 (en) Cloud computing service architecture
EP3769224B1 (en) Configurable recovery states
US9846621B1 (en) Disaster recovery—multiple restore options and automatic management of restored computing devices
CN104823160A (en) Virtual machine-preserving host updates
US8578203B2 (en) Providing a backup service from a remote backup data center to a computer through a network
US9619340B1 (en) Disaster recovery on dissimilar hardware
US20050235281A1 (en) Combined software installation package
US9189345B1 (en) Method to perform instant restore of physical machines
US7818557B2 (en) Method for re-imaging a computer system
CN109086078A (en) Android system upgrade method, device, server and mobile terminal
EP3769225B1 (en) Free space pass-through

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21946208

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21946208

Country of ref document: EP

Kind code of ref document: A1