· 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
You recoil from the crude; you tend naturally toward the exquisite.


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.0226 sec