刚进行了一些谷歌搜索,看来普利茅斯妨碍了比赛。如果存在普利茅斯,则在启动时,cryptsetup会向普利茅斯询问密码,这意味着它没有使用passfifo。
最好的解决方法似乎是将以下脚本放入目录/usr/share/initramfs-tools/hooks/
中chmod +x
,然后将其放入目录中update-initramfs -u
。然后,您应该能够使用该unlock
命令(由下面的脚本创建)。
这取决于您使用ssh键登录。如果要使用密码,则需要SSHUSERPASS=<username>
输入/etc/initramfs-tools/initramfs.conf
#!/bin/sh
PREREQ="dropbear"
prereqs() {
echo "$PREREQ"
}
case "$1" 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
您可以在ubuntuforums上的这篇文章中阅读更多内容,这个启动板错误以及我从中切入大部分内容的德语文章。
dpkg -S /lib/cryptsetup/passfifo
吗?我在package.ubuntu.com上找不到包含该文件的Natty或Maverick的任何软件包。