diff --git a/Makefile b/Makefile index a3179304..825e86f7 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,9 @@ install: make-bcache probe-bcache bcache-super-show install -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/ install -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/ -install -T -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache + if [ -d $(DESTDIR)/lib/dracut/modules.d ]; \ + then install -D -m0755 dracut/module-setup.sh $(DESTDIR)/lib/dracut/modules.d/90bcache/module-setup.sh; \ + fi install -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/ # install -m0755 bcache-test $(DESTDIR)${PREFIX}/sbin/ diff --git a/dracut/module-setup.sh b/dracut/module-setup.sh new file mode 100644 index 00000000..5a067cb0 --- /dev/null +++ b/dracut/module-setup.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh + +# +# At some point (util-linux v2.24) blkid will be able to identify bcache +# but until every system has this version of util-linux, probe-bcache is +# provided as an alternative. +# + +check() { + if [[ $hostonly ]] || [[ $mount_needs ]] + then + for fs in "${host_fs_types[@]}"; do + [[ $fs = "bcache" ]] && return 0 + done + return 255 + fi + + return 0 +} + +depends() { + return 0 +} + +installkernel() { + instmods bcache +} + +install() { + inst_multiple ${udevdir}/probe-bcache ${udevdir}/bcache-register + inst_rules 69-bcache.rules +}