Chào bạn, tôi là Đức, người đứng sau blog Buimanhduc.com. Với kinh nghiệm làm việc trong lĩnh vực phát triển website và quản trị hệ thống, tôi hiểu rằng việc làm chủ các công cụ dòng lệnh là một kỹ năng cực kỳ quan trọng. Hôm nay, chúng ta sẽ cùng nhau tìm hiểu sâu về một trong những lệnh mạnh mẽ và thiết yếu nhất trong môi trường Linux: lệnh mkfs. Định dạng một phân vùng hay tạo một hệ thống tập tin mới nghe có vẻ đáng sợ, đặc biệt là khi một sai lầm nhỏ cũng có thể dẫn đến mất dữ liệu. Nhưng đừng lo, bài viết này sẽ hướng dẫn bạn từng bước, từ những khái niệm cơ bản nhất đến các kỹ thuật nâng cao, giúp bạn sử dụng mkfs một cách tự tin, an toàn và hiệu quả.
Giới thiệu về lệnh mkfs trong Linux
Trong thế giới quản trị hệ thống Linux, việc định dạng hệ thống tập tin là một thao tác nền tảng và không thể thiếu. Nó giống như việc bạn chuẩn bị một mảnh đất trước khi xây nhà vậy; nếu nền móng không vững chắc, ngôi nhà cũng không thể bền vững. Một hệ thống tập tin (filesystem) được tổ chức tốt sẽ quyết định cách dữ liệu được lưu trữ, truy xuất và quản lý, ảnh hưởng trực tiếp đến hiệu suất và sự ổn định của toàn bộ hệ thống. Nếu không có bước định dạng này, ổ đĩa chỉ là một không gian lưu trữ trống rỗng, vô dụng mà hệ điều hành không thể hiểu và tương tác.
Tuy nhiên, quá trình định dạng và tạo filesystem lại tiềm ẩn nhiều rủi ro, đặc biệt với những người mới. Các vấn đề phổ biến bao gồm việc chọn sai loại filesystem không phù hợp với nhu cầu, định dạng nhầm phân vùng chứa dữ liệu quan trọng, hoặc không biết cách tối ưu các tham số để đạt hiệu suất tốt nhất. Những sai lầm này có thể dẫn đến hậu quả nghiêm trọng như mất mát dữ liệu vĩnh viễn hoặc hiệu năng hệ thống kém cỏi.
Đây chính là lúc lệnh mkfs (make filesystem) phát huy vai trò của mình. Nó là công cụ chuẩn và mạnh mẽ trong Linux, được thiết kế chuyên biệt để tạo ra các hệ thống tập tin trên một phân vùng hoặc thiết bị lưu trữ. Với mkfs, bạn có toàn quyền kiểm soát quá trình này, từ việc lựa chọn loại filesystem như ext4, XFS, VFAT cho đến việc tùy chỉnh các thông số kỹ thuật chi tiết.
Để giúp bạn làm chủ công cụ này, bài viết sẽ được cấu trúc một cách logic và dễ hiểu. Chúng ta sẽ bắt đầu từ những khái niệm cơ bản về Linux là gì và tại sao nó quan trọng. Tiếp theo, bài viết sẽ đi sâu vào hướng dẫn chi tiết từng bước sử dụng lệnh, giới thiệu các loại filesystem phổ biến, phân tích các tùy chọn nâng cao, và cung cấp các cảnh báo an toàn. Cuối cùng, chúng ta sẽ xem xét các lỗi thường gặp và những phương pháp tốt nhất để bạn luôn thao tác một cách chuyên nghiệp.
Hiểu về lệnh mkfs và mục đích sử dụng
Để sử dụng một công cụ hiệu quả, trước hết chúng ta cần hiểu rõ bản chất và mục đích của nó. Lệnh mkfs không chỉ đơn thuần là một dòng lệnh, mà nó là chìa khóa để “dạy” cho hệ điều hành cách tổ chức dữ liệu trên một không gian lưu trữ trống.
Lệnh mkfs là gì?
mkfs là viết tắt của “make filesystem”, dịch nôm na là “tạo hệ thống tập tin”. Về cơ bản, đây là một lệnh trong các hệ điều hành dựa trên Unix/Linux, có nhiệm vụ khởi tạo một hệ thống tập tin trên một thiết bị lưu trữ, thường là một phân vùng của ổ cứng, USB hoặc thẻ nhớ. Khi bạn chạy lệnh mkfs, nó sẽ ghi các cấu trúc dữ liệu cần thiết lên phân vùng đó. Các cấu trúc này bao gồm inode, superblocks, và các bảng dữ liệu, hoạt động như một hệ thống chỉ mục và quy tắc để hệ điều hành biết nơi bắt đầu và kết thúc của một tệp, cách quản lý không gian trống, và cách theo dõi các thuộc tính của tệp (như quyền truy cập, ngày tạo…).
Mối liên hệ giữa mkfs và việc quản lý phân vùng, ổ đĩa là vô cùng mật thiết. Sau khi bạn sử dụng các công cụ như fdisk hay parted để chia một ổ đĩa vật lý thành các phân vùng logic, những phân vùng này vẫn ở trạng thái “thô” (raw). Hệ điều hành chưa thể đọc hay ghi dữ liệu lên chúng. Lệnh mkfs chính là bước tiếp theo, biến một phân vùng thô thành một không gian có tổ chức, sẵn sàng để được “mount” (gắn) vào cây thư mục của Linux và sử dụng. Nó là cầu nối giữa phần cứng (phân vùng ổ đĩa) và phần mềm (hệ điều hành).

