mirror of
git://slackware.nl/current.git
synced 2025-01-09 05:24:36 +01:00
123 lines
3.8 KiB
Text
123 lines
3.8 KiB
Text
|
#!/bin/sh
|
||
|
|
||
|
TMP=/var/log/setup/tmp
|
||
|
if [ ! -d $TMP ]; then
|
||
|
mkdir -p $TMP
|
||
|
fi
|
||
|
REDIR=/dev/tty4
|
||
|
NDIR=/dev/null
|
||
|
|
||
|
crunch() {
|
||
|
read STRING;
|
||
|
echo $STRING;
|
||
|
}
|
||
|
|
||
|
# get_part_size( dev ) - Return the size in K, M, G, T, or P of the named partition.
|
||
|
get_part_size() {
|
||
|
numfmt --to=iec $(blockdev --getsize64 $1)
|
||
|
}
|
||
|
|
||
|
rm -f $TMP/SeTswap $TMP/SeTswapskip $TMP/SeTuseswap $TMP/tmpscript
|
||
|
|
||
|
SWAPLIST="`probe -l 2> /dev/null | grep "Linux swap" | cut -f 1 -d ' ' | sort 2> $NDIR`"
|
||
|
|
||
|
if [ "$SWAPLIST" = "" ]; then
|
||
|
dialog --title "NO SWAP SPACE DETECTED" --yesno "You have not created \
|
||
|
a swap partition with Linux fdisk. \
|
||
|
Do you want to continue installing without one? " 6 60
|
||
|
if [ "$?" = "1" ]; then
|
||
|
dialog --title "ABORTING INSTALLATION" --msgbox "Create a swap partition with Linux fdisk, and then try this again." \
|
||
|
6 40
|
||
|
else
|
||
|
touch $TMP/SeTswapskip
|
||
|
fi
|
||
|
exit
|
||
|
else # there is at least one swap partition:
|
||
|
# Build the swap partition selection menu:
|
||
|
cat << EOF > $TMP/tmpscript
|
||
|
dialog --backtitle "Setting up swap partitions." \\
|
||
|
--title "SWAP SPACE DETECTED" --checklist \\
|
||
|
"Slackware Setup has detected one or more swap partitions \\
|
||
|
on your system. These partitions have been \\
|
||
|
preselected to be set up as swap space. If there are any \\
|
||
|
swap partitions that you \\
|
||
|
do not wish to use with this installation, please unselect \\
|
||
|
them with the up and down arrows and spacebar. If you wish \\
|
||
|
to use all of them (this is recommended), simply hit \\
|
||
|
the ENTER key." \\
|
||
|
0 0 0 \\
|
||
|
EOF
|
||
|
for swappartition in $SWAPLIST ; do
|
||
|
PARTSIZE=$(get_part_size $swappartition)
|
||
|
cat << EOF >> $TMP/tmpscript
|
||
|
"$swappartition" "Linux swap partition, ${PARTSIZE}" on \\
|
||
|
EOF
|
||
|
done
|
||
|
cat << EOF >> $TMP/tmpscript
|
||
|
2> $TMP/SeTuseswap
|
||
|
EOF
|
||
|
. $TMP/tmpscript
|
||
|
if [ ! $? = 0 ]; then
|
||
|
rm -f $TMP/tmpscript $TMP/SeTswap $TMP/SeTuseswap
|
||
|
touch $TMP/SeTswapskip
|
||
|
fi
|
||
|
|
||
|
if [ -r $TMP/SeTuseswap ]; then
|
||
|
# Remove extra quotes from SeTuseswap, if any:
|
||
|
cat $TMP/SeTuseswap | tr -d \" > $TMP/SeTfoo
|
||
|
mv $TMP/SeTfoo $TMP/SeTuseswap
|
||
|
|
||
|
# Were any swap partitions asked for?
|
||
|
if [ "$(cat $TMP/SeTuseswap)" = "" -a ! -r $TMP/SeTswapskip ]; then
|
||
|
rm -f $TMP/tmpscript $TMP/SeTswap $TMP/SeTuseswap
|
||
|
touch $TMP/SeTswapskip
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
if [ ! -r $TMP/SeTswapskip ]; then
|
||
|
dialog --backtitle "Setting up swap partitions." \
|
||
|
--title "CHECK SWAP PARTITIONS FOR BAD BLOCKS?" --defaultno --yesno \
|
||
|
"Slackware Setup will now prepare your system's swap space. \
|
||
|
When formatting swap partitions with mkswap you may also check \
|
||
|
them for bad blocks. This is not the default since nearly all \
|
||
|
modern hard drives check themselves for bad blocks anyway. \
|
||
|
Would you like to check for bad blocks while running mkswap?" \
|
||
|
10 60
|
||
|
if [ $? = 0 ]; then
|
||
|
CHECKBAD=yes
|
||
|
else
|
||
|
CHECKBAD=no
|
||
|
fi
|
||
|
|
||
|
# Run mkswap on swap partitions, unless they are already in use:
|
||
|
for swappartition in $(cat $TMP/SeTuseswap) ; do
|
||
|
if ! grep -w $swappartition /proc/swaps 1> $REDIR 2> $REDIR ; then
|
||
|
if [ "$CHECKBAD" = "no" ]; then
|
||
|
mkswap -v1 $swappartition 1> $REDIR 2> $REDIR
|
||
|
else
|
||
|
mkswap -c -v1 $swappartition 1> $REDIR 2> $REDIR
|
||
|
fi
|
||
|
echo "Activating swap partition ${swappartition}:"
|
||
|
echo "swapon ${swappartition}"
|
||
|
swapon $swappartition 1> $REDIR 2> $REDIR
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
# This is so people don't ask what that output was that flashed
|
||
|
# by on the screen. ;-)
|
||
|
sleep 1
|
||
|
|
||
|
# Add the swap partitions to the file that will go into /etc/fstab:
|
||
|
for swappartition in $(cat $TMP/SeTuseswap) ; do
|
||
|
printf "%-16s %-16s %-11s %-16s %-3s %s\n" "$swappartition" "swap" "swap" "defaults" "0" "0" >> $TMP/SeTswap
|
||
|
done
|
||
|
|
||
|
echo "Your swapspace has been configured. This information will" > $TMP/swapmsg
|
||
|
echo "be added to your /etc/fstab:" >> $TMP/swapmsg
|
||
|
echo >> $TMP/swapmsg
|
||
|
cat $TMP/SeTswap >> $TMP/swapmsg
|
||
|
dialog --title "SWAP SPACE CONFIGURED" --exit-label OK --textbox $TMP/swapmsg 10 72
|
||
|
rm $TMP/swapmsg
|
||
|
fi
|
||
|
fi
|