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
110
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
74
データ冗長化のしくみ RAID ~冗長性が無いRAID0編~
sat
PRO
1
24
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
310
俺とキャンプ2
sat
PRO
1
110
俺とキャンプ3
sat
PRO
0
89
データ冗長化のしくみRAID 基礎概念とRAID1編
sat
PRO
2
48
RAIDの実現方法
sat
PRO
2
100
Linux環境のCPU上で10ミリ秒間に起こること
sat
PRO
3
150
HDDへのアクセス速度は位置によって変わる!??
sat
PRO
4
74
Other Decks in Technology
See All in Technology
いまからでも遅くない!仮想化基盤運用者に向けたコンテナ基盤移行で気にすべきポイント
moribito
0
170
EMがマジ価値を届けきるために考え行動したこと / Engineering Manager's thoughts and actions to deliver outcome
matsu0228
0
310
週刊AWSキャッチアップ 生成AI編(2024/5/27週)
minorun365
PRO
4
140
株式会社EventHub・エンジニア採用資料
eventhub
0
2.2k
組合せ最適化による問題解決の実践的アプローチ
recruitengineers
PRO
8
1k
Practices_for_improving_freee_development_productivity
hikarumiyazawa
0
360
NAB Show 2024 動画技術関連レポート/ NAB Show 2024 Report
cyberagentdevelopers
PRO
3
210
RAG の研究を元に予測する、これからのエンジニアに求められるスキル
isseihamada
3
190
ID連携基盤のマイクロサービス移行プラクティス(freee技術の日)
terara
0
410
Luupの開発組織におけるインシデントマネジメントの変遷
grimoh
2
360
Developing image pull secrets provisioner / Kubernetes Meetup Tokyo #65
pfn
PRO
2
210
Custom logging with slog Making Logging Fun Again!
masumomo
3
360
Featured
See All Featured
Design by the Numbers
sachag
276
18k
Producing Creativity
orderedlist
PRO
338
39k
Designing for humans not robots
tammielis
247
25k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
21
1.8k
Optimising Largest Contentful Paint
csswizardry
14
2.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
18
2.8k
Ruby is Unlike a Banana
tanoku
96
10k
Building Flexible Design Systems
yeseniaperezcruz
321
37k
Writing Fast Ruby
sferik
623
60k
A Tale of Four Properties
chriscoyier
153
22k
GraphQLとの向き合い方2022年版
quramy
34
13k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
127
32k
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