summaryrefslogtreecommitdiff
path: root/debian/initramfs-tools.preinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/initramfs-tools.preinst')
-rw-r--r--debian/initramfs-tools.preinst65
1 files changed, 65 insertions, 0 deletions
diff --git a/debian/initramfs-tools.preinst b/debian/initramfs-tools.preinst
new file mode 100644
index 0000000..758b504
--- /dev/null
+++ b/debian/initramfs-tools.preinst
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+set -e
+
+chrooted() {
+ # borrowed from udev's postinst
+ if [ "$(stat -c %d/%i /)" = "$(stat -Lc %d/%i /proc/1/root 2>/dev/null)" ]; then
+ # the devicenumber/inode pair of / is the same as that of
+ # /sbin/init's root, so we're *not* in a chroot and hence
+ # return false.
+ return 1
+ fi
+ return 0
+}
+
+case "$1" in
+ install)
+ 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 } ')
+ if [ -x /sbin/vol_id ]; then
+ UUID=$(/sbin/vol_id -u "$RESUME" || true)
+ elif [ -x /lib/udev/vol_id ]; then
+ UUID=$(/lib/udev/vol_id -u "$RESUME" || true)
+ fi
+ if [ -n "$UUID" ]; then
+ RESUME="UUID=$UUID"
+ fi
+ fi
+
+ # Inherit initrd-tools settings if possible.
+ if [ -e /etc/mkinitrd/mkinitrd.conf ]; then
+ . /etc/mkinitrd/mkinitrd.conf
+ fi
+ # write conf.d/resume if not in a chroot
+ if [ -n "${RESUME}" ] && ! chrooted; 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
+ ;;
+esac
+
+#DEBHELPER#