준비물 : Customize 할 Ubuntu iso 파일,  우분투 설치된 PC, 키보드? ㅋ 

일단 제가 하는 방식은 iso 파일을 마운트 시키고 복사하고 해서 하는 방법으로 별로 어렵지 않습니다. 그리고 커널이나 기타 옵션은 건들지 않겠습니다.. 왜냐?? ㅋ 제가 그럴 실력이 없습ㄴ다.  죄송요~ ㅋ

자 이제 시작하겠습니다 ^^



첫번째로 툴을 설치를 해야 합니다.
이것은 아마도 squashfs 파일을 건들고 iso 이미지 파일로 변환 시켜주는 툴을 둘다 설치하는 것입니다.


sudo apt-get install squashfs-tools genisoimage
 
 
두번째, 커스터마이즈를 하기 위헤서는 원본 우분트 파일이 필요한데요~ 이때 원본 iso 파일을 마운트 시켜줍니다. ^^

sudo mkdir mnt     (원본 파일을 마운트시킬 폴더)
sudo mount -o loop ubuntu.iso       (sudo mount -o loop 마운트 시킬 파일) 

위에 처럼 하면 마운트가 된다 .. 확인 방법은 명령어를 까먹음 ㅠㅠ 죄송(cd mnt 해서 들어가면 씨디에 있는 파일이 마운트를 확인 가능함)

세번째,  iso 파일의 내용을 풀어준다

sudo mkdir extract    (iso 푼 내용을 넣을 폴더 생성)
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/extract 


 네번째, 파일 시스템 내용 풀고 시스템 내용 복사

mkdir squashfs (시스템 파일을 마운트 시킬 폴더)
sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs 

시스템 파일 복사
mkdir systemedit   (시스템 파일 복사할 폴더 생성)
sudo cp -a squashfs/* systemedit/ 

 
다섯번째, chroot를 하기전에 네트워크 설정과 호스트르 ㄹ복사 해주어야 함.(임시로 파일 시스템 구성)
(네트워크 연결을 위한 시스템 구성)
sudo cp /etc/resolv.conf systemedit/etc/
sudo cp /etc/hosts systemedit/etc/

임시 시스템 구성
sudo mount --bind /dev/ systemedit/dev
sudo chroot systemedit      (권한이 systemedit 로 쉘이 실행)

mount -t proc none /proc
mount -t sysfs none /sys

(GPG키 갱신)
export HOME=/root
export LC_ALL=C
 
 
여섯번째, 패키지 설치하기(평범하게 설치하심 됩니다 ... )

apt-get update
apt-get install <설치할 패키지>

칠곱번째, 정리!!! 커스텀하면서 했던 것들을 정리하는 것임.

apt-get clean

rm -rf /tmp/* ~/.bash_history

rm /etc/resolv.conf

umount /proc
umount /sys
exit
sudo umount systemedit/dev 

마지막!!!! 메니페스트 재구성 및 수정한 파일 시스템 압축 그리고!!! ISO 파일 화@@

메니페스트 재구성

chmod +w extract/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract/casper/filesystem.manifest
sudo cp extract/casper/filesystem.manifest extract/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract/casper/filesystem.manifest-desktop

수정한 파일 시스템을 압축
sudo mksquashfs systemedit extract/casper/filesystem.squashfs

기존의 MD5 삭제하고 새로 구성
sudo -s
rm extract/md5sum.txt
(cd extract && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
exit

ISO 파일 만들기

 
cd extract
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-custom.iso . 
 

 
생각보다 간단함... 
wget 받을 인터넷 파일 경로

 이 명령어를 친 곳에 파일이 있다..`
Java로 SSL 프로토콜을 위한 키를 생성하기 위해 keytool를 이용함. ㅋ

 여기서 Keytool 이란!!
#Keytool
키와 인증서를 관리하는 유틸로서, 개인키 공개키 및 자신이 권한을 부여한 인증서를 관리 할 수 있게 하며, 자료의 보장과 전자서명에 의한 인증을 관리할수 있게 한다. 여기서 생성된 키와 인증서는 keystore라는 곳에 저장을 하게 되며 파일로 구현이 되며, 비밀번호를 이용하여 키나 인증서를 보호한다. 
 
그럼 생성 방법은?? ㅋ

-개인키 생성
 
keytool -genkey -keyalg RSA -keystore private
 
 
 
위와 같은 화면이 나옵니다. ^^ 명령어에서-keyalg 는 RSA라는 알고리즘을 사용한다는 것!!

공개키 추출

keytool -export -file file -keystore privateServer

privateServer 라는 것에서 file 이라는 이름으로 추출한다는 의미 

privateServer(위에서 생성한 키)의 비밀번호를 입력을 하면 공개키가 추출이 된다. 이 키를 이용하면된다. ^

공개키를 publicServer라는 파일 에 저장

keytool -import -keystore publicServer -file key
 
이렇게 하면 keytool 를 이용하여 privatekey와 publickey 를 관리 할 수 있을 것이다! 

+ Recent posts