Added patch to support resuming from encrypted swap. The patch was submitted to bug #152441.

git-svn-id: svn+ssh://svn.gentoo.org/var/svnroot/genkernel/trunk@457 67a159dc-881f-0410-a524-ba9dfbe2cb84
cleanup-cruft
Chris Gianelloni 18 years ago
parent 978f6cb361
commit 8edf1cba7d

@ -2,6 +2,11 @@
# Copyright 2006-2006 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
13 Nov 2006; Chris Gianelloni <wolf31o2@gentoo.org>
generic/initrd.scripts, generic/linuxrc:
Added patch to support resuming from encrypted swap. The patch was submitted
to bug #152441.
25 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
This is the 3.4.4 release.

@ -549,21 +549,60 @@ startVolumes() {
fi
}
startLUKS() {
if [ -n "${LUKS_ROOT}" ]
then
# Open a LUKS device
# $1 LUKS device
# $2 LUKS name
openLUKS() {
LUKS_DEVICE="$1"
LUKS_NAME="$2"
if [ -e /sbin/cryptsetup ]
then
if cryptsetup isLuks ${LUKS_ROOT}
while [ 1 ]
do
if [ "${LUKS_DEVICE}" = '' ]
then
# LUKS device could not be opened. Prompt user for device.
bad_msg "The LUKS ${LUKS_NAME} block device is not detected."
echo " Please specify a ${LUKS_NAME} LUKS device to open, "q" to skip, or "shell" for a shell..."
echo -n "LUKS ${LUKS_NAME}() :: "
read LUKS_DEVICE
continue
elif [ "${LUKS_DEVICE}" = 'shell' ]
then
good_msg "Opening LUKS device ${LUKS_ROOT}"
run_shell
cryptsetup luksOpen ${LUKS_ROOT} root
LUKS_DEVICE=''
continue
elif [ "${LUKS_DEVICE}" = 'q' ]
then
break
else
if cryptsetup isLuks ${LUKS_DEVICE}
then
good_msg "Opening LUKS device ${LUKS_DEVICE}"
cryptsetup luksOpen ${LUKS_DEVICE} ${LUKS_NAME}
if [ ! "$?" -eq '0' ]
then
bad_msg "Failed open LUKS device ${LUKS_ROOT}"
bad_msg "Failed open LUKS device ${LUKS_DEVICE}"
else
break
fi
else
bad_msg "The LUKS device ${LUKS_DEVICE} does not contain a LUKS header"
fi
fi
LUKS_DEVICE=''
done
else
bad_msg "The initrd does not support LUKS"
fi
}
startLUKS() {
if [ -n "${LUKS_ROOT}" ]
then
openLUKS "${LUKS_ROOT}" "root"
if [ -n "${REAL_ROOT}" ]
then
# Rescan volumes
@ -571,12 +610,11 @@ startLUKS() {
else
REAL_ROOT="/dev/mapper/root"
fi
else
bad_msg "The LUKS device ${LUKS_ROOT} does not contain a LUKS hearder"
fi
else
bad_msg "The initrd does not support LUKS"
fi
if [ -n "${LUKS_SWAP}" ]
then
openLUKS "${LUKS_SWAP}" "swap"
break
fi
}

@ -175,6 +175,9 @@ do
crypt_root\=*)
LUKS_ROOT=`parse_opt "${x}"`
;;
crypt_swap\=*)
LUKS_SWAP=`parse_opt "${x}"`
;;
esac
done
@ -226,7 +229,7 @@ setup_md_device
# Scan volumes
startVolumes
# Iinitialize LUKS root device
# Initialize LUKS root device
startLUKS
# Set up unionfs

Loading…
Cancel
Save