· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Booyo LiveCD/Sub Design

기본 원칙

  • 가능한한 본래의 배포판을 변형하지 않는다.
  • Live CD 를 사용하여 하드디스크에 설치하였을때, 설치디스크를 사용한 것과 동일하여야 한다.
  • 매번 압축 파일을 만들지 않고 시험할 수 있어야 한다.
  • isolinux.cfg 를 사용하여 대표적인 사항을 선택할 수 있어야 한다.
  • boot 옵션을 사용할 수 있어야 한다.

기능

  • CD 만으로 부팅
  • CD 만으로 부팅한 후, 압축된 파일을 메모리나 하드디스크에 옮겨, CDROM 드라이버 활용

  • 압축된 파일을 하드디스크에 복사한 경우
    • lilo 나 grub 을 사용하여 부팅
    • 디스켓이나 CDROM 을 사용하여 부팅

  • 하드디스크의 swap 파티션 활용
    • Swap 파티션이 있는 경우
    • Swap 파티션이 없는 경우

  • 설정 보관
    • NTFS 파일 시스템만 있는 경우
    • 디스켓을 이용하는 경우
    • USB 메모리를 이용하는 경우
    • 웹디스크 사용

  • 서버를 이용한 부팅, 설정보관, 자료 보관

  • 하드디스크에 설치 기능
    • 본래의 배포판 형태
    • 변형된 형태
    • 두 경우 모두 upgrade 에 문제가 없어야 한다.

  • Live CD 제작 및 Remastering 기능
  • 시험 기능

부분별 기능

initrd.gz, initrd.img, minirt.img

  • isolinux 에 의해 커널과 initrd.gz 가 메모리에 올라온다.
  • initrd.gz 가 메모리에 올라온다는 것은 단지 파일 시스템이 올라오는 것 뿐인가?
  • 커널의 init 가 필요한 작업을 하고
  • lilo 나 grub 또는 boot option 에 init= 이 있으면 이를 수행하고, 아니면 다음의 순서로 찾아서 첫번째 것을 수행(?)
    • /sbin/init
    • /etc/init
    • /bin/init
    • /bin/sh
  • initrd.gz 가 메모리에 올라와 있으면, 위의 명령에 의해 initrd 에 있는 것을 찾아 수행한다.(?)
    • linuxrc 는 무엇에 의해 수행되는가?
    • knoppix 3.7 의 경우 /etc/init 에 의해 linuxrc 수행(?)
    • 이전 버전, berry 등은 /sbin 이 /static 에 링크되어 있고, /static/init 가 /static/ash 에 링크되어 있슴.
    • /static/ash 가 linuxrc 를 수행(?) 소스 볼 것
    • 이 부분은 좀 더 조사할 필요가 있슴.
    • booyo 의 경우는 /etc/init 없슴. /sbin/init 는 /static/ash 에 링크
  • initrd 에 있는 /sbin/init 에 의해 linuxrc 가 수행되고, 다시 kernel init 로 돌아와 /sbin/init 을 수행한다.(?)

linuxrc

  • 압축 파일 검색
  • 메모리 크기 점검
  • ramdisk 생성
  • 옵션에 따라 메모리나 하드디스크에 압축된 파일 복사
  • 쓰기가 필요한 파일들 복사
  • 읽기만 필요한 파일들 링크

  • 압축 해제된 파일 시스템이 하드디스크에 설치되어 있는 경우
    • Builder 를 위해 설치된 시스템
    • Installer 에 의해 생성된 시스템
    • Builder 를 수행한 후의 시스템
    • sort list 를 만들기 위한 시스템 : 별도의 initrd 를 만드는 것이 제일 좋을 것 같음. (가능한가 보자. 문제 있슴. 수동으로 하는 수 밖에 없는가? 우선 수동으로 한다.)
  • 모두가 동일하고 initrd.gz 만 다른 것이 제일 좋은 방법이다.(이를 위해 하드 디스크에 설치된 경우가 linuxrc 에 들어가 있어야 한다. knoppix 는 현재 없앴지만, 이는 시험이 필요없는 경우에만 해당될 것 같다)

  • linuxrc 에 의해 변경되는 파일(initrd 에 존재해야 하는 파일)
    • /etc/inittab
    • /etc/rc.d/booyo-init booyo-halt booyo-reboot
    • /etc/mail/sendmail.cf submit.cf

/sbin/init

  • 본래의 /sbin/init 사용 /etc/initab 를 덮어 써서 다른 명령을 수행함.
    • booyo-init
    • booyo-halt
    • booyo-reboot
  • booyo-init 에서 없애고 새로 생성해야 하는 파일들

inittab

  • fastboot 의 경우 rc5.d 의 서비스를 없애고, 필요한 것을 booyo-init 에서 수행

/sbin/halt

  • CD 로 부팅한 경우 cd eject 를 해야 함.
    • booyo-halt 와 booyo-reboot 에서 수행을 하도록 만들었지만, 동작 안 함.
    • 현재 이상한 상태임.
    • 소스에 knoppix 의 부분을 추가하여 컴파일은 됨. 시험 필요.

