Cách mở rộng phân vùng đĩa trên Ubuntu: Hướng dẫn toàn diện cho ext4, LVM, VPS và khởi động kép

markdown.## 1. Giới thiệu

Khi sử dụng Ubuntu, bạn có thể gặp các tình huống như “hết dung lượng ổ đĩa” hoặc “không thể cài đặt ứng dụng mới do thiếu không gian lưu trữ”. Trong những trường hợp này, một giải pháp hữu ích là mở rộng phân vùng. Mở rộng phân vùng là quá trình tăng kích thước của một phân vùng đĩa hiện có nhằm sử dụng không gian lưu trữ một cách hiệu quả hơn.

Ubuntu được sử dụng rộng rãi cho cả mục đích máy chủ và máy để bàn, và việc quản lý phân vùng thường được yêu cầu trong nhiều môi trường như máy ảo, VPS (Virtual Private Servers), và hệ thống khởi động kép. Tuy nhiên, nhiều người dùng cảm thấy bối rối, tự hỏi “Tôi nên dùng phương pháp nào?” hoặc “Tôi có mất dữ liệu nếu làm sai không?”

Bài viết này giải thích việc mở rộng phân vùng trên Ubuntu một cách rõ ràng nhất có thể, từ các thủ tục đơn giản đến các ví dụ nâng cao trong LVM và môi trường ảo hoá. Vì các thao tác trên phân vùng có rủi ro quan trọng, chúng tôi cũng sẽ đề cập đến các bước chuẩn bị và các điểm quan trọng để thực hiện công việc một cách an toàn.

Hướng dẫn này được thiết kế để hữu ích cho một dải người dùng rộng, từ người mới bắt đầu chưa quen với các lệnh Linux cho tới người dùng trung cấp đã từng làm việc với các phân vùng trên các bản phân phối khác.
Mở rộng phân vùng đòi hỏi phải xử lý cẩn thận, nhưng bằng cách làm theo các bước đúng, bạn có thể bảo vệ dữ liệu quan trọng của mình đồng thời tận dụng tối đa khả năng lưu trữ.

2. Kiến thức Tiên quyết cho Việc Mở rộng Phân vùng

Trước khi mở rộng các phân vùng trên Ubuntu, việc hiểu một số khái niệm cơ bản sẽ giúp ngăn ngừa lỗi và các vấn đề. Phần này giải thích các nguyên tắc cơ bản của phân vùng và hệ thống tập tin, liệu có sử dụng LVM hay không, và các xu hướng hiện nay trong bố cục phân vùng Ubuntu.

2.1 Phân vùng là gì?

Phân vùng là cơ chế chia một thiết bị lưu trữ vật lý như ổ cứng hoặc SSD thành nhiều phần ảo. Ví dụ, một ổ đĩa duy nhất có thể được chia thành các khu vực cho hệ thống, dữ liệu người dùng và không gian swap, mỗi khu vực được xem như một vùng độc lập. Các tệp hệ thống Ubuntu, dữ liệu người dùng và không gian swap thường được tách ra thành các phân vùng khác nhau.

2.2 Các Loại Bảng Phân vùng (GPT và MBR)

Có hai phương pháp chính để ghi lại bố cục phân vùng đĩa: GPT (GUID Partition Table) và MBR (Master Boot Record).

  • MBR: Định dạng cũ hơn, hỗ trợ ổ đĩa lên tới 2 TB và cho phép tối đa bốn phân vùng chính.
  • GPT: Định dạng mới hơn, hỗ trợ ổ đĩa lớn hơn 2 TB và hơn 128 phân vùng. GPT hiện là tiêu chuẩn trong các hệ thống Ubuntu hiện đại.

Nếu bạn không chắc định dạng hệ thống đang sử dụng, có thể kiểm tra bằng các lệnh như sudo parted -l.

2.3 Có Sử dụng LVM (Logical Volume Manager) hay Không

Trong Ubuntu, các phân vùng có thể được mở rộng trực tiếp hoặc bằng cách sử dụng LVM (Logical Volume Manager), công cụ cung cấp khả năng quản lý khối lượng linh hoạt.

  • Không dùng LVM (phân vùng tiêu chuẩn): Cài đặt phổ biến, trong đó một hệ thống tập tin như ext4 được tạo trực tiếp trên một phân vùng.
  • Có dùng LVM: Cấu trúc trong đó các ổ đĩa được tạo thành các volume vật lý (PV), sau đó gộp thành các volume group (VG) và cuối cùng chia thành các logical volume (LV). Cách này cho phép thay đổi kích thước linh hoạt và được sử dụng rộng rãi trong môi trường máy chủ và đám mây.

