Quản lý phân vùng đĩa bằng Parted Tool trong CentOS 7

Là quản trị viên hệ thống, đôi khi bạn có thể yêu cầu quản lý các phân vùng của Hệ điều hành Linux CentOS/Red Hat của mình. Quản lý phân vùng luôn là một nhiệm vụ rủi ro. Nhưng có một số công cụ hữu ích rất hữu ích để quản lý phân vùng đĩa CentOS/Red Hat Linux một cách dễ dàng. Trong bài viết trước của tôi, tôi đã thảo luận về cách quản lý phân vùng ổ cứng CentOS/Red Hat 7 bằng tiện ích fdisk . Công cụ fdisk chỉ đủ điều kiện để quản lý bảng phân vùng MBR. Nhưng bảng phân vùng GPT hiện đang trở nên phổ biến hơn. Mặt khác, công cụ fdisk không thể thay đổi kích thước (thu nhỏ hoặc mở rộng) một phân vùng. Để khắc phục những hạn chế này, chúng ta có thể sử dụng một công cụ quản lý phân vùng khác có tên là partedcó thể xử lý bảng phân vùng GPT cũng như có thể thay đổi kích thước phân vùng đĩa. Trong bài viết này, chúng ta sẽ biết cách tạo, xóa, thay đổi kích thước và cứu phân vùng trong CentOS 7/Red Hat 7 Linux bằng công cụ quản lý phân vùng đã chia.

Tiện ích đã chia tay

Parted là mã nguồn mở và tiện ích dòng lệnh được sử dụng để quản lý các phân vùng đĩa cứng. Nó hỗ trợ nhiều định dạng bảng phân vùng bao gồm MS-DOS (MBR) và GPT . Nó rất hữu ích để tạo không gian cho hệ điều hành mới, tổ chức lại việc sử dụng đĩa và sao chép dữ liệu sang đĩa cứng mới.

Cài đặt parted trong CentOS 7/Red Hat 7 Linux

Công cụ chia tay được cài đặt và kích hoạt mặc định trong CentOS 7/Red Hat 7 Linux. Nhưng đôi khi bạn có thể không nhận được tất cả các tính năng trong công cụ chia tay mặc định. Vì vậy, tốt hơn là cài đặt lại. Đăng nhập vào CentOS 7/Red Hat 7 Linux của bạn và đưa ra lệnh sau để cài đặt nó.

[root@localhost ~]# yum install parted -y

Sau khi cài đặt tiện ích parted, chỉ cần gõ lệnh parted từ CLI của bạn và bạn sẽ tìm thấy đầu ra bên dưới.

[root@localhost ~]# parted

GNU Parted 3.1

Using /dev/sda

Welcome to GNU Parted! Type ‘help’ to view a list of commands.

(parted)

Đầu ra ở trên đang hiển thị phiên bản được chia và đĩa đang được sử dụng bởi phần được chia. Nếu thiết bị không được đề cập làm đối số, lệnh parted theo mặc định sẽ sử dụng ổ đĩa cứng đầu tiên. Để hiển thị ổ đĩa có sẵn, hãy đưa ra lệnh sau.

(parted) print all

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sda: 21.5GB

Sector size (logical/physical): 512B/512B

Partition Table: msdos

Disk Flags:

Number  Start   End     Size    Type     File system     Flags

1      1049kB  525MB   524MB   primary  xfs             boot

2      525MB   2673MB  2147MB  primary  linux-swap(v1)

3      2673MB  21.5GB  18.8GB  primary  xfs

Error: /dev/sdb: unrecognised disk label

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

Sector size (logical/physical): 512B/512B

Partition Table: unknown

Disk Flags:

(parted)

Now we can see that there are two hard disk drives (/dev/sda and /dev/sdb) in our system. The /dev/sda is being used by the system partition. So, to switch the second disk drive, issue the following command.

(parted) select /dev/sdb

Using /dev/sdb

(parted)

