fdisk 를 이용해서 하드디스크의 partition 을 분할하려 할때,


이를 자동화 하고 다양한 용량의 하드 디스크에서 적용되도록 하기 위한


shell 프로그램을 해보겠습니다.


우선 fdisk 는 대화형 프로그램이므로 shell 에서 사용하기 까다롭습니다.


이럴경우에는 "<" 리다이렉션을 이용해 파일에 필요한 명령에를 적어 놓고 실행하면 됩니다.


# cat input

d

1

d

2

d

3

d

w

# fdisk /dev/sda < input


위와 같이 하면 fdisk 를 이용해 primary partition 을 4개를 모두 지워서 partition 정보를 모두 지우게 됩니다.



그렇다며 하드디스크의 현재 파티션을 모두 지우고,


2GB 의 swap 파티션과 나머지 용량만큼의 linux 파티션을 가지는 shell script 를 짜보면 다음과 같이 됩니다.


#!/bin/bash


DEV="/dev/sda"

SWAP_SECT="4096"

INPUT="/tmp/input"


# fdisk - delete all partitions

rm -f $INPUT

echo "d" >> $INPUT

echo "1" >> $INPUT

echo "d" >> $INPUT

echo "2" >> $INPUT

echo "d" >> $INPUT

echo "3" >> $INPUT

echo "d" >> $INPUT

echo "w" >> $INPUT

echo "# cmd : fdisk $DEV < $INPUT"

fdisk $DEV < $INPUT


# fdisk - make new partitions

rm -f $INPUT

echo "n" >> $INPUT

echo "p" >> $INPUT

echo "1" >> $INPUT

echo "" >> $INPUT

echo "+$SWAP_SECT" >> $INPUT

echo "n" >> $INPUT

echo "p" >> $INPUT

echo "2" >> $INPUT

echo "" >> $INPUT

echo "" >> $INPUT

echo "t" >> $INPUT

echo "1" >> $INPUT

echo "82" >> $INPUT

echo "w" >> $INPUT

echo "# cmd : fdisk $DEV < $INPUT"

fdisk $DEV < $INPUT