Où puis-je configurer quels fichiers binaires pdate-initramfs est copié dans le répertoire / sbin à l'intérieur de l'image initrd?
J'ai cherché dans/etc/initramfs-tools et/usr/lib/initramfs-tools mais je n'ai trouvé la liste des fichiers binaires nulle part.
# grep -ri sbin /etc/initramfs-tools
# grep -ri sbin /usr/lib/initramfs-tools
#
Vous devez utiliser les entrées dans /usr/share/initramfs-tools/hooks
. Ces fichiers sont exécutés lorsque vous tapez update-initramfs
. Créez votre propre script de hook ou supprimez des scripts.
Un autre dossier est /etc/initramfs-tools/hook
De 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.
Remarque: les scripts de raccordement font partie des packages, par exemple. kmod
. Le paquet crée le fichier kmod
dans /usr/share/initramfs-tools/hooks
.
exemple de script
#!/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
Comme vous pouvez le constater, le script de raccordement copie tous les fichiers de /lib/modprobe.d/
dans initramfs/lib/modprobe.d/
cp -a /lib/modprobe.d/* $DESTDIR/lib/modprobe.d/
et modprobe
dans initramfs/sbin
cp -a /sbin/modprobe /sbin/rmmod $DESTDIR/sbin/
Votre propre initrd.img
avec un fichier 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
Vérifiez le contenu de votre initrd.img
cd
mkdir initrd_out
cd initrd_out
cpio -i < ../initrd.img
Et avec ls
vous devriez voir un fichier
% ls
foo