Submit Search
Upload
Introduction to Initramfs - Initramfs-tools and Dracut
•
3 likes
•
3,351 views
Taisuke Yamada
Follow
Introduction to initramfs, and related tools.
Read less
Read more
Technology
Report
Share
Report
Share
1 of 20
Download now
Download to read offline
Recommended
initramfsについて
initramfsについて
Kazuhiro Nishiyama
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
VyOSでMPLS
VyOSでMPLS
雄也 日下部
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Anne Nicolas
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!
Mr. Vengineer
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
wata2ki
x86とコンテキストスイッチ
x86とコンテキストスイッチ
Masami Ichikawa
Recommended
initramfsについて
initramfsについて
Kazuhiro Nishiyama
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
VyOSでMPLS
VyOSでMPLS
雄也 日下部
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Anne Nicolas
ARM Trusted FirmwareのBL31を単体で使う!
ARM Trusted FirmwareのBL31を単体で使う!
Mr. Vengineer
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
wata2ki
x86とコンテキストスイッチ
x86とコンテキストスイッチ
Masami Ichikawa
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
NTT DATA Technology & Innovation
VPP事始め
VPP事始め
npsg
TIME_WAITに関する話
TIME_WAITに関する話
Takanori Sejima
Linux Locking Mechanisms
Linux Locking Mechanisms
Kernel TLV
Ansible quickstart
Ansible quickstart
Hideki Saito
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
Launch the First Process in Linux System
Launch the First Process in Linux System
Jian-Hong Pan
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
5分で分かるgitのrefspec
5分で分かるgitのrefspec
ikdysfm
最近のたまおきの取り組み 〜OpenStack+αの実現に向けて〜 - OpenStack最新情報セミナー(2017年3月)
最近のたまおきの取り組み 〜OpenStack+αの実現に向けて〜 - OpenStack最新情報セミナー(2017年3月)
VirtualTech Japan Inc.
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
i_yudai
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
llvm入門
llvm入門
MITSUNARI Shigeo
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
Yasunori Goto
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
Takeru Nakazato
実は怖くないDevOps
実は怖くないDevOps
Masanori Ishigami
More Related Content
What's hot
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
NTT DATA Technology & Innovation
VPP事始め
VPP事始め
npsg
TIME_WAITに関する話
TIME_WAITに関する話
Takanori Sejima
Linux Locking Mechanisms
Linux Locking Mechanisms
Kernel TLV
Ansible quickstart
Ansible quickstart
Hideki Saito
Androidの新ビルドシステム
Androidの新ビルドシステム
l_b__
Launch the First Process in Linux System
Launch the First Process in Linux System
Jian-Hong Pan
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
5分で分かるgitのrefspec
5分で分かるgitのrefspec
ikdysfm
最近のたまおきの取り組み 〜OpenStack+αの実現に向けて〜 - OpenStack最新情報セミナー(2017年3月)
最近のたまおきの取り組み 〜OpenStack+αの実現に向けて〜 - OpenStack最新情報セミナー(2017年3月)
VirtualTech Japan Inc.
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
i_yudai
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
llvm入門
llvm入門
MITSUNARI Shigeo
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
Yasunori Goto
What's hot
(20)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
その Pod 突然落ちても大丈夫ですか!?(OCHaCafe5 #5 実験!カオスエンジニアリング 発表資料)
VPP事始め
VPP事始め
TIME_WAITに関する話
TIME_WAITに関する話
Linux Locking Mechanisms
Linux Locking Mechanisms
Ansible quickstart
Ansible quickstart
Androidの新ビルドシステム
Androidの新ビルドシステム
Launch the First Process in Linux System
Launch the First Process in Linux System
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
5分で分かるgitのrefspec
5分で分かるgitのrefspec
最近のたまおきの取り組み 〜OpenStack+αの実現に向けて〜 - OpenStack最新情報セミナー(2017年3月)
最近のたまおきの取り組み 〜OpenStack+αの実現に向けて〜 - OpenStack最新情報セミナー(2017年3月)
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
llvm入門
llvm入門
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
Similar to Introduction to Initramfs - Initramfs-tools and Dracut
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
Takeru Nakazato
実は怖くないDevOps
実は怖くないDevOps
Masanori Ishigami
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
Preferred Networks
zsh とわたし
zsh とわたし
Toshihiko Shimokawa
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
Midori Oge
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
Taisuke Yamada
Niigata.pm #1
Niigata.pm #1
hayajo Imai
Lxc cf201207-presen
Lxc cf201207-presen
Kouhei Maeda
スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
Nseg20120825
Nseg20120825
hiro345
What is Metasepi?
What is Metasepi?
Kiwamu Okabe
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
atk1234
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
inaz2
Mina 20130417
Mina 20130417
Naotoshi Seo
Hacking Vox and Plagger
Hacking Vox and Plagger
Tatsuhiko Miyagawa
Unix
Unix
Hiramatsu Ryosuke
What is chef
What is chef
Yukihiko SAWANOBORI
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
NPCA夏合宿 2014 講義資料
NPCA夏合宿 2014 講義資料
Hiromu Yakura
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto
Similar to Introduction to Initramfs - Initramfs-tools and Dracut
(20)
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
実は怖くないDevOps
実は怖くないDevOps
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
zsh とわたし
zsh とわたし
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
Niigata.pm #1
Niigata.pm #1
Lxc cf201207-presen
Lxc cf201207-presen
スタート低レイヤー #0
スタート低レイヤー #0
Nseg20120825
Nseg20120825
What is Metasepi?
What is Metasepi?
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
Mina 20130417
Mina 20130417
Hacking Vox and Plagger
Hacking Vox and Plagger
Unix
Unix
What is chef
What is chef
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
NPCA夏合宿 2014 講義資料
NPCA夏合宿 2014 講義資料
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
More from Taisuke Yamada
ウェブパフォーマンス計測の落とし穴
ウェブパフォーマンス計測の落とし穴
Taisuke Yamada
DIY Akamai Globe in 50 Minutes
DIY Akamai Globe in 50 Minutes
Taisuke Yamada
ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
Taisuke Yamada
Quick QUIC Technical Update (2017)
Quick QUIC Technical Update (2017)
Taisuke Yamada
IoT Deep Dive - Be an IoT Developer for an Hour
IoT Deep Dive - Be an IoT Developer for an Hour
Taisuke Yamada
Pythonではじめるソフトウェア無線
Pythonではじめるソフトウェア無線
Taisuke Yamada
Getting Started with SDR in Python
Getting Started with SDR in Python
Taisuke Yamada
VSCode Remoteでも画像コピペがしたいです!
VSCode Remoteでも画像コピペがしたいです!
Taisuke Yamada
InfiniBand on Debian
InfiniBand on Debian
Taisuke Yamada
Hacking Ruby with Python
Hacking Ruby with Python
Taisuke Yamada
Invitation to Kernel Parameter and Code Exploration
Invitation to Kernel Parameter and Code Exploration
Taisuke Yamada
Charity Items from Debian JP Project
Charity Items from Debian JP Project
Taisuke Yamada
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
Taisuke Yamada
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-update
Taisuke Yamada
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
Taisuke Yamada
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
Taisuke Yamada
201012 cacert-at-tokyodebian
201012 cacert-at-tokyodebian
Taisuke Yamada
Nilfs usage-report-and-comparison-at-tokyodebian
Nilfs usage-report-and-comparison-at-tokyodebian
Taisuke Yamada
Casual Web-browsing with gPXE and SYSLINUX
Casual Web-browsing with gPXE and SYSLINUX
Taisuke Yamada
Embed Shogiboard - my first mediawiki extension -
Embed Shogiboard - my first mediawiki extension -
Taisuke Yamada
More from Taisuke Yamada
(20)
ウェブパフォーマンス計測の落とし穴
ウェブパフォーマンス計測の落とし穴
DIY Akamai Globe in 50 Minutes
DIY Akamai Globe in 50 Minutes
ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
ウェブサイト最適化101 - 正しく測ろうあなたのサイト -
Quick QUIC Technical Update (2017)
Quick QUIC Technical Update (2017)
IoT Deep Dive - Be an IoT Developer for an Hour
IoT Deep Dive - Be an IoT Developer for an Hour
Pythonではじめるソフトウェア無線
Pythonではじめるソフトウェア無線
Getting Started with SDR in Python
Getting Started with SDR in Python
VSCode Remoteでも画像コピペがしたいです!
VSCode Remoteでも画像コピペがしたいです!
InfiniBand on Debian
InfiniBand on Debian
Hacking Ruby with Python
Hacking Ruby with Python
Invitation to Kernel Parameter and Code Exploration
Invitation to Kernel Parameter and Code Exploration
Charity Items from Debian JP Project
Charity Items from Debian JP Project
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-update
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
The CAcert Project - An Invitation to CAcert ATE in OSC/Tokyo 2011 (EN)
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
The CAcert Project - An Invitation to CAcert ATE at OSC/Tokyo 2011 (JP)
201012 cacert-at-tokyodebian
201012 cacert-at-tokyodebian
Nilfs usage-report-and-comparison-at-tokyodebian
Nilfs usage-report-and-comparison-at-tokyodebian
Casual Web-browsing with gPXE and SYSLINUX
Casual Web-browsing with gPXE and SYSLINUX
Embed Shogiboard - my first mediawiki extension -
Embed Shogiboard - my first mediawiki extension -
Recently uploaded
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Recently uploaded
(9)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
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 now