Đầu ra của fdisk có nghĩa là gì?


10

Tôi đã có một ổ đĩa flash và tôi muốn hiểu các thuộc tính của nó như được xuất ra từ đó fdisk. Tôi đã chèn nó và kiểm tra dmesgvà tôi có thể thấy rằng nó đã được gắn kết vì /dev/sdb1vậy tôi đã chạy fdiskđể xem những gì được báo cáo cho/dev/sdb

mike@mike-Qosmio-X770:~$ sudo fdisk -l
[sudo] password for mike: 

Disk /dev/sdb: 127 MB, 127926272 bytes
16 heads, 32 sectors/track, 488 cylinders, total 249856 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: 0x6b3ee723

   Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1   *          32      249854      124911+   b  W95 FAT32

Theo như tôi có thể nói, ổ đĩa là ổ đĩa flash có định dạng 128 MB FAT32, nó chỉ có 1 phân vùng trên đó. Nó bắt đầu từ "32" (có lẽ 0-31 được sử dụng cho một số FTL).

Đó là báo cáo "sector" có kích thước 512 byte và có 249.856 cung (tổng 122MB).

Bây giờ tôi đang bối rối về Xi lanh, đầu và số ngành / số lượng theo dõi. Tôi biết xi lanh / đầu phải làm với các loại lưu trữ đĩa từ. Có bất kỳ ý nghĩa cho những điều này khi nói đến một thiết bị flash? Hay đây chỉ là thông tin "còn sót lại" fdiskmà thực sự không có ý nghĩa gì đối với phương tiện lưu trữ không từ tính? Nếu sau này, tại sao lại đưa ra giá trị?

Câu hỏi thứ hai, "kích thước" của một khối là gì? :

Blocks
 124911+

Và ý nghĩa của +sau khi đếm khối là gì?


1
Câu hỏi hay, +1, chưa bao giờ nghĩ về nó trước đây. Bạn có ý nghĩa gì bởi "FTL" mặc dù? Đối với tôi điều đó có nghĩa là nhanh hơn ánh sáng, tôi tưởng tượng bạn đang đề cập đến một cái gì đó khác?
terdon

1
@terdon - FTL (Lớp dịch flash) nội dung thực hiện việc cân bằng và không chú ý
Mike

Câu trả lời:


3

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:

  1. Kích thước khối phần cứng, "kích thước ngành"
  2. Kích thước khối hệ thống tập tin, "kích thước khối"
  3. Kích thước khối bộ đệm bộ đệm kernel, "kích thước khối"
  4. 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_blksizebộ đệ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 dumà 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. dfcũ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.

Tổng quan về chất béo

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


1

Tôi đoán rằng các khu vực 1-31 được dành riêng cho thông tin khởi động và thông tin bảng phân vùng. Phân vùng / dev / sdb1 bắt đầu tại khối / sector 32 và chuyển đến 249854. Đây là phân vùng logic trên đĩa vật lý.

124911+ đang cung cấp cho bạn số khối trong khoảng từ 32 đến 249854.

Về hình học đĩa ở đây là những gì man fdsiknói về nó:

Nếu có thể, fdisk sẽ tự động lấy hình dạng đĩa. Đây không nhất thiết là hình dạng đĩa vật lý (thực sự, các đĩa hiện đại không thực sự có bất cứ thứ gì giống như hình học vật lý, chắc chắn không phải là thứ có thể mô tả dưới dạng Xi lanh / Đầu / Sector đơn giản), nhưng đó là hình dạng đĩa mà MS-DOS sử dụng cho bảng phân vùng.

Thông thường mọi thứ đều ổn theo mặc định và không có vấn đề gì nếu Linux là hệ thống duy nhất trên đĩa. Tuy nhiên, nếu đĩa phải được chia sẻ với các hệ điều hành khác, thường nên để một fdisk từ hệ điều hành khác tạo ít nhất một phân vùng. Khi Linux khởi động, nó nhìn vào bảng phân vùng và cố gắng suy ra hình học (giả) là cần thiết để hợp tác tốt với các hệ thống khác.

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.