· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Booyo LiveCD/Hd Install

BooyoLiveCD/HdInstall

* 라이센스에 문제가 있는가? (show license 해야 하나?) * 설치한 경우는 원래의 상태가 되도록 한다.

* 패키지 설치는 root 만 할 수 있도록 하면 문제는 무엇인가? * root 로 인터넷을 돌아 다니는 것은 얼마나 위험한가?

booyo-installer 디자인

* system_type 이 booyo1 인 경우는 현재 상황대로 * system_type 이 FC3 인 경우는 최초 설치 상태로
  • first boot 이후
  • login 이전 상태

* 문제가 되는 파일들
  • /etc/inittab
  • /etc/rc.d/booyo-
  • hardware 설정 파일들 (무엇 무엇인가?)
* 한글 설정
  • /etc/sysconfig/i18n
  • gnome, mozilla, openoffice 의 한글 설정이 따로 있는가?

knoppix-installer 사용법

knoppix-installer 스크립트 사용: 버전 03-11

1. 터미날 창을 만듭니다.

2. knoppix-install 을 수행합니다.
  • su
  • knoppix-installer
  • Knoppix 설치 초기화 OK 버튼 클릭

3. 메뉴에서 필요한 작업들을 선택하여 수행합니다.
  • Knoppix 주-메뉴
    • 1. 설치를 위한 설정 새로운 설정을 작성합니다
    • 2. 설치 시작 설치를 시작합니다
    • 3. 파티션 설정 하드디스크 파티션 분할
    • 4. 설정 읽어오기 기존의 설정 읽어 오기
    • 5. 설정 저장 설정을 저장합니다
    • 6. 종료 프로그램 종료

Knoppix 설치 (v0.3-11)

시스템 형식을 선택하십시요
  • beginner
  • knoppix
  • debian
  • booyo
    • beginner
    • experienced


설치를 위한 설정

  • Knoppix 의 설정 작성 단계(1/7)
    • 파티션 선택 Next 버튼 클릭
  • Knoppix 의 설정 작성 단계(2/7)
    • 필요없을 것 같음
    • 성명 입력 Next 버튼 클릭
  • Knoppix 의 설정 작성 단계(3/7)
    • 사용자명 입력 Next 버튼 클릭
  • Knoppix 의 설정 작성 단계(4/7)
    • 패스워드 입력, 패스워드 재입력 Next 버튼 클릭
  • Knoppix 의 설정 작성 단계(5/7)
    • 관리자의 패스워드 입력, 관리자의 패스워드 재입력 Next 버튼 클릭
  • Knoppix 의 설정 작성 단계(6/7)
    • 필요없을 것 같음.
    • 원하는 호스트명 입력 Next 버튼 클릭
  • Knoppix 의 설정 작성 단계(6/7)
    • 부트로더가 설치될 곳을 선택하십시요 Next 버튼 클릭
  • Knoppix 의 설정 작성 단계(7/7) -- 이 부분이 필요 없슴.
    • 시스템 형식을 선택하십시요 Next 버튼 클릭

설치 시작

  • 설정 내용 출력
    • 문제: 서비스 선택에 서비스명 출력 안됨.
    • 수정 필요할 것 같음.
  • Next 버튼 글릭
    • /dev/hdc7 을 포맷하는 중입니다.(progress bar 동작안함)
    • 파일들을 복사하는 중입니다.(progress bar 동작)

    • /etc/fstab 갱신하는 중
    • 변경된 설정 ..
    • Knoppix 를 Debian 으로 변환하는 중
    • floppy disk 를 넣으십시요 (가능한가? boot.img size 문제, grub 만 설정하는 것 같음)
    • 성공적으로 설치

설정 읽어오기

  • 파일명을 받기 위한 메뉴
  • 파일이 없으면 오류
  • 파일 수행(. $1)
  • MODULES_LOAD 에 속하는 파일 수행
    • register_vars, add_var 을 통해 설정되지 않은 변수는 디폴트로 설정

function add_var
{
  case "$REGISTERED" in *$1*) return 1;; esac
  REGISTERED="$REGISTERED $1"
}

function register_vars
{
  for i in $@;
  do
    add_var "$i"
  done
}

function register_var
{
  export $1"_COMMENT"="$2"
  export $1"_ALLOWED"="$3"
  export $1"_CHECKIT"="$4"
  export $1"_DEFAULT"="$5"
  [ -z "${!1}" -a -n "$5" ] && export $1="$5"
}
  • check_param "$i" "${!i}" 이해를 못 하겠슴.

설정 저장

설정을 위한 파일명 저장

함수 설명

knoppix-installer (/usr/sbin)

  • main
  • ni-main: knoppix-installer --non-interactive

main: knoppix-installer

  • message
  • rebuildfstab -r (/usr/sbin) : 이 부분이 문제임. 해결되었음.
    • / 의 device 가 LABEL=/ 로 표시되어 있슴. (결과적으로 루트파티션이 추가되게 됨)
  • check_partition_ok: 00-hd-tools.bm
    • message
    • menu_part: 00-hd-tools.bm
  • menu_main: knoppix-installer
  • 메모리가 512 M 보다 작고 swap 파티션이 없거나, swap 파티션이 있지만 128 M 보다 작으면, menu-part 시행: 파티션 작업을 위한 메뉴
  • 리눅스를 위한 파티션이 없거나, 있지만 크기가 작은 경우 menu-part 시행
  • 아니면 menu_main 시행

ni-main: knoppix-installer

  • rebuildfstab
    • checkpartition 안 함.
  • load_config
  • do_install

