zfs/debian: add packaging files
based on Debian's packaging work, but simplified: - no DKMS - no dracut - no udebs and remove old patches which were based on top of Debian's packaging. Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com> Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com> Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
for x in $(cat /proc/cmdline)
|
||||
do
|
||||
case $x in
|
||||
root=ZFS=*)
|
||||
BOOT=zfs
|
||||
;;
|
||||
esac
|
||||
done
|
||||
@@ -0,0 +1,67 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Add udev rules for ZoL to the initrd.
|
||||
#
|
||||
|
||||
PREREQ="udev"
|
||||
PREREQ_UDEV_RULES="60-zvol.rules 69-vdev.rules"
|
||||
COPY_EXEC_LIST="/lib/udev/zvol_id /lib/udev/vdev_id"
|
||||
|
||||
# Generic result code.
|
||||
RC=0
|
||||
|
||||
case $1 in
|
||||
prereqs)
|
||||
echo "$PREREQ"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
for ii in $COPY_EXEC_LIST
|
||||
do
|
||||
if [ ! -x "$ii" ]
|
||||
then
|
||||
echo "Error: $ii is not executable."
|
||||
RC=2
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$RC" -ne 0 ]
|
||||
then
|
||||
exit "$RC"
|
||||
fi
|
||||
|
||||
. /usr/share/initramfs-tools/hook-functions
|
||||
|
||||
mkdir -p "$DESTDIR/lib/udev/rules.d/"
|
||||
for ii in $PREREQ_UDEV_RULES
|
||||
do
|
||||
if [ -e "/etc/udev/rules.d/$ii" ]
|
||||
then
|
||||
cp -p "/etc/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/"
|
||||
elif [ -e "/lib/udev/rules.d/$ii" ]
|
||||
then
|
||||
cp -p "/lib/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/"
|
||||
else
|
||||
echo "Error: Missing udev rule: $ii"
|
||||
echo " This file must be in the /etc/udev/rules.d or /lib/udev/rules.d directory."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
for ii in $COPY_EXEC_LIST
|
||||
do
|
||||
copy_exec "$ii"
|
||||
done
|
||||
|
||||
if [ -f '/etc/default/zfs' -a -r '/etc/default/zfs' ]
|
||||
then
|
||||
mkdir -p "$DESTDIR/etc/default"
|
||||
cp -a '/etc/default/zfs' "$DESTDIR/etc/default/"
|
||||
fi
|
||||
|
||||
if [ -d '/etc/zfs' -a -r '/etc/zfs' ]
|
||||
then
|
||||
mkdir -p "$DESTDIR/etc"
|
||||
cp -a '/etc/zfs' "$DESTDIR/etc/"
|
||||
fi
|
||||
@@ -0,0 +1,18 @@
|
||||
## Allow read-only ZoL commands to be called through sudo
|
||||
## without a password. Remove the first '#' column to enable.
|
||||
##
|
||||
## CAUTION: Any syntax error introduced here will break sudo.
|
||||
##
|
||||
## Cmnd alias specification
|
||||
#Cmnd_Alias C_ZFS = \
|
||||
# /sbin/zfs "", /sbin/zfs help *, \
|
||||
# /sbin/zfs get, /sbin/zfs get *, \
|
||||
# /sbin/zfs list, /sbin/zfs list *, \
|
||||
# /sbin/zpool "", /sbin/zpool help *, \
|
||||
# /sbin/zpool iostat, /sbin/zpool iostat *, \
|
||||
# /sbin/zpool list, /sbin/zpool list *, \
|
||||
# /sbin/zpool status, /sbin/zpool status *, \
|
||||
# /sbin/zpool upgrade, /sbin/zpool upgrade -v
|
||||
#
|
||||
## allow any user to use basic read-only ZFS commands
|
||||
#ALL ALL = (root) NOPASSWD: C_ZFS
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
# Sub-test to exclude ZVOLs
|
||||
set -e
|
||||
partition="$1"
|
||||
|
||||
. /usr/share/os-prober/common.sh
|
||||
|
||||
if [ "$(stat -L -c %t "$partition")" = "e6" ] ; then
|
||||
debug "$1 is a ZVOL; skipping"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# No ZVOLs found
|
||||
exit 1
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh -eu
|
||||
|
||||
# Scrub all healthy pools.
|
||||
zpool list -H -o health,name 2>&1 | \
|
||||
awk 'BEGIN {FS="\t"} {if ($1 ~ /^ONLINE/) print $2}' | \
|
||||
while read pool
|
||||
do
|
||||
zpool scrub "$pool"
|
||||
done
|
||||
Reference in New Issue
Block a user