Lệnh resize trong Linux

Giới thiệu

Trong lab này, chúng ta sẽ khám phá lệnh resize của Linux và học cách thay đổi kích thước phân vùng và logical volume. Lệnh resize là một công cụ mạnh mẽ để quản lý không gian lưu trữ trên hệ thống Linux của bạn. Chúng ta sẽ bắt đầu bằng cách tìm hiểu cú pháp và cách sử dụng cơ bản của lệnh resize, sau đó tiến hành thay đổi kích thước một phân vùng và một volume group LVM (Logical Volume Management) và logical volume bằng các ví dụ thực tế.

Lab này bao gồm các bước sau:

  1. Tìm hiểu lệnh resize
  2. Thay đổi kích thước một phân vùng bằng lệnh resize
  3. Thay đổi kích thước một volume group LVM và logical volume

Hãy nhớ rằng, lệnh resize nên được sử dụng một cách cẩn thận, vì việc thay đổi kích thước phân vùng hoặc logical volume có thể dẫn đến mất dữ liệu nếu thực hiện không đúng cách. Luôn đảm bảo rằng bạn có bản sao lưu dữ liệu trước khi thực hiện bất kỳ thao tác thay đổi kích thước nào.

Tìm hiểu lệnh resize

Trong bước này, chúng ta sẽ khám phá lệnh resize của Linux, được sử dụng để thay đổi kích thước phân vùng và logical volume. Lệnh resize là một công cụ mạnh mẽ để quản lý không gian lưu trữ trên hệ thống Linux của bạn.

Đầu tiên, hãy tìm hiểu cú pháp cơ bản của lệnh resize:

resize [options] size device

Ở đây, size là kích thước mới bạn muốn đặt cho phân vùng hoặc logical volume, và device là tên của phân vùng hoặc logical volume bạn muốn thay đổi kích thước.

Một số tùy chọn phổ biến cho lệnh resize bao gồm:

  • -f: Buộc thực hiện thao tác thay đổi kích thước, ngay cả khi filesystem không được unmount.
  • -p: In kích thước mới của phân vùng hoặc logical volume sau thao tác thay đổi kích thước.
  • -v: Chế độ verbose, cung cấp đầu ra chi tiết hơn.

Bây giờ, hãy xem một số ví dụ về cách sử dụng lệnh resize:

## Thay đổi kích thước một phân vùng thành 20GB
sudo resize 20G /dev/sda1

Example output:
resize: /dev/sda1 resized

Trong ví dụ này, chúng ta đã thay đổi kích thước phân vùng /dev/sda1 thành 20GB bằng lệnh resize.

## Thay đổi kích thước một logical volume LVM thành 50GB
sudo resize 50G /dev/vg0/lv0

Example output:
resize: /dev/vg0/lv0 resized

Trong ví dụ này, chúng ta đã thay đổi kích thước logical volume /dev/vg0/lv0 thành 50GB bằng lệnh resize.

Hãy nhớ rằng, lệnh resize là một công cụ mạnh mẽ, nhưng nó nên được sử dụng một cách cẩn thận, vì việc thay đổi kích thước phân vùng hoặc logical volume có thể dẫn đến mất dữ liệu nếu thực hiện không đúng cách. Luôn đảm bảo rằng bạn có bản sao lưu dữ liệu trước khi thực hiện bất kỳ thao tác thay đổi kích thước nào.

Thay đổi kích thước một phân vùng bằng lệnh resize

Trong bước này, chúng ta sẽ học cách thay đổi kích thước một phân vùng bằng lệnh resize.

Đầu tiên, hãy tạo một phân vùng mới trên virtual disk trong Docker container của chúng ta:

sudo fdisk /dev/sdb
## Create a new partition, e.g., /dev/sdb1

Ví dụ đầu ra:

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

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-20971519, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519): +10G

Created a new partition 1 of type 'Linux' and of size 10 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Bây giờ, hãy thay đổi kích thước phân vùng mới tạo /dev/sdb1 thành 15GB:

sudo resize 15G /dev/sdb1

Ví dụ đầu ra:

resize: /dev/sdb1 resized

Để xác minh kích thước mới của phân vùng, chúng ta có thể sử dụng lệnh fdisk:

sudo fdisk -l /dev/sdb

Ví dụ đầu ra:

Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: Virtual disk
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: 0x78b0c0b9

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1        2048 31457279 31455232   15G 83 Linux

Như bạn có thể thấy, kích thước của phân vùng /dev/sdb1 đã được thay đổi thành công thành 15GB.

Thay đổi kích thước một volume group LVM và Logical Volume

Trong bước này, chúng ta sẽ học cách thay đổi kích thước một volume group LVM (Logical Volume Management) và một logical volume bằng lệnh resize.

Đầu tiên, hãy tạo một volume group LVM và một logical volume:

## Create a physical volume
sudo pvcreate /dev/sdc

## Create a volume group
sudo vgcreate vg0 /dev/sdc

## Create a logical volume
sudo lvcreate -L 5G -n lv0 vg0

Ví dụ đầu ra:

  Physical volume "/dev/sdc" successfully created.
  Volume group "vg0" successfully created
  Logical volume "lv0" created.

Bây giờ, hãy thay đổi kích thước logical volume lv0 thành 10GB:

## Resize the logical volume
sudo lvresize -L 10G /dev/vg0/lv0

Ví dụ đầu ra:

  Size of logical volume vg0/lv0 changed from 5.00 GiB to 10.00 GiB.
  Logical volume vg0/lv0 successfully resized.

Để xác minh kích thước mới của logical volume, chúng ta có thể sử dụng lệnh lvdisplay:

sudo lvdisplay /dev/vg0/lv0

Ví dụ đầu ra:

  --- Logical volume ---
  LV Path                /dev/vg0/lv0
  LV Name                lv0
  VG Name                vg0
  LV UUID                zVBxkH-Tn7d-1234-abcd-1234-1234-1234abcd
  LV Write Access        read/write
  LV Creation host, time labex-ubuntu, 2023-04-18 12:34:56 +0000
  LV Status              available
  ## open                 0
  LV Size                10.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

Như bạn có thể thấy, kích thước của logical volume lv0 đã được thay đổi thành công thành 10GB.

Tóm tắt

Trong lab này, trước tiên chúng ta đã khám phá lệnh resize của Linux, được sử dụng để thay đổi kích thước phân vùng và logical volume. Chúng ta đã học cú pháp cơ bản của lệnh resize và một số tùy chọn phổ biến, chẳng hạn như -f để buộc thực hiện thao tác thay đổi kích thước, -p để in kích thước mới và -v cho đầu ra verbose. Sau đó, chúng ta đã xem các ví dụ về cách sử dụng lệnh resize để thay đổi kích thước một phân vùng thành 20GB và một logical volume LVM thành 50GB.

Tiếp theo, chúng ta đã tạo một phân vùng mới trên virtual disk trong Docker container của chúng ta bằng lệnh fdisk. Điều này tạo tiền đề cho bước tiếp theo, nơi chúng ta sẽ học cách thay đổi kích thước phân vùng mới tạo bằng lệnh resize.

400+ câu lệnh phổ biến trong Linux