summaryrefslogtreecommitdiff
path: root/debian/initramfs-tools.preinst
blob: fc1fd0663f55fbcb8b5d8f4c27d7e704bff07b6a (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/sh

set -e

case "$1" in
	install)
	if [ -n "$2" ]; then
		mkdir -p /etc/initramfs-tools/conf.d

		# First time install.  Can we autodetect the RESUME partition?
		if [ -r /proc/swaps ]; then
			RESUME=$(tail -n $(($(wc -l /proc/swaps | awk ' { print $1 } ') - 1)) /proc/swaps | sort -rk3 | head -n 1 | awk ' { print $1 } ')
		fi

		# Inherit initrd-tools settings if possible.
		if [ -e /etc/mkinitrd/mkinitrd.conf ]; then
			 . /etc/mkinitrd/mkinitrd.conf
		fi
		if [ -e ${RESUME} ]; then
			echo "RESUME=${RESUME}" > /etc/initramfs-tools/conf.d/resume
		fi

		# Add initrd-tools modules, while trying to minimize prompting
		if [ -e /etc/mkinitrd/modules ]; then
			cp /etc/mkinitrd/modules /etc/initramfs-tools/
			sed -i \
			  -e 's/\/etc\/mkinitrd\/modules: Kernel modules to load for initrd./List of modules that you want to include in your initramfs./g' \
			  -e 's/mkinitrd/update-initramfs/g' \
			  -e '/# This file should/,/one per line\./d' \
			  -e 's/Comments begin with.*/Syntax:  module_name [args ...]/' \
			  -e 's/^#  ext2$/# raid1/' \
			  -e 's/^#  wd io=0x300$/# sd_mod/'
			  -e '/^ide-generic/d' \
			  -e '/^ide-disk/d' \
			  -e '/^ext2/d' \
			  -e '/^ext3/d' \
			  /etc/initramfs-tools/modules
		fi

		if [ -e /etc/mkinitrd/DSDT ]; then
			cp /etc/mkinitrd/DSDT /etc/initramfs-tools/DSDT.aml
		fi
	fi
	;;
	upgrade)
	if [ -n "$2" ] && dpkg --compare-versions "$2" lt "0.61"; then
		if [ -d /etc/initramfs-tools ]; then
			echo
			echo "Warning: /etc/initramfs-tools already exists."
			echo "         Please remove it for upgrade."
			echo
			exit 1
		fi
		if [ -d /etc/mkinitramfs ]; then
			mv /etc/mkinitramfs /etc/initramfs-tools
		fi
	fi
	;;
esac

#DEBHELPER#