== BooyoLiveCD/MakeInitrd/ChangeLinuxrc == 1. CD ¸¦ Àбâ À§ÇÑ ¸ðµâ ·Îµå knoppix ÀÇ ¹æ½ÄÀ» ±×´ë·Î »ç¿ëÇÑ´Ù. (´ÜÁö expert ¿É¼ÇÀ» »ç¿ëÇÏ¿© µð½ºÅ©¿¡¼­ ¸ðµâÀ» ·ÎµåÇÏ´Â ºÎºÐÀº ¾ø¾Ø´Ù. ¾ø¾ÖÁö ¾Ê´Â´Ù.) === KNOPPIX ÀÇ °æ¿ì === * ±âº»À¸·Î ¿Ã¸®´Â ¸ðµâµé * iso9660 ext2 vfat ´Â Ä¿³Î¿¡ ¼³Ä¡ * ide-cd.o * IDECD °¡ ÀÖÀ¸¸é, ide-scsi.o (CMDLINE in *idecd*|*atapicd*) * NOSCSI °¡ ¾Æ´Ï¸é scsi ¸ðµâ ·Îµå * NORAID °¡ ¾Æ´Ï¸é *raid* ¸ðµâ ·Îµå * NOUSB °¡ ¾Æ´Ï¸é * usbcore.o usb-uhci.o usb-ohci.o usb-storage.o (¾ÕÀÇ ¸ðµâÀÌ ¿Ã¶ó¿Í¾ß µÚÀÇ °ÍÀ» ·ÎµåÇÔ) * NOFIREWIRE °¡ ¾Æ´Ï¸é * ieee1394.o ohci1394.o sbp2.o (¾ÕÀÇ ¸ðµâÀÌ ¿Ã¶ó¿Í¾ß µÚÀÇ °ÍÀ» ·ÎµåÇÔ) === BERRY ÀÇ °æ¿ì === * ±âº»À¸·Î ¿Ã¸®´Â ¸ðµâµé * iso9660 ext2 Àº Ä¿³Î¿¡ ¼³Ä¡ * scsi_mod.*o, sr_mod.*o * usbcore.ko, ohci-hcd.ko, uhci-hcd.ko, ehci-hcd.ko, usb-storage.*o, sd_mod.*o * usbhid.ko * loop.*o * cdrom.*o, ide-cd.*o, isofs.*o * nls_cp437.*o, nls_utf8.*o * fat.*o, vfat.*o * ntfs.*o * jbd.*o, ext3.*o * reiserfs.*o * NOSCSI °¡ ¾Æ´Ï¸é scsi ¸ðµâµé ·Îµå * NOUSB ´Â comment ó¸®ÇÏ°í À§¿¡¼­ ¸ðµâ ¸ðµÎ ¿Ã¸². * NORAID °¡ ¾Æ´Ï¸é *raid* ¸ðµâ ·Îµå * NOFIREWIRE °¡ ¾Æ´Ï¸é, ieee1394.*o ¿Ã¸®°í sbp2.*o ¸¦ ¿Ã¸². === BOOYO ÀÇ °æ¿ì === * iso9660 ext2 Àº Ä¿³Î¿¡ ¼³Ä¡ * idecd, usbcore, isofs Ä¿³Î¿¡ ¼³Ä¡ * nls_cp437 nls_ascii ´Â Ä¿³Î¿¡ ¼³Ä¡ * cdrom Àº ¾Æ¿¹ ¾øÀ½. (no Y M) SCSI CDROM, ATAPI CDROM, IDE CDROM http://kb.indiana.edu/data/adlt.html?cust=807776.19713.131 http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/man/README/README.ATAPI http://home.earthlink.net/~rongonz/home_rec/ide_scsi_etc.html The number of machines which boot from a scsi cdrom or even scsi dvd-rom are relative small. It would be more like old 486 and P5 classic server-type machines. These machines are outdated. Any PII, PIII , P4 and AMD based ix86 based machine can boot from ATAPI cd-rom. Ä¿³Î ¿É¼Ç¿¡ µû¶ó ÇÊ¿äÇÑ ¸ðµâ ·Îµå (ÀÚµ¿°Ë»öÀÌ ºÒ°¡´ÉÇÑ°¡?) ºÒ°¡´ÉÇÏ´Ù. ´ÜÁö kernel option ¿¡¼­ yes ·Î ÁØ °Í¸¸ °¡´ÉÇÏ´Ù. SCSI ¿É¼ÇÀ» yes ·Î ÁÖ´Â °ÍÀ¸·Î ÇØ°áµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó SCSI host adapter À» ¸ðµÎ yes ·Î ÁÖ¾î¾ß ÇÑ´Ù. ÇÏÁö¸¸ ÀÌ´Â ¹®Á¦°¡ ÀÖ´Ù. (Ä¿³Î »çÀÌÁî, scsi host adapter module ÀÇ bug) °á±¹ boot option ¿¡¼­ noscsi ´ë½Å scsi ¿É¼ÇÀ» »ç¿ëÇÏ¿© scsi ¸¦ »ç¿ëÇÏ´Â ±â±â¸¸ scsi host adapter modules À» ¿Ã¸± ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÀÌ °æ¿ì expert ±â´Éµµ °°ÀÌ ÀÖ´Â °ÍÀÌ ÁÁÀ» µí ÇÔ. noscsi ¿É¼Ç ±×´ë·Î »ç¿ëÇϱâ·Î ÇÔ. udev ¸¦ initrd ¿¡ ³Ö°í, µ¹¸®¸é ¾î¶³±î? * udev ´Â ´ÜÁö /dev ÆÄÀÏÀ» ¸¸µé»Ó ¸ðµâ°ú´Â ¹«°üÇÏ´Ù. * /dev ÆÄÀÏÀ» Á¡°ËÇÏ¿© ÇÊ¿äÇÑ ¸ðµâÀ» ã´Â °Í ¿ª½Ã ¾î·Æ´Ù. * proc ¸¸À¸·Î Á¡°ËÇÏ´Â °Íµµ ¾î·Æ´Ù. udev ÀÇ »çÀÌÁî°¡ 558K ÀÎ °ÍÀ» »ý°¢Çϸé, ¾È ³ÖÀº °ÍÀÌ ¹Ù¶÷Á÷Çغ¸ÀδÙ. ¼Óµµ ¹®Á¦ ¿ª½Ã ¾ø´Â °ÍÀÌ ÁÁÀ» °ÍÀÓ. ¹®Á¦´Â ¾î¶² /dev ÆÄÀÏÀ» Ãʱ⿡ ¸¸µé¾î ³õÀ» °ÍÀΰ¡¸¦ °áÁ¤ÇÏ´Â °ÍÀÌ ¹®Á¦´Ù. PC ¸¸À» °í·ÁÇÑ´Ù¸é ¸¹Àº /dev ÆÄÀÏÀÌ ÇÊ¿äÇÏÁö´Â ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ¹Ì »çÀÌÁî´Â 1.4M ´Â ³Ñ¾ú°í, 2.8M ·Î °¡´ÉÇÑ°¡? floppy ¸¦ ¿ÏÀüÈ÷ ¹«½ÃÇÏ´Â °ÍÀÌ ¸Â´Â°¡? ÀüºÎ¸¦ ·ÎµåÇÏ´Â ½Ã°£°ú udev ¸¦ »ç¿ëÇÏ¿© °Ë»ö, ÇÊ¿äÇÑ ¸ðµâ¸¸ ¿Ã¸®´Â °Í°úÀÇ ½Ã°£ Â÷ÀÌ´Â? ´Ù¸¥ ÀÌÀ¯·Î udev ¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ¼³Ä¡ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÑ Çϵå¿þ¾î¸¦ Á¡°ËÇÏ¿©, mkinitrd ÀÇ RCFILE ¿¡ ¸ðµâ ·Îµå ¸í·ÉÀ» ÁØ´Ù. SCSI, USB, firewire, DVD, IDECD, IDERAID 2. enable DMA for FROMHD or TORAM mode 3. try to find LIVE CD or CD image (¼³Ä¡µÈ µð¹ÙÀ̽º¸¸ °Ë»öÇÒ ¼ö´Â ¾ø´Â°¡?) À̸¦ À§ÇØ udev °¡ ¸ÕÀú ¼öÇàµÇ¾î¾ß ÇÔ. udev ¸¦ ¼öÇàÇØ¾ß /dev ¹Ø¿¡ hd, scd, pcd, sd µîÀÌ »ý¼ºµÉ ¼ö ÀÖ½¿. udev ¸¦ ¼öÇàÇÏÁö ¾ÊÀ¸·Á¸é, /dev ¹Ø¿¡ À§ÀÇ ÆÄÀϵéÀ» ¸¸µé¾î ³õ¾Æ¾ß ÇÔ. ¸î°³³ª ¸¸µé¾î ³õÀ» °ÍÀΰ¡? (knoppix ¿Í ¶È°°ÀÌ) ¾î´À ¹æ¹ýÀÌ ½Ã°£ÀÌ ´õ °É¸®´Â°¡? udev ¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ÅÃÇÑ´Ù. ´ÜÁö udev °¡ ÇÊ¿äÇÑ /dev ÆÄÀϵéÀ» ¸ðµÎ »ý¼ºÇϱ⸦ ¹Ù¶÷. /dev/hd, /dev/scd, /dev/pcd, /dev/sd udev »ç¿ë ¾ÈÇÏ´Â °ÍÀ¸·Î º¯°æ. ¾Õ¿¡¼­ºÎÅÍ Ã£À¸¹Ç·Î ½Ã°£ÀÇ ¹®Á¦´Â ¾øÀ» °ÍÀ¸·Î »ý°¢µÊ. ÀÌ ºÎºÐ¿¡ ´ëÇÑ Á¡°ËÀÌ ÇÊ¿äÇÔ. ¼ø¼­°¡ hda, hdb, hdc µîÀ¸·Î ¾ÈµÇ¾î ÀÖ´Â °æ¿ì Çϵåµð½ºÅ© ÆÄƼ¼Ç¿¡ /KNOPPIX/KNOPPIX °¡ ÀÖ´Â °æ¿ì ¿©·¯°³ÀÇ ÆÄƼ¼Ç¿¡ /KNOPPIX/KNOPPIX °¡ ÀÖ´Â °æ¿ì ¹«Á¶°Ç ù¹ø° /KNOPPIX/KNOPPIX °¡ ¿Ã¶ó¿Àµµ·Ï µÇ¾î ÀÖ½¿. (fromhd ¿É¼ÇÀÌ ¾ø´Â °æ¿ì, Áï ¿©·¯°³°¡ ÀÖÀ» °æ¿ì¿¡´Â fromhd ¸¦ »ç¿ëÇØ¾ß ÇÔ) /KNOPPIX/KNOPPIX, /BERRY/BERRY, /BOOYO/BOOYO °¡ Á¸ÀçÇÏ´ÂÁö Á¡°Ë 4. mount compressed image using cloop (mount_knoppix) $INSMOD -f /modules/cloop.o file=$1/$KNOPPIX_DIR/$KNOPPIX_NAME ¿¡ ÀÇÇØ /dev/cloop °¡ ÀÚµ¿»ý¼ºµÇ´Â°¡? ¾Æ´Ï´Ù. À̸¦ À§ÇØ /dev ¹Ø¿¡ cloop °¡ Á¸ÀçÇÏ¿©¾ß ÇÏ°í, /dev/cloop0 ¿¡ ¸µÅ©µÇ¾î ÀÖ¾î¾ß ÇÒ °Í °°À½. ¾Æ´Ï¸é mountit /dev/cloop /KNOPPIX "-o ro" À» mountit /dev/cloop0 /KNOPPIX "-o ro" ·Î ¼öÁ¤ÇÒ °Í /KNOPPIX/KNOPPIX, /BERRY/BERRY, BOOYO/BOOYO 5. toram, tohd, bootfrom ÀÇ ¿É¼Ç¿¡ µû¶ó ÇÊ¿äÇÑ ÀÏÀ» ÇÑ´Ù. * bootfrom Àº /KNOPPIX/KNOPPIX ¸¦ ¿Ã¸°ÈÄ, ntfs ³ª reiserfs ¿¡ º¹»çÇØ ³õÀº /KNOPPIX/KNOPPIX ¸¦ »ç¿ëÇÔ. ÀÌÀ¯´Â ntfs ³ª reiserfs ÀÇ ¸ðµâÀ» ¿Ã·Á¾ß Çϱ⠶§¹®ÀÓ. * ÀÌ °æ¿ì cloop ¸¦ rmmod ÇÔ. (ÀÌ °æ¿ì Á×À» ¼ö ÀÖ½¿) * cdrom À» »ç¿ëÇϱâ À§ÇÑ °ÍÀÓ. 6. ¾ÐÃàÆÄÀÏ¿¡¼­ ÇÊ¿äÇÑ ÆÄÀÏÀ» initrd ·Î º¹»çÇϰųª ¸µÅ©ÇÑ´Ù. 7. ¸Þ¸ð¸®ÀÇ Å©±â¸¦ Á¡°ËÇÏ¿© ramdisk ¸¦ ¸¸µç´Ù. 8. ramdisk ¹Ø¿¡ ÇÊ¿äÇÑ µð·ºÅ丮¸¦ ¸¸µé°í, ¾ÐÃàÆÄÀÏ¿¡¼­ ÇÊ¿äÇÑ ÆÄÀÏÀ» º¹»çÇϰųª ¸µÅ©ÇÑ´Ù. 9. udev ¸¦ »ç¿ëÇÏ¿© ÇÊ¿äÇÑ /dev ÆÄÀÏÀ» ¸¸µç´Ù. Knoppix ÀÇ °æ¿ì´Â initrd ¹ØÀÇ /dev ÆÄÀÏÀ» ¸µÅ©ÇÔ. BERRY ÀÇ °æ¿ì´Â devfs ¸¦ »ç¿ëÇÔ. udev ¸¦ »ç¿ëÇÒ °ÍÀÎÁö, /dev ÆÄÀÏÀ» ¸¸µé¾î ³õÀ» °ÍÀÎÁö °ËÅä ÇÊ¿ä. ÀÌ ºÎºÐÀº À§·Î ¿Ã·È½¿. 10. ·çÆ® µð¹ÙÀ̽º¸¦ /dev/ram0 À¸·Î ¹Ù²Û´Ù. BERRY ÀÇ °æ¿ì Çϵåµð½ºÅ©¿¡ ISO ÇüÅ·ΠÀְųª, ¼³Ä¡µÇ¾î ÀÖ´Â °æ¿ì, pivot_root ¸¦ »ç¿ëÇÔ. dietlibc °¡ 2.6 Ä¿³ÎÀ» ÃæºÐÈ÷ Áö¿øÇÒ ¶§ ´Ù½Ã °í·ÁÇÑ´Ù. === ±âº» ¹æħ === initrd ´Â knoppix ÀÇ °ÍÀ» °¡´ÉÇÑÇÑ ±×´ë·Î »ç¿ëÇϵµ·Ï ÇÑ´Ù. linuxrc ¿ª½Ã °¡´ÉÇÑÇÑ Á¶±Ý °íÄ£´Ù. ½ÇÁ¦·Î °íÃÄ¾ß ÇÒ Á¡ Ä¿³Î, ¸ðµâ /dev µµ ±×´ë·Î »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ°ÚÀ½. (udev ¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù) sysroot ¸¦ »ç¿ëÇÏÁö ¾Ê°í, cdrom À» »ç¿ëÇÑ´Ù. linuxrc ¿¡¼­ scsi host adapter ¸¦ detect ÇÏ´Â °ÍÀº ¾î·Æ´Ù. ¿Ö³ÄÇÏ¸é ºñ½Ñ scsi host adapter Ä«µå´Â rom À» ³»ÀåÇÏ°í ÀÖ¾î ÀÌ¿¡ ÀÇÇÏ¿© detect °¡ °¡´ÉÇÏÁö¸¸, ½Ñ °¡°ÝÀÇ scsi host adapter ´Â rom À» »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î detect °¡ ºÒ°¡´ÉÇÒ»Ó ¾Æ´Ï¶ó, detect °úÁ¤¿¡ ÀÇÇØ ½Ã½ºÅÛ ÀÚü°¡ hang ÇÏ´Â °æ¿ìµµ ÀÖ´Ù. udev ¿¡ ÀÇÇØ »ý¼ºµÇ´Â /dev ÆÄÀÏÀº ´ÜÁö scsi device ¸¦ ³ªÅ¸³¾ »Ó, scsi host adapter ¸¦ ³ªÅ¸³»Áö´Â ¾Ê´Â´Ù. /ramdisk °ü·Ã Á¶»ç ÇÊ¿ä. rm and cp ÇØ¾ß ÇÏ´Â ÆÄÀϵéÀÇ ¸ñ·ÏÀ» ¸¸µé¾î¾ß ÇÔ. knoppix ÀÇ °æ¿ì /bin/mount -t tmpfs -o "size=${RAMSIZE}k" /ramdisk /ramdisk && mkdir -p /ramdisk/home /ramdisk/var && ln -s /ramdisk/home /ramdisk/var / berry ÀÇ °æ¿ì /bin/mount -t tmpfs -o "size=${RAMSIZE}k" /dev/shm /ramdisc mkdir -p /ramdisc/home /ramdisc/var mv /etc /ramdisc ln -s /ramdisc/home /ramdisc/var /ramdisc/var/tmp /ramdisc/etc / /ramdisk ¸¦ »ç¿ëÇÏ´Â °æ¿ì¿Í /dev/shm À» »ç¿ëÇÏ´Â °ÍÀÇ Â÷ÀÌ´Â? mv /etc /ramdisc: initrd.img ¹ØÀÇ /etc ÀÇ ³»¿ëÀ» /ramdisk ·Î À̵¿ ln -s /ramdisc/var/tmp / ´Â ¿À·ù¸¦ ¹ß»ýÇØ¾ß ÇÏ´Â °Í °°Àºµ¥... (¿À·ù¹ß»ýÇÏÁö ¾ÊÀ½. ¸µÅ©µµ »ý¼ºµÇÁö ¾ÊÀ½) === 2005.03.17 === * /dev/cloop ¸¦ /dev/cloop0 ·Î * DEVICES="$DEVICES /dev/hd?[1-9] /dev/hd?[1-9][0-9]" Ãß°¡ (emulation on disk) * ln -s ¿¡ /ramdisk/etc Ãß°¡ * ls -s /BOOYO/var/lib/scrollkeeper ¸¦ ln -s ·Î ¿À·ù¼öÁ¤ * rm -rf /etc/sysconfig/network-scripts/ifup /etc/sysconfig/network-scripts/ifdowncp -aus /sbin/ifup /sbin/ifdown /etc/sysconfig/network-scripts µÎ ÁÙÀÌ ÇÑÁÙ·Î ºÙ¾ú½¿. ºÐ¸® * umount /proc Ãß°¡ (Á» ´õ »ý°¢ÇÒ °Í) * mkdir ¿¡¼­ /var/local Á¦°Å /home/root Ãß°¡ * cp -a /BOOYO/etc/skel/ /home/berry * chown -R booyo.booyo /home/booyo * ln -s /BOOYO/etc/skel /etc/ 2>/dev/null * umount /proc === ¼­ºñ½º °ü·Ã ¿À·ùµé === * mDNSResponder * need /etc/sysconfig/network * cups * cups (À»)¸¦ ½ÃÀÛÇÕ´Ï´Ù: Traceback (most recent call last): * File "/usr/sbin/printconf-backend", line 7, in ? import backend * File "/usr/share/printconf/util/backend.py", line 54, in ? which = cups_import.which_spooler () * File "/usr/share/printconf/util/cups_import.py", line 191, in which_spooler which = l.split ('.')[1].strip () IndexError: list index out of range * need cp /etc/alternatives/print in linuxrc * xfs * tcheun@localhost ~$ /usr/sbin/chkfontpath --list Current directories in font path: 1: /usr/?X11R6/lib/X11/fonts/korean 2: /usr/X11R6/lib/X11/fonts/misc:unscaled 3: /usr/X11R6/lib/X11/fonts/75dpi:unscaled 4: /usr/X11R6/lib/X11/fonts/100dpi:unscaled 5: /usr/X11R6/lib/X11/fonts/Type1 6: /usr/X11R6/lib/X11/fonts/Speedo 7: /usr/share/fonts/default/Type1 8: 9: /usr/share/fonts/ko/?TrueType * font.dir º¸´Ù »õ·Î »ý¼ºµÈ ÆÄÀÏÀÌ ÀÖÀ¸¸é, font.dir À» Áö¿ì°í »õ·Î ¸¸µé·Á°í ÇÔ. ÇÏÁö¸¸ read-only ÆÄÀÏ ½Ã½ºÅÛÀ̹ǷΠ¿À·ù ¹ß»ý. fond.dir ÀÇ »ý¼º ½Ã±â¸¦ ÃÖ½ÅÀ¸·Î ¸¸µé¸é µÉ °ÍÀÓ. * booyo-init ¿¡¼­ ¼öÇàÇÏ´Â °ÍÀÌ °¡Àå ÀûÀýÇÒ °ÍÀ¸·Î º¸ÀÓ. {{{ for d in $(/usr/sbin/chkfontpath --list | cut -f 2 -d ':' | sort | uniq) ;do if [ -d "$d" ]; then cd "$d" if [ -e fonts.dir ]; then touch fonts.dir fi fi done }}} * sendmail * /etc/mail/sendmail.cf: line 94: fileclass: cannot open '/etc/mail/local-host-names': World writable directory * /etc/mail/sendmail.cf 91, 588 sm-client /etc/mail/submit.cf 548 class file can't open /etc/mail/local-host-names, trusted-users * cp files in linuxrc, but not solved. remove sticky bit from etc in linuxrc, but not solved * /etc is softlinked to /ramdisk/etc, thus rw mode is set for group and others. I guess this cause the above problem. how solve this problem ? * insert the following line in /etc/mail/sendmail.cf, submit.cf O DontBlameSendmail=ClassFileInUnsafeDirPath === option === * slax * acpi=off nohotplug nopcmcia noagp nodma nohd nocd load= * passwd= webconfig= noquest * toram copy2ram * floppy * debug * gui guifast guisafe * memtest * knoppix 3.9 * knoppix debug failsafe expert memtest fbXXXXxXXX * knoppix * lang= tz= keyboard= xkeyboard= * gmt desktop= * screen= vga= vsync= hsync= xvrefresh= xhrefresh= xserver= xmodule= * floppyconfig myconf= * home= * no scsi pcmcia usb agp swap apm apic mce ddc audio ddc dhcp fstab firewire usb2 * pnpbios=off acpi=off * toram * pci= ide2= mem= dma * myconfig= home= * noeject noprompt * blind britty * no wheelmouse * splash * toram tohd fromhd bootfrom * knoppix_dir= knoppix_name= * mandrake move * noauto updatemodules patch cleankey formatkey waitkey virtual_key= * adios * lids m d i586 acpi 1 2 7 * hd[a-d][1-9] sd[a-d][1-9] * instance= * option= * root= === adios functions === * /initrd/info * /initrd/functions * /initrd/savestate * /initrd/harddriveinstall * PutVar, FindVar, PutVarInRAM, PutVarOnPartition, PutLoopfileOnDisk, * DeleteLoopfileFromDisk, FindStoragePartition, * FindLoopfileStoragePartition, FindAdiosDisk, FindAdiosNet, * PutIso, DeleteIso, UpdateVar, PutSwapLoopfileOnDisk, * DeleteSwapLoopfileFromDisk, EncryptedVarLoop, PutVarOnUSB, * DeleteVarFromUSB, CreateBootableUSB, DeleteBootableUSB, * ChangeValue, ChangeLanguage, ChangeResolution, StartNet, * LabSetup, RunningInLabs, TypicalLinuxrc, MountSquashFS, * GetCDROMDrives, FindAdiosCD, GetHardDisks, * MountHardDiskPartitions, GetLogicalVolumes, MountLogicalVolumes, * FindSwapPartitions, FindSwapVolumes, FindOptSqfs, EjectCD, * Shutdown, Reboot, InstallAdiosIsoPartition, * PrepareRealRootFilesystem, DisplayMenu1, DisplayMenu2, * DisplayMenu3, DisplayMenu4, DisplayMenu5, HowToRunOnNtfs === adios linuxrc === * /initrd/info * DisplayLicense, DisplayWarranty, HelpPageHeader, * HelpPageFooter, DisplayHelp * /initrd/functions * MenuItem, ReturnToMenu, MountDevice, GetUSBDevice, * CheckReadWrite, AvailableDiskSpace, MountCaptiveNTFS, * UnmountAllPartitions, RemountAllPartitions, SelectPartition, * UnmountPartition, ShowFdiskPartitions, SelectFdiskPartition, * Debug, DebugMsg, CleanUp * /initrd/savestate * PutVarState, SaveState, SaveStateAtShutdown, GetVarState, * RestoreState, DeleteVarState * /initrd/harddriveinstall * CreateAdiosPartition, InstallAdiosOnPartition, * CopyAdiosFilesToPartition, InstallGrub, RestoreMBR, UpdateWin, * UpdateBootIni, UpdateGrub, UpdateGrubConf, * SetActivePartition, CreateFAT32Partition, * GetNTFSPartitions, NTFSResize, ResizeIt, IsValidNTFSPartition, * Fdisk, IsValidDisk, FindGrubPartitions, FindWindowsPartitions, * DisplayMBR, CheckMBR * mount proc sys * set option * MountHardDiskPartitions * MountLogicalVolumes * FindSwapPartitions || FindSwapVolumes * FindOptSqfs: opt ¿¡¼­ sqfs ¸¦ ã´Â´Ù. * FindAdiosDisk || FindAdiosCD || FindAdiosNet * GetCDROMDrives * IDE CDROM driver ¸¸ Á¶»çÇÔ. dmesg »ç¿ë === slax linuxrc === * set PATH * mount proc sys * check debug * set variable * UNION=/union * MEMORY=/memory * MOUNTDIR=mnt * CHANGES=$MEMORY/changes * COPY2RAM=$MEMORY/copy2ram * IMAGES=$MEMORY/images * INITRAMDISK=$MOUNTDIR/live * modprobe_essential_modules * load modules * create_block_devices * setup_dma * mkdir UNION MEMORY * CHANGESDEV °¡ ÀÖÀ¸¸é * mount_device $CHANGESDEV $MEMORY * mount -t tmpfs -o "size=80%" tmpfs $MEMORY * mkdir CHANGES COPY2RAM IMAGES * mount -t unionfs -o dirs=$CHANGES=rw unionfs $UNION * DATA="`find_live_data_dir $MOUNTDIR`" * ¸ø ãÀ¸¸é * modprobe_usb_modules * create_block_devices * DATA="`find_live_data_dir $MOUNTDIR`" * toram or copy2ram ÀÌ ÀÖÀ¸¸é * copy_to_ram $DATA $COPY2RAM * cd_autoeject 1 * umount $DATA * DATA=$COPY2RAM * cd_autoeject 0 * mkdir -p $UNION/boot * mount -o bind $DATA $UNION/boot (cdrom ÀÇ ³»¿ëÀ» boot ·Î) * union_insert_modules $UNION $DATA $IMAGES * list_modules $2 * MODULE= * /media/cdrecorder/base/01_kernel.mo * /media/cdrecorder/base/02_core.mo * /media/cdrecorder/base/03_xwindow.mo * /media/cdrecorder/base/04_xap_libs.mo * /media/cdrecorder/base/05_common.mo * /media/cdrecorder/base/06_kde_base.mo * /media/cdrecorder/base/07_kde_apps.mo * /media/cdrecorder/base/08_kde_office.mo * /media/cdrecorder/base/09_slax.mo * union_insert_module $UNION $MODULE $IMAGR * TARGET=/memory/images/01_kernel.mo * mkdir -p $TARGET * mount_module $2 $TARGET * mount -t squashfs -o loop,ro "$1" "$2" * union_insert_dir $1 $TARGET * unionctl "$1" --add --after 0 --mode ro "$2" * copy_rootchanges $DATA $UNION * cp -a $1/rootcopy/* $2 : ºó µð·ºÅ丮ÀÓ. * activate_fstab $UNION ( Á» ´õ ÀÚ¼¼È÷ º¼ °Í ) * mkdir -p $1/etc * FSTAB="$1/etc/fstab" * make fstab and /mnt ÆÄÀϵé. * cdrom, partition, swap, floppy * mkdir -p $UNION/proc * mkdir -p $UNION/sys * mkdir -p $UNION/tmp * mkdir -p $UNION/dev * cd $UNION * mkdir -p $INITRAMDISK * umount /sys * mknod $UNION/dev/console c 5 1 * CHROOT=/usr/sbin/chroot or /usr/bin/chroot * pivot_root . $INITRAMDISK ( initrd ÀÇ ³»¿ëÀ» /mnt/live ¹ØÀ¸·Î À̵¿ ) * exec $CHROOT . sbin/init ( /UNION À» root file system À¸·Î ) === ±âº» ¹æħ === * µ¥½ºÅ©Å¾ * ÀÏ¹Ý À¯Àú¿ë, expert ¿ë ( ´Ù¸¥ initrd ) * ÀÏ¹Ý À¯Àú¿ë, °³¹ßÀÚ¿ë(+±³À°¿ë) ( ´Ù¸¥ ÆÐÅ°Áö ¸ðÀ½ ) * webfs: °¡´ÉÇÑ°¡? ½Ç¿ë¼ºÀÌ Àִ°¡? * GNOME À» ±â¹ÝÀ¸·Î ÇÏ´Â °ÍÀº ¸Â´Â ¹æÇâÀΰ¡? * memory size ¹× swap À» Á¡°ËÇÏ¿© desktop »ç¿ë °áÁ¤. * ÀúÀåÇÒ °æ¿ì, ÀúÀå Àå¼Ò¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. * booting ÇÑ ÈÄ¿¡ ÀúÀåÇÑ ³»¿ëÀ» °¡Áö°í ¿Â´Ù. ( re-login ) * toram Àº util ·Î ¾ÈµÇ³ª? * ÀúÀå ¸Åä * cd, usb, scsi, firewire, harddisk * cd ¸¸ °í·ÁÇÑ´Ù. ³ª¸ÓÁö´Â expert ¿ë¿¡¼­¸¸ Ãë±ÞÇÑ´Ù. === new linuxrc option === * jin debug expert * ¹®Á¦°¡ ÀÖÀ» ¶§, ¹°¾î º¼ ¼ö ÀÖ´Â ¹æ¹ý === new linuxrc === * mount proc and sys * option declare * modprobe essential modules * setup dma * find compressed file system * not found, usb, firewire, scsi * memory check and swap or fail * unionfs and link {{{ #!/bin/ash export PATH= mount -t proc proc /proc mount -t sysfs sysfs /sys modprobe loop ( check kernel config ) # modprobe isofs (Y in kernel) modprobe squashfs modprobe unionfs # ide-scsi ÀÎ °æ¿ì # scsi ÀÎ °æ¿ì # usb ÀÎ °æ¿ì # firewire ÀÎ °æ¿ì # harddisk ÀÎ °æ¿ì {{{ # Create block devices to /dev described by /sys entries # create_block_devices() { echolog "creating /dev entries for block devices" ls -A1d /sys/block/*/dev /sys/block/*/*/dev 2>/dev/null | grep -v loop | while read BLOCK; do DEVICE="/dev/`basename \`dirname $BLOCK\``" if [ ! -b $DEVICE ]; then MINORMAJOR="`head -n 1 $BLOCK | tr ':' ' '`" mknod $DEVICE b $MINORMAJOR fi done } # List all CD-ROMs # by using /proc entries # list_cdrom_devices() { if [ "`cmdline_parameter nocd`" != "" ]; then return 1; fi for CDDEVICE in `cat /proc/sys/dev/cdrom/info | head -n 3 | tail -n 1 | cut -d ":" -f 2`; do echo "/dev/$CDDEVICE" done } }}} * http://bash.cyberciti.biz/diskadmin/rescan-scsi-bus.sh.html * busybox ·Î initrd ¸¦ ¸¸µé°í À̸¦ ÀÌ¿ëÇÏ¿© device module ÀÌ ·ÎµåµÇ±â Àü°ú ÈÄÀÇ Â÷À̸¦ ¾Ë¾Æ³»¿©¾ß ÇÔ. (scsi, usb, ide-scsi, firewire) === busybox === * busybox °¡ bin ¹Ø¿¡ ÀÖÀ¸¸é, ln À» ÇÏÁö ¾Ê¾Æµµ ¼öÇàÀÌ µÊ. * insmod -f °¡ ¹®Á¦°¡ µÊ. * /dev/sda14 ¸¸µë * /suqash ¸¸µë. * adios ¹Ø¿¡ * bin lib sbin usr * var ¹Ø¿¡ * boot etc home root tmp * ³ª¸ÓÁö * media misc net opt selinux srv tmp var * proc sys dev mnt {{{ adios.sqfs [root@localhost tmp]# ls -l ÇÕ°è 24 drwxr-xr-x 1 root root 791 5¿ù 17 10:28 bin lrwxrwxrwx 1 root root 8 7¿ù 19 12:55 boot -> ../boot/ lrwxrwxrwx 1 root root 7 7¿ù 19 12:55 etc -> ../etc/ lrwxrwxrwx 1 root root 8 7¿ù 19 12:55 home -> ../home/ drwxr-xr-x 1 root root 10 6¿ù 20 11:50 initrd drwxr-xr-x 1 root root 2127 6¿ù 10 14:29 lib lrwxrwxrwx 1 root root 9 7¿ù 19 12:55 media -> ../media/ lrwxrwxrwx 1 root root 8 7¿ù 19 12:55 misc -> ../misc/ lrwxrwxrwx 1 root root 7 7¿ù 19 12:55 mnt -> ../mnt/ lrwxrwxrwx 1 root root 7 7¿ù 19 12:55 opt -> ../opt/ lrwxrwxrwx 1 root root 8 7¿ù 19 12:55 proc -> ../proc/ lrwxrwxrwx 1 root root 8 7¿ù 19 12:55 root -> ../root/ drwxr-xr-x 1 root root 2539 7¿ù 4 13:27 sbin lrwxrwxrwx 1 root root 11 7¿ù 19 12:55 selinux -> ../selinux/ lrwxrwxrwx 1 root root 7 7¿ù 19 12:55 srv -> ../srv/ lrwxrwxrwx 1 root root 7 7¿ù 19 12:55 sys -> ../sys/ lrwxrwxrwx 1 root root 12 7¿ù 19 12:55 tftpboot -> ../tftpboot/ lrwxrwxrwx 1 root root 7 7¿ù 19 12:55 tmp -> ../tmp/ lrwxrwxrwx 1 root root 7 7¿ù 19 12:55 usr -> ../usr/ drwxr-xr-x 1 root root 308 7¿ù 14 13:28 var usr.sqfa [root@localhost tmp]# ls -l ÇÕ°è 70 drwxr-xr-x 1 root root 48 10¿ù 6 2004 X11R6 drwxr-xr-x 1 root root 19658 7¿ù 13 10:56 bin drwxr-xr-x 1 root root 13 11¿ù 17 2004 com drwxr-xr-x 1 root root 0 8¿ù 13 2004 etc drwxr-xr-x 1 root root 0 8¿ù 13 2004 games drwxr-xr-x 1 root root 3489 6¿ù 6 10:19 include drwxr-xr-x 1 root root 31 3¿ù 29 04:06 kerberos drwxr-xr-x 1 root root 28578 7¿ù 13 10:56 lib drwxr-xr-x 1 root root 358 5¿ù 16 13:57 libexec lrwxrwxrwx 1 root root 13 7¿ù 19 13:19 local -> ../var/local/ drwxr-xr-x 1 root root 5917 7¿ù 13 10:56 sbin drwxr-xr-x 1 root root 2119 6¿ù 7 09:40 share drwxr-xr-x 1 root root 57 12¿ù 16 2004 sleuthkit lrwxrwxrwx 1 root root 11 7¿ù 19 13:19 src -> ../var/src/ lrwxrwxrwx 1 root root 10 7¿ù 19 13:19 tmp -> ../var/tmp drwxr-xr-x 1 root root 28 6¿ù 7 09:21 var }}} === note === * slax ÀÇ linuxrc ¹æ¹ýÀÌ ÁÁ±â´Â Çѵ¥.... * linuxrc ¿¡¼­´Â cdrom ÀÇ ³»¿ëÀ» Àб⸸ ÇÑ´Ù. * ³ª¸ÓÁö ÀÛ¾÷Àº rc.sysinit ¿¡¼­ ÇÑ´Ù. * ÇÊ¿äÇÑ ÆÄÀÏ º¹»ç * Çϵå¿þ¾î ¼³Á¤ * xorg ¼³Á¤ * ³ª¸ÓÁö ¼³Á¤Àº rc ¿¡¼­ * ÀÌ °æ¿ì ¸ðµâÀ» ³ª´©¾î¾ß ½ÃÇèÇϱⰡ ÁÁ´Ù. * º¸´Ù ÁÁÀº ¹æ¹ýÀº ¾øÀ»±î? * rc.sysinit ¿¡¼­ ¾Æ¹«°Íµµ ÇÏÁö ¾Ê°í, rc5.d ÀÇ Ã¹¹ø°¿¡¼­ ¸ðµç ÀÛ¾÷À» ÇÏ°Ô Çϸé, init À» ÀÌ¿ëÇÏ¿© ½±°Ô ½ÃÇèÇÒ ¼ö ÀÖÁö ¾ÊÀº°¡? ÀÌ °ÍÀÌ °¡´ÉÇÑ°¡? * init À» ¼öÇàÇϸé rc.sysinit À» ¼öÇàÇϴ°¡? * pivot_root . initrd * ÇöÀçÀÇ root file system À» initrd ·Î º¹»çÇÏ°í, ÇöÀçÀÇ À§Ä¡¸¦ root file system À¸·Î »ç¿ëÇÒ Áغñ°¡ µÈ´Ù. * exec chroot . /sbin/init * ÇöÀçÀÇ À§Ä¡¸¦ root file system À¸·Î ÇÏ°í init ¼öÇà. * ¿Ö busybox °¡ /bin ¹Ø¿¡ ÀÖÀ»¶§´Â ln À» ¾ÈÇصµ ¼öÇàµÇ´Â°¡ ¾Ë¾Æ º¼ °Í. === unionfs === * tar zxvf unionfs-1.0.13.tar.gz * edit Makefile {{{ #LINUXSRC = /lib/modules/$(KVERS)/build LINUXSRC = /usr/src/linux #UNIONFS_DEBUG_CFLAG = -g UNIONFS_DEBUG_CFLAG = }}} * make fistdev.mk ÆÄÀÏ {{{ EXTRACFLAGS=-DUNIONFS_NDEBUG }}} * make * make install * depmod -a * make static unionctl, uniondbg * can't make static unionimap {{{ gcc -o unionimap -luuid unionimap.c usercommon.c -I. -O2 -Wall -Werror -DUNIONFS_VERSION=\"1.0.13\" -static /tmp/ccQ5MWEM.o(.text+0x113): In function `create_forwardmap': unionimap.c: undefined reference to `uuid_generate' /tmp/ccQ5MWEM.o(.text+0x377): In function `create_reversemap': unionimap.c: undefined reference to `uuid_generate' /tmp/ccQ5MWEM.o(.text+0x622): In function `print_forwardmap': unionimap.c: undefined reference to `uuid_unparse' /tmp/ccQ5MWEM.o(.text+0x706):unionimap.c: undefined reference to `uuid_unparse' /tmp/ccQ5MWEM.o(.text+0x80e): In function `print_reversemap': unionimap.c: undefined reference to `uuid_unparse' /tmp/ccQ5MWEM.o(.text+0x832):unionimap.c: undefined reference to `uuid_unparse' collect2: ld returned 1 exit status make: *** [unionimap] ¿À·ù 1 }}} === JIN === * squashfs * unionfs * username: jin * passwd: jinjin * install * login root * copy JIN.build * relogin jin * opt/booyo ´Â opt/live ·Î ¼öÁ¤ * initrd ¿¡ ³Ö´Â´Ù. * user login ÀÌ ¾ÈµÊ. root login Àº µÊ. * tmp ´Â unionfs ¸¦ »ç¿ëÇÏÁö ¾ÊÀ½. * chmod 1777 tmp ÇØ¾ß ÇÔ. * root login ½Ã firefox °¡ µ¿ÀÛ ¾ÈÇÔ. * .mozilla º¹»ç ÈÄ µÊ. * initrd ¿¡ root ¸¦ /union/root ·Î ¸µÅ© ½ÃÄÑ ³õÀ¸¸é, * Áö¿öÁö°í »õ·Î¿î /root °¡ »ý¼ºµÊ. * init ¿¡¼­ ¸µÅ© ½ÃÅ´. * totem ¾È µÊ. fedora core 4 ÀÇ ¹®Á¦.