]> git.proxmox.com Git - mirror_zfs-debian.git/blame - debian/tree/zfsutils/usr/share/initramfs-tools/hooks/zdev
Add zdev rules to the initrd for all installations.
[mirror_zfs-debian.git] / debian / tree / zfsutils / usr / share / initramfs-tools / hooks / zdev
CommitLineData
a73631bc
PF
1#!/bin/sh
2#
3# Add udev rules for ZoL to the initrd.
4#
5
6PREREQ="udev"
7PREREQ_UDEV_RULES="60-zpool.rules 60-zvol.rules"
8COPY_EXEC_LIST="/lib/udev/zvol_id /lib/udev/zpool_id"
9
10# Generic result code.
11RC=0
12
13case $1 in
14prereqs)
15 echo "$PREREQ"
16 exit 0
17 ;;
18esac
19
20for ii in $COPY_EXEC_LIST
21do
22 if [ ! -x "$ii" ]
23 then
24 echo "Error: $ii is not executable."
25 RC=2
26 fi
27done
28
29if [ "$RC" -ne 0 ]
30then
31 exit "$RC"
32fi
33
34. /usr/share/initramfs-tools/hook-functions
35
36mkdir -p "$DESTDIR/etc/"
37mkdir -p "$DESTDIR/lib/udev/rules.d/"
38
39for ii in $PREREQ_UDEV_RULES
40do
41 if [ -e "/etc/udev/rules.d/$ii" ]
42 then
43 cp -p "/etc/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/"
44 elif [ -e "/lib/udev/rules.d/$ii" ]
45 then
46 cp -p "/lib/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/"
47 else
48 echo "Error: Missing udev rule: $ii"
49 echo " This file must be in the /etc/udev/rules.d or /lib/udev/rules.d directory."
50 exit 1
51 fi
52done
53
54for ii in $COPY_EXEC_LIST
55do
56 copy_exec "$ii"
57done
58
59if [ -e "/etc/zfs/" ]
60then
61 cp -a "/etc/zfs/" "$DESTDIR/etc/"
62fi