BizMaC bizmac.com

Ubuntu: mở rộng dung lượng disk bằng LVM

Hướng dẫn Linux Server · cập nhật 14/08/2026

Để mở rộng dung lượng disk trên Ubuntu sau khi tăng ổ ảo, bạn nới phân vùng bằng parted, cập nhật Physical Volume bằng pvresize, kéo Logical Volume bằng lvextend rồi giãn hệ thống tệp bằng resize2fs. Bốn lệnh, mất khoảng 5 phút và không cần khởi động lại máy.

Bạn gặp việc này khi đã tăng ổ đĩa ở bảng điều khiển VPS hoặc VMware nhưng lệnh df -h vẫn báo dung lượng cũ. Ubuntu Server cài mặc định dùng LVM, nên phần dung lượng mới thêm nằm im ở cuối ổ cho tới khi bạn kéo từng lớp lên.

  1. Xác nhận ổ đĩa đã lớn hơn và tìm tên phân vùng gốc.
  2. Nới phân vùng để chiếm phần trống mới.
  3. Cập nhật Physical Volume của LVM.
  4. Kéo Logical Volume ra hết phần trống.
  5. Giãn hệ thống tệp rồi kiểm bằng df.
Sao lưu dữ liệu trước khi chạy. Thao tác trên bảng phân vùng có thể làm mất toàn bộ dữ liệu nếu gõ nhầm số phân vùng hoặc mất điện giữa chừng. Với VPS, chụp một bản snapshot là đủ. Đã kiểm trên Ubuntu Server 22.04 LTS cài mặc định với LVM.

Vì sao Ubuntu không tự nhận dung lượng ổ đĩa mới thêm

Tăng ổ ảo ở lớp ảo hoá chỉ làm thiết bị khối lớn hơn. Bên trong máy ảo còn ba lớp nữa chưa biết chuyện đó: bảng phân vùng, LVM và hệ thống tệp. Mỗi lớp giữ kích thước riêng ghi lúc cài máy, nên phải kéo lần lượt từ dưới lên trên thì phần trống mới dùng được.

LớpGiữ thông tin gìLệnh kéo ra
Thiết bị khối /dev/sdaDung lượng vật lý của ổTăng ở bảng điều khiển VPS
Phân vùng /dev/sda3Điểm đầu và điểm cuối trên ổparted resizepart
Physical VolumeVùng LVM được phép dùngpvresize
Logical VolumeDung lượng cấp cho hệ thống tệplvextend
Hệ thống tệp ext4Số khối dữ liệu đang quản lýresize2fs

Bỏ sót một lớp thì df -h vẫn báo số cũ dù các lớp dưới đã lớn hơn. Đó là lý do nhiều người chạy xong lvextend rồi tưởng hỏng, trong khi chỉ còn thiếu lệnh cuối.

Cần chuẩn bị gì trước khi nới ổ đĩa Ubuntu

Trước hết phải tăng ổ đĩa ở lớp ảo hoá đã. Với VPS thì nâng gói hoặc mua thêm dung lượng, với VMware thì sửa ở phần cấu hình máy ảo. Sau đó cần một tài khoản có quyền sudo, và một bản sao lưu dữ liệu quan trọng đề phòng gõ nhầm.

Kiểm ổ đã lớn hơn chưa và xem cấu trúc hiện tại:

lsblk
df -h /

Kết quả của lsblk cho biết ổ sda đang bao nhiêu GB và phân vùng gốc tên gì. Trên Ubuntu Server cài mặc định, phân vùng chứa LVM thường là sda3, tên Logical Volume là /dev/ubuntu-vg/ubuntu-lv. Máy của bạn có thể khác, nên đọc kết quả thật chứ đừng chép nguyên tên trong bài.

Nếu lsblk vẫn báo dung lượng cũ dù đã tăng ở bảng điều khiển, hệ điều hành chưa quét lại ổ. Khởi động lại máy, hoặc quét lại bằng echo 1 > /sys/class/block/sda/device/rescan.

Cách mở rộng dung lượng disk trên Ubuntu bằng LVM

Bốn bước dưới đây chạy bằng quyền root qua SSH, máy vẫn phục vụ bình thường trong lúc chạy. Ext4 giãn được khi đang gắn nên không cần vào chế độ cứu hộ. Bước duy nhất có rủi ro là bước nới phân vùng, làm chậm và đọc kỹ trước khi xác nhận.

1. Nới phân vùng chứa LVM

Dùng parted vì nó nới tại chỗ, không phải xoá rồi tạo lại như fdisk:

sudo parted /dev/sda

Trong dấu nhắc (parted), xem sơ đồ phân vùng trước:

(parted) print

Parted có thể hỏi có sửa bảng phân vùng GPT để dùng hết ổ không, trả lời Fix. Sau đó nới phân vùng số 3 ra hết ổ:

(parted) resizepart 3 100%
(parted) quit

Số 3 là số phân vùng đọc từ print, không phải con số cố định. Nới nhầm số là mất phân vùng đó.

2. Cập nhật Physical Volume

sudo pvresize /dev/sda3

Lệnh này báo cho LVM biết phân vùng đã rộng hơn. Kết quả in ra dòng Physical volume "/dev/sda3" changed. Kiểm phần trống của nhóm bằng sudo vgs, cột VFree phải khác 0.

3. Kéo Logical Volume ra hết phần trống

sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

