IP Library Granted Patent US 7,293,150
Granted Patent B2
US 7,293,150 · App. 10/185,755 · Granted Nov 6, 2007

Method and system for creating and restoring an image file

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 7,293,150
App. No.
10/185,755
Granted
Nov 6, 2007
Kind
B2
Abstract

An image file format and a method of creating and restoring an image file is provided by the present invention. The image file format includes a plurality of streams such as a control stream, a data stream, a bitmap stream, and a cluster map stream. An audit trail stream, properties stream and fix-up stream may also be provided. The present invention allows the contents of a storage media to be captured and stored as an image file. The image file is used to restore the storage media to a previous state or allows multiple computers to be provided with a common configuration. The plurality of streams further allow the image file to be viewed, edited or otherwise manipulated.

Claims (60)

1. A destination storage media having an image file stored thereon, wherein the image file is created from source data stored on a source storage media, the image file including a plurality of image streams, comprising:

a control stream including data identifying the image file;

a data stream containing the source data; and

a cluster map stream containing a plurality of records, each record identifying:

a first location corresponding to allocation of a portion of the source data on the source media;

a second location corresponding to a location of the portion of the source data in the data stream;

wherein the plurality of image streams further comprising: a bitmask stream containing data identifying allocated and unallocated clusters of the source storage media; and

wherein the bitmask stream comprises a plurality of bits, each bit corresponding to a cluster on the source storage media volume and each bit having a value that identifies whether the cluster on the source storage media volume is allocated or unallocated.

2. A destination storage media having an image file stored thereon, wherein the image file is created from source data stored on a source storage media, the image file including a plurality of image streams, comprising:

a control stream including data identifying the image file;

a data stream containing the source data; and

a cluster map stream containing a plurality of records, each record identifying:

a first location corresponding to allocation of a portion of the source data on the source media;

a second location corresponding to a location of the portion of the source data in the data stream;

wherein the first location comprises a starting and ending cluster number representing a series of contiguous blocks where the portion of source data is placed on a storage media volume when the image file is restored.

3. A destination storage media having an image file stored thereon, wherein the image file is created from source data stored on a source storage media, the image file including a plurality of image streams, comprising:

a control stream including data identifying the image file;

a data stream containing the source data; and

a cluster map stream containing a plurality of records, each record identifying:

a first location corresponding to allocation of a portion of the source data on the source media;

a second location corresponding to a location of the portion of the source data in the data stream;

wherein the second location comprises an offset and a length, the offset identifying a starting location in the data stream containing the portion of data and the length identifying a set of contiguous locations within the data stream that contain the portion of data.

4. A destination storage media having an image file stored thereon, wherein the image file is created from source data stored on a source storage media, the image file including a plurality of image streams, comprising:

a control stream including data identifying the image file;

a data stream containing the source data; and

a cluster map stream containing a plurality of records, each record identifying:

a first location corresponding to allocation of a portion of the source data on the source media;

a second location corresponding to a location of the portion of the source data in the data stream;

wherein the portion of source data is compressed and wherein the second location comprises an offset and a size, the offset identifying a starting location in the data stream containing the portion of data and the size identifying a set of contiguous locations within that data stream that contain the compressed portion of data.

5. A method for creating an image file on a destination storage media volume from source data on a source storage media volume; the source data including a plurality of files and control information that identifies a location on the source storage media containing data for each of the plurality of files, comprising:

creating a plurality of image streams including a data stream, and a cluster map stream;

reading the control information and identifying the location of the data for at least one file on the source storage media volume;

reading the data for the at least one file;

writing the data for the at least one file into the data stream;

creating a cluster map record identifying the location of the data on the source storage media volume and a location of the data in the data stream; adding the cluster map record to the cluster map stream; and

writing the plurality of image streams to the destination storage media;

wherein the plurality of files includes at least a first file and a second file, the first file and second file including a set of identical data, comprising:

writing the data for the first file into the data stream;

creating a fast cluster map record for the first file and a second cluster map record for the second file, the first cluster map record identifying the location of the data in the data stream and a first location of the data on the source storage media, the second cluster map record identifying the location of the data in the data stream and a second location of the data on the source storage media volume.

6. A computer-readable medium having computer executable instruction for creating an image file on a destination storage media volume from source data on a source storage media volume; the source data including a plurality of files and control information that identifies a location on the source storage media containing data for each of the plurality of files, comprising:

creating a plurality of image streams including a data stream, and a cluster map stream;

reading the control information and identifying the location of the data for at least one file on the source storage media volume;

reading the data for the at least one file;

writing the data for the at least one file into the data stream;

creating a cluster map record identifying the location of the data on the source storage media volume and a location of the data in the data stream;

adding the cluster map record to the cluster map stream; and

writing the plurality of image streams to the destination storage media;

wherein the plurality of streams further comprises a fix-up stream, further comprising:

modifying the control information and the cluster map record to identify a new location of the data on the source storage media volume.

7. A computer-readable medium having computer executable instruction for creating an image file on a destination storage media volume from source data on a source storage media volume; the source data including a plurality of files and control information that identifies a location on the source storage media containing data for each of the plurality of files, comprising:

creating a plurality of image streams including a data stream, and a cluster map stream;

reading the control information and identifying the location of the data for at least one file on the source storage media volume;

reading the data for the at least one file;

writing the data for the at least one file into the data stream;

creating a cluster map record identifying the location of the data on the source storage media volume and a location of the data in the data stream;

adding the cluster map record to the cluster map stream; and

writing the plurality of image streams to the destination storage media;

wherein the plurality of files includes at least a first file and a second file, the first file and second file including a set of identical data, comprising:

writing the data for the first file into the data stream;

creating a first cluster map record for the first file and a second cluster map record for the second file, the first cluster map record identifying the location of the data in the data stream and a first location of the data on the source storage media, the second cluster map record identifying the location of the data in the data stream and a second location of the data on the source storage media volume.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →