Quản lý hệ thống file: các lệnh lsblk
, blkid
1. Tầm quan trọng của việc hiểu hệ thống tệp
Chào mừng bạn đến với bài giảng mới của khóa học, nơi chúng ta sẽ khám phá thế giới hấp dẫn của hệ thống tệp trên Linux. Hôm nay, chúng ta sẽ tìm hiểu cách xác định thiết bị, phân tích cấu trúc của chúng và hiểu được loại hệ thống tệp nào được cài đặt trên đó. Thêm một chút "ma thuật" dòng lệnh với các công cụ lsblk
và blkid
. Và chúng ta cũng sẽ bàn luận tại sao những "cây cuốc lập trình" dùng để "khai thác" dữ liệu luôn là điều thú vị!
Hệ thống tệp là gì?
Nếu hệ điều hành là "trái tim" của máy tính của bạn, thì hệ thống tệp chính là "hệ thần kinh" của nó. Nó tổ chức và quản lý việc truy cập dữ liệu trên các thiết bị lưu trữ (ổ cứng, SSD, ổ USB). Nó xác định dữ liệu được lưu trữ, đọc và ghi như thế nào.
Các ví dụ về hệ thống tệp mà bạn có thể gặp phải:
- ext4 — hệ thống tệp tiêu chuẩn cho hầu hết các bản phân phối Linux.
- NTFS — hệ thống tệp được sử dụng bởi Windows.
- FAT32 — phổ biến cho các thiết bị lưu trữ ngoài và USB.
- XFS, btrfs — các lựa chọn tiên tiến hơn cho Linux với những tính năng như snapshot.
Khi bạn kết nối ổ đĩa hoặc USB vào Linux, hệ thống tệp cần được "mount" để hệ thống có thể bắt đầu làm việc với nó. Chúng ta sẽ quản lý việc này (và nhiều thứ khác nữa) bằng cách sử dụng các lệnh.
2. Lệnh lsblk
: xem tổng quan các thiết bị kết nối
Những điều cơ bản về lệnh lsblk
Linux cung cấp nhiều công cụ để làm việc với thiết bị và phân vùng. Một trong những công cụ hữu ích nhất là lệnh lsblk
. Tên của nó là viết tắt của "list block devices" — liệt kê các thiết bị khối.
Cú pháp rất đơn giản:
lsblk
Lệnh này hiển thị bảng tất cả các thiết bị khối trong hệ thống, bao gồm ổ cứng, SSD, USB và các phân vùng của chúng.
Ví dụ đầu ra:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 50G 0 part /
├─sda2 8:2 0 200G 0 part /home
└─sda3 8:3 0 250G 0 part
sdb 8:16 1 16G 0 disk
└─sdb1 8:17 1 16G 0 part /media/usb
- NAME: Tên thiết bị. Ví dụ,
sda
,sdb
. Các chữ cái (a
,b
...) tương ứng với thứ tự mà hệ thống phát hiện thiết bị. - SIZE: Kích thước của thiết bị.
- TYPE: Loại thiết bị. Ví dụ,
disk
— đĩa vật lý,part
— phân vùng của nó. - MOUNTPOINT: Đường dẫn nơi thiết bị được gắn vào hệ thống tệp.
Các tham số hữu ích
lsblk
— là lệnh khá linh hoạt. Bằng cách sử dụng các tham số bổ sung, bạn có thể nhận được thêm nhiều thông tin hơn:
lsblk -f
— hiển thị loại hệ thống tệp và UUID (định danh duy nhất) của từng thiết bị.lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
— chỉ hiển thị các cột bạn quan tâm (ví dụ, tên, kích thước, hệ thống tệp, điểm gắn).
Ví dụ:
lsblk -f
Kết quả:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 rootfs 1111-2222-3333-4444 /
├─sda2 ext4 home 5555-6666-7777-8888 /home
└─sda3 swap 9999-AAAA-BBBB-CCCC [SWAP]
sdb vfat USB_DISK AAAA-BBBB /media/usb
3. Lệnh blkid
: phép thuật của mã định danh duy nhất
Đôi khi bạn cần biết thông tin chi tiết về thiết bị lưu trữ hoặc hệ thống tệp của nó. Đây là lúc lệnh blkid
trở nên hữu ích. Công việc của nó là xác định các thiết bị dựa trên hệ thống tệp và UUID của chúng.
Kiến thức cơ bản về lệnh blkid
Chạy lệnh này mà không kèm tham số:
blkid
Ví dụ kết quả:
/dev/sda1: UUID="1111-2222-3333-4444" TYPE="ext4"
/dev/sda2: UUID="5555-6666-7777-8888" TYPE="ext4"
/dev/sda3: UUID="9999-AAAA-BBBB-CCCC" TYPE="swap"
/dev/sdb1: UUID="AAAA-BBBB" TYPE="vfat" LABEL="USB_DISK"
- UUID: Mã định danh duy nhất của phân vùng (không thay đổi, ngay cả khi thiết bị đổi tên, ví dụ từ
sda
sangsdb
). - TYPE: Loại hệ thống tệp.
- LABEL: Nhãn phân vùng.
Ứng dụng thực tế của UUID
UUID đặc biệt quan trọng trong Linux, bởi vì các thiết bị có thể thay đổi tên của chúng một cách động khi khởi động. Ví dụ, thứ hôm nay được gọi là /dev/sda
, ngày mai có thể trở thành /dev/sdb
. Nhờ UUID, bạn có thể sử dụng định danh ổn định để mount các thiết bị. Chúng ta sẽ thảo luận chi tiết hơn về điều này trong bài giảng tiếp theo, khi làm việc với tệp /etc/fstab
.
4. Làm việc với thiết bị chưa được mount
Đôi khi bạn kết nối ổ đĩa hoặc USB nhưng nó không hiển thị là đã được mount. Điều này có thể xảy ra do thiếu hệ thống tệp đang hoạt động. Hãy dùng lsblk
và blkid
để nhanh chóng hiểu chuyện gì đang xảy ra.
Giả sử bạn đã kết nối USB, nhưng trong đầu ra của lsblk
bạn thấy:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 16G 0 disk
Điều này có nghĩa là thiết bị sdb
không có phân vùng đang hoạt động. Kiểm tra đầu ra của blkid
để đảm bảo trên đó có hệ thống tệp không:
blkid /dev/sdb
Nếu không có phản hồi, điều này xác nhận rằng: thiết bị vẫn chưa được định dạng. Chúng ta sẽ bàn về điều này trong bài giảng tiếp theo.
5. So sánh lsblk
và blkid
Cả hai lệnh này đều hữu ích, nhưng cách sử dụng thì khác nhau:
- Dùng
lsblk
để xem toàn bộ hệ thống: thiết bị nào đang ở đâu, phân vùng nào được gắn kết. - Dùng
blkid
để kiểm tra chi tiết hệ thống tệp (loại, nhãn, UUID).
Bảng so sánh
Lệnh | Mục đích chính | Đầu ra |
---|---|---|
lsblk |
Hiển thị thiết bị, phân vùng và điểm gắn kết | NAME, SIZE, TYPE, MOUNTPOINT, FSTYPE, v.v. |
blkid |
Lấy thông tin hệ thống tệp (UUID, LABEL, TYPE) | UUID, TYPE, LABEL |
6. Ví dụ: Từ việc tìm kiếm thiết bị đến hiểu cấu trúc của nó
Nhiệm vụ
- Tìm thiết bị USB đã kết nối.
- Xác định hệ thống tệp của nó.
- Chuẩn bị thiết bị để gắn vào (mount).
Các bước
Kết nối thiết bị và thực hiện lệnh:
Tìm thiết bị của bạn. Ví dụ,lsblk
sdb
.Kiểm tra sự tồn tại của hệ thống tệp:
blkid /dev/sdb
Nếu hệ thống tệp không tồn tại, bạn sẽ thấy kết quả trống. Điều này có nghĩa bạn cần định dạng thiết bị.
Nếu hệ thống tệp có tồn tại, bạn sẽ thấy loại và UUID của nó. Bây giờ bạn có thể sử dụng nó cho các tác vụ tiếp theo (ví dụ, gắn vào).
Giờ bạn đã nắm được kiến thức để làm việc với hệ thống tệp trong Linux. Trong bài giảng tiếp theo, chúng ta sẽ tiến hành định dạng thiết bị, tạo hệ thống tệp và chuẩn bị chúng sẵn sàng để sử dụng! Hãy sẵn sàng cho một quy trình thú vị biến "ổ trống" thành công cụ sẵn sàng hoạt động.
GO TO FULL VERSION