Apenas fiz algumas pesquisas e parece que o plymouth fica no caminho. Se plymouth está lá, então na inicialização, o cryptsetup pedirá à plymouth a senha e isso significa que ele não está usando o passfifo.
A melhor solução parece ser colocar o script a seguir no diretório /usr/share/initramfs-tools/hooks/
. Depois de colocá-lo, você pode usar chmod +x
e, em seguida, update-initramfs -u
. Você deve então poder usar o comando unlock
(que é criado pelo script abaixo).
Isso depende de você usar uma chave ssh para fazer login. Se você quiser usar uma senha, então você precisa colocar SSHUSERPASS=<username>
em /etc/initramfs-tools/initramfs.conf
#!/bin/sh
PREREQ="dropbear"
prereqs() {
echo "$PREREQ"
}
case "" in
prereqs)
prereqs
exit 0
;;
esac
. "${CONFDIR}/initramfs.conf"
. /usr/share/initramfs-tools/hook-functions
if [ "${DROPBEAR}" != "n" ] && [ -r "/etc/crypttab" ] ; then
cat > "${DESTDIR}/bin/unlock" <<-EOF
#!/bin/sh
if PATH=/lib/unlock:/bin:/sbin /scripts/local-top/cryptroot
then
/sbin/pkill cryptroot
/sbin/pkill -f "plymouth ask-for-pass"
/sbin/pkill cryptsetup
exit 0
fi
exit 1
EOF
chmod 755 "${DESTDIR}/bin/unlock"
mkdir -p "${DESTDIR}/lib/unlock"
cat > "${DESTDIR}/lib/unlock/plymouth" <<-EOF
#!/bin/sh
[ "$1" == "--ping" ] && exit 1
/bin/plymouth "$@"
EOF
chmod 755 "${DESTDIR}/lib/unlock/plymouth"
# Enable password login
if [ -n "$SSHUSERPASS" ]
then
sed -n "s/^${SSHUSERPASS}:/root:/p" /etc/shadow > "${DESTDIR}/etc/shadow"
chmod 640 "${DESTDIR}/etc/shadow"
fi
fi
Você pode ler mais em esta postagem nos ubuntuforums , este bug da barra de lançamento e o post alemão eu peguei a maior parte disso .