mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-19 02:41:00 +03:00
d53a6969c1
This produces a leaner image, doesn't fail if zdb doesn't exist, properly handles hostnameless systems, doesn't mention crypto modules for no reason, doesn't add useless empty executable in hopes an eight-year-old PR is merged, uses i-t builtins for all copies Also optimize the checkbashisms filter to spawn one (or a few) awks instead of one per regular file and remove initramfs/hooks therefrom due to a command -v false positive Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #12017
51 lines
1.3 KiB
Bash
Executable File
51 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Add OpenZFS filesystem capabilities to an initrd, usually for a native ZFS root.
|
|
#
|
|
|
|
if [ "$1" = "prereqs" ]; then
|
|
echo "udev"
|
|
exit
|
|
fi
|
|
|
|
. /usr/share/initramfs-tools/hook-functions
|
|
|
|
for req in "@sbindir@/zpool" "@sbindir@/zfs" "@mounthelperdir@/mount.zfs"; do
|
|
copy_exec "$req" || {
|
|
echo "$req not available!" >&2
|
|
exit 2
|
|
}
|
|
done
|
|
|
|
copy_exec "@sbindir@/zdb"
|
|
copy_exec "@udevdir@/vdev_id"
|
|
copy_exec "@udevdir@/zvol_id"
|
|
if command -v systemd-ask-password > /dev/null; then
|
|
copy_exec "$(command -v systemd-ask-password)"
|
|
fi
|
|
|
|
# We use pthreads, but i-t from buster doesn't automatically
|
|
# copy this indirect dependency: this can be removed when buster finally dies.
|
|
for libgcc in $(find /lib/ -type f -name libgcc_s.so.[1-9]); do
|
|
copy_exec "$libgcc"
|
|
done
|
|
|
|
copy_file config "/etc/hostid"
|
|
copy_file cache "@sysconfdir@/zfs/zpool.cache"
|
|
copy_file config "@initconfdir@/zfs"
|
|
copy_file config "@sysconfdir@/zfs/zfs-functions"
|
|
copy_file config "@sysconfdir@/zfs/vdev_id.conf"
|
|
copy_file rule "@udevruledir@/60-zvol.rules"
|
|
copy_file rule "@udevruledir@/69-vdev.rules"
|
|
|
|
manual_add_modules zfs
|
|
|
|
if [ -f "/etc/hostname" ]; then
|
|
copy_file config "/etc/hostname"
|
|
else
|
|
hostname="$(mktemp -t hostname.XXXXXXXXXX)"
|
|
hostname > "$hostname"
|
|
copy_file config "$hostname" "/etc/hostname"
|
|
rm -f "$hostname"
|
|
fi
|