Lệnh lsblk trong Linux

Giới thiệu

Trong lab này, chúng ta sẽ khám phá lệnh lsblk của Linux, lệnh này hiển thị thông tin về tất cả các thiết bị khối khả dụng trên hệ thống của bạn. Thiết bị khối bao gồm ổ cứng, SSD, ổ USB và các phương tiện lưu trữ khác. Lệnh lsblk trình bày thông tin này ở định dạng rõ ràng, giống như cây, giúp bạn dễ dàng hiểu mối quan hệ giữa các thiết bị lưu trữ khác nhau và các phân vùng của chúng.

Hiểu về các thiết bị lưu trữ là điều cần thiết cho bất kỳ ai làm việc với hệ thống Linux. Cho dù bạn cần xác định dung lượng lưu trữ khả dụng, kiểm tra kích thước phân vùng hay xác minh các điểm mount, lệnh lsblk cung cấp một cách nhanh chóng và hiệu quả để thu thập thông tin này.

Đến cuối lab này, bạn sẽ có thể sử dụng lệnh lsblk với nhiều tùy chọn khác nhau để có được thông tin chi tiết về các thiết bị lưu trữ trên hệ thống Linux của bạn.

Sử dụng cơ bản lệnh lsblk

Lệnh lsblk là viết tắt của "list block devices" và được sử dụng để hiển thị thông tin về tất cả các thiết bị khối khả dụng trên hệ thống Linux của bạn. Thiết bị khối là các thiết bị lưu trữ như ổ cứng, SSD và ổ USB.

Hãy bắt đầu bằng cách chạy lệnh lsblk cơ bản trong terminal:

  1. Mở terminal nếu nó chưa mở.

  2. Nhập lệnh sau và nhấn Enter:

lsblk

Bạn sẽ thấy đầu ra tương tự như sau:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0  55.5M  1 loop /snap/core18/2128
loop1    7:1    0  55.4M  1 loop /snap/core18/2284
loop2    7:2    0  43.6M  1 loop /snap/snapd/15534
loop3    7:3    0  61.9M  1 loop /snap/gtk-common-themes/1535
loop4    7:4    0  31.1M  1 loop /snap/snapd/16292
sda      8:0    0   50G  0 disk
├─sda1   8:1    0   49G  0 part /
└─sda2   8:2    0  976M  0 part [SWAP]

Đầu ra này hiển thị tất cả các thiết bị khối trên hệ thống của bạn, với các cột sau:

  • NAME: Tên thiết bị
  • MAJ:MIN: Số thiết bị chính và thiết bị phụ
  • RM: Cờ removable (1 có nghĩa là removable, 0 có nghĩa là không removable)
  • SIZE: Kích thước của thiết bị
  • RO: Cờ read-only (1 có nghĩa là read-only, 0 có nghĩa là read-write)
  • TYPE: Loại thiết bị (disk, partition, loop, v.v.)
  • MOUNTPOINT: Nơi thiết bị được mount (nếu có)

Trong ví dụ trên, bạn có thể thấy:

  • Một số thiết bị loop được sử dụng bởi các gói snap
  • Một thiết bị lưu trữ chính sda (là một ổ đĩa 50GB)
  • Hai phân vùng trên sda: sda1 (được mount tại thư mục gốc /) và sda2 (được sử dụng làm không gian swap)

Cấu trúc giống như cây trong đầu ra giúp bạn dễ dàng hình dung phân vùng nào thuộc về đĩa nào. Ví dụ: bạn có thể thấy cả sda1sda2 đều là phân vùng của đĩa sda.

Bây giờ bạn đã hiểu đầu ra cơ bản của lệnh lsblk, hãy khám phá một số tùy chọn hữu ích trong các bước tiếp theo.

Hiển thị thông tin bổ sung với lsblk

Trong bước này, chúng ta sẽ tìm hiểu cách sử dụng lệnh lsblk với các tùy chọn khác nhau để hiển thị thông tin chi tiết hơn về các thiết bị khối.

Sử dụng tùy chọn -f để hiển thị thông tin hệ thống tệp

Tùy chọn -f hiển thị thông tin hệ thống tệp, bao gồm loại hệ thống tệp, label, UUID và điểm mount. Điều này đặc biệt hữu ích khi bạn cần xác định các thiết bị theo UUID của chúng hoặc kiểm tra các loại hệ thống tệp nào đang được sử dụng.

Chạy lệnh sau trong terminal của bạn:

lsblk -f

Bạn sẽ thấy đầu ra tương tự như sau:

NAME   FSTYPE   LABEL UUID                                 MOUNTPOINT
loop0  squashfs                                            /snap/core18/2128
loop1  squashfs                                            /snap/core18/2284
loop2  squashfs                                            /snap/snapd/15534
loop3  squashfs                                            /snap/gtk-common-themes/1535
loop4  squashfs                                            /snap/snapd/16292
sda
├─sda1 ext4           5fbb8eed-12a3-4b5c-9d67-9594ff4e2d1c /
└─sda2 swap           b409ae25-7589-44eb-a909-b56f1d42c5ab [SWAP]

