Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Taisuke Yamada
PDF, PPTX
3,422 views
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to initramfs, and related tools.
Technology
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 20
2
/ 20
3
/ 20
4
/ 20
5
/ 20
6
/ 20
7
/ 20
8
/ 20
9
/ 20
10
/ 20
11
/ 20
12
/ 20
13
/ 20
14
/ 20
15
/ 20
16
/ 20
17
/ 20
18
/ 20
19
/ 20
20
/ 20
More Related Content
PDF
淺談編譯器最佳化技術
by
Kito Cheng
PDF
initramfsについて
by
Kazuhiro Nishiyama
PDF
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
by
Takeo Imai
PDF
EnrootとPyxisで快適コンテナ生活
by
Kuninobu SaSaki
PDF
レシピの作り方入門
by
Nobuhiro Iwamatsu
PDF
Rpn and forth 超入門
by
Yoshitaka Seo
PDF
中3女子でもわかる constexpr
by
Genya Murakami
ODP
tcpdumpとtcpreplayとtcprewriteと他。
by
(^-^) togakushi
淺談編譯器最佳化技術
by
Kito Cheng
initramfsについて
by
Kazuhiro Nishiyama
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
by
Takeo Imai
EnrootとPyxisで快適コンテナ生活
by
Kuninobu SaSaki
レシピの作り方入門
by
Nobuhiro Iwamatsu
Rpn and forth 超入門
by
Yoshitaka Seo
中3女子でもわかる constexpr
by
Genya Murakami
tcpdumpとtcpreplayとtcprewriteと他。
by
(^-^) togakushi
What's hot
PDF
PHP の GC の話
by
y-uti
PPTX
C# コンパイラーの書き換え作業の話
by
信之 岩永
PDF
개발을잘하고싶어요-네이버랩스 송기선님
by
NAVER D2
PPTX
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
by
なべ
PDF
並列対決 Elixir × Go × C# x Scala , Node.js
by
Yoshiiro Ueno
PDF
traitを使って楽したい話
by
infinite_loop
PDF
Learned from KIND
by
HungWei Chiu
PDF
テスト駆動開発のはじめ方
by
Shuji Watanabe
PDF
C#でもメタプログラミングがしたい!!
by
TATSUYA HAYAMIZU
PDF
C/C++プログラマのための開発ツール
by
MITSUNARI Shigeo
PPTX
C#や.NET Frameworkがやっていること
by
信之 岩永
PDF
Nginxを使ったオレオレCDNの構築
by
ichikaway
PDF
月刊NDEF 2013年2月号(臨時号)
by
Hirokuma Ueno
PDF
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
PDF
MySQLの文字コード事情 2017春版
by
Masahiro Tomita
PDF
12 分くらいで知るLuaVM
by
Yuki Tamura
PDF
今日からできる!簡単 .NET 高速化 Tips
by
Takaaki Suzuki
PPTX
インターネッツの繋がるしくみ(DNS編) #sa_study
by
Shinichiro Yoshida
PPTX
Wireshark入門(4)
by
彰 村地
PPTX
C++のビルド高速化について
by
AimingStudy
PHP の GC の話
by
y-uti
C# コンパイラーの書き換え作業の話
by
信之 岩永
개발을잘하고싶어요-네이버랩스 송기선님
by
NAVER D2
Reladomoを使ったトランザクション履歴管理をプロダクトに適用した際のメリット/デメリット/課題など
by
なべ
並列対決 Elixir × Go × C# x Scala , Node.js
by
Yoshiiro Ueno
traitを使って楽したい話
by
infinite_loop
Learned from KIND
by
HungWei Chiu
テスト駆動開発のはじめ方
by
Shuji Watanabe
C#でもメタプログラミングがしたい!!
by
TATSUYA HAYAMIZU
C/C++プログラマのための開発ツール
by
MITSUNARI Shigeo
C#や.NET Frameworkがやっていること
by
信之 岩永
Nginxを使ったオレオレCDNの構築
by
ichikaway
月刊NDEF 2013年2月号(臨時号)
by
Hirokuma Ueno
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
MySQLの文字コード事情 2017春版
by
Masahiro Tomita
12 分くらいで知るLuaVM
by
Yuki Tamura
今日からできる!簡単 .NET 高速化 Tips
by
Takaaki Suzuki
インターネッツの繋がるしくみ(DNS編) #sa_study
by
Shinichiro Yoshida
Wireshark入門(4)
by
彰 村地
C++のビルド高速化について
by
AimingStudy
Similar to Introduction to Initramfs - Initramfs-tools and Dracut
PDF
Infinite Debian - Platform for mass-producing system every second
by
Taisuke Yamada
PDF
Mincs 日本語版
by
Masami Hiramatsu
PDF
IaaSクラウドを支える基礎技術 演習編_v1_0
by
Etsuji Nakai
PPTX
無印Pentium debian install memo
by
Yukiyoshi Yoshimoto
PDF
MINCS – containers in the shell script
by
Masami Hiramatsu
PDF
20170124 linux basic_1
by
YUSUKE MORIZUMI
PPTX
Preseeding Debian
by
Emma Haruka Iwao
PDF
Ext4 filesystem(1)
by
Yoshihiro Yunomae
PDF
InfiniBand on Debian
by
Taisuke Yamada
PPTX
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
by
Preferred Networks
PDF
Btrfsの基礎 part1 機能編
by
fj_staoru_takeuchi
PDF
Kernel ext4
by
Kai Sasaki
PPTX
initとプロセス再起動
by
Takashi Takizawa
PPTX
2015年度の自宅NAS環境
by
Hiroaki Mizuguchi
PDF
ZFS on Linux @ZFS Day 2011.10
by
Kazuhisa Hara
PDF
バックアップに一番いいファイルシステムを頼む
by
Kenichiro MATOHARA
PDF
AndroidとSELinux
by
android sola
PDF
qemuのriscv64にDebianを入れてみた
by
Kazuhiro Nishiyama
PDF
LinuxでZFSを使ってみた
by
nvsofts
PDF
Android組み込み開発テキスト pandaboard es編
by
OESF Education
Infinite Debian - Platform for mass-producing system every second
by
Taisuke Yamada
Mincs 日本語版
by
Masami Hiramatsu
IaaSクラウドを支える基礎技術 演習編_v1_0
by
Etsuji Nakai
無印Pentium debian install memo
by
Yukiyoshi Yoshimoto
MINCS – containers in the shell script
by
Masami Hiramatsu
20170124 linux basic_1
by
YUSUKE MORIZUMI
Preseeding Debian
by
Emma Haruka Iwao
Ext4 filesystem(1)
by
Yoshihiro Yunomae
InfiniBand on Debian
by
Taisuke Yamada
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
by
Preferred Networks
Btrfsの基礎 part1 機能編
by
fj_staoru_takeuchi
Kernel ext4
by
Kai Sasaki
initとプロセス再起動
by
Takashi Takizawa
2015年度の自宅NAS環境
by
Hiroaki Mizuguchi
ZFS on Linux @ZFS Day 2011.10
by
Kazuhisa Hara
バックアップに一番いいファイルシステムを頼む
by
Kenichiro MATOHARA
AndroidとSELinux
by
android sola
qemuのriscv64にDebianを入れてみた
by
Kazuhiro Nishiyama
LinuxでZFSを使ってみた
by
nvsofts
Android組み込み開発テキスト pandaboard es編
by
OESF Education
More from Taisuke Yamada
PDF
ウェブパフォーマンス計測の落とし穴
by
Taisuke Yamada
PDF
DIY Akamai Globe in 50 Minutes
by
Taisuke Yamada
PDF
ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
by
Taisuke Yamada
PDF
Quick QUIC Technical Update (2017)
by
Taisuke Yamada
PDF
IoT Deep Dive - Be an IoT Developer for an Hour
by
Taisuke Yamada
PDF
Pythonではじめるソフトウェア無線
by
Taisuke Yamada
PDF
Getting Started with SDR in Python
by
Taisuke Yamada
PDF
VSCode Remoteでも画像コピペがしたいです!
by
Taisuke Yamada
PDF
Hacking Ruby with Python
by
Taisuke Yamada
PDF
Invitation to Kernel Parameter and Code Exploration
by
Taisuke Yamada
PDF
Charity Items from Debian JP Project
by
Taisuke Yamada
PDF
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
by
Taisuke Yamada
PDF
Hadoop book-2nd-ch3-update
by
Taisuke Yamada
PDF
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
by
Taisuke Yamada
PDF
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
by
Taisuke Yamada
PDF
201012 cacert-at-tokyodebian
by
Taisuke Yamada
PDF
Nilfs usage-report-and-comparison-at-tokyodebian
by
Taisuke Yamada
PDF
Casual Web-browsing with gPXE and SYSLINUX
by
Taisuke Yamada
PDF
Embed Shogiboard - my first mediawiki extension -
by
Taisuke Yamada
PDF
The Web That Wasn't - WikiBana #10 LT
by
Taisuke Yamada
ウェブパフォーマンス計測の落とし穴
by
Taisuke Yamada
DIY Akamai Globe in 50 Minutes
by
Taisuke Yamada
ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
by
Taisuke Yamada
Quick QUIC Technical Update (2017)
by
Taisuke Yamada
IoT Deep Dive - Be an IoT Developer for an Hour
by
Taisuke Yamada
Pythonではじめるソフトウェア無線
by
Taisuke Yamada
Getting Started with SDR in Python
by
Taisuke Yamada
VSCode Remoteでも画像コピペがしたいです!
by
Taisuke Yamada
Hacking Ruby with Python
by
Taisuke Yamada
Invitation to Kernel Parameter and Code Exploration
by
Taisuke Yamada
Charity Items from Debian JP Project
by
Taisuke Yamada
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
by
Taisuke Yamada
Hadoop book-2nd-ch3-update
by
Taisuke Yamada
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
by
Taisuke Yamada
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
by
Taisuke Yamada
201012 cacert-at-tokyodebian
by
Taisuke Yamada
Nilfs usage-report-and-comparison-at-tokyodebian
by
Taisuke Yamada
Casual Web-browsing with gPXE and SYSLINUX
by
Taisuke Yamada
Embed Shogiboard - my first mediawiki extension -
by
Taisuke Yamada
The Web That Wasn't - WikiBana #10 LT
by
Taisuke Yamada
Introduction to Initramfs - Initramfs-tools and Dracut
1.
initramfs: 仕組みとツール (initramfs-tools, dracut,
etc.) for TokyoDebian勉強会, 2011/4/16 @tyamadajp
2.
initramfsとは? ・Linuxが実システム起動前に 稼動させるpreboot環境 ・起動に必要(例:/のデバイス 認識)なドライバロード等をする ・とはいえ、普通のLinux環境なので 様々な事に活用可能(されている)
3.
initramfsとは?(具体的に) ・単にLinux環境をcpioで固めて、 gzip等で圧縮したもの ・この内容がramfs上に展開され、 中の/initが起動時に呼ばれる ・initの中身は色々 → Debianではシェル(busybox) スクリプト
→ 拡張が簡単! ※nashとかいう酷い物体を使う可哀想な 環境も世にはありました・・・
4.
典型的な/initの流れ 1./proc/cmdlineから引数を読む 2.LAN/disk等のデバイスを有効化 3.MD/LVM/cryptfsなどの論理構成を さらに積み上げる 4.root=...で指定のデバイスを マウント 5.そこが/になるようmount+chroot 6.最後にinit=...での指定を起動
5.
initramfsの中身 ・普通のLinux環境を、「cpio -o -H newc」で固めるだけ(圧縮は任意 ・が、普通に作ると巨大に・・・ →レスキュー系では40MB
gzipとか ・メモリ消費は一時の話だからOK。 でも、起動が遅くなるのはマズー →結局、busyboxやスクリプトで コンパクトにまとめる努力が必要
6.
initramfs-tools and dracut ・カスタマイズ等、「まっとうな」 initramfsを構築するツール ・イメージの生成処理と起動時の フック呼び出しを整理している →これがないと、手製initramfsに なって管理が面倒 →生成時に独自ツールを含めたり、 特殊なブート処理をさせられる ※最後はcpioするだけなので、initrd
builderは 他にも世にたくさんありますが、この2つはお勧め
7.
initramfs-tools ・Debianでの定番 =特徴= ・機能分解/拡張ポイントが豊富で 柔軟に高機能なinitramfsを生成 ・多様なブート環境を作れる。また、 update-initramfsと組み合わせて ほぼシステムを自動管理 例:カーネルを更新した→自動でu-i 例:mdadm/lvm/cryptsetup等を入れた →自動的にinitrdに組み込まれる
8.
活用1:レスキュー能力強化 ・kernel break=<stage> で各起動 段階のpreboot環境のshに抜ける
・<stage>=top/modules/premount/mount/ mountroot/bottom/init/... ・自由定義可能なので、探すならmaybe_breakでgrep ・この時、復旧用コマンドがあると 便利。netboot環境とセットが○ =方法= 入れたいコマンドをコピーする スクリプトをフックフォルダに入れる
9.
活用1:/etc/initramfs-tools/hook/ $ cat
cttyhack ①#!/bin/sh case "$1" in prereqs) echo ""; exit 0;; ② esac . /usr/share/initramfs-tools/hook-functions copy_exec /usr/local/bin/cttyhack /usr/bin copy_exec /usr/bin/setsid /usr/bin exit 0 ③ ④ →initramfs環境でjob control有効化
10.
活用2:起動処理の拡張 ・スクリプトを登録すると、主要な 起動ポイントで呼び出してくれる ・init-top→init-premount→(local|nfs)-top →(local|nfs)-premount→(local|nfs)-bottom
→init-bottom ・完全把握したい時は grep -r run_script =方法= /etc/initramfs-tools/scripts/*/に スクリプトを置くだけ
11.
活用2:起動処理の拡張(具体例) 例:scripts/init-bottom/rootaufs ・root deviceにtmpfsを重ねて rootfsをすり替える ・システムは同じように上がるが 書き込みは全部tmpfsに行く ・悪い予感がするアップグレードに ・ファイル一切無変更でDVD/USBに コピるだけで稼動 ※見てないけどたぶんDebianLiveと同じ
12.
rootaufs(1) #!/bin/sh case "$1" in prereqs)
exit 0;; esac . /scripts/functions for p in `cat /proc/cmdline`; do case "$p" in *=*) eval $p;; *) eval $p=1;; esac 2> /dev/null done test -n "$aufs" || exit 0 maybe_break aufs
13.
rootaufs(2) modprobe -q aufs
|| panic "[AUFS] Failed to..." mkdir -p /ro /rw /aufs rw_type=$(IFS=:; set -- $aufs; echo "$1") rw_opts=$(IFS=:; set -- $aufs; echo "$2") rw_path=$(IFS=:; set -- $aufs; shift 2; echo "$*") case "$rw_type" in nfs) nfsmount -o ${rw_opts:=rw} ${rw_path:=none} /rw || panic "[AUFS] Failed..." ;; *) mount -t $rw_type -o ${rw_opts:=rw} ${rw_path:=none} /rw || panic "[AUFS] Failed ..." ;; esac
14.
rootaufs(3) ## allocate space
for xino mkdir -p /rw/.aufs mount -t tmpfs xino /rw/.aufs ## unionize /aufs = /ro + /rw mount --move $rootmnt /ro mount -t aufs -o dirs=/rw:/ro=ro, xino=/rw/.aufs/.xino none /aufs || panic "..." ## switch to root-as-aufs mkdir -p /aufs/ro /aufs/rw mount --move /ro /aufs/ro mount --move /rw /aufs/rw mount --move /aufs $rootmnt ...
15.
イメージ作成時の処理内容/mkinitramfs 1.miniroot用の空フォルダを作る 2.$base/hooks/* を呼ぶ(中でコピーしたりする) ※$base={/usr/share,/etc} 以下同様 3.$base/{init,scripts,conf.d}
をコピー 4.$base/modules の指定モジュールをコピー 5.必須コマンドや基本モジュールセットをコピー 6.最後に cpio + ${COMPRESS:=gzip} で生成 他にもupdate-grub連携など生cpio+gzipにはない 細かい処理
16.
dracut - RedHatによるパク^H^H回答 ・RedHat系は従来イマイチだったが、 これで自分的には名誉挽回 ・ファイル名以外はi-tとほぼ同様 動作設定:/etc/dracut.conf イメージ生成: /usr/share/dracut/modules.d/*/ {check,install,installkernel} 起動時フック: 上のinstall*の中でスクリプト等を inst_*シェル関数で登録する
17.
dracut構成(続) ・/init →/usr/share/dracut/modules.d/99base/initに ・起動時ブレークポイント(rdbreak=*) →cmdline/pre-udev/pre-trigger/initqueue/ pre-mount/mount/pre-pivot ・起動時フック →emergency/cmdline/pre-udev/pre-trigger/ pre-mount/pre-pivot
18.
initramfs-tools vs dracut(1) ・同じ。でも初期状態が(Debian|Redhat)的 =比較(初期状態で)= 使い勝手:i-t
> dracut ・i-tはシステム側と管理者側のファイルを 自動集約するので分けて保持しやすい ・dracutは一箇所しか見ず、dracut.confでは 指定するだけなので勝手が落ちる ・i-tは起動時フックしたければ、スクリプト 書いてhooks/に置くだけ ・dracutはモジュールを登録して、その モジュールにスクリプトをコピーさせる
19.
initramfs-tools vs dracut(2) =比較= モジュール度の高さ:dracut
> i-t ・i-tはhooks/*とscripts/<stage>/*と分散し セットで管理しにくい ・dracutはmodules.d/<mod>/*に集中配置で、 関係ファイルの把握が楽 処理の読みやすさ:dracut>i-t ・i-tはupdate-grub連携などDebian的機能も 埋め込まれてるので、見通しが落ちる ・i-tの方が便利だが、単独の独自initramfs 開発ツールとしてはdracut?
20.
おまけ:initramfs TIPS ・initramfsはカーネルにも埋め込めるので、 initrd=非対応でも使える →埋込はarch依存のもある(ようだ)が、 see CONFIG_INITRAMFS_SOURCE →埋込initramfsにinitrd=がマージされる ・initramfsは複数ロードできる、上書き用 initramfsを0+の後に連結でOK →ローダによるがinitrd=foo,bar,bazなど ・これ絡みのLinuxの互換性維持の努力に涙 →initrd=<non-initramfs-image>の扱い →rootwait=やrootdelay=の扱い方とか
Download