Hindsight in filesystem design

NT4 (NTFS 1.2) did not store numbers of MFT records. If MFT became fragmented, it appeared that there are millions of file records linked in the tree based on the record numbers. However, it was difficult to establish what number belonged to what record. Algorithms for detecting record numbers were complex, unstable, and requiring a lot of resources. Starting with Windows XP, the MFT entry number is stored inside the entry itself that, as it was planned, had to facilitate data recovery. 

When the volume was updated, for example, when a volume created in NT4 was connected to Windows XP for a first time, all records remained in the old format, without numbers. Records were brought into a new format only when a file, which the records referred to, was changed. So, we were encountering hybrid volumes over the several years thereafter. When at last, users ceased to format disks using NT4, all the records were numbered and data recovery software eventually stopped to support the old NTFS version.

The old ext2 implementation has the similar quirk when a superblock did not contain the number of group to which the superblock belonged to. Thus, the redundancy that designers have planned to have could not be used. The reason is that in case of the failure of the first superblock it was possible to find all the remaining superblocks, but even knowing all superblocks it was impossible to detect the first one. Therefore there was no chance to know where the files were. In the newer version of ext2 a superblock contains the numbers of groups that simplifies data recovery significantly.


Popular posts from this blog

Folder tree structure vs. file data


Weird illustration