Đầu ra hiện bao gồm các cột bổ sung:

  • FSTYPE: Loại hệ thống tệp (ext4, swap, squashfs, v.v.)
  • LABEL: Bất kỳ label hệ thống tệp nào đã được chỉ định
  • UUID: Universal Unique Identifier cho hệ thống tệp

Sử dụng tùy chọn -m để hiển thị thông tin chủ sở hữu và chế độ thiết bị

Tùy chọn -m hiển thị quyền và thông tin chủ sở hữu cho các thiết bị khối. Điều này hữu ích khi khắc phục sự cố liên quan đến quyền.

Chạy lệnh sau:

lsblk -m

Bạn sẽ thấy đầu ra như sau:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT OWNER GROUP MODE
loop0    7:0    0  55.5M  1 loop /snap/core18/2128 root  disk  brw-rw----
loop1    7:1    0  55.4M  1 loop /snap/core18/2284 root  disk  brw-rw----
loop2    7:2    0  43.6M  1 loop /snap/snapd/15534 root  disk  brw-rw----
loop3    7:3    0  61.9M  1 loop /snap/gtk-common-themes/1535 root  disk  brw-rw----
loop4    7:4    0  31.1M  1 loop /snap/snapd/16292 root  disk  brw-rw----
sda      8:0    0   50G  0 disk            root  disk  brw-rw----
├─sda1   8:1    0   49G  0 part /          root  disk  brw-rw----
└─sda2   8:2    0  976M  0 part [SWAP]     root  disk  brw-rw----

Các cột mới hiển thị:

  • OWNER: Người dùng sở hữu thiết bị (thường là root)
  • GROUP: Chủ sở hữu nhóm của thiết bị (thường là disk)
  • MODE: Chế độ quyền của thiết bị

Sử dụng tùy chọn -o để chọn các cột đầu ra cụ thể

Tùy chọn -o cho phép bạn chỉ định các cột sẽ hiển thị. Điều này hữu ích khi bạn chỉ cần một số thông tin nhất định và muốn có một đầu ra rõ ràng hơn, tập trung hơn.

Hãy chỉ hiển thị các cột tên, kích thước và điểm mount:

lsblk -o NAME,SIZE,MOUNTPOINT

Đầu ra sẽ đơn giản hơn nhiều:

NAME    SIZE MOUNTPOINT
loop0  55.5M /snap/core18/2128
loop1  55.4M /snap/core18/2284
loop2  43.6M /snap/snapd/15534
loop3  61.9M /snap/gtk-common-themes/1535
loop4  31.1M /snap/snapd/16292
sda     50G
├─sda1   49G /
└─sda2  976M [SWAP]

Đầu ra tùy chỉnh này giúp bạn dễ dàng tập trung vào thông tin bạn cần. Bạn có thể kết hợp nhiều tùy chọn để có được chính xác thông tin bạn muốn ở định dạng phù hợp nhất với nhu cầu của bạn.

Lọc các thiết bị khối với lsblk

Trong bước này, chúng ta sẽ tìm hiểu cách lọc đầu ra của lệnh lsblk để tập trung vào các loại thiết bị khối cụ thể hoặc hiển thị thông tin ở các định dạng khác nhau.

Lọc theo loại thiết bị

Lệnh lsblk cho phép bạn lọc các thiết bị theo loại của chúng bằng cách sử dụng tùy chọn --type hoặc -t. Các loại thiết bị phổ biến bao gồm:

  • disk: Đĩa vật lý
  • part: Phân vùng
  • loop: Thiết bị loop
  • lvm: Logical volumes

Để chỉ hiển thị các thiết bị disk, hãy chạy lệnh sau:

lsblk --type disk

Đầu ra sẽ chỉ hiển thị các đĩa chính, không có phân vùng của chúng:

NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda    8:0    0   50G  0 disk

Tương tự, để chỉ hiển thị các thiết bị partition, hãy chạy:

lsblk --type part

Đầu ra sẽ chỉ hiển thị các phân vùng:

NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda1   8:1    0   49G  0 part /
sda2   8:2    0  976M  0 part [SWAP]

Hiển thị đường dẫn thiết bị

Tùy chọn --paths hiển thị đường dẫn đầy đủ của thiết bị thay vì chỉ tên thiết bị. Điều này hữu ích khi bạn cần tham chiếu các thiết bị trong các script hoặc lệnh.

Chạy lệnh sau:

lsblk --paths

