Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Parted: Tạo và quản lý phân vùng đĩa trên Linux

Parted là công cụ PARTition EDitor cho Linux để tạo, định dạng, xóa, thu nhỏ và mở rộng các phân vùng đĩa. Công cụ này dễ sử dụng và có sẵn trong hầu hết các bản phân phối Unix/Linux. Phiên bản GUI cũng có sẵn, gọi là Gparted. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách quản lý phân vùng đĩa bằng parted trên CentOS Linux (hoạt động tương tự trên các bản phân phối Linux khác). Parted là đối ứng của công cụ diskpart trên Windows.

Cách cài đặt Parted trên Linux?

Cập nhật phần mềm trên máy chủ Linux và cài đặt gói parted bằng trình quản lý gói của bản phân phối Linux bạn dùng. Trên CentOS 8 với trình quản lý gói dnf (thay thế yum), bạn có thể cài đặt parted từ kho cơ bản bằng lệnh:

# dnf update -y
# dnf install parted -y

Parted: Tạo và quản lý phân vùng đĩa trên Linux

Hoặc trên Debian/Ubuntu:

# apt-get install parted

Để kiểm tra phiên bản công cụ, chạy lệnh sau:

# parted –v
parted (GNU parted) 3.2

Parted: Tạo và quản lý phân vùng đĩa trên Linux

Để sử dụng parted, nhập:

# parted
GNU Parted 3.2
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.

Quản lý bảng phân vùng với Parted

Hiển thị danh sách các đĩa có sẵn:

# print

Hoặc sử dụng parted:

$ sudo parted -l

Parted: Tạo và quản lý phân vùng đĩa trên Linux

Có một đĩa 21 GB là /dev/vdb chưa có nhãn được gán (error /dev/vdb: unrecognized disk label).

Bạn có thể tạo bảng phân vùng msdos (MBR) trên đĩa:

# mklabel msdos

Hoặc bảng phân vùng gpt (GUID partition table hỗ trợ kích thước phân vùng trên 2 TB):

# mklabel gpt

Lưu ý rằng khác với fdisk, parted không có lệnh ghi thay đổi. Tất cả thay đổi được áp dụng ngay lập tức.

Sau đó parted sẽ hiển thị loại bảng phân vùng (bố cục) trên đĩa:

