Liệt kê tên thiết bị, thông tin ổ đĩa và phân vùng trong Linux với lsblk

Trên Linux, đôi khi bạn cần phải làm việc với các ổ đĩa và/hoặc phân vùng trực tiếp từ dòng lệnh. Thông thường, bạn thực sự muốn thực hiện hành động trên các hệ thống file, nhưng rốt cuộc lại làm điều đó bằng cách chỉ định các phân vùng nơi chúng được lưu trữ. Trên dòng lệnh, bạn thực hiện những điều này bằng cách sử dụng tên thiết bị của chúng (ví dụ: “/dev/sda3”).

Trên các hệ thống có nhiều ổ đĩa, phân vùng, ổ quang và ổ USB, có thể khó xác định tên thiết bị được gán cho mỗi ổ đó.

Lệnh lsblk thực hiện nhiệm vụ gì?

lsblk hiển thị thông tin về các thiết bị lưu trữ. Tiện ích này thường được sử dụng để xác định tên thiết bị chính xác được truyền cho lệnh tiếp theo.

lsblk

Lệnh lsblk thực hiện nhiệm vụ gì?

Trong hầu hết mọi trường hợp, chỉ lsblk, không cần bất kỳ tham số bổ sung nào, cũng đủ để giúp xác định ổ đĩa hoặc phân vùng bạn muốn làm việc. Chẳng hạn, từ bức ảnh trên, bạn có thể nói rằng, sda4 là một phân vùng của Windows, vì bạn biết dung lượng của nó là khoảng 200GB. Tuy nhiên, nếu bạn có hai hoặc nhiều phân vùng có cùng kích thước, mọi thứ có thể trở nên khó hiểu hơn. Trong những trường hợp khác, bạn chỉ đơn giản là không biết hoặc không nhớ dung lượng của một ổ đĩa hoặc phân vùng cụ thể trên hệ thống của mình.

Trên Linux, rất nguy hiểm khi nhầm lẫn tên thiết bị, vì bạn có thể phá hủy hoặc làm hỏng dữ liệu hữu ích bằng một lệnh sai.

Tham số lsblk hữu ích

Theo mặc định, lsblk chỉ hiển thị một vài thuộc tính, như bạn đã thấy trong hình trên. Nhưng, nếu thêm tham số vào lệnh, bạn có thể khiến cho nó xuất ra các thuộc tính thiết bị bổ sung. Điều này giúp việc xác định ổ đĩa hoặc phân vùng bạn đang tìm kiếm dễ dàng hơn nhiều.

Tìm hiểu xem đó là ổ SSD hay ổ cứng (HDD)

Để xem những cột nào lsblk có thể hiển thị, hãy nhập như sau:

lsblk --help

Trong tình huống này, bạn sẽ sử dụng ROTADISC-GRAN.

  • ROTA cho bạn biết liệu một block device (file đại diện cho một loại thiết bị nào đó, với dữ liệu có thể đọc hoặc ghi theo dạng block (khối), thường có khả năng tìm kiếm tiến/lùi, và/hoặc ánh xạ dữ liệu) có thuộc về thiết bị lưu trữ dạng quay không. Các đĩa cứng có thể quay, do đó, cột này xuất ra giá trị “1” bên cạnh chúng (giá trị logic nhị phân có nghĩa là “true”).
  • DISC-GRAN cho bạn thấy mức độ chi tiết của việc loại bỏ (discard granularity). SSD hỗ trợ việc loại bỏ để giải phóng các khối dữ liệu không sử dụng. Đĩa cứng không hỗ trợ tính năng này, vì chúng không cần nó, do đó cột này sẽ hiển thị giá trị 0.
lsblk -o +ROTA,DISC-GRAN

Tìm hiểu xem đó là ổ SSD hay ổ cứng (HDD)

Hiển thị hệ thống file được lưu trữ trên ổ đĩa hoặc phân vùng

Khi thấy một danh sách các phân vùng, bạn có thể biết những gì chúng lưu trữ, dựa trên dung lượng của chúng. Nếu điều này không đủ, bạn cũng có thể tạo các hệ thống file đầu ra lsblk. Sẽ dễ dàng hơn nhiều nếu xác định phân vùng theo cách này bởi vì:

  • Windows sử dụng hệ thống file NTFS
  • Linux thường sử dụng ext4
  • Thiết bị USB sử dụng FAT, FAT32 (vfat) hoặc NTFS
  • Phân vùng boot EFI thường rất nhỏ và hiển thị một hệ thống file vfat trên đó

Ngoài ra, thêm cột đầu ra LABEL, có thể giúp ích, nếu các phân vùng đã được gắn nhãn khi tạo hoặc format.

lsblk -o +FSTYPE,LABEL

Hiển thị thiết bị di động hoặc thẻ nhớ USB

lsblk -o +RM

Lệnh này sẽ hiển thị thêm một cột cho bạn biết liệu thiết bị có thể tháo rời không. Giá trị “1”, đồng nghĩa với “true”, ám chỉ một USB hoặc các loại phương tiện di động khác.

Hiển thị model HDD/SSD

Điều này hữu ích khi bạn muốn tra cứu code chính xác của model thiết bị lưu trữ để nâng cấp firmware hoặc tải xuống driver.

lsblk -d -o +MODEL

Hiển thị UUID (Universally Unique Identifier) hệ thống file

Các bản phân phối Linux cũ đã mount hệ thống file bằng cách chỉ định tên thiết bị của chúng trong “/etc/fstab”. Tuy nhiên, điều đó đã chứng minh là không đáng tin cậy bởi vì “/dev/sda2” có thể trở thành “/dev/sdb2”, khi bạn thêm một thiết bị lưu trữ khác vào hệ thống. Hiện nay, UUID được sử dụng thay thế, vẫn không đổi cho dù bạn thêm vào hoặc loại bỏ bất cứ gì khỏi máy tính. Vì bất kỳ lý do gì bạn cần UUID, bạn đều có thể làm cho lsblk hiển thị chúng với:

lsblk -o +UUID

Hiển thị các cột lsblk khác bạn cần

Ở phần đầu bài viết, bạn đã sử dụng:

lsblk --help

Lệnh này nhằm để xem các cột bổ sung mà lsblk có thể hiển thị. Nếu các ví dụ ở đây không đủ cho nhu cầu của bạn, hãy tham khảo thông tin trợ giúp đó một lần nữa và kết hợp những tham số khi cần. Để làm như vậy, chỉ cần nhập lsblk -o +, theo sau là tên cột mà bạn muốn xuất. Phân tách tên cột bằng dấu phẩy. Ví dụ:

lsblk -o +SCHED,RM,FSTYPE

Sau khi xác định tên thiết bị muốn làm việc, hãy nhớ thay thế nó bằng đường dẫn thiết bị đầy đủ trong lệnh tiếp theo bạn định sử dụng. Ví dụ, nếu nhận được kết quả là “sda4” trong lsblk, bạn sẽ phải thay thế nó bằng “/dev/sda4” trong lệnh tiếp theo. Vì vậy, thay vì “sda4”, bạn hãy nhập “/dev/sda4” vào một lệnh chẳng hạn như: 

mkfs -t ext4 /dev/sda4

Chúc bạn thực hiện thành công!

Thứ Ba, 24/09/2019 15:26
51 👨 95