どのバイナリpdate-initramfs initrdイメージ内の/ sbinディレクトリへのコピーを設定できますか?
/ etc/initramfs-toolsと/ usr/lib/initramfs-toolsの下を探していましたが、バイナリのリストがどこにも見つかりませんでした
# grep -ri sbin /etc/initramfs-tools
# grep -ri sbin /usr/lib/initramfs-tools
#
/usr/share/initramfs-tools/hooks
のエントリを使用する必要があります。これらのファイルは、update-initramfs
と入力すると実行されます。独自のフックスクリプトを作成するか、スクリプトを削除します。
別のフォルダは/etc/initramfs-tools/hook
です
man initramfs-tools
から
Hooks can be found in two places: /usr/share/initramfs-tools/hooks and
/etc/initramfs-tools/hooks. They are executed during generation of the
initramfs-image and are responsible for including all the necessary
components in the image itself. No guarantees are made as to the order
in which the different scripts are executed unless the prereqs are
setup in the script.
フックスクリプトはパッケージの一部であることに注意してください。 kmod
。パッケージは、/usr/share/initramfs-tools/hooks
にkmod
ファイルを作成します。
サンプルスクリプト
#!/bin/sh -e
# Copy the compatibility symlinks until initramfs-tools will be converted
# to use the kmod program.
if [ "$1" = "prereqs" ]; then exit 0; fi
. /usr/share/initramfs-tools/hook-functions
copy_exec /bin/kmod
cp -a /sbin/modprobe /sbin/rmmod $DESTDIR/sbin/
mkdir -p $DESTDIR/lib/modprobe.d/
if [ "$(echo /lib/modprobe.d/*)" != "/lib/modprobe.d/*" ]; then
cp -a /lib/modprobe.d/* $DESTDIR/lib/modprobe.d/
fi
ご覧のとおり、フックスクリプトは/lib/modprobe.d/
のすべてのファイルをinitramfs/lib/modprobe.d/
にコピーします
cp -a /lib/modprobe.d/* $DESTDIR/lib/modprobe.d/
およびmodprobe
からinitramfs/sbin
へ
cp -a /sbin/modprobe /sbin/rmmod $DESTDIR/sbin/
独自のinitrd.img
と1つのファイルfoo
cd
mkdir initrd
cd initrd
touch foo # an example file
find . | cpio -o -H newc > ../initrd.img
cd ..
gzip initrd.img
cp initrd.img.gz initrd.img
initrd.img
の内容を確認してください
cd
mkdir initrd_out
cd initrd_out
cpio -i < ../initrd.img
ls
を使用すると、1つのファイルが表示されます
% ls
foo