summaryrefslogtreecommitdiffstats
path: root/client/shared/lib/os-probes/init/10filesystems
blob: f50e55ed18e1a44cf45d22acc4b20d29e7f58027 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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