Tham số -l +100%FREE lấy toàn bộ phần trống còn lại trong nhóm. Muốn chừa lại một phần cho snapshot LVM thì cấp số cụ thể, ví dụ -L +50G.

4. Giãn hệ thống tệp

sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

Đây là bước hay bị quên nhất. Không chạy thì mọi lệnh trên coi như chưa có tác dụng, vì hệ thống tệp vẫn quản lý đúng số khối cũ. Với hệ thống tệp XFS, thay lệnh này bằng sudo xfs_growfs /.

Kiểm lại dung lượng sau khi resize

Chạy hai lệnh dưới để xác nhận cả ba lớp đã khớp nhau. Nếu con số ở df -h đã bằng dung lượng ổ mới thì việc đã xong, không cần khởi động lại máy.

df -h /
sudo lvs
sudo vgs

df -h / phải báo dung lượng mới. lvs cho biết Logical Volume đang chiếm bao nhiêu, còn vgs có cột VFree nên về 0 nếu bạn đã lấy hết. Ba con số này lệch nhau là dấu hiệu còn sót một lớp chưa kéo.

Xử lý các lỗi thường gặp khi resize phân vùng Ubuntu

Bốn tình huống dưới đây chiếm phần lớn ca làm không thành công ở lần đầu. Mỗi tình huống có thông báo riêng nên đọc dòng lỗi là biết đang kẹt ở lớp nào, không phải làm lại từ đầu.

Parted báo Partition is being used, unable to satisfy all constraints. Phiên bản parted cũ từ chối nới phân vùng đang gắn. Nâng parted lên bản mới hơn, hoặc dùng growpart /dev/sda 3 từ gói cloud-guest-utils.

pvresize báo No physical volume label read from /dev/sda3. Sai tên phân vùng, thường là gõ sda2 trong khi LVM nằm ở sda3. Chạy sudo pvs để lấy đúng tên rồi làm lại.

lvextend báo Insufficient free space. Nhóm chưa có phần trống, tức là pvresize chưa chạy hoặc chạy chưa ăn. Kiểm cột VFree bằng sudo vgs, còn 0 thì quay lại bước 2.

df vẫn báo số cũ sau khi chạy hết bốn lệnh. Thiếu resize2fs, hoặc hệ thống tệp là XFS mà bạn chạy resize2fs. Xem loại hệ thống tệp bằng df -T / rồi chạy đúng lệnh cho loại đó.

Việc nên làm sau khi nới xong ổ đĩa

Đặt một ngưỡng cảnh báo dung lượng để lần sau biết trước, thay vì phát hiện lúc dịch vụ đã ngừng vì đầy ổ. Trên Ubuntu, một cronjob chạy df rồi gửi thư khi vượt 85% là đủ dùng, cách viết lịch chạy xem ở tìm hiểu crontab trong Linux.

Nếu ổ đầy nhanh bất thường, phần lớn nguyên nhân là log và file rác chứ không phải dữ liệu thật. Tìm thư mục nặng bằng sudo du -sh /var/* | sort -h, và dọn file rỗng theo cách tìm và xoá file zero byte trong Linux. Giữ lại một phần trống trong nhóm LVM cũng có ích, vì snapshot LVM cần chỗ để ghi thay đổi.

Hướng dẫn này có giúp được Anh/Chị không?

Bài khác trong Linux Server

Xem cả 23 bài
Cài SQL Server 2025 trên Ubuntu 24.04 chạy cùng Plesk Cài SQL Server 2025 lên máy Ubuntu 24.04 đang chạy Plesk, chọn edition đúng giấy phép, tạo tài khoản riêng thay cho sa và mở kết nối từ xa mà không phơi cổng 1433. 11 phút đọc 106 lượt xem Cập nhật 16/09/2026 Cài tường lửa UFW cơ bản cho VPS Ubuntu Cách cài UFW trên Ubuntu, cho phép cổng SSH trước khi bật, mở cổng web 80 và 443, rồi kích hoạt tường lửa mà không mất kết nối cho người mới quản trị VPS. 5 phút đọc 136 lượt xem Cập nhật 29/08/2026 Đổi port SSH mặc định để bảo mật VPS Cách đổi cổng SSH từ 22 sang cổng khác trong file sshd_config, mở cổng mới trên tường lửa trước khi khởi động lại dịch vụ, và kiểm tra kết nối cho người mới. 5 phút đọc 90 lượt xem Cập nhật 28/08/2026 Cài Fail2Ban chống dò mật khẩu SSH Cách cài Fail2Ban trên Ubuntu và CentOS, tạo file cấu hình jail.local, đặt số lần sai và thời gian khoá IP, rồi kiểm tra danh sách IP đang bị chặn. 5 phút đọc 77 lượt xem Cập nhật 28/08/2026 Phân quyền file thư mục bằng chmod và chown Cách đọc dãy quyền rwx, dùng chmod đổi quyền theo số và chown đổi chủ sở hữu file trên Linux, kèm bảng số quyền hay dùng và cảnh báo chmod 777. 5 phút đọc 51 lượt xem Cập nhật 27/08/2026 15 lệnh Linux cơ bản cho người mới quản trị VPS Bảng tra 15 lệnh Linux thiết yếu để đi lại trong thư mục, xem và sửa file, kiểm tra tài nguyên và quản lý dịch vụ trên VPS, kèm ví dụ cho người mới. 5 phút đọc 59 lượt xem Cập nhật 26/08/2026