Bây giờ đĩa cứng thứ hai đang được sử dụng bởi chương trình đã chia tay. Để nhận các lệnh có sẵn trong chương trình đã chia, hãy đưa ra lệnh trợ giúp và bạn sẽ nhận được danh sách lệnh với mô tả ngắn.

(parted) help

Lệnh trợ giúp sẽ hiển thị các lệnh có thể được sử dụng trong chương trình đã chia để tạo, xóa, cứu hoặc thay đổi kích thước phân vùng.

Tạo phân vùng bằng Parted Tool trong CentOS 7 Linux

Để tạo một phân vùng mới bằng công cụ chia tay, ổ đĩa phải có dung lượng trống. Vì /dev/sda không có dung lượng trống nên chúng tôi sẽ tạo một phân vùng mới trong đĩa /dev/sdb. Vì vậy, hãy bắt đầu chương trình đã chia tay bằng cách chọn đĩa /dev/sdb và đưa ra lệnh in để hiển thị trạng thái đĩa.

[root@localhost ~]# parted /dev/sdb

GNU Parted 3.1

Using /dev/sdb

Welcome to GNU Parted! Type ‘help’ to view a list of commands.

(parted) print

Error: /dev/sdb: unrecognised disk label

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

Sector size (logical/physical): 512B/512B

Partition Table: unknown

Disk Flags:

(parted)

Đầu ra ở trên cho thấy /dev/sdb là một đĩa thô và hiện có phân vùng trong đó. Đầu ra cũng cho thấy rằng đĩa /dev/sdb không được gán bảng phân vùng. Vì vậy, đầu tiên chúng ta sẽ xác định bảng phân vùng và sau đó tạo phân vùng mới. Đưa ra lệnh sau để xác định bảng phân vùng cho đĩa /dev/sdb.

(parted) mktable gpt

(parted) print

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

 

Number  Start  End  Size  File system  Name  Flags

(parted)

Bảng phân vùng GPT hiện được xác định cho đĩa /dev/sdb. Nếu bạn muốn sử dụng phân vùng MBR, hãy cung cấp đối số msdos cho lệnh mktable.

Để tạo phân vùng mới, hãy dùng lệnh mkpart. [Lệnh mkpart sẽ hỏi loại phân vùng, hệ thống tệp, vị trí bắt đầu và kết thúc cho phân vùng mới. Bạn sẽ tìm thấy các tùy chọn khả dụng cho các đối số bằng lệnh trợ giúp mkpart ].

(parted) mkpart

Partition name?  []? primary

File system type?  [ext2]? xfs

Start? 0

End? 2GB

(parted)

Đầu tiên, lệnh mkpart sẽ hỏi loại phân vùng hoặc tên. Vì chúng tôi muốn tạo phân vùng chính, hãy nhập chính vào đây.

Thứ hai, nó sẽ yêu cầu loại Hệ thống tệp. Chúng tôi muốn tạo hệ thống tệp xfs.

Thứ ba, nó sẽ yêu cầu vị trí bắt đầu. Đơn vị mặc định được sử dụng bởi chương trình chia tay là MB. Chúng tôi muốn tạo một phân vùng 2 GB. Vì đây là phân vùng đầu tiên của chúng tôi, chúng tôi đã bắt đầu từ vị trí 1MB. Chúng tôi cũng có thể cung cấp vị trí bắt đầu với tỷ lệ phần trăm (%) chẳng hạn như 1%.

Thứ tư, nó sẽ yêu cầu vị trí kết thúc. Đối với phân vùng 2GB, chúng tôi đã cung cấp 2GB. Vì vậy, phân vùng bắt đầu từ 1MB đến 2GB. Chúng tôi cũng có thể cung cấp vị trí kết thúc với tỷ lệ phần trăm (%) chẳng hạn như 10%.

Với lệnh in, chúng ta có thể thấy trạng thái của phân vùng mới được tạo.

(parted) print

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

Number  Start   End     Size    File system  Name     Flags

 1      1049kB  2000MB  1999MB               primary

Chúng ta cũng có thể chạy lệnh mkpart với bốn đối số của nó cùng một lúc. Lệnh sau sẽ tạo một phân vùng 2GB khác sẽ bắt đầu từ 2GB đến 4GB.