menu_part: 00-hd-tools.bm

  • do_menu: 00-dialog.bm (Knoppix Partition-Menu)
    • action-part: 00-hd-tools.bm 그래픽이 되면 qtparted, 아니면 cfdisk 수행
    • exit_proc: knoppix-installer

menu_main: knoppix-installer

  • do_menu: 00-dialog.bm (Knoppix Main-Menu) 수정필요
    • create_config: knoppix-installer
    • start_install: knoppix-installer
    • action-part-later: 00-hd-tools.bm
      action-part: 00-hd-tools.bm check_partition_ok: 00-hd-tools.bm
    • load_config: knoppix-installer
    • save_config: knoppix-installer
    • exit_proc: knoppix-installer

action-part: 00-hd-tools.bm

  • X env 가 아니면
    • action-part-cfdisk: 00-hd-tools.bm
  • X env 고 qtparted 가 있으면
    • qtparted (/usr/sbin; binary)
      설치해야 할 것 같음.(가능한가? gparted 가 있지만 이를 설치하기 위해서는 gtkmm-2.4 가 필요하고 이는 또 많은 패키지를 필요로 함. 차라리 qtparted 를 설치하는 것이 어떨까? qtparted 도 패도라에는 없슴. qtparted 설치는 되지만 오류가 있슴.)
  • 아니면
    • action-part-cfdisk: 00-hd-tools.bm
      cfdisk 를 사용하지만 FC3 에는 cfdisk 가 없슴. fdisk 사용해야 함.
  • rebuildfstab -r (/usr/sbin)

create_config: knoppix-installer

  • module_system: 07-system.bm (menu: select beginner, knoppix, debian) 필요 없슴.
  • module_system_set_modules: 07-system.bm
    ( knoppix: hd swap services boot ) ( debian, beginner: hd swap name user userpass rootpass host services boot )
  • modules_${MODULES $I}

    • module_hd: 01-hd.bm (menu: confirm or select partition) 파티션 선택
    • module_swap: 02-swap.bm swap 파티션 선택
    • module_services: 05-services.bm 서비스 선택, 검토 필요
    • module_boot: 06-boot.bm (menu: select) 부트로더 선택
    • module_name: 04-user-name-pass.bm 성명 입력, passwd 에서 사용
    • module_user: 04-user-name-pass.bm 사용자명 입력
    • module_userpass: 04-user-name-pass.bm 사용자 패스워드 입력
    • module_rootpass: 04-user-name-pass.bm 루트 패스워드 입력
    • module_host: 03-host.bm host 명 입력
    • module_system: 시스템 유형 선택 필요 없슴.
    • 모두 디폴드를 먼저 수행함.
    • INSTALL_READY="yes"

load_config: knoppix-installer

  • modules_${MODULES $I}_defaults
  • $1 파일에 설정된 값들로 설정 변경

start_install: knoppix-installer

  • create_config 를 이미 수행하지 않은 경우 수행
  • show_install_options: knoppix-installer 설정을 보여줌
  • save_config: OK 가 클릭되면 설정 저장
  • do_install: knoppix-installer 설치작업 실행
  • make_floppy: booting/floppy.bm 부트 플라피 작성

do_install: knoppix-installer

  • module_hd_doaction: 01-hd.bm
    • format, make filesystem, mount
    • module_hd_knoppix_copy: 01-hd.bm 집중적으로 검토, 생각 필요함
      cp -a /KNOPPIX/* mount-point
  • module_swap_doaction: 02-swap.bm
    • insert a line for swap partition into /etc/fstab
  • update_fstab: install/01-fstab.bm
    • 복사된 fstab 을 tmp 에 보관
    • /etc/fstab 을 새로 만듬.
    • / 관련 라인 넣음.
    • HD_MAP 가 있으면 넣음. (아직 적용되지 않았슴)
    • tmp 밑의 fstab 을 추가
    • proc, sysfs 추가 (fd0 해당부분 없앰)
    • cdrom, dvd, cdaudio 없앰
    • automounter 부분 없앰


  • old_installer: knoppix-installer 검토 필요
    • knoppix: system_type_knoppix return 0
    • beginner: system_type_beginner return 0
    • debian: system_type_beginner, system_services
  • add_bootmanager: booting/boot-tools.bm

system_type_knoppix(): install/03-system_types.bm

  • SYSTEM_USER_NAME=$USER_NAME
  • USER_NAME="$DEFAULT_USER"
  • system_copy_home: install/02-install-tools.bm
  • USER_NAME=$SYSTEM_USER_NAME
  • system_add_hd_config: install/02-install-tools.bm
  • system_copy_etc: install/02-install-tools.bm
  • system_add_services: install/02-install-tools.bm

system_copy_home: install/02-install-tools.bm

  • /home/$DEFAULT_USER/.kde 가 디렉토리면
    • rm -rf TARGET/home/$DEFAULT_USER
    • cp /home/DEFAULT_USER TARGET/home
    • USER_NAME 이 knoppix 가 아니면, /home/knoppix 를/home/username 으로 변경
  • .kde 가 없으면
    • /etc/skel 을 /home 에 복사한 후, /home/skel 을 /home/username 으로 변경
    • mkdesktophdicons
    • rm /home/$USER_NAME/.kde/Autostart/showindex.desktop
    • rm /home/$USER_NAME/.kde/Autostart/sorticons.desktop
    • edit /home/$USER_NAME/.kde/share/config/kdesktoprc
    • /cdrom/KNOPPIX/background.jpg -> usr/local/lib/knoppix.jpg
    • rm /home/$USER_NAME/.netscape*
    • username 이 knoppix 가 아니면, (이 부분에 의해 biginner, debian 의 경우 mozilla 의 한글이 reset 됨)
    • rm /home/$USER_NAME/.mozilla/appreg
    • rm /home/$USER_NAME/.mozilla/pluginreg.dat
    • /home/$USER_NAME/.mozilla/default 가 없으면
    • /home/$USER_NAME/.mozilla/ 밑의 $DEFAULT_USER 를 default 로 변경
    • edit /home/$USER_NAME/.mozilla/default/*/prefs.js
