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 # Copyright 2006-2006 Gentoo Foundation; Distributed under the GPL v2
# $Header: $ # $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: 25 Oct 2006; Chris Gianelloni <wolf31o2@gentoo.org> genkernel:
This is the 3.4.4 release. This is the 3.4.4 release.

@ -549,21 +549,60 @@ startVolumes() {
fi fi
} }
startLUKS() { # Open a LUKS device
if [ -n "${LUKS_ROOT}" ] # $1 LUKS device
then # $2 LUKS name
openLUKS() {
LUKS_DEVICE="$1"
LUKS_NAME="$2"
if [ -e /sbin/cryptsetup ] if [ -e /sbin/cryptsetup ]
then 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 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' ] if [ ! "$?" -eq '0' ]
then 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
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}" ] if [ -n "${REAL_ROOT}" ]
then then
# Rescan volumes # Rescan volumes
@ -571,12 +610,11 @@ startLUKS() {
else else
REAL_ROOT="/dev/mapper/root" REAL_ROOT="/dev/mapper/root"
fi 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 fi
if [ -n "${LUKS_SWAP}" ]
then
openLUKS "${LUKS_SWAP}" "swap"
break
fi fi
} }

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

Loading…
Cancel
Save