1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #!/bin/sh
- load_modules() {
- (sed "s,^[^#][^[:space:]]*,insmod /lib/modules/$(uname -r)/&.ko," $* | sh 2>&- || :)
- }
- echo -n "Kernel currently running: "
- uname -rsmo
- echo -n "Kernel parameters: "; cat /proc/cmdline
- for word in $(cat /proc/cmdline) ; do
- case $word in
- [a-z]*=*)
- eval "export $word"
- ;;
- esac
- done
- echo 0 > /proc/sys/kernel/printk
- load_modules /etc/modules
- for f in /etc/modules.d/*; do
- [[ -e $f ]] && load_modules /etc/modules.d/*
- break
- done
- mount /dev/sda1 /boot
- mkdir -p /var/run/openct
- openct-control init
- pcscd -f >/dev/null &
- sleep 2
- fail=0
- count=0
- while true; do
- pkcs15-crypt --decipher --input /boot/key --pkcs1 --raw >/tmp/skey
- cryptsetup -d /tmp/skey --batch-mode luksOpen $swap swapcrypt
- if [ $? = 0 ];then
- break
- fi
- if [ $count = 2 ];then
- echo "You are not allowed"
- sleep 3
- fail=1
- break
- fi
- count=$(($count+1))
- done
- if [ $fail -eq 1 ];then
- echo "Poweroff."
- p
- fi
- echo "Try to resume from hibernation"
- echo "254:0" > /sys/power/resume
- cryptsetup -d /tmp/skey --batch-mode luksOpen $root rootcrypt
- swapon /dev/mapper/swapcrypt
- mount /dev/mapper/rootcrypt /mnt
- pkill pcscd
- rm /tmp/skey
- umount /proc
- umount /sys
- umount /dev/pts
- umount /tmp
|