kích thước phân vùng ext4 / chênh lệch không gian trống


14

Trong khi tạo phân vùng sao lưu 250GiB cho dữ liệu của mình, tôi đã nhận thấy rất nhiều sự khác biệt giữa kích thước phân vùng được báo cáo và không gian trống trong Nautilus, gParted, df, Tune2fs, v.v.

Lúc đầu, tôi nghĩ đó là một sự nhầm lẫn GiB / GB. Không phải vậy .

Sau đó, tôi nghĩ rằng nó có thể là khối dành riêng của ext4. Không phải vậy .

Tôi hoàn toàn hoang mang. Dưới đây là một số hình ảnh. Dưới đây là các bước:

  • Đầu tiên, NTFS. 524288000 sector x 512 byte / sector = 268435456000 byte = 268.4 GB = 250 GiB.

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Nautilus nói " Tổng dung lượng: 250,0 GB " (mặc dù nó thực sự là GiB, không phải GB). Ngoài việc dán nhãn sai, cho đến nay, rất tốt

  • Bây giờ, cùng một phân vùng, được tạo thành ext4 với gparted:

nhập mô tả hình ảnh ở đây

Đầu tiên, ngành cuối cùng và tổng số là như nhau. Nó là phân vùng 250GiB tương tự. Kích thước được sử dụng là 4,11GiB (khối dành riêng có thể?)

nhập mô tả hình ảnh ở đây

Không. Có vẻ như các khối dành riêng là 12,7 GiB (~ 5%. Och! ). Nhưng ... tại sao Tổng công suất bây giờ chỉ là 246,1 GiB ??? . Sự khác biệt đó (loại) phù hợp với Gi1 4.11 được báo cáo bởi gparted. Nhưng ... nếu nó không phải từ các khối dành riêng, thì nó là gì? Và tại sao gparted không báo cáo rằng 12,7GiB của không gian đã sử dụng?

$ df -h /dev/sda5
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             247G  188M  234G   1% /media/BACKUP

dfphù hợp với Nautilus trong không gian miễn phí được báo cáo. Nhưng .. chỉ sử dụng 188M? Không nên là ~ 12GB? Và tổng công suất vẫn sai. Vì vậy, tôi chạy tune2fsđể tìm một số manh mối. (đầu ra không liên quan là ommited)

$ sudo tune2fs -l /dev/sda5
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   BACKUP
Filesystem UUID:          613d592e-47f5-4206-96a7-210090d340ef
Filesystem features:      has_journal 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 
Filesystem state:         clean
Filesystem OS type:       Linux
Block count:              65536000
Reserved block count:     3276800
Free blocks:              64459851
First block:              0
Block size:               4096

65536000 tổng số khối * 4096 byte / khối = 268435456000 byte = 268,4 GB = 250 GiB. Nó phù hợp với gparted.

3276800 khối dành riêng = 13421772800 byte = 13,4 GB = 12,5 GiB. Nó (một lần nữa, sắp xếp) phù hợp với Nautilus.

64459851 khối miễn phí = 264027549696 byte = 264.0 GB = 245.9 GiB. Tại sao? Không nên là 250-12,5 = 237,5 (hoặc 250- (12,5 + 4,11) = ~ 233)?

Loại bỏ các khối dành riêng:

$ sudo tune2fs -m 0 /dev/sda5
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 0% (0 blocks)

$ sudo tune2fs -l /dev/sda5
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   BACKUP
Filesystem UUID:          613d592e-47f5-4206-96a7-210090d340ef
Filesystem features:      has_journal 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 
Filesystem state:         clean
Filesystem OS type:       Linux
Block count:              65536000
Reserved block count:     0
Free blocks:              64459851
Block size:               4096

Như mong đợi, cùng một khối đếm, 0 khối dành riêng, nhưng ... cùng khối miễn phí ? Có phải tôi vừa giải phóng 12,5 GiB?

$ df -h /dev/sda5
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             247G  188M  246G   1% /media/BACKUP

nhập mô tả hình ảnh ở đây

Hình như tôi đã làm. Không gian sẵn có tăng từ 233 lên 245,9 GiB. gparted không quan tâm chút nào, hiển thị chính xác cùng một thông tin! (vô dụng để đăng ảnh chụp màn hình giống hệt nhau)

Thật là một mớ hỗn độn!

Tôi đã cố gắng ghi lại nó tốt nhất có thể ... Vì vậy, xin vui lòng ai đó có thể cho tôi bất kỳ manh mối nào về những gì đang xảy ra ở đây?

  • Những GiB 4.11 bị thiếu trong định dạng NTFS -> ext4 là gì?
  • Tại sao có quá nhiều sự khác biệt giữa gparted, Nautilus, Tune2fs, df?
  • Điều gì là sai với toán học của tôi? (câu hỏi in đậm rải rác bài này)

Bất kỳ trợ giúp được đánh giá cao. Mặc dù tôi không thể hiểu chuyện gì đang xảy ra, tôi vẫn bình tĩnh xem xét từ bỏ ext4 để ủng hộ NTFS cho mọi thứ trừ phân vùng / của tôi.

Cảm ơn!




@Uri Herrera: bạn đã thực sự đọc câu hỏi của tôi, hoặc ít nhất là vài dòng đầu tiên? Đây không phải là vấn đề GiB / GB. Phân vùng là 268,4GB = 250,0GiB, không phải là 246,1
MestreLion

1
Một câu trả lời khác mà bạn có thể xem tại: askubfox.com/questions/5335/ trên
enzotib

Câu trả lời:


13

