Скрипт swaphalt.sh

Этот скрипт сначала проверяет сигнатуру области подкачки Linux, а затем восстанавливает на разделе файловую систему Windows.

(Основано на скрипте, приведенном в Swap-Space-HOWTO автора H. Peter Anvin)

 
#!/bin/sh 
# 
# swaphalt.sh   Этот файл вызывается из /etc/rc.d/init.d/halt           
#	       после того, как будут выключены учет ресурсов и подкачка
#
#               This file is executed through the /etc/rc.d/init.d/halt
#	       script after swapping and accounting has been turned off.
# 
# Автор:        Rahul U. Joshi        Перевод: Станислав Рогин
# 
 
# проверяем сигнатуру раздела подкачки и восстанавливаем таблицы данных Windows
 
loopcount=0 
 
# флаг, указывающий была ли восстановлена информация раздела подкачки Windows
# flag to indicate whether the swap info has been restored or not 
restored=0 
 
# проверяем сигнатуру до 3 раз (check for swap signature 3 times before giving up)
while [ $loopcount -lt 3 ] 
  do 
 
  if [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=10 skip=4086`" = 'SWAP-SPACE' ]; then 
    echo "Восстановление структуры раздела подкачки DOS/Windows ($loopcount-я попытка)"  
    echo "Restoring DOS/Windows swap info , iteration $loopcount)"  
    /bin/zcat /etc/winswap.gz  >  /dev/winswap 
    restored=1 
    break 
  else 
    loopcount=loopcount+1 
  fi 
 
  done 
 
if [ $restored -ne 1 ] ; then 
   echo "Сигнатура области подкачки не обнаружена после $loopcount попыток" 
   echo "Swap signature not found after $loopcount tries" 
   echo "Восстановление таблиц не произведено" 
   echo "Skipping restoring" 
fi