Ứng dụng thực tế của lệnh mkfs
Vậy khi nào chúng ta thực sự cần đến lệnh mkfs? Câu trả lời là trong rất nhiều tình huống quản trị hệ thống hàng ngày. Dưới đây là một vài ví dụ điển hình:
1. Cài đặt hệ điều hành mới: Khi bạn cài đặt một bản phân phối Linux mới, trình cài đặt sẽ tự động sử dụng mkfs ở chế độ nền để định dạng các phân vùng bạn đã chọn cho root (/), home (/home), và các phân vùng khác. Tham khảo thêm cách cài đặt Ubuntu để hiểu rõ hơn quy trình này.
2. Thêm một ổ đĩa mới: Nếu bạn lắp thêm một ổ cứng SSD hoặc HDD vào máy chủ hoặc máy tính cá nhân, bạn cần phải tạo phân vùng trên ổ đĩa đó và sau đó dùng mkfs để định dạng phân vùng trước khi có thể lưu trữ dữ liệu.
3. Tái định dạng ổ cứng hoặc USB: Giả sử bạn có một chiếc USB được định dạng cho máy Mac (HFS+) và muốn sử dụng nó trên cả Windows và Linux. Bạn sẽ cần dùng mkfs để định dạng lại nó với một filesystem tương thích rộng rãi hơn như VFAT (FAT32) hoặc exFAT.
4. Tạo phân vùng cho mục đích đặc biệt: Bạn có thể muốn tạo một phân vùng riêng với hệ thống tập tin XFS để tối ưu cho việc lưu trữ các tệp video lớn, hoặc một phân vùng swap để làm bộ nhớ ảo cho hệ thống.
Lợi ích lớn nhất khi tạo hệ thống tập tin phù hợp với mkfs là khả năng tối ưu hóa. Bằng cách chọn đúng loại filesystem và các tùy chọn đi kèm, bạn có thể cải thiện đáng kể hiệu suất, tăng cường độ tin cậy và bảo mật dữ liệu cho từng tác vụ cụ thể. Ví dụ, ext4 với tính năng journaling giúp phục hồi dữ liệu tốt hơn sau sự cố mất điện, trong khi XFS lại vượt trội về tốc độ xử lý các tệp tin dung lượng lớn. Sử dụng mkfs cho phép bạn đưa ra những lựa chọn thông minh này.
Các bước sử dụng lệnh mkfs để tạo hệ thống tập tin trên Linux
Bây giờ, hãy cùng đi vào phần thực hành. Việc sử dụng mkfs không hề phức tạp nếu bạn tuân thủ đúng quy trình và cẩn trọng. Dưới đây là các bước chi tiết để bạn có thể tự tin tạo một hệ thống tập tin mới.
Chuẩn bị trước khi sử dụng lệnh mkfs
Đây là bước quan trọng nhất, quyết định sự an toàn cho toàn bộ dữ liệu của bạn. Tuyệt đối không được bỏ qua giai đoạn chuẩn bị này.
1. Kiểm tra và xác định đúng phân vùng ổ đĩa: Trước khi định dạng bất cứ thứ gì, bạn phải biết chính xác tên của phân vùng mục tiêu. Hai lệnh phổ biến và hữu ích nhất để làm việc này là fdisk và lsblk.
Sử dụng lệnh sudo lsblk để xem danh sách tất cả các thiết bị lưu trữ và các phân vùng của chúng dưới dạng cây. Kết quả sẽ hiển thị tên thiết bị (ví dụ: sda, sdb), kích thước, và điểm gắn kết (mount point) nếu có. Điều này giúp bạn dễ dàng xác định phân vùng trống hoặc phân vùng cần định dạng lại. Ví dụ, phân vùng thứ nhất trên ổ đĩa thứ hai sẽ có tên là /dev/sdb1.
Để có thông tin chi tiết hơn, bạn có thể dùng sudo fdisk -l. Lệnh này sẽ liệt kê chi tiết bảng phân vùng của từng ổ đĩa.