.*general.useragent.* 을 blank 로
  • 파일들의 내용중 knoppix 가 있으면 새로운 username 으로 변경
  • make /home/$USER_NAME/Desktop/KNOPPIX.desktop

system_add_hd_config: install/02-install-tools.bm

  • /etc/init.d/knoppix-hd-config 가 없으면 /etc/int.d 에 복사
  • /etc/network 디렉토리 만듬
  • svae_config
  • cp /etc/network/interfaces
  • cp /etc/pcmcia
  • cp /etc/cups
  • init sequence 에 knoppix-hd-config 추가 rcS.d

system_copy_etc: install/02-install-tools.bm

  • copy changed files in /etc
  • /etc/X11?/XF86Config-4.1st 가 있으면, 이를 /etc/X11?/XF86Config-4 로 변경
  • Save ALSA sound volume
  • Copy volume setting
  • edit /etc/init.d/knoppix-autoconfig
    • insmod -> modprobe
    • $CMDLINE 가 null 이면 CMDLINE 으로 시작하는 줄 변경
    • modutils 을 modutils-knoppix 로
    • s/if grep -q /if egrep -q/
    • /etc/init.d/modutils-knoppix 가 없으면 복사

system_type_beginner(): 03-system_types.bm

  • user name 을 knoppix 로 주었을 경우 어떤 결과일까?
  • update_passwd
  • system_copy_home
  • system_add_hd_config
  • system_copy_etc
  • update_status $"Converting Knoppix to Multi-User-System..."
  • system_install_templates
  • system_install_keymap
  • system_update_files
  • system_install_i18n
  • system_setup_kdm
  • system_add_hd_autoconfig
  • system_add_services
  • system_fix_menus
  • system_create_modules

system_install_templates: install/02-install-tools.bm

  • updating: profile, inittab, sudoers, hosts.allow
  • disable all services in /etc/inetd.conf

system_install_i18n: install/02-install-tools.bm

  • . /etc/sysconfig/i18n
  • /etc/environment
  • /etc/kde3/system.kdeglobals
  • /etc/kde3/kdm/kdmrc

system_setup_kdm: install/02-install-tools.bm

  • ( 한글 관련 변경 필요 )
  • mv /etc/X11/Xsession.d/45xsession /root/xsession.knx-hdinstall.backup
  • force kde first time configuration
  • /home/$USER_NAME/.wmrc 에 kde3 set
  • init sequence kdm rc5.d

system_add_hd_autoconfig: install/02-install-tools.bm

  • /etc/init.d/ 밑에 knoppix-hd-autoconfig 가 없으면, 복사
  • init sequence 에서 knoppix-autoconfig 제거
  • init sequence 에 knoppix-hd-autoconfig 추가 rcS.d
  • edit /sbin/hotplug-knoppix
  • /KNOPPIX 디렉토리가 없으면 rebuildfstab -r -u knoppix -g knoppix 을 rebuildfstab -r 로
  • edit /etc/init.d/knoppix-autoconfig
  • /KNOPPIX 디렉토리가 없으면 rebuildfstab -r -u knoppix -g knoppix 을 rebuildfstab -r 로
  • edit /usr/bin/mkdesktophdicons
    • ReadOnly=1 을 ReadOnly=0
  • edit /etc/automount.sh
    • uid=knoppix,gid=knoppix 을 blank 로
  • mkdesktophdicons

system_services: install/02-install-tools.bm

  • remove xsession, knoppix-autoconfig, knoppix-hd-config, knoppix-reboot, knoppix-halt
  • SERVICES_START
  • cp rcS.d, rc0.d, rc6.d
  • rmnologin, hotplug
  • set sysklogd, klogd, kerneld, ppp, pcmcia, logoutd, makedev, atd, cron
  • autofs
  • kdm xdm gdm
  • remove pcmcia
  • acpid

