Скрипт swapinit.sh

Этот скрипт инициализирует область подкачки на разделе. Код, отвечающий за определение сигнатуры, повторяется 6 раз, так как сигнатура иногда правильно определяется со второго или третьего раза. (Основано на скрипте, приведенном в Swap-Space-HOWTO автора H. Peter Anvin)

#!/bin/sh 
# 
# swapinit.sh - активизируем раздел подкачки (activate the swap partition) 
# 
# автор Rahul U. Joshi, перевод Станислав Рогин
# Проверяем и инициализируем область подкачки (Verify and initialize swap space)
# 
 
echo -n 'Проверка области подкачки (Verifying swap space...)' 
 
loopcount=0
 
# Флаг, указывающий, активизирован ли раздел
# flag to indicate whether the partition has been activated or not)
activated=0 
 
# Проверяем сигнатуру до 6 раз
# check for signatures 6 times before giving up
while [ $loopcount -lt 6 ] 
  do 
 
  if [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=10  skip=4086`" = 'SWAP-SPACE' ]; then 
    echo "Сигнатура Linux обнаружена с $loopcount раза" 
    echo "Активация раздела подкачки"  
    echo "Linux signature found, iteration $loopcount" 
    echo "Activating swap partitions"  
    swapon /dev/winswap 
    activated=1 
    break 
 
  elif [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=11 skip=43`" = 'SWAP SPACE ' ]; then    
    echo "Сигнатура DOS обнаружена с $loopcount раза" 
    echo "Подготовка раздела подкачки"   
    echo "DOS signature found, iteration $loopcount" 
    echo "Making swap partition"   
    mkswap /dev/winswap YYYYY 
    echo "Активация раздела подкачки"  
    echo "Activating swap partitions"  
    swapon /dev/winswap 
    activated=1 
    break 
 
  else    
   let loopcount=loopcount+1 
  fi   
 
  done 
 
if [ $activated -ne 1 ] ; then 
  echo "Сигнатура не найдена после $loopcount попыток" 
  echo "Разделы подкачки не активизированы" 
  echo "Swap signature not found after $loopcount tries" 
  echo "No swapping partitions activated" 
  exit 1 
fi