Tại sao kích thước trên đĩa quá lớn cho một tệp?


3

Tôi đã đọc một vài bài đăng giải thích rằng khi bạn có nhiều tệp nhỏ, "kích thước trên đĩa" được báo cáo bởi các cửa sổ có thể lớn hơn nhiều so với "kích thước" được báo cáo. Điều này có ý nghĩa tốt với tôi, nhưng từ những gì tôi có thể nói, "kích thước cụm" hoặc "đơn vị phân bổ" thường là 4 kB, điều này (nếu tôi hiểu đúng đối số) có nghĩa là một tệp không nên nhiều hơn 4 kB lớn hơn trong số liệu "kích thước trên đĩa".

Tôi có một hình ảnh tiff được cho là 65 kB về "kích thước", nhưng 1,00 MB khi được đo là "kích thước trên đĩa". Nguyên nhân của sự khác biệt lớn này có thể là gì?

Cập nhật: Bây giờ tôi nhận ra rằng tệp nằm trên ổ NAS chạy Linux. Tôi đã kiểm tra kích thước đơn vị phân bổ và nó chỉ là 4 kB, không phải 1 MB, ví dụ:

bash-3.2# /sbin/blockdev --getbsz /dev/sda1

4096

Tôi cũng đã kiểm tra một tệp có "kích thước" 1 kB và nó hiển thị là 1,00 MB dưới "kích thước trên đĩa".


2
blockdev hiển thị kích thước khối của thiết bị khối chứ không phải hệ thống tập tin. Ví dụ: nếu bạn có ext2 đến ext4, bạn có thể thấy kích thước khối hệ thống tệp bằng cách sử dụng: tune2fs -l /dev/sda1 | grep -i size:. ------ Làm thế nào bạn kiểm tra "kích thước trên đĩa" trên Linux? Bạn có thể dùng: ls --block-size=1 -s filename hoặc là du --block-size=1 filename.
pabouk

Tôi đã thực hiện một số thử nghiệm giữa WinXP và Ubuntu và chứng minh rằng Windows đã hiểu sai. Trong trường hợp của tôi, nó làm tròn kích thước thành bội số 1024 byte thay vì 4096, nhưng các trình điều khiển mạng Windows và Linux khác nhau có thể dễ dàng hiển thị quan sát của bạn. Lệnh Linux du --block-size 1 ... cho thấy bội số dự kiến ​​của 4096, vì vậy đó là lệnh để tin. Nếu bạn sao chép tệp vào thư mục Windows, bạn sẽ không thấy sự khác biệt lớn.
AFH

Câu trả lời:


-2

Dữ liệu (tệp là dữ liệu nhị phân) trên các đĩa được lưu theo cụm. Đó là cách ổ đĩa cứng hoạt động. Trong ví dụ này, cụm có chiều dài 4kb. Có các tùy chọn để định dạng đĩa trong các đơn vị phân bổ nhỏ hơn.

Để được thô, hãy nghĩ về các cụm như các khe 4kb đã sẵn sàng để lưu trữ dữ liệu nhị phân. Nếu một tệp lớn hơn 4kb, nó sẽ mất thêm khe cắm. Nếu nó nhỏ hơn, nó sẽ mất chính xác một khe.

Ví dụ, hãy xem xét một tệp có dung lượng 5kb. Vì nó không phù hợp với một cụm duy nhất, một cụm bổ sung sẽ được sử dụng. Do đó, kích thước đĩa sẽ là 8kb, ngay cả khi tệp thực sự có kích thước 5kb.

Hãy thử tạo một tệp nhỏ (dưới 4kb) và thấy rằng kích thước đĩa của nó chính xác là 4kb.


2
Hmmm ... câu trả lời của bạn nghe giống hệt như những gì tôi đã thấy ở nơi khác và khiến tôi nghĩ rằng kích thước trên đĩa chỉ nên được làm tròn lên đến kích thước 4kB tiếp theo (ví dụ: 65kB có thể trở thành 68kB). Đây là những gì tôi mong đợi. Nhưng những gì tôi đang thấy khá khác biệt: 65kB đang trở thành 1MB. Khi tôi lần đầu tiên đăng bài này, tôi đã nghĩ rằng tôi đang tìm kiếm một tệp trên ổ cứng của mình, nhưng bây giờ tôi nhận ra tệp này thực sự nằm trên ổ NAS chạy Linux ... đây có thể là một gợi ý không?
Jed

Cũng xem xét, rằng hệ thống tệp sẽ yêu cầu lưu dữ liệu bổ sung có chứa bản đồ của các cụm chứa dữ liệu của tệp. Thật không may, mặc dù vậy, tôi không biết liệu dữ liệu này có thể quá dài.
ikromm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.