=== BooyoLiveCD/AnaConda === * boot: * kernel_name options * label_name options * Function key * isolinux.cfg * ks.cfg * command FC3 install CD ÀÇ ¿É¼Ç Ä¿³Î ¿É¼Ç: ¾ÆÁÖ ¸¹À½. mem=128M, ramdisk_size=8192 memtest86 installer ¿É¼Ç text mediacheck, rescue, dd, askmethod, updates, resolution=x, nofb, noprobe, skipddc, lores * CD ÀÇ ³»¿ë {{{ CentOS RELEASE-NOTES-en RPM-GPG-KEY-centos4 images yumgroups.xml GPL RELEASE-NOTES-en.html centosdocs-man.css isolinux NOTES RPM-GPG-KEY headers repodata }}} * isolinux ÀÇ ³»¿ë {{{ boot.cat initrd.img memtest rescue.msg vmlinuz boot.msg isolinux.bin options.msg snake.msg general.msg isolinux.cfg param.msg splash.lss }}} * initrd.img * mv initrd.img initrd.gz * gunzip initrd.gz * mkdir tmp * mount -o loop initrd tmp * tmp ÀÇ ±¸Á¶ ( initrd.img ÀÇ ³»¿ë ) {{{ bin dev etc linuxrc lost+found modules proc sbin selinux sys tmp var }}} === linuxrc === * linuxrc ´Â sbin/init ¿¡ link µÇ¾î ÀÖÀ½ * sbin ¹ØÀÇ halt, poweroff, shutdown Àº init ¿¡ link µÇ¾î ÀÖÀ½. * linux rescue ÀÇ °æ¿ì ÀÌ¿Ü¿¡ »ç¿ë°¡´ÉÇÑ°¡? * anaconda/loader2/init.c °¡ source ÀÓ * /proc, /dev/pts, /sys ¸¦ ¸¶¿îÆ® * console(/dev/console) ¿¡ ÇØ´çÇÏ´Â °ÍÀ» ã¾Æ device ¿¡ assign. * È£½ºÆ®¸í ¼³Á¤ localhost.localdomain * / ÆÄÀϽýºÅÛÀ» r/w ·Î ´Ù½Ã ¸¶¿îÆ® (¾î¶»°Ô ¸¶¿îÆ®¸¦ ÇÒ±î?) mount("/", "/", "ext2", MS_REMOUNT | MS_MGC_VAL, NULL) * /tmp ¸¶¿îÆ®: mount("none", "/tmp", "ramfs", 0, NULL) * /sbin/loader ¼öÇà * È­¸é Ãâ·Â * printstr("Greetings.\n"); * printf("anaconda installer init version %s starting\n", VERSION); * printf("mounting /proc filesystem... "); * printf("creating /dev filesystem... "); * printf("mounting /dev/pts (unix98 pty) filesystem... "); * printf("mounting /sys filesystem... "); * printf("trying to remount root filesystem read write... "); * printf("running install...\n"); * *argvp++ = "/sbin/loader"; * printf("running %s\n", argvc[0]); * execve(argvc[0], argvc, env); === loader === * insmod, modprobe, rmmod °¡ loader ¿¡ link µÇ¾î ÀÖÀ½. * linux rescue ÀÌ¿ÜÀÇ °æ¿ì¿¡ »ç¿ë°¡´ÉÇÑ°¡? * anaconda/loader2/load.c °¡ source ÀÓ. * insmod, modprobe, rmmod ´Â modstubs.c ¿¡ ÀÖÀ½. * ¿É¼Ç Á¡°Ë ¹× ¼³Á¤ cmdline, ksfile, test, mediacheck, virtpconsole * ¸ðµâ°ü·Ã ÀÛ¾÷ * /modules/module-info ¸¦ Àоî modinfo ¿¡ ÀúÀå * /proc/modules ¸¦ Àоî modloaded ¿¡ ÀúÀå * /modules/modules.dep À» Àоî modDeps ¿¡ ÀúÀå * console À» À§ÇÑ ¸ðµâ, font, keymap À» ¿Ã¸². * iSeries vio console Á¡°Ë ÇÊ¿ä(PowerPC ÀÇ iSeries ¸Ó½Å) * load modules: cramfs:vfat:nfs:loop:isofs:floppy:edd * ide, scsi, dasd ¼³Á¤ * cdrom:ide-cd * scsi_mod:sd_mod:sr_mod * dasd_mod, dasd_diag_mod:dasd_fba_mod:dasd_eckd_mod * usb ÃʱâÈ­ * usb controller °¡ ÀÖ´ÂÁö Á¡°Ë * doPwMount("/proc/bus/usb", "/proc/bus/usb", "usbfs", 0, 0, NULL, NULL, 0, 0) * usb-storage * firewire ÃʱâÈ­ * firewire controller ÀÌ ÀÖ´ÂÁö Á¡°Ë * ÀÖÀ¸¸é °ü·Ã ¸ðµâ ·Îµå * read /modules/pcitable * language set (loader ÀÇ ¾ð¾î) * cmdline ¿¡ ÀÔ·ÂµÈ ¸ðµâ ·Îµå * µð¹ÙÀ̽º °Ë»ö (probeDevices) * doLoaderMain (CD-ROM °Ë»ö, ÆÄÀϽýºÅÛ ¿Ã¸®´Â µí ÇÔ) * cdinstall.c * findAnacondaCD * setupCdrom: base ¹ØÀÇ stage2.img ¸¦ mount ÇÔ * queryCDMediaCheck {{{ rc = newtWinChoice(_("CD Found"), _("OK"), _("Skip"), _("To begin testing the CD media before installation press %s.\n\n" "Choose %s to skip the media test and start the installation."), _("OK"), _("Skip")); }}} * selinux °ü·Ã ÀÛ¾÷ * ´Ù½Ã ¸ðµâÀ» ¿Ã¸®´Â ÀÛ¾÷À» ÇÔ. (kickstart ¶§¹®ÀεíÇÔ) * ´Ù½Ã ide, scsi ¸¦ ÇÏ°í busProbe ÇÔ. (kickstart ¶§¹®ÀεíÇÔ) * agpgartInitialize * initializeParallelPort * usbInitializeMouse * set environment (python path...) * set anaconda path and options * rescue, serial, T, graphical, C, expert, noselinux, selinux * kickstart, virtpconsole, lang, keymap, module {{{ buf = sdupprintf(_("Running anaconda, the %s system installer - please wait...\n"), getProductName()); printf("%s", buf); }}} * anaconda ¼öÇà * execv(anacondaArgs[0], anacondaArgs); === /base/stage2.img === * loader2/loader.c * main * doLoaderMain * fineAnacondaCD * loader2/cdinstall.c * findAnacondaCD * setupCdrom * mountStage2 * loader2/method.c * mountStage2 * mountLoopback * mount -o loop stage2.img tpm * tmp ÀÇ ±¸Á¶ {{{ etc lib modules proc usr var [root@localhost etc]# ls fonts gtk-2.0 ld.so.cache nsswitch.conf passwd protocols selinux group joe man.config pango prelink.conf rpm services [root@localhost usr]# ls X11R6 bin lib sbin share }}} {{{ /usr/bin [root@localhost bin]# ls Xvnc du ln mount reset test [ echo load_policy mpartition rlogin time anaconda egrep loadkeys mrd rm top ash emacs losetup mren rmdir touch awk env ls msh rmmod tr basename expr lsattr mshowfat route traceroute bash false lsmod mt rpm true bunzip2 fgrep makedevs mtools rpm2cpio tty busybox find mattrib mtype rsh umount bzcat free mbadblocks mv scp uname bzip2 ftp mcd mzip sed uniq cat grep mcopy nc sftp unzip chattr gunzip md5sum open sh uptime chgrp gzip mdel openvt shred usleep chmod halt mdeltree pico sleep vi chown head mdir pidof sort vncconfig chroot hexdump mdu ping ssh vncpasswd chvt hostname mformat pivot_root strings wc clear id minfo ps stty wget cmp ifconfig mini-wm pump swapoff which cp install mkdir pwd swapon whoami cpio jmacs mknod python sync xargs cut joe mktemp python2.3 syslinux yes date jpico mlabel raidstart tac zcat dd kill mmd raidstop tail deallocvt killall mmount rcp tar df kudzu-probe mmove rdate tee dirname less modprobe readlink telnet dmesg list-harddrives more rescue-startx termidx /usr/sbin [root@localhost sbin]# ls arp dump hdparm mdadm mkswap rrestore badblocks e2fsck hwclock mkdosfs mtr sfdisk chroot e2label ifconfig mke2fs parted traceroute clock fdisk load_policy mkfs.ext2 prelink tune2fs ddcprobe fsck lspci mkfs.ext3 resize2fs debugfs fsck.ext2 lvm mkfs.msdos restore dmidecode fsck.ext3 lvm.static mkfs.vfat route }}} === anaconda === boot ¿É¼ÇÀ¸·Î ÁÙ ¼ö ÀÖ´Â °ÍÀº Çϵå¿þ¾î °Ë»ö disable, ÀνºÅç ¹Ìµð¾î ½ÃÇè, ÀνºÅç ¹æ¹ý ¼±Åà µîÀÌ ÀÖ½¿. http://www.cwelug.org/cgi-bin/wiki.cgi?FedoraCore3 anaconda ¸¦ ºÐ¼®ÇÏÁö¸¸, live CD ¸¦ ¸¸µå´Âµ¥ ÇÊ¿äÇÑ ºÎºÐ¸¸ ºÐ¼®ÇÕ´Ï´Ù. /sbin/loader °¡ ¿É¼ÇÀ» Ãß°¡ÇÏ¿© anaconda ¸¦ call ÇϴµíÇÔ. path append argument parsing try: (args, extra) = isys.getopt(theargs, 'CGTRxtdr:fm:', [ 'graphical', 'text', 'test', 'debug', 'nofallback', 'method=', 'rootpath=', 'pcic=', "overhead=", 'testpath=', 'mountfs', 'traceonly', 'kickstart=', 'lang=', 'keymap=', 'kbdtype=', 'module=', 'class=', 'expert', 'serial', 'lowres', 'nofb', 'rescue', 'nomount', 'autostep', 'resolution=', 'skipddc', 'noselinux', 'selinux', 'vnc', 'vncconnect=', 'vnc=', 'cmdline', 'headless', 'virtpconsole=']) archtecture °¡ s390 ÀÏ °æ¿ì isHeadless = 1 anaconda ¸¦ call Çϱâ Àü¿¡ ÀÌ¹Ì È­¸é¿¡ ÀÇÇØ setting ÀÌ µÇ´Â°¡? language, keyboard, ¼³Ä¡ or upgrade, ¼³Ä¡À¯Çü, µð½ºÅ©ÆÄƼ¼Ç, ºÎÆ®·Î´õ, ³×Æ®¿öÅ©, ¹æÈ­º® selinux, Ãß°¡¾ð¾î, ½Ã°£´ë anaconda ¿¡¼­ ¸Þ´º È­¸é µð½ºÇ÷¹ÀÌÇÏ°í setting ÇϴµíÇÔ. if not isHeadless: try: import xsetup import rhpl.xhwstate as xhwstate except ImportError: isHeadless = 1 import rhpl.keyboard as keyboard import rhpl.xserver as xserver skipddcprobe = skipddc or (x_already_set and flags.test) skipmouseprobe = not ('DISPLAY' not in os.environ or flags.setupFilesystems) (videohw, monitorhw, mousehw) = xserver.probeHW(skipDDCProbe=skipddcprobe, skipMouseProbe = skipmouseprobe) try: xcfg = xhwstate.XF86HardwareState(defcard=videohw, defmon=monitorhw) kbd = keyboard.Keyboard() if keymap: kbd.set(keymap) xsetup_failed = xserver.startXServer(videohw, monitorhw, mousehw, kbd, runres, xStartedCB=doStartupX11Actions, xQuitCB=doShutdownX11Actions, logfile=xlogfile) if mousehw: id.setMouse(mousehw) if videohw: id.setVideoCard(videohw) if monitorhw: id.setMonitor(monitorhw) xsetup = xsetup.XSetup(xcfg) id.setXSetup(xsetup) if kbd: id.setKeyboard(kbd) instClass.setInstallData(id) if lang: dispatch.skipStep("language", permanent = 1) instClass.setLanguage(id, lang) if keymap: dispatch.skipStep("keyboard", permanent = 1) instClass.setKeyboard(id, keymap) === rhpl === xserver probeHW videocard.VideoCardInfo cards = kudzu.probe (kudzu.CLASS_VIDEO, kudzu.BUS_PCI | kudzu.BUS_SBUS, kudzu.PROBE_ALL); monitor.MonitorInfo /usr/sbin/ddcprobe mouse.Mouse list = kudzu.probe(kudzu.CLASS_MOUSE, kudzu.BUS_UNSPEC, kudzu.PROBE_ALL) === bootloader.py === instbootloader === etc/sysconfig === {{{ cbq rhn networking spamassassin - need check selinux -> ../selinux/config apm-scripts netdump_id_dsa.pub - need check netdump_id_dsa - need check network-scripts ifcfg-eth0 - need check network - need check keyboard - need check i18n - need check authconfig - need check desktop - 0 system-config-securitylevel - need check iptables-config - need check clock - need check firstboot hwconf - need check }}} * /usr/lib/anaconda-runtime/pkgorder /root/aster2.5 i386 CentOS | tee pkgorder.txt