2. Đảm bảo sao lưu dữ liệu quan trọng: Lệnh mkfs sẽ xóa sạch toàn bộ dữ liệu trên phân vùng mục tiêu. Quá trình này không thể hoàn tác. Vì vậy, nếu phân vùng bạn sắp định dạng có chứa bất kỳ dữ liệu nào, dù là nhỏ nhất, hãy chắc chắn rằng bạn đã sao lưu chúng sang một nơi an toàn khác (một ổ đĩa khác, lưu trữ đám mây, hoặc một máy chủ từ xa). Hãy kiểm tra lại bản sao lưu để đảm bảo nó toàn vẹn và có thể phục hồi được. Nguyên tắc vàng là: “Không sao lưu, không định dạng”. Tham khảo thêm bài viết về Ram là gì để hiểu về vai trò của bộ nhớ và cách dữ liệu được xử lý trong hệ thống.
Cú pháp cơ bản của mkfs và ví dụ minh họa
Sau khi đã hoàn tất bước chuẩn bị, bạn có thể tiến hành định dạng phân vùng. Cú pháp chung của lệnh mkfs khá đơn giản.
Cú pháp cơ bản:
sudo mkfs [tùy chọn] <tên_thiết_bị>
Trong đó:
- sudo: Lệnh
mkfs cần quyền quản trị viên (root) để có thể ghi vào thiết bị ở cấp độ thấp, vì vậy chúng ta cần dùng sudo.
- [tùy chọn]: Các tham số để tùy chỉnh quá trình tạo filesystem. Tùy chọn phổ biến nhất là
-t để chỉ định loại filesystem.
- <tên_thiết_bị>: Đường dẫn đến phân vùng bạn muốn định dạng, ví dụ
/dev/sdb1.
Một cách viết khác, và cũng là cách được khuyến nghị, là sử dụng các lệnh cụ thể cho từng loại filesystem, ví dụ mkfs.ext4, mkfs.xfs,… Cách viết này rõ ràng và dễ đọc hơn.
Ví dụ minh họa: Giả sử chúng ta muốn định dạng phân vùng /dev/sdb1 với hệ thống tập tin ext4, loại filesystem mặc định và phổ biến nhất trên Linux.
Bước 1: Xác định phân vùng
Chạy lệnh sudo lsblk và xác nhận rằng /dev/sdb1 chính là phân vùng bạn muốn định dạng. Hãy chắc chắn rằng nó không được mount (cột MOUNTPOINT trống). Nếu nó đã được mount, bạn cần unmount nó trước bằng lệnh sudo umount /dev/sdb1.
Bước 2: Thực hiện định dạng
Chạy lệnh sau trong terminal:
sudo mkfs.ext4 /dev/sdb1
Hệ thống sẽ hiển thị một vài thông tin về quá trình nó đang thực hiện, như tạo journal, viết superblocks… Quá trình này thường chỉ mất vài giây đến vài phút tùy thuộc vào kích thước phân vùng.
Bước 3: Xác nhận lại
Sau khi lệnh hoàn tất, bạn có thể kiểm tra lại bằng lệnh sudo lsblk -f. Lệnh này sẽ hiển thị thông tin về filesystem (cột FSTYPE) và UUID của các phân vùng. Bạn sẽ thấy FSTYPE của /dev/sdb1 bây giờ là ext4. Phân vùng của bạn đã sẵn sàng để được mount và sử dụng!

Tổng quan các loại hệ thống tập tin phổ biến
Việc lựa chọn hệ thống tập tin (filesystem) phù hợp cũng quan trọng như việc chọn đúng loại vật liệu để xây nhà. Mỗi loại filesystem có những ưu và nhược điểm riêng, được tối ưu cho các mục đích sử dụng khác nhau. Lệnh mkfs cho phép bạn lựa chọn một trong số chúng. Dưới đây là ba loại phổ biến nhất bạn sẽ gặp khi làm việc với Linux.
ext4 – hệ thống tập tin mặc định Linux
ext4 (Fourth Extended Filesystem) là hậu duệ của các hệ thống tập tin ext2 và ext3, và hiện là lựa chọn mặc định cho hầu hết các bản phân phối Linux hiện đại như Ubuntu, Debian, và CentOS. Sự phổ biến này không phải là ngẫu nhiên, mà đến từ sự cân bằng tuyệt vời giữa hiệu suất, độ ổn định và các tính năng mạnh mẽ.
Ưu điểm và tính năng:
- Độ tin cậy cao với Journaling: Đây là một trong những tính năng quan trọng nhất. Journaling hoạt động như một cuốn nhật ký ghi lại các thay đổi sắp được thực hiện trước khi chúng thực sự được ghi vào đĩa. Nếu hệ thống gặp sự cố đột ngột (như mất điện), nó có thể sử dụng “cuốn nhật ký” này để phục hồi lại trạng thái nhất quán, giảm thiểu nguy cơ hỏng dữ liệu.
- Hỗ trợ dung lượng lớn:
ext4 hỗ trợ các phân vùng có dung lượng lên tới 1 exbibyte (EiB) và các tệp đơn lẻ lên tới 16 tebibytes (TiB), đáp ứng đủ nhu cầu từ máy tính cá nhân đến các hệ thống máy chủ lớn.
- Hiệu suất tốt: So với
ext3, ext4 có nhiều cải tiến về hiệu suất như cấp phát không gian đĩa hiệu quả hơn (extents), giúp giảm phân mảnh và tăng tốc độ đọc/ghi tệp lớn.
Trường hợp sử dụng: ext4 là một lựa chọn đa dụng và an toàn cho hầu hết mọi tình huống. Nó là lựa chọn lý tưởng cho phân vùng hệ điều hành (/), phân vùng chứa dữ liệu người dùng (/home), và các máy chủ ứng dụng web. Nếu bạn không chắc nên chọn loại nào, ext4 luôn là một khởi đầu tốt.
XFS và VFAT
Ngoài ext4, Linux còn hỗ trợ nhiều loại filesystem khác, trong đó XFS và VFAT là hai cái tên đáng chú ý cho các mục đích chuyên biệt.
1. XFS (eXtents File System):
Được phát triển bởi Silicon Graphics, XFS là một hệ thống tập tin 64-bit hiệu suất cao, được thiết kế đặc biệt để xử lý các tệp tin cực lớn và hệ thống lưu trữ dung lượng cao.
- Ưu điểm: Điểm mạnh lớn nhất của
XFS là khả năng xử lý song song và tốc độ truy xuất dữ liệu vượt trội, đặc biệt là với các tệp có kích thước hàng gigabyte hoặc terabyte. Nó cũng có khả năng thay đổi kích thước online (trong khi đang được sử dụng) một cách hiệu quả.
- Nhược điểm: Việc phục hồi dữ liệu trên
XFS sau sự cố có thể phức tạp hơn so với ext4. Nó cũng không phù hợp cho các tác vụ liên quan đến việc tạo và xóa liên tục một số lượng lớn các tệp nhỏ.
- Trường hợp sử dụng:
XFS là lựa chọn hàng đầu cho các máy chủ media, máy chủ lưu trữ file (NAS), cơ sở dữ liệu lớn, và các hệ thống cần xử lý video hoặc dữ liệu khoa học.
2. VFAT (Virtual File Allocation Table):
VFAT thực chất là một phần mở rộng của hệ thống tập tin FAT32 cũ của Microsoft. Điểm mạnh duy nhất và lớn nhất của nó là khả năng tương thích.
- Ưu điểm:
VFAT được hỗ trợ bởi gần như mọi hệ điều hành hiện đại, bao gồm Windows, macOS và Linux. Điều này làm cho nó trở thành lựa chọn hoàn hảo cho các thiết bị lưu trữ di động.
- Nhược điểm:
VFAT rất hạn chế về tính năng. Nó không hỗ trợ journaling, không có hệ thống quyền sở hữu tệp theo kiểu Unix, và giới hạn kích thước tệp đơn lẻ ở mức 4GB.
- Trường hợp sử dụng: Sử dụng
VFAT khi bạn cần định dạng ổ USB, thẻ nhớ SD, hoặc ổ cứng di động để chia sẻ dữ liệu giữa nhiều hệ điều hành khác nhau.
Hướng dẫn chọn filesystem phù hợp:
Khi sử dụng mkfs, hãy tự hỏi: “Phân vùng này sẽ được dùng để làm gì?”.
- Hệ điều hành và sử dụng hàng ngày? Chọn
mkfs.ext4.
- Lưu trữ file media, video, backup dung lượng lớn? Cân nhắc
mkfs.xfs.
- USB, thẻ nhớ để trao đổi dữ liệu? Dùng
mkfs.vfat.
Việc lựa chọn đúng sẽ giúp hệ thống của bạn hoạt động hiệu quả và ổn định hơn rất nhiều.

