Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
lsblkコマンドのTYPEフィールドの値を自由に変更
Search
Satoru Takeuchi
PRO
November 26, 2023
Technology
0
96
lsblkコマンドのTYPEフィールドの値を自由に変更
以下動画のテキストです
https://youtu.be/D_pecRQXn0k
Satoru Takeuchi
PRO
November 26, 2023
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
290
俺とキャンプ2
sat
PRO
1
110
俺とキャンプ3
sat
PRO
0
87
データ冗長化のしくみRAID 基礎概念とRAID1編
sat
PRO
2
39
RAIDの実現方法
sat
PRO
2
78
Linux環境のCPU上で10ミリ秒間に起こること
sat
PRO
3
120
HDDへのアクセス速度は位置によって変わる!??
sat
PRO
4
65
ボリュームマネージャLVM
sat
PRO
2
93
Best Practices of Production-Grade Rook/Ceph Cluster
sat
PRO
1
2.1k
Other Decks in Technology
See All in Technology
Domain-driven Design: A Complete Example
ewolff
2
270
Money-saving tips for the frugal serverless developer
theburningmonk
1
410
SWC Transformerから見るTypeScript関数記述ベストプラクティス
fujiyamaorange
1
180
1Q86
kawaguti
PRO
2
190
QA Engineer Life @ LINE
line_developers_tw
PRO
0
150
エムスリーマルチデバイスチーム紹介資料 / Introduction of M3 Multi Device Team
m3_engineering
1
170
Real World Type Puzzle and Code Generation
yukukotani
4
640
生成AI活用推進の為にやったこと/やらなかったこと
ktc_wada
0
210
[PyconUS 2024] Having fun with Pydantic and pattern matching
enforcerpl
0
190
ハードウェアを動かすTypeScriptの世界
9wick
3
1.2k
5分で分かる(かもしれない) Vector engine for OpenSearch Serverless
tsukuboshi
1
430
株式会社EventHub・エンジニア採用資料
eventhub
0
2.1k
Featured
See All Featured
Clear Off the Table
cherdarchuk
86
310k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
2k
The Invisible Side of Design
smashingmag
294
49k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
Building Effective Engineering Teams - LeadDev
addyosmani
33
1.9k
Optimizing for Happiness
mojombo
371
69k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
Writing Fast Ruby
sferik
622
60k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
15
1.6k
Music & Morning Musume
bryan
41
5.6k
Agile that works and the tools we love
rasmusluckow
325
20k
Transcript
lsblkのTYPEフィールドの値を 自由に変更 Nov. 28th, 2023 Satoru Takeuchi X: satoru_takeuchi 1
今回話すこと • 「その59 lsblkのtypeフィールドのしくみ」の続き • lsblkのtypeフィールドの値を自由に変更する方法 2
lsblkコマンドのtypeフィールド 3
TYPEフィールドでたまに困ることがある • ブロックデバイスを扱うコマンドが特定のTYPEを受け付けないことがある ◦ e.g. ceph-volume lvm preapreコマンドはdisk, part, lvmなど一部しか使えない
• 本番環境はさておきテスト用には任意のデバイスを使いたい 4
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デバイス名>/dm/uuidファイルの値で判断 ◦ UUIDが”<foo>-<bar>”という形式ならTYPEフィールドの値は<foo>を小文字にしたもの ▪ <foo>が”part”で始まっていれば例外的に ”part”になる ◦ そうでなければ”dm” 5
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
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
dmデバイスのuuidは作成時に自分で設定できる • dmsetup createに-u <uuid>オプションを渡せばいい • 例: linearデバイスをdiskとして認識させる 8 sudo
dmsetup create -u disk-foobar test-linear test-linear.txt lsblk sudo dmsetup remove test-linear
dmデバイスのuuidは作成時に自分で設定できる • dmsetup createに-u <uuid>オプションを渡せばいい • 例: 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
悪ふざけもできる 10 sudo dmsetup create -u helpme...-foobar test-linear test-linear.txt lsblk
sudo dmsetup remove test-linear
悪ふざけもできる 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...
まとめ • lsblkコマンドのTYPEフィールドの値は自由に書き換えられる • 適当にソースコードを読むとちょっとしたハックの方法がわかってうれしい 12