ext4: Làm thế nào để chiếm không gian hệ thống tập tin?


16

Gần đây tôi đã định dạng ổ đĩa 1,5 TB với ý định thay thế ntfs bằng ext4.

Sau đó, tôi nhận thấy rằng các tệp tôi đã lưu không phù hợp với phân vùng mới.

df:

ext4 (ext3 & ext2 show the same behavior)
Filesystem      1K-blocks   Used  Available Use% Mounted on
/dev/sdb1      1442146364   71160 1442075204    1% /media/Seagate

ntfs (similar to all other options that gparted offers):
/dev/sdb1      1465137148  110700 1465026448    1% /media/Seagate

Sự khác biệt khối 1K đó có nghĩa là không gian sử dụng ít hơn 22 GiB.

Tôi đã thực hiện rồi

tune2fs -O \^has_journal
tune2fs -r 0
tune2fs -m 0

với, không ngạc nhiên, không có tác dụng vì điều đó không ảnh hưởng đến các khối không có ở đó.

Tuy nhiên, fdisk báo cáo rằng phân vùng ext4 bao gồm toàn bộ đĩa.

fdisk -l /dev/sdb:

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1  2930277167  1465138583+  ee  GPT

Và do đó, ví dụ resize2fs báo cáo rằng "Không có gì để làm!"

dumpe2fs -h /dev/sdb1:
dumpe2fs 1.41.14 (22-Dec-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          d6fc8971-89bd-4c03-a7cd-abdb945d2173
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              91578368
Block count:              366284288
Reserved block count:     0
Free blocks:              360518801
Free inodes:              91578357
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      936
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Sat May 21 17:12:04 2011
Last mount time:          Sat May 21 17:15:30 2011
Last write time:          Sat May 21 17:24:32 2011
Mount count:              1
Maximum mount count:      32
Last checked:             Sat May 21 17:12:04 2011
Check interval:           15552000 (6 months)
Next check after:         Thu Nov 17 16:12:04 2011
Lifetime writes:          1372 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Default directory hash:   half_md4
Directory Hash Seed:      c334e6ef-b060-45d2-b65d-4ac94167cb09
Journal backup:           inode blocks

Điều gì đang sử dụng không gian bị thiếu đó?

Câu trả lời:


21

Hãy xem nào. Kích thước thiết bị là 1.465.138.583½ kB = 1.500.301.909.504 B. Hệ thống tập tin bao gồm 366.284.228 khối của 4096 B mỗi khối, là 1.500.300.443.648 B. Tôi không biết 1.45.856 B (1.4 MB) còn lại được sử dụng cho mục đích gì ? Tôi biết có một vài kB không gian lúc đầu cho bộ nạp khởi động.).

Hệ thống tập tin chứa 91,578,368 inodes 256 byte mỗi cái, chiếm 23,444,062,208 B (khoảng 22 GB, gợi ý, gợi ý). Sau đó, có 1.442.146.364 kB = 1.476.757.876.736 B cho nội dung tệp. Điều này chiếm 23.444.062.208 B + 1.476.757.876.736 B = 1.500.201.938.944 B. Kích thước còn lại là 98.504,704 B = 24,029 khối nằm trong phạm vi phù hợp với kích thước tạp chí.

Như bạn có thể thấy, mọi thứ đều được tính đến. (Ok, hầu hết mọi thứ, nhưng chúng ta đang nói về megabyte, không phải gigabyte.)


1
Cảm ơn, đó chắc chắn là nó. . các tệp, hiện có 357728 inodes so với 1464880364 khối có sẵn.
linh tinh

13

Trước hết, sự khác biệt về không gian có sẵn mà bạn đang thấy không có nghĩa là không có "lãng phí"; nó không bị lãng phí vì nó có tầm quan trọng cơ bản để hệ thống tập tin hoạt động. Bạn không nên so sánh Ext4 và NTFS theo cách này mà không có "nhưng" rất lớn chỉ định tất cả các khác biệt về thiết kế và cấu trúc giữa các hệ thống tệp và cả chi tiết cụ thể của từng triển khai (ví dụ: mỗi trình điều khiển báo cáo không gian trống cho lớp VFS).

