Linux lsblk 命令详解
思韵闪耀
2025-02-22
0

简介

Linux 中的 lsblk 命令,全称叫做:list block devices 用于列出块设备的信息,如硬盘、ssd盘及其分区。它提供了系统上所有块设备的树形结构,显示了它们的安装方式、大小和类型。

lsblk 命令读取 sysfs文件系统和 udev db收集信息。如果 udev db 不可用或在没有 udev 支持的情况下编译 lsblk,然后它尝试读取来自块设备的标签、uuid 和文件系统类型

基础语法

lsblk [options]

输出的字段

  • NAME:块设备的名称(例如,sda, nvme0n1)。

  • MAJ:MIN::主设备号和次设备号

  • RM:该设备是否可移动(1 表示可移动,0 表示不可移动)

  • SIZE:块设备的大小

  • RO:设备是否为只读(1 为只读,0 为读写)

  • TYPE:设备的类型,如:disk, part, rom

  • MOUNTPOINT:挂载点:设备在文件系统中的安装位置

常用选项

  • -a:在输出中包含空设备

  • -f:显示文件系统信息(类型、标签、UUID)

  • -l:以列表格式显示输出

  • -J:以 JSON 格式显示输出

  • -m:显示设备所有者、组和模式

  • -n:抑制输出中的标题行

  • -p:显示完整的设备路径(例如,/dev/sda,而不仅仅是 sda)

  • -e <dev>:从输出中排除特定设备

  • -I <dev>:在输出中仅包含特定设备

  • -o <columns>:指定要显示的列

  • x:按指定字段对输出进行排序

示例用法

列出所有块设备

这将以树结构显示所有块设备
lsblk

示例输出

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0   500G  0 disk
├─sda1        8:1    0   200G  0 part /
├─sda2        8:2    0   100G  0 part /home
└─sda3        8:3    0   200G  0 part [SWAP]
sdb           8:16   1   256G  0 disk
└─sdb1        8:17   1   256G  0 part /mnt/usb

仅显示设备名称

lsblk -n

以 JSON 或列表格式显示输出

lsblk -J  # JSON format
lsblk -l  # List format

示例输出

{
   "blockdevices": [
      {"name": "sda", "maj:min": "8:0", "rm": "0", "size": "238.5G", "ro": "0", "type": "disk", "mountpoint": null,
         "children": [
            {"name": "sda1", "maj:min": "8:1", "rm": "0", "size": "512M", "ro": "0", "type": "part", "mountpoint": "/boot/efi"},
            {"name": "sda2", "maj:min": "8:2", "rm": "0", "size": "238G", "ro": "0", "type": "part", "mountpoint": "/"}
         ]
      }
   ]
}

显示带有文件系统信息的设备

包含有关文件系统类型、标签和 UUID 的详细信息
lsblk -f

示例输出

NAME        FSTYPE LABEL    UUID                                 MOUNTPOINT
sda
├─sda1      ext4   rootfs   1234-5678-ABCD-EFGH                 /
├─sda2      ext4   home     8765-4321-HGFE-DCBA                 /home
└─sda3      swap   swap     1122-3344-5566-7788                 [SWAP]
sdb
└─sdb1      vfat   USB_DISK ABCD-1234                           /mnt/usb

显示具有权限的设备

lsblk -m

显示所有设备,包括空设备

默认情况下,lsblk 不会显示没有文件系统或挂载点的设备
lsblk -a

显示内核信息

显示有关设备的内核信息(例如主设备号和次设备号)
lsblk -o KNAME,MAJ:MIN

自定义字段展示

lsblk -o NAME,SIZE,FSTYPE,UUID,MOUNTPOINT

仅列出已挂载的文件系统

lsblk -f | grep "/"

按 UUID 列出设备

lsblk -o NAME,UUID | grep sda1

排除可移动设备

排除 USB 驱动器和其他可移动设备
lsblk -e 7

设备类型 7 通常对应于循环设备

显示特定设备的详细信息

lsblk /dev/sda

识别未使用的分区

列出所有未挂载的分区
lsblk -f | grep -v "MOUNTPOINT" | grep -v "[SWAP]"

在脚本中使用 lsblk

for dev in $(lsblk -ln -o NAME); do
    echo "Device: $dev"
done

【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

Linux系统挂载未分配硬...
先查看未挂载之前的磁盘使用情况发现磁盘使用率已经达到了96%,迫切...
2025-02-22
Linux lsblk 命...
简介Linux 中的 lsblk 命令,全称叫做:list blo...
2025-02-22
linux内核5和6区别
Linux内核5.x和6.x版本之间有显著的区别,这些区别主要体现...
2024-04-29
docker-compos...
1.Compose介绍 DockerCompose是一个用来定义和...
2024-04-26
Linux中的防火墙(Ne...
NetfilterNetfilter是Linux 2.4内核引入的...
2024-03-15
firewall-cmd ...
firewalld的简要说明:firewalld 、firewal...
2024-03-15

热门资讯

SIOCADDRT: Netw... SIOCADDRT: Network is unreachable SIOCADDRT: 网络不可达...
centos7下创建新用户和组 linux下添加,删除,修改,查看用户和用户组 1 .增加一个test组 groupadd test...
linux通过sed 修改文件... 13sy.txt里面内容如下 A; B; C; write by luohao199621; 1.要...
关于cannot remove... 关于cannot remove directory: Directory not empty的解决办...
mount: unknown ... mount: unknown filesystem type LVM2_member解决方案 系统启...
OpenMediaVault安... OpenMediaVault 是一个基于Debian的专用 Linux 发行版,用于构建网络连接存储...
centos7 双网卡双网关的... 最近公司需要在一台服务器上同时使用内网和外网,并且都需要跨网段访问,因此需要双网关,但是一台机子上只...
ethtool 命令详解 1 概述 ethtool 是用于查询及设置网卡参数的命令。 2 命令详解 2.1 命令格式 (1) ...
CentOS7单网卡设置双IP... linux系统CentOS7单网卡设置双IP的方法,centos7.5、7.6、7.7设置双IP教程...
Linux进程状态D,S,Z的... Linux进程状态top,ps中看到进程状态D,S,Z的含义 在top和ps命令中有一列显示进程状态...