Đầu ra sẽ bao gồm đường dẫn đầy đủ của thiết bị:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/loop0    7:0    0  55.5M  1 loop /snap/core18/2128
/dev/loop1    7:1    0  55.4M  1 loop /snap/core18/2284
/dev/loop2    7:2    0  43.6M  1 loop /snap/snapd/15534
/dev/loop3    7:3    0  61.9M  1 loop /snap/gtk-common-themes/1535
/dev/loop4    7:4    0  31.1M  1 loop /snap/snapd/16292
/dev/sda      8:0    0   50G  0 disk
├─/dev/sda1   8:1    0   49G  0 part /
└─/dev/sda2   8:2    0  976M  0 part [SWAP]

Hiển thị đầu ra ở định dạng JSON

Tùy chọn --json xuất thông tin ở định dạng JSON, rất hữu ích cho xử lý chương trình hoặc khi tích hợp với các công cụ khác.

Chạy lệnh sau:

lsblk --json

Đầu ra sẽ ở định dạng JSON:

{
  "blockdevices": [
    {
      "name": "loop0",
      "maj:min": "7:0",
      "rm": false,
      "size": "55.5M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/core18/2128"
    },
    {
      "name": "loop1",
      "maj:min": "7:1",
      "rm": false,
      "size": "55.4M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/core18/2284"
    },
    {
      "name": "loop2",
      "maj:min": "7:2",
      "rm": false,
      "size": "43.6M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/snapd/15534"
    },
    {
      "name": "loop3",
      "maj:min": "7:3",
      "rm": false,
      "size": "61.9M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/gtk-common-themes/1535"
    },
    {
      "name": "loop4",
      "maj:min": "7:4",
      "rm": false,
      "size": "31.1M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/snapd/16292"
    },
    {
      "name": "sda",
      "maj:min": "8:0",
      "rm": false,
      "size": "50G",
      "ro": false,
      "type": "disk",
      "children": [
        {
          "name": "sda1",
          "maj:min": "8:1",
          "rm": false,
          "size": "49G",
          "ro": false,
          "type": "part",
          "mountpoint": "/"
        },
        {
          "name": "sda2",
          "maj:min": "8:2",
          "rm": false,
          "size": "976M",
          "ro": false,
          "type": "part",
          "mountpoint": "[SWAP]"
        }
      ]
    }
  ]
}

Kết hợp các tùy chọn để kiểm soát chính xác

Bạn có thể kết hợp nhiều tùy chọn để có được chính xác thông tin bạn cần. Ví dụ: để chỉ hiển thị các thiết bị disk với đường dẫn đầy đủ của chúng ở định dạng JSON:

lsblk --type disk --paths --json

Đầu ra sẽ là một biểu diễn JSON của chỉ các thiết bị disk với đường dẫn đầy đủ của chúng:

{
  "blockdevices": [
    {
      "name": "/dev/sda",
      "maj:min": "8:0",
      "rm": false,
      "size": "50G",
      "ro": false,
      "type": "disk"
    }
  ]
}

Các tùy chọn lọc này làm cho lệnh lsblk rất linh hoạt và cho phép bạn có được chính xác thông tin bạn cần về các thiết bị khối trên hệ thống của bạn.

Sử dụng nâng cao lsblk cho các tình huống thực tế

Trong bước này, chúng ta sẽ khám phá các tình huống thực tế mà lệnh lsblk chứng tỏ giá trị cho các tác vụ quản trị hệ thống và khắc phục sự cố.

Kiểm tra việc sử dụng đĩa và dung lượng khả dụng

Để kiểm tra việc sử dụng đĩa và dung lượng khả dụng, bạn có thể kết hợp lsblk với tùy chọn -b (để hiển thị kích thước bằng byte) và chọn các cột cụ thể:

lsblk -b -o NAME,SIZE,FSAVAIL,FSUSE%,MOUNTPOINT

Đầu ra sẽ hiển thị thông tin sử dụng đĩa:

NAME     SIZE FSAVAIL FSUSE% MOUNTPOINT
loop0  58195968        0     - /snap/core18/2128
loop1  58130432        0     - /snap/core18/2284
loop2  45719552        0     - /snap/snapd/15534
loop3  64897024        0     - /snap/gtk-common-themes/1535
loop4  32604160        0     - /snap/snapd/16292
sda   53687091200       -     -
├─sda1 52613349376 39128932352  26% /
└─sda2 1023410176        0     - [SWAP]

Các cột hiển thị:

  • SIZE: Tổng kích thước tính bằng byte
  • FSAVAIL: Dung lượng khả dụng trên hệ thống tệp
  • FSUSE%: Phần trăm hệ thống tệp đã sử dụng
  • MOUNTPOINT: Nơi thiết bị được mount

Xác định ổ USB

Khi bạn cắm ổ USB, bạn có thể sử dụng lsblk để nhanh chóng xác định nó bằng cách tìm kiếm các thiết bị removable:

