diff options
Diffstat (limited to 'debian/initramfs-tools.preinst')
-rw-r--r-- | debian/initramfs-tools.preinst | 65 |
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# |