(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags

Như bạn thấy, có bảng phân vùng MBR trên đĩa, nhưng chưa tạo phân vùng nào.

Nếu bạn có nhiều đĩa trên máy chủ, bạn có thể chuyển đổi giữa chúng bằng lệnh:

# select /dev/diskname

Cách tạo phân vùng mới với Parted?

Lệnh mkpart được dùng để tạo phân vùng mới trong parted. Sau khi chạy lệnh này ở chế độ tương tác, các câu hỏi về tham số của phân vùng mới sẽ xuất hiện.

Parted: Tạo và quản lý phân vùng đĩa trên Linux

  • Partition type — chỉ định loại phân vùng (primary hoặc extended)
  • File system type — đặt hệ thống tệp. ext2 được cung cấp mặc định (sẽ thay đổi sau);
  • Start là sector khởi đầu của phân vùng;
  • End là sector cuối cùng của phân vùng (tính bằng megabyte). Trong ví dụ, chúng ta nhập 5,000, nghĩa là sẽ tạo phân vùng 5 GB.

Để hiển thị dung lượng trống còn lại trên đĩa, dùng lệnh:

(parted) print free

Bạn có thể tạo phân vùng trải dài toàn bộ đĩa:

# (parted) mkpart primary 0 0

hoặc chỉ định kích thước phân vùng bất kỳ như sau:

# (parted) mkpart primary 0 1GB

Bạn cũng có thể đặt kích thước phân vùng theo % và gán nhãn:

# (parted) mkpart "home part" ext4 2.5GiB 100%

Để thoát parted, chạy lệnh:

# quit

Hãy định dạng phân vùng sang hệ thống tệp ext4:

# mkfs.ext4 /dev/vdb1
mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 1220352 4k blocks and 305216 inodes
Filesystem UUID: 5c9daa97-c0f4-44bc-9cfa-f466ebd8895e
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

Kiểm tra hệ thống tệp của phân vùng và đảm bảo nó đã thay đổi (lưu ý lệnh print hiển thị danh sách phân vùng trên đĩa, số thứ tự, loại, kích thước và hệ thống tệp).

Parted: Tạo và quản lý phân vùng đĩa trên Linux

Bạn có thể tạo phân vùng và định dạng nó mà không cần vào shell parted. Sử dụng lệnh một dòng sau:

# parted -a opt /dev/vdb mkpart primary ext4 0% 100% && mkfs.ext4 /dev/vda1

Sử dụng lệnh này, chúng ta sẽ tạo phân vùng trên đĩa vdb và cấp phát toàn bộ không gian trống cho nó.

Như vậy, bạn có thể làm cho công việc dễ dàng hơn hoặc thêm các lệnh tương tự vào script bash hoặc file kickstart.

Cách thay đổi kích thước (Mở rộng hoặc Thu nhỏ) phân vùng với Parted?

Để mở rộng hoặc thu nhỏ kích thước phân vùng, lệnh con resizepart được dùng trong parted. Bạn có thể thay đổi kích thước phân vùng tương tác. Chạy lệnh sau trong parted:

# resizepart

Hãy umount các phân vùng với hệ thống tệp ext2/3/4 trước khi thay đổi kích thước.

Công cụ sẽ nhắc bạn nhập số phân vùng (có thể lấy từ đầu ra print) và kích thước cuối cùng của phân vùng. Trong ví dụ này, kích thước phân vùng sẽ được mở rộng từ 5 lên 10 GB:

(parted) resizepart
Partition number? 1
End? [5000MB]? 10000

Parted: Tạo và quản lý phân vùng đĩa trên Linux

Trước tiên, mở rộng phân vùng, sau đó mở rộng hệ thống tệp trên nó. Nếu bạn thu nhỏ phân vùng, bạn phải giảm kích thước hệ thống tệp trước, rồi mới giảm phân vùng. Nếu không, bạn có thể mất dữ liệu.

Để giảm kích thước hệ thống tệp, các lệnh sau được dùng. Cho hệ thống tệp ext2/3/4:

resize2fs /dev/sdab size

Cho Btrfs:

btrfs filesystem resize /dev/sdab size

Bạn cũng có thể thay đổi cờ phân vùng trong parted. Bạn có thể đặt cờ bạn muốn:

  • boot
  • root
  • swap
  • hidden
  • raid
  • lvm
  • lba
  • legacy_boot
  • irst
  • esp
  • palo

Ví dụ, hãy đánh dấu phân vùng là có thể boot:

# set 1 boot on

Parted: Tạo và quản lý phân vùng đĩa trên Linux

Xóa phân vùng với Parted

Nếu bạn muốn xóa một phân vùng trên đĩa, bạn có thể dùng lệnh rm trong parted:

# rm 1

Lệnh sẽ xóa phân vùng có số 1:

(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Hãy cẩn thận với lệnh này, vì nó không yêu cầu xác nhận xóa.

Cách khôi phục phân vùng đĩa bị xóa nhầm với Rescue?

Bạn có thể khôi phục phân vùng bị xóa bằng công cụ rescue có sẵn trong parted:

# rescue

Lệnh sẽ yêu cầu bạn nhập kích thước bắt đầu và kết thúc của phân vùng. Nếu có thông tin về phân vùng ở các vị trí này, lệnh sẽ cố gắng khôi phục phân vùng đã xóa.

Parted: Tạo và quản lý phân vùng đĩa trên Linux

Như bạn thấy, parted dễ sử dụng và rất tiện lợi để tạo/sửa đổi phân vùng đĩa.