Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
lsblkのTYPEフィールドの値を 自由に変更 Nov. 28th, 2023 Satoru Takeuchi X: satoru_takeuchi 1
Slide 2
Slide 2 text
今回話すこと ● 「その59 lsblkのtypeフィールドのしくみ」の続き ● lsblkのtypeフィールドの値を自由に変更する方法 2
Slide 3
Slide 3 text
lsblkコマンドのtypeフィールド 3
Slide 4
Slide 4 text
TYPEフィールドでたまに困ることがある ● ブロックデバイスを扱うコマンドが特定のTYPEを受け付けないことがある ○ e.g. ceph-volume lvm preapreコマンドはdisk, part, lvmなど一部しか使えない ● 本番環境はさておきテスト用には任意のデバイスを使いたい 4
Slide 5
Slide 5 text
lsblkのソース ● util-linuxの中にある ● githubだとgithub.com/util-linux/util-linux ● typeを判定しているのはmisc_utils/lsblk.c#get_type() ○ https://github.com/util-linux/util-linux/blob/master/misc-utils/lsblk.c#L456-L469 ● dmデバイスの場合 ○ UUIDは/sys/block//dm/uuidファイルの値で判断 ○ UUIDが”-”という形式ならTYPEフィールドの値はを小文字にしたもの ■ が”part”で始まっていれば例外的に ”part”になる ○ そうでなければ”dm” 5
Slide 6
Slide 6 text
linearターゲットの場合 6 cat test-linear.txt sudo dmsetup create test-linear test-linear.txt lsblk cat /sys/block/dm-X/dm/uuid sudo dmsetup remove test-linear
Slide 7
Slide 7 text
linearターゲットの場合 7 cat test-linear.txt sudo dmsetup create test-linear test-linear.txt lsblk cat /sys/block/dm-X/dm/uuid sudo dmsetup remove test-linear NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 1G 0 loop └─test-linear 253:0 0 1G 0 dm
Slide 8
Slide 8 text
dmデバイスのuuidは作成時に自分で設定できる ● dmsetup createに-u オプションを渡せばいい ● 例: linearデバイスをdiskとして認識させる 8 sudo dmsetup create -u disk-foobar test-linear test-linear.txt lsblk sudo dmsetup remove test-linear
Slide 9
Slide 9 text
dmデバイスのuuidは作成時に自分で設定できる ● dmsetup createに-u オプションを渡せばいい ● 例: linearデバイスをdiskとして認識させる 9 sudo dmsetup create -u disk-foobar test-linear test-linear.txt lsblk sudo dmsetup remove test-linear NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 1G 0 loop └─test-linear 253:0 0 1G 0 disk
Slide 10
Slide 10 text
悪ふざけもできる 10 sudo dmsetup create -u helpme...-foobar test-linear test-linear.txt lsblk sudo dmsetup remove test-linear
Slide 11
Slide 11 text
悪ふざけもできる 11 sudo dmsetup create -u helpme...-foobar test-linear test-linear.txt lsblk sudo dmsetup remove test-linear NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 1G 0 loop └─test-linear 253:0 0 1G 0 helpme...
Slide 12
Slide 12 text
まとめ ● lsblkコマンドのTYPEフィールドの値は自由に書き換えられる ● 適当にソースコードを読むとちょっとしたハックの方法がわかってうれしい 12