We fragmencie prezentacji tyczącym się MFT zostało wspomniane, że istnieją atrybuty rezydentne i nierezydentne plików. Atrybuty rezydentne są zapamiętywane w domyślnie jednokilobajtowym wpisie w MFT, dzięki czemu dostęp do nich wymaga tylko jednego odczytu dyskowego (jest to bardzo istotną optymalizacją!). Pewne atrybuty muszą być rezydentne (na przykład Standard Information
, Filename
czy pewna część Index Root
dla katalogów). Istnieją jednak pliki, których zawartość nie mieści się w jednym wpisie w MFT, a także katalogi, które zawierają w sobie bardzo dużo plików i podkatalogów - w takich przypadkach potrzebne okazują się atrybuty nierezydentne, czyli niemieszczące się w MFT. W nagłówku każdego atrybutu jest zapisane, czy jest to atrybut rezydentny, czy nie (w przypadku tych pierwszych jest tam także informacja, jaki jest offset między nagłówkiem a wartością atrybutu i jaka jest długość tego atrybutu):
Wartości atrybutów nierezydentnych są przechowywane na dysku, a w MFT znajduje się informacja, gdzie na tym dysku są położone. Kiedy wartość atrybutu staje się większa pod względem rozmiaru, system operacyjny doalokowuje stosowne miejsce na dysku w tak zwanych rzutach (ang. runs) czy jak kto woli ekstentach (ang. extents) - czyli partiach kolejnych klasterów dyskowych (system operacyjny robi to w sposób niewidoczny dla użytkownika). Atrybutami nierezydentnymi mogą być tylko atrybuty o zmiennej wielkości; najczęstsze przykłady to atrybut pliku Data
:
czy atrybuty katalogu Index root+Index allocation+Bitmap
(ekstenty w tym drugim przypadku nazywamy buforami indeksowymi):
Wreszcie jeżeli w jednym wpisie w MFT nie mieszczą się wszystkie atrybuty danego pliku, to wykorzystywany jest atrybut Attribute list
, a niemieszczące się atrybuty są pamiętane w kolejnych wpisach w MFT - Attribute list pamięta trójki: (nazwa atrybutu, kod typu atrybutu, adres rekordu MFT, gdzie się ten atrybut znajduje).