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
300
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
ファイルシステム
sat
PRO
1
14
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
6k
ポーリングと割り込み
sat
PRO
1
73
Rook: Intro and Deep Dive With Ceph
sat
PRO
1
140
会社員しながら本を書いてきた知見の共有
sat
PRO
3
860
デバイスにアクセスするデバイスファイル
sat
PRO
1
57
ファイルシステムのデータを ブロックデバイスへの操作で変更
sat
PRO
1
46
デバイスドライバ
sat
PRO
0
76
マルチスレッドの実現方法 ~カーネルスレッドとユーザスレッド~
sat
PRO
2
170
Other Decks in Technology
See All in Technology
【OptimizationNight】数理最適化のラストワンマイルとしてのUIUX
brainpadpr
2
540
MySQL HeatWave:サービス概要のご紹介
oracle4engineer
PRO
3
1.6k
生成AI活用のROI、どう測る? DMM.com 開発責任者から学ぶ「AI効果検証のノウハウ」 / ROI of AI
i35_267
4
130
プロジェクトマネジメントは不確実性との対話だ
hisashiwatanabe
0
140
20250807_Kiroと私の反省会
riz3f7
0
260
MCPサーバーを活用したAWSコスト管理
arie0703
0
130
[OCI Technical Deep Dive] OCIで生成AIを活用するためのソリューション解説(2025年8月5日開催)
oracle4engineer
PRO
0
120
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 1
ks91
PRO
0
150
サイボウズフロントエンドの横断活動から考える AI時代にできること
mugi_uno
2
670
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
6.4k
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
9
2.6k
結局QUICで通信は速くなるの?
kota_yata
8
7.4k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
525
40k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.6k
Balancing Empowerment & Direction
lara
2
570
Why Our Code Smells
bkeepers
PRO
338
57k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
183
54k
Designing Experiences People Love
moore
142
24k
It's Worth the Effort
3n
186
28k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
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