Making swap function self contained.
[debian-live-boot/hramrach.git] / scripts / boot / 3020-swapon
blob82e998a87db275aeb090d0e3e8526e0818f16d13
1 #!/bin/sh
3 #set -e
5 Swap ()
7 for _PARAMETER in ${_CMDLINE}
8 do
9 case "${_PARAMETER}" in
10 live-boot.swap=*|swap=*)
11 LIVE_SWAP="true"
12 LIVE_SWAP_DEVICES="${_PARAMETER#*swap=}"
15 live-boot.swap|swap)
16 LIVE_SWAP="true"
18 esac
19 done
21 if [ "${LIVE_SWAP}" != "true" ]
22 then
23 return 0
26 LIVE_SWAP_DEVICES="${LIVE_SWAP_DEVICES:-/dev/sd* /dev/vd*}"
28 if [ -e /run ]
29 then
30 # wheezy
31 _FSTAB="/root/etc/fstab.d/swap"
32 else
33 # squeeze
34 _FSTAB="/root/etc/fstab"
37 for _DEVICE in $(echo ${LIVE_SWAP_DEVICES} | sed -e 's|,| |g')
39 if [ ! -b "${_DEVICE}" ]
40 then
41 continue
44 blkid -o udev -p ${_DEVICE%%[0-9]*} | grep -q "^ID_FS_USAGE=raid" && continue
46 _MAGIC="$(/bin/dd if=${_DEVICE} bs=4086 skip=1 count=1 2>/dev/null | /bin/dd bs=10 count=1 2>/dev/null)" || continue
48 case "${_MAGIC}" in
49 SWAPSPACE2|SWAP-SPACE)
50 _SWAP_DEVICES="${_SWAP_DEVICES} ${_DEVICE}"
52 esac
53 done
55 # Remove all auto swap entries
56 if grep -qs "swap swap" "${_FSTAB}"
57 then
58 grep -v "swap swap" "${_FSTAB}" > "${_FSTAB}".tmp
59 mv "${_FSTAB}".tmp "${_FSTAB}"
62 # Add new swap entries
63 for _DEVICE in ${_SWAP_DEVICES}
65 echo "${_DEVICE} swap swap defaults 0 0" >> "${_FSTAB}"
66 done