Ubuntuはカーネルを起動したあと,
Initramfsの役割
Ubuntuはさまざまなディスクデバイスにルートファイルシステムをインストールし,
しかしながらこのドライバをすべてカーネルに組み込んでしまうと,
そこで出てくるのが
Ubuntuに限らずほとんどのLinuxディストリビューションでは,
「Initramfs」
- 注1)
- 以前は
「Initrd」 という形式も使われていました。フォーマットが異なるだけで, 役割は同じです。
ディスクの障害などによりルートファイルシステムをマウントできなくなったとき,
Initramfsを再構築する
Initramfsはファイルシステムをcpio形式でアーカイブしたうえで,
- 注2)
- Ubuntuではgzipを使っていますが,
xzやbzip2などもサポートしています。
$ mkdir /tmp/initramfs && cd $_ $ zcat /boot/initrd.img-`uname -r` | cpio -id 111416 ブロック $ ls bin conf etc init lib lib64 run sbin scripts
2020年10月追記
2017年の後半あたりから,
もし17.unmkinitramfs
コマンドを使用してください。
$ unmkinitramfs /boot/initrd.img-`uname -r` .
最後の.
」
ちなみにファイルリストを確認したいだけであれば,
$ lsinitramfs /boot/initrd.img-`uname -r`
展開したファイルに変更を加えたあと,
$ cd /tmp/initramfs $ find . | cpio -R 0:0 -o -H newc | gzip > initrd.img
あとはブートローダーにこのInitramfsを使うように設定すれば,
カーネルアップデート時のInitramfsの再構築
この
$ dpkg -S /boot/initrd.img-`uname -r` dpkg-query: パターン /boot/initrd.img-3.19.0-23-generic に一致するパスが見つかりません
実はこのファイルは,
またカーネルパッケージが提供するカーネルモジュール以外にも,
update-initramfs: Generating /boot/initrd.img-3.19.0-23-generic
これを実現するため,