Hãy tưởng tượng phân vùng là một không gian rộng lớn, nơi bạn có thể đặt bất kỳ mẩu dữ liệu nào bạn có. Nếu bạn chỉ có một phần dữ liệu với kích thước bằng phân vùng, bạn có thể viết nó bắt đầu từ đầu phân vùng và làm mát với nó. Nhưng bạn thì không. Thay vào đó, bạn có thể có hàng ngàn tệp nhỏ và tất cả các tệp này được nhóm theo các cách khác nhau và mỗi tệp được liên kết với nhiều mẩu dữ liệu nhỏ khác (tên, ngày / giờ và quyền), v.v. Bạn phải tổ chức không gian lớn của phân vùng để bạn có thể tiếp cận tất cả các phần dữ liệu này một cách nhanh chóng và hiệu quả. Ngoài ra, bạn phải quan tâm đến cách viết các phần dữ liệu mới và loại bỏ các phần dữ liệu cũ một cách hiệu quả. Bạn cần cấu trúc dữ liệu .

Và có rất nhiều cấu trúc dữ liệu . Một số trong số chúng rất ngu ngốc, một số khác cho phép bạn truy xuất dữ liệu nhanh hơn với chi phí ghi chậm hơn, số khác cho phép ghi nhanh hơn với chi phí đọc, một số vẫn có thể rất tốt trong cả đọc và viết nhưng yêu cầu tạm dừng lâu và chi phí nhàn rỗi trong khi nó sắp xếp lại dữ liệu, vv

Bạn chắc chắn muốn có một hệ thống:

  1. Rất nhanh để viết thông tin về nó;
  2. Rất nhanh để lấy thông tin từ nó;
  3. Có khả năng tổ chức và quản lý thông tin được lưu trữ trong đó;
  4. Sử dụng tốt không gian (phân vùng) nơi lưu trữ hệ thống tệp;
  5. Có khả năng phục hồi chống lại các sự cố phần cứng, do đó bạn vẫn nhận được hầu hết hoặc tất cả thông tin của mình về các lỗi hệ thống một phần;
  6. Có khả năng phục hồi chống lại các sự cố phần mềm, do đó, một lỗi trong ứng dụng hoặc ứng dụng độc hại được cài đặt sẽ không phá hủy dữ liệu của bạn vĩnh viễn;
  7. Có khả năng phục hồi chống lại lỗi của con người, để nó tha thứ cho bạn khi bạn vô tình ra lệnh cho hệ thống xóa thứ gì đó bạn không nên (còn gọi là thùng rác / thùng rác).

Hệ thống tập tin hiệu năng cao cho phép đọc và ghi rất nhanh với chi phí của một số không gian. Một số cấu trúc dữ liệu nhanh nhất được sử dụng trong các hệ thống tệp, như bảng bămcây B , rất phức tạp và chúng dự trữ nhiều không gian hơn so với thực tế được sử dụng để cho phép truy cập rất nhanh.

Ext4 có các thuộc tính quan trọng khác. Không có điểm lỗi duy nhất trong hệ thống tập tin. Có nhiều bản sao dữ liệu quan trọng được phát tán qua phân vùng, trong khi một số hệ thống tệp khác (tôi không thể nói là NTFS) có thể khiến tất cả dữ liệu của bạn không thể đọc được nếu xảy ra lỗi đúng chỗ. Ngoài ra, Ext4 dành rất nhiều không gian cho dữ liệu của bạn ngay ở giai đoạn tạo hệ thống tệp, trong khi NTFS phát triển cùng với dữ liệu của bạn.


1
Cảm ơn, phần cuối cùng là rất quan trọng. Tôi đã không biết rằng ext4 thực hiện (một cách tương đối) rất nhiều công việc tại thời điểm tạo mà ntfs thực hiện trong quá trình hoạt động.
linh tinh

1
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! 
The util fdisk doesn't support GPT. Use GNU Parted.

Thông báo này cho biết đĩa sử dụng phân vùng kiểu GPT và fdiskcông cụ này chỉ hiểu kiểu MBR cũ.

Để ngăn chặn các cải cách ngẫu nhiên nếu các đĩa được phân vùng GPT được cắm vào các hệ thống không nhận biết GPT cũ hơn, lược đồ phân vùng GPT bao gồm "MBR bảo vệ": bảng phân vùng hoàn toàn giả mạo về cơ bản cho biết "đĩa này hoàn toàn được sử dụng bởi một loại phân vùng không biết gì về "đối với bất kỳ hệ điều hành hoặc công cụ nào chỉ hiểu phân vùng MBR.

Để hiển thị chính xác bảng phân vùng của bạn /dev/sdb, hãy sử dụng:

parted /dev/sdb print
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.