Các tùy chọn và cú pháp chi tiết của lệnh mkfs
Sau khi đã chọn được loại filesystem phù hợp, bạn có thể tinh chỉnh thêm quá trình tạo filesystem bằng các tham số (tùy chọn) của lệnh mkfs. Những tùy chọn này cho phép bạn kiểm soát sâu hơn, từ việc đặt nhãn cho phân vùng đến việc tối ưu hóa không gian lưu trữ.
Các tham số phổ biến
Dù bạn sử dụng mkfs.ext4 hay mkfs.xfs, có một số tham số chung và hữu ích mà bạn nên biết.
- -t <loại> (type): Đây là tham số cơ bản của lệnh
mkfs chung, dùng để chỉ định loại hệ thống tập tin cần tạo. Ví dụ: mkfs -t ext4 /dev/sdb1. Tuy nhiên, như đã đề cập, sử dụng lệnh cụ thể như mkfs.ext4 sẽ tường minh hơn.
- -L <nhãn> (Label): Gán một cái tên (nhãn) cho phân vùng. Điều này rất hữu ích cho việc quản lý. Thay vì phải nhớ tên thiết bị như
/dev/sdb1, bạn có thể nhận diện nó qua nhãn, ví dụ “DuLieu”. Cú pháp: sudo mkfs.ext4 -L DuLieu /dev/sdb1.
- -c (check): Kiểm tra phân vùng để tìm các khối bị lỗi (bad blocks) trước khi định dạng. Tùy chọn này làm quá trình định dạng chậm hơn đáng kể nhưng đảm bảo rằng filesystem sẽ không được tạo trên các vùng bị hỏng của ổ đĩa. Có hai dạng:
-c để kiểm tra đọc-ghi không phá hủy, và -cc để kiểm tra đọc-ghi có phá hủy (chậm hơn và kỹ hơn).
- -m <phần_trăm> (reserved-blocks-percentage): Chỉ dành cho
ext4 và các họ ext. Tham số này thiết lập phần trăm không gian đĩa được dự trữ cho người dùng root. Mặc định là 5%. Việc này ngăn chặn tình trạng người dùng thông thường lấp đầy 100% ổ đĩa, giúp root vẫn có thể đăng nhập và dọn dẹp hệ thống. Đối với các phân vùng lưu trữ dữ liệu lớn không phải là phân vùng hệ thống, bạn có thể giảm giá trị này xuống 1 hoặc 0 để tận dụng tối đa dung lượng: sudo mkfs.ext4 -m 1 /dev/sdb1.
- -v (verbose): Hiển thị thông tin chi tiết về quá trình định dạng đang diễn ra. Hữu ích cho việc gỡ lỗi hoặc khi bạn muốn biết chính xác lệnh đang làm gì.
Cách sử dụng mkfs cho từng loại filesystem cụ thể
Mỗi lệnh mkfs.* có những tùy chọn riêng để tối ưu cho filesystem đó. Dưới đây là cách tùy chỉnh cho các loại phổ biến.
1. Với mkfs.ext4:
Lệnh mkfs.ext4 có rất nhiều tùy chọn, nhưng một trong những tùy chọn tối ưu hóa hữu ích nhất là -T.
- -T <kiểu_sử_dụng>: Cho
mkfs.ext4 biết mục đích sử dụng của phân vùng để nó có thể tối ưu hóa các thông số (như kích thước inode). Các kiểu sử dụng bao gồm: news (nhiều tệp nhỏ), largefile (ít tệp nhưng rất lớn), largefile4 (ít tệp, cực lớn). Ví dụ, để tối ưu cho việc lưu trữ các tệp backup lớn: sudo mkfs.ext4 -T largefile /dev/sdc1.
2. Với mkfs.xfs:
XFS được biết đến với khả năng tùy chỉnh hiệu suất mạnh mẽ.
- -f (force): Ghi đè lên một filesystem
XFS đã tồn tại. Cần cẩn thận khi sử dụng tùy chọn này.
- -l <log_options>: Cho phép tùy chỉnh kích thước và vị trí của journal (log section), giúp tối ưu hiệu suất ghi. Đây là một tùy chọn nâng cao.
- -d <data_options>: Tùy chỉnh các thông số liên quan đến vùng dữ liệu (data section).
Ví dụ, tạo một filesystem XFS với kích thước khối (block size) là 4096 bytes:
sudo mkfs.xfs -b size=4096 /dev/sdd1
3. Với mkfs.vfat:
VFAT có ít tùy chọn hơn, chủ yếu liên quan đến khả năng tương thích.
- -F <FAT_size>: Chỉ định kích thước bảng FAT (12, 16, hoặc 32). Thông thường bạn sẽ muốn dùng 32 (FAT32). Đây là giá trị mặc định trong hầu hết các trường hợp.
sudo mkfs.vfat -F 32 /dev/sde1.
- -n <volume_name>: Tương tự như
-L của ext4, dùng để đặt tên cho volume, giúp dễ nhận diện trên Windows và macOS.
Bằng cách kết hợp các tùy chọn này, bạn có thể tạo ra một hệ thống tập tin không chỉ hoạt động mà còn được tối ưu hóa cho đúng nhuieu cầu của mình.

