#!/bin/sh -e #event-driven initramfs hook for mountall PREREQ="" #Output prequisites prereqs() { echo "$PREREQ" } if [ -z "$INITRAMFS_EVENT_DRIVEN" ]; then exit 0; fi case $1 in prereqs) prereqs exit 0 ;; esac . /usr/share/initramfs-tools/hook-functions copy_exec /sbin/mountall copy_exec /sbin/mntctl mkdir -p ${DESTDIR}/lib/init/ mkdir -p ${DESTDIR}/etc/dbus-1/system.d/ cp /etc/dbus-1/system.d/Mountall.Server.conf ${DESTDIR}/etc/dbus-1/system.d/ # Following is needed for mountall authentication with dbus cp /etc/passwd ${DESTDIR}/etc/ if ! grep -q '^root:' ${DESTDIR}/etc/passwd 2>/dev/null; then echo 'root:x:0:0:root:/root:/bin/sh' >> ${DESTDIR}/etc/passwd fi # we use our own nsswitch - used for mountall authentication with dbus # this is our dummy nss stack - uses libnss_files.so echo 'passwd: files' >${DESTDIR}/etc/nsswitch.conf echo 'group: files' >>${DESTDIR}/etc/nsswitch.conf libnss_compat=`dpkg -L libc6 | grep libnss_compat.so.2` if [ -f $libnss_compat ]; then cp -uv $libnss_compat ${DESTDIR}/lib/libnss_compat.so.2 else echo "libnss_compat.so.2 not found" echo "warning: mountall would not be able to connect to upstart" exit 1 fi libnss_files=`dpkg -L libc6 | grep libnss_files.so.2` if [ -f $libnss_files ]; then cp -uv $libnss_files ${DESTDIR}/lib/libnss_files.so.2 else echo "libnss_files.so.2 not found" echo "warning: mountall would not be able to connect to upstart" exit 1 fi libuuid=`dpkg -L libuuid1 | grep "libuuid.so.1$"` if [ -f $libuuid ]; then cp -uv $libuuid ${DESTDIR}/lib/libuuid.so.1 else echo "libuuid.so.1 not found" echo "warning: root device may not be discovered if uuid is used in fstab" exit 1 fi cp /etc/blkid.conf ${DESTDIR}/etc/