Przeczytałem kilka postów wyjaśniających, że gdy masz wiele małych plików, „rozmiar na dysku” zgłaszany przez system Windows może być znacznie większy niż zgłaszany „rozmiar”. Ma to dla mnie sens, ale z tego, co mogę powiedzieć, „rozmiar klastra” lub „jednostka alokacji” wynosi zwykle 4 kB, co (jeśli dobrze rozumiem argument) oznacza, że pojedynczy plik nie powinien być większy niż 4 kB większy w metodzie „rozmiar na dysku”.
Mam obraz tiff, który ma podobno 65 kB w „rozmiarze”, ale 1,00 MB mierzony jako „rozmiar na dysku”. Co może być przyczyną tej dużej rozbieżności?
Aktualizacja: Teraz zdaję sobie sprawę, że plik znajduje się na dysku NAS z systemem Linux. Sprawdziłem rozmiar jednostki alokacji i to tylko 4 kB, a nie 1 MB, na przykład:
bash-3.2# /sbin/blockdev --getbsz /dev/sda1
4096
Sprawdziłem również plik, który ma „rozmiar” 1 kB i pokazuje się jako 1,00 MB w „rozmiarze na dysku”.
blockdev
pokazuje rozmiar bloku urządzenia blokowego, a nie systemu plików. Na przykład, jeśli masz ext2 na ext4 można zobaczyć rozmiar bloku systemu plików za pomocą:tune2fs -l /dev/sda1 | grep -i size:
. ------ Jak sprawdziłeś „rozmiar na dysku” w systemie Linux? Możesz użyć:ls --block-size=1 -s filename
lubdu --block-size=1 filename
.du --block-size 1 ...
pokazało oczekiwaną wielokrotność 4096, więc jest to polecenie uwierzyć. Jeśli skopiujesz plik do katalogu Windows, nie powinieneś widzieć ogromnej rozbieżności.Odpowiedzi:
Dane (pliki są danymi binarnymi) na dyskach są zapisywane w klastrach. Tak działają dyski twarde. W tym przykładzie klastry mają długość 4 kb. Istnieją opcje formatowania dysków w mniejszych jednostkach alokacji.
Mówiąc prościej, pomyśl o klastrach jako gniazdach 4kb, które są gotowe do przechowywania danych binarnych. Jeśli plik jest większy niż 4 KB, zajmie dodatkowe miejsca. Jeśli jest mniejszy, zajmie dokładnie jedno miejsce.
Weźmy na przykład plik o rozmiarze 5 KB. Ponieważ nie zmieści się w jednym klastrze, zostanie użyty dodatkowy. Zatem rozmiar dysku wynosiłby 8 KB, nawet jeśli plik ma rozmiar 5 KB.
Spróbuj utworzyć mały plik (mniej niż 4 KB) i przekonaj się, że jego rozmiar dysku to dokładnie 4 KB.
źródło