lsblk là lệnh dùng để liệt kê thông tin các thiết bị lưu trữ dạng block như ổ cứng, SSD, USB, phân vùng, LVM,… trên hệ thống theo dạng bảng hoặc cây. Trong quá trình quản trị hệ thống cho hàng ngàn khách hàng, lsblk thường là công cụ mà mình ưu tiên sử dụng mỗi khi tiếp cận một server mới để nắm bắt nhanh cấu trúc lưu trữ. Trong bài viết dưới đây, mình sẽ hướng dẫn bạn cách sử dụng lsblk cùng các tùy chọn phổ biến nhất để kiểm tra và quản lý hạ tầng lưu trữ một cách khoa học và chính xác.
Những điểm chính
- Quan điểm của mình: Để quản trị hệ thống Linux hiệu quả và tránh những thảm họa mất dữ liệu do thao tác nhầm phân vùng, việc đọc hiểu và thành thạo lệnh lsblk là kỹ năng bắt buộc phải có đối với mọi System Admin.
- Khái niệm: Hiểu rõ lsblk là gì và khả năng liệt kê chi tiết các thiết bị lưu trữ từ ổ cứng vật lý đến các phân vùng logic trên Linux.
- Vai trò: Nắm bắt các lợi ích cốt lõi của lsblk trong việc định danh thiết bị, trực quan hóa cấu trúc cây và đảm bảo an toàn trước khi thao tác dữ liệu.
- Cách sử dụng: Thành thạo các cú pháp lệnh từ cơ bản đến nâng cao để kiểm tra hệ thống file, UUID, kích thước ổ đĩa và lọc thông tin chính xác.
- Xử lý lỗi: Biết cách khắc phục nhanh các sự cố phổ biến như lỗi “command not found” hoặc tình trạng không nhận diện được phân vùng mới tạo.
- Lưu ý khi sử dụng: Ghi nhớ các quy tắc về tính an toàn, trạng thái gắn kết và phân biệt dung lượng vật lý để tránh sai sót khi quản trị.
- Câu hỏi thường gặp: Giải đáp chi tiết các thắc mắc liên quan đến lệnh lsblk.
lsblk là gì?
lsblk (List Block Devices) là một tiện ích dòng lệnh cơ bản trong hệ điều hành Linux, được sử dụng để truy xuất và hiển thị thông tin chi tiết về tất cả các thiết bị lưu trữ dạng khối đang kết nối với hệ thống. Phạm vi quản lý của lệnh này bao gồm từ các ổ cứng vật lý như HDD hoặc SSD, thiết bị lưu trữ ngoại vi như USB, thẻ nhớ cho đến các ổ đĩa ảo và các phân vùng.
Thay vì liệt kê danh sách phẳng, lsblk trình bày dữ liệu dưới dạng cây phân cấp giúp người quản trị dễ dàng hình dung mối quan hệ cha – con giữa ổ đĩa vật lý gốc và các phân vùng logic bên trong. Ngoài ra, lệnh này cũng hiển thị các thông số quan trọng như:
- NAME: Tên thiết bị (ví dụ: sda, nvme0n1).
- MAJ:MIN: Số định danh chính và phụ của thiết bị.
- RM: Cho biết thiết bị có thể tháo rời hay không (1 là có, ví dụ USB).
- SIZE: Dung lượng của thiết bị hoặc phân vùng.
- TYPE: Loại thiết bị (disk, part – phân vùng, lvm,…).
- MOUNTPOINT: Điểm gắn kết của phân vùng trong hệ thống tệp.

Các tính năng chính của lệnh lsblk
Dưới đây là các vai trò quan trọng của lệnh lsblk:
- Định danh và phân loại thiết bị: lsblk giúp quản trị viên xác định chính xác danh tính của từng thiết bị lưu trữ, phân biệt rõ ràng giữa ổ cứng vật lý, ổ đĩa ảo và các phân vùng logic bên trong.
- Trực quan hóa cấu trúc lưu trữ: Lệnh hiển thị thông tin dưới dạng sơ đồ cây giúp người dùng dễ dàng hình dung mối quan hệ phụ thuộc giữa thiết bị gốc và các phân vùng con, đặc biệt hữu ích khi quản lý RAID hoặc LVM.
- Bước đệm kiểm tra an toàn: lsblk đóng vai trò là chốt chặn quan trọng giúp đối chiếu dung lượng và tên thiết bị trước khi thực hiện các lệnh quan trọng như format, delete partition,… từ đó ngăn chặn rủi ro mất dữ liệu do thao tác nhầm.
- Cung cấp thông tin kỹ thuật chi tiết: lsblk hỗ trợ truy xuất nhanh các siêu dữ liệu thiết yếu như loại hệ thống file , mã định danh duy nhất và trạng thái gắn kết để phục vụ việc cấu hình hệ thống.

