目次

dracut

主にRedHat系のディストリビューションで採用されているinitrd/initramfsの作成・編集のツール
普通に使う分には滅多に触らない。

initrd/initramfsの編集

initd/initramfsを編集したい時は、設定ファイルを編集することで実現する

  1. /etc/dracut.conf
  2. /etc/dracut.conf.d/○○○○.conf

基本的には/etc/dracut.confだけで良い。
/etc/dracut.conf.d/○○○○.confについては、ファイルが存在しないので、必要に応じて作成する

設定ファイルの内容を変更したら、一度depmodした上で、initrd/initramfsを再作成する

# depmod `uname -r`
# dracut -f /boot/initramfs-`uname -r`.img.new `uname -r`

↑これで現在のカーネルバージョンに合わせたinitrd/initramfsが作成される。
ちなみにdepmodし忘れるとファイルの内容が更新されなかったりする。

展開したい

少数派ではあろうが、作成したinitramfsを展開して中身が見たい人もいよう。
以前であれば、gzipで展開したものをcpioコマンドに流し込めば展開できたが、dracutで作成すると、そうは行かなくなる。
dracutのツールにskipcpioというものがあり、これを使うことで展開できるようになる。

従来

# gzip -dc /boot/initramfs-`uname -r`.img | cpio -i

dracutの場合

# /usr/lib/dracut/skipcpio /boot/initramfs-`uname -r`.img | gzip -dc | cpio -i

※/etc/dracut.confなどにcompress=オプションを記述していない場合のみ。
記述してある場合はgzipの部分の変更が必要。

compress="xz"の場合

# /usr/lib/dracut/skipcpio /boot/initramfs-`uname -r`.img | xz -dc | cpio -i