Hướng dẫn định dạng phân vùng ổ đĩa một cách hiệu quả và an toàn
Lý thuyết là vậy, nhưng làm thế nào để áp dụng vào thực tế một cách an toàn nhất? Hãy cùng thực hiện một quy trình chuẩn để định dạng một phân vùng mới, giảm thiểu tối đa rủi ro. Chúng ta sẽ lấy ví dụ định dạng một phân vùng /dev/sdb1 thành ext4 với nhãn “DATA_BACKUP”.
Bước 1: Chuẩn bị môi trường thực hiện
Đầu tiên, hãy đảm bảo bạn đang ở trong một môi trường làm việc ổn định. Tránh thực hiện các thao tác quan trọng này qua một kết nối mạng không ổn định (SSH chập chờn). Nếu có thể, hãy làm việc trực tiếp trên máy hoặc qua một phiên terminal đáng tin cậy.
Điều quan trọng nhất: Sao lưu toàn bộ dữ liệu quan trọng. Tôi không thể nhấn mạnh điều này đủ. Hãy kiểm tra lại phân vùng /dev/sdb1 một lần nữa. Nó có chứa gì không? Nếu có, hãy sao chép tất cả sang nơi khác và kiểm tra lại bản sao lưu đó.
Bước 2: Thực hiện từng bước theo trình tự an toàn
1. Xác định chính xác thiết bị: Mở terminal và gõ lệnh lsblk.
lsblk
Kết quả sẽ liệt kê các ổ đĩa và phân vùng. Hãy tìm dòng tương ứng với sdb1 và kiểm tra kích thước của nó để chắc chắn đó đúng là phân vùng bạn muốn định dạng. Ghi nhớ tên chính xác: /dev/sdb1.

2. Unmount (ngắt kết nối) phân vùng: Trước khi định dạng, phân vùng không được phép đang được hệ thống sử dụng (mounted). Kiểm tra cột MOUNTPOINT trong kết quả lsblk. Nếu có một đường dẫn ở đó (ví dụ: /mnt/old_data), bạn cần unmount nó:
sudo umount /dev/sdb1
Nếu lệnh báo lỗi “target is busy”, có nghĩa là một chương trình nào đó đang truy cập vào phân vùng. Bạn cần đóng chương trình đó lại hoặc dùng lệnh lsof /dev/sdb1 để tìm ra tiến trình đang sử dụng và kết thúc nó.
3. Thực hiện lệnh mkfs: Bây giờ là lúc chạy lệnh định dạng. Chúng ta sẽ sử dụng mkfs.ext4 với tùy chọn -L để đặt nhãn và -m 1 để giảm không gian dự trữ cho root (vì đây là phân vùng dữ liệu).
sudo mkfs.ext4 -L DATA_BACKUP -m 1 /dev/sdb1
Hãy đọc lại lệnh này một lần nữa trước khi nhấn Enter. Bạn đã gõ đúng /dev/sdb1 chưa? Tuyệt đối không được gõ nhầm thành /dev/sda1 (thường là phân vùng hệ điều hành)!
Bước 3: Kiểm tra và xác nhận sau khi định dạng
Khi lệnh chạy xong, nó sẽ không báo lỗi. Để chắc chắn mọi thứ đã thành công, hãy kiểm tra lại.
sudo lsblk -f
Trong kết quả, bạn sẽ thấy dòng của sdb1 bây giờ có FSTYPE="ext4" và LABEL="DATA_BACKUP". Điều này xác nhận rằng phân vùng đã được định dạng thành công với các thông số bạn mong muốn.

