· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Booyo LiveCD/Make Initrd/Change Linuxrc

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


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-90-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
    • hda-d1-9 sda-d1-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 ÀÇ ¹®Á¦.

ID
Password
Join
Even the smallest candle burns brighter in the dark.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-08-19 19:01:25
Processing time 0.0203 sec