A method for performing backup of file systems, the method comprising: receiving data blocks for a plurality of point in time copies of a source file system (110a, 110b), each point-in-time copy of the source file-system (110a, 110b) obtained by extracting data blocks from the source file-system that changed since a previous point-in-time copy was extracted; storing the data blocks on a storage system (200, 210), wherein a stored point-in-time copy shares one or more data blocks with other point-in-time copies, the stored data blocks comprising one or more versions of a data block, each version corresponding to one or more point-in-time copies; receiving, from a target system, a request to restore information obtained from the source file system (110a, 110b) corresponding to a first point in time; and responsive to receiving the request to restore, creating a virtual restored file system comprising a set of files, the virtual restored file system sharing data blocks with at least another virtual restored file system based on the source file system and corresponding to a second point in time, the creating comprising: linking the set of files to a plurality of the data blocks stored on the storage system (200, 210), the plurality of data blocks comprising at least a first data block associated with a first point-in-time copy and a second data block associated with a second point-in-time copy; and mounting the set of files to the target system to provide the target system with read and write access to the set of files, the mounted set of files comprising the virtual restored file system. receiving data blocks for a plurality of point in time copies of a source file system (110a, 110b), each point-in-time copy of the source file-system (110a, 110b) obtained by extracting data blocks from the source file-system that changed since a previous point-in-time copy was extracted; storing the data blocks on a storage system (200, 210), wherein a stored point-in-time copy shares one or more data blocks with other point-in-time copies, the stored data blocks comprising one or more versions of a data block, each version corresponding to one or more point-in-time copies; receiving, from a target system, a request to restore information obtained from the source file system (110a, 110b) corresponding to a first point in time; and responsive to receiving the request to restore, creating a virtual restored file system comprising a set of files, the virtual restored file system sharing data blocks with at least another virtual restored file system based on the source file system and corresponding to a second point in time, the creating comprising: linking the set of files to a plurality of the data blocks stored on the storage system (200, 210), the plurality of data blocks comprising at least a first data block associated with a first point-in-time copy and a second data block associated with a second point-in-time copy; and mounting the set of files to the target system to provide the target system with read and write access to the set of files, the mounted set of files comprising the virtual restored file system. linking the set of files to a plurality of the data blocks stored on the storage system (200, 210), the plurality of data blocks comprising at least a first data block associated with a first point-in-time copy and a second data block associated with a second point-in-time copy; and mounting the set of files to the target system to provide the target system with read and write access to the set of files, the mounted set of files comprising the virtual restored file system.