Tìm hiểu lệnh Linux - fdisk

Tên

fdisk - Trình phân tích bảng phân vùng cho Linux

Tóm tắc

fdisk [-u] [-b sectorsize ] [-C cyls ] [Đầu -H ] [-S sects ] thiết bị

fdisk -l [-u] [ thiết bị ... ]

phân vùng fdisk -s ...

fdisk -v

Sự miêu tả

Đĩa cứng có thể được chia thành một hoặc nhiều đĩa logic được gọi là phân vùng . Bộ phận này được mô tả trong bảng phân vùng tìm thấy trong sector 0 của đĩa.

Trong thế giới BSD, người ta nói về 'lát đĩa' và 'đĩa đĩa'.

Linux cần ít nhất một phân vùng, cụ thể là cho hệ thống tệp gốc của nó. Nó có thể sử dụng các tập tin hoán đổi và / hoặc phân vùng trao đổi, nhưng sau này hiệu quả hơn. Vì vậy, thông thường người ta sẽ muốn có một phân vùng Linux thứ hai dành riêng cho phân vùng trao đổi. Trên phần cứng tương thích với Intel, BIOS khởi động hệ thống thường chỉ có thể truy cập 1024 trụ đầu tiên của đĩa. Vì lý do này, những người có đĩa lớn thường tạo phân vùng thứ ba, chỉ lớn vài MB, thường được gắn trên / boot , để lưu trữ ảnh hạt nhân và một vài tệp phụ cần thiết vào thời gian khởi động, để đảm bảo rằng công cụ này có thể truy cập được vào BIOS. Có thể có lý do an ninh, dễ quản trị và sao lưu, hoặc thử nghiệm, để sử dụng nhiều hơn số lượng phân vùng tối thiểu.

Giải quyết các vấn đề in, tiết kiệm thời gian với phần mềm quản lý hàng đợi in.

fdisk (trong dạng đầu tiên của lời gọi) là một chương trình điều khiển trình đơn để tạo và thao tác các bảng phân vùng. Nó hiểu các bảng phân vùng kiểu DOS và các ổ đĩa kiểu BSD hoặc SUN.

Thiết bị thường là một trong những điều sau đây:

/ dev / hda / dev / hdb / dev / sda / dev / sdb

(/ dev / hd [ah] cho các đĩa IDE, / dev / sd [ap] cho các đĩa SCSI, / dev / ed [ad] cho các đĩa ESDI, / dev / xd [ab] cho các đĩa XT). Tên thiết bị đề cập đến toàn bộ đĩa.

Phân vùng là tên thiết bị được theo sau bởi một số phân vùng. Ví dụ, / dev / hda1 là phân vùng đầu tiên trên đĩa cứng IDE đầu tiên trong hệ thống. Đĩa có thể có tối đa 15 phân vùng. Xem thêm /usr/src/linux/Documentation/devices.txt .

Nhãn đĩa loại BSD / SUN có thể mô tả 8 phân vùng, phần thứ ba trong số đó phải là phân vùng `toàn bộ đĩa '. Không bắt đầu một phân vùng thực sự sử dụng sector đầu tiên của nó (như phân vùng trao đổi) tại cylinder 0, vì nó sẽ phá hủy disklabel.

Một nhãn đĩa loại IRIX / SGI có thể mô tả 16 phân vùng, phần thứ mười trong đó phải là toàn bộ phân vùng `volume ', trong khi dấu thứ chín sẽ được gắn nhãn` volume header'. Tiêu đề khối lượng cũng sẽ bao gồm bảng phân vùng, tức là, nó bắt đầu ở khối 0 và mở rộng theo mặc định trên năm hình trụ. Không gian còn lại trong tiêu đề âm lượng có thể được sử dụng bởi các mục nhập thư mục tiêu đề. Không có phân vùng nào có thể trùng lặp với tiêu đề âm lượng. Cũng không thay đổi loại của nó và làm cho một số hệ thống tập tin trên nó, vì bạn sẽ mất bảng phân vùng. Chỉ sử dụng loại nhãn này khi làm việc với Linux trên các máy IRIX / SGI hoặc các đĩa IRIX / SGI trong Linux.