booyo-init

  • mount /proc /sys /usbfs
  • 언어, 국가, 시간, 키보드 설정
  • network 설정
  • udev
  • 하드웨어 검색 및 설정
  • 관련 모듈 로드
  • xorg.conf 생성
  • fc3 에서 하는 일
  • fastboot 인 경우 필요한 서비스만 수행
    • linuxrc 에서 fastboot 인 경우 rc5.d 의 내용을 지움.
    • 이곳에서 하는 것이 맞지 않을까?

Installer


Builder

  • 추가해야 하는 파일 (/opt/booyo)
    • Installer 에서 fedora 방식을 사용할 경우 이 파일들은 없애도 됨.
    • hwsetup-booyo
    • kmodule-booyo
  • mkxf86config
  • XF86Config-4.in
  • ddcxinfo-booyo
  • rebuildfstab
  • sortlist 의 문제점
    • knoppix 나 berry 의 경우 kdm 을 사용하지 않고 바로 kde 로 들어가므로, /home 디렉토리를 참조하지 않는다. 하지만 booyo 의 경우 gdm 을 사용하므로 /home/booyo 가 사용된다. 이 부분의 sort list 를 어떻게 할 것인가?
  • Builder(postupgrade) 에 의해 변경되는 파일(relative link 를 absolute link 로 변경)
    • Installer 에서 원래 상태로 돌려야 하는가?
    • /usr/lib/tls/i486/libdb-4.2.so
    • /usr/lib/tls/i586/libdb-4.2.so
    • /usr/lib/tls/i686/libdb-4.2.so
    • /usr/lib/libdb-4.2.so
    • /usr/lib/libnss_ldap.so
    • /usr/X11R6/lib/X11/fs
    • /usr/X11R6/lib/X11/twm
    • /usr/X11R6/lib/X11/xkb/compiled
    • /usr/X11R6/lib/X11/xsm
    • /usr/X11R6/lib/X11/xinit
    • /usr/X11R6/lib/X11/lbxproxy
    • /usr/X11R6/lib/X11/proxymngr
    • /usr/sbin/logwatch
    • /usr/tmp
  • Builder(postupgrade) 에 의해 수행되는 명령
    • ldconfig: /etc/ld.so.conf 에 따라 /etc/ld.so.cache 생성 (gparted 를 위해 수정할 필요 있을 것 같음)
  • Builder(clean) 에 의해 지워지는 파일
rm -f /var/lock/*/* \
      /halt /reboot \
      /etc/*passwd- /etc/*shadow- /etc/*group- 2>/dev/null

rm -rf /tmp/* /var/tmp/* /var/tmp/.??* /var/backups/* \
       /var/log/Xorg.*.old /home/*/.ssh /home/*/.bash_history
  • Builder(clean) 에 의해 지워지는 파일 (nuke 파일 또는 디렉토리 밑의 파일 이름이 .gz. .bz2, .0, .0.log browse.dat .\*pk 인 경우 지움)
nuke /var/log /var/cache
  • Builder(clean) 에 의해 크기가 0 으로 되는 파일(zero 파일 또는 디렉토리 밑의 파일중 이름이 .ini 가 아니고 크기가 0 보다 큰 모든 파일을 찾아 크기를 0 으로 만듬
zero /var/local /var/mail \
     /var/lib/games /var/cache/man \
     /var/run/dbus/system_bus_socket \
     /var/log/acpid /var/log/boot.log \
     /var/log/Xorg.0.log /var/log/scrollkeeoer.log \
     /var/log/cron /var/log/dmesg /var/log/lastlog \
     /var/log/maillog /var/log/messages /var/log/secure \
     /var/log/wtmp
:>/var/run/utmp
:>/var/run/wtmp
  • Builder(clean) 에 의해 수행되는 명령
    • /sbin/depmod -a: /lib/modules/2.6.9-booyo 밑의 파일들을 갱신 새로운 모듈을 만들었을 때만 필요할 것으로 생각됨.
    • /usr/bin/mktexlsr: create ls-R databases

  • Remastering 을 할 경우 좀 더 생각해야 할 것이 있슴.

sort list 를 만들기 위한 방법

mv inittab inittab.org cp inittab cp booyo-init booyo-halt booyo-reboot mv rc5.d rc5.d.org mkdir rc5.d rm /etc/ssh/*.key*

touch mkisofs.timestamp umount ....

ubuntu source

"Is there an Ubuntu Source repository anywhere?"
Yes. archive.ubuntu.com
That is the repository. The binaries as well as the source are all there, as per the GPL.

Fire up Ubuntu and run the command
sudo apt-get build-dep $package where package=whatever package you want.
then do sudo apt-get source $package to get the source for that package.
example: sudo apt-get build-deb abiword sudo apt-get source abiword.

ID
Password
Join
Good fortune in love, as well as a better position.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-05-15 14:24:27
Processing time 0.0103 sec