· 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
    }
    
    

    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 ÀÇ ¹®Á¦.



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