/etc/init.d/knoppix-hd-config

  • /etc/network/interfaces, /etc/pcmcia/*, /etc/cups* 에 변화가 있으면 set
  • /etc/ppp/ppp_on_boot 가 execution 파일이면 set
  • set 되어 있는 것들 재시작, 또는 시작
  • 관련 데몬 start

/etc/init.d/knoppix-hd-autoconfig

  • 데비안 형식
    • system_mode_debian (looks in development): now do nothing
  • biginner 형식
    • system_mode_beginner (looks in development): now run knoppix-autoconfig
  • update_desktop_hdicons

knoppix-installer function list

/usr/sbin/knoppix-installer

clean_exit(), logit, exit_proc, setup_dialog_messages(), add_var, register_vars, register_var, update_status, create_config, check_param, load_config, save_config, show_install_options, old_installer, do_install, start_install, menu_main, main(), ni-main

  • create_config: modules_system 부분 다시 사용 beginner, experienced
    • module_system 0
    • module_hd, module_name, module_user, module_userpass, module_rootpass, module_host, module_boot, module_system 을 call 함.
    • module_name, module_host 없앰.
  • old_installer: system_type_booyo 생성

/usr/share/knoppix-installer/modules

  • 스그립트
    • 00-dialog.bm 00-hd-tools.bm 00-knoppix-utils.bm 00-setuser.bm 01-hd.bm 02-swap.bm 03-host.bm 04-user-name-pass.bm 05-services.bm 06-boot.bm 07-system.bm template.bm
  • 디렉토리
    • install booting

00-dialog.bm

  • Xdialog 를 gdialog 로 변경
  • 옵션이 제대로 되는지 점검 필요. 문제 많음.
  • http://dag.wieers.com/packages/xdialog/ 에서xdialog-2.1.1-1.1.fc3.rf.i386.rpm 다운로드 받아 설치.

00-setuser.bm

  • suknoppixmenus: system_fix_menus():02-install-tools.bm 에서만 사용
  • install/03-system_types.bm 에서만 사용 beginner 인 경우
  • BOOYO 는 필요 없슴. 다른 용도로 사용할 수 있슴.
  • system_fix_menus 에서 작업을 하는 것이 맞는 것 같음.
    • installer 메뉴 추가
    • gparted 메뉴 추가
    • 기타 등등
  • suknoppixmenus 는 없에 버림.

05-services.bm

  • 없애는 것이 좋을지, 변형하는 것이 좋을지 모르겠다.
  • 선택을 하도록 하는 것은 어떨까?
  • 우선은 서비스명만 변경할 것. 생각좀 하자....

07-system.bm

  • boot 옵션에 대해 좀 더 생각해야 하고, experienced 가 무엇을 더 할지 결정할 필요 있슴.

00-hd-tools.bm

  • 함수
    • fdisk_l, find_swap_partitions, find_swap_partitions2,
find_root_partitions, find_disks, update_swap_parts, check_partition_ok, action-part-cfdisk, action-part, action-part-later, menu_part

  • Knoppix to BOOYO: menu_part, action-part-cfdisk
  • action-part 에서 qtparted 를 gparted 로 변경
  • action-part-cfdisk 에서 cfdisk 를 fdisk 로 변경
  • 다 고친 것 같음.

07-system.bm

  • 함수
    • module_system_defaults(), module_system_showinfo(),
module_system(), module_system_set_modules(), module_system_get_cmdlines()

/usr/share/knoppix-installer/modules/booting

  • boot-tools.bm floppy.bm

boot-tools.bm

  • create_initrd()
    • which mkext2fs 는 which mkfs.ext2 로 변경
    • lilo 를 넣고 experienced 만 선택하도록 할까?
    • reiserfs-utils-3.6.18-1.i386.rpm
    • xfsprogs-2.6.13-2.i386.rpm


floppy.bm



/usr/share/knoppix-installer/modules/install

  • 01-fstab.bm 02-install-tools.bm 03-system_types.bm

02-install-tools.bm

  • 함수
    • system_findchanged(), system_add_hd_autoconfig(), system_add_hd_config(), system_copy_etc(), system_copy_home(), system_setup_kdm(), system_install_templates(), system_add_services(), system_services(), system_install_keymap(), system_install_i18n(), system_create_modules(), system_update_files(), system_fix_menus()




action-part-later action-part: /usr/sbin/qtparted, rebuildfstab -r check_partition_ok

* module_hd_doaction
  • formatting mkfs.$HD_FSTYPE
  • tune2fs (파일 시스템이 ext2 나 ext3 인 경우)
  • mounting filesystem
  • HD_MAP 는 아직 적용되지 않음.
  • module_hd_booyo_copy

* module_hd_knoppix_copy
  • cp -a /KNOPPIX/* /mnt/hdinstall
  • sync
  • 몇가지 더 복사를 해야 하는지 생각할 것.(특히 /etc, /home 등)

* module_swap_doaction
  • insert swap into /etc/fstab
  • /etc/fstab 과 연계하여 좀 더 생각해야 함.

* update_fstab (modules/install/01-fstab.bm)
  • need to understand completely in order to modify for captive (ntfs write)

* old_installer
  • system type 에 따라 call



add_bootmanager: /usr/share/knoppix-installer/modules/boot.bm

module_swap_doaction insert swap into /etc/fstab clear /etc/fstab and insert only swap partition

update_fstab: used in hd install

  • copy /BOOYO/etc/fstab 을 tmp 밑에 복사
  • /etc/fstab 을 새로 만듬.
  • insert / into fstab
    • not ext: $HD_CHOICE / $HD_FSTYPE defaults 0 1
    • ext: $HD_CHOICE / $HD_FSTYPE defaults,errors=remount-ro 0 1
  • HD_MAP 은 아직 사용하지 않음
  • 복사해 놓은 fstab 을 append
  • append
none  /proc  proc  defaults  0  0
/dev/fd0  /media/floppy  auto    pamconsole,exec,noauto,managed 0 0 (hal 이 처리하도록 할 것)
none  /sys  sysfs  defaults  0  0
  • add /dev/cdrom* /dev/dvd /dev/cdaudio (hal 이 처리하도록 할 것)
  • /mount 밑에 생성된 파일들 복사
  • rebuildfstab -r (지우기만 하는지, 지우고 새로 생성하는지 볼 것)
  • perl -pi -e 's/(ntfs noauto,users,exec,ro).*/\1,umask=000 0 0/' $TARGET_MNT_POINT/etc/fstab
  • perl -pi -e 's/(vfat noauto,users,exec).*/\1,umask=000 0 0/' $TARGET_MNT_POINT/etc/fstab

    save swap partition
    insert head comment
    insert selected partitoin to install knoppix
    Add other HD-mappings
    Add saved swap devices
    Add proc partition
    Add /dev/fd0
    Add CD-Roms/DVD/...
    Let Knoppix detect all other partitions
        chroot "$TR" mount /proc
        chroot "$TR" rebuildfstab -r
        chroot "$TR" umount /proc