Có một vài điều đang diễn ra ở đây. gparted báo cáo thực tế sử dụng / không gian trống. Hạt nhân làm giảm số lượng có sẵn bởi không gian dành riêng. Sau khi bạn xóa không gian dành riêng, số lượng miễn phí không thay đổi vì các khối dành riêng đã miễn phí; chỉ là người dùng không root không được phép xâm chiếm không gian đó để ngăn họ gây rắc rối bằng cách lấp đầy đĩa. Các số gnome là một chút dễ dàng vì một lỗi . Thay vì báo cáo không gian đã sử dụng mà kernel báo cáo (và df hiển thị), nó sẽ tính toán nó bằng cách trừ không gian trống trong tổng số. Điều này làm cho nó hiển thị không gian dành riêng như được sử dụng.

4GB thiếu thực sự được sử dụng là chi phí fs cho ext4. NTFS ban đầu chỉ phân bổ một lượng nhỏ dung lượng cho MFT và phát triển nó khi cần thiết. Mặc dù vậy, loạt hệ thống tập tin mở rộng, phân bổ không gian cho bảng inode (tương đương với MFT) tại thời điểm định dạng và nó không thể phát triển. Không gian bị thiếu trong tổng không gian được báo cáo là bảng inode. Phần còn lại của không gian được sử dụng là từ tạp chí (thường là 128 mb) và thay đổi kích thước các nút.


Cảm ơn, +1 đã giải quyết một số bí ẩn! Nhưng, nếu ~ 4GB là chi phí hệ thống tập tin, tại sao một phần trong số đó (3,9 GB) bị trừ khỏi tổng dung lượng, trong khi 188MB hiển thị như thực sự được sử dụng? Mà (hoặc cả hai) là chi phí? Và tại sao xử lý khác nhau? Ngoài ra, dfngay cả với sudo, hiển thị tổng dung lượng (247GB) và dung lượng đã sử dụng (188MB) như Nautilus. Vì vậy, nếu đó là một lỗi, nó không chỉ là gnome.
MestreLion

Tôi nghĩ rằng 188MB là chi phí chung (so với 72 MB từ NTFS). Nhưng, nếu chi phí NTFS sẽ tăng theo thời gian, điều đó có nghĩa là Nautilus sau đó sẽ báo cáo tổng công suất bị thu hẹp ?
MestreLion

Sửa chữa: df luôn hiển thị không gian có sẵn, bất kể ai điều hành nó. Để xem không gian trống (== không gian có sẵn + không gian dành riêng), hãy sử dụng stat -f /media/BACKUP.
Marius Gedminas

Chỉnh sửa câu trả lời để làm rõ. Và tôi tin rằng NTFS sẽ chỉ báo cáo không gian sử dụng nhiều hơn, không thu hẹp tổng số khi MFT phát triển. @Marius, điều này cũng không đúng. statfs () và do đó cả df và stat -f đều hiển thị không gian có sẵn không tính các khối dành riêng. Tôi có thể đã thề rằng nó cũng đã điều chỉnh hạn ngạch và thay đổi phản hồi của nó dựa trên người dùng đang gọi, nhưng bạn đã đúng về điều đó; nó không tính hạn ngạch và không quan tâm người dùng gọi nó là gì.
psusi

@psusi: vậy tôi có ~ 3.9GiB của bảng inode và ~ 188MB tạp chí + cái gì? Và Nautilus trừ bảng inode khỏi Total Size, trong khi báo cáo tạp chí là không gian được sử dụng? Và gparted báo cáo chúng là một 4.11GiB không gian đã sử dụng? Đúng không? Nếu vậy, tôi chỉ muốn Nautilus xử lý cả hai chi phí giống nhau .. cả hai đều được trừ vào tổng số hoặc cả hai được tính là "không gian đã sử dụng" (tốt nhất là).
MestreLion

7

Trước hết, các khối dành riêng không phải là khối được sử dụng để quản lý nội bộ hệ thống tập tin.

Các khối dành riêng chỉ được dành riêng cho root, để đảm bảo rằng các dịch vụ sử dụng tệp trên phân vùng đó không thể bị loại trừ khỏi không gian bởi một số người dùng không phải là quản trị viên lấp đầy tất cả không gian.

Ngay cả khi không có khối dành riêng ( -m 0) luôn có một phần không gian được sử dụng để quản lý nội bộ hệ thống tệp, tôi không thể nói bao nhiêu, tôi không có kiến ​​thức sâu sắc như vậy.

Ngoài ra, Gparted được thực thi dưới dạng root, vì vậy nó thấy các khối dành riêng là miễn phí. Nautilus , được thực thi như người dùng, xem chúng là không miễn phí.

Ok, câu trả lời @psusi rất rõ ràng, tôi không có gì để thêm.


Humm, rất nhiều thông tin, +1. Ít nhất điều này giải quyết một số vấn đề tôi đã tìm thấy. Việc xem các khối dành riêng dưới dạng "giới hạn giới hạn" cho phần gốc không thay vì "khối đã sử dụng" làm cho các bài đọc gparted, df và Tune2fs đồng ý (và có ý nghĩa). Nhưng một số câu hỏi vẫn còn, đặc biệt là 4GB không gian sử dụng / tổng dung lượng.
MestreLion

1
Ngoài ra, tôi đã đọc ở đâu đó (một trong những câu hỏi cũ "tại sao bạn không cần phải phân mảnh phân vùng Linux của mình mỗi tháng" CÁCH CÓ THỂ?) Việc dành 5% dung lượng gốc cho một số không gian thở cho thuật toán phân bổ extN và do đó tránh được phân mảnh.
Marius Gedminas

1

Hãy thử giảm kích thước phân vùng xuống một vài megabyte bằng gparted, sau đó tăng lại kích thước ban đầu. Điều này có thể khiến các ứng dụng khác đọc kích thước chính xác. Gần đây tôi đã sửa một lỗi 50Gb theo cách này!

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.