Các tùy chọn phổ biến của lệnh lsblk
Dưới đây là bảng tổng hợp các tùy chọn phổ biến nhất giúp bạn làm chủ lệnh này:
| Tùy chọn | Chức năng |
|---|---|
-a, --all | Hiển thị tất cả các thiết bị, bao gồm cả các thiết bị trống. |
-f, --fs | Hiển thị File System: Cho biết định dạng (ext4, ntfs, vfat…), UUID và điểm gắn kết. |
-l, --list | Hiển thị thông tin dưới dạng danh sách phẳng thay vì cấu trúc cây mặc định. |
-m, --perms | Hiển thị thông tin về quyền sở hữu (owner), nhóm (group) và chế độ (mode) của thiết bị. |
-n, --noheadings | Không in dòng tiêu đề, rất hữu ích khi dùng trong script. |
-o, --output | Tùy chỉnh cột hiển thị: Bạn có thể chọn các cột cụ thể như NAME, SIZE, TYPE, MOUNTPOINT. |
-p, --paths | Hiển thị đường dẫn đầy đủ của thiết bị (ví dụ: /dev/sda1 thay vì chỉ sda1). |
-r, –-raw | Hiển thị dữ liệu ở định dạng thô (không căn chỉnh cột), thường dùng để xử lý bằng code/script. |
-t, --topology | Hiển thị thông tin về cấu trúc vật lý (kích thước sector, giới hạn I/O). |
-d, --nodeps | Chỉ hiển thị thiết bị gốc, không hiển thị các phân vùng con bên trong. |
Cách sử dụng lệnh lsblk chi tiết
Xem thông tin ổ đĩa và phân vùng cơ bản
Để hiển thị danh sách các thiết bị block theo cấu trúc cây mặc định cùng với các thông tin cơ bản nhất, bạn sử dụng lệnh sau:
lsblk
Kết quả trả về sẽ bao gồm các cột quan trọng như:
NAME: Tên thiết bị/phân vùng.SIZE: Kích thước.TYPE: Loại thiết bị, thường là disk hoặc part.MOUNTPOINT: Điểm gắn kết.
Lỗi thường gặp: Rất nhiều bạn mới làm quen với Linux khi cắm ổ cứng mới vào thấy dung lượng trên máy chủ không tăng lên. Lý do là ổ cứng mới chỉ xuất hiện dưới dạng block device trong lsblk, bạn phải thực hiện định dạng và gắn kết thì hệ điều hành mới có thể sử dụng được dung lượng đó.
Hiển thị chi tiết thông tin hệ thống file
Nếu bạn muốn hiển thị thêm các thông tin quan trọng khác như loại hệ thống file (FSTYPE) và mã định danh duy nhất (UUID), hãy dùng lệnh với tùy chọn -f:
lsblk -f
Tùy chọn -f (filesystem) thường được sử dụng để phục vụ công tác gỡ lỗi hoặc cấu hình hệ thống. Tùy chọn này sẽ hiển thị thêm các cột như:
FSTYPE: Ví dụ như ext4, xfs, swap.UUID: Mã định danh duy nhất của thiết bị.LABEL: Nhãn phân vùng.
Hiển thị kích thước theo đơn vị Byte
Để hiển thị kích thước chính xác của thiết bị theo đơn vị Byte thay vì các định dạng dễ đọc như KB, MB hay GB, bạn sử dụng lệnh:
lsblk -b
Tùy chọn -b (bytes) phù hợp khi bạn cần lấy con số kích thước chính xác để phục vụ việc tính toán hoặc viết các đoạn mã kịch bản.
Chỉ hiển thị một thiết bị cụ thể
Bạn có thể dùng lệnh lsblk để lọc bớt các thông tin không cần thiết và chỉ hiển thị thiết bị mà bạn đang quan tâm. Cụ thể, để xem thông tin của riêng ổ đĩa /dev/sda, bạn chạy lệnh dưới đây:
lsblk /dev/sda
Kinh nghiệm của mình: Khi hệ thống có hàng chục ổ đĩa (đặc biệt trong các cụm server lưu trữ lớn), lệnh này giúp bạn cô lập thông tin hiệu quả. Mình thường dùng lệnh này để tránh việc bị rối mắt bởi danh sách dài, giúp tập trung xử lý đúng ổ đĩa đang cần cấu hình.
5. Hiển thị dưới dạng danh sách phẳng
Để hiển thị thông tin theo dạng danh sách phẳng thay vì cấu trúc cây phân cấp, bạn sử dụng lệnh sau đây:
lsblk -l
Định dạng danh sách (-l) giúp việc xử lý kết quả đầu ra bằng các lệnh khác như hoặc grepawk trở nên dễ dàng hơn vì thông tin của mỗi thiết bị hoặc phân vùng sẽ nằm trên một dòng riêng biệt.
Cách xử lý lỗi phổ biến khi chạy lệnh lsblk
Lệnh lsblk không có sẵn (command not found)
- Nguyên nhân: Lệnh lsblk thường nằm trong gói
util-linuxvà có thể chưa được cài đặt sẵn trên các hệ thống Linux tối giản. - Khắc phục: Bạn cần cài đặt gói
util-linuxbằng các lệnh sau tùy theo hệ điều hành:
Trên Debian/Ubuntu:
sudo apt update && sudo apt install util-linuxTrên CentOS/RHEL:
sudo yum install util-linux
Kinh nghiệm từ chuyên gia: Thông thường, các bản phân phối Linux phổ biến hiện nay đều tích hợp sẵn bộ công cụ này. Nếu bạn gặp lỗi command not found trên một hệ thống server mới, rất có khả năng đó là bản build tối giản để tiết kiệm tài nguyên. Mình khuyên bạn hãy luôn ưu tiên cài đặt gói util-linux ngay sau khi thiết lập server để thuận tiện cho việc kiểm tra trạng thái lưu trữ sau này.
Không thấy phân vùng mới tạo
- Nguyên nhân: Kernel chưa kịp nhận diện cấu trúc phân vùng mới sau khi bạn vừa tạo chúng bằng các công cụ như
fdiskhoặcparted. - Khắc phục: Bạn hãy chạy lệnh
partprobeđể thông báo cho kernel biết về sự thay đổi, sau đó chạy lạilsblk. Nếu vẫn không thấy, bạn có thể cần phải khởi động lại hệ thống.
Lưu ý khi chạy lệnh lsblk
Dưới đây là các lưu ý quan trọng khi sử dụng lệnh lsblk:
- Tính an toàn cao: lsblk chỉ đọc và hiển thị thông tin từ sysfs nên bạn có thể chạy lệnh bất cứ lúc nào mà không gây ảnh hưởng đến hiệu năng hay dữ liệu hệ thống.
- Phân biệt dung lượng: Cột SIZE hiển thị tổng dung lượng vật lý của ổ đĩa/phân vùng, không phải là dung lượng đang được sử dụng.
- Hiểu cấu trúc cây: Bạn cần chú ý kỹ mối quan hệ cha – con của hệ thống file để tránh chọn nhầm đối tượng khi thực hiện format hoặc mount.
- Trạng thái gắn kết: Nếu cột MOUNTPOINT bị bỏ trống, nghĩa là phân vùng đó chưa được gắn vào hệ thống và bạn chưa thể truy cập dữ liệu bên trong.
- Thông tin định danh: Để xem được các thông tin quan trọng như UUID hay loại định dạng phục vụ cho việc cấu hình /etc/fstab, bạn bắt buộc phải thêm tùy chọn
-f. - Độ trễ cập nhật: Sau khi chia lại ổ đĩa bằng fdisk hoặc parted, nếu lsblk chưa hiển thị phân vùng mới, hãy chạy lệnh partprobe để đồng bộ lại bảng phân vùng với Kernel.