# NTFS Partition(en) mit umask=000 Option ausstatten

perl -pi -e 's/(ntfs noauto,users,exec,ro).*/\1,umask=000 0 0/' $TARGET_MNT_POINT/etc/fstab

# USB Eintrag in die /etc/fstab vornehmen
echo usbdevfs /proc/bus/usb usbdevfs defaults 0 0 >> $TARGET_MNT_POINT/etc/fstab

cp $TARGET_MNT_POINT/etc/fstab $TMPDIR/
# remove uid=, gid= - entries for vfat; instead use that of running process
[ -z "$USER_NAME" ] && USER_NAME="$DEFAULT_USER"
sed 's/,umask=000,uid='$DEFAULT_USER',gid='$DEFAULT_USER'/,umask=000/g; s/$DEFAULT_USER/'$USER_NAME'/g' $TMPDIR/fstab > $TARGET_MNT_POINT/etc/fstab

rebuildfstab is equal to buildfstab call scanpartitions

knoppix-installer and berry-installer


modules/00-knoppix-utils.bm 00-berry-utils.bm


modules/00-dialog.bm


Xdialog 와 gdialog 비교 필요

00-hd-tools.bm


fdisk_l, /opt/berry/fs

knoppix berry

rebuildfstab, /opt/berry/fs

modules/00-setuser.bm


suknoppixmenus

modules/01-hd.bm


knoppix berry

debian redhat

modules/02-swap.bm


knoppix berry

modules/03-host.bm


no need to change

modules/user-name-pass.bm


들여다 보고 생각을 해야 함. root passwd 와 username, user passwd 를 고쳐야 함.

modules/05-services.bm


booyo 의 경우 없어도 될 것으로 생각됨.

modules/06-boot.bm


default setting 만 다름.

modules/07-system.bm


booyo 의 경우 필요 없을 것임. 이에 따라 변경되야 하는 파일들이 무엇들일까?

modules/booting/boot-tools.bm


들여다 보면 재미있을 것으로 생각됨. 앞으로 필요도 할 것으로 생각됨. berry 점검 먼저 할 것
  • get_short_kernel_name()
  • create_initrd()
  • make_lilo_conf() 없에 버림.
  • install_lilo() 없에 버림.
  • translate_linux_to_grub ()
  • install_grub()
  • add_bootmanager()

add_bootmanager()


필요한 변수: TARGET_MNT_POINT, $1, BOOT_LOADER, BOOT_WHERE

  • target partition 에서 /proc 마운트
  • 커널이 여러개일 경우 /lib/modules 밑을 점검하여 각각의 initrd.img 를 만든다.
    • call create_initrd
  • 현재 돌고 있는 커널이 target partition 에 없을 경우 BOOT_RUNNING_KERNEL="$1"
    • 이 이야기는 설치시 /lib/modules 밑에 있는 모듈의 버전명과 다른 커널과 다른 initrd.img 를 사용한다는 의미임.
  • 디폴트 링크를 만드는데 조금 이상함. 점검 필요
    • 이것이 제대로 수행된다면 현재 directory 가 $TARGET_MNT_POINT/boot/ 여야 함. 이를 수행하기 전에 이리로 cd 되어 있는지 점검 필요.
  • install_grub or install_lilo 없에 버림.

create_initrd()

여기에서 SATA 관련 작업을 해 주어야 함. (어려울 것으로 예상됨)
  • export INITRD_PARAM_$INITRD_POSTFIX: 실제로 아직 사용되는 곳이 없슴.
  • ext3 이거나 reiserfs 인 경우 initrd 에서 모듈을 로드해야 함.
  • ext2 인 경우 initrd 를 만들고 comment 로 처리함.(왜?)
    • add_bootmanager() 에서 initrd 가 디폴트를 만드는데 필요함.
  • chroot_it mkinitrd --preload="$INITRD_MODULES" /boot/initrd.img-$BOOT_KERNEL $BOOT_KERNEL

install_grub(): 수정전

  • grub-install target-partition (grub.conf 는 생성되지 않음)
  • 오류가 발생하면 다시 한번 수행 (왜 이렇게 할까?)
  • mbr 에 설치하는 것이면, device.map 에서 (hd0) 에 해당하는 파티션을 찾아 GRUB_MBR 에 설정
  • GRUB_MBR 이 없으면 오류
  • GRUB_MBR 이 있으면 첫번째 블럭을 보관
  • menu.lst 를 지우고 chroot_it update-grub -y 수행 (FC3 에는 update-grub 가 없슴)
  • command 를 옵션으로 추가
  • fstab 을 이용하여 windows 추가
  • update-grub
  • /etc/kernel-img.conf 변경 (FC3 에는 없슴)
  • mbr 을 사용하면 다시 한번 grub-install 수행

install_grub(): 수정후

  • grub-install target-partition (grub.conf 는 생성되지 않음)
  • 오류가 발생하면 다시 한번 수행 (왜 이렇게 할까?)
  • mbr 에 설치하는 것이면, device.map 에서 (hd0) 에 해당하는 파티션을 찾아 GRUB_MBR 에 설정
  • GRUB_MBR 이 없으면 오류
  • GRUB_MBR 이 있으면 첫번째 블럭을 보관
  • GRUB_VGA 설정
  • ROOT_PART 설정
  • make_grub_conf
  • mbr 을 사용하면 다시 한번 grub-install 수행

make_grub_conf()


  • 기본 사항 설정: timeout 30, default 0, fallback 1
    • 커널이 하나인 경우, 첫번째 커널에 문제가 있으면 윈도우즈가 부팅되어야 함. default 커널을 사용하므로 문제가 있슴.