Cảnh báo về mất dữ liệu và cách phòng tránh:
Luôn nhớ rằng mkfs là một lệnh có tính hủy diệt. Nó không hỏi lại “Bạn có chắc không?”. Khi bạn nhấn Enter, dữ liệu cũ sẽ biến mất vĩnh viễn.
Cách phòng tránh tốt nhất là tạo thói quen cẩn thận:
- Chậm lại và suy nghĩ: Trước khi thực thi bất kỳ lệnh nào liên quan đến phân vùng, hãy dừng lại một giây và tự hỏi: “Mình có chắc chắn đây là lệnh đúng và phân vùng đúng không?”.
- Sao chép và dán: Thay vì gõ tay tên thiết bị
/dev/sdb1, hãy sao chép nó từ kết quả của lệnh lsblk để tránh gõ nhầm.
- Thực hành trên máy ảo: Nếu bạn chưa quen, hãy tạo một máy ảo (Virtual Machine) với VirtualBox là gì hoặc VMware. Bạn có thể tạo các ổ đĩa ảo và thực hành lệnh
mkfs trên đó bao nhiêu lần tùy thích mà không sợ ảnh hưởng đến hệ thống thật.
Các lưu ý khi sử dụng lệnh mkfs trong quản lý phân vùng
Lệnh mkfs rất mạnh mẽ, và đi kèm với sức mạnh là trách nhiệm. Để tránh những sai lầm đáng tiếc, hãy luôn ghi nhớ những quy tắc vàng sau đây khi làm việc với mkfs. Những lưu ý này sẽ giúp bạn bảo vệ dữ liệu và duy trì sự ổn định của hệ thống.
1. Không chạy mkfs trên phân vùng đang sử dụng hoặc mounted
Đây là quy tắc an toàn cơ bản nhất. Hệ điều hành Linux sẽ ngăn bạn định dạng một phân vùng đang được gắn kết (mounted) vào cây thư mục. Nếu bạn cố tình làm vậy, bạn sẽ nhận được thông báo lỗi kiểu như /dev/sdb1 is mounted; will not make a filesystem here!. Đây là một cơ chế bảo vệ quan trọng. Việc định dạng một phân vùng đang được sử dụng có thể gây ra sự không nhất quán nghiêm trọng cho hệ thống và dẫn đến treo máy hoặc hỏng dữ liệu. Luôn sử dụng lệnh umount trước khi chạy mkfs. Nếu không thể unmount, hãy tìm hiểu lý do tại sao nó “bận” thay vì cố gắng ép buộc.