(parted) mkpart primary xfs 2GB 4GB

(parted)

Chúng ta có thể thấy phân vùng đã tạo của mình bằng lệnh in.

(parted) print

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

 

Number  Start   End     Size    File system  Name     Flags

 1      1049kB  2000MB  1999MB               primary

 2      2000MB  4000MB  2001MB               primary

Để trở về từ chương trình đã chia tay, hãy ra lệnh thoát.

(parted) quit

Bây giờ chúng ta có hai phân vùng mới được tạo. Sau khi tạo phân vùng, hệ điều hành phải thông báo để cập nhật bảng phân vùng. Ban hành lệnh sau để cập nhật bảng phân vùng vĩnh viễn.

[root@localhost ~]# partprobe /dev/sdb

Bảng phân vùng của chúng tôi hiện đã được cập nhật. Bây giờ nó là cần thiết để định dạng phân vùng của chúng tôi để sử dụng. Hệ thống định dạng tệp được Linux hỗ trợ gần đây là xfs. Vì vậy, hãy đưa ra các lệnh sau để định dạng phân vùng sdb1 và sdb2 bằng xfs.

[root@localhost ~]# mkfs.xfs /dev/sdb1

[root@localhost ~]# mkfs.xfs /dev/sdb2

Chúng tôi đã định dạng thành công các phân vùng mới tạo bằng hệ thống tệp xfs. Bây giờ các phân vùng này đã sẵn sàng để giữ dữ liệu. Nhưng trước khi giữ dữ liệu, chúng ta phải gắn phân vùng vào một điểm gắn kết (thư mục hoặc thư mục).

Gắn phân vùng mới

Để thực hành, bây giờ chúng ta sẽ gắn sdb1 vào thư mục dữ liệu và sdb2 vào thư mục sao lưu. Vì vậy, trước tiên hãy tạo các thư mục này bằng lệnh sau.

[root@localhost ~]# mkdir /data /backup

Bây giờ hãy gắn dữ liệu vào sdb1 và sao lưu vào sdb2 bằng lệnh sau.

[root@localhost ~]# mount /dev/sdb1 /data

[root@localhost ~]# mount /dev/sdb2 /backup

Duyệt các thư mục này, bạn có thể giữ bất kỳ dữ liệu nào ngay bây giờ. Bạn có thể thấy việc sử dụng đĩa bằng lệnh sau.

[root@localhost ~]# df -HT

Filesystem     Type      Size  Used Avail Use% Mounted on

/dev/sda3      xfs        19G  5.3G   14G  28% /

devtmpfs       devtmpfs  506M     0  506M   0% /dev

tmpfs          tmpfs     514M   82k  514M   1% /dev/shm

tmpfs          tmpfs     514M  7.4M  507M   2% /run

tmpfs          tmpfs     514M     0  514M   0% /sys/fs/cgroup

/dev/sda1      xfs       521M  122M  400M  24% /boot

/dev/sdb1      xfs       2.0G   34M  2.0G   2% /data

/dev/sdb2      xfs       2.0G   34M  2.0G   2% /backup

Ở giai đoạn này, các phân vùng được gắn kết của chúng tôi là tạm thời. Nếu Hệ điều hành của chúng tôi được khởi động lại, các thư mục được gắn kết này sẽ bị mất. Vì vậy, chúng ta cần thực hiện gắn kết vĩnh viễn. Để thực hiện gắn kết vĩnh viễn, chúng ta phải đặt mục nhập vào tệp fstab.

Vì vậy, hãy mở tệp fstab và đặt hai mục cho sdb1 và sdb2 như ví dụ sau và lưu tệp fstab.

[root@localhost ~]# vim /etc/fstab

 

UUID=bee34176-dd55-479e-95c5-9545912d14b9 /                       xfs     defaults        1 1

UUID=dede0f3e-6c9a-4185-afb4-f129fb873246 /boot                   xfs     defaults        1 2