알아낸 사항


  • grub-install 의 옵션중 --root-directory 가 실제로 사용하는 grub.conf 를 지정하는 것 같음.
  • mbr 을 사용하는 것은 단지 grub-install 에만 영향을 줌
  • root 와 kernel 의 root 옵션은 설치된 파티션을 가리켜야 함.

조사 필요한 것들


  • grub-install 을 옵션없이 수행하는 경우
    • mbr 을 사용한다는 것은 bios 에서 첫번째로 잡고 있는 하드디스크의 첫번째 sector 에 쓴다는 의미임.
    • 다른 하드디스크 파티션을 사용하는 경우에는 어떻게 되나?

LILO 의 내용을 보고 추가 수정해야 할 것 같음.

install_lilo()
  • mbr 설치가 아니면 LILO_BOOT=$HD_CHOICE
  • mbr 설치면
    • device.map 을 만들기 위해 grub-install 수행
    • 오류가 나면 다시 한번 수행
    • device.map 에서 (hd0) 에 해당하는 디바이스 선택하여 LILO_BOOT 에 설정
    • LILO_BOOT 가 null 이면, /proc/partitions 에서 sd 나 hd 에 해당하는 줄을 찾아 4 번째 항목만 추출한 후, sort 하여 첫번째 항목을 LILO_BOOT 에 설정 (grub 에서도 같은 일을 하는 것이 좋지 않을까?)
    • 첫번째 불럭 보관
  • LILO_VGA, LILO_ROOT 설정
  • make_lilo_conf > $TARGET_MNT_POINT/etc/lilo.conf
  • 오류 점검
  • chroot_it lilo
  • LILO bootsector 보관

make_lilo_conf()
  • 기본 사항 작성
    • lba32
    • boot=$LILO_BOOT
    • root=$LILO_ROOT
    • bitmap=$LILO_BITMAP
    • bmp-colors=$LILO_BITMAP_COLORS
    • bmp-table=$LILO_BITMAP_TABLE
    • bmp-timer=$LILO_BITMAP_TIMER
    • install=$LILO_INSTALL_MODE
    • delay=20
    • prompt
    • timeout=$LILO_TIMEOUT
    • vga=$LILO_VGA
  • LILO_CMDLINE 설정
  • LILO_INITRD 설정
  • default 커널 설정
  • 추가 커널 설정
  • 윈도우즈 추가


modules/booting/floppy.bm

  • 단지 grub 만을 설치하는 것으로 보임.
  • 커널의 사이즈 문제는 우려인듯 함.


modules/install/01-fstab.bm


fstab 의 다른 점 (debian, fedora)

modules/install/02-install-tools.bm


booyo 는 필요없을 것 같은데....

modules/install/03-system_types.bm


booyo 는 필요 없을 것으로 생각됨.

qtpatred or gparted


qtparted 를 설치하는 것이 보다 쉬움. gparted 를 설치하기 위해서는 설치해야 하는 것이 많음. 대부분 rpm 으로 되어 있지 않음. rpm 으로 되어 있는 것을 찾았음. 2005.5.9

수정 작업



mkinitrd option 이 변했음.

update-grub 가 FC3 에는 없슴. knoppix 의 스크립트 복사 tempfile 이 없으므로 mktemp 사용
#newtemplate=$(tempfile)
newtemplate=`mktemp ` || exit 1

#buffer=$(tempfile)
buffer=`mktemp ` || exit 1
HD_CHOICE="/dev/hdb1"
        GRUB_MBR=$(grep "(hd0)" device.map | awk '{ print $2 }')
        HD_CHOICE_BASE=${HD_CHOICE%%[0-9]}
        HD_CHOICE_NUM=${HD_CHOICE#$HD_CHOICE_BASE}
        GRUB_PART=""
        if [ "$GRUB_MBR" != "$HD_CHOICE_BASE" ]
        then
                GRUB_PART=$(grep $HD_CHOICE_BASE device.map | awk '{ print $1 }')
        fi
        if [ -z "$GRUB_PART" ]
        then
                ROOT_PART="(hd0,$(($HD_CHOICE_NUM-1)))"
        else
                GRUB_PART_BASE=${GRUB_PART%)}
                ROOT_PART="$GRUB_PART_BASE,$(($HD_CHOICE_NUM-1)))"
        fi
echo $ROOT_PART

fstab 관련

[root@localhost mnt]# cat /proc/mounts
rootfs / rootfs rw 0 0
/proc /proc proc rw,nodiratime 0 0
none /dev tmpfs rw 0 0
/dev/root / ext2 rw 0 0
none /dev tmpfs rw 0 0
/proc /proc proc rw,nodiratime 0 0
/proc/bus/usb /proc/bus/usb usbfs rw 0 0
/sys /sys sysfs rw 0 0
none /dev/pts devpts rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
[root@localhost mnt]# cat /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
LABEL=/                 /                       ext2    defaults        1 1
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /dev/shm                tmpfs   defaults        0 0
none                    /proc                   proc    defaults        0 0
none                    /sys                    sysfs   defaults        0 0
/dev/sda6               swap                    swap    defaults        0 0
/dev/hda                /media/cdrecorder       auto    pamconsole,ro,exec,noauto,managed 0 0
/dev/fd0                /media/floppy           auto    pamconsole,exec,noauto,managed 0 0
title Fedora Core (2.6.9-booyo)
        root (hd0,4)
        kernel /boot/vmlinuz-2.6.9-booyo ro root=LABEL=/
        initrd /boot/initrd-2.6.9-booyo.img

/etc/fstab 의 변화를 추적해야 함.