2. Kiểm tra kỹ thiết bị trước khi định dạng
Một lỗi chính tả nhỏ có thể gây ra thảm họa. Hãy tưởng tượng bạn muốn định dạng ổ USB tại /dev/sdb1 nhưng lại gõ nhầm thành /dev/sda1. Trong hầu hết các trường hợp, /dev/sda1 là phân vùng khởi động (boot) hoặc phân vùng gốc (root) của hệ điều hành. Chỉ một ký tự sai có thể xóa sổ toàn bộ hệ thống của bạn. Luôn sử dụng lsblk, fdisk -l, hoặc blkid để xác minh tên thiết bị và phân vùng nhiều lần trước khi nhấn Enter. So sánh kích thước, nhãn (nếu có) để chắc chắn 100% bạn đang nhắm đúng mục tiêu.
3. Sao lưu dữ liệu và cẩn trọng với quyền root
Điều này đáng để nhắc lại lần thứ ba: luôn sao lưu dữ liệu trước khi thực hiện bất kỳ thay đổi nào ở cấp độ phân vùng. Không có ngoại lệ. Dữ liệu là tài sản quý giá nhất, và việc phục hồi dữ liệu sau khi định dạng nhầm là cực kỳ khó khăn, tốn kém và không phải lúc nào cũng thành công.
Lệnh mkfs yêu cầu quyền root (thông qua sudo) để hoạt động. Quyền root cho phép bạn làm mọi thứ trên hệ thống, bao gồm cả việc phá hủy nó. Hãy sử dụng quyền này một cách có trách nhiệm. Khi bạn gõ sudo, hãy coi đó là một lời nhắc nhở để kiểm tra lại lệnh của mình một lần cuối. Đừng bao giờ chạy các lệnh sao chép từ internet một cách mù quáng, đặc biệt là các lệnh có sudo và liên quan đến thiết bị lưu trữ.
4. Tương thích filesystem với nhu cầu sử dụng
Việc chọn sai hệ thống tập tin có thể không gây mất dữ liệu ngay lập tức, nhưng nó sẽ dẫn đến các vấn đề về hiệu suất hoặc tương thích sau này. Hãy suy nghĩ về cách phân vùng sẽ được sử dụng.
- Bạn có cần chia sẻ dữ liệu với máy Windows không? Nếu có,
VFAT hoặc exFAT là lựa chọn tốt hơn ext4.
- Phân vùng này có dùng để lưu các file video 4K khổng lồ không?
XFS có thể sẽ cho hiệu suất tốt hơn.
- Đây có phải là phân vùng hệ thống chính không? Hãy gắn bó với
ext4 vì sự ổn định và đáng tin cậy đã được kiểm chứng của nó.
Việc dành ra vài phút để lên kế hoạch sẽ giúp bạn tiết kiệm hàng giờ khắc phục sự cố trong tương lai.
Các vấn đề thường gặp và cách khắc phục
Lỗi “device is busy” khi định dạng phân vùng
Đây là lỗi bạn sẽ gặp thường xuyên nhất. Bạn chạy lệnh mkfs.ext4 /dev/sdb1 và nhận lại thông báo lỗi: /dev/sdb1 is apparently in use by the system; will not make a filesystem here!.
Nguyên nhân:
Lỗi này có nghĩa là một tiến trình (process) hoặc chính hệ điều hành đang truy cập hoặc sử dụng phân vùng này. Lý do phổ biến nhất là phân vùng đó đang được mount. Đôi khi, dù đã unmount, một tiến trình nào đó vẫn “bám” vào phân vùng.
Cách giải quyết:
1. Unmount phân vùng: Đây là bước kiểm tra đầu tiên. Hãy chắc chắn rằng bạn đã chạy lệnh sudo umount /dev/sdb1. Nếu bạn nhận được thông báo “not mounted” thì nguyên nhân không phải ở đây.
2. Tìm tiến trình đang sử dụng phân vùng: Nếu unmount không thành công và báo “target is busy”, bạn cần tìm ra “thủ phạm”. Sử dụng lệnh lsof (list open files) hoặc fuser.
Gõ lệnh: sudo lsof /dev/sdb1
Lệnh này sẽ liệt kê tất cả các tiến trình đang mở tệp trên phân vùng đó. Kết quả sẽ cho bạn biết PID (Process ID) của tiến trình. Bạn có thể sử dụng lệnh kill để kết thúc tiến trình đó: sudo kill <PID>.
Một cách khác là dùng fuser:
sudo fuser -m /dev/sdb1
Lệnh này cũng sẽ hiển thị PID của các tiến trình. Bạn có thể kết thúc tất cả chúng một cách nhanh chóng bằng lệnh:
sudo fuser -k /dev/sdb1
Sau khi kết thúc các tiến trình liên quan, hãy thử umount và mkfs lại một lần nữa.
3. Vô hiệu hóa swap: Nếu phân vùng bạn đang cố định dạng là một phân vùng swap, bạn cần tắt nó đi trước bằng lệnh sudo swapoff /dev/sdb1.

Phân vùng không được nhận diện sau khi sử dụng mkfs
Thỉnh thoảng, sau khi bạn tạo một hệ thống tập tin mới, hệ điều hành có vẻ như không “nhìn thấy” sự thay đổi ngay lập tức. Ví dụ, bạn chạy lsblk -f nhưng cột FSTYPE vẫn trống hoặc sai.
Nguyên nhân:
Kernel của Linux có thể chưa cập nhật thông tin mới nhất từ bảng phân vùng hoặc thiết bị. Điều này thường xảy ra khi bạn thực hiện nhiều thay đổi liên tục trên cùng một ổ đĩa.
Cách giải quyết:
1. Làm mới bảng phân vùng: Lệnh partprobe được thiết kế để yêu cầu kernel đọc lại bảng phân vùng của một thiết bị. Đây thường là cách giải quyết nhanh nhất.
Chạy lệnh: sudo partprobe /dev/sdb (lưu ý, bạn chỉ định cả ổ đĩa, không phải phân vùng).
2. Kích hoạt lại udev: udev là dịch vụ quản lý thiết bị trong Linux. Bạn có thể yêu cầu nó quét và kích hoạt lại các quy tắc.
sudo udevadm trigger
3. Khởi động lại hệ thống: Nếu tất cả các cách trên đều không hiệu quả, một giải pháp cuối cùng và chắc chắn nhất là khởi động lại máy tính. Khi khởi động, hệ điều hành sẽ quét lại toàn bộ phần cứng và nhận diện chính xác filesystem mới của bạn. Dù đây không phải là giải pháp thanh lịch, nó gần như luôn luôn hiệu quả.
Bằng cách hiểu rõ các lỗi phổ biến này, bạn sẽ không còn bối rối khi gặp phải chúng và có thể nhanh chóng khắc phục để tiếp tục công việc của mình.
Các best practices khi sử dụng lệnh mkfs
Để trở thành một người quản trị hệ thống chuyên nghiệp, việc tuân thủ các quy tắc và phương pháp tốt nhất (best practices) là điều cần thiết. Điều này không chỉ giúp bạn làm việc hiệu quả hơn mà còn đảm bảo an toàn tối đa cho dữ liệu và hệ thống. Dưới đây là những thói quen tốt bạn nên rèn luyện khi sử dụng lệnh mkfs.
1. Luôn sao lưu dữ liệu trước khi format
Đây là quy tắc số một, không bao giờ được phép quên. Dù bạn tự tin đến đâu, sai sót vẫn có thể xảy ra. Một bản sao lưu đầy đủ và đã được kiểm tra là tấm vé bảo hiểm duy nhất của bạn. Hãy tạo thói quen tự động: trước khi gõ mkfs, hãy tự hỏi “Dữ liệu đã được backup chưa?”. Biến nó thành một phản xạ có điều kiện.
2. Xác định đúng thiết bị và phân vùng cần tạo filesystem
Đừng bao giờ vội vàng. Hãy dành thời gian để xác minh mục tiêu của bạn.
- Sử dụng lsblk -f để có cái nhìn tổng quan về tất cả các thiết bị, kích thước, filesystem hiện tại và điểm mount.
- Đọc và kiểm tra lại tên thiết bị (ví dụ:
/dev/sdb1) ít nhất hai lần trong lệnh của bạn trước khi nhấn Enter.
- Sử dụng nhãn (label) cho các phân vùng quan trọng. Điều này giúp bạn nhận diện chúng dễ dàng hơn thay vì chỉ dựa vào tên thiết bị có thể thay đổi.
Một mẹo nhỏ là hãy gõ lệnh ra trước, nhưng thay vì nhấn Enter, hãy thêm một dấu # ở đầu để biến nó thành một comment. Sau đó, bạn có thể nhìn lại dòng lệnh đó, kiểm tra mọi thứ một lần cuối, rồi xóa dấu # và thực thi.

