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
310
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
0
240
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
170
ソースを読むプロセスの例
sat
PRO
15
9.9k
メモリマップトファイル
sat
PRO
1
130
「Linux」という言葉が指すもの
sat
PRO
4
210
APIとABIの違い
sat
PRO
5
190
ファイルシステムへのアクセス方法
sat
PRO
0
77
ファイルシステム
sat
PRO
1
74
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
6.2k
Other Decks in Technology
See All in Technology
会社を支える Pythonという言語戦略 ~なぜPythonを主要言語にしているのか?~
curekoshimizu
3
660
SCONE - 動画配信の帯域を最適化する新プロトコル
kazuho
1
370
だいたい分かった気になる 『SREの知識地図』 / introduction-to-sre-knowledge-map-book
katsuhisa91
PRO
3
1.4k
「最速」で Gemini CLI を使いこなそう! 〜Cloud Shell/Cloud Run の活用〜 / The Fastest Way to Master the Gemini CLI — with Cloud Shell and Cloud Run
aoto
PRO
1
180
アウトプットから始めるOSSコントリビューション 〜eslint-plugin-vueの場合〜 #vuefes
bengo4com
3
1.8k
AI機能プロジェクト炎上の 3つのしくじりと学び
nakawai
0
100
知覚とデザイン
rinchoku
1
570
個人でデジタル庁の デザインシステムをVue.jsで 作っている話
nishiharatsubasa
3
5.1k
スタートアップの現場で実践しているテストマネジメント #jasst_kyushu
makky_tyuyan
0
130
Behind Postgres 18: The People, the Code, & the Invisible Work | Claire Giordano | PGConfEU 2025
clairegiordano
0
130
もう外には出ない。より快適なフルリモート環境を目指して
mottyzzz
13
10k
コンパウンド組織のCRE #cre_meetup
layerx
PRO
1
260
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Automating Front-end Workflow
addyosmani
1371
200k
Become a Pro
speakerdeck
PRO
29
5.6k
Bash Introduction
62gerente
615
210k
Docker and Python
trallard
46
3.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
130k
Site-Speed That Sticks
csswizardry
13
920
It's Worth the Effort
3n
187
28k
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