/dev/sda10 / ext2 defaults,errors=remount-ro 0 1
/proc      /proc       proc   defaults            0 0
/sys       /sys        sysfs  noauto              0 0
/dev/pts   /dev/pts    devpts mode=0622           0 0
/dev/fd0   /mnt/auto/floppy auto   user,noauto,exec,umask=000    0 0
/dev/cdrom /mnt/auto/cdrom  auto   user,noauto,exec,ro 0 0
# Added by KNOPPIX
/dev/hdb1 /mnt/hdb1 ext2 noauto,users,exec 0 0

fstab in knoppix-autoconfig


초기 /etc/fstab
/proc      /proc       proc   defaults            0 0
/sys       /sys        sysfs  noauto              0 0
/dev/pts   /dev/pts    devpts mode=0622           0 0
/dev/fd0   /mnt/floppy auto   user,noauto,exec,umask=000    0 0
/dev/cdrom /mnt/cdrom  auto   user,noauto,exec,ro 0 0

cdrom automount and add /etc/fstab

rebuildfstab -r -u knoppix -g knoppix

필요한 작업 수행 (조금 복잡함)

automounter 이 있으면 floppy, cdrom 의 mount point 조정 /mnt/auto/floppy

module_system() in 07-system.bm


register_vars "SYSTEM_MODULE SYSTEM_TYPE"

booyo-installer, 02-install-tools.bm

note


beginner 와 expert 로 구분하여 expert 는 file system 선택과 초기부팅시 설정을 하도록 하는 것이 어떨까? /.unconfigured 를 생성하면 될 것 같음. 이 경우 root passwd 는 rc.sysinit 에서 설정함.

module_name 은 없에는 것이 좋겠슴. (passwd 에서 사용함. 필요할 것으로 생각됨)

BOOT_LOADER 은 grub 로 fix 했슴.

SYSTEM_TYPE 를 INSTALL_TYPE 로 변경했슴. 계속 검토해야 함.

boot-tools.bm: GRUB_CMDLINE=$(module_system_get_cmdlines): 우선 comment 처리했슴. 생각해 볼 필요 있슴. experienced 는 grub.conf 를 수정보완할 능력이 있다. module_system_get_cmdlines() {
case "$INSTALL_TYPE" in
beginner)
echo $(cat /proc/cmdline | sed 's/vga=^ * //g; s/initrd=^ * //g; s/BOOT_IMAGE=^ * //g')
;; experienced)
SYSTEM_RESCUE_CMDS="acpi|noapic|nosmp|pci|pnpbios|noapm" SYSTEM_RESCUE_CMDLINE=$(cat /proc/cmdline | tr ' ' '\n' | egrep "$SYSTEM_RESCUE_CMDS" | tr '\n' ' ') echo "ramdisk_size=100000 lang=ko apm=power-off hda=scsi hdb=scsi hdc=scsi hdd=scsi hde=scsi hdf=scsi hdg=scsi hdh=scsi nomce $SYSTEM_RESCUE_CMDLINE"
;;
esac
}

modules/install/03-system_types.bm 생각해서 고쳐야 함.

gparted

http://newrpms.sunsite.dk/apt/redhat/en/i386/fc3/RPMS.newrpms/ 이 사이트에서 받아서 처리하는 것이 맞을 것 같음.
  • gparted-0.0.8-2.rhfc3.nr.i386.rpm
  • gtkmm24-2.4.8-1.rhfc3.nr.i386.rpm
  • glibmm-2.4.7-1.rhfc3.nr.i386.rpm
  • libsigc++2-2.0.11-1.rhfc3.nr.i386.rpm
[root@localhost ~]# rpm -ivh libsigc++2-2.0.11-1.rhfc3.nr.i386.rpm
경고: libsigc++2-2.0.11-1.rhfc3.nr.i386.rpm: V3 DSA signature: NOKEY, key ID b8693f2c
준비 중...               ########################################### [100%]
   1:libsigc++2             ########################################### [100%]
[root@localhost ~]# rpm -ivh glibmm-2.4.7-1.rhfc3.nr.i386.rpm
경고: glibmm-2.4.7-1.rhfc3.nr.i386.rpm: V3 DSA signature: NOKEY, key ID b8693f2c준비 중...               ########################################### [100%]
   1:glibmm                 ########################################### [100%]
[root@localhost ~]# rpm -ivh gtkmm24-2.4.8-1.rhfc3.nr.i386.rpm
경고: gtkmm24-2.4.8-1.rhfc3.nr.i386.rpm: V3 DSA signature: NOKEY, key ID b8693f2c
준비 중...               ########################################### [100%]
   1:gtkmm24                ########################################### [100%]
[root@localhost ~]# rpm -ivh parted-1.6.15-5.i386.rpm
경고: parted-1.6.15-5.i386.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2
준비 중...               ########################################### [100%]
        parted-1.6.15-5 패키지는 이미 설치되어 있습니다
[root@localhost ~]# rpm -ivh gparted-0.0.8-2.rhfc3.nr.i386.rpm
경고: gparted-0.0.8-2.rhfc3.nr.i386.rpm: V3 DSA signature: NOKEY, key ID b8693f2c
준비 중...               ########################################### [100%]
   1:gparted                ########################################### [100%]
parted 가 설치되어 있는지 점검 필요 시험을 어떻게 해야 할지????

http://dag.wieers.com/packages/ntfsprogs/
  • ntfsprogs-1.9.4-1.1.fc3.rf.i386.rpm