3. Sử dụng quyền sudo hoặc root một cách thận trọng
Quyền root là con dao hai lưỡi. Nó cho bạn khả năng cấu hình hệ thống, nhưng cũng có thể phá hủy nó.
- Chỉ sử dụng
sudo khi thực sự cần thiết.
- Đừng chạy các phiên làm việc kéo dài với quyền root (ví dụ:
sudo su -). Hãy sử dụng sudo cho từng lệnh cụ thể. Điều này buộc bạn phải dừng lại và suy nghĩ trước mỗi hành động có khả năng gây nguy hiểm.
- Hiểu rõ từng phần của lệnh bạn sắp chạy. Nếu bạn không chắc một tùy chọn nào đó có ý nghĩa gì, hãy đọc tài liệu hướng dẫn (
man mkfs.ext4) trước khi sử dụng.
4. Thường xuyên kiểm tra hệ thống tập tin để tránh lỗi về sau
Sau khi tạo một filesystem, công việc của bạn chưa kết thúc. Việc bảo trì và kiểm tra định kỳ là rất quan trọng để đảm bảo tính toàn vẹn của dữ liệu.
- Sử dụng lệnh
fsck (file system check) để kiểm tra và sửa lỗi trên các hệ thống tập tin họ ext. Bạn nên chạy lệnh này trên một phân vùng đã được unmount.
- Đối với
XFS, sử dụng bộ công cụ xfs_repair.
- Theo dõi nhật ký hệ thống (system logs) để phát hiện sớm các cảnh báo về lỗi ổ đĩa hoặc filesystem.
Bằng cách áp dụng những phương pháp này, bạn không chỉ sử dụng mkfs một cách an toàn mà còn xây dựng một nền tảng vững chắc cho việc quản trị hệ thống Linux một cách chuyên nghiệp và có trách nhiệm.
Kết luận
Qua bài viết chi tiết này, chúng ta đã cùng nhau khám phá lệnh mkfs từ những khái niệm cơ bản nhất đến các kỹ thuật sử dụng nâng cao. Bạn đã hiểu được vai trò không thể thiếu của mkfs trong việc chuẩn bị và quản lý không gian lưu trữ trên Linux. Nó không chỉ đơn thuần là một lệnh để “format” ổ đĩa, mà là một công cụ mạnh mẽ cho phép bạn xây dựng nền tảng cho dữ liệu của mình, lựa chọn cấu trúc phù hợp nhất với từng nhu cầu cụ thể, từ ext4 đáng tin cậy cho hệ thống, XFS hiệu suất cao cho dữ liệu lớn, đến VFAT linh hoạt để chia sẻ đa nền tảng.
Việc nắm vững cách sử dụng mkfs, tuân thủ các bước chuẩn bị an toàn, và hiểu rõ các tùy chọn của nó sẽ giúp bạn tự tin hơn rất nhiều khi quản trị hệ thống. Hãy luôn nhớ rằng, cẩn thận và chuẩn bị kỹ lưỡng, đặc biệt là việc sao lưu dữ liệu, là chìa khóa để tránh những sai lầm đáng tiếc.
Để nâng cao kỹ năng, không có gì tốt hơn việc thực hành. Tuy nhiên, tôi khuyến khích bạn bắt đầu trong một môi trường an toàn. Hãy cài đặt một máy ảo bằng VirtualBox là gì hoặc VMware, tạo ra các ổ đĩa ảo và thử nghiệm với mkfs. Hãy thử tạo các loại filesystem khác nhau, sử dụng các tùy chọn đã học, và thậm chí cố tình tạo ra lỗi để học cách khắc phục chúng. Đây là cách tốt nhất để biến kiến thức lý thuyết thành kỹ năng thực tế mà không gây rủi ro cho dữ liệu thật của bạn.
Cảm ơn bạn đã theo dõi bài viết. Chúc bạn thành công trên hành trình chinh phục Linux