lsblk -o NAME,SIZE,TYPE,RM,MOUNTPOINT

Trong đầu ra, hãy tìm các thiết bị có giá trị RM (removable) là 1:

NAME   SIZE TYPE RM MOUNTPOINT
loop0  55.5M loop  0 /snap/core18/2128
loop1  55.4M loop  0 /snap/core18/2284
loop2  43.6M loop  0 /snap/snapd/15534
loop3  61.9M loop  0 /snap/gtk-common-themes/1535
loop4  31.1M loop  0 /snap/snapd/16292
sda     50G disk  0
├─sda1   49G part  0 /
└─sda2  976M part  0 [SWAP]

Nếu bạn có ổ USB được kết nối, nó thường sẽ hiển thị dưới dạng một đĩa bổ sung (chẳng hạn như sdb) với giá trị RM1.

Tìm số serial của thiết bị

Đối với kiểm kê phần cứng hoặc khắc phục sự cố, bạn có thể cần tìm số serial của thiết bị. Lệnh lsblk có thể hiển thị thông tin này:

lsblk -o NAME,SIZE,TYPE,SERIAL

Đầu ra sẽ bao gồm số serial cho các thiết bị cung cấp thông tin này:

NAME   SIZE TYPE SERIAL
loop0  55.5M loop
loop1  55.4M loop
loop2  43.6M loop
loop3  61.9M loop
loop4  31.1M loop
sda     50G disk ABCD1234
├─sda1   49G part
└─sda2  976M part

Lưu ý rằng không phải tất cả các thiết bị đều báo cáo số serial và các thiết bị ảo như thiết bị loop thường không có số serial.

Phân tích thuộc tính hiệu suất đĩa

Để xem các thuộc tính hiệu suất đĩa, bạn có thể sử dụng tùy chọn --topology hoặc -t:

lsblk --topology

Đầu ra bao gồm thông tin topology như alignment và kích thước I/O tối ưu:

NAME   ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED     RQ-SIZE  RA WSAME
loop0          0    512      0     512     512    1 mq-deadline     256 128    0B
loop1          0    512      0     512     512    1 mq-deadline     256 128    0B
loop2          0    512      0     512     512    1 mq-deadline     256 128    0B
loop3          0    512      0     512     512    1 mq-deadline     256 128    0B
loop4          0    512      0     512     512    1 mq-deadline     256 128    0B
sda            0    512      0     512     512    1 mq-deadline     256 128    0B
├─sda1         0    512      0     512     512    1 mq-deadline     256 128    0B
└─sda2         0    512      0     512     512    1 mq-deadline     256 128    0B

Thông tin này có thể hữu ích cho việc điều chỉnh hiệu suất và khắc phục các sự cố liên quan đến I/O.

Những ví dụ thực tế này chứng minh tính linh hoạt của lệnh lsblk cho các tác vụ quản trị hệ thống hàng ngày. Bằng cách nắm vững các kỹ thuật này, bạn có thể nhanh chóng thu thập thông tin quan trọng về các thiết bị lưu trữ trên hệ thống Linux của mình.

Tóm tắt

Trong lab này, chúng ta đã khám phá lệnh lsblk của Linux, một công cụ mạnh mẽ để liệt kê và hiển thị thông tin về các thiết bị khối trên hệ thống của bạn. Chúng ta đã đề cập đến một số khía cạnh quan trọng của lệnh:

  • Sử dụng cơ bản lsblk để hiển thị danh sách dạng cây của tất cả các thiết bị khối
  • Cách hiển thị thông tin bổ sung bao gồm chi tiết hệ thống tệp, chủ sở hữu/quyền và lựa chọn cột tùy chỉnh
  • Các kỹ thuật lọc để tập trung vào các loại thiết bị cụ thể hoặc định dạng hiển thị
  • Các tình huống sử dụng nâng cao cho các tác vụ quản trị hệ thống

Lệnh lsblk là một công cụ thiết yếu cho các systemadmin Linux và người dùng cần quản lý các thiết bị lưu trữ. Các tùy chọn linh hoạt của nó cho phép bạn nhanh chóng có được thông tin chính xác mà bạn cần về đĩa, phân vùng và các thiết bị khối khác trên hệ thống của bạn.

Bằng cách nắm vững lệnh lsblk, bạn có thể hiệu quả hơn trong việc:

  • Xác định và quản lý các thiết bị lưu trữ
  • Giám sát việc sử dụng đĩa và dung lượng khả dụng
  • Khắc phục các sự cố liên quan đến lưu trữ
  • Ghi lại cấu hình lưu trữ của hệ thống của bạn

Những kỹ năng này tạo thành một nền tảng quan trọng cho các tác vụ quản trị hệ thống Linux nâng cao hơn liên quan đến quản lý lưu trữ.

400+ câu lệnh phổ biến trong Linux