ലിനക്സ് ഫയല് സിസ്റ്റങ്ങള് #2
on 29 മാർച്ച്, 2019ഒരു ഫയല് സിസ്റ്റത്തിന് ഉള്ക്കൊള്ളാന് കഴിയുന്ന പരമാവധി ഫയലുകളുടെ എണ്ണത്തിന് പരിമിതി ഉണ്ട്. ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങളില് അത് പിന്തുണക്കുന്ന ഓരോ ഫയല് സിസ്റ്റത്തിനും ഒരു ഡ്രൈവര്
(നിയന്ത്രണ പ്രോഗ്രാം) ഉണ്ടാകും. ആ ഫയല് സിസ്റ്റം സജ്ജീകരിച്ചിരിക്കുന്ന ഡിസ്കില് നിന്ന് ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റം ആവശ്യപ്പെടുന്നതിനനുസരിച്ച് വിവരങ്ങള് വായിച്ചുകൊടുക്കുന്നതും വിവരങ്ങള് എഴുതിച്ചേര്ക്കുന്നതും ഫയലുകള് ഉണ്ടാക്കുന്നതും ഒക്കെ ഈ പ്രൊഗ്രാമാണ്. ഓരോ ഫയല് സിസ്റ്റത്തിലും ഇക്കാര്യങ്ങള് വ്യത്യസ്ത രീതിയിലായിരിക്കും ചെയ്യേണ്ടത്. എന്നാല് നമ്മള് ഉപയോഗിക്കുന്ന വിവിധ പ്രോഗ്രാമുകള് അവക്കാവശ്യമായ ഫയലുകള് സൃഷ്ടിക്കാനും വായിക്കാനും എഴുതാനും ഒക്കെ ഉപയോഗിക്കുന്ന സംവിധാനങ്ങള് പൊതുവായുള്ളതും അവ ഉപയോഗിക്കുന്ന ഫയലുകള് അടങ്ങിയ ഡിസ്കില് സജ്ജീകരിക്കപ്പെട്ടിരിക്കുന്ന ഫയല് സിസ്റ്റങ്ങളുമായി ബന്ധമില്ലാത്തവയും ആണ്. യൂണിക്സ്/ലിനക്സ് സിസ്റ്റങ്ങളില് ഒരു ഫയല് ഉണ്ടാക്കാനോ തുറക്കാനോ ആയൊ open
എന്ന സിസ്റ്റംകോള് (ഇവയെപ്പറ്റി വഴിയേ) ഉപയോഗിക്കുന്നു. ഫയല് ഉണ്ടാക്കേണ്ടത് ഏത് ഫയല് സിസ്റ്റത്തിലായാലും ഇതുതന്നെ ആണ് ഉപയോഗിക്കുക. ഓരോ ഫയല് സിസ്റ്റം ഡ്രൈവറിലും ആ ഫയല് സിസ്റ്റത്തില് ഫയലുകള് ഉണ്ടാക്കാനുള്ള ഫങ്ങ്ഷന് ഉണ്ടാകും. ഓപ്പണ് സിസ്റ്റം കോള് ഉപയോഗിക്കുമ്പോള് കൊടുക്കുന്ന പാത്തില് നിന്നും കെര്ണല് അതുണ്ടാക്കേണ്ട ഡിസ്ക് കണ്ടുപിടിക്കും. ആ ഡിസ്കിലെ സൂപ്പര്ബ്ലോക്കില് നിന്നും അതില് സജ്ജീകരിച്ചിരിക്കുന്ന ഫയല് സിസ്റ്റം കണ്ടെത്തുകയും ആ ഫയല് സിസ്റ്റം ഡ്രൈവറെ ഫയല് ഉണ്ടാക്കാന് ചുമതലപ്പെടുത്തുകയും ചെയ്യും. ലിനക്സ് കെര്ണലിലെ വിഎഫ്എസ്
(വിര്ച്വല് ഫയല് സിസ്റ്റം) എന്ന ഭാഗം ആണ് ഇക്കാര്യങ്ങള് ചെയ്യുന്നത്.
ഒരു ഫയല് സൃഷ്ടിക്കപ്പെടുന്നത്
എല്ലാ ഫയലുകള്ക്കും അതിന്റെ പേരുള്പ്പെടുന്ന പാത്ത് ഉണ്ടാകുമല്ലോ. ആ പാത്തില് നിന്നും ആദ്യം ഡിസ്ക് കണ്ടുപിടിക്കുന്നു. പിന്നെ ആ ഡിസ്കിന്റെ സൂപ്പര്ബ്ലോക്കില് നിന്നും ആ സമയത്ത് ഉപയോഗിക്കപ്പെടാത്ത ഒരു ഐനോഡ് ആ ഫയലിനായി നീക്കിവയ്ക്കുന്നു. ആ ഐനോഡിനെ ഉപയോഗത്തിലില്ലാത്ത ഐനോഡുകളുടെ പട്ടികയില് നിന്ന് നീക്കംചെയ്യുന്നു. ഐനോഡില് ഫയലിന്റെ പേര്, അതുള്പ്പെടുന്ന ഡയറക്റ്ററി തുടങ്ങിയ വിവരങ്ങള് ചേര്ക്കുന്നു. പിന്നെ സൂപ്പര്ബ്ലോക്കില് നിന്നും ഉപയോഗത്തിലല്ലാത്ത ഡിസ്ക് ബ്ലോക്കുകള് കണ്ടെത്തി ആ ഫയലിലെ വിവരങ്ങള് അവിടെ എഴുതിച്ചേര്ക്കുന്നു. എന്നിട്ട് ആ ബ്ലോക്കുകളെ കുറിച്ചുള്ള വിവരങ്ങള് ഐനോഡില് രേഖപ്പെടുത്തുന്നു. ആ ബ്ലോക്കുകളെ ഉപയോഗത്തിലില്ലാത്ത ബ്ലോക്കുകളുടെ പട്ടികയില് നിന്ന് നീക്കം ചെയ്യുന്നു. ആ ഫയല് ചേര്ക്കപ്പെടുന്നത് ഏത് ഡയറക്റ്ററിയിലേക്കാണോ ആ ഡയറക്റ്ററിയില് ഫയലിനെക്കുറിച്ചുള്ള വിവരങ്ങള് ചേര്ക്കുന്നു. ഡിഎന്ട്രി എന്നാണ് ഈ വിവരങ്ങളെ വിളിക്കുന്നത്. ഡയറക്റ്ററികളും ഫയലുകള് തന്നെയാണ്. എന്നാല് അവ ഉള്ക്കൊള്ളുന്നത് സാധാരണ ഫയലുകളിലേതുപോലെയുള്ള വിവരങ്ങള് അല്ല. അതിലുള്ള ഫയലുകളേയും ഡയറക്റ്ററികളേയും കുറിച്ചുള്ള വിവരങ്ങളാണ്. ഐനോഡിന്റെ വലിപ്പം പരിമിതമാണ്. വലിയ ഫയലുകള് ശേഖരിക്കാന് ഡിസ്കിലെ ഒന്നിലധികം ബ്ലോക്കുകള് ആവശ്യമായി വന്നേക്കാം. ഈ ബ്ലോക്കുകളുടെ എല്ലാം വിവരങ്ങള് ഐനോഡില് തന്നെ ഉള്പ്പെടുത്താന് കഴിയാതെ വന്നേക്കാം. ഇത്തരം സാഹചര്യങ്ങളില് ഈ ബ്ലോക്കുകളെ കുറിച്ചുള്ള വിവരങ്ങള് ഐനോഡിലല്ലാതെ മറ്റൊരു ബ്ലോക്കില് രേഖപ്പെടുത്തുകയും ആ ബ്ലോക്കിനെക്കുറിച്ചുള്ള വിവരം ഐനോഡില് ചേര്ക്കുകയും ചെയ്യും.ഇതിനെ ഇന്ഡയറക്റ്റ് ബ്ലോക്കുകള് എന്ന് വിളിക്കുന്നു. അതുപോലെ ഡബിള് ഇന്ഡയറക്റ്റ് ബ്ലോക്കുകളും ഉണ്ടാകാം. ഈ ചിത്രം നോക്കൂ,
48കെബി വരെ വലിപ്പമുള്ള ഫയലുകള്ക്ക് ഡയറക്റ്റ് ബ്ലോക്കുകള് മതിയാകും. 4എംബി വരെയുള്ള ഫയലുകള്ക്ക് ഡയറക്റ്റ് ബ്ലോക്കുകളും ഇന്ഡയറക്റ്റ് ബ്ലോക്കുകളും ആവശ്യമാണ്. അതിലും വലിയ ഫയലുകള്ക്ക് ഡബിള് ഇന്ഡയറക്റ്റ് ബ്ലോക്കുകള് വേണം.
ഒരു ഫയല് നീക്കംചെയ്യപ്പെടുന്നത്
ആദ്യം ആ ഫയലിന്റെ ഐനോഡ് കണ്ടെത്തുന്നു. പാത്ത് ഉപയോഗിച്ച് തന്നെയാണിത് ചെയ്യുന്നത്. പാത്തില് നിന്നും ആ ഫയലിനെ ഉള്ക്കൊള്ളുന്ന ഡയറക്റ്ററി ആദ്യം കണ്ടെത്തി ആ ഡയറക്റ്ററിയിലെ ഡിഎന്ട്രിയില് നിന്നും ഫയലിന്റെ ഐനോഡ് കണ്ടത്തുകയാണ് ചെയ്യുന്നത്. ഫയല് തുറക്കാനും ആ ഫയലിന്റെ ഐനോഡ് കണ്ടെത്തണം. ഇതേ വഴിയാണ് അവിടെയും ഉപയോഗിക്കുന്നത്. സൂപ്പര്ബ്ലോക്കില് നിന്നും ഐനോഡുകളുടെ ലിസ്റ്റ് കണ്ടെത്താനും അതില് നിന്നും ഒരു ഫയലിന്റെ ഐനോഡില് എത്താനും സാധിക്കും. എന്നാല് അതില് പലവിധ പ്രശ്നങ്ങളും ഉണ്ട്. രണ്ട് വിവിധ ഡയറക്റ്ററിയില് ഒരേ പേരിലുള്ള ഫയലുകള് ഉണ്ടാകാം. ഓരോ ഫയലിന്റെയും ഐനോഡുകള് പരിശോധിച്ച് അത് നമ്മള് ഉദ്ദേശിക്കുന്ന ഫയല് ആണോ എന്ന് മനസ്സിലാക്കുക ഒരുപാട് സമയം എടുക്കുന്ന പ്രക്രിയയാണ്. ടെലിഫോണ് ഡയറക്റ്ററിയില് ആളുകളുടെ പേര് അക്ഷരമാലാ ക്രമത്തില് കൊടുക്കുന്നത് കണ്ടെത്താനുള്ള എളുപ്പത്തിനാണല്ലോ. ഒരാളുടെ പേര് തുടങ്ങുന്ന അക്ഷരത്തിന്റെ വിഭാഗത്തില് മാത്രമേ അയാളുടെ നമ്പര് അന്വേഷിക്കേണ്ടതുള്ളു. അതുപോലെ തന്നെ ഒരു ഫയല് ഏത് ഡയറക്റ്ററിയില് ആണെന്ന് അതിന്റെ പാത്തില് നിന്നും മനസ്സിലാക്കാന് കഴിയുമെന്നിരിക്കെ ആ ഡയറക്റ്ററിയില് ഉള്ള ഫയലുകളുടെ പട്ടികയില് മാത്രം ആ ഫയലിനെ തെരയുന്ന രീതിക്ക് പകരം ഡിസ്ക് മുഴുവന് തെരയുന്നത് അനാവശ്യമാണല്ലോ. ആ ഡയറക്റ്ററിയില് നിന്നും ഫയലിന്റെ വിവരങ്ങള് നീക്കം ചെയ്യുന്നു. ഫയലിന്റെ ഐനോഡില് നിന്നും ആ ഫയലിലെ വിവരങ്ങള് രേഖപ്പെടുത്തിയിരിക്കുന്ന ബ്ലോക്കുകള് കണ്ടെത്തി അവയെ ഉപയോഗത്തിലില്ലാത്ത ബ്ലോക്കുകളുടെ പട്ടികയില് ചേര്ക്കുന്നു. സാധാരണ നീക്കംചെയ്യലില് ആ ബ്ലോക്കുകളിലെ വിവരങ്ങള് നീക്കം ചെയ്യപ്പെടുകയില്ല. ഐനോഡിനെ ഉപയോഗത്തിലില്ലാത്ത ഐനോഡുകളുടെ പട്ടികയില് പെടുത്തുന്നതോടെ നീക്കം ചെയ്യല് പൂര്ണ്ണമായി. ശ്രദ്ധിക്കുക, ഫയലിലെ വിവരങ്ങള് ഇവിടെ നശിപ്പിക്കപ്പെടുന്നില്ല. ഐനോഡില് നിന്നും അവയുടെ പേര് പോലും നീക്കം ചെയ്യുന്നില്ല. ഒരു ഫയല് നീക്കംചെയ്യുന്നതിന് വളരെക്കുറച്ച് സമയം മാത്രമെടുക്കുന്നതിന്റെ കാര്യവും റിക്കവറി സോഫ്റ്റുവെയറുകളുടെ ഏകദേശ പ്രവര്ത്തനരീതിയിയും ഇതില്നിന്നും മനസ്സിലായിരിക്കുമല്ലോ.
ഒരു ഫയലിനെ അതേ പാര്ട്ടീഷ്യനിലുള്ള വേറൊരു ഡയറക്റ്ററിയിലേക്ക് നീക്കുമ്പോള് വലരെക്കുറച്ച് സമയം മാത്രമേ അതിനു വേണ്ടിവരുന്നുള്ളൂ. ആദ്യമുണ്ടായിരുന്ന ഡയറക്റ്ററിയില് നിന്നും ആ ഫയലിന്റെ വിവരങ്ങള് പുതിയ ഡയറക്റ്ററിയിലേക്ക് നീക്കുകയും ആദ്യത്തേതില് നിന്നും ഈ വിവരങ്ങള് നീക്കം ചെയ്യുകയും മാത്രമാണ് ഇവിടെ സംഭവിക്കുന്നത്. എന്നാല് വേറൊരു പാര്ട്ടീഷ്യനിലേക്കാണ് ഫയല് നീക്കുന്നതെങ്കില് ആ പാര്ട്ടീഷ്യനില് ഉള്ള ബ്ലോക്കുകളിലേക്ക് ഫയലിലെ വിവരങ്ങള് പകര്ത്തേണ്ടതുണ്ട്. ഇതിന് കൂടുതല് സമയം ആവശ്യമാണ്.
ഫ്രാഗ്മെന്റേഷന്
ഒരു ഫയല് സിസ്റ്റത്തില് ഉള്ള ഫയലിലെ വിവരങ്ങളുടെ അളവ് കൂടുതലാണെങ്കില് അവ ശേഖരിക്കാന് ഒരു ബ്ലോക്ക് മതിയാകില്ല. ഒരു ഫയല് ഉപയോഗിക്കുന്ന ഒന്നില് കൂടുതല് ഉള്ള ബ്ലോക്കുകള് തുടര്ച്ചയായ ബ്ലോക്കുകള് ആവണമെന്നില്ല. തുടര്ച്ചയായ ബ്ലോക്കുകളില് അല്ലാതെ ഒരുഫയല് ശേഖരിക്കപ്പെടുന്ന അവസ്ഥയാണ് ഫ്രാഗ്മെന്റേഷന്. ഡിസ്കില് തുടര്ച്ചയായ ഫ്രീ ബ്ലോക്കുകള് ഇല്ലാത്ത അവസ്ഥ സാധാരണമാണ്. പ്രത്യേകിച്ച് ചെറിയ സംഭരണ ശേഷിയുള്ളവയില്. ഡിസ്കില് 10എംബി വലിപ്പമുള്ള ഒരു ഫയല് ഉണ്ടായിരുന്നു എന്നിരിക്കട്ടെ. ആ ഫയല് നീക്കം ചെയ്യപ്പെട്ടാല് ആ ബ്ലോക്കുകള് ഫ്രീ ആകും. പിന്നീട് 5എംബി വലിപ്പമുള്ള ഒരു ഫയല് വന്നാല് ഫ്രീ ആയ പത്ത് എംബിയില് ആദ്യത്തെ 5 എംബി സ്ഥലത്ത് ആ ഫയല് ചേര്ക്കപ്പെടുന്നു. പിന്നീട് മറ്റൊരു 10എംബി വലിപ്പമുള്ള ഫയല് വരികയും തുടര്ച്ചയായി 10എംബി വലിപ്പത്തില് ഫ്രീ ബ്ലോക്കുകള് ഇല്ലാതെ വരികയും ചെയ്താല് ആദ്യം ബാക്കി വന്ന 5എംബിയിലും വേറെ എവിടെയെങ്കിലുമായി വരുന്ന 5എംബിയിലും ആയി ആ ഫയല് ചേര്ക്കേണ്ടിവരും. അപ്പോള് ഫ്രാഗ്മെന്റേഷന് ഉണ്ടാകുന്നു. രൂപകല്പ്പനയിലെ പ്രത്യേകതകളാല് FAT, NTFS പോലെയുള്ള ഫയല് സിസ്റ്റങ്ങള് കൂടുതല് ഫ്രാഗ്മെന്റേഷന് പ്രശ്നങ്ങള് കാണിക്കാറുണ്ട്. ഇങ്ങനെ ശേഖരിക്കപ്പെട്ട ഫയലുകള് വായിക്കൂമ്പോള് ഡിസ്കിലെ ഹെഡ്ഡിന് തുടര്ച്ചയില്ലാത്ത ചലനങ്ങല് നടത്തേണ്ടിവരികയും ഇത് ഫയലുകള് വായിക്കാന് കൂടുതല് സമയമെടുക്കുന്നതിന് കാരണമാവുകയും ചെയ്യും. കഴിയുന്നിടത്തോളം ഒരു ഫയലിലെ വിവരങ്ങള് തുടര്ച്ചയായ ബ്ലോക്കുകളിലേക്ക് മാറ്റുന്ന പ്രവര്ത്തിയാണ് ഡീഫ്രാഗ്മെന്റേഷന്. ഇത് ചെയ്യാനുള്ള സോഫ്റ്റ്വെയറുകള് ലഭ്യമാണ്. ഇടക്കൊക്കെ ചെയ്യുന്നത് നല്ലതുമാണ്. ലിനക്സിലെ EXT3 ഫയല് സിസ്റ്റങ്ങളില് ഫ്രാഗ്മെന്റേഷന് വളരെ കുറവാണ്.
റിക്കവറി
ഡിസ്കില് നിന്ന് നീക്കം ചെയ്യപ്പെട്ട ഫയലുകളെ തിരിച്ചെടുക്കാനുള്ള പ്രവര്ത്തികളെ ആണ് ഫയല് റിക്കവറി എന്നതുകൊണ്ട് അര്ഥമാക്കുന്നത്. ഇത് ചെയ്യുന്ന പ്രോഗ്രാമുകള് മിക്കവാരറും ഉപയോഗത്തില്ലില്ലാത്ത ബ്ലോക്കുകളുടെ ലിസ്റ്റ് കണ്ടൂപിടിച്ച് ആ ബ്ലോക്കുകള് പരിശോധിക്കുകയാണ് ചെയ്യുന്നത്. ജെപിഇജി പോലെയുള്ള ഫയലുകള്ക്കൊക്കെ, സാധാരണ ടെക്സ്റ്റ് ഫയലുകള് അല്ലാത്തവക്കൊക്കെ ഒരു മാജിക് നമ്പര് ഉണ്ടാകും. ഓരോ തരം ഫയലുകള്ക്കും ഒരു മാജിക്ക് നമ്പര് ഉണ്ട്. ഒരു ഫയല് ഏതുതരമാണ് എന്ന് കണ്ടുപിടിക്കാന് ആ ഫയലിന്റെ പേരിലുള്ള എക്സ്റ്റന്ഷന് മാത്രമല്ല ഉപയോഗിക്കുന്നത്. ഈ മാജിക് നമ്പര് കൂടി ഉപയോഗിക്കും. ഈ മാജിക് നമ്പര് അടങ്ങുന്ന ആ ഫയലിലെ വിവരങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങള് (മെറ്റാഡാറ്റ) ഉള്പ്പെടുന്ന ഒരു ഭാഗം മിക്കവാറും ഫയലുകളില് കാണും. ഈ മെറ്റാ ഡാറ്റ കണ്ടുപിടിച്ചാല് ആ ഫയലിനെക്കുറിച്ചുള്ള ചില വിവരങ്ങള് ലഭിക്കും. ചിലപ്പോള് ആ ഫയലിന്റെ വലിപ്പം അടക്കം. അപ്പോള് ഒരു ഫ്രീ ബ്ലോക്കില് ഒരു ഫയലിന്റെ മെറ്റാഡാറ്റ കണ്ടെത്തിയാല് അതിന്റെ വലിപ്പം മനസ്സിലാക്കി അത്രയും വിവരങ്ങള് വേറൊരു ഫയലിലേക്ക് നീക്കുന്നത് വഴി ആ ഫയലിനെ തിരികെ കിട്ടും. പക്ഷേ ആ ഫയല് ഫ്രാഗ്മെന്റഡ് ആയിരുന്നെങ്കില് ഈ രീതി വലിയ ഗുണം ചെയ്യില്ല. മാത്രമല്ല ആ ഫയല് ഉള്പ്പെട്ടിരുന്ന ഫോള്ഡര് കണ്ടെത്താന് ഇങ്ങനെ സാധിക്കുകയില്ല. ആ ഫയലിന്റെ പേരും മിക്കവാറും നഷ്ടമാകും. റിക്കവറി ചെയ്യുമ്പോള് കൂടുതലും ആ ഫയലുകള്ക്ക് മുന്പുണ്ടായിരുന്ന പേരുകളോ അവയെ ഉള്ക്കൊണ്ടിരുന്ന ഡയറക്റ്ററിയോ കണ്ടത്താന് സാധിക്കില്ല. ലിനക്സിലെ ഫയല് സിസ്റ്റങ്ങള് മിക്കതും ഫയല് നീക്കം ചെയ്യുമ്പോള് ഐനോഡിലെ വിവരങ്ങള് നശിപ്പിച്ചുകളയുന്നു. അതുകൊണ്ടുതന്നെ റിക്കവറി വിഷമമാണ്. ഫയലുകളുടെ പേരുകള് കണ്ടെത്തല് മിക്കവാറും അസാധ്യവും.
ഫയലുകള് നഷ്ടമായാല് റിക്കവറി ആലോചിക്കുന്നെങ്കില് ആ പാര്ട്ടീഷ്യനിലേക്ക് മറ്റു ഫയലുകള് കോപ്പി ചെയ്യാതിരിക്കുക. പഴയ ഫയല് ഉണ്ടായിരുന്ന ബ്ലോക്കുകള് അപ്പോള് ഉപയോഗത്തിലില്ലാത്തവയുടെ ലിസ്റ്റിലായിരിക്കും. പുതിയ ഫയലുകള്ക്കായി ആ സ്ഥലം ഉപയോഗിച്ചാല് പഴയ ഡാറ്റ നഷ്ടമാകാം. ഡീഫ്രാഗ്മെന്റ് ചെയ്താലും സമാനമായ ഫലം ഉണ്ടാകും. ഫയലുകള് റിക്കവര് ചെയ്യാന് സാധിക്കാത്തതുപോലെ നീക്കം ചെയ്യാന് ഫയല് ഷ്രെഡ്ഡറുകള് ഉപയോഗിക്കുക. ഇവ ഫയലുകള് ഉണ്ടായിരുന്ന ബ്ലോക്കില് തുടര്ച്ചയായി 0 എഴുതുകയാണ് ചെയ്യുന്നത്. പക്ഷേ ഒരു തവണയൊന്നും ഇങ്ങനെ ചെയ്യുന്നതില് വലിയ കാര്യമില്ല എന്നും ഷ്രെഡ്ഡറുകള് ഉപയോഗിക്കുമ്പോള് പാസുകളുടെ ഒന്നില് കൂടുതല് വേണം എന്നും അഭിപ്രായാമുണ്ട്. ഒരേ സ്ഥലത്ത് എത്ര തവണ പൂജ്യം എഴുതുന്നു എന്നതിന്റെ എണ്ണമാണ് ഇത്. എന്നിരുന്നാലും പുതിയ മെമ്മറി കാര്ഡൂകളിലും ഡിസ്കുകളിലും ഒക്കെ ഒരേ ഡാറ്റ ഒന്നില് കൂടുതല് തവണ ഒരേ സ്ഥലത്ത് എഴുതപ്പെടുന്നത് ഹാര്ഡ് വെയറില് തന്നെ തടയപ്പെട്ടിരിക്കും. എന്നാല് പ്രോഗ്രാമുകള്ക്ക് ഈ വിവരം മനസ്സിലാകുകയുമില്ല. ഡിസ്കിന്റെ ഉപയോഗകാലം വര്ദ്ധിപ്പിക്കുക എന്ന ഉദ്ദേശ്യത്തോടെയാണ് ഇത് ചെയ്തിരിക്കുന്നത്. എല്ലാ ഷ്രെഡ്ഡറുകളും 0 തന്നെ എഴുതണമെന്നില്ല. അവിടെ ഒന്നോ അല്ലെങ്കില് അപ്പോള് ഉണ്ടാക്കിയെടുക്കുന്ന, മുന്കൂട്ടി പ്രവചിക്കാന് സാധിക്കാത്ത ഡാറ്റയോ (റാന്ഡം ഡാറ്റ) എഴുതുന്ന രീതികളും ഉണ്ട്. അപ്പോ മെമ്മറി കാര്ഡുകള് ഒക്കെ കളയുമ്പോള് ദുരുപയോഗം ചെയ്യപ്പെടാന് സാധ്യതയുള്ള എന്തെങ്കിലും അവയില് ഒരിക്കലെങ്കിലും രേഖപ്പെടുത്തിയിരുന്നെങ്കില്, തീയില് തന്നെ കളയാന് ശ്രദ്ധിക്കുന്നത് നല്ലതായിരിക്കും.