The invention discloses a method for loading data from a disk. The method
may comprise comparing a current sequence of disk requests to data
indicative of a previous disk request sequence. Responsive to detecting a
match between the current disk sequence and the previous disk I/O
sequence, a copy of data blocks accessed during the current disk sequence
may be stored in a contiguous portion of the disk. Responsive to a
subsequent request for data in the disk sequence, the request may be
mapped to and serviced from the sequential portion of the disk: The
continuous portion of the disk to which the data is copied may be on a
different partition of the disk than a disk partition on which the
original data is stored. A sequence of disk accesses may be recorded.
Responsive to retrieving data from the continuous portion, additional
data from the contiguous portion of the disk may be prefetched and may be
cached in a buffer. Responsive to an I/O request, it may be determined
whether the requested data resides in the buffer, and if so, the data
from the buffer may be retrieved without accessing the hard disk. In an
exemplary embodiment, the disk sequence may represent a boot sequence of
the system.