Câu hỏi thường gặp
Sự khác biệt chính giữa lệnh lsblk và lệnh df là gì?
– df: Tập trung hiển thị dung lượng đĩa đã sử dụng và còn trống của các hệ thống file đã được mount. Nếu ổ đĩa chưa mount, df sẽ không thấy.
lsblk: Tập trung hiển thị cấu trúc phân cấp của thiết bị phần cứng và hiển thị tất cả ổ đĩa kể cả khi chưa được mount.
Tôi có thể dùng lsblk để xem các ổ đĩa chưa được mount không?
Có thể vì lệnh lsblk liệt kê tất cả các thiết bị block mà nhân Linux nhận diện được. Nếu bạn vừa cắm ổ cứng mới hoặc USB vào mà chưa mount, hãy dùng lsblk để tìm tên thiết bị.
Cột MAJ:MIN trong kết quả lsblk có ý nghĩa gì?
– MAJ (Major number): Xác định loại driver thiết bị, ví dụ như ổ IDE, SCSI, hay floppy.
– MIN (Minor number): Xác định số thứ tự của thiết bị đó, ví dụ như ổ đĩa thứ nhất, phân vùng thứ hai.
Làm thế nào để xuất kết quả lsblk ra định dạng JSON để xử lý bằng script?
lsblk hỗ trợ rất tốt cho việc tự động hóa nên bạn có thể sử dụng tùy chọn -J để xuất kết quả dưới dạng JSON:lsblk -JKết quả sẽ trả về cấu trúc JSON hợp lệ, giúp bạn dễ dàng dùng Python hoặc các công cụ lập trình để xử lý thông tin ổ đĩa.
Tại sao cột RO hiển thị số 1 ở một số thiết bị?
Cột RO là viết tắt của Read-Only.
– Giá trị 0: Thiết bị cho phép đọc và ghi (mặc định với hầu hết ổ cứng).
– Giá trị 1: Thiết bị chỉ cho phép đọc. Bạn thường thấy giá trị này ở các ổ đĩa quang hoặc các thiết bị được gắn cờ bảo vệ ghi.
Tóm lại, lsblk là một lệnh quan trọng nếu bạn muốn nắm rõ tình trạng các thiết bị lưu trữ trên Linux. Lệnh này cho phép bạn nhận diện ổ đĩa, phân vùng và các thiết bị gắn ngoài một cách rõ ràng, dễ đọc. Hy vọng phần hướng dẫn này giúp bạn tự tin hơn khi áp dụng lsblk trong công việc hằng ngày. Chúc bạn thao tác hiệu quả và cảm ơn bạn đã theo dõi bài viết.




