Tìm kiếm trang web

Sợ làm hỏng cài đặt Linux của bạn? Đây là cách thay đổi kích thước phân vùng một cách an toàn


Linux đặc biệt so với các hệ điều hành khác ở chỗ bạn được kỳ vọng có ít nhất kiến thức cơ bản về dòng lệnh của hệ điều hành. Bạn có thể làm hầu hết mọi thứ từ dòng lệnh, và thường thì, điều này thậm chí có thể dễ dàng hơn so với việc thao tác qua giao diện đồ họa (GUI).

Trong số những điều bạn có thể làm với dòng lệnh, có việc thay đổi kích thước phân vùng. Đây là bản phân tích về cách thực hiện việc đó.

Chuẩn bị

Chuẩn bị đúng cách là chìa khóa

Trước khi thực hiện bất kỳ thay đổi nào đối với phân vùng đĩa, bạn cần chuẩn bị mọi thứ nếu muốn tránh mất dữ liệu nghiêm trọng. Bước đầu tiên tuyệt đối trong bất kỳ thao tác thay đổi kích thước phân vùng nào là tạo một bản sao lưu toàn diện, được xác minh của tất cả dữ liệu quan trọng trên ổ đĩa mục tiêu. Các thao tác với đĩa vốn có nguy cơ làm hỏng hệ thống tệp hoặc xóa nhầm dữ liệu, vì vậy việc sử dụng công cụ để tạo hình ảnh ổ đĩa hoặc sao chép an toàn các tệp quan trọng sang thiết bị lưu trữ ngoài là điều không thể thiếu.

Khi các bản sao lưu đã được bảo đảm, quản trị viên phải đánh giá bố cục đĩa hiện tại bằng cách sử dụng các tiện ích dòng lệnh. Lệnh lsblk cung cấp một cái nhìn phân cấp rõ ràng về tất cả các thiết bị khối được kết nối và các phân vùng tương ứng của chúng, cho phép bạn xác định các ổ đĩa và ký hiệu phân vùng cụ thể, chẳng hạn như /dev/sda1 hoặc /dev/nvme0n1p2. Ngoài ra, các lệnh như df -h và fdisk -l cung cấp thông tin quan trọng về việc sử dụng hệ thống tập tin, kích thước sector và ranh giới bắt đầu và kết thúc chính xác của các phân vùng hiện có.

Để mở rộng một phân vùng thành công, phải có không gian chưa được phân bổ sẵn có trên ổ đĩa vật lý liền kề với phân vùng mà bạn muốn mở rộng. Nếu không gian chưa được phân bổ nằm ở đầu ổ đĩa hoặc bị phân vùng hoạt động khác ngăn cách, các phương pháp mở rộng tiêu chuẩn sẽ không hoạt động nếu không di chuyển dữ liệu, điều này là một quy trình phức tạp và rủi ro hơn đáng kể. Hơn nữa, quản trị viên cần xác định loại hệ thống tệp hiện đang được định dạng trên phân vùng, chẳng hạn như ext4 hoặc XFS, vì điều này quyết định các công cụ cụ thể cần thiết cho giai đoạn thay đổi kích thước cuối cùng. Trong khi các kernel Linux hiện đại thường hỗ trợ thay đổi kích thước trực tuyến để mở rộng hệ thống tệp ext4 và XFS trong khi chúng đang được gắn kết và sử dụng, các thao tác thu nhỏ hoặc thay đổi cấu trúc bảng phân vùng có thể yêu cầu tháo ổ đĩa hoặc khởi động từ môi trường USB trực tiếp để đảm bảo quyền truy cập độc quyền vào thiết bị lưu trữ.

Mở rộng một phân vùng tiêu chuẩn (không phải LVM)

Đối với hầu hết người dùng

Mở rộng một phân vùng chuẩn, không phải LVM bao gồm một quy trình hai bước nghiêm ngặt: chỉnh sửa bảng phân vùng để nhận diện không gian vật lý lớn hơn, và sau đó hướng dẫn hệ thống tập tin mở rộng vào ranh giới mới được phân bổ đó.

Giai đoạn đầu tiên yêu cầu thay đổi ranh giới phân vùng bằng một công cụ như fdisk hoặc parted. Một phương pháp phổ biến, mặc dù có phần đáng sợ, sử dụng fdisk là xóa bản ghi phân vùng hiện có và ngay lập tức tạo lại nó. Trong quá trình tạo lại này, điều cực kỳ quan trọng là phân vùng mới phải bắt đầu tại cùng một sector khởi đầu chính xác như phân vùng gốc; nếu không khớp với sector khởi đầu sẽ dẫn đến mất dữ liệu ngay lập tức và hệ thống tệp bị hủy.

Việc sử dụng fdisk tương đối đơn giản:

  • Chạy sudo fdisk /dev/sda.
  • Gõ p để in bảng phân vùng và ghi lại sector bắt đầu của phân vùng mà bạn muốn thay đổi kích thước.
  • Gõ d để xóa phân vùng, sau đó nhập số phân vùng (ví dụ: 1). Điều này chỉ xóa mục phân vùng trong bảng phân vùng, không xóa dữ liệu.
  • Gõ n để tạo một phân vùng mới. Sử dụng cùng một sector bắt đầu như đã ghi chú trước đó và chấp nhận sector kết thúc mặc định để sử dụng toàn bộ không gian có sẵn.
  • Gõ w để ghi các thay đổi vào đĩa và thoát.
  • Bạn có thể cần khởi động lại hệ thống để kernel nhận diện các thay đổi trong bảng phân vùng: sudo reboot.

