Suspend2

Aus Cryptronic
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Der Ruhezustand auf einem gecrypteten System

Vorberteitungen

Als erstes braucht man die KernelSources die Softwaresuspend beinhalten.

emerge sys-kernel/suspend2-sources

I das neue Verzeichnis wechseln und ein make oldconfig ausführen.

Dann

make menuconfig

Kernel kompilieren

Unter "Power management options":

 Power management options (ACPI, APM)  --->
   [*] Power Management support
   Software Suspend
   Software Suspend 2  --->
 Power management options (ACPI, APM)  --->
   [*] Power Management support
   Software Suspend []
   Software Suspend 2  --->
     <*> Software Suspend 2
     Image Storage (you need at least one writer)
     <*> Swap Writer
     <*> Warn if possibility of filesystem corruption

Unter "Cryptographic options" </pre> Cryptographic --->

 <*> Cryptographic API
 <*> LZF compression algorithm</pre>

Auf jeden Fall alles statisch kompilieren und auf keinen Fall als Modul! Den Kernel nach /boot kopieren und grub anpassen:

die /boot/grub/menu.lst

title  Gentoo 2.6.x Suspend
root   (hd0,0)
kernel (hd0,0)/kernel-2.6.x-gentoo-suspend-rx root=/dev/ram0 rw init=/linuxrc resume2=swap:/dev/mapper/swap0
initrd (hd0,0)/initrd

nun muss man noch die initrd anpassen.

Meine initrd:

!/bin/sh
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
# Filter kernel messages on boot
dmesg -n 1
haltme() {
b=0
while [ "$b" = 0 ]
 do
 sleep 60
done
}
mount -t proc none /proc
CMDLINE=`cat /proc/cmdline`
## Create /dev/mapper/control nod for udev systems     # Only if you choosed
sh devmap_mknod                                        # to use devmap_mknod
#/bin/bash
#loadkeys
loadkeys /usr/share/keymaps/i386/qwertz/de.map.gz
echo ""
echo ""
echo ""
cat ./ascii
echo ""
# correct password while loop
echo "Please insert passphrase"
read key
c=0
while [ "$c" != 5 ]
 do
 echo $key | cryptsetup luksOpen /dev/sda2 swap0
 echo $key | cryptsetup luksOpen /dev/sda3 root
 echo > /proc/suspend2/do_resume
 umount -n /proc
 mount -t reiserfs /dev/mapper/root /root
 if [ "$?" = 0 ]; then
  echo "Swap Decrypted"
  echo "Root Decrypted"
  break
 else
  umount /root
  cryptsetup luksClose root
  cryptsetup luksClose swap
  let c=$c+1
  if [ "$c" = 5 ]; then
   echo "Illegal Trasspassing attempted"
   echo "Halting..."
   haltme
  fi
 fi
done
echo "Switching..."
cd /root
mkdir initrd
pivot_root . initrd
# start init and flush ram device
exec chroot . /bin/sh <<- EOF >dev/console 2>&1
umount initrd
rm -rf initrd
blockdev --flushbufs /dev/ram0
exec /sbin/init ${CMDLINE}
EOF

Ab in den neuen Kernel booten!

System Vorbereiten

als erstes benötigen wir das hibernate Script.

emerge hibernate-script

Die Konfigurationsdateien liegen unter /etc/hibernate

hibernate.conf

Die conf Datei bearbeiten:

ProcSetting extra_pages_allowance 5000
RestartServices alsasound hotplug net.eth1
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Tipps
Werkzeuge