준비물 : 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 . 
 

 

+ Recent posts