Lệnh mkfs trong Linux — Cách định dạng phân vùng ổ đĩa

Bạn đã bao giờ rơi vào tình huống cần tái cấu trúc lại phân vùng ổ đĩa trên một server VPS để tối ưu hóa dung lượng lưu trữ chưa nhỉ? Với tư cách là một Senior System Admin, tôi hiểu rằng việc quản lý file system chính xác là yếu tố sống còn để đảm bảo hệ thống vận hành ổn định. Vậy mkfs là gì và làm sao để chúng ta thực hiện việc này một cách an toàn nhất? Thực tế, mkfs là một công cụ mạnh mẽ trong Linux dùng để định dạng các thiết bị lưu trữ theo một định dạng file system cụ thể. Trong bài viết này, mình sẽ cùng bạn tìm hiểu kỹ về cách dùng mkfs cũng như cách tạo file system cho ổ đĩa một cách nhanh chóng. Tất nhiên, việc nắm vững mkfs Linux sẽ giúp bạn hoàn toàn làm chủ các thao tác quản trị phân vùng một cách vô cùng chuyên nghiệp và tự tin, đúng không nào?

Cần chuẩn bị gì trước khi dùng lệnh mkfs?

  • Quyền truy cập: Yêu cầu quyền root hoặc sử dụng sudo để thực hiện các thao tác định dạng phân vùng hệ thống.
  • Hệ điều hành hỗ trợ: Hoạt động trên hầu hết các bản phân phối Linux (Ubuntu, Debian, CentOS, RHEL, Fedora...) và các hệ điều hành dựa trên Unix.
  • Gói phần mềm cần thiết: Lệnh mkfs là một phần của gói dosfstools hoặc e2fsprogs tùy vào định dạng muốn tạo.
    • Trên Ubuntu/Debian: sudo apt install e2fsprogs dosfstools
    • Trên CentOS/RHEL: sudo yum install e2fsprogs dosfstools
  • Lưu ý quan trọng: Cần xác định chính xác tên thiết bị (ví dụ: /dev/sdb1) vì quá trình thực hiện sẽ xóa sạch toàn bộ dữ liệu hiện có trên phân vùng đó.

Cú pháp lệnh mkfs là gì?

Lệnh mkfs hỗ trợ nhiều dạng cú pháp khác nhau tùy thuộc vào loại hệ thống tệp được chỉ định trên các hệ điều hành Linux.

mkfs [OPTION]... DEVICE
mkfs.[TYPE] [OPTION]... DEVICE

Các tùy chọn của lệnh mkfs là gì?

Lệnh mkfs cung cấp nhiều tùy chọn để kiểm soát quá trình tạo hệ thống tệp, bao gồm các tùy chọn kiểm soát loại hệ thống tệp, kích thước và các thông số kỹ thuật khác.

Tùy chọn ngắn Tùy chọn dài Mô tả
-t --type mkfs -t ext4 /dev/sda1 chỉ định loại hệ thống tệp cần tạo. Các giá trị phổ biến là ext4, ext3, ext2, xfs, btrfs, vfat.
-F --force mkfs -F /dev/sda1 cho phép mkfs tiếp tục thực hiện ngay cả khi phát hiện các cảnh báo hoặc thiết bị đã chứa dữ liệu.
-V --verbose mkfs -V /dev/sda1 hiển thị thông tin chi tiết về quá trình tạo hệ thống tệp, bao gồm các bước thực hiện và thông số được sử dụng.
-L --label mkfs -L "data" /dev/sda1 gán nhãn cho phân vùng mới được tạo, cho phép dễ dàng nhận diện phân vùng trong hệ thống.
-m mkfs -m 5 /dev/sda1 thiết lập phần trăm không gian dành riêng cho người dùng root trên hệ thống tệp ext. Mặc định là 5%.
-c mkfs -c /dev/sda1 kiểm tra các khối xấu trên thiết bị trước khi tạo hệ thống tệp, giúp phát hiện vấn đề phần cứng.
-n mkfs -n /dev/sda1 cho phép xem trước quá trình tạo hệ thống tệp mà không thực hiện thay đổi thực tế trên thiết bị.

xem thêm: Disk and File System Utilities

Lệnh mkfs được sử dụng như thế nào trong thực tế?

Dưới đây là các tình huống sử dụng lệnh mkfs để định dạng phân vùng nhằm chuẩn bị lưu trữ dữ liệu trong môi trường quản trị hệ thống.

mkfs -V là gì? [Kiểm tra phiên bản công cụ]

mkfs -V
mkfs.ext4 (e2fsprogs) 1.46.5

Lệnh hiển thị phiên bản của bộ công cụ e2fsprogs đang được cài đặt. Trong thực tế, bước này giúp quản trị viên kiểm tra tính tương thích của công cụ trước khi tiến hành định dạng ổ đĩa.

mkfs.ext4 /dev/sdb1 là gì? [Định dạng phân vùng EXT4]

