Miks on suuruse ja suuruse vahel kettas suur erinevus?
Enamasti on "Size" ja "Size on disk" väärtused kausta või faili suuruse kontrollimisel väga sobivad, kuid mis siis, kui nende vahel on suur erinevus? Tänane SuperUser Q & A postitus vaatab vastuse sellele segasele probleemile.
Tänane küsimuste ja vastuste seanss saabub meiega kohtades, kus on SuperUser-Stack Exchange'i alajaotis, kogukondlikult juhitav Q&A veebisaitide rühmitus.
Küsimus
SuperUser-lugeja thelastblack tahab teada, miks on suur erinevus telefoni ja SD-kaardi SD-mälukaardi suuruse ja suuruse vahel:
Nagu allpool näete, on selle kausta väljade "Suurus" ja "Suurus kettal" vahel nii palju erinevusi. Miks nii?
Ma tean, et Windowsis asuvate jaotusüksuste tõttu peaks "Size on disk" olema veidi suurem kui "Size", kuid miks on nii palju erinevust? Kas see võib olla suurte failide arvu tõttu?
BTW, see kaust on minu Android-telefoni SD-kaardil. Selle sees salvestab minu kaardirakendus oma puhverdatud kaardid ja rakendus saab oma kaardid Google Mapsi.
Ekraani vaadates on kindlasti suur erinevus "Suuruse" ja "Ketta vahel" vahel, nii et see, mis siin juhtus, juhtus.?
Vastus
SuperUser'i toetaja Bobil on meile vastus:
Eeldan, et kasutate siin FAT / FAT32-failisüsteemi, sest te mainite seda SD-kaarti. NTFS ja exFAT käituvad sarnaselt jaotusühikute suhtes. Teised failisüsteemid võivad olla erinevad, kuid Windowsis ei toetata neid ikkagi.
Kui teil on palju väikesi faile, on see kindlasti võimalik. Mõtle sellele:
- 50 000 faili
- 32 KB klastri suurus (jaotusühikud), mis on maksimaalne FAT32 jaoks
Ok, nüüd minimaalne võetud ruum on 50 000 * 32 000 = 1,6 GB (kasutades matemaatika lihtsustamiseks SI eesliiteid, mitte binaarseid). Ruum, mille iga fail võtab kettale, on alati jaotusühiku suurus - ja siin me eeldame, et iga fail on tegelikult piisavalt väike, et mahutada ühte üksusesse, mõned (raisatud) ruumid jäävad üle.
Kui iga fail on keskmiselt 2 KB, siis saaksid kokku umbes 100 MB - aga ka raiskad keskmiselt 15 korda (30 KB / fail) jaotusühiku suuruse tõttu.
Sügav selgitus
Miks see juhtub? Noh, FAT32 failisüsteem peab jälgima, kus iga fail on salvestatud. Kui see peaks looma iga baiti, kasvaks tabel (nagu aadressiraamat) sama kiirusega kui andmed - ja raiskaks palju ruumi. Niisiis, mida nad teevad, kasutatakse „jaotusühikuid”, mida tuntakse ka kui „klastri suurust”. Maht jaguneb nendeks jaotusühikuteks ja failisüsteemi osas ei saa neid jagada - need on kõige väiksemad plokid, mida ta saab käsitleda. Sarnaselt nagu teil on ka maja number, kuid teie postimüüja ei hooli, kui palju magamistubasid teil on või kes elab neis.
Mis siis juhtub, kui teil on väga väike fail? Noh, failisüsteem ei hooli sellest, kas fail on 0 KB, 2 KB või isegi 15 KB, see annab talle kõige vähem ruumi - ülaltoodud näites on see 32 KB. Teie fail kasutab ainult väikest kogust seda ruumi ja ülejäänud on põhimõtteliselt raisatud, kuid kuulub siiski failile - nagu magamistuba, mida te ei jäta.
Miks on eri jaotusühikute suurused? Noh, see muutub kompromissiks suuremate tabelite (aadressiraamat, nt ütleb, et John omab maja 123 Fake Street, 124 Fake Street, 666 Saatan Lane jne) vahel, või iga üksuse (maja) rohkem raisatud ruumi . Kui teil on suuremad failid, on mõttekam kasutada suuremaid eraldusühikuid, sest fail ei saa uut üksust (maja), kuni kõik teised on täidetud. Kui teil on palju väikesi faile, siis on teil ikkagi suur tabel (aadressiraamat), nii et see võib anda neile ka väikesi üksusi (maju).
Suured jaotusüksused reeglina raiskavad palju ruumi, kui teil on palju väikesi faile. Tavaliselt ei ole üldiseks kasutamiseks enam kui 4 KB kõrgem.
Killustatus?
Mis puutub killustatusse, ei tohiks killustumine sellisel viisil ruumi raisata. Suured failid võivad olla killustatud, s.o jagatud mitmeks jaotusühikuks, kuid iga üksus tuleb täita enne järgmise käivitamist. Defragmenteerimine võib eraldamise tabelites salvestada vähe ruumi, kuid see pole teie konkreetne probleem.
Võimalikud lahendused
Nagu gladiator2345 soovitas, on teie ainus reaalne võimalus selles punktis elada koos sellega või vormindada väiksemaid jaotusühikuid.
Teie kaart võib olla vormindatud FAT16-s, millel on väiksemad tabeli suuruse piirid ja seetõttu on vaja palju suuremaid eraldusühikuid, et tegeleda suurema mahuga (ülempiiriga 2 GB 32 KB eraldusühikuga). Allikas kohtleb Braiam. Kui see nii on, peaksite igal juhul saama FAT32-vormingus turvaliselt vormindada.
Kas teil on midagi lisada selgitusele? Heli on kommentaarides välja lülitatud. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Vaadake siin täielikku arutelu lõiku.