Trong thế giới của hệ điều hành Linux, việc quản lý không gian lưu trữ là một kỹ năng then chốt đối với mọi người dùng, từ những người mới làm quen cho đến các quản trị viên hệ thống chuyên nghiệp. Cho dù bạn đang cài đặt Linux trên một hệ thống mới, thêm ổ đĩa cứng hoặc SSD, hay chỉ đơn giản là cần giám sát dung lượng lưu trữ, Linux cung cấp một bộ công cụ dòng lệnh mạnh mẽ để bạn kiểm soát hoàn toàn các thiết bị lưu trữ của mình.
Bài viết này sẽ đi sâu vào các lệnh quản lý ổ đĩa thiết yếu nhất trong Linux, giúp bạn nắm vững cách kiểm tra dung lượng trống, phân vùng ổ đĩa, định dạng hệ thống tập tin và nhiều hơn nữa. Chúng ta sẽ khám phá chức năng của từng lệnh, cách sử dụng chúng hiệu quả và những lưu ý quan trọng để đảm bảo an toàn dữ liệu.
I. Kiểm Tra Dung Lượng và Sử Dụng Ổ Đĩa
1. df
(Disk Free): Xem Dung Lượng Đĩa Trống
Lệnh df
(disk free) là công cụ đầu tiên bạn cần nghĩ đến khi muốn kiểm tra dung lượng trống trên các thiết bị đã được mount. Khi chạy lệnh df
mà không có đối số, nó sẽ hiển thị dung lượng khả dụng của tất cả các thiết bị lưu trữ hiện đang được gắn kết (mounted devices) trên hệ thống của bạn.
Để xem dung lượng trống của thiết bị mà một thư mục hoặc tập tin cụ thể được gắn kết, bạn có thể chỉ định đường dẫn làm đối số. Ví dụ, để kiểm tra dung lượng trống của thư mục gốc (/
):
df /
Mặc định, df
báo cáo kích thước theo khối (blocks), đơn vị này có thể khác nhau tùy thuộc vào hệ thống. Để có cái nhìn trực quan và dễ hiểu hơn, bạn nên sử dụng tùy chọn -h
(human-readable) để hiển thị kết quả dưới các đơn vị quen thuộc như gigabyte (GB) hoặc terabyte (TB).
df -h
Hình ảnh các ổ đĩa cứng (HDD) đặt trên mặt bàn, minh họa cho phần quản lý không gian đĩa trong Linux.
2. du
(Disk Usage): Báo Cáo Mức Sử Dụng Đĩa
Khác với df
, lệnh du
(disk usage) tập trung vào việc báo cáo dung lượng mà các tập tin và thư mục chiếm dụng trong một đường dẫn cụ thể. Nếu không có đối số, du
sẽ liệt kê kích thước của các tập tin và thư mục con trong thư mục hiện hành. Đây là công cụ lý tưởng để xác định các tập tin hoặc thư mục lớn đang chiếm nhiều không gian.
du
hoạt động theo cơ chế đệ quy, nghĩa là nếu có một thư mục con trong danh sách, du
sẽ tiếp tục liệt kê các tập tin và thư mục con bên trong nó. Điều này có thể tạo ra một lượng lớn đầu ra trên các hệ thống Linux với nhiều thư mục lồng nhau.
Tương tự như df
, du
cũng báo cáo kích thước theo khối mặc định và bạn có thể sử dụng tùy chọn -h
để hiển thị kết quả ở định dạng dễ đọc hơn (human-readable units).
du -h
Ổ đĩa cứng kết nối với bộ chuyển đổi USB trên bề mặt gỗ, minh họa cho việc kiểm tra dung lượng sử dụng với lệnh du.
II. Các Công Cụ Phân Vùng và Quản Lý Ổ Đĩa
3. fdisk
: Phân Vùng Ổ Đĩa Cơ Bản
fdisk
là một công cụ phân vùng ổ đĩa kinh điển và cơ bản trong Linux. Nó là một phần không thể thiếu trong bất kỳ bản cài đặt Linux nào, vì hệ điều hành thường yêu cầu một phân vùng riêng và bạn có thể muốn có thêm một phân vùng swap.
Bạn cũng có thể tạo các phân vùng riêng cho các thư mục nhất định như thư mục /home
. Mặc dù nhiều chương trình cài đặt Linux hiện đại sử dụng các công cụ phức tạp hơn phía sau, fdisk
vẫn rất hữu ích nếu bạn đang cài đặt một bản phân phối kỹ thuật hơn như Arch Linux, hoặc khi bạn muốn phân vùng ổ đĩa ngoài/ổ đĩa phụ, hay thậm chí trên một USB phục hồi.
Lưu ý quan trọng: Tuyệt đối không sử dụng fdisk
để phân vùng lại một ổ đĩa đang được gắn kết (mounted drive). Thao tác này có thể dẫn đến mất dữ liệu nghiêm trọng.
4. GNU Parted
: Công Cụ Phân Vùng Nâng Cao
GNU Parted là một công cụ phân vùng từ dự án GNU, cung cấp giao diện thân thiện hơn so với fdisk
. Nó được thiết kế để giúp ngăn chặn các hoạt động nguy hiểm có thể gây mất dữ liệu. Giao diện menu của parted
thường được đánh giá là dễ hiểu và trực quan hơn fdisk
.
Để chạy parted
, bạn có thể thực hiện lệnh sau trong terminal:
sudo parted /dev/sdaX
Thay “X” bằng tên thiết bị bạn muốn phân vùng (ví dụ: sda
, sdb
). Một lần nữa, hãy tránh phân vùng một thiết bị đang được gắn kết.
Giao diện GNU Parted hiển thị bảng phân vùng ổ đĩa trong cửa sổ terminal Linux.
5. cfdisk
: Phân Vùng Với Giao Diện Curses
cfdisk
là một nỗ lực khác nhằm tạo ra một phiên bản fdisk
thân thiện với người dùng hơn. Sự khác biệt chính so với fdisk
là cfdisk
chạy trong một giao diện người dùng văn bản (Text User Interface – TUI), hay còn gọi là giao diện “curses”. Giao diện này tương tự như các chương trình toàn màn hình khác như Vim, cho phép bạn điều hướng qua các menu để liệt kê và tạo phân vùng thay vì sử dụng các lệnh khó nhớ.
cfdisk
là một lựa chọn nhẹ nhàng thay thế cho các chương trình yêu cầu giao diện đồ họa như GParted. Tương tự như các công cụ phân vùng khác, bạn nên tránh phân vùng lại một ổ đĩa đang được gắn kết. Giao diện của cfdisk
cũng hiển thị cảnh báo rõ ràng về điều này.
Giao diện cfdisk trên terminal Linux, một công cụ phân vùng dựa trên curses.
6. sfdisk
: Phân Vùng Tự Động Bằng Script
sfdisk là một công cụ tương tự các tiện ích phân vùng đĩa khác, nhưng điểm khác biệt chính của nó là được thiết kế để sử dụng trong các script. Các nhà phát triển bản phân phối có thể sử dụng sfdisk
để tự động hóa quá trình tạo phân vùng. Nếu bạn thường xuyên thêm và xóa ổ đĩa, bạn cũng có thể sử dụng nó để tự động hóa việc phân vùng lại ổ đĩa.
Giống như các công cụ phân vùng khác, bạn không nên sử dụng sfdisk
trên một hệ thống tập tin đang được gắn kết. Chương trình sẽ tự động hủy bỏ với một thông báo lỗi màu đỏ nếu bạn cố gắng thực hiện điều đó.
III. Quản Lý Bộ Nhớ Swap
7. swapon
và swapoff
: Kích Hoạt/Vô Hiệu Hóa Swap
swapon
và swapoff
là các công cụ để bật và tắt các thiết bị đã được thiết lập cho việc hoán đổi (swapping). “Swapping” là một cơ chế sử dụng một phần ổ đĩa (thường là phân vùng swap) để lưu trữ các phần của bộ nhớ làm việc khi RAM vật lý không đủ. Điều này cho phép máy tính sử dụng nhiều bộ nhớ hơn lượng RAM vật lý có sẵn, tuy nhiên, hiệu suất sẽ giảm đi do tốc độ truy cập ổ đĩa chậm hơn nhiều so với RAM. Các phần của bộ nhớ được chia thành các “trang” và được “đưa ra” (swapped out) – sao chép từ RAM vào phân vùng swap – hoặc “đưa vào” (swapped in) – sao chép ngược lại vào RAM khi cần.
Thanh RAM đặt trên bàn, biểu thị khái niệm bộ nhớ RAM và khu vực swap trong Linux.
Bạn có thể sử dụng lệnh swapon
và swapoff
để bật và tắt thiết bị swap tùy ý. Trên hầu hết các bản phân phối Linux, việc này được xử lý tự động. Tuy nhiên, nếu bạn đang sử dụng các bản phân phối kỹ thuật hơn như Arch Linux hoặc Gentoo, bạn có thể cần phải thực hiện thủ công. Bạn cũng có thể sử dụng các lệnh này nếu bạn thêm một ổ đĩa mới. Sau khi thiết lập phân vùng swap, bạn có thể kích hoạt nó bằng swapon
:
sudo swapon /dev/sdX
Hoặc để vô hiệu hóa nó:
sudo swapoff /dev/sdX
Ảnh chụp màn hình terminal Linux hiển thị kết quả lệnh swapoff sau khi vô hiệu hóa phân vùng swap.
Bạn có thể sử dụng tùy chọn -a
để bật hoặc tắt tất cả các phân vùng swap được định nghĩa trong /etc/fstab
.
IV. Định Dạng và Kiểm Tra Hệ Thống Tập Tin
8. mkfs
: Tạo Hệ Thống Tập Tin
Khi bạn đã tạo các phân vùng, chúng sẽ vô dụng cho đến khi bạn biến chúng thành một hệ thống tập tin (filesystem). Sơ đồ hệ thống tập tin xác định cách các tập tin sẽ được lưu trữ trên ổ đĩa. Đây là lúc lệnh mkfs
(make filesystem) phát huy tác dụng. Lệnh này sẽ định dạng phân vùng với một hệ thống tập tin cụ thể.
Thông thường, chương trình cài đặt hệ điều hành sẽ tự động thực hiện việc này. Tuy nhiên, nếu bạn đang sử dụng Arch Linux hoặc một bản phân phối kỹ thuật hơn, hoặc bạn đã thêm một ổ đĩa mới vào hệ thống, bạn sẽ cần sử dụng mkfs
.
Có nhiều loại hệ thống tập tin bạn có thể sử dụng, nhưng Ext4 là một trong những lựa chọn phổ biến nhất vì nó được hỗ trợ rộng rãi và rất đáng tin cậy. Để thiết lập một phân vùng Ext4 mới, bạn sử dụng mkfs.ext4
:
mkfs.ext4 /dev/sdaX
9. Các Tiện Ích Hệ Thống Tập Tin Chuyên Biệt (Ví dụ: fsck
)
mkfs
là một ví dụ điển hình về các tiện ích ổ đĩa đi kèm với các hệ thống tập tin nhất định. Đây là những công cụ được thiết kế để hoạt động với các hệ thống tập tin cụ thể thay vì với toàn bộ Linux.
Một ví dụ điển hình là e2fsprogs
, một bộ công cụ được thiết kế cho họ các hệ thống tập tin Extended Filesystem, trong đó Ext4 là ví dụ gần đây nhất.
Hầu hết các tiện ích đi kèm với e2fsprogs
chủ yếu dành cho các nhà phát triển và người bảo trì bản phân phối. Tuy nhiên, có một tiện ích mà bạn có thể thường xuyên gặp là fsck
(đọc là “fisk”), viết tắt của “file system consistency check”. Lệnh này chạy khi khởi động hệ thống và kiểm tra xem hệ thống có được tắt một cách sạch sẽ hay không. Nếu không, ví dụ như khi mất điện đột ngột thay vì tắt máy đúng cách, fsck
sẽ cố gắng đưa hệ thống tập tin trở lại trạng thái nhất quán. May mắn thay, trên các hệ thống hiện đại, quá trình này diễn ra nhanh chóng nhờ việc sử dụng nhật ký (journal) để theo dõi các thay đổi đối với hệ thống tập tin.
Các hệ thống tập tin khác cũng có các tiện ích fsck
và tương tự.
V. Cập Nhật Thông Tin Phân Vùng cho Kernel
10. partprobe
: Thông Báo Thay Đổi Phân Vùng
partprobe
là một tiện ích thông báo cho nhân Linux (Linux kernel) về các thay đổi trong bảng phân vùng. Nếu bạn đã sử dụng một trong các công cụ phân vùng được đề cập trước đó, nhân có thể chưa được thông báo về bất kỳ thay đổi nào. Hầu hết thời gian, đây là một chi tiết mà bản phân phối của bạn sẽ tự động xử lý. Tuy nhiên, nếu bạn đã thực hiện các thay đổi đối với ổ đĩa hoặc phân vùng của mình, bạn có thể sử dụng công cụ này để cập nhật nhân đang chạy mà không cần phải khởi động lại hệ thống.
Ví dụ, để chạy partprobe
trên một phân vùng cụ thể:
sudo partprobe /dev/sda1
Thường thì partprobe
không hiển thị nhiều đầu ra. Trong Linux, dấu hiệu một chương trình đã thực hiện công việc của nó thường là không có thông báo gì cả.
Kết Luận
Việc nắm vững các lệnh quản lý ổ đĩa trong Linux là vô cùng quan trọng để bạn có thể kiểm soát hoàn toàn hệ thống lưu trữ của mình. Từ việc kiểm tra dung lượng trống với df
và du
, đến việc phân vùng ổ đĩa bằng fdisk
, parted
, cfdisk
, hay tự động hóa với sfdisk
, cho đến việc định dạng hệ thống tập tin bằng mkfs
và quản lý swap với swapon
/swapoff
, mỗi lệnh đều có một vai trò riêng biệt. Cuối cùng, partprobe
đảm bảo nhân Linux luôn được cập nhật về cấu trúc ổ đĩa của bạn.
Việc thực hành cẩn thận và hiểu rõ chức năng của từng lệnh sẽ giúp bạn tự tin quản lý các thiết bị lưu trữ, tối ưu hóa không gian và duy trì tính ổn định cho hệ thống Linux của mình. Hãy luôn nhớ sao lưu dữ liệu quan trọng trước khi thực hiện bất kỳ thay đổi nào liên quan đến phân vùng và hệ thống tập tin. Nếu có bất kỳ câu hỏi nào về các lệnh này, đừng ngần ngại để lại bình luận phía dưới!