Этот скрипт инициализирует область подкачки на разделе. Код, отвечающий за определение сигнатуры, повторяется 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 |