Các bước mở rộng phân vùng sẽ khác nhau tùy thuộc vào việc có sử dụng LVM hay không.

2.4 Bố Cục Phân Vùng Điển Hình trong Ubuntu

Trong quá trình cài đặt Ubuntu, bạn có thể chọn có sử dụng LVM hay không. Trong các môi trường máy chủ gần đây (đặc biệt là Ubuntu 20.04 trở lên), LVM thường được khuyến nghị hoặc được bật mặc định.
Ngược lại, các bản cài đặt máy để bàn và hệ thống khởi động kép thường sử dụng bố cục đơn giản hơn với một phân vùng ext4 duy nhất.

2.5 Lưu Ý Quan Trọng Trước Khi Mở Rộng Phân Vùng

Trước khi thực hiện mở rộng phân vùng, phải có không gian chưa được phân bổ trên đĩa. Tùy thuộc vào bố cục đĩa và vị trí các phân vùng, việc mở rộng có thể không khả thi. Luôn kiểm tra cấu hình đĩa hiện tại bằng các lệnh như lsblk hoặc parted.

.Additionally, it is strongly recommended to back up important data in advance. If data loss occurs due to mistakes or unexpected issues, having a backup will allow you to proceed with confidence.

3. Các Phương Pháp Mở Rộng Phân Vùng Theo Môi Trường

Quy trình mở rộng phân vùng trên Ubuntu thay đổi tùy theo môi trường và cấu hình đĩa. Phần này giải thích bốn kịch bản phổ biến: môi trường không dùng LVM, môi trường LVM, mở rộng trực tuyến trong VPS hoặc hệ thống đám mây, và môi trường khởi động kép.

3.1 Mở Rộng Phân Vùng Trong Môi Trường Không LVM (ext4)

Đây là trường hợp phổ biến nhất, khi một hệ thống tập tin như ext4 được tạo trực tiếp trên một phân vùng mà không sử dụng LVM.

  1. Tăng kích thước đĩa
  • Đối với máy ảo hoặc VPS, tăng kích thước đĩa từ bảng điều khiển quản lý.
  • Đối với máy tính vật lý, đảm bảo có không gian chưa phân bổ.
  1. Mở rộng phân vùng
  • Sử dụng sudo parted hoặc sudo fdisk để mở rộng phân vùng mục tiêu.
  • Với parted, bạn có thể dùng lệnh như sau (ví dụ: mở rộng /dev/sda1): sudo parted /dev/sda (parted) resizepart 1 <vị trí kết thúc mới (ví dụ, 100%)>
  1. Mở rộng hệ thống tập tin
  • Sau khi mở rộng phân vùng, bạn cũng phải mở rộng hệ thống tập tin.
  • Đối với ext4, chạy lệnh resize2fs: sudo resize2fs /dev/sda1
  • Lệnh này sẽ áp dụng không gian mới cho hệ thống tập tin.
  1. Xác minh việc mở rộng
  • Sau khi hoàn tất, dùng df -h để xác nhận dung lượng đĩa đã tăng.

3.2 Mở Rộng Phân Vùng Trong Môi Trường LVM

Khi sử dụng LVM, không gian đĩa có thể được mở rộng một cách linh hoạt hơn.

  1. Tăng kích thước đĩa
  • Đầu tiên, mở rộng đĩa vật lý hoặc ảo.
  • Trên đĩa vật lý, đảm bảo có không gian chưa phân bổ.
  1. Thay đổi kích thước Volume Vật Lý (PV)
  • Đưa không gian mới thêm vào LVM: sudo pvresize /dev/sda2
  • (Tên thiết bị có thể khác nhau tùy môi trường.)
  1. Mở rộng Logical Volume (LV)
  • Chỉ định logical volume cần mở rộng: sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
  • -l +100%FREE cấp phát toàn bộ không gian trống có sẵn.
  1. Mở rộng hệ thống tập tin
  • Nếu dùng ext4, mở rộng bằng resize2fs: sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
  1. Xác minh
  • Kiểm tra kết quả bằng df -h hoặc lsblk.

