512 byte không thực sự là kích thước cung mặc định. Nó phụ thuộc vào phần cứng của bạn.
/sys
Ví dụ, bạn có thể hiển thị kích thước khu vực vật lý / logic của báo cáo đĩa của mình thông qua hệ thống tệp giả:
# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512
Sự khác biệt giữa hai giá trị đó là gì?
- Đây
physical_block_size
là kích thước tối thiểu của một khối mà ổ đĩa có thể ghi trong một hoạt động nguyên tử.
- Đây
logical_block_size
là kích thước nhỏ nhất mà ổ đĩa có thể ghi (xem tài liệu kernel linux).
Do đó, nếu bạn có ổ đĩa 4k, điều đó có nghĩa là ngăn xếp lưu trữ của bạn (hệ thống tập tin, v.v.) sử dụng một cái gì đó bằng hoặc lớn hơn kích thước của khu vực vật lý.
Những giá trị đó cũng được hiển thị trong các phiên bản gần đây của fdisk
, ví dụ:
# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes
Trên các bản phân phối linux hiện tại, các chương trình (cần quan tâm đến kích thước cung cấp tối ưu) như thế mkfs.xfs
sẽ chọn kích thước cung tối ưu theo mặc định (ví dụ: 4096 byte).
Nhưng bạn cũng có thể chỉ định rõ ràng thông qua một tùy chọn, ví dụ:
# mkfs.xfs -f -s size=4096 /dev/sda
Hoặc là:
# mkfs.ext4 -F -b 4096 /dev/sda
Trong mọi trường hợp, hầu hết mkfs
các biến thể cũng sẽ hiển thị kích thước khối được sử dụng trong khi thực hiện.
Đối với hệ thống tệp hiện có, kích thước khối có thể được xác định bằng một lệnh như:
# xfs_info /mnt
[..]
meta-data= sectsz=4096
data = bsize=4096
naming =version 2 bsize=4096
log =internal bsize=4096
= sectsz=4096
realtime =none extsz=4096
Hoặc là:
# tune2fs -l /dev/sda
Block size: 4096
Fragment size: 4096
Hoặc là:
# btrfs inspect-internal dump-super /dev/sda | grep size
csum_size 4
sys_array_size 97
sectorsize 4096
nodesize 16384
leafsize 16384
stripesize 4096
dev_item.sector_size 4096
Khi tạo hệ thống tập tin trên một phân vùng, một điều cần kiểm tra sau đó là nếu địa chỉ bắt đầu phân vùng thực sự được căn chỉnh theo kích thước khối vật lý. Ví dụ, nhìn vào fdisk -l
đầu ra, chuyển đổi địa chỉ bắt đầu thành byte, chia chúng theo kích thước khối vật lý - lời nhắc phải bằng 0 nếu các phân vùng được căn chỉnh.
mkfs.*
sẽ tự động sử dụng kích thước cung cấp tối ưu. Bạn có thể thực hiện một sốmkfs.*
thử nghiệm và kiểm tra kết quả (trong đầu ra dài dòng của mkfs hoặc trong chương trình tiện ích fs có liên quan).