104.1 Bài 1
Chứng chỉ: |
LPIC-1 |
---|---|
Phiên bản: |
5.0 |
Chủ đề: |
104 Thiết bị, Hệ thống tệp Linux, Tiêu chuẩn phân cấp hệ thống Tệp |
Mục tiêu: |
104.1 Tạo Phân vùng và Hệ thống Tệp |
Bài: |
1 trên 1 |
Giới thiệu
Trên bất kỳ hệ điều hành nào, mỗi một đĩa cứng đều cần được phân vùng trước khi có thể sử dụng. Phân vùng là một tập hợp con logic của đĩa vật lý và thông tin về các phân vùng sẽ được lưu trữ trong bảng phân vùng. Bảng này bao gồm thông tin về các cung đầu tiên và cuối cùng của phân vùng, loại của nó cũng như các chi tiết khác về từng phân vùng.
Thông thường, mỗi một phân vùng đều được hệ điều hành coi là một “ổ” riêng biệt ngay cả khi chúng đều nằm trong cùng một phương tiện vật lý. Trên các hệ thống Windows, chúng được gán các chữ cái như C:
(từ trước tới nay vẫn được coi là ổ chính), D:
, v.v. Trên Linux, mỗi phân vùng sẽ được gán cho một thư mục trong /dev
, như /dev/sda1
hoặc /dev/sda2
.
Trong bài học này, chúng ta sẽ học cách tạo, xóa, khôi phục và thay đổi kích thước phân vùng bằng ba tiện ích phổ biến nhất (fdisk
, gdisk
và parted
), cách tạo hệ thống tệp trên chúng cũng như cách tạo và thiết lập một phân vùng hoán đổi hoặc tệp hoán đổi để dùng làm bộ nhớ ảo.
Note
|
Vì các lý do về tiền lệ, trong bài học này, chúng ta sẽ gọi phương tiện lưu trữ là “đĩa” dù các hệ thống lưu trữ hiện đại như SSD và Bộ lưu trữ Flash hoàn toàn không hề chứa bất kỳ một “đĩa” nào. |
Hiểu về MBR và GPT
Có hai cách chính để lưu trữ thông tin phân vùng trên ổ cứng. Cách đầu tiên là MBR (Bản ghi Khởi động Chính) và cách thứ hai là GPT (Bảng phân vùng GUID).
- MBR
-
Đây là tàn dư từ những ngày đầu của MS-DOS (cụ thể hơn là PC-DOS 2.0 từ năm 1983) và trong nhiều thập kỷ được coi là lược đồ phân vùng tiêu chuẩn trên PC. Bảng phân vùng được lưu trữ trên cung đầu tiên của đĩa được gọi là Cung Khởi động, cùng với đó còn có trình tải khởi động (trên các hệ thống Linux thường là trình tải khởi động GRUB). Nhưng MBR có một loạt hạn chế gây cản trở việc sử dụng nó trên các hệ thống hiện đại như việc không thể xử lý các đĩa có kích thước lớn hơn 2TB và giới hạn chỉ có 4 phân vùng chính trên mỗi đĩa.
- GUID
-
Một hệ thống phân vùng giải quyết nhiều hạn chế của MBR. Nó không có giới hạn thực tế về kích thước đĩa và số lượng phân vùng tối đa chỉ bị giới hạn bởi chính hệ điều hành. Nó thường được tìm thấy trên các máy hiện đại hơn sử dụng UEFI thay vì BIOS PC cũ.
Trong các tác vụ quản trị hệ thống, người dùng sẽ có thể tìm thấy cả hai lược đồ này đang được sử dụng. Vì vậy, chúng ta phải biết cách sử dụng các công cụ liên quan đến từng lược đồ để tạo, xóa hoặc sửa đổi các phân vùng.
Quản lý phân vùng MBR với FDISK
Tiện ích tiêu chuẩn để quản lý phân vùng MBR trên Linux là fdisk
. Đây là một tiện ích tương tác được điều khiển bằng menu. Để sử dụng nó, hãy nhập fdisk
, theo sau là tên thiết bị tương ứng với đĩa cần chỉnh sửa. Ví dụ như lệnh
# fdisk /dev/sda
sẽ chỉnh sửa bảng phân vùng của thiết bị được kết nối SATA đầu tiên (sda
) trên hệ thống. Hãy nhớ rằng chúng ta cần chỉ định thiết bị tương ứng với đĩa vật lý chứ không phải một trong các phân vùng của nó (như /dev/sda1
).
Note
|
Tất cả các hoạt động liên quan đến đĩa trong bài học này cần phải được thực hiện với tư cách là siêu người dùng |
Khi được gọi, fdisk
sẽ hiển thị lời chào, sau đó là một lời cảnh báo và nó sẽ chờ lệnh của người dùng.
# fdisk /dev/sda Welcome to fdisk (util-linux 2.33.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help):
Cảnh báo là một yếu tố quan trọng. Chúng ta có thể tạo, chỉnh sửa hoặc xóa phân vùng theo ý muốn nhưng sẽ không có gì được ghi vào đĩa trừ khi ta sử dụng lệnh ghi (w
). Vì vậy, ta có thể “thực hành” mà không sợ nguy cơ mất dữ liệu, miễn là ta tránh xa phím w
. Để thoát fdisk
mà không lưu các thay đổi, hãy sử dụng lệnh q
.
Note
|
Dù vậy chúng ta không bao giờ nên thực hành trên một đĩa quan trọng vì dù sao vẫn luôn có tồn tại nhiều rủi ro. Thay vào đó, hãy sử dụng ổ đĩa ngoại vi dự phòng hoặc ổ USB flash. |
In Bảng Phân vùng hiện tại
Lệnh p
được sử dụng để in bảng phân vùng hiện tại. Đầu ra sẽ trông giống như sau:
Command (m for help): p Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors Disk model: CT120BX500SSD1 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x97f8fef5 Device Boot Start End Sectors Size Id Type /dev/sda1 4096 226048942 226044847 107.8G 83 Linux /dev/sda2 226048944 234437550 8388607 4G 82 Linux swap / Solaris
Dưới đây là ý nghĩa của từng cột:
Device
-
Thiết bị được gán cho phân vùng.
Boot
-
Cho biết phân vùng “có thể khởi động” được hay không.
Start
-
Cung bắt đầu phân vùng.
End
-
Cung kết thúc phân vùng.
Sectors
-
Tổng số cung trong phân vùng. Nhân nó với kích thước cung để có được kích thước phân vùng tính bằng byte.
Size
-
Kích thước của phân vùng ở định dạng “con người có thể đọc được”. Trong ví dụ trên, các giá trị được tính bằng gigabyte.
Id
-
Giá trị số đại diện cho loại phân vùng.
Type
-
Mô tả loại phân vùng.
Phân vùng Chính và Phân vùng Mở rộng
Trên đĩa MBR có thể có 2 loại phân vùng cơ bản là phân vùng chính và mở rộng. Như đã nói trước đây, ta chỉ có thể có 4 phân vùng chính trên đĩa và nếu muốn tạo đĩa “có thể khởi động được” thì phân vùng đầu tiên phải là một phân vùng chính.
Một cách để khắc phục hạn chế này là tạo một phân vùng mở rộng hoạt động như một vùng chứa cho các phân vùng logic. Ví dụ, chúng ta có thể có một phân vùng chính, một phân vùng mở rộng chiếm phần còn lại của dung lượng đĩa và năm phân vùng logic bên trong nó.
Đối với một hệ điều hành như Linux, các phân vùng chính và mở rộng đều được xử lý theo cùng một cách. Do đó, không có một “lợi thế” nào khi chúng ta sử dụng phân vùng này thay vì phân vùng còn lại.
Tạo một Phân vùng
Để tạo một phân vùng, chúng ta sẽ sử dụng lệnh n
. Theo mặc định, các phân vùng sẽ được tạo khi dung lượng đĩa chưa được phân bổ. Chúng ta sẽ được hỏi về loại phân vùng (chính hoặc mở rộng), cung đầu tiên và cung cuối cùng.
Cung đầu tiên thường có thể chấp nhận giá trị mặc định do fdisk
đề xuất trừ khi chúng ta cần một phân vùng để bắt đầu tại một cung cụ thể. Thay vì chỉ định cung cuối cùng, ta có thể chỉ định kích thước và theo sau là các chữ cái K
, M
, G
, T
hoặc P
(Kilo, Mega, Giga, Tera hoặc Peta). Vì vậy, nếu muốn tạo phân vùng 1 GB, ta có thể chỉ định +1G
là Last sector
(Cung cuối cùng) và fdisk
sẽ xác định kích cỡ phân vùng tương ứng. Hãy xem ví dụ sau về việc tạo phân vùng chính:
Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-3903577, default 2048): 2048 Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3903577, default 3903577): +1G
Kiểm tra Dung lượng chưa phân bổ
Nếu không rõ có bao nhiêu dung lượng trống trên đĩa, chúng ta có thể sử dụng lệnh F
để hiển thị dung lượng chưa phân bổ như sau:
Command (m for help): F Unpartitioned space /dev/sdd: 881 MiB, 923841536 bytes, 1804378 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes Start End Sectors Size 2099200 3903577 1804378 881M
Xóa Phân vùng
Để xóa một phân vùng, hãy sử dụng lệnh d
. fdisk
sẽ hỏi về số phân vùng ta muốn xóa trừ khi chỉ có duy nhất một phân vùng trên đĩa. Trong trường hợp này, phân vùng này sẽ được chọn và xóa ngay lập tức.
Hãy lưu ý rằng nếu chúng ta xóa một phân vùng mở rộng, tất cả các phân vùng logic ở bên trong nó cũng sẽ bị xóa.
Hãy chú ý Khoảng cách!
Hãy nhớ rằng khi tạo một phân vùng mới bằng fdisk
, kích thước tối đa sẽ bị giới hạn bởi lượng dung lượng liền kề tối đa chưa phân bổ tối đa trên đĩa. Ví dụ chúng ta có bản đồ phân vùng sau:
Device Boot Start End Sectors Size Id Type /dev/sdd1 2048 1050623 1048576 512M 83 Linux /dev/sdd2 1050624 2099199 1048576 512M 83 Linux /dev/sdd3 2099200 3147775 1048576 512M 83 Linux
Sau đó, chúng ta xóa phân vùng 2 và kiểm tra dung lượng trống:
Command (m for help): F Unpartitioned space /dev/sdd: 881 MiB, 923841536 bytes, 1804378 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes Start End Sectors Size 1050624 2099199 1048576 512M 3147776 3903577 755802 369M
Nếu cộng cả kích thước của dung lượng chưa phân bổ thì trên lý thuyết, chúng ta có sẵn 881 MB dung lượng trống. Nhưng hãy xem điều gì sẽ xảy ra khi chúng ta cố gắng tạo một phân vùng 700 MB:
Command (m for help): n Partition type p primary (2 primary, 0 extended, 2 free) e extended (container for logical partitions) Select (default p): p Partition number (2,4, default 2): 2 First sector (1050624-3903577, default 1050624): Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-2099199, default 2099199): +700M Value out of range.
Điều này xảy ra vì dung lượng chưa phân bổ liền kề lớn nhất trên đĩa là khối 512 MB thuộc về phân vùng 2. Phân vùng mới của chúng ta không thể “vượt qua” phân vùng 3 để sử dụng số dung lượng chưa phân bổ ở sau nó.
Thay đổi loại Phân vùng
Đôi khi chúng ta sẽ cần thay đổi loại phân vùng, đặc biệt là khi xử lý các ổ đĩa cứng được sử dụng trên các hệ điều hành và nền tảng khác. Điều này có thể được thực hiện bằng lệnh t
, theo sau là số phân vùng cần thay đổi.
Loại phân vùng phải được chỉ định bằng mã thập lục phân tương ứng của nó và chúng ta có thể xem danh sách tất cả các mã hợp lệ bằng cách sử dụng lệnh l
.
Đừng nhầm lẫn loại phân vùng với hệ thống tệp được sử dụng trên đó. Mặc dù trước đây giữa chúng có một mối quan hệ nhất định nhưng hiện nay điều này không phải lúc nào cũng đúng (ví dụ như một phân vùng Linux có thể chứa bất kỳ hệ thống tệp gốc Linux nào như ext4 hoặc ReiserFS).
Tip
|
Phân vùng Linux là loại |
Quản lý phân vùng GUID với GDISK
Tiện ích gdisk
cũng tương đương với fdisk
trong việc xử lý các đĩa được phân vùng GPT. Trên thực tế, giao diện của nó được mô phỏng theo fdisk
với dấu nhắc tương tác và các lệnh tương tự (hoặc rất giống).
In Bảng Phân vùng hiện tại
Lệnh p
được sử dụng để in bảng phân vùng hiện tại. Đầu ra của lệnh sẽ giống như sau:
Command (? for help): p Disk /dev/sdb: 3903578 sectors, 1.9 GiB Model: DataTraveler 2.0 Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): AB41B5AA-A217-4D1E-8200-E062C54285BE Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 3903544 Partitions will be aligned on 2048-sector boundaries Total free space is 1282071 sectors (626.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 2 2623488 3147775 256.0 MiB 8300 Linux filesystem
Chúng ta có thể nhận ra một vài điểm khác biệt ngay trong phần đầu:
-
Mỗi đĩa có một Mã định danh đĩa (GUID) duy nhất. Đây là số thập lục phân 128 bit được chỉ định ngẫu nhiên khi bảng phân vùng được tạo. Vì có 3,4 × 1038 giá trị khả thi cho con số này nên khả năng 2 đĩa ngẫu nhiên có cùng GUID là rất thấp. GUID có thể được sử dụng để xác định hệ thống tệp nào sẽ được gắn vào lúc khởi động (và ở đâu), đồng thời loại bỏ nhu cầu sử dụng đường dẫn thiết bị để làm điều này (như
/dev/sdb
). -
Hãy xem cụm từ
Partition table holds up to 128 entries
(Bảng phân vùng chứa tối đa 128 mục nhập). Chúng ta đích thực là có thể có tối đa 128 phân vùng trên đĩa GPT. Do đó, ta sẽ không cần đến phân vùng chính và mở rộng. -
Dung lượng trống được liệt kê ở dòng cuối cùng, vì thế mà không cần tới lệnh tương đương với lệnh F từ fdisk.
Tạo Phân vùng
Lệnh để tạo phân vùng là n
(cũng giống như trong fdisk
). Sự khác biệt chính là bên cạnh số phân vùng và cung đầu tiên và cuối cùng (hoặc kích thước), ta cũng có thể chỉ định loại phân vùng trong quá trình tạo. Phân vùng GPT hỗ trợ nhiều loại hơn MBR. Chúng ta có thể kiểm tra danh sách tất cả các loại được hỗ trợ bằng cách sử dụng lệnh l
.
Xóa Phân vùng
Để xóa một phân vùng, hãy nhập d
và số phân vùng. Không giống như fdisk
, phân vùng đầu tiên sẽ không được chọn tự động nếu nó là phân vùng duy nhất ở trên đĩa.
Trên đĩa GPT, các phân vùng có thể được sắp xếp lại dễ dàng (hoặc là “phân loại”) để tránh các khoảng trống trong chuỗi đánh số. Để làm điều này, ta chỉ cần sử dụng lệnh s
. Ví dụ: hãy tưởng tượng một đĩa có bảng phân vùng như sau:
Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 2 2099200 2361343 128.0 MiB 8300 Linux filesystem 3 2361344 2623487 128.0 MiB 8300 Linux filesystem
Nếu xóa phân vùng thứ hai, bảng sẽ trở thành:
Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 3 2361344 2623487 128.0 MiB 8300 Linux filesystem
Nếu ta sử dụng lệnh s
, nó sẽ trở thành:
Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 Linux filesystem 2 2361344 2623487 128.0 MiB 8300 Linux filesystem
Hãy chú ý việc phân vùng thứ ba đã trở thành phân vùng thứ hai.
Khoảng cách?
Không giống như đĩa MBR, khi tạo phân vùng trên đĩa GPT, kích thước của phân vùng sẽ không bị giới hạn bởi lượng dung lượng liền kề chưa phân bổ tối đa. Ta có thể tận dụng đến tận bit cuối cùng của một cung tự do dù nó nằm ở đâu trên đĩa.
Tùy chọn Khôi phục
Đĩa GPT lưu trữ các bản sao dự phòng của tiêu đề GPT và bảng phân vùng, giúp việc khôi phục đĩa trong trường hợp dữ liệu này bị hỏng trở nên dễ dàng. gdisk
cung cấp các tính năng để hỗ trợ các tác vụ khôi phục đó và ta có thể truy cập chúng bằng lệnh r
.
Chúng ta có thể xây dựng lại bảng phân vùng hoặc tiêu đề GPT chính bị hỏng bằng b
và c
tương ứng hoặc sử dụng tiêu đề và bảng chính để xây dựng lại bản sao lưu bằng d
và e
. Ta cũng có thể chuyển đổi MBR thành GPT bằng f
và làm ngược lại với g
. Nếu nhập ?
trong menu khôi phục ta sẽ nhận được danh sách tất cả các lệnh khôi phục có sẵn cũng như mô tả về chức năng của chúng.
Tạo Hệ thống Tệp
Phân vùng đĩa chỉ là bước đầu tiên khi sử dụng đĩa. Sau đó, chúng ta sẽ cần định dạng phân vùng bằng hệ thống tệp trước khi sử dụng nó để lưu trữ dữ liệu.
Một hệ thống tệp sẽ kiểm soát cách dữ liệu được lưu trữ và truy cập trên đĩa. Linux hỗ trợ nhiều hệ thống tệp, một trong số chúng là thuần Linux (như họ ext - Hệ thống tệp mở rộng), số còn lại đến từ những hệ điều hành khác như FAT từ MS-DOS, NTFS từ Windows NT, HFS và HFS+ từ Mac OS, v.v.
Công cụ tiêu chuẩn được sử dụng để tạo hệ thống tệp trên Linux là mkfs
với nhiều “tuỳ chọn” tùy theo hệ thống tệp mà nó cần hoạt động.
Tạo Hệ thống Tệp ext2/ext3/ext4
Hệ thống Tệp mở rộng (ext) là hệ thống tệp đầu tiên dành cho Linux và qua nhiều năm đã được thay thế bằng các phiên bản mới có tên là ext2, ext3 và ext4. Hiện nay đây là hệ thống tệp mặc định cho nhiều bản phân phối Linux.
Các tiện ích mkfs.ext2
, mkfs.ext3
và mkfs.ext4
được sử dụng để tạo các hệ thống tệp ext2, ext3 và ext4. Trên thực tế, tất cả các “tiện ích” này chỉ tồn tại dưới dạng các liên kết tượng trưng đến một tiện ích khác có tên là mke2fs
. mke2fs
thay đổi các giá trị mặc định của nó theo tên mà nó được gọi. Như vậy, tất cả chúng đều có hành vi và tham số dòng lệnh giống nhau.
Hình thức sử dụng đơn giản nhất là:
# mkfs.ext2 TARGET
Trong đó, TARGET
là tên của phân vùng nơi hệ thống tệp sẽ được tạo. Ví dụ: để tạo hệ thống tệp ext3 trên /dev/sdb1
, lệnh sẽ là:
# mkfs.ext3 /dev/sdb1
Thay vì sử dụng lệnh tương ứng với hệ thống tệp muốn tạo, ta có thể truyền tham số -t
cho mke2fs
, theo sau là tên hệ thống tệp. Ví dụ: các lệnh sau là tương đương và sẽ tạo một hệ thống tệp ext4 trên /dev/sdb1
.
# mkfs.ext4 /dev/sdb1 # mke2fs -t ext4 /dev/sdb1
Tham số Dòng lệnh
mke2fs
hỗ trợ nhiều tùy chọn và tham số dòng lệnh. Dưới đây là một trong những tham số quan trọng nhất. Tất cả những tham số này cũng áp dụng cho mkfs.ext2
, mkfs.ext3
và mkfs.ext4
:
-b SIZE
-
Đặt kích thước của các khối dữ liệu trong thiết bị thành
SIZE
, có thể là 1024, 2048 hoặc 4096 byte cho mỗi khối. -c
-
Kiểm tra thiết bị đích để tìm các khối hỏng trước khi tạo hệ thống tệp. Ta có thể chạy kiểm tra kỹ lưỡng nhưng chậm hơn nhiều bằng cách truyền tham số này hai lần (như trong
mkfs.ext4 -c -c TARGET
). } -d DIRECTORY
-
Sao chép nội dung của thư mục được chỉ định vào thư mục gốc của hệ thống tệp mới. Nó sẽ rất hữu ích nếu ta cần “điền trước” đĩa với một tập hợp tệp được xác định trước.
-F
-
Cẩn thận! Tùy chọn này sẽ buộc mke2fs tạo một hệ thống tệp ngay cả khi các tùy chọn khác được truyền cho nó hoặc khi mục tiêu mang tính nguy hiểm hoặc không có ý nghĩa. Nếu được chỉ định hai lần (như trong
-F -F
), nó thậm chí có thể được sử dụng để tạo hệ thống tệp trên thiết bị đã được gắn kết hoặc đang sử dụng. Đây là một việc rất rất tồi tệ. -L VOLUME_LABEL
-
Sẽ đặt nhãn ổ phân vùng thành nhãn được chỉ định trong
VOLUME_LABEL
. Nhãn này có thể dài tối đa 16 ký tự. -n
-
Đây là một tùy chọn rất hữu ích. Nó sẽ mô phỏng việc tạo hệ thống tệp và hiển thị những gì sẽ được thực hiện nếu được thực thi mà không có tùy chọn
n
. Hãy coi nó như một chế độ “thử nghiệm”. Việc kểm tra mọi thứ trước khi thực sự thực hiện bất kỳ thay đổi nào đối với đĩa là một việc rất hữu ích. -q
-
Chế độ im lặng.
mke2fs
sẽ chạy bình thường nhưng sẽ không tạo ra bất kỳ đầu ra nào trong cửa sổ dòng lệnh. Nó sẽ khá hữu ích khi ta chạymke2fs
từ tệp lệnh. -U ID
-
Thao tác này sẽ đặt UUID (Mã Định danh duy nhất toàn cầu) của một phân vùng thành giá trị được chỉ định làm ID. UUID là các số 128 bit trong ký hiệu thập lục phân dùng để xác định duy nhất một phân vùng cho hệ điều hành. Số này được chỉ định là một chuỗi 32 chữ số ở định dạng 8-4-4-4-12, nghĩa là 8 chữ số, gạch nối, 4 chữ số, gạch nối, 4 chữ số, gạch nối, 4 chữ số, gạch nối, 12 chữ số (như
D249E380 -7719-45A1-813C-35186883987E
). Thay vì ID, ta cũng có thể chỉ định các tham số nhưclear
để xóa UUID của hệ thống tệp,random
để sử dụng UUID được tạo ngẫu nhiên hoặctime
để tạo UUID dựa trên thời gian. -V
-
Chế độ chi tiết: in nhiều thông tin hơn trong quá trình hoạt động so với bình thường. Nó sẽ hữu ích cho mục đích gỡ lỗi.
Tạo một Hệ thống Tệp XFS
XFS là một hệ thống tệp hiệu suất cao do Silicon Graphics phát triển lần đầu tiên vào năm 1993 cho hệ điều hành IRIX của hãng. Do các tính năng về hiệu suất và độ tin cậy nên nó thường được sử dụng cho các máy chủ và các môi trường khác yêu cầu băng thông hệ thống tệp cao (hoặc được bảo đảm).
Các công cụ quản lý hệ thống tệp XFS là một phần của gói xfsprogs
. Gói này có thể sẽ cần được cài đặt thủ công vì nó không mặc định có trong một số bản phân phối Linux. Những hệ điều hành khác (như Red Hat Enterprise Linux 7) sử dụng XFS làm hệ thống tệp mặc định.
Các hệ thống tệp XFS được chia thành ít nhất 2 phần, phần nhật ký nơi lưu trữ nhật ký của tất cả các hoạt động của hệ thống tệp (thường được gọi là Nhật ký) và phần dữ liệu. Phần nhật ký có thể được đặt bên trong phần dữ liệu (hành vi mặc định) hoặc thậm chí trên một đĩa riêng hoàn toàn để có hiệu suất và độ tin cậy cao hơn.
Lệnh cơ bản nhất để tạo hệ thống tệp XFS là mkfs.xfs TARGET
, trong đó, TARGET
là phân vùng cần hệ thống tệp được tạo trong đó (ví dụ: mkfs.xfs /dev/sda1
).
Như trong mke2fs
, mkfs.xfs
cũng hỗ trợ một số tùy chọn dòng lệnh. Dưới đây là một trong số những tuỳ chọn phổ biến nhất.
-b size=VALUE
-
Đặt kích thước khối trên hệ thống tệp (tính bằng byte) thành kích thước được chỉ định trong
VALUE
. Giá trị mặc định là 4096 byte (4 KiB), tối thiểu là 512 và tối đa là 65536 (64 KiB). -m crc=VALUE
-
Các tham số bắt đầu bằng
-m
là các tùy chọn siêu dữ liệu. Tuỳ chọn này sẽ cho phép (nếuVALUE
là1
) hoặc vô hiệu hóa (nếuVALUE
là0
) việc sử dụng kiểm tra CRC32c để xác minh tính toàn vẹn của tất cả các siêu dữ liệu trên đĩa. Điều này cho phép ta phát hiện và khôi phục lỗi tốt hơn sau các sự cố liên quan đến phần cứng. Do đó mà tính năng này được kích hoạt theo mặc định. Tác động hiệu suất của công tác kiểm tra này luôn ở mức tối thiểu nên thông thường không có lý do gì để vô hiệu hóa nó. -m uuid=VALUE
-
Đặt UUID phân vùng thành giá trị được chỉ định trong VALUE. Hãy nhớ rằng UUID là các số gồm 32 ký tự (128 bit) ở cơ sở thập lục phân và được chỉ định trong nhóm 8, 4, 4, 4 và 12 chữ số được phân tách bằng dấu gạch ngang (như
1E83E3A3-3AE9-4AAC-BF7E-29DFFECD36C0
). -f
-
Buộc tạo hệ thống tệp trên thiết bị đích ngay cả khi có một hệ thống tệp được phát hiện trên thiết bị đó.
-l logdev=DEVICE
-
Tuỳ chọn này sẽ đặt phần nhật ký của hệ thống tệp trên thiết bị đã chỉ định thay vì bên trong phần dữ liệu.
-l size=VALUE
-
Tuỳ chọn này sẽ đặt kích thước của phần nhật ký thành kích thước được chỉ định trong
VALUE
. Kích thước có thể được chỉ định bằng byte và có thể sử dụng các hậu tố nhưm
hoặcg
. Ví dụ:-l size=10m
sẽ giới hạn phần nhật ký ở 10 Megabyte. -q
-
Chế độ im lặng. Trong chế độ này,
mkfs.xfs
sẽ không in các tham số của hệ thống tệp được tạo. -L LABEL
-
Thiết lập nhãn hệ thống tệp, có thể dài tối đa 12 ký tự.
-N
-
Tương tự như tham số
-n
củamke2fs
, tuỳ chọn này sẽ làm chomkfs.xfs
in tất cả các tham số để tạo hệ thống tệp mà không thực sự tạo nó.
Tạo Hệ thống Tệp FAT hoặc VFAT
Hệ thống tệp FAT có nguồn gốc từ MS-DOS và qua nhiều năm đã có được nhiều bản sửa đổi, đỉnh cao là định dạng FAT32 được phát hành vào năm 1996 với Windows 95 OSR2.
VFAT là phần mở rộng của định dạng FAT16 với hỗ trợ tên tệp dài (tối đa 255 ký tự). Cả hai hệ thống tệp đều được xử lý bởi cùng một tiện ích là mkfs.fat
. mkfs.vfat
chính là bí danh của nó.
Hệ thống tệp FAT có những nhược điểm quan trọng hạn chế việc sử dụng nó trên các ổ đĩa cứng lớn. Ví dụ: FAT16 hỗ trợ ổ phân vùng có dung lượng tối đa là 4 GB và kích thước tệp tối đa là 2 GB. FAT32 tăng kích thước ổ phân vùng lên tối đa 2 PB và kích thước tệp tối đa lên 4 GB. Do đó, các hệ thống tệp FAT ngày nay được sử dụng phổ biến hơn trên các ổ đĩa flash nhỏ hoặc thẻ nhớ (kích thước tối đa 2 GB) hoặc các thiết bị và hệ điều hành cũ không hỗ trợ các hệ thống tệp nâng cao.
Lệnh cơ bản nhất để tạo hệ thống tệp FAT là mkfs.fat TARGET
, trong đó, TARGET
là phân vùng cần hệ thống tệp được tạo trong đó (ví dụ như mkfs.fat /dev/sdc1
).
Giống như các tiện ích khác, mkfs.fat
cũng hỗ trợ một số tùy chọn dòng lệnh. Dưới đây là những tuỳ chọn quan trọng nhất. Danh sách đầy đủ và mô tả về mọi tùy chọn trong hướng dẫn sử dụng tiện ích sẽ có trong man mkfs.fat
.
-c
-
Kiểm tra thiết bị đích để tìm các khối hỏng trước khi tạo hệ thống tệp.
-C FILENAME BLOCK_COUNT
-
Tạo tệp được chỉ định trong
FILENAME
và sau đó tạo một hệ thống tệp FAT bên trong tệp đó, tạo một “hình ảnh đĩa” trống. Tệp này sau này có thể được ghi vào thiết bị bằng tiện ích nhưdd
hoặc được gắn kết dưới dạng vòng lặp thiết bị. Khi sử dụng tùy chọn này, số khối trong hệ thống tệp (BLOCK_COUNT
) phải được chỉ định sau tên thiết bị. -F SIZE
-
Chọn kích thước của FAT (Bảng phân bổ Tệp) trong khoảng 12, 16 hoặc 32, tức là giữa FAT12, FAT16 hoặc FAT32. Nếu không được chỉ định,
mkfs.fat
sẽ chọn tùy chọn thích hợp dựa trên kích thước hệ thống tệp. -n NAME
-
Đặt nhãn ổ phân vùng hoặc tên cho hệ thống tệp. Tên này có thể dài tối đa 11 ký tự và mặc định là không có tên.
-v
-
Chế độ chi tiết. In nhiều thông tin hơn bình thường, hữu ích cho việc gỡ lỗi.
Note
|
|
Tạo Hệ thống Tệp exFAT
exFAT là một hệ thống tệp do Microsoft tạo ra vào năm 2006 nhằm giải quyết một trong những hạn chế quan trọng nhất của FAT32 là kích thước tệp và đĩa. Trên exFAT, kích thước tệp tối đa là 16 exabyte (từ 4 GB trên FAT32) và kích thước đĩa tối đa là 128 petabyte.
Vì được hỗ trợ tốt bởi cả ba hệ điều hành chính (Windows, Linux và mac OS), đây là một lựa chọn lý tưởng khi người dùng cần khả năng tương tác, chẳng hạn như trên ổ đĩa flash dung lượng lớn, thẻ nhớ và ổ đĩa ngoại vi. Trên thực tế, đây là hệ thống tệp mặc định dành cho thẻ nhớ SDXC lớn hơn 32 GB như đã được Hiệp Hội SD xác định.
Tiện ích mặc định để tạo hệ thống tệp exFAT là mkfs.exfat
- một liên kết đến mkexfatfs
. Lệnh cơ bản nhất là mkfs.exfat TARGET
, trong đó, TARGET
là phân vùng nơi cần tạo hệ thống tệp (ví dụ như mkfs.exfat /dev/sdb2
).
Trái ngược với các tiện ích khác được thảo luận trong bài học này, mkfs.exfat
có rất ít tùy chọn dòng lệnh.
-i VOL_ID
-
Đặt ID ổ phân vùng thành giá trị được chỉ định trong
VOL_ID
. Đây là số thập lục phân 32 bit. Nếu không được xác định, ID dựa trên thời gian hiện tại sẽ được thiết lập -n NAME
-
Đặt nhãn hoặc tên ổ phân vùng. Nó có thể có tối đa 15 ký tự và mặc định là không có tên.
-p SECTOR
-
Chỉ định cung đầu tiên của phân vùng đầu tiên trên đĩa. Đây là một giá trị tùy chọn và mặc định là 0.
-s SECTORS
-
Xác định số lượng cung vật lý trên mỗi cụm phân bổ. Nó phải là lũy thừa của hai, chẳng hạn như 1, 2, 4, 8, v.v.
Làm quen với Hệ thống Tệp Btrfs
Btrfs (được phát âm là “Butter FS”, “Better FS” hoặc thậm chí là “Butterfuss”, tên chính thức là B-Tree Filesystem) là một hệ thống tệp đã được phát triển từ năm 2007 dành riêng cho Linux bởi Tập đoàn Oracle và các công ty khác bao gồm Fujitsu, Red Hat, Intel, SUSE, v.v.
Có nhiều tính năng làm cho Btrfs trở nên hấp dẫn đối với các hệ thống hiện đại nơi dung lượng lưu trữ lớn là rất phổ biến. Những tính năng này gồm có hỗ trợ đa thiết bị (bao gồm phân đoạn, phản chiếu và phân phân đoạn+phản chiếu như trong thiết lập RAID), nén trong suốt, tối ưu hóa SSD, sao lưu gia tăng, chụp hình ảnh tức thời, chống phân mảnh trực tuyến, kiểm tra ngoại tuyến, hỗ trợ cho các ổ phân vùng con (có hạn ngạch), chống trùng lặp và nhiều hơn nữa.
Vì là hệ thống tệp sao chép khi ghi nên nó rất vững khi đứng trước các sự cố. Trên hết, Btrfs rất dễ sử dụng và được hỗ trợ tốt bởi nhiều bản phân phối Linux, một trong số chúng (như SUSE) còn sử dụng nó làm hệ thống tệp mặc định.
Note
|
Trên hệ thống tệp truyền thống, khi người dùng muốn ghi đè lên một phần của tệp, dữ liệu mới sẽ được đặt trực tiếp lên dữ liệu cũ mà nó đang thay thế. Trên hệ thống tệp sao chép khi ghi, dữ liệu mới sẽ được ghi vào không gian trống trên đĩa. Sau đó, siêu dữ liệu ban đầu của tệp sẽ được cập nhật để tham chiếu đến dữ liệu mới và chỉ khi đó dữ liệu cũ mới được giải phóng vì chúng không còn cần thiết nữa. Điều này sẽ làm giảm khả năng mất dữ liệu trong trường hợp xảy ra sự cố vì dữ liệu cũ chỉ bị loại bỏ sau khi hệ thống tệp hoàn toàn chắc chắn rằng nó không còn cần thiết nữa và dữ liệu mới đã được đưa vào. |
Tạo Hệ thống Tệp Btrfs
Tiện ích mkfs.btrfs
được sử dụng để tạo hệ thống tệp Btrfs. Nếu chúng ta sử dụng lệnh này mà không có bất kỳ tùy chọn nào thì nó sẽ tạo hệ thống tệp Btrfs trên một thiết bị nhất định giống như sau:
# mkfs.btrfs /dev/sdb1
Tip
|
Nếu không có tiện ích |
Ta có thể sử dụng -L
để đặt nhãn (hoặc tên) cho hệ thống tệp của mình. Nhãn btrfs có thể có tối đa 256 ký tự ngoại trừ ký tự xuống dòng:
# mkfs.btrfs /dev/sdb1 -L "New Disk"
Tip
|
Hãy đặt nhãn trong dấu trích dẫn kép (như trên) nếu nhãn có khoảng trắng. |
Có một lưu ý đặc biệt về Btrfs: ta có thể truyền đa thiết bị cho lệnh mkfs.btrfs
. Truyền đa thiết bị sẽ mở rộng hệ thống tệp trên tất cả các thiết bị tương tự như thiết lập RAID hoặc LVM. Để chỉ định cách phân phối siêu dữ liệu trong mảng đĩa, hãy sử dụng tham số -m
. Các tham số hợp lệ là raid0
, raid1
, raid5
, raid6
, raid10
, single
và dup
.
Ví dụ: để tạo một hệ thống tệp mở rộng /dev/sdb1
và /dev/sdc1
và nối hai phân vùng thành một phân vùng lớn, hãy sử dụng:
# mkfs.btrfs -d single -m single /dev/sdb /dev/sdc
Warning
|
Các hệ thống tệp mở rộng trên nhiều phân vùng như trên thoạt nhìn có vẻ có nhiều ưu thế nhưng nó lại không phải là một ý hay trên phương diện an toàn dữ liệu vì lỗi trên một đĩa đơn của mảng tương đương với việc mất một số dữ liệu nhất định. Rủi ro sẽ càng lớn khi ta sử dụng nhiều đĩa hơn vì khi đó sẽ có nhiều điểm có thể xảy ra lỗi hơn. |
Quản lý Ổ phân vùng con
Ổ phân vùng con cũng giống như các hệ thống tệp ở bên trong hệ thống tệp. Hãy coi chúng như một thư mục có thể được gắn kết (và được xử lý) như một hệ thống tệp riêng biệt. Các ổ phân vùng con sẽ giúp việc tổ chức và quản trị hệ thống trở nên dễ dàng hơn vì mỗi ổ phân vùng con có thể có hạn ngạch hoặc quy tắc hình ảnh tức thời riêng.
Note
|
Ổ phân vùng con không phải là phân vùng. Một phân vùng sẽ phân bổ một không gian cố định trên ổ đĩa. Điều này có thể dẫn đến các vấn đề liên đới như một phân vùng hết dung lượng trong khi phân vùng khác lại vẫn còn nhiều dung lượng. Với các ổ phân vùng con thì không như vậy vì chúng sẽ "chia sẻ`" dung lượng trống từ hệ thống tệp gốc của mình và mở rộng khi cần thiết. |
Giả sử chúng ta có một hệ thống tệp Btrfs được gắn kết trên /mnt/disk
và muốn tạo một ổ phân vùng con bên trong nó để lưu trữ các bản sao lưu của mình. Hãy gọi nó là BKP
:
# btrfs subvolume create /mnt/disk/BKP
Tiếp theo, chúng ta sẽ liệt kê nội dung của hệ thống tệp /mnt/disk
. Có thể thấy rằng đã có một thư mục mới được đặt tên theo ổ phân vùng con của chúng ta.
$ ls -lh /mnt/disk/ total 0 drwxr-xr-x 1 root root 0 jul 13 17:35 BKP drwxrwxr-x 1 carol carol 988 jul 13 17:30 Images
Note
|
Các ổ phân vùng con cũng có thể được truy cập giống như bất kỳ một thư mục nào khác. |
Chúng ta có thể kiểm tra xem ổ phân vùng con có đang hoạt động hay không bằng lệnh:
# btrfs subvolume show /mnt/disk/BKP/ Name: BKP UUID: e90a1afe-69fa-da4f-9764-3384f66fa32e Parent UUID: - Received UUID: - Creation time: 2019-07-13 17:35:40 -0300 Subvolume ID: 260 Generation: 23 Gen at creation: 22 Parent ID: 5 Top level ID: 5 Flags: - Snapshot(s):
Ta có thể gắn ổ phân vùng con vào /mnt/BKP
bằng cách truyền tham số -t btrfs -o subvol=NAME
cho lệnh mount
:
# mount -t btrfs -o subvol=BKP /dev/sdb1 /mnt/bkp
Note
|
Tham số |
Làm việc với Hình ảnh tức thời
Hình ảnh tức thời (Snapshots) cũng giống như ổ phân vùng con nhưng được điền sẵn nội dung từ đĩa nơi hình ảnh tức thời được chụp.
Khi được tạo, hình ảnh tức thời và ổ phân vùng gốc sẽ có nội dung hoàn toàn giống nhau. Nhưng từ thời điểm đó trở đi, nội dung của chúng sẽ hoàn toàn độc lập. Những thay đổi được thực hiện đối với ổ phân vùng gốc (như tệp được thêm, đổi tên hoặc xóa) sẽ không được phản ánh trên hình ảnh tức thời và ngược lại.
Hãy nhớ rằng hình ảnh tức thời sẽ không nhân bản các tệp và ban đầu hầu như sẽ không chiếm dung lượng đĩa. Nó chỉ đơn giản là sao chép cây hệ thống tệp trong khi trỏ đến dữ liệu gốc.
Lệnh tạo hình ảnh tức thời cũng giống như lệnh được sử dụng để tạo một ổ phân vùng con và chỉ cần thêm tham số snapshot
sau btrfs subvolume
. Lệnh bên dưới sẽ tạo một hình ảnh tức thời của hệ thống tệp Btrfs được gắn kết trong /mnt/disk
trong /mnt/disk/snap
:
# btrfs subvolume snapshot /mnt/disk /mnt/disk/snap
Bây giờ, hãy tưởng tượng rằng chúng ta có những nội dung sau trong /mnt/disk
:
$ ls -lh total 2,8M -rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png -rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg -rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg -rw-rw-r-- 1 carol carol 467K jul 2 11:48 LG-G8S-ThinQ-Mirror-White.jpg -rw-rw-r-- 1 carol carol 654K jul 2 11:39 LG-G8S-ThinQ-Range.jpg -rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg -rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg drwx------ 1 carol carol 366 jul 13 17:56 snap -rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg -rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png
Hãy lưu ý thư mục snap chứa hình ảnh tức thời. Bây giờ, chúng ta sẽ xóa một số tệp và kiểm tra nội dung thư mục: `
$ rm LG-G8S-ThinQ-* $ ls -lh total 1,7M -rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png -rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg -rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg -rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg -rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg drwx------ 1 carol carol 366 jul 13 17:56 snap -rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg -rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png
Tuy nhiên, nếu ta kiểm tra bên trong thư mục snap, các tệp đã xóa vẫn còn đó và có thể được khôi phục nếu cần.
$ ls -lh snap/ total 2,8M -rw-rw-r-- 1 carol carol 109K jul 10 16:22 Galaxy_Note_10.png -rw-rw-r-- 1 carol carol 484K jul 5 15:01 geminoid2.jpg -rw-rw-r-- 1 carol carol 429K jul 5 14:52 geminoid.jpg -rw-rw-r-- 1 carol carol 467K jul 2 11:48 LG-G8S-ThinQ-Mirror-White.jpg -rw-rw-r-- 1 carol carol 654K jul 2 11:39 LG-G8S-ThinQ-Range.jpg -rw-rw-r-- 1 carol carol 94K jul 2 15:43 Mimoji_Comparativo.jpg -rw-rw-r-- 1 carol carol 112K jul 10 16:20 Note10Plus.jpg -rw-rw-r-- 1 carol carol 118K jul 11 16:36 Twitter_Down_20190711.jpg -rw-rw-r-- 1 carol carol 324K jul 2 15:22 Xiaomi_Mimoji.png
Chúng ta cũng có thể tạo hình ảnh tức thời chỉ cho phép đọc. Chúng cũng hoạt động y hệt như các hình ảnh tức thời có thể ghi, điểm khác biệt là nội dung của hình ảnh tức thời không thể thay đổi mà sẽ bị “đóng băng” theo thời gian. Ta chỉ cần thêm tham số -r
khi tạo hình ảnh tức thời:
# btrfs subvolume snapshot -r /mnt/disk /mnt/disk/snap
Vài dòng về tác vụ Nén
Btrfs có hỗ trợ tính năng nén tệp trong suốt với ba thuật toán khác nhau có sẵn. Tính năng này được thực hiện tự động theo từng tệp, miễn là hệ thống tệp được gắn kết với tùy chọn -o compress
. Các thuật toán đủ thông minh để phát hiện ra các tệp không nén được và sẽ không cố nén chúng để giúp tiết kiệm tài nguyên hệ thống. Vì vậy, trên mỗi một thư mục, chúng ta có thể có cả các tệp nén và không nén. Thuật toán nén mặc định là ZLIB, nhưng ngoài ra còn có LZO (nhanh hơn nhưng tỷ lệ nén kém hơn) hoặc ZSTD (nhanh hơn ZLIB với tỷ lệ nén tương đương) với nhiều cấp độ nén (xem các mục tiêu tương ứng trên các tùy chọn gắn kết).
Quản lý Phân vùng bằng GNU Parted
GNU Parted là một trình soạn thảo phân vùng rất mạnh (do đó mà nó có cái tên như vậy) có thể được sử dụng để tạo, xóa, di chuyển, thay đổi kích thước, giải cứu và sao chép phân vùng. Nó có thể hoạt động với cả đĩa GPT và MBR, đồng thời đáp ứng hầu hết mọi nhu cầu quản lý đĩa của người dùng.
Có nhiều giao diện người dùng đồ họa giúp ta làm việc với parted
dễ dàng hơn rất nhiều như GParted dành cho môi trường máy tính để bàn dựa trên GNOME và Trình quản lý Phân vùng KDE dành cho Máy tính để bàn KDE. Tuy nhiên, người dùng nên học cách sử dụng parted
trên dòng lệnh vì chúng ta không thể trông cậy vào việc có sẵn môi trường đồ hoạ máy tính để bàn trong cài đặt máy chủ.
Warning
|
Không giống như |
Cách đơn giản nhất để bắt đầu sử dụng parted
là nhập parted DEVICE
, trong đó, DEVICE
là thiết bị cần quản lý (parted /dev/sdb
). Chương trình sẽ khởi động một giao diện dòng lệnh tương tác như fdisk
và gdisk
với dấu nhắc (parted)
để nhập lệnh.
# parted /dev/sdb GNU Parted 3.2 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
Warning
|
Hãy thật cẩn trọng! Nếu bạn không chỉ định một thiết bị, |
Chọn Đĩa
Để chuyển sang một đĩa khác với đĩa được chỉ định trên dòng lệnh, ta có thể sử dụng lệnh select
, theo sau là tên của thiết bị:
(parted) select /dev/sdb Using /dev/sdb
Nhận Thông tin
Lệnh print
có thể được sử dụng để lấy thêm thông tin về một phân vùng cụ thể hoặc thậm chí là về tất cả các thiết bị khối (đĩa) được kết nối với hệ thống.
Để lấy thông tin về phân vùng hiện được chọn, ta chỉ cần gõ print
:
(parted) print Model: ATA CT120BX500SSD1 (scsi) Disk /dev/sda: 120GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 2097kB 116GB 116GB primary ext4 2 116GB 120GB 4295MB primary linux-swap(v1)
Chúng ta có thể nhận danh sách tất cả các thiết bị khối được kết nối với hệ thống bằng cách sử dụng print devices
:
(parted) print devices /dev/sdb (1999MB) /dev/sda (120GB) /dev/sdc (320GB) /dev/mapper/cryptswap (4294MB)
Để nhận thông tin về tất cả các thiết bị được kết nối cùng một lúc, ta có thể sử dụng print all
. Nếu muốn biết có bao nhiêu dung lượng trống trong mỗi thiết bị, ta có thể sử dụng print free
:
(parted) print free Model: ATA CT120BX500SSD1 (scsi) Disk /dev/sda: 120GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 32.3kB 2097kB 2065kB Free Space 1 2097kB 116GB 116GB primary ext4 116GB 116GB 512B Free Space 2 116GB 120GB 4295MB primary linux-swap(v1) 120GB 120GB 2098kB Free Space
Tạo Bảng Phân vùng trên Đĩa trống
Để tạo bảng phân vùng trên một đĩa trống, hãy sử dụng lệnh mklabel
, theo sau là loại bảng phân vùng cần sử dụng.
Có nhiều loại bảng phân vùng được hỗ trợ, nhưng các loại chính chúng ta nên biết là msdos
được sử dụng để chỉ bảng phân vùng MBR và gpt
để chỉ bảng phân vùng GPT. Để tạo bảng phân vùng MBR, hãy nhập:
(parted) mklabel msdos
Và để tạo bảng phân vùng GPT, lệnh sẽ là:
(parted) mklabel gpt
Tạo một Phân vùng
Để tạo một phân vùng, ta sử dụng lệnh mkpart
với cú pháp mkpart PARTTYPE FSTYPE START END
, trong đó:
PARTTYPE
-
Loại phân vùng, có thể là
primary
(chính),logical
(logic) hoặcextended
(mở rộng) trong trường hợp bảng phân vùng MBR được sử dụng. FSTYPE
-
Chỉ định hệ thống tệp nào sẽ được sử dụng trên phân vùng này. Hãy lưu ý rằng
parted
sẽ không tạo hệ thống tệp. Nó chỉ đặt một cờ trên phân vùng để hệ điều hành biết sẽ có loại dữ liệu nào từ nó. START
-
Chỉ định điểm chính xác trên thiết bị mà phân vùng bắt đầu. Ta có thể sử dụng các đơn vị khác nhau để chỉ định điểm này.
2s
có thể được dùng để chỉ cung thứ hai của đĩa, trong khi1m
là để chỉ phần đầu của megabyte đầu tiên của đĩa. Các đơn vị phổ biến khác làB
(byte) và%
(phần trăm của đĩa). END
-
Chỉ định phần cuối của phân vùng. Hãy lưu ý rằng đây không phải là kích thước của phân vùng mà là điểm trên đĩa mà nó kết thúc. Ví dụ: nếu ta chỉ định
100m
thì phân vùng sẽ đi đến điểm 100 MB sau khi khởi động đĩa. Ta có thể sử dụng các đơn vị giống như trong tham sốSTART
.
Vì vậy, lệnh
(parted) mkpart primary ext4 1m 100m
sẽ tạo một phân vùng chính thuộc loại ext4
bắt đầu từ megabyte đầu tiên của đĩa và kết thúc sau megabyte thứ 100.
Xóa Phân vùng
Để xóa một phân vùng, hãy sử dụng lệnh rm
, theo sau là số phân vùng mà ta có thể hiển thị bằng lệnh print
. Vì vậy, rm 2
sẽ xóa phân vùng thứ hai trên đĩa hiện được chọn.
Khôi phục Phân vùng
parted
có thể khôi phục phân vùng đã bị xóa. Giả sử chúng ta có cấu trúc phân vùng sau:
Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 primary 3 200MB 300MB 99.6MB ext4 primary
Phân vùng 2 đã tình cờ bị xoá bằng rm 2
. Để khôi phục nó, chúng ta có thể sử dụng lệnh rescue
với cú pháp rescue START END
, trong đó, START
là vị trí gần đúng nơi phân vùng bắt đầu và END
là vị trí gần đúng nơi phân vùng kết thúc.
parted
sẽ quét đĩa để tìm kiếm các phân vùng và đề nghị khôi phục mọi phân vùng được tìm thấy. Trong ví dụ trên, phân vùng 2
bắt đầu ở 99,6 MB và kết thúc ở 200 MB. Vì vậy, chúng ta có thể sử dụng lệnh sau để khôi phục phân vùng:
(parted) rescue 90m 210m Information: A ext4 primary partition was found at 99.6MB -> 200MB. Do you want to add it to the partition table? Yes/No/Cancel? y
Lệnh này sẽ phục hồi phân vùng và nội dung của nó. Hãy lưu ý rằng rescue
chỉ có thể khôi phục các phân vùng đã được cài đặt hệ thống tệp trên đó. Phân vùng trống sẽ không được phát hiện.
Thay đổi Kích thước Phân vùng ext2/3/4
parted
có thể được sử dụng để thay đổi kích thước các phân vùng. Tuy nhiên, có một số lưu ý:
-
Trong quá trình thay đổi kích thước, phân vùng phải được ngắt kết nối và không được sử dụng.
-
Cần có đủ dung lượng trống ở sau phân vùng để điều chỉnh nó theo kích thước mong muốn.
Lệnh sẽ là resizepart
, theo sau là số phân vùng và nơi kết thúc. Ví dụ: nếu chúng ta có bảng phân vùng sau:
Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 300MB 99.6MB ext4 primary
Việc điều chỉnh kích thước phân vùng 1
bằng cách sử dụng resizepart
sẽ gây ra thông báo lỗi vì với kích thước mới, phân vùng 1
sẽ chồng lên phân vùng 2
. Tuy nhiên, phân vùng 3
có thể được thay đổi kích thước vì có dung lượng trống phía sau nó. Việc này có thể được xác minh bằng lệnh print free
:
(parted) print free Model: Kingston DataTraveler 2.0 (scsi) Disk /dev/sdb: 1999MB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 17.4kB 1049kB 1031kB Free Space 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 300MB 99.6MB ext4 primary 300MB 1999MB 1699MB Free Space
Vì vậy, ta có thể sử dụng lệnh sau để thay đổi kích thước phân vùng 3 thành 350 MB:
(parted) resizepart 3 350m (parted) print Model: Kingston DataTraveler 2.0 (scsi) Disk /dev/sdb: 1999MB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 350MB 150MB ext4 primary
Hãy nhớ rằng điểm cuối mới được chỉ định tính từ điểm bắt đầu của đĩa. Do đó, vì phân vùng 3
đã kết thúc ở mức 300 MB nên bây giờ nó cần kết thúc ở mức 350 MB.
Tuy nhiên, việc thay đổi kích thước phân vùng chỉ là một phần của tác vụ. Chúng ta cũng cần thay đổi kích thước của hệ thống tệp nằm trong đó nữa. Đối với hệ thống tệp ext2/3/4, việc này có thể được thực hiện bằng lệnh resize2fs
. Trong trường hợp ví dụ trên, phân vùng 3 vẫn hiển thị kích thước “cũ” khi được gắn kết:
$ df -h /dev/sdb3 Filesystem Size Used Avail Use% Mounted on /dev/sdb3 88M 1.6M 80M 2% /media/carol/part3
Để điều chỉnh kích thước, chúng ta có thể sử dụng lệnh resize2fs DEVICE SIZE
, trong đó, DEVICE
tương ứng với phân vùng ta muốn thay đổi kích thước và SIZE
là kích thước mới. Nếu bỏ qua tham số kích thước, lệnh sẽ sử dụng toàn bộ dung lượng có sẵn của phân vùng. Trước khi thay đổi kích thước, chúng ta nên ngắt gắn kết phân vùng.
Trong ví dụ trên:
$ sudo resize2fs /dev/sdb3 resize2fs 1.44.6 (5-Mar-2019) Resizing the filesystem on /dev/sdb3 to 146212 (1k) blocks. The filesystem on /dev/sdb3 is now 146212 (1k) blocks long. $ df -h /dev/sdb3 Filesystem Size Used Avail Use% Mounted on /dev/sdb3 135M 1.6M 123M 2% /media/carol/part3
Để thu hẹp một phân vùng, tiến trình cần được thực hiện theo thứ tự ngược lại. Đầu tiên, ta sẽ thay đổi kích thước hệ thống tệp thành kích thước mới nhỏ hơn, sau đó thay đổi kích thước của chính phân vùng đó bằng cách sử dụng parted
.
Warning
|
Hãy chú ý khi thu hẹp phân vùng. Nếu làm sai thứ tự, bạn sẽ bị mất dữ liệu! |
Trong ví dụ của chúng ta:
# resize2fs /dev/sdb3 88m resize2fs 1.44.6 (5-Mar-2019) Resizing the filesystem on /dev/sdb3 to 90112 (1k) blocks. The filesystem on /dev/sdb3 is now 90112 (1k) blocks long. # parted /dev/sdb3 (parted) resizepart 3 300m Warning: Shrinking a partition can cause data loss, are you sure you want to continue? Yes/No? y (parted) print Model: Kingston DataTraveler 2.0 (scsi) Disk /dev/sdb: 1999MB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 99.6MB 98.6MB ext4 primary 2 99.6MB 200MB 100MB ext4 3 200MB 300MB 99.7MB ext4 primary
Tip
|
Thay vì chỉ định kích thước mới, ta có thể sử dụng tham số |
Tạo Phân vùng Hoán đổi
Trên Linux, hệ thống có thể hoán đổi các trang bộ nhớ từ RAM sang đĩa khi cần. Việc lưu trữ chúng trên một dung lượng riêng biệt thường được triển khai dưới dạng một phân vùng riêng trên một đĩa được gọi là phân vùng hoán đổi hoặc đơn giản là hoán đổi. Phân vùng này cần phải thuộc một loại cụ thể và được thiết lập với tiện ích thích hợp (mkswap
) trước khi có thể được sử dụng.
Để tạo một phân vùng hoán đổi bằng cách sử dụng fdisk
hoặc gdisk
, chúng ta chỉ cần tiến hành giống như khi tạo một phân vùng thông thường như đã được giải thích ở trên. Sự khác biệt duy nhất là ta cần thay đổi loại phân vùng thành Linux swap.
-
Trên
fdisk
, hãy sử dụng lệnht
, chọn phân vùng muốn sử dụng và thay đổi loại của nó thành82
, ghi các thay đổi vào đĩa và thoát bằngw
. -
Trên
gdisk
, lệnh thay đổi loại phân vùng cũng làt
nhưng mã lại là8200
. Sau khi ghi các thay đổi vào đĩa, hãy thoát bằngw
.
Nếu đang sử dụng parted
, phân vùng đó phải được xác định là phân vùng hoán đổi trong quá trình tạo. Ta chỉ cần sử dụng linux-swap
làm loại hệ thống tệp. Ví dụ: lệnh tạo phân vùng hoán đổi 500 MB, bắt đầu từ 300 MB trên đĩa sẽ là:
(parted) mkpart primary linux-swap 301m 800m
Sau khi phân vùng được tạo và xác định chính xác, chúng ta chỉ cần sử dụng mkswap
, theo sau là thiết bị đại diện cho phân vùng muốn sử dụng, chẳng hạn như:
# mkswap /dev/sda2
Để làm tính năng hoán đổi trên phân vùng này khả dụng, hãy sử dụng swapon
, theo sau là tên thiết bị:
# swapon /dev/sda2
Tương tự, swapoff
đi cùng với tên thiết bị sẽ tắt tính năng hoán đổi trên thiết bị đó.
Linux cũng hỗ trợ sử dụng tệp hoán đổi thay vì phân vùng hoán đổi. Ta chỉ cần tạo một tệp trống có kích thước tuỳ thích bằng cách sử dụng dd
, sau đó sử dụng mkswap
và swapon
với tệp này làm mục tiêu.
Các lệnh sau sẽ tạo một tệp 1 GB có tên myswap
trong thư mục hiện tại chứa đầy các số 0, sau đó thiết lập và kích hoạt tệp dưới dạng tệp hoán đổi.
Tạo tệp hoán đổi:
$ dd if=/dev/zero of=myswap bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 7.49254 s, 143 MB/s
if=
là tệp đầu vào, nguồn dữ liệu sẽ được ghi vào tệp này. Trong trường hợp này sẽ là thiết bị /dev/zero
có thể cung cấp bao nhiêu ký tự NULL
theo yêu cầu cũng được. of=
là tệp đầu ra, tức tệp sẽ được tạo. bs=
là kích thước của các khối dữ liệu (ở đây được chỉ định bằng Megabyte) và count=
là số lượng khối được ghi vào đầu ra. 1024 khối 1 MB sẽ bằng một 1 GB.
# mkswap myswap Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=49c53bc4-c4b1-4a8b-a613-8f42cb275b2b # swapon myswap
Bằng cách sử dụng các lệnh trên, tệp hoán đổi này sẽ chỉ được sử dụng trong phiên hệ thống hiện tại. Nếu khởi động lại máy, tệp vẫn sẽ có sẵn nhưng sẽ không được tải tự động. Ta có thể tự động hóa việc này bằng cách thêm tệp hoán đổi mới vào /etc/fstab
. Vấn đề này sẽ được thảo luận trong bài học sau.
Tip
|
Cả |
Bài tập Hướng dẫn
-
Nên sử dụng lược đồ phân vùng nào để phân vùng một ổ cứng 3TB thành ba phân vùng 1 GB? Tại sao?
-
Trên
gdisk
, làm cách nào để có thể biết đĩa còn bao nhiêu dung lượng trống? -
Lệnh tạo hệ thống tệp ext3, kiểm tra các khối hỏng trước đó (với nhãn
MyDisk
và UUID ngẫu nhiên) trên thiết bị/dev/sdc1
là gì? -
Bằng cách sử dụng
parted
, lệnh tạo phân vùng ext4 300 MB bắt đầu từ 500 MB trên đĩa là gì? -
Hãy tưởng tượng bạn có 2 phân vùng, một trên
/dev/sda1
và một trên/dev/sda2
, cả hai đều có kích thước 20 GB. Làm cách nào để có thể sử dụng chúng trên một hệ thống tệp Btrfs duy nhất theo cách mà nội dung của một phân vùng sẽ tự động được phản chiếu trên phân vùng còn lại giống như trên thiết lập RAID1? Hệ thống tệp sẽ lớn đến mức nào?
Bài tập Mở rộng
-
Hãy xem xét một đĩa 2 GB có bảng phân vùng MBR và cách bố trí sau:
Disk /dev/sdb: 1.9 GiB, 1998631936 bytes, 3903578 sectors Disk model: DataTraveler 2.0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x31a83a48 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 1050623 1048576 512M 83 Linux /dev/sdb3 2099200 3147775 1048576 512M 83 Linux
Bạn có thể tạo phân vùng 600 MB trên đó không? Tại sao?
-
Trên đĩa tại
/dev/sdc
, chúng ta có phân vùng đầu tiên là 1 GB chứa khoảng 256 MB tệp. Bằng cách sử dụngparted
, bạn sẽ thu hẹp nó như thế nào để nó có đủ dung lượng cho các tệp? -
Hãy tưởng tượng bạn có một ổ đĩa tại
/dev/sdb
và bạn muốn tạo một phân vùng hoán đổi 1 GB tại điểm bắt đầu của phân vùng đó. Vì vậy, bằng cách sử dụngparted
, bạn đã tạo phân vùng vớimkpart primary linux-swap 0 1024M
. Sau đó, bạn kích hoạt tính năng hoán đổi trên phân vùng này vớiswapon /dev/sdb1
nhưng nhận được thông báo lỗi sau:swapon: /dev/sdb1: read swap header failed
Lỗi là do đâu?
-
Xuyên suốt bài học này, bạn đã thử một số lệnh trong
parted
. Nhưng do nhầm lẫn nên bạn đã xóa phân vùng thứ 3 trên ổ cứng. Bạn biết rằng nó xuất hiện sau phân vùng UEFI 250 MB và phân vùng hoán đổi 4 GB và có kích thước 10 GB. Bạn có thể sử dụng lệnh nào để khôi phục nó? -
Hãy tưởng tượng bạn có một phân vùng 4 GB chưa sử dụng trên
/dev/sda3
. Bằng cách sử dụngfdisk
, trình tự thao tác sẽ như thế nào để biến nó thành một phân vùng được kích hoạt tính năng hoán đổi?
Tóm tắt
Trong bài học này, chúng ta đã học về:
-
Cách tạo bảng phân vùng MBR trên đĩa bằng
fdisk
và cách sử dụng nó để tạo và xóa phân vùng. -
Cách tạo bảng phân vùng MBR trên đĩa bằng
gdisk
và cách sử dụng nó để tạo và xóa phân vùng. -
Cách tạo phân vùng ext2, ext3, ext4, XFS, VFAT và exFAT.
-
Cách sử dụng
parted
để tạo, xóa và khôi phục phân vùng trên cả đĩa MBR và GPT. -
Cách thay đổi kích thước phân vùng ext2, ext3, ext4 và Brts.
-
Cách tạo, thiết lập và kích hoạt phân vùng hoán đổi và tệp hoán đổi.
Các lệnh sau đã được thảo luận trong bài học này:
-
fdisk
-
gdisk
-
mkfs.ext2
,mkfs.ext3
,mkfs.ext4
,mkfs.xfs
,mkfs.vfat
vàmkfs.exfat
-
parted
-
btrfs
-
mkswap
-
swapon
vàswapoff
Đáp án Bài tập Hướng dẫn
-
Nên sử dụng lược đồ phân vùng nào để phân vùng một ổ cứng 3TB thành ba phân vùng 1 GB? Tại sao?
GPT, vì MBR hỗ trợ tối đa 2TB ổ cứng.
-
Trên
gdisk
, làm cách nào để có thể biết đĩa còn bao nhiêu dung lượng trống?Sử dụng
p
(in). Tổng dung lượng trống sẽ được hiển thị dưới dạng dòng thông tin cuối cùng trước bảng phân vùng. -
Lệnh tạo hệ thống tệp ext3, kiểm tra các khối hỏng trước đó (với nhãn
MyDisk
và UUID ngẫu nhiên) trên thiết bị/dev/sdc1
là gì?Lệnh sẽ là
mkfs.ext3 -c -L MyDisk -U random /dev/sdc1
. Ngoài ra,mke2fs -t ext3
cũng có thể được sử dụng thay vìmkfs.ext3
-
Bằng cách sử dụng
parted
, lệnh tạo phân vùng ext4 300 MB bắt đầu từ 500 MB trên đĩa là gì?Sử dụng
mkpart chính ext4 500m 800m
. Hãy nhớ rằng bạn sẽ phải tạo hệ thống tệp bằng cách sử dụngmkfs.ext4
vì parted không làm được điều này. -
Hãy tưởng tượng bạn có 2 phân vùng, một trên
/dev/sda1
và một trên/dev/sda2
, cả hai đều có kích thước 20 GB. Làm cách nào để có thể sử dụng chúng trên một hệ thống tệp Btrfs duy nhất theo cách mà nội dung của một phân vùng sẽ tự động được phản chiếu trên phân vùng còn lại giống như trên thiết lập RAID1? Hệ thống tệp sẽ lớn đến mức nào?Sử dụng
mkfs.btrfs /dev/sda1 /dev/sdb1 -m raid1
. Hệ thống tệp kết quả sẽ có kích thước 20 GB vì một phân vùng sẽ hoạt động đơn thuần như một bản sao của phân vùng còn lại.
Đáp án Bài tập Mở rộng
-
Hãy xem xét một đĩa 2 GB có bảng phân vùng MBR và cách bố trí sau:
Disk /dev/sdb: 1.9 GiB, 1998631936 bytes, 3903578 sectors Disk model: DataTraveler 2.0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x31a83a48 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 1050623 1048576 512M 83 Linux /dev/sdb3 2099200 3147775 1048576 512M 83 Linux
Bạn có thể tạo phân vùng 600 MB trên đó không? Tại sao?
Không thể, lý do là vì không có đủ dung lượng liền kề. Manh mối đầu tiên cho thấy có vấn đề gì đó “không ổn” là danh sách thiết bị: bạn có
/dev/sdb1
và/dev/sdb3
nhưng không có/dev/sdb2
. Điều này có nghĩa là đang thiếu thiết bị.Sau đó, bạn cần xem nơi một phân vùng kết thúc và phân vùng khác bắt đầu. Phân vùng 1 kết thúc tại cung số
1050623
và phân vùng 2 bắt đầu tại2099200
. Đó là một “khoảng trống” gồm 1048577 cung. Với mỗi cung là 512 byte, khoảng trống đó sẽ là 536.871.424 byte. Nếu bạn chia nó cho 1024, bạn sẽ nhận được 524,288 Kilobyte. Chia lại cho 1024 và bạn nhận được… 512 MB. Đây là kích thước của “khoảng trống”.Nếu đĩa có dung lượng là 2 GB thì chúng ta có tối đa 512 MB sau phân vùng 3. Ngay cả khi ta có tổng cộng khoảng 1 GB chưa được phân bổ thì khối liền kề lớn nhất vẫn là 512 MB. Vì vậy, ta sẽ không có dung lượng cho một phân vùng 600 MB.
-
Trên đĩa tại
/dev/sdc
, chúng ta có phân vùng đầu tiên là 1 GB chứa khoảng 256 MB tệp. Bằng cách sử dụngparted
, bạn sẽ thu hẹp nó như thế nào để nó có đủ dung lượng cho các tệp?Đây là một hoạt động gồm nhiều phần. Trước tiên, bạn phải thu nhỏ hệ thống tệp bằng cách sử dụng
resize2fs
. Thay vì chỉ định trực tiếp kích thước mới, bạn có thể sử dụng tham số-M
để nó chỉ “vừa đủ lớn”. Vì vậy nên ta córesize2fs -M /dev/sdc1
.Sau đó, bạn sẽ thay đổi kích thước phân vùng bằng cách sử dụng
resizepart
. Vì đây là phân vùng đầu tiên nên chúng ta có thể giả sử rằng nó bắt đầu ở 0 và kết thúc ở 241 MB. Vì vậy, lệnh sẽ làresizepart 1 241M
. -
Hãy tưởng tượng bạn có một ổ đĩa tại
/dev/sdb
và bạn muốn tạo một phân vùng hoán đổi 1 GB tại điểm bắt đầu của phân vùng đó. Vì vậy, bằng cách sử dụngparted
, bạn đã tạo phân vùng vớimkpart primary linux-swap 0 1024M
. Sau đó, bạn kích hoạt tính năng hoán đổi trên phân vùng này vớiswapon /dev/sdb1
nhưng nhận được thông báo lỗi sau:swapon: /dev/sdb1: read swap header failed
Lỗi là do đâu?
Bạn đã tạo một phân vùng đúng loại (
linux-swap
), nhưng hãy nhớ rằngmkpart
sẽ không tạo hệ thống tệp. Bạn đã quên thiết lập phân vùng dưới dạng dung lượng hoán đổi vớimkswap
trước khi sử dụng. -
Xuyên suốt bài học này, bạn đã thử một số lệnh trong
parted
. Nhưng do nhầm lẫn nên bạn đã xóa phân vùng thứ 3 trên ổ cứng. Bạn biết rằng nó xuất hiện sau phân vùng UEFI 250 MB và phân vùng hoán đổi 4 GB và có kích thước 10 GB. Bạn có thể sử dụng lệnh nào để khôi phục nó?Đừng hoảng hốt, bạn có đủ tất cả những thông tin cần thiết để khôi phục phân vùng. Bạn chỉ cần sử dụng
rescue
và thực hiện phép toán. Bạn đã có 250 MB + 4,096 MB (4*1024) trước đó. Do đó, điểm bắt đầu phải vào khoảng 4346 MB. Cộng với kích thước 10,240 MB (10*1024), nó sẽ kết thúc ở 14,586 MB. Vì vậy,rescue 4346m 14586m
sẽ là câu trả lời. Bạn sẽ phải “thông cảm” cho lệnh rescue vì nó có thể bị chênh một chút ở điểm bắt đầu hoặc kết thúc, tùy thuộc vào hình dạng đĩa của bạn. -
Hãy tưởng tượng bạn có một phân vùng 4 GB chưa sử dụng trên
/dev/sda3
. Bằng cách sử dụngfdisk
, trình tự thao tác sẽ như thế nào để biến nó thành một phân vùng được kích hoạt tính năng hoán đổi?Đầu tiên, hãy thay đổi loại phân vùng thành “Linux Swap” (82), ghi các thay đổi của bạn vào đĩa và thoát. Sau đó, hãy sử dụng
mkswap
để thiết lập phân vùng làm vùng hoán đổi. Sau đó, hãy sử dụngswapon
để kích hoạt nó.