sudo mkfs.ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 14316544 / 15728640 blocks
Adding inode#s: ..., creating filesystem
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 360448
Writing superblocks and filesystem accounting information: done

Lệnh thực hiện định dạng phân vùng /dev/sdb1 sang định dạng EXT4. Trên môi trường production, đây là thao tác phổ biến nhất khi chuẩn bị một ổ cứng mới hoặc khởi tạo phân vùng lưu trữ dữ liệu cho Database.

mkfs.xfs -f /dev/sdc1 là gì? [Định dạng cưỡng ép XFS]

sudo mkfs.xfs -f /dev/sdc1
meta-data formatting /dev/sdc1 initialized.

Tham số -f cho phép ghi đè lên phân vùng đã có sẵn định dạng khác để định dạng thành XFS. Trong thực tế, tùy chọn này được sử dụng khi cần tái cấu trúc lại ổ đĩa mà không cần xóa phân vùng bằng lệnh fdisk trước đó.

mkfs.ext4 -L "DATA_DISK" /dev/sdb1 là gì? [Đặt nhãn cho phân vùng]

sudo mkfs.ext4 -L "DATA_DISK" /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 14316544 / 15728640 blocks
Writing superblocks and filesystem accounting information: done

Lệnh định dạng phân vùng kèm theo việc đặt tên nhãn (Label) là "DATA_DISK". Việc này giúp tự động hóa quá trình mount ổ đĩa trong file /etc/fstab thông qua nhãn thay vì sử dụng tên thiết bị có thể thay đổi.

mkfs.ext4 -m 1 /dev/sdb1 là gì? [Điều chỉnh dung lượng dự phòng]

sudo mkfs.ext4 -m 1 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 14316544 / 15728640 blocks
Writing superblocks and filesystem accounting information: done

Tham số -m 1 giảm tỷ lệ phần trăm dung lượng dự phòng cho root dành cho các superblocks xuống còn 1%. Trong các hệ thống lưu trữ dung lượng lớn, việc này giúp tối ưu hóa không gian khả dụng cho người dùng cuối.

Làm thế nào để xử lý các lỗi thường gặp khi sử dụng lệnh mkfs?

Trong quá trình định dạng phân vùng, người dùng thường gặp phải các trở ngại liên quan đến quyền truy cập, thiết bị đang bận hoặc sai lệch cấu trúc thiết bị.

Lỗi không có quyền thực hiện lệnh (Permission denied)

$ mkfs.ext4 /dev/sdb1
mkfs.ext4: /dev/sdb1: Permission denied

Lỗi xảy ra khi người dùng không có quyền root để can thiệp vào thiết bị lưu trữ, yêu cầu phải sử dụng sudo để thực thi.

Lỗi thiết bị đang được gắn kết (Device or resource busy)

$ mkfs.ext4 /dev/sdb1
mkfs.ext4: error creating journal on /dev/sdb1: Device or resource busy

Lỗi này xuất hiện khi phân vùng mục tiêu đang được mount vào hệ thống, ngăn cản việc ghi đè cấu trúc file system mới.

Lỗi không tìm thấy thiết bị (No such file or directory)

$ mkfs.xfs /dev/sdc1
mkfs.xfs: can't open /dev/sdc1: No such file or directory

Lỗi này xảy ra khi tên thiết bị bị nhập sai hoặc thiết bị vật lý đã bị ngắt kết nối khỏi hệ thống.

Lỗi thiết bị chưa được phân vùng (Invalid argument)

$ mkfs.ext4 /dev/sdb
mkfs.ext4: error: Invalid argument

Lỗi phát sinh khi cố gắng định dạng trực tiếp lên toàn bộ ổ đĩa vật lý thay vì một phân vùng cụ thể đã được khởi tạo qua bảng phân vùng.

Quy trình thực tế dùng mkfs trong quản trị lưu trữ Linux?

Trong kịch bản triển khai một máy chủ lưu trữ dữ liệu mới, lệnh mkfs được sử dụng như một phần của quy trình chuẩn bị ổ đĩa sau khi nhận diện phần cứng.

Bước 1: Kiểm tra danh sách các thiết bị lưu trữ hiện có

lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 465.8G  0 disk 
└─sda1        8:1    0 465.8G  0 part 
sdb           8:16   0 100G    0 disk 
└─sdb1        8:17   0 100G    0 part 

Lệnh này cho phép bạn xác định chính xác tên thiết bị (ví dụ: sdb1) cần được định dạng để tránh thao tác nhầm lên dữ liệu hiện có.

Bước 2: Khởi tạo hệ thống tệp trên phân vùng mới

sudo mkfs.ext4 /dev/sdb1
mke2fs 1.46.5 (Feb 24 2024)
Creating filesystem with 26214400 4k blocks and 6553600 inodes
Superblock size: 32768, AG count: 4, Allocation groups: 4

