강좌 & 팁
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