Phần kết thúc của phân vùng sau đó được mở rộng để bao phủ không gian chưa được phân bổ liền kề. Ngoài ra, tiện ích growpart cung cấp một phương pháp an toàn hơn và tinh gọn hơn bằng cách tự động ghi lại bảng phân vùng để mở rộng phân vùng đã chỉ định vào không gian liền kề có sẵn mà không cần xóa thủ công và tạo lại các ranh giới của sector.

Khi bảng phân vùng cơ sở đã được cập nhật để phản ánh kích thước tăng lên, hệ điều hành phải được thông báo về thay đổi phần cứng. Chạy lệnh partprobe buộc kernel đọc lại các bảng phân vùng, đảm bảo nó nhận diện được kích thước mới của thiết bị khối mà không cần khởi động lại hệ thống. Giai đoạn thứ hai liên quan đến chính hệ thống tệp, vốn vẫn chưa nhận biết về không gian bổ sung và giữ giới hạn kích thước ban đầu của nó. Đối với hệ thống tệp ext2, ext3 hoặc ext4 thông thường, lệnh resize2fs được thực hiện trên thiết bị khối của phân vùng mục tiêu. Tiện ích này mở rộng các cấu trúc hệ thống tệp để lấp đầy toàn bộ phân vùng vừa được mở rộng. Nếu phân vùng sử dụng hệ thống tệp XFS, lệnh xfs_growfs được dùng thay thế, yêu cầu phân vùng phải được gắn kết và nhận thư mục điểm gắn kết làm đối số thay vì đường dẫn thiết bị.

Mở rộng với LVM

Bạn cũng có thể làm điều này với máy chủ của mình






Trình quản lý Khối Lượng Logic cung cấp một lớp trừu tượng rất linh hoạt trên bộ nhớ vật lý, làm cho quá trình mở rộng trở nên linh động hơn nhiều so với việc xử lý các phân vùng tiêu chuẩn.

Kiến trúc LVM được xây dựng trên ba thành phần chính: Các Khối Lượng Vật Lý (Physical Volumes) tương ứng với các thiết bị lưu trữ thực tế, Các Nhóm Khối Lượng (Volume Groups) gom nhóm dung lượng từ một hoặc nhiều Khối Lượng Vật Lý, và Các Khối Lượng Logic (Logical Volumes) là các phân vùng cuối cùng có thể sử dụng, được cắt ra từ Nhóm Khối Lượng. Để mở rộng một thiết lập LVM, quản trị viên trước tiên cần có dung lượng lưu trữ thô sẵn có. Điều này có thể đạt được bằng cách thêm một ổ cứng hoàn toàn mới vào hệ thống hoặc sử dụng không gian chưa được phân bổ trên một ổ hiện có.

Không gian lưu trữ mới trước tiên phải được khởi tạo thành một Thể tích Vật lý bằng cách sử dụng lệnh pvcreate. Bước này chuẩn bị ổ đĩa thô hoặc phân vùng bằng cách ghi dữ liệu siêu LVM vào đó, báo hiệu cho hệ thống con LVM rằng thiết bị đã sẵn sàng để được tích hợp vào một bể lưu trữ hiện có.

Khi Khối Lượng Vật Lý được khởi tạo, bước tiếp theo là mở rộng dung lượng của Nhóm Khối Lượng tổng thể. Lệnh vgextend được sử dụng để thêm Khối Lượng Vật Lý mới tạo vào Nhóm Khối Lượng mong muốn. Bằng cách này, tổng lượng khối lưu trữ có sẵn, chưa được phân bổ trong Nhóm Khối Lượng đó sẽ ngay lập tức tăng lên. Khi Nhóm Khối Lượng được mở rộng thành công, quản trị viên có thể phân bổ một không gian mới này cho một Khối Lượng Logic cụ thể.

Lệnh lvextend chịu trách nhiệm tăng kích thước của Chính Volume (Logical Volume) tự nó. Một lợi thế lớn của quá trình LVM này là khả năng sử dụng tùy chọn -r hoặc --resizefs trực tiếp trong lệnh lvextend. Tùy chọn tích hợp này tự động phát hiện hệ thống tệp cơ bản, dù là ext4 hay XFS, và thực hiện liền mạch tiện ích mở rộng hệ thống tệp tương ứng cùng với việc mở rộng volume. Điều này loại bỏ nhu cầu chạy các lệnh riêng biệt như resize2fs hoặc xfs_growfs thủ công.


Dòng lệnh có thể gây khó chịu, và đặc biệt là khi bạn đang xử lý một thứ gì đó phức tạp như phân vùng. Tuy nhiên, hy vọng điều này sẽ làm nó trở nên dễ dàng hơn một chút.

Bài viết liên quan