hana_shinのLinux技術ブログ

Linuxの技術情報を掲載しています。特にネットワークをメインに掲載していきます。

lsblkコマンドの使い方



1 lsblkコマンドとは?

利用可能なブロックデバイスの情報を表示するコマンドです。

2 検証環境

CentOS版数は以下のとおりです。仮想マシンは最小限の構成で作成しました。

[root@server ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

カーネル版数は以下のとおりです。

[root@server ~]# uname -r
3.10.0-1160.el7.x86_64

3 オプション一覧

オプション一覧は以下のとおりです。

[root@server ~]# lsblk -h

Usage:
 lsblk [options] [<device> ...]

オプション:
 -a, --all            print all devices
 -b, --bytes          print SIZE in bytes rather than in human readable format
 -d, --nodeps         don't print slaves or holders
 -D, --discard        print discard capabilities
 -e, --exclude <list> exclude devices by major number (default: RAM disks)
 -I, --include <list> show only devices with specified major numbers
 -f, --fs             output info about filesystems
 -h, --help           usage information (this)
 -i, --ascii          use ascii characters only
 -m, --perms          output info about permissions
 -l, --list           use list format output
 -n, --noheadings     don't print headings
 -o, --output <list>  output columns
 -p, --paths          print complate device path
 -P, --pairs          use key="value" output format
 -r, --raw            use raw output format
 -s, --inverse        inverse dependencies
 -t, --topology       output info about topology
 -S, --scsi           output info about SCSI devices

 -h, --help     display this help and exit
 -V, --version  output version information and exit

Available columns (for --output):
        NAME  device name
       KNAME  internal kernel device name
     MAJ:MIN  major:minor device number
      FSTYPE  ファイルシステムの種類
  MOUNTPOINT  where the device is mounted
       LABEL  filesystem LABEL
        UUID  filesystem UUID
   PARTLABEL  partition LABEL
    PARTUUID  partition UUID
          RA  read-ahead of the device
          RO  read-only device
          RM  removable device
       MODEL  device identifier
      SERIAL  disk serial number
        SIZE  size of the device
       STATE  state of the device
       OWNER  user name
       GROUP  group name
        MODE  device node permissions
   ALIGNMENT  alignment offset
      MIN-IO  minimum I/O size
      OPT-IO  optimal I/O size
     PHY-SEC  physical sector size
     LOG-SEC  logical sector size
        ROTA  rotational device
       SCHED  I/O scheduler name
     RQ-SIZE  request queue size
        TYPE  device type
    DISC-ALN  discard alignment offset
   DISC-GRAN  discard granularity
    DISC-MAX  discard max bytes
   DISC-ZERO  discard zeroes data
       WSAME  write same max bytes
         WWN  unique storage identifier
        RAND  adds randomness
      PKNAME  internal parent kernel device name
        HCTL  Host:Channel:Target:Lun for SCSI
        TRAN  device transport type
         REV  device revision
      VENDOR  device vendor

For more details see lsblk(8).

4 ASCIIコードで表示する方法(-i)

-iは、lsblkの出力をASCIIコードで出力するオプションです。このオプションを付けないと、文字化けするので、これ以降、すべて-iオプションを付けて実行します。

[root@server ~]# lsblk -i
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk
|-sda1   8:1    0  256M  0 part /boot
|-sda2   8:2    0  128M  0 part [SWAP]
`-sda3   8:3    0 19.6G  0 part /
sdb      8:16   0    1G  0 disk
sr0     11:0    1  4.4G  0 rom

5 ファイルシステムを表示する方法(-f)

-fは、デバイスに作成されているファイルシステムを表示するオプションです。なお、sdbにはファイルシステムを作成していないので、ファイルシステムの情報を表示する欄(FSTYPE)は空白になっています。

[root@server ~]# lsblk -fi
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda
|-sda1 xfs                     07a46e14-3ea4-4798-afe3-9ccf7e31504c /boot
|-sda2 swap                    91ae1a05-4341-4273-ba3e-09cd49167d9d [SWAP]
`-sda3 xfs                     c8364498-e846-4d3d-a3bd-32d5233612cb /
sdb
sr0    iso9660 CentOS 7 x86_64 2020-11-04-11-36-43-00

6 デバイスのパスを表示する方法(-p)

-pは、デバイスのフルパスを表示するオプションです。

[root@server ~]# lsblk -ip
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
/dev/sda      8:0    0   20G  0 disk
|-/dev/sda1   8:1    0  256M  0 part /boot
|-/dev/sda2   8:2    0  128M  0 part [SWAP]
`-/dev/sda3   8:3    0 19.6G  0 part /
/dev/sdb      8:16   0    1G  0 disk
/dev/sr0     11:0    1  4.4G  0 rom

7 SIZEカラムをバイト単位で表示する方法(-b)

-bは、SIZEカラムをバイト単位で表示するオプションです。

[root@server ~]# lsblk -bi
NAME   MAJ:MIN RM        SIZE RO TYPE MOUNTPOINT
sda      8:0    0 21474836480  0 disk
|-sda1   8:1    0   268435456  0 part /boot
|-sda2   8:2    0   134217728  0 part [SWAP]
`-sda3   8:3    0 21071134720  0 part /
sdb      8:16   0  1073741824  0 disk
sr0     11:0    1  4712300544  0 rom

8 デバイスのオーナ、グループ、モードを表示する方法(-m)

-mは、デバイスのデバイスのオーナ、グループ、モードを表示するオプションです。

[root@server ~]# lsblk -im
NAME    SIZE OWNER GROUP MODE
sda      20G root  disk  brw-rw----
|-sda1  256M root  disk  brw-rw----
|-sda2  128M root  disk  brw-rw----
`-sda3 19.6G root  disk  brw-rw----
sdb       1G root  disk  brw-rw----
sr0     4.4G root  cdrom brw-rw----

9 デバイスのトポロジを表示する方法(-t)

-tは、デバイスのトポロジを表示するオプションです。

[root@server ~]# lsblk -it
NAME   ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED    RQ-SIZE   RA WSAME
sda            0    512      0     512     512    1 deadline     128 4096   32M
|-sda1         0    512      0     512     512    1 deadline     128 4096   32M
|-sda2         0    512      0     512     512    1 deadline     128 4096   32M
`-sda3         0    512      0     512     512    1 deadline     128 4096   32M
sdb            0    512      0     512     512    1 deadline     128 4096   32M
sr0            0   2048      0    2048    2048    1 deadline     128  128    0B

10 表示するカラムを指定する方法(-o)

-oは、表示するカラムを指定するオプションです。

NAME列を表示してみます。

[root@server ~]# lsblk -i -o NAME
NAME
sda
|-sda1
|-sda2
`-sda3
sdb
sr0

次に、NAMEとSIZEを表示してみます。

[root@server ~]# lsblk -i -o NAME,SIZE
NAME    SIZE
sda      20G
|-sda1  256M
|-sda2  128M
`-sda3 19.6G
sdb       1G
sr0     4.4G

最後に、NAME,SIZE,TYPE,UUIDを表示してみます。

[root@server ~]# lsblk -i -o NAME,SIZE,TYPE,UUID
NAME    SIZE TYPE UUID
sda      20G disk
|-sda1  256M part 07a46e14-3ea4-4798-afe3-9ccf7e31504c
|-sda2  128M part 91ae1a05-4341-4273-ba3e-09cd49167d9d
`-sda3 19.6G part c8364498-e846-4d3d-a3bd-32d5233612cb
sdb       1G disk
sr0     4.4G rom  2020-11-04-11-36-43-00

11 指定したメジャー番号のデバイスを表示する方法(-I)

-Iは、指定したメジャー番号のデバイスだけを表示するオプションです。まず、メジャー番号が8だけのデバイスを表示してみます。

[root@server ~]# lsblk -iI8
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk
|-sda1   8:1    0  256M  0 part /boot
|-sda2   8:2    0  128M  0 part [SWAP]
`-sda3   8:3    0 19.6G  0 part /
sdb      8:16   0    1G  0 disk

ループバックデバイスを作成します。そして、メジャー番号が7と8のデバイスを表示してみます。ループバックデバイスのメジャー番号は7であることがわかります。なお、ループバックデバイスの作成方法は、losetupコマンドの使い方 - hana_shinのLinux技術ブログを参照してください。

[root@server ~]#  lsblk -iI7,8
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk
|-sda1   8:1    0  256M  0 part /boot
|-sda2   8:2    0  128M  0 part [SWAP]
`-sda3   8:3    0 19.6G  0 part /
sdb      8:16   0    1G  0 disk
loop0    7:0    0    1M  0 loop

12 指定したメジャー番号以外のデバイスを表示する方法(-e)

-eは、指定したメジャー番号以外のデバイスを表示するオプションです。メジャー番号が8以外のデバイスを表示してみます。

[root@server ~]# lsblk -ie8
NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0    11:0    1  4.4G  0 rom
loop0   7:0    0    1M  0 loop

13 各項目を識別子=値で表示する方法(-P)

[root@server ~]# lsblk -iP
NAME="sda" MAJ:MIN="8:0" RM="0" SIZE="20G" RO="0" TYPE="disk" MOUNTPOINT=""
NAME="sda1" MAJ:MIN="8:1" RM="0" SIZE="256M" RO="0" TYPE="part" MOUNTPOINT="/boot"
NAME="sda2" MAJ:MIN="8:2" RM="0" SIZE="128M" RO="0" TYPE="part" MOUNTPOINT="[SWAP]"
NAME="sda3" MAJ:MIN="8:3" RM="0" SIZE="19.6G" RO="0" TYPE="part" MOUNTPOINT="/"
NAME="sdb" MAJ:MIN="8:16" RM="0" SIZE="1G" RO="0" TYPE="disk" MOUNTPOINT=""
NAME="sr0" MAJ:MIN="11:0" RM="1" SIZE="4.4G" RO="0" TYPE="rom" MOUNTPOINT=""
NAME="loop0" MAJ:MIN="7:0" RM="0" SIZE="1M" RO="0" TYPE="loop" MOUNTPOINT=""

14 SCSIバイスを表示する方法(-S)

-Sは、SCSIバイスを表示するオプションです。以下は、iSCSIの環境構築手順 - hana_shinのLinux技術ブログで作成したiSCSIバイスです。

[root@initiator ~]# lsblk -S
NAME HCTL       TYPE VENDOR   MODEL             REV TRAN
sdb  3:0:0:0    disk LIO-ORG  lun0             4.0  iscsi

Z 参考情報

私が業務や記事執筆で参考にした書籍を以下のページに記載します。
Linux技術のスキルアップをしよう! - hana_shinのLinux技術ブログ