Slide 1

Slide 1 text

lsblkのtypeフィールドのしくみ Oct. 4th, 2023 Satoru Takeuchi twitter: satoru_takeuchi, EnSatoru 1

Slide 2

Slide 2 text

今回話すこと ● lsblkというブロックデバイス一覧表示するコマンド ● とくにtypeフィールドの値を決める方法 2

Slide 3

Slide 3 text

lsblkとは ● ブロックデバイスについての色々な情報を得るためのコマンド 3

Slide 4

Slide 4 text

typeフィールド ● ブロックデバイスの種類を表示 ● 📝 過去動画「Linuxの色々なブロックデバイス」 4

Slide 5

Slide 5 text

ブロックデバイスの構成 5 sda (disk) sdb (disk) sdc (disk) sda1 (part) sda2 part FAT32 filesystem ext4 filesystem testvg dm-0 (lvm) dm-1 (crypt) test.img loop0 (loop)

Slide 6

Slide 6 text

lsblkのソース ● util-linuxの中にある ● githubだとgithub.com/util-linux/util-linux ● typeを判定しているのはmisc_utils/lsblk.c#get_type() 6

Slide 7

Slide 7 text

判定方法 ● 基本は/sys/block以下のファイルを見る 7

Slide 8

Slide 8 text

kpartxコマンド ● ディスクイメージなどの中のパーティションをブロックデバイスとして見えるようにす る ● isoイメージの中のパーティションに作ったファイルシステムのmount時などによく使 う ○ kpartx -a test.img ○ mount /dev/loop0p1 ○ kpartx -d test.img 8

Slide 9

Slide 9 text

まとめ ● ブロックデバイスの一覧を出すlsblkというコマンドがある ● 出力の中のtypeフィールドはブロックデバイスの種類を示す ● /sys/block以下の情報をもとに種類を識別している 9