UUID=40464ff6-29e5-4492-9698-1b8229ca58f6 swap                    swap    defaults        0 0

/dev/sdb1                                /data                    xfs     defaults        0 0

/dev/sdb2                                /backup                  xfs     defaults        0 0

Để gắn kết tất cả các hệ thống tệp trong tệp fstab, hãy thực hiện lệnh sau. Nếu có bất kỳ lỗi nào xảy ra trong tệp fstab, lệnh sau cũng sẽ hiển thị lỗi đó.

[root@localhost ~]# mount -a

Quá trình tạo phân vùng mới với khả năng gắn cố định bằng tiện ích parted đã hoàn tất. Bây giờ chúng tôi sẽ trình bày cách xóa bất kỳ phân vùng nào trong CentOS/Red Hat 7 Linux nếu được yêu cầu.

Xóa phân vùng bằng Parted Tool trong CentOS 7 Linux

Đôi khi chúng tôi có thể yêu cầu xóa bất kỳ phân vùng nào. Sử dụng công cụ chia tay, chúng ta có thể dễ dàng xóa bất kỳ phân vùng nào vào bất kỳ lúc nào. Nhưng trước khi xóa bất kỳ phân vùng nào, bạn phải ngắt kết nối phân vùng đó và xóa mục nhập fastab. Giả sử, chúng tôi muốn xóa phân vùng sdb2. Vì vậy, trước tiên hãy xóa mục nhập fstab bằng cách mở bằng trình chỉnh sửa vim.

[root@localhost ~]# vim /etc/fstab

 

UUID=bee34176-dd55-479e-95c5-9545912d14b9 /                       xfs     defaults        1 1

UUID=dede0f3e-6c9a-4185-afb4-f129fb873246 /boot                   xfs     defaults        1 2

UUID=40464ff6-29e5-4492-9698-1b8229ca58f6 swap                    swap    defaults        0 0

/dev/sdb1                                /data                    xfs     defaults        0 0

Bây giờ ngắt kết nối thư mục sao lưu được gắn vào phân vùng sdb2 bằng lệnh sau.

[root@localhost ~]# umount /backup

Bây giờ chúng tôi đã sẵn sàng xóa phân vùng sdb2 vì chúng tôi đã xóa mục nhập fstab và cũng đã ngắt kết nối thư mục sao lưu khỏi phân vùng sdb2. Bây giờ hãy đưa ra lệnh sau để xóa phân vùng sdb2. Để xóa một phân vùng bằng công cụ chia tay, chúng ta cần biết số phân vùng. Từ lệnh in, chúng ta có thể tìm thấy số phân vùng một cách dễ dàng.

(parted) print

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

 

Number  Start   End     Size    File system  Name     Flags

1      1049kB  2000MB  1999MB  xfs          primary

 2      2000MB  4000MB  2001MB  xfs          primary

Lấy số phân vùng, chúng ta có thể xóa bất kỳ phân vùng nào bằng lệnh rm . Ban hành lệnh sau để xóa phân vùng số 2.

[root@localhost ~]# parted /dev/sdb

GNU Parted 3.1

Using /dev/sdb

Welcome to GNU Parted! Type ‘help’ to view a list of commands.

(parted) rm 2

Phân vùng số 2 đã bị xóa. Bây giờ hãy chạy lệnh partprobe để cập nhật bảng phân vùng.

[root@localhost ~]# partprobe /dev/sdb

Cách cứu một phân vùng đã bị xóa

Đôi khi chúng tôi có thể loại bỏ bất kỳ phân vùng nào một cách không may. Công cụ chia tay có thể cứu bất kỳ phân vùng đã xóa nào trong vị trí Bắt đầu và Kết thúc. Ví dụ: chúng tôi muốn giải cứu phân vùng số 2 mà chúng tôi đã xóa trước đó. Vị trí bắt đầu của phân vùng 2 là 2GB và vị trí kết thúc là 4GB. Vì vậy, hãy ra lệnh giải cứu với các vị trí BẮT ĐẦU và KẾT THÚC này.