Lệnh mkfs với tham số ext4 thực hiện việc tạo cấu trúc hệ thống tệp trên phân vùng sdb1, chuẩn bị không gian cho việc lưu trữ dữ liệu.

Bước 3: Tạo điểm gắn kết và kiểm tra trạng thái định dạng

sudo mkdir /mnt/data
sudo mount /dev/sdb1 /mnt/data
df -Th | grep /mnt/data
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sdb1      ext4       97G   24K   92G   1% /mnt/data

Sau khi định dạng, việc gắn thiết bị vào một thư mục cho phép bạn xác nhận hệ thống tệp đã sẵn sàng hoạt động với dung lượng và loại định dạng chính xác.

Việc sử dụng lệnh mkfs trên môi trường VPS yêu cầu sự thận trọng cao độ đối với các phân vùng lưu trữ. Một sai sót phổ biến là thực hiện lệnh mkfs trên phân vùng đang chứa hệ điều hành hoặc dữ liệu quan trọng, dẫn đến mất mát dữ liệu không thể khôi phục. Trong các trường hợp cấu hình VPS mới, người dùng thường nhầm lẫn giữa tên thiết bị như /dev/sda và /dev/sda1, gây ra lỗi định dạng sai phân vùng mục tiêu. Để đảm bảo an toàn, trước khi chạy lệnh mkfs.ext4 /dev/vdb, người quản trị cần kiểm tra chính xác danh sách thiết bị bằng lệnh lsblk. Ngoài ra, việc định dạng lại phân vùng trên VPS mà không unmount (ngắt kết nối) thiết bị có thể gây ra lỗi hệ thống tệp hoặc hư hỏng cấu trúc dữ liệu. Quá trình định dạng luôn đi kèm rủi ro xóa sạch dữ liệu hiện có trên phân vùng được chỉ định.

Những câu hỏi thường gặp về lệnh mkfs?

Dưới đây là các tình huống và thắc mắc phổ biến nhất khi người dùng thực hiện định dạng phân vùng bằng lệnh mkfs.

Làm thế nào để kiểm tra danh sách các ổ đĩa trước khi định dạng?

Trước khi sử dụng mkfs, bạn cần xác định chính xác tên thiết bị để tránh mất dữ liệu trên các phân vùng khác.

lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
└─sda1   8:1    0 465.8G  0 part 

Lệnh mkfs được sử dụng để định dạng phân vùng sang định dạng ext4 như thế nào?

Bạn sử dụng tùy chọn cụ thể của lệnh mkfs để thiết lập hệ thống tệp ext4 cho một phân vùng đã xác định.

sudo mkfs.ext4 /dev/sda1
mke2fs.ext4: superblocks and liệu đã được tạo cho /dev/sda1

Cách định dạng một phân vùng sang định dạng FAT32?

Trong các trường hợp cần tương thích với các hệ điều hành khác như Windows, bạn có thể sử dụng mkfs.vfat.

sudo mkfs.vfat /dev/sda1
mkfs.fat: creating FAT32 file system /dev/sda1

Làm thế nào để định dạng phân vùng sang định dạng NTFS?

Để sử dụng hệ thống tệp NTFS trên Linux, bạn cần sử dụng công cụ mkfs.ntfs.

sudo mkfs.ntfs /dev/sda1
Creating NTFS partition

Lệnh mkfs có thể xóa toàn bộ dữ liệu trên phân vùng không?

Việc chạy lệnh mkfs sẽ ghi đè cấu trúc hệ thống tệp mới lên phân vùng, dẫn đến việc mất khả năng truy cập dữ liệu cũ.

# Cảnh báo: Lệnh này sẽ xóa dữ liệu trên /dev/sda1
sudo mkfs.ext4 /dev/sda1

Làm thế nào để chỉ định nhãn (label) cho phân vùng khi định dạng?

Bạn có thể sử dụng tham số -L để đặt tên cho phân vùng, giúp việc nhận diện thiết bị dễ dàng hơn.

sudo mkfs.ext4 -L DATA_DRIVE /dev/sda1
mke2fs.ext4: superblocks and liệu đã được tạo cho /dev/sda1

Lệnh mkfs là một công cụ vô cùng quan trọng giúp bạn định dạng và thiết lập hệ thống tệp tin trên các phân vùng lưu trữ của Linux. Việc nắm vững cách sử dụng các tham số như -t để chỉ định loại định dạng hay -c để kiểm tra các cung từ lỗi (bad blocks) sẽ giúp bạn quản lý ổ đĩa một cách an toàn và hiệu quả hơn, đúng không nhỉ? Tất nhiên, bạn hãy luôn cẩn trọng kiểm tra kỹ tên thiết bị trước khi thực hiện để tránh mất dữ liệu đáng tiếc nhé. Hy vọng những chia sẻ này có thể hỗ trợ tốt cho quá trình làm việc của bạn. Chúc bạn thành công!