작성자: sio4 (최종수정: 23 Aug 2009 18:43)
데비안 GNU/리눅스를 기반으로 한 소프트웨어 배포를 위하여 커스텀 설치 CD를 제작하려고 한다.
환경 및 준비
사용된 환경은 Ubuntu 8.04 Server amd64 버전이다.
다음 패키지는 CD 커스터마이즈를 간편하게 할 수 있도록 해준다고 한다. 일단 깔자.
$ sudo apt-get install simple-cdd
vios@henry:/mnt/_debian$ sudo apt-get install simple-cdd
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
다음 꾸러미를 더 설치할 것입니다:
bc dctrl-tools debian-cd defoma fontconfig-config genisoimage ghostscript
ghostscript-x gs gsfonts hfsutils libarchive1 libcups2 libcupsimage2
libdb4.3 libfontconfig1 libfreetype6 libgpgme11 libgs8 libice6 libjpeg62
libnetpbm10 libpaper-utils libpaper1 libpng12-0 libpth20 libsm6 libtiff4
libxt6 lynx mtools netpbm psfontmgr reprepro syslinux tofrodos ttf-dejavu
ttf-dejavu-core ttf-dejavu-extra
제안하는 꾸러미:
defoma-doc x-ttcidfont-conf dfontmgr libft-perl wodim cdrkit-doc hpijs
hfsutils-tcltk cups-common libfreetype6-dev gpgsm floppyd gnupg-agent
inoticoming
다음 새 꾸러미를 설치할 것입니다:
bc dctrl-tools debian-cd defoma fontconfig-config genisoimage ghostscript
ghostscript-x gs gsfonts hfsutils libarchive1 libcups2 libcupsimage2
libdb4.3 libfontconfig1 libfreetype6 libgpgme11 libgs8 libice6 libjpeg62
libnetpbm10 libpaper-utils libpaper1 libpng12-0 libpth20 libsm6 libtiff4
libxt6 lynx mtools netpbm psfontmgr reprepro simple-cdd syslinux tofrodos
ttf-dejavu ttf-dejavu-core ttf-dejavu-extra
0개 업그레이드, 40개 새로 설치, 0개 지우기 및 68개 업그레이드 안 함.
8452k바이트/18.9M바이트 아카이브를 받아야 합니다.
이 작업 후 51.6M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]?
받기:1 http://kr.archive.ubuntu.com intrepid-updates/main libcups2 1.3.9-2ubuntu9.2 [173kB]
<...>
내려받기 8452k바이트, 소요시간 21s (402k바이트/초)
패키지에서 템플릿을 추출하는 중: 100%
패키지를 미리 설정하는 중입니다...
전에 선택하지 않은 libice6 패키지를 선택합니다.
(데이터베이스 읽는중 ...현재 25561개의 파일과 디렉토리가 설치되어 있습니다.)
libice6 패키지를 푸는 중입니다 (.../libice6_2%3a1.0.4-1_amd64.deb에서) ...
<...>
Processing triggers for man-db ...
libice6 (2:1.0.4-1) 설정하는 중입니다 ...
<...>
vios@henry:/mnt/_debian$
다음은 공간을 준비하고, 뭔가 명령을 내릴 차례. 그런데 얼마나 공간이 필요한걸까? 데비안 배포 DVD가 5장 쯤 되는데… 20GB가 넘는다는 얘기? 혹시 다 받아오나? Simple-CDD의 개념 자체가 "간단히 해보자"는 것이고 문서에도 "Partial Mirror"라고 표현하고 있으니 아마도 netinst 정도의 규모를 받아올 것으로 예상된다. 어쨌든, mirror와 생성될 image 등의 공간을 예상하고 장소를 마련.
실행해보기
1차 시도 : 무대포
일단 돌려보자. 옵션 확인한 후,
$ build-simple-cdd --dist lenny -g --locale ko_KR --debian-mirror http://ftp.daum.net/debian
vios@henry:/mnt/_debian$ build-simple-cdd --dist lenny -g --locale ko_KR --debian-mirror http://ftp.daum.net/debian
debconf: DbDriver "passwords" warning: could not open /var/cache/debconf/passwords.dat: Permission denied
Trying to run debootstrap for amd64 architecture
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Deleting target directory
2009-06-11 20:15:47 URL:http://ftp.daum.net/debian/README [1060/1060] -> "/mnt/_debian/tmp//mirror/README" [1]
Last-modified header missing -- time-stamps turned off.
2009-06-11 20:15:47 URL:http://ftp.daum.net/debian/doc/ [3811/3811] -> "/mnt/_debian/tmp//mirror/doc/index.html" [1]
http://ftp.daum.net/robots.txt:
2009-06-11 20:15:47 ERROR 404: Not Found.
Last-modified header missing -- time-stamps turned off.
2009-06-11 20:15:47 URL:http://ftp.daum.net/debian/doc/FAQ/ [2169/2169] -> "/mnt/_debian/tmp//mirror/doc/FAQ/index.html" [1]
Last-modified header missing -- time-stamps turned off.
2009-06-11 20:15:47 URL:http://ftp.daum.net/debian/doc/dedication/ [6247/6247] -> "/mnt/_debian/tmp//mirror/doc/dedication/index.html" [1]
2009-06-11 20:15:47 URL:http://ftp.daum.net/debian/doc/00-INDEX [995/995] -> "/mnt/_debian/tmp//mirror/doc/00-INDEX" [1]
2009-06-11 20:15:47 URL:http://ftp.daum.net/debian/doc/bug-log-access.txt [2337/2337] -> "/mnt/_debian/tmp//mirror/doc/bug-log-access.txt" [1]
2009-06-11 20:15:47 URL:http://ftp.daum.net/debian/doc/bug-log-mailserver.txt [5544/5544] -> "/mnt/_debian/tmp//mirror/doc/bug-log-mailserver.txt" [1]
2009-06-11 20:15:47 URL:http://ftp.daum.net/debian/doc/bug-mailserver-refcard.txt [2706/2706] -> "/mnt/_debian/tmp//mirror/doc/bug-mailserver-refcard.txt" [1]
2009-06-11 20:15:49 URL:http://ftp.daum.net/debian/doc/bug-maint-info.txt [19739/19739] -> "/mnt/_debian/tmp//mirror/doc/bug-maint-info.txt" [1]
2009-06-11 20:15:49 URL:http://ftp.daum.net/debian/doc/bug-maint-mailcontrol.txt [17393/17393] -> "/mnt/_debian/tmp//mirror/doc/bug-maint-mailcontrol.txt" [1]
2009-06-11 20:15:49 URL:http://ftp.daum.net/debian/doc/bug-reporting.txt [15580/15580] -> "/mnt/_debian/tmp//mirror/doc/bug-reporting.txt" [1]
2009-06-11 20:15:49 URL:http://ftp.daum.net/debian/doc/constitution.txt [30331/30331] -> "/mnt/_debian/tmp//mirror/doc/constitution.txt" [1]
2009-06-11 20:15:49 URL:http://ftp.daum.net/debian/doc/debian-manifesto [7038/7038] -> "/mnt/_debian/tmp//mirror/doc/debian-manifesto" [1]
2009-06-11 20:15:49 URL:http://ftp.daum.net/debian/doc/mailing-lists.txt [32447/32447] -> "/mnt/_debian/tmp//mirror/doc/mailing-lists.txt" [1]
2009-06-11 20:15:49 URL:http://ftp.daum.net/debian/doc/social-contract.txt [6766/6766] -> "/mnt/_debian/tmp//mirror/doc/social-contract.txt" [1]
2009-06-11 20:15:49 URL:http://ftp.daum.net/debian/doc/source-unpack.txt [1213/1213] -> "/mnt/_debian/tmp//mirror/doc/source-unpack.txt" [1]
...
...
2009-06-11 20:15:54 URL:http://ftp.daum.net/debian/dists/lenny/main/installer-amd64/current/images/cdrom/gtk/initrd.gz [12951627/12951627] -> "/mnt/_debian/tmp//mirror/dists/lenny/main/installer-amd64/current/images/cdrom/gtk/initrd.gz" [1]
2009-06-11 20:16:03 URL:http://ftp.daum.net/debian/dists/lenny/main/installer-amd64/current/images/cdrom/gtk/vmlinuz [1754672/1754672] -> "/mnt/_debian/tmp//mirror/dists/lenny/main/installer-amd64/current/images/cdrom/gtk/vmlinuz" [1]
FINISHED --2009-06-11 20:16:03--
Downloaded: 58 files, 22M in 0s (42184360 GB/s)
Created directory "/mnt/_debian/tmp//mirror/db"
Created directory "/mnt/_debian/tmp//mirror/lists"
aptmethod got 'http://ftp.daum.net/debian/dists/lenny/Release'
aptmethod got 'http://ftp.daum.net/debian/dists/lenny/Release'
aptmethod got 'http://ftp.daum.net/debian/dists/lenny/Release'
aptmethod got 'http://security.debian.org//dists/lenny/updates/Release'
aptmethod got 'http://ftp.daum.net/debian/dists/lenny/main/debian-installer/binary-amd64/Packages.gz'
aptmethod got 'http://security.debian.org//dists/lenny/updates/main/binary-amd64/Packages.gz'
aptmethod got 'http://ftp.daum.net/debian/dists/lenny/main/binary-amd64/Packages.gz'
aptmethod got 'http://ftp.daum.net/debian/dists/lenny/main/binary-amd64/Packages.gz'
Calculating packages to get...
processing updates for 'u|lenny|main|amd64'
reading '/mnt/_debian/tmp//mirror/lists/lenny_default-udebs_udeb_main_amd64'
processing updates for 'lenny|main|amd64'
reading '/mnt/_debian/tmp//mirror/lists/lenny_default_deb_main_amd64'
reading '/mnt/_debian/tmp//mirror/lists/lenny_default-base_deb_main_amd64'
reading '/mnt/_debian/tmp//mirror/lists/lenny_default-security_deb_main_amd64'
Created directory "/mnt/_debian/tmp//mirror/pool"
Created directory "/mnt/_debian/tmp//mirror/pool/main"
Created directory "/mnt/_debian/tmp//mirror/pool/main/l"
Created directory "/mnt/_debian/tmp//mirror/pool/main/l/linux-kernel-di-amd64-2.6"
Created directory "/mnt/_debian/tmp//mirror/pool/main/a"
Created directory "/mnt/_debian/tmp//mirror/pool/main/a/auto-install"
Created directory "/mnt/_debian/tmp//mirror/pool/main/a/anna"
Created directory "/mnt/_debian/tmp//mirror/pool/main/a/apt-setup"
<...>
Getting packages...
aptmethod got 'http://ftp.daum.net/debian/pool/main/l/linux-kernel-di-amd64-2.6/acpi-modules-2.6.26-1-amd64-di_1.53_amd64.udeb'
aptmethod got 'http://ftp.daum.net/debian/pool/main/l/linux-kernel-di-amd64-2.6/acpi-modules-2.6.26-2-amd64-di_1.53lenny1_amd64.udeb'
aptmethod got 'http://ftp.daum.net/debian/pool/main/a/auto-install/ai-choosers_1.2_all.udeb'
<...>
Shutting down aptmethods...
Installing (and possibly deleting) packages...
Exporting indices...
Files /mnt/_debian/tmp//mirror/conf/package-list and /mnt/_debian/tmp//mirror/conf/package-list.old differ
getting missing dependencies... attempt 11
Warning: As --nolistsdownload is given, index files are NOT checked.
Calculating packages to get...
processing updates for 'u|lenny|main|amd64'
reading '/mnt/_debian/tmp//mirror/lists/lenny_default-udebs_udeb_main_amd64'
processing updates for 'lenny|main|amd64'
reading '/mnt/_debian/tmp//mirror/lists/lenny_default_deb_main_amd64'
reading '/mnt/_debian/tmp//mirror/lists/lenny_default-base_deb_main_amd64'
reading '/mnt/_debian/tmp//mirror/lists/lenny_default-security_deb_main_amd64'
Getting packages...
aptmethod got 'http://ftp.daum.net/debian/pool/main/a/aspell/aspell_0.60.6-1_amd64.deb'
Shutting down aptmethods...
Installing (and possibly deleting) packages...
Exporting indices...
no new dependencies, finished in 12 attempts.
setting preseed file...
KERNEL_PARAMS: preseed/file=/cdrom/simple-cdd/default.preseed
setting default locale...
KERNEL_PARAMS: preseed/file=/cdrom/simple-cdd/default.preseed debian-installer/locale=ko_KR
Missing package file for arch alpha.
Missing package file for arch arm.
Missing package file for arch hppa.
Missing package file for arch hurd-i386.
Missing package file for arch i386.
Missing package file for arch ia64.
Missing package file for arch mips.
Missing package file for arch mipsel.
Missing package file for arch powerpc.
Missing package file for arch s390.
Missing package file for arch sparc.
simple-cdd: Running debian-cd makefile
Cleaning the build directory
if [ ! -e /mnt/_debian/tmp//cd-build/lenny/debootstrap/usr/lib/debootstrap ] ; then \
ln -sf share /mnt/_debian/tmp//cd-build/lenny/debootstrap/usr/lib ; \
fi
Generating a fake status file for apt-get and apt-cache...
:> /mnt/_debian/tmp//cd-build/apt//status
무시file: lenny Release.gpg
무시file: lenny/main Translation-ko
무시file: lenny/main/debian-installer Translation-ko
받기:1 file: lenny Release [1480B]
무시file: lenny/main Packages
무시file: lenny/main/debian-installer Packages
꾸러미 목록을 읽는 중입니다...
꾸러미 목록을 읽는 중입니다...
의존성 트리를 만드는 중입니다...
if [ ! -e /mnt/_debian/tmp//cd-build/lenny/debootstrap/usr/lib/debootstrap ] ; then \
ln -sf share /mnt/_debian/tmp//cd-build/lenny/debootstrap/usr/lib ; \
fi
Apt-get is updating its files ...
무시file: lenny Release.gpg
무시file: lenny/main Translation-ko
무시file: lenny/main/debian-installer Translation-ko
받기:1 file: lenny Release [1480B]
무시file: lenny/main Packages
무시file: lenny/main/debian-installer Packages
꾸러미 목록을 읽는 중입니다...
cc1: warning: command line option "-nostdinc++" is valid for C++/ObjC++ but not for C
cc1: warning: command line option "-nostdinc++" is valid for C++/ObjC++ but not for C
Generating the complete list of packages to be included in /mnt/_debian/tmp//cd-build/lenny/list...
cc1: warning: command line option "-nostdinc++" is valid for C++/ObjC++ but not for C
cc1: warning: command line option "-nostdinc++" is valid for C++/ObjC++ but not for C
Generating the complete list of packages to be removed ...
Running list2cds to sort packages for amd64:
Generating dependency tree with apt-cache depends...
Adding standard, required, important and base packages first
S/R/I/B packages take 0 bytes
Adding the rest of the requested packages
Now up to 115938984 bytes
Done: processed/sorted 405 packages, total size 115938984 bytes.
Starting to lay out packages into CD (650MiB CD) images: 332031 2K-blocks maximum per image
Starting new amd64 CD 1 at /mnt/_debian/tmp//cd-build/lenny/CD1
Adding the required directories
Generating the image label and volume id
Adding tools to CD1
Adding .disk/base_components
Adding .disk/cd_type
Adding udeb/base includes/excludes
ERROR: Unable to read UDEB_EXCLUDE file /mnt/_debian/tmp//debian-cd/data/lenny/amd64_netinst_udeb_exclude
Adding docs to CD1
Extracting FAQ on CD1
Adding installtools
ERROR: package installation-guide-amd64 not found.
Adding common docs on CD1
Adding Release files
Trying to add upgrade* directories
(Optionally) making the image bootable for amd64:
Running tools/boot/lenny/boot-amd64 1 /mnt/_debian/tmp//cd-build/lenny/CD1
Using ISOLINUX boot-disks image on CD1
mv: cannot stat `boot1/isolinux-amd64/isolinux.cfg.withgtk': No such file or directory
FAILED: error 1
Failed to start disc 1, error 256
make: *** [image-trees] Error 9
simple-cdd: extra files for simple-cdd
find: `/mnt/_debian/tmp//cd-build/lenny/CD1/pool': No such file or directory
ERROR: missing required packages from profile default: less
ERROR: missing required packages from profile default: simple-cdd-profiles
WARNING: missing optional packages from profile default: grub popularity-contest localization-config console-tools usbutils acpi acpid eject lvm2 mdadm cryptsetup reiserfsprogs jfsutils xfsprogs type-handling debootstrap busybox
vios@henry:/mnt/_debian$
<...>
mv: cannot stat `boot1/isolinux-amd64/isolinux.cfg.withgtk': No such file or directory
FAILED: error 1
Failed to start disc 1, error 256
make: *** [image-trees] Error 9
simple-cdd: extra files for simple-cdd
find: `/mnt/_debian/tmp//cd-build/lenny/CD1/pool': No such file or directory
ERROR: missing required packages from profile default: less
ERROR: missing required packages from profile default: simple-cdd-profiles
WARNING: missing optional packages from profile default: grub popularity-contest localization-config console-tools usbutils acpi acpid eject lvm2 mdadm cryptsetup reiserfsprogs jfsutils xfsprogs type-handling debootstrap busybox
vios@henry:/mnt/_debian$
어라? 이런… 오류가 나네?
한참을 더 시도해봤지만 같은 오류가 계속된다. 그런데 왜 진작 .withgtk 라는 포인트를 놓쳤던 것일까? 이거 Ubuntu Extension 아냐? (사실, 이 점을 놓쳤던 이유는 lenny의 설치를 한 번 시도해봤던 까닭이다. lenny에는 그래픽 설치 모드가 들어와 있었다.)
2차 시도: 데비안 안에서
가상머신에 lenny를 설치하고 그 안에서 simple-cdd를 실행해봤다. (물론 한참의 시간을 보낸 후이다.) 참고로, simple-cdd는 lenny에서 추가된 패키지이다.
$ build-simple-cdd --profiles my --dist lenny -g --locale ko_KR --debian-mirror http://ftp.daum.net/debian
sio4@debian:/mnt/scdd$ build-simple-cdd --dist lenny -g --locale ko_KR --debian-mirror http://ftp.daum.net/debian --profiles my
including configuration values for: /mnt/scdd/profiles/my.conf
debconf: DbDriver "passwords" warning: could not open /var/cache/debconf/passwords.dat: 허가 거부됨
Last-modified header missing -- time-stamps turned off.
2009-06-12 14:32:55 URL:http://ftp.daum.net/debian/doc/ [3811/3811] -> "/mnt/scdd/tmp//mirror/doc/index.html" [1]
http://ftp.daum.net/robots.txt:
2009-06-12 14:32:55 ERROR 404: Not Found.
Last-modified header missing -- time-stamps turned off.
2009-06-12 14:32:55 URL:http://ftp.daum.net/debian/doc/FAQ/ [2169/2169] -> "/mnt/scdd/tmp//mirror/doc/FAQ/index.html" [1]
Last-modified header missing -- time-stamps turned off.
2009-06-12 14:32:55 URL:http://ftp.daum.net/debian/doc/dedication/ [6247/6247] -> "/mnt/scdd/tmp//mirror/doc/dedication/index.html" [1]
Last-modified header missing -- time-stamps turned off.
2009-06-12 14:32:56 URL:http://ftp.daum.net/debian/tools/ [1748/1748] -> "/mnt/scdd/tmp//mirror/tools/index.html" [1]
FINISHED --2009-06-12 14:32:56--
Downloaded: 4 files, 14K in 0s (26030 GB/s)
aptmethod got 'http://ftp.daum.net/debian/dists/lenny/Release'
aptmethod got 'http://ftp.daum.net/debian/dists/lenny/Release'
aptmethod got 'http://ftp.daum.net/debian/dists/lenny/Release'
aptmethod got 'http://security.debian.org//dists/lenny/updates/Release'
Calculating packages to get...
processing updates for 'lenny|non-free|amd64'
reading '/mnt/scdd/tmp//mirror/lists/lenny_default_deb_non-free_amd64'
reading '/mnt/scdd/tmp//mirror/lists/lenny_default-base_deb_non-free_amd64'
reading '/mnt/scdd/tmp//mirror/lists/lenny_default-security_deb_non-free_amd64'
processing updates for 'u|lenny|main|amd64'
reading '/mnt/scdd/tmp//mirror/lists/lenny_default-udebs_udeb_main_amd64'
processing updates for 'lenny|main|amd64'
reading '/mnt/scdd/tmp//mirror/lists/lenny_default_deb_main_amd64'
reading '/mnt/scdd/tmp//mirror/lists/lenny_default-base_deb_main_amd64'
reading '/mnt/scdd/tmp//mirror/lists/lenny_default-security_deb_main_amd64'
Getting packages...
Shutting down aptmethods...
Installing (and possibly deleting) packages...
no new dependencies, finished in 1 attempts.
NOTE: using installer from: /mnt/scdd/installer//amd64
setting preseed file...
KERNEL_PARAMS: preseed/file=/cdrom/simple-cdd/default.preseed
setting default locale...
KERNEL_PARAMS: preseed/file=/cdrom/simple-cdd/default.preseed debian-installer/locale=ko_KR
Missing package file for amd64/non-free.
simple-cdd: Running debian-cd makefile
Cleaning the build directory
Updating task files...
- copying task files from 'tasks/lenny/'
- task.languages: using 'tasks/lenny/'
cp: omitting directory `/mnt/scdd/tmp//debian-cd/tasks/lenny/'
make: *** [/mnt/scdd/tmp//cd-build/lenny/tasks] 오류 1
Generating a fake status file for apt-get and apt-cache...
:> /mnt/scdd/tmp//cd-build/apt//status
무시file: lenny Release.gpg
무시file: lenny/main Translation-ko
무시file: lenny/non-free Translation-ko
무시file: lenny/main/debian-installer Translation-ko
받기:1 file: lenny Release [2233B]
무시file: lenny/main Packages
무시file: lenny/non-free Packages
무시file: lenny/main/debian-installer Packages
패키지 목록을 읽는 중입니다...
패키지 목록을 읽는 중입니다...
의존성 트리를 만드는 중입니다...
Apt-get is updating its files ...
무시file: lenny Release.gpg
무시file: lenny/main Translation-ko
무시file: lenny/non-free Translation-ko
무시file: lenny/main/debian-installer Translation-ko
받기:1 file: lenny Release [2233B]
무시file: lenny/main Packages
무시file: lenny/non-free Packages
무시file: lenny/main/debian-installer Packages
패키지 목록을 읽는 중입니다...
cc1: warning: command line option "-nostdinc++" is valid for C++/ObjC++ but not for C
cc1: warning: command line option "-nostdinc++" is valid for C++/ObjC++ but not for C
Generating the complete list of packages to be included in /mnt/scdd/tmp//cd-build/lenny/list...
Running sort_deps to sort packages for amd64:
Generating dependency tree with apt-cache depends...
Adding standard, required, important and base packages first
S/R/I/B packages take 0 bytes
Adding the rest of the requested packages
Now up to 112711966 bytes
Done: processed/sorted 358 packages, total size 112711966 bytes.
Reading in package information for amd64:
Done: Read details of 358 packages for amd64
Starting to lay out packages into CD (650MiB CD) images: 332031 2K-blocks maximum per image
Starting new amd64 CD 1 at /mnt/scdd/tmp//cd-build/lenny/CD1
Adding the required directories
Generating the image label and volume id
Adding .disk/base_components
Adding .disk/cd_type
Adding udeb/base includes/excludes
ERROR: Unable to read UDEB_EXCLUDE file /mnt/scdd/tmp//debian-cd/data/lenny/amd64_netinst_udeb_exclude
Adding docs to CD1
Extracting FAQ on CD1
Adding installtools
ERROR: package installation-guide-amd64 not found.
Adding common docs on CD1
Adding Release files
Trying to add upgrade* directories
(Optionally) making the image bootable for amd64:
Running tools/boot/lenny/boot-amd64 1 /mnt/scdd/tmp//cd-build/lenny/CD1
Using ISOLINUX boot-disks image on CD1
Starting the md5sum.txt file
Placing packages into image 1
Checking base is installable for amd64
Found all files needed for debootstrap for all binary arches
Finishing off the Release file
Finishing off md5sum.txt
CD 1 (not) filled with 358 packages, 66722 blocks, 136646656 bytes
Finished: 358 packages placed
purging /mnt/scdd/tmp//extras
simple-cdd: extra files for simple-cdd
simple-cdd: image
Looking in /mnt/scdd/tmp//mirror/dists/lenny/ /mnt/scdd/tmp//mirror/dists/lenny/
Using MD5 sums from Packages files:
/mnt/scdd/tmp//mirror/dists/lenny/non-free/binary-amd64/Packages.gz /mnt/scdd/tmp//mirror/dists/lenny/main/binary-amd64/Packages.gz /mnt/scdd/tmp//mirror/dists/lenny/main/debian-installer/binary-amd64/Packages.gz /mnt/scdd/tmp//mirror/dists/lenny/non-free/binary-amd64/Packages.gz /mnt/scdd/tmp//mirror/dists/lenny/main/binary-amd64/Packages.gz /mnt/scdd/tmp//mirror/dists/lenny/main/debian-installer/binary-amd64/Packages.gz
Using MD5 sums from d-i: /mnt/scdd/tmp//mirror/dists/lenny/main/installer-amd64/current/images/MD5SUMS
cat: /mnt/scdd/tmp//mirror/dists/lenny/main/installer-amd64/current/images/MD5SUMS: 그런 파일이나 디렉토리가 없음
Generating amd64 iso/jigdo image number 1 ...
Last-minute updates:
README.html
README.txt
2009. 06. 12. (금) 14:33:15 KST
/usr/bin/genisoimage -r -V 'Debian 5.0.1 amd64 Bin-1' -o /mnt/scdd/images/debian-501-amd64-CD-1.iso -J -J -joliet-long -cache-inodes -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table boot1 CD1
I: -input-charset not specified, using utf-8 (detected in locale settings)
Using VIRTI000.UDE;1 for CD1/pool/main/l/linux-kernel-di-amd64-2.6/virtio-modules-2.6.26-1-amd64-di_1.53_amd64.udeb (virtio-modules-2.6.26-2-amd64-di_1.53lenny1_amd64.udeb)
<...>
Size of boot image is 4 sectors -> No emulation
7.50% done, estimate finish Fri Jun 12 14:33:15 2009
15.00% done, estimate finish Fri Jun 12 14:33:15 2009
22.48% done, estimate finish Fri Jun 12 14:33:15 2009
29.99% done, estimate finish Fri Jun 12 14:33:15 2009
37.46% done, estimate finish Fri Jun 12 14:33:15 2009
44.96% done, estimate finish Fri Jun 12 14:33:17 2009
52.46% done, estimate finish Fri Jun 12 14:33:16 2009
59.95% done, estimate finish Fri Jun 12 14:33:16 2009
67.45% done, estimate finish Fri Jun 12 14:33:16 2009
74.94% done, estimate finish Fri Jun 12 14:33:16 2009
82.43% done, estimate finish Fri Jun 12 14:33:16 2009
89.92% done, estimate finish Fri Jun 12 14:33:16 2009
97.42% done, estimate finish Fri Jun 12 14:33:16 2009
Total translation table size: 2048
Total rockridge attributes bytes: 105981
Total directory bytes: 563200
Path table size(bytes): 3774
Max brk space used e4000
66738 extents written (130 MB)
sio4@debian:/mnt/scdd$
얼씨구! 이제야 iso 이미지를 만나볼 수 있겠군!
아차차! 생략된 과정 : 커스텀 설치자
이 작업을 하고 있는 이유가,
- debian 설치 CD를 기반으로 패키지를 추가하여 소프트웨어 배포를 가능하게 한다.
- lenny에서 제거된 bnx2 드라이버를 추가하여 이 장치가 설치된 서버에서의 설치 편의를 돕는다.
이 두 가지이다. 이 중, 두 번째 목적을 달설하기 위해서는 당연히 설치자를 수정하여 제거된 bnx2 펌웨어를 넣어줘야 한다. 다음 명령은 이 과정을 담고 있다.
sio4@debian:/mnt/scdd$ cd installer/amd64/images/cdrom/
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom$ cp initrd.gz initrd.gz.orig
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom$ mkdir tmp; cd tmp
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom/tmp$ wget http://http.us.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2_0.16_all.deb
--2009-06-13 19:13:04-- http://http.us.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2_0.16_all.deb
Resolving http.us.debian.org... 128.30.2.36, 64.50.238.52, 64.50.236.52, ...
Connecting to http.us.debian.org|128.30.2.36|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 204502 (200K) [application/x-debian-package]
Saving to: `firmware-bnx2_0.16_all.deb'
100%[======================================>] 204,502 107K/s in 1.9s
2009-06-13 19:13:07 (107 KB/s) - `firmware-bnx2_0.16_all.deb' saved [204502/204502]
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom/tmp$ dpkg -x firmware-bnx2_0.16_all.deb bnx2
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom/tmp$ mkdir initrd; cd initrd
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom/tmp/initrd$ zcat ../../initrd.gz |cpio -iv
.
var
var/dhcp
var/log
<...>
bin/mknod
bin/pidof
sys
28117 blocks
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom/tmp/initrd$ cp -a ../bnx2/lib .
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom/tmp/initrd$ ls lib/firmware/
bnx2-06-4.0.5.fw bnx2-06-4.6.16.fw bnx2-09-4.0.5.fw bnx2-09-4.6.15.fw
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom/tmp/initrd$ find . -print0 |cpio -0 -H newc -ov | gzip -c > ../../initrd.gz
.
./var
./var/dhcp
./var/log
<...>
./bin/mknod
./bin/pidof
./sys
28117 blocks
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom/tmp/initrd$ cd ../..
sio4@debian:/mnt/scdd/installer/amd64/images/cdrom$ rm -rf tmp/
어쨌든, bnx2 모듈을 포함하여 설치 CD를 만드는 과정은 (별다른 문제 없이?) 완료되었다. 그런데 크기가 어째서 이렇게 작지? 파일 이름은 CD1 인데, netinst 보다도 작다!
뭔가 잘못되었거나… 모르겠다. 일단 설치 시험을 해봐야겠다.
조금 고치기
아마도 내가 잘 몰라서이겠지만, 이렇게 만들어진 CD가 뜻하는 방향으로 움직여주지 않았다. (뜻하는 방향이란, 공식 netinst + bnx2 드라이버 정도?) 문제는, 파티션 설정을 묻지 않는 것! 이렇게 황당할 수가! 무조건 자동으로 잡아놓고 쓰겠냐고 묻는다! (그리고 더 황당한 것은 그 결정을 설치 과정에서 바꿀 수 없다는 것이다.) 살펴보니, 데이안 설치자의 preseed 기능에 의하여 뭔가가 (필요 이상으로) 자동화되었던 것 같다.
그래서 다음 몇 가지를 수정하였다:
- isolinux/txt.cfg 수정하기
- isolinux/splash.png 바꾸기
- install.amd/gtk/initrd.gz 고치기
- 이미지 다시 만들기
먼저, txt.cfg이다. 이 파일은 텍스트모드 설치를 선택했을 때 사용되는 부팅 설정 파일로, 전달될 커널 파라미터를 담고 있다. 이 부분의 preseed 관련 부분을 삭제했다. (같은 경로에 gtk.cfg, adtxt.cfg, adgtk.cfg 파일 역시 같은 기능을 하는 파일이며, 이들 역시 수정해줬다.)
다음은 splash 파일의 수정이다. 제품의 임시 로고를 옆의 빈 공간에 넣었다. :-) install.amd/gtk/initrd.gz을 열어보면 usr/share/graphics/logo_debian.png 파일이 들어있는데, 이 파일이 gtk 그래픽 모드 설치시 화면 위쪽에 위치하는 그림이다. 역시 수정했다.
다음 명령을 이용하여 다시 이미지를 만들면 끝.
$ genisoimage -r -V 'Debian 5.0.1 amd64 bin-1 custom' -o debian-501-amd64-custom.iso -J -J -joliet-long -cache-inodes -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table debian-5.0.1-amd64-cd-1
그리고 테스트!
$ qemu-system-x86_64 -boot d -cdrom debian-501-amd64-custom.iso
참고 :
Debian Lenny 5.0.1 PXE initrd update