Bảng phân vùng kiểu DOS có thể mô tả số lượng phân vùng không giới hạn. Trong sector 0 có chỗ cho mô tả của 4 phân vùng (được gọi là `primary '). Một trong số đó có thể là một phân vùng mở rộng; đây là một hộp chứa các phân vùng hợp lý, với các bộ mô tả được tìm thấy trong một danh sách liên kết các sector, mỗi phân vùng trước các phân vùng logic tương ứng. Bốn phân vùng chính, hiện tại hay không, có được số 1-4. Phân vùng hợp lý bắt đầu đánh số từ 5.

Trong bảng phân vùng kiểu DOS, độ lệch bắt đầu và kích thước của mỗi phân vùng được lưu trữ theo hai cách: như một số lượng tuyệt đối của các sector (được cho trong 32 bit) và như một cylinder / Heads / Sectors triple (được cho trong 10 + 8 + 6 bit). Trước đây là OK - với các sector 512 byte này sẽ hoạt động lên đến 2 TB. Cái sau có hai vấn đề khác nhau. Trước hết, các trường C / H / S này chỉ có thể được lấp đầy khi số đầu và số lượng các sector trên mỗi track được biết. Thứ hai, ngay cả khi chúng ta biết những con số này nên là gì, thì 24 bit có sẵn không đủ. DOS chỉ sử dụng C / H / S, Windows sử dụng cả hai, Linux không bao giờ sử dụng C / H / S.

Nếu có thể, fdisk sẽ tự động lấy hình đĩa. Điều này không nhất thiết là hình dạng đĩa vật lý (thực tế, đĩ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 thứ gì đó có thể được mô tả trong dạng Cylinder / Heads / Sectors đơn giản), mà là hình dạng đĩa mà MS-DOS sử dụng cho bảng phân vùng.

Thông thường tất cả diễn ra 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, bạn nên để một fdisk từ một hệ điều hành khác tạo ra í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ả) nào là cần thiết để hợp tác tốt với các hệ thống khác.

Bất cứ khi nào một bảng phân vùng được in ra, kiểm tra tính nhất quán được thực hiện trên các mục bảng phân vùng. Kiểm tra này xác minh rằng điểm bắt đầu và điểm kết thúc vật lý và hợp lý là giống hệt nhau, và phân vùng đó bắt đầu và kết thúc trên một ranh giới hình trụ (trừ phân vùng thứ nhất).

Một số phiên bản của MS-DOS tạo ra một phân vùng đầu tiên mà không bắt đầu trên một ranh giới hình trụ, nhưng trên khu vực 2 của xy lanh đầu tiên. Các phân vùng bắt đầu trong hình trụ 1 không thể bắt đầu trên một đường viền hình trụ, nhưng điều này không gây khó khăn trừ khi bạn có OS / 2 trên máy của mình.

Một sync () và một BLKRRPART ioctl () (bảng phân vùng đọc lại từ đĩa) được thực hiện trước khi thoát khi bảng phân vùng đã được cập nhật. Từ lâu nó đã từng cần thiết để khởi động lại sau khi sử dụng fdisk. Tôi không nghĩ rằng đây là trường hợp nữa - thực sự, khởi động lại quá nhanh có thể gây mất dữ liệu chưa được viết. Lưu ý rằng cả hạt nhân và phần cứng đĩa có thể đệm dữ liệu.

Cảnh báo Dos 6.x

Lệnh DOS 6.x FORMAT tìm kiếm một số thông tin trong khu vực đầu tiên của vùng dữ liệu của phân vùng và xử lý thông tin này đáng tin cậy hơn thông tin trong bảng phân vùng. DOS FORMAT mong đợi DOS FDISK xóa 512 byte đầu tiên của vùng dữ liệu của một phân vùng bất cứ khi nào thay đổi kích thước xảy ra. DOS FORMAT sẽ xem xét thông tin bổ sung này ngay cả khi cờ / U được đưa ra - chúng tôi coi đây là lỗi trong DOS FORMAT và DOS FDISK.

Điểm mấu chốt là nếu bạn sử dụng cfdisk hoặc fdisk để thay đổi kích thước của một mục bảng phân vùng DOS, thì bạn cũng phải sử dụng dd để không là 512 byte đầu tiên của phân vùng đó trước khi sử dụng DOS FORMAT để định dạng phân vùng. Ví dụ: nếu bạn đang sử dụng cfdisk để tạo mục nhập bảng phân vùng DOS cho / dev / hda1, thì (sau khi thoát fdisk hoặc cfdisk và khởi động lại Linux để thông tin bảng phân vùng hợp lệ), bạn sẽ sử dụng lệnh "dd if = / dev / zero = / dev / hda1 bs = 512 count = 1 "đến 0 512 byte đầu tiên của phân vùng.

HÃY CẨN THẬN TUYỆT VỜI nếu bạn sử dụng lệnh dd , vì một lỗi nhỏ có thể làm cho tất cả dữ liệu trên đĩa của bạn vô dụng.

Để có kết quả tốt nhất, bạn nên luôn sử dụng chương trình bảng phân vùng dành riêng cho hệ điều hành. Ví dụ, bạn nên tạo phân vùng DOS với chương trình DOS FDISK và phân vùng Linux bằng chương trình Linux fdisk hoặc Linux cfdisk.

Tùy chọn

-b sectorsize

Chỉ định kích thước sector của đĩa. Các giá trị hợp lệ là 512, 1024 hoặc 2048. (Các hạt nhân gần đây biết kích thước ngành. Chỉ sử dụng các hạt nhân cũ hoặc ghi đè ý tưởng của hạt nhân).

-C trụ

Chỉ định số lượng xi lanh của đĩa. Tôi không biết tại sao ai cũng muốn làm như vậy.

Đầu -H

Chỉ định số đầu của đĩa. (Không phải số vật lý, tất nhiên, nhưng số được sử dụng cho các bảng phân vùng.) Các giá trị hợp lý là 255 và 16.

-S tông phái

Chỉ định số lượng các sector trên mỗi track của đĩa. (Không phải số vật lý, tất nhiên, nhưng số được sử dụng cho các bảng phân vùng.) Giá trị hợp lý là 63.

-l

Liệt kê các bảng phân vùng cho các thiết bị được chỉ định và sau đó thoát ra. Nếu không có thiết bị nào được đưa ra, những thiết bị được đề cập trong / proc / partition (nếu có) được sử dụng.

-u

Khi liệt kê các bảng phân vùng, cho các kích cỡ trong các sector thay vì các xy lanh.

-s phân vùng

Kích thước của phân vùng (trong khối) được in trên đầu ra tiêu chuẩn.

-v

In số phiên bản của chương trình fdisk và thoát.