Linux – mở rộng phân vùng sau khi tăng dung lượng ổ cứng

Vì nhiều lý do, dung lượng của một ổ cứng… có thể được mở rộng. Chẳng hạn do lấy snapshot của ổ cứng dung lượng nhỏ restore vào ổ cứng dung lượng lớn. Hoặc do sử dụng chức năng mở rộng dung lượng mà các hạ tầng cloud hiện đại (AWS, Digital Ocean, Bizfly…) cho phép.

Trong những trường hợp như thế, kích thước các phân vùng thường sẽ không thay đổi theo và ta phải thao tác để điều khiển.

Thăm dò trạng thái ổ cứng và phân vùng

Công việc thường bắt đầu bằng việc kiểm tra sự chênh lệch về dung lượng. Kết quả trông có thể như sau, để ý ổ cứng có tên vdb:

[root@ecshost ~]# lsblk
vda     252:0    0   80G  0 disk
├─vda1  252:1    0 79.9G  0 part /
├─vda14 252:14   0    4M  0 part
└─vda15 252:15   0  106M  0 part /boot/efi
vdb     252:16   0  120G  0 disk
└─vdb1  252:17   0  100G  0 part /media/heap

Bước tiếp theo là kiểm tra bảng phân vùng hiện tại. Kết quả trông có thể như dưới đây, để ý phân vùng /dev/vdb1. Nếu giá trị của SystemLinux thì có nghĩa là ổ cứng đang sử dụng bảng phân vùng dạng MBR. Nếu giá trị của SystemGPT thì nghĩa là ổ cứng đang sử dụng bảng phân vùng dạng GPT.

[root@ecshost ~]# fdisk -lu /dev/vdb
Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x9277b47b

Device Boot Start End Blocks Id System
/dev/vdb1 2048 41943039 20970496 83 Linux

Tiếp theo, kiểm tra định dạng đang sử dụng cho phân vùng muốn được mở rộng. Trong ví dụ dưới đây là ext4.

[root@ecshost ~]# blkid /dev/vdb1
/dev/vdb1: UUID="e97bf1e2-fc84-4c11-9652-73********24" TYPE="ext4"

Tiếp theo, kiểm tra trạng thái của bảng phân vùng. Sử dụng lệnh e2fsck -n /dev/vdb1 cho phân vùng ext* và lệnh xfs_repair -n /dev/vdb1 cho phân vùng xfs. Nếu phân vùng không mang trạng thái clean thì nên cân nhắc backup ổ cứng và dò lỗi trước.

[root@ecshost ~]# e2fsck -n /dev/vdb1
Warning! /dev/vdb1 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/vdb1: clean, 11/1310720 files, 126322/5242624 blocks

Mở rộng phân vùng

Sử dụng parted để mở rộng thông tin dung lượng trong bảng phân vùng:

  1. Chạy lệnh parted /dev/vdb để mở trình parted
  2. Chạy sub command print để thăm dò bảng phân vùng
  3. Dialog Fix/Ignore/Cancel? sẽ hiện ra, nhập Fix
  4. Chạy lệnh quit để thoát trình parted

Sau đó, chạy trình growpart <ổ> <partition của ổ> để mở rộng dung lượng cho phân vùng. Chẳng hạn growpart /dev/vdb 1.


Tham khảo:

  1. https://partners-intl.aliyun.com/help/doc-detail/25452.htm#section-vvb-gcs-bhm
  2. https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html

Loading

Leave a Reply

Your email address will not be published. Required fields are marked *