Kích thước của một khối
Một bản nhạc 3 chiều (cùng một bản nhạc trên tất cả các đĩa) được gọi là hình trụ. Mỗi ca khúc được chia thành 63 lĩnh vực. Mỗi khu vực chứa 512 byte dữ liệu. Do đó, kích thước khối trong bảng phân vùng là 64 đầu * 63 cung * 512 byte er ... chia cho 1024 ... :-)
Nguồn: Phân vùng với fdisk
Bất cứ khi nào Linux đề cập đến kích thước khối, hầu như luôn luôn là 1024 byte - Linux sử dụng các khối 1024 byte làm đơn vị nguyên thủy của nó cho bộ đệm bộ đệm và mọi thứ Chỉ có lần nó không có trong trình điều khiển dành riêng cho hệ thống tệp, vì một số hệ thống tệp sử dụng khác độ chi tiết (ví dụ, trên hệ thống tệp ext3 có kích thước bình thường, kích thước khối hệ thống tệp thường là 4096 byte). Tuy nhiên, bạn hầu như không bao giờ thấy kích thước khối hệ thống tập tin; gần như cách duy nhất để thực sự thấy nó là một hacker hạt nhân hoặc chạy các chương trình như dumpe2fs.
Vấn đề với điều này là có bốn đơn vị riêng biệt mà bạn phải ghi nhớ. Để làm cho mọi thứ thậm chí còn tồi tệ hơn, hai trong số các đơn vị này có cùng tên. Đây là các đơn vị khác nhau:
- Kích thước khối phần cứng, "kích thước ngành"
- Kích thước khối hệ thống tập tin, "kích thước khối"
- Kích thước khối bộ đệm bộ đệm kernel, "kích thước khối"
- Kích thước khối bảng phân vùng, "kích thước xi lanh"
Để phân biệt giữa kích thước khối hệ thống tệp và kích thước khối bộ đệm bộ đệm, tôi sẽ theo thuật ngữ FAT và sử dụng "kích thước cụm" cho kích thước khối hệ thống tệp.
Kích thước khu vực là các đơn vị mà phần cứng xử lý. Phạm vi này nằm giữa các loại phần cứng khác nhau, nhưng hầu hết phần cứng kiểu PC (đĩa mềm, đĩa IDE, v.v.) sử dụng các cung từ 512 byte.
Kích thước cụm là đơn vị phân bổ mà hệ thống tập tin sử dụng và là nguyên nhân gây ra sự phân mảnh - tôi chắc chắn bạn biết về điều đó. Trên hệ thống tệp ext3 có kích thước vừa phải, đây thường là 4096 byte, nhưng bạn có thể kiểm tra xem có dumpe2fs
. Hãy nhớ rằng chúng thường được gọi là " khối ", chỉ có điều tôi gọi chúng là cụm ở đây. Kích thước cụm là những gì được trả về trong st_blksize
bộ đệm stat, để các chương trình có thể tính toán mức sử dụng đĩa thực tế của một tệp.
Kích thước khối là kích thước của bộ đệm mà hạt nhân sử dụng bên trong khi nó lưu trữ các thành phần đã được đọc từ các thiết bị lưu trữ (do đó có tên là "thiết bị khối"). Vì đây là hình thức lưu trữ nguyên thủy nhất trong kernel, nên tất cả các kích thước cụm hệ thống tập tin phải là bội số của điều này. Kích thước khối này cũng là thứ hầu như luôn được các chương trình không gian người dùng nhắc đến. Ví dụ: khi bạn chạy
du
mà không có tùy chọn -h hoặc -H, nó sẽ trả về số lượng các khối này chiếm một tệp. df
cũng sẽ báo cáo kích thước trong các khối này, cột "Khối" trong fdisk -l
đầu ra thuộc loại này, v.v. Đó là những gì thường được gọi là "khối". Hai lĩnh vực đĩa phù hợp với từng khối.
Kích thước hình trụ chỉ được sử dụng trong bảng phân vùng và bởi BIOS (và BIOS không được Linux sử dụng).
Nguồn: Kích thước khối đĩa Linux ... xin vui lòng giúp đỡ
Ngành 0-31
Để trả lời câu hỏi của bạn về 32 lĩnh vực đầu tiên, vì ổ đĩa flash là một thiết bị được định dạng FAT, sau đó nhìn vào định nghĩa hệ thống tệp FAT, người ta có thể thấy rằng một hệ thống tệp FAT bao gồm bốn phần khác nhau:
a) Các ngành dành riêng;
b) Vùng Bảng phân bổ tệp (FAT);
c) Vùng thư mục gốc và;
d) Vùng dữ liệu.
Các khu vực dành riêng , được đặt ngay từ đầu, (trong trường hợp này) là các ngành 0-31:
Khu vực dành riêng đầu tiên (khu vực logic 0) là Khu vực khởi động (còn gọi là
Bản ghi khởi động âm lượng (VBR) ). Nó bao gồm một khu vực được gọi là Khối tham số BIOS (với một số thông tin hệ thống tệp cơ bản, cụ thể là loại của nó và con trỏ đến vị trí của các phần khác) và thường chứa mã bộ tải khởi động của hệ điều hành.
Thông tin quan trọng từ Khu vực khởi động có thể truy cập thông qua cấu trúc hệ điều hành được gọi là Khối tham số ổ đĩa (DPB) trong DOS và OS / 2.
Tổng số các khu vực dành riêng được chỉ định bởi một trường bên trong Khu vực khởi động và thường là 32 trên các hệ thống tệp FAT32 .
Đối với các hệ thống tệp FAT32, các khu vực dành riêng bao gồm Khu vực thông tin hệ thống tệp ở khu vực logic 1 và Khu vực khởi động dự phòng ở khu vực logic 6.
Mặc dù nhiều nhà cung cấp khác đã tiếp tục sử dụng thiết lập một khu vực (chỉ khu vực logic 0) cho trình tải bootstrap, mã ngành khởi động của Microsoft đã phát triển để sinh ra các khu vực logic 0 và 2 kể từ khi giới thiệu FAT32, với khu vực logic 0 tùy thuộc vào các thường trình con trong khu vực logic 2. Khu vực Khởi động dự phòng bao gồm ba khu vực logic 6, 7 và 8. Trong một số trường hợp, Microsoft cũng sử dụng khu vực 12 của khu vực dành riêng cho bộ tải khởi động mở rộng.
Chỉ cần thêm thông tin, không liên quan đến câu hỏi OP
Vùng FAT , sẽ ở khu vực 32:
Điều này thường chứa hai bản sao (có thể thay đổi) của Bảng phân bổ tệp để kiểm tra dự phòng, mặc dù hiếm khi được sử dụng, ngay cả bởi các tiện ích sửa chữa đĩa.
Đây là các bản đồ của Vùng dữ liệu, cho biết các cụm được sử dụng bởi các tệp và thư mục. Trong FAT12 và FAT16, họ ngay lập tức theo các khu vực dành riêng.
Thông thường, các bản sao bổ sung được giữ đồng bộ chặt chẽ khi ghi và khi đọc chúng chỉ được sử dụng khi xảy ra lỗi trong FAT đầu tiên. Trong FAT32, có thể chuyển từ hành vi mặc định và chọn một FAT duy nhất trong số các hành vi có sẵn được sử dụng cho mục đích chẩn đoán.
Hai cụm đầu tiên (cụm 0 và 1) trong bản đồ chứa các giá trị đặc biệt.
Vùng thư mục gốc :
Đây là Bảng thư mục lưu trữ thông tin về các tệp và thư mục nằm trong thư mục gốc. Nó chỉ được sử dụng với FAT12 và FAT16 và áp đặt cho thư mục gốc một kích thước tối đa cố định được phân bổ trước khi tạo tập này. FAT32 lưu trữ thư mục gốc trong Vùng dữ liệu, cùng với các tệp và các thư mục khác, cho phép nó phát triển mà không bị ràng buộc như vậy. Do đó, đối với FAT32, Vùng dữ liệu bắt đầu tại đây.
Vùng dữ liệu :
Đây là nơi lưu trữ dữ liệu tệp và thư mục thực tế và chiếm phần lớn phân vùng. Theo truyền thống, các phần không được sử dụng của vùng dữ liệu được khởi tạo với giá trị điền là 0xF6 theo Bảng tham số đĩa của INT 1Eh (DPT) trong định dạng trên các máy tương thích của IBM, nhưng cũng được sử dụng trên Danh mục Atari. Các đĩa mềm CP / M 8 inch thường được định dạng sẵn với giá trị 0xE5; bằng cách nghiên cứu kỹ thuật số, giá trị này cũng được sử dụng trên các đĩa mềm được định dạng của Atari ST. Amstrad đã sử dụng 0xF4 thay thế. Một số trình định dạng hiện đại xóa sạch các đĩa cứng có giá trị 0x00, trong khi giá trị 0xFF, giá trị mặc định của khối flash không được lập trình, được sử dụng trên các đĩa flash để giảm hao mòn. Giá trị sau thường được sử dụng trên các đĩa ROM. (Một số công cụ định dạng nâng cao cho phép định cấu hình byte bộ định dạng.)
Kích thước của tệp và thư mục con có thể được tăng tùy ý (miễn là có các cụm miễn phí) bằng cách thêm nhiều liên kết vào chuỗi của tệp trong FAT. Tuy nhiên, lưu ý rằng các tệp được phân bổ theo đơn vị cụm, vì vậy nếu tệp 1 KiB nằm trong cụm 32 KiB, 31 KiB sẽ bị lãng phí.
FAT32 thường bắt đầu Bảng thư mục gốc trong cụm số 2: cụm đầu tiên của Vùng dữ liệu.
Nguồn: Wikipedia - Bảng phân bổ tệp