안녕하세요! 현이 입니다^^
와이즈기가 카페에도 있는 자료이지만 백업 포스팅입니다~ㅎ
오늘은 초보분들에겐 좀 큰거 들고 나왔습니다....
리눅스 중급 유져 이상 혹은 Linux를 사용하고 게신 분들은 이 방법을 통하여
돔 확장을 하셔도 되리라 생각이 들어서 그냥 공개하려구요
아참 이거 메모장으로 복사하지 마시구요 올려드리는 첨부파일 받으셔서 NAS에 올리셔야 합니다
사실 거장한건 아니구.... 일일이 손으로치기 귀찮아 반자동화 스크립트 입니다..ㅎ
우선 스크립트 내용입니다..ㅎ
domcopy.sh
#!/bin/sh
#* 디랙토리 선언 *#
wr="/home/domcopy/root-extender/"
wh="/home/domcopy/home-extender/"
#* 디랙토리 생성 및 내용 지우기 *#
mkdir -p /home/domcopy/
rm -rf /home/domcopy/tmp1
rm -rf ${wr}/
rm -rf ${wh}/
mkdir -p ${wr}
mkdir -p ${wh}
#* 스크립트 시작 *#
echo "DOM 영역 확장 프로그램 입니다. "
echo -n "사용하시는 분의 영문 닉네임을 적어주세요. : "
read name
echo -n "이미지화할 모델의 숫자만 입력해 주세요 : "
read model
#* fdisk -l 등으로 사전 조사도 해보시기 바랍니다... *#
echo "먼저 USB에 DOM을 삽입 후 몇번 디스크로 잡혔는지 체크해 주세요"i
ls --color=always /dev/sd*
echo -n " /dev/sd 뒤의 단어를 입력해 주세요 : "
read dl
echo "/dev/sd${dl} 가 DOM으로 지정되었습니다"
echo "확장할 USB를 삽입 후 몇번 디스크로 잡혔는지 체크해 주세요"
ls --color=always /dev/sd*
echo -n " /dev/sd 뒤의 단어를 입력해 주세요 : "
read ul
echo "/dev/sd${ul} 가 확장 USB으로 지정되었습니다"
echo "DOM to HDD 이미지화를 시작합니다."
DOM="/dev/sd${dl}"
USB="/dev/sd${ul}"
IMG="/home/domcopy/${name}-${model}.img"
#* DD로 우선 하드에 이미지를 복사합니다. *#
dd if=${DOM} of=${IMG}
echo "이미지화가 끝났습니다."
#* 해당 디바이스를 tar로 묶은 후 나중에 USB에 덮어서 풀 예정입니다. *#
echo "확장을 위해 파일 압축을 시작합니다."
mount ${DOM}2 ${wr}
sleep 1s
mount ${DOM}3 ${wh}
cd /home/domcopy/
tar zcf ${name}-root-extender.tar.gz root-extender
tar zcf ${name}-home-extender.tar.gz home-extender
echo "압축이 끝났습니다."
umount ${DOM}2
umount ${DOM}3
#* 사실 이 부분을 한방에 해낼 자신이 없어 돌려치기 한 이유도 있구오...*#
#* 나중을 위해 백업파일을 생성하기 위해 돌려친 이유도 있네요;;; *#
#* 또한 부트영역은 dd로 쓰거나 grub을 이용해 심는 방법 둘 중에 하나를 써야 하는데;... *#
#* chroot를 통해 해당 시스템에서 부트로더를 심으려다 뭔가좀 찜찜하여 dd 를 사용하였습니다. *#
echo "USB에 DOM 이미지를 풀겠습니다."
dd if=${IMG} of=${USB}
echo "확장서비스를 시작합니다."
#* 이부분이 중요합니다. 우선 system 영역과 3번째 파티션을 날리는데... 두번째 파티션의 시작 부분을 *#
#* 찾아서 우선 파일로 저장해 주는 부분입니다.. 꼼수죠... *#
parted ${USB} print | grep "boot" | awk '{print $3}' > /home/domcopy/tmp1
parted ${USB} rm 2
parted ${USB} rm 3
#* 아까 저장햇던 부분을 읽어와 첫 부분을 지정 후 해당 디바이스의 95% 까지 /로 잡습니다.
parted ${USB} mkpart p ext3 $(cat /home/domcopy/tmp1) 95%
#* 나머지 부분입니다.. *#
parted ${USB} mkpart p ext3 95% 100%
#* 여기서도 주의 할 점은 -L / 이 부분입니다... *#
#* 이유는 /etc/fstab 에 /dev/sda2 이런식이 아닌 LABEL=/ 으로 지정을 한 이유도 있구요.. *#
#* 쓸때없이 1 2 번 파티션 다 마운트 하여 문자를 치환하는 것 따위... 귀찮아서요;;;;; *#
mkfs -t ext3 -L / ${USB}2
mkfs -t ext3 ${USB}3
echo "파일 복원을 시작합니다."
mount ${USB}2 ${wr}
mount ${USB}3 ${wh}
cd /home/domcopy/
tar zxf ${name}-root-extender.tar.gz
tar zxf ${name}-home-extender.tar.gz
echo "마무리 작업을 시행합니다."
umount ${USB}2 ${USB}3
mv ${name}-* img_user/
rm -rf /home/domcopy/tmp1
rm -rf ${wr}/
rm -rf ${wh}/
네 이상입니다...
파일은.....
이거 받으시면 되구요.....
중간에 Ignore/Cencel 라는 문구가 나오면 무조건 I 를 입력하시구요
mkfs 에서 메세지가 나온다면 y/n 이 나온다면 y를 입력해 주세요 ㅎ 사실 -q 나 -F 옵션을 붙혀줘도 되긴 하는데....
그냥 어쩌피 완전자동화거 아니 반 자동화니깐요 ㅎ
위에껀 참고용이구요
직접 사용하시려면 첨부파일을 받아 사용하세요~ㅎ
스크립트나 프로그램은 항상 chmod 로 권한주셔야 하는거 잊지 마시구요
루트에서 실행하셔야 합니다~
'PC > Linux' 카테고리의 다른 글
[무작정 따라하기] 리눅스 시스템에서 공인아이피 알아내기 (0) | 2015.03.13 |
---|---|
[무작정 따라하기] Gentoo Linux PPTP 서버 셋팅하기 (0) | 2015.03.07 |
[보안취약점] Linux Ghost 취약점 패치방법 (0) | 2015.02.03 |
서버 셋팅시 유용한 팁 7가지 (0) | 2015.01.03 |
데비안 호스트네임 변경하기 (0) | 2015.01.03 |