summaryrefslogtreecommitdiffstats
path: root/client/shared/lib/os-probes/init/10filesystems
diff options
context:
space:
mode:
Diffstat (limited to 'client/shared/lib/os-probes/init/10filesystems')
-rwxr-xr-xclient/shared/lib/os-probes/init/10filesystems39
1 files changed, 39 insertions, 0 deletions
diff --git a/client/shared/lib/os-probes/init/10filesystems b/client/shared/lib/os-probes/init/10filesystems
new file mode 100755
index 00000000..f50e55ed
--- /dev/null
+++ b/client/shared/lib/os-probes/init/10filesystems
@@ -0,0 +1,39 @@
+#!/bin/sh
+# Make sure filesystems are available.
+set +e # ignore errors from modprobe
+
+FILESYSTEMS='ext2 ext3 ext4 xfs jfs msdos vfat ntfs minix hfs hfsplus qnx4 ufs btrfs'
+# fuse is needed to make grub-mount work.
+FILESYSTEMS="$FILESYSTEMS fuse"
+# The Ubuntu kernel udebs put a number of filesystem modules in
+# fs-{core,secondary}-modules. It's fairly cheap to check for these too.
+FILESYSTEMS="$FILESYSTEMS fs-core fs-secondary"
+
+if [ ! -e /var/lib/os-prober/modules ]; then
+ # Check for anna-install to make it easier to use os-prober outside
+ # d-i.
+ if type anna-install >/dev/null 2>&1 && [ -d /lib/debian-installer ]; then
+ for fs in $FILESYSTEMS; do
+ ANNA_QUIET=1 DEBIAN_FRONTEND=none \
+ log-output -t os-prober \
+ anna-install "$fs-modules" || true
+ done
+ depmod -a >/dev/null 2>&1 || true
+ fi
+
+ for fs in $FILESYSTEMS; do
+ case "$fs" in
+ fs-*)
+ ;;
+ *)
+ modprobe "$fs" 2>/dev/null | logger -t os-prober
+ ;;
+ esac
+ done
+
+ # We only want to keep this state inside d-i, so this is as good a
+ # check as any.
+ if type anna-install >/dev/null 2>&1 && [ -d /lib/debian-installer ]; then
+ touch /var/lib/os-prober/modules
+ fi
+fi