(parted) rescue 2GB 4GB

 

Information: A xfs primary partition was found at 2000MB -> 4000MB.  Do you want to add it to the partition table?

Yes/No/Cancel? Y

(parted)

Với lệnh in, bạn sẽ thấy rằng phân vùng bị xóa đã được phục hồi.

(parted) print

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

Number  Start   End     Size    File system  Name     Flags

1      1049kB  2000MB  1999MB  xfs          primary

2      2000MB  4000MB  2001MB  xfs

(parted)

Thay đổi kích thước (Thu nhỏ hoặc Mở rộng) Phân vùng bằng Công cụ đã chia

Công cụ chia tay có thể thay đổi kích thước phân vùng đĩa một cách dễ dàng. Nhưng trước khi thay đổi kích thước ổ đĩa, tốt hơn hết bạn nên sao lưu dữ liệu của mình cũng như bạn phải ngắt kết nối phân vùng vì ổ đĩa bận không thể thay đổi kích thước.

Lệnh resizepart được sử dụng để thu nhỏ hoặc mở rộng phân vùng. Lệnh resizepart chấp nhận hai đối số. Đối số đầu tiên là số phân vùng và đối số thứ hai là vị trí kết thúc. Nếu vị trí kết thúc nhỏ hơn vị trí kết thúc hiện tại, đĩa sẽ bị thu nhỏ và nếu vị trí kết thúc lớn hơn vị trí kết thúc hiện tại, đĩa sẽ được mở rộng nếu có dung lượng trống.

We will first shrink our partition 2 whose ending location is 4GB. Issue the following command to shrink the /dev/sdb2.

 

[root@localhost ~]# parted /dev/sdb

GNU Parted 3.1

Using /dev/sdb

Welcome to GNU Parted! Type ‘help’ to view a list of commands.

(parted) resizepart 2 3GB

Warning: Shrinking a partition can cause data loss, are you sure you want to continue?

Yes/No? y

(parted)

Vì vậy, phân vùng 2 hiện đã được thay đổi kích thước. Với lệnh in, bạn sẽ tìm thấy trạng thái hiện tại của phân vùng 2.

(parted) print

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

 

Number  Start   End     Size    File system  Name     Flags

1      1049kB  2000MB  1999MB  xfs          primary

 2      2000MB  3000MB  1000MB  xfs

(parted)

Bây giờ chúng ta sẽ thực hiện một ví dụ khác trong đó chúng ta sẽ mở rộng phân vùng 2. Đưa ra lệnh resizepart sau để mở rộng phân vùng 2 đến vị trí kết thúc 5GB.

(parted) resizepart 2 5GB

(parted) print

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

Number  Start   End     Size    File system  Name     Flags

1      1049kB  2000MB  1999MB  xfs          primary

2      2000MB  5000MB  3000MB  xfs

(parted)

Bây giờ phân vùng 2 được mở rộng đến vị trí kết thúc 5GB. Với lệnh in, bạn sẽ tìm thấy trạng thái hiện tại của phân vùng 2(/dev/sdb2).

Nếu bạn gặp bất kỳ sự nhầm lẫn nào để thực hiện đúng các bước trên, hãy xem video bên dưới về cách quản lý phân vùng đĩa Linux CentOS/Red Hat 7 một cách cẩn thận. Tôi hy vọng nó sẽ làm giảm bất kỳ sự nhầm lẫn của bạn.

Cách quản lý phân vùng CentOS 7 hoặc Red Hat 7 Linux bằng tiện ích parted đã được thảo luận trong bài viết này. Tôi hy vọng bây giờ bạn có thể tạo một phân vùng mới, xóa một phân vùng, cứu một phân vùng đã xóa hoặc thay đổi kích thước một phân vùng bằng công cụ parted. Tuy nhiên, nếu bạn gặp phải bất kỳ sự nhầm lẫn nào khi quản lý Ổ đĩa của mình bằng công cụ đã chia, vui lòng thảo luận trong nhận xét hoặc liên hệ với tôi từ trang Liên hệ .