[root@localhost ~]# rpm -ivh ntfsprogs-1.9.4-1.1.fc3.rf.i386.rpm
경고: ntfsprogs-1.9.4-1.1.fc3.rf.i386.rpm: V3 DSA signature: NOKEY, key ID 6b8d79e6
준비 중...               ########################################### [100%]
   1:ntfsprogs              ########################################### [100%]

  • reiserfs-utils-3.6.18-1.i386.rpm
  • xfsprogs-2.6.13-2.i386.rpm

===

update-grub

knoppix 스크립트 복사 tempfile 이 없으므로 mktemp 로 변경

htpasswd 없음

2005. 5. 12

  • booyo-installer
    • main menu adjust
  • modules/00-dialog.bm
    • function menu adjust
  • modules/07-system.bm
    • module_system() bug fix
  • htpasswd
    • apache 설치

실제 복사 작업

  • knoppix: system_type_knoppix return 0
  • beginner: system_type_beginner return 0
  • debian: system_type_beginner, system_services

  • system_type_knoppix()
    • SYSTEM_USER_NAME=$USER_NAME
    • USER_NAME="$DEFAULT_USER"
    • system_copy_home
    • USER_NAME=$SYSTEM_USER_NAME
    • system_add_hd_config
    • system_copy_etc
    • system_add_services

  • system_type_beginner()
    • update_passwd
    • system_copy_home
    • system_add_hd_config
    • system_copy_etc
    • update_status $"Converting Knoppix to Multi-User-System..."
    • system_install_templates
    • system_install_keymap
    • system_update_files
    • system_install_i18n
    • system_setup_kdm
    • system_add_hd_autoconfig
    • system_add_services
    • system_fix_menus
    • system_create_modules

system_type_fedora3

system_type_booyo1


root 를 ramdisk 로 옮겨야 할 것 같음. beginner 의 경우는 그대로 복사 experienced 의 경우는 /etc/skel 만 복사

live cd 에서 /etc/rc.d/rc5.d 조정할 것 좀 더 생각해 보자

system_install_templates 에서 무엇을 할 것인지 생각 필요 system_update_files 생각할 필요 있음 system_install_i18n 생각할 필요 있음


고려해야 하는 파일들

* linuxrc
  • modules 을 modules.conf 에 넣어야 하는가?
  • mkinitrd 에서 알아서 해 주나?
  • ld.so.cache 를 build 에서 새로 만들어 주는가?
    • 본래의 ld.so.cache 로 환원해야 하나?
  • read/write 로 만드는 디렉토리: /home /etc /var
  • /root 에 write 가 되는지 점검 필요?
    • 된다면 왜 되는가? /ramdisk 에 만들지 않을 경우 어떤 영향이 있는가?
    • initrd 가 쓸 수 있는 메모리에 한계가 있지 않은가?
The root filesystem doesn't have to be modified often, except for some configuration files. So it is possible to mount this directory read-only. There are several reasons:

    * if the user wants a simple solution to use a read-only support for the root directory (perhaps a better solution could be to have a look to how create one's own live CD).
    * if the user is in paranoid mode and wishes to secure its system even more.
    * finally, to avoid that power loss or system crash damage the root partition. 

* booyo-init
  • /etc/localtime /etc/sysconfig/i18n
  • /etc/sysconfig/keyboard (mkxf86config)
  • /etc/sysconfig/clock /etc/sysconfig/network
  • /etc/sysconfig/network-scripts/ifcfg-eth0
  • /etc/sysconfig/pcmcia

* hwsetup-booyo
  • /etc/sysconfig/booyo (mkxf86config)
  • /etc/sysconfig/hwconf
  • /etc/sysconfig/xserver (mkxf86config 에서 사용)
  • /etc/sysconfig/netcard (왜 있지?)
  • /etc/sysconfig/sound
  • /etc/sysconfig/mouse (mkxf86config)

* mkxf86config
  • /etc/X11/xorg.conf

install fc4

{{{
    7  umount /mnt/hdc6
    8  mkfs.ext2 /dev/hdc6
    9  mount /dev/hdc6 /mnt/hdc6
   10  cd /mnt/hdc6
   16  cp -Rp /BOOYO/bin /mnt/hdc6/
   19  cp -Rp /BOOYO/boot /mnt/hdc6/
   20  cp -Rp /BOOYO/lib /mnt/hdc6/
   22  cp -Rp /BOOYO/opt /mnt/hdc6/
   23  cp -Rp /BOOYO/sbin /mnt/hdc6/
   24  cp -Rp /BOOYO/usr /mnt/hdc6/
   25  cp -Rp /dev /mnt/hdc6/
   26  cp -Rp /ramdisk/etc /mnt/hdc6/
   28  cp -Rp /ramdisk/home /mnt/hdc6/
   29  mkdir media
   30  mkdir mnt
   31  mkdir proc
   32  cp -Rp /ramdisk/home/root /mnt/hdc6/
   34  mkdir swap
   35  mkdir sys
   36  mkdir tmp
   37  cp -Rp /ramdisk/var /mnt/hdc6/
edit menu.lst
  115  cp /BOOYO/etc/inittab .
  118  cd sbin
  120  rm halt
  121  mv halt.org halt
  122  rm init
  123  mv init.org init
  125  rm poweroff
  126  mv poweroff.org poweroff
  129  rm reboot
  130  mv reboot.org reboot
edit fstab
  14  cp -Rp /BOOYO/etc /mnt/hdc6/
    4  cd etc/sysconfig
    5  ls
    6  cp /etc/sysconfig/hwconf .
    7  cp /etc/sysconfig/mouse .
    8  cp /etc/sysconfig/xserver .
    9  cd ../X11
   10  pwd
   11  cp /etc/X11/xorg.conf .

   48  cp -Rp /BOOYO/var/mail .



sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-01-04 17:32:10
Processing time 0.0339 sec