3.3 Mở Rộng Trực Tuyến Trong Môi Trường VPS và Đám Mây

Trong môi trường VPS hoặc đám mây, thường muốn mở rộng phân vùng mà không cần khởi động lại máy chủ. Lệnh growpart hữu ích trong các trường hợp này.

  1. Mở rộng kích thước đĩa
  • Thêm dung lượng đĩa qua bảng điều khiển quản lý của nhà cung cấp.
  1. Mở rộng phân vùng bằng growpart
  • Nếu gói cloud-utils đã được cài đặt, bạn có thể dùng growpart: sudo growpart /dev/sda 1
  • Lệnh này tự động mở rộng phân vùng (ví dụ, /dev/sda1).
  1. Mở rộng hệ thống tập tin
  • Sau đó mở rộng hệ thống tập tin bằng resize2fs: sudo resize2fs /dev/sda1
  1. Xác minh
  • Xác nhận việc mở rộng bằng df -h.

3.4 Điều Chỉnh Trong Môi Trường Khởi Động Kép (Windows / Ubuntu)

Khi Windows và Ubuntu được cài đặt trên cùng một đĩa, việc mở rộng có thể không khả thi nếu không gian chưa phân bổ không nằm liền kề với phân vùng Ubuntu.

  • Di chuyển không gian chưa phân bổ
  • Sử dụng công cụ phân vùng của Windows (như MiniTool Partition Wizard) để di chuyển không gian chưa phân bổ tới bên cạnh phân vùng Ubuntu.
  • Mở rộng từ Ubuntu
  • Thực hiện các bước mở rộng tiêu chuẩn đã mô tả ở trên.
  • Sao lưu là bắt buộc
  • Môi trường khởi động kép dễ gặp sự cố hơn, vì vậy luôn sao lưu dữ liệu trước khi tiến hành.

4. Khắc Phục Sự Cố và Câu Hỏi Thường Gặp

Nhiều câu hỏi và vấn đề có thể xuất hiện trước, trong hoặc sau khi mở rộng phân vùng. Phần này tóm tắt các câu hỏi thường gặp và các lỗi điển hình kèm giải pháp.

4.1 Câu Hỏi Thường Gặp (FAQ)

.Q1. Tôi không thể tìm thấy không gian trống (không được phân bổ). Tôi nên làm gì?
A. Mở rộng phân vùng yêu cầu không gian chưa được phân bổ. Sử dụng lsblk hoặc sudo parted /dev/sda print free để kiểm tra trạng thái đĩa. Nếu không có không gian chưa được phân bổ, hãy xóa các phân vùng không cần thiết hoặc tăng kích thước đĩa trong môi trường ảo.

Q2. Tôi có cần pvresize hoặc lvextend nếu không sử dụng LVM không?
A. Không. Các lệnh này chỉ cần thiết cho LVM. Đối với các phân vùng ext4 tiêu chuẩn, thực hiện các bước “mở rộng phân vùng → mở rộng hệ thống tập tin.” Bạn có thể kiểm tra xem có sử dụng LVM hay không bằng lsblk hoặc sudo pvs.

Q3. Không có không gian chưa được phân bổ liền kề với phân vùng. Tôi vẫn có thể mở rộng không?
A. Mở rộng phân vùng yêu cầu không gian chưa được phân bổ liền kề. Nếu không gian này nằm ở vị trí khác, hãy điều chỉnh thứ tự hoặc vị trí phân vùng bằng các công cụ như MiniTool Partition Wizard. Luôn sao lưu dữ liệu trước khi thay đổi phân vùng.

Q4. Có an toàn khi sửa đổi phân vùng trong khi Ubuntu đang chạy không?
A. Các phân vùng hệ thống (như /) hoặc các phân vùng đã được gắn có thể không thể mở rộng khi đang sử dụng. Nếu có thể, khởi động từ USB live và thực hiện thao tác. Nhiều môi trường đám mây và VPS cho phép mở rộng trực tuyến, nhưng có thể cần tạm thời gỡ kết nối hoặc khởi động lại nếu gặp lỗi.

Q5. Phân vùng swap đang chặn việc mở rộng. Tôi nên làm gì?
A. Tạm thời tắt swap bằng swapoff, xóa phân vùng swap, thực hiện mở rộng, và tạo lại swap sau nếu cần. Cập nhật /etc/fstab cho phù hợp.

Q6. Tôi đã tăng kích thước đĩa trong môi trường ảo, nhưng hệ điều hành không nhận ra. Tại sao?
A. Sau khi mở rộng đĩa trong hypervisor (VMware, VirtualBox, v.v.), hệ điều hành phải quét lại thiết bị. Sử dụng các lệnh như:
echo 1 > /sys/class/block/sdX/device/rescan, khởi động lại hệ thống, hoặc chạy partprobe.

Q7. Sự khác nhau giữa GPT và MBR là gì, và tôi nên chọn cái nào?
A. GPT hỗ trợ đĩa lớn hơn 2TB và nhiều phân vùng, và được khuyến nghị cho các hệ thống hiện đại. Chỉ chọn MBR nếu cần tương thích với các hệ thống cũ.

4.2 Các lỗi thường gặp và giải pháp

  • “no free space available” → Cần không gian chưa được phân bổ liền kề. Điều chỉnh vị trí phân vùng và thử lại.
  • “device is busy” hoặc “resource busy” → Phân vùng đang được gắn hoặc đang sử dụng. Gỡ kết nối hoặc dùng USB live.
  • “The partition is currently in use” → Phân vùng mục tiêu đang hoạt động. Dừng các dịch vụ liên quan hoặc khởi động lại và thử lại.
  • “resize2fs: Bad magic number in super-block” → Kiểm tra loại hệ thống tập tin. Đối với XFS, sử dụng xfs_growfs thay vì resize2fs .

5. Kiểm tra sau khi thực hiện và Tổng kết

Sau khi hoàn thành việc mở rộng phân vùng, luôn xác minh kết quả để đảm bảo không có vấn đề nào do lỗi hoặc sự cố bất ngờ.

5.1 Cách xác minh kết quả mở rộng

(1) Kiểm tra việc sử dụng đĩa
Sử dụng df -h để hiển thị mức sử dụng và không gian khả dụng cho các phân vùng đã gắn. Xác nhận rằng phân vùng đã mở rộng hiển thị mức tăng mong đợi.

df -h

(2) Kiểm tra bố cục phân vùng
Lệnh lsblk hiển thị các thiết bị lưu trữ và phân vùng dưới dạng cây, cho phép bạn xác minh kích thước và bố cục.

lsblk

(3) Kiểm tra chi tiết bằng parted
Các lệnh như sudo parted /dev/sda print free cung cấp thông tin chi tiết về bảng phân vùng và không gian chưa được phân bổ.

(4) Kiểm tra bổ sung cho LVM
Nếu sử dụng LVM, xác nhận kích thước nhóm thể tích và thể tích logic bằng sudo lvssudo vgs.

5.2 Các lưu ý sau khi thực hiện

  • Quản lý dữ liệu sao lưu Nếu việc mở rộng thành công và hệ thống ổn định, các bản sao lưu tạm thời có thể được xóa. Nếu bạn lo ngại, hãy giữ sao lưu trong một thời gian dài hơn.
  • Kiểm tra hệ thống tập tin Để tăng cường an toàn, cân nhắc chạy kiểm tra hệ thống tập tin bằng fsck .
    sudo fsck /dev/sda1
    

(Chỉ chạy sau khi đã gỡ kết nối phân vùng.)

  • Yêu cầu khởi động lại Trong hầu hết các trường hợp, không cần khởi động lại. Tuy nhiên, trong một số môi trường ảo hoặc vật lý, việc khởi động lại đảm bảo hệ điều hành nhận diện đầy đủ kích thước đĩa mới.

5.3 Tóm tắt

Việc mở rộng phân vùng trên Ubuntu có thể được thực hiện mượt mà bằng cách tuân theo các bước chuẩn bị đúng đắn và quy trình chính xác. Luôn sao lưu dữ liệu trước và kiểm tra kết quả cẩn thận để xử lý các vấn đề bất ngờ một cách tự tin.

Quản lý phân vùng và lưu trữ là các nhiệm vụ thiết yếu cho cả quản trị hệ thống và sử dụng hàng ngày. Chúng tôi hy vọng bài viết này giúp bạn quản lý không gian đĩa hiệu quả trong môi trường Ubuntu của bạn.

侍エンジニア塾