Скрипт для неинтерактивного разбиения диска

Автор: vlad_goreletsky
License: Public Domain

Понадобилось разбивать диск из скрипта без участия оператора. Для этой цели отлично подходит замечательная утилита sfdisk.

Такое разбиение:
На первом разделе - Win FAT 32 размером 14 Гб, далее если нужно - swap размером удвоенного размера оперативки и затем раздел для Linux, если не указан размер, то до конца диска.

Скрипт part.sh:

#!/bin/bash

MACHINEDEVICE=/dev/sda
IFSWAPON="Y"
WINSIZE=14000
# Если размер раздела для корня линукс не указан, он будет выделен до конца диска
ROOTSIZE=""

# Размер swap вычисляется как удвоенная оперативная память
memsize=$(cat /proc/meminfo | grep MemTotal | while read a size b; do echo $size; done)
SWAPSIZE=$(echo "scale=0; $memsize*2/1000"|bc -l)

if [ "$IFSWAPON" == "Y" ]; then
SWAPSTRING=",$SWAPSIZE,S"
else
$SWAPSTRING=""
fi

sfdisk -q -uM $MACHINEDEVICE &>/dev/null << EOF
,$WINSIZE,L
$SWAPSTRING
,$ROOTSIZE,L
EOF

# Переключаем ID раздела 1 в FAT 32
sfdisk -q --change-id $MACHINEDEVICE 1 c

echo ""

Этим скриптом также удобно разбивать флэшки, которые предназначены для мультизагрузки Live-операционок.

Назад