³»°¡ ¹ÞÀº ÆíÁö·Î ÆÇ´ÜÇØ º¼ ¶§, System.map ÆÄÀÏÀº ¿©ÀüÈ÷ »ç¶÷µé¿¡°Ô´Â ¾î·Á¿î °Í °°´Ù. ±×·¡¼ Ä¿³Î ¸ÞÀϸµ ¸®½ºÆ®¿¡¼ ±× ÆÄÀÏ¿¡ ´ëÇÑ ±ä³ª±ä Åä·ÐµéÀ» Àо¾Ò´Ù.
Q. ±×°ÍÀº ¾î¶² ¿ëµµ·Î »ç¿ëµË´Ï±î?
A. ¸¸¾à Ä¿³Î oops°¡ ¹ß»ýÇϸé, ȸ鿡 ¿©·¯ °¡Áö ·¹Áö½ºÅ͵é°ú ±× 16Áø¼ö ³»¿ë¿¡ ´ëÇÑ ÇÑ ÆäÀÌÁöÀÇ Á¤º¸°¡ Ãâ·ÂµÉ °ÍÀÔ´Ï´Ù. ¸¸¾à System.mapÀÌ ÀÖ´Ù¸é, klogd´Â 16Áø¼ö ÁÖ¼Ò¸¦ ±× ÁÖ¼Ò°¡ ³ªÅ¸³»´Â ÇÔ¼ö À̸§À¸·Î º¯È¯ÇÒ °ÍÀÔ´Ï´Ù. ÀÌ Á¤º¸·ÎºÎÅÍ Á¤È®È÷ ¾î´À À§Ä¡¿¡¼ Ä¿³ÎÀÌ ¹®Á¦¸¦ ÀÏÀ¸Ä×´ÂÁö ÆÇ´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù. System.mapÀÌ ¾ø´Ù¸é, ¿ÏÀüÈ÷ ¾µ¸ð¾ø´Â 16Áø¼ö Áּҵ鸸À» ¶°¸Ã°Ô µÉ °ÍÀÔ´Ï´Ù. ÀÌ °ªµéÀº °¢ ±â°è¸¶´Ù ´Ù¸£°í, Ä¿³Î ¼³Á¤¸¶´Ù ´Ù¸£±â ¶§¹®ÀÔ´Ï´Ù.
Q. ±×·¸´Ù¸é ±× ÆÄÀÏ ¾øÀ̵µ »ì ¼ö ÀÖ½À´Ï±î?
A. ¸®´ª½º´Â System.map ¾øÀÌ ºÎÆÃÇÒ °ÍÀÔ´Ï´Ù. ±×·¯³ª ½Ã½ºÅÛ¿¡ ¹®Á¦°¡ ¹ß»ýÇÒ ¶§, ÁÖ¾îÁö´Â Á¤º¸´Â ´ç½Å¿¡°Ô³ª Ä¿³Î °³¹ßÀÚ¿¡°Ôµµ ¹«¾ùÀÌ ¹®Á¦ÀÎÁö¿¡ ´ëÇÑ ¾î¶°ÇÑ ´Ü¼µµ ÁÖÁö ¸ø ÇÒ °ÍÀ̶ó´Â °æ°í¸¦ ÇÕ´Ï´Ù. System.mapÀº ¸î ¹é Kb¹Û¿¡ ¾È µÇ°í, ÀÏ´Ü ¼³Ä¡ÇÑ ÈÄ¿¡´Â ¿ÏÀüÈ÷ Àؾî¹ö¸®°í À־ µË´Ï´Ù.
Q. ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé°í ÇÏ´Â ¸ðµç ÀÛ¾÷µéÀÌ ³Ê¹« È¥¶õ½º·´½À´Ï´Ù.
A. Jeff Garzik²²¼ x86¿¡¼ »ç¿ëÀÚ´Â 'make install' ÇÒ ¼ö Àִ´ٴ ¾ð±ÞÀ» ÇϽŠÆíÁö¸¦ º¸³»Áּ̽À´Ï´Ù. ÀÌ´Â vmlinuz-VERSION°ú System.map-VERSIONÀ» /boot·Î º¹»çÇÏ°í lilo¸¦ ½ÇÇàÇÕ´Ï´Ù. ¹Ì¸® /etc/lilo.conf°¡ º¯°æµÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù. (±×¸®°í klogdÀÇ ½ÃÀÛ ½ºÅ©¸³Æ®¿¡¼ 'klogd -k /boot/System.map-`uname -r`'À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.)
¶Ç ¸î¸î »ç¶÷µéÀº ¸í·ÉÇà¿¡ '-j n'À» Ãß°¡ÇÏ´Â °Í¿¡ (Áï `make -j 32 bzImage`) ´ëÇÑ ¸Þ¼¼Áö¸¦ º¸°í ÆíÁö¸¦ º¸³Â´Ù. ¾î¶² »ç¶÷µéÀº ´ÜÀÏ ÇÁ·Î¼¼¼ ½Ã½ºÅÛ¿¡¼ ±×°ÍÀÇ À¯È¿¼º¿¡ ´ëÇØ Áú¹®Çß´Ù.
³ 64MB RAMÀÇ K6-233 ½Ã½ºÅÛ¿¡¼ Å×½ºÆ®¸¦ Çß´Ù. ÀÛ¾÷ÀÇ ¼ö¸¦ ¹Ù²ã°¡¸é¼ Ä¿³ÎÀ» ÄÄÆÄÀÏÀ» ÇÏ¿´´Ù. µ¿½Ã ºôµåÀÇ ¼ö¸¦ ´Ã¸®¸é Ä¿³Î ºôµå´Â ´õ »¡¶óÁø´Ù. ÇÑ°è´Â -j 32·Î º¸ÀδÙ. (ºôµå ½Ã°£À» °ÅÀÇ 1ºÐ Á¤µµ ÁÙ¿´´Ù.) ÀÌ ÀÌ»óÀº °ÅÀÇ Çâ»óÀÌ ¾ø´Â °Í °°´Ù. SMP ½Ã½ºÅÛ¿¡¼ ´õ ¸¹Àº À̵æÀ» º¼ ¼ö ÀÖ´Â °ÍÀÌ ¸ÂÁö¸¸, Å×½ºÆ®´Â ´ÜÀÏ ÇÁ·Î¼¼¼ ½Ã½ºÅÛ¿¡¼µµ ¿ª½Ã -j´Â À¯È¿ÇÑ ÆÁÀ̶õ °ÍÀ» º¸¿©ÁØ´Ù.
Liviu SasÀº 'nice --20 make bzImage' ¶ÇÇÑ ÄÄÆÄÀÏ ¼Óµµ¸¦ ³ôÀÌ´Â À¯¿ëÇÑ ÆÁÀ̶ó´Â Á¦¾ÈÀ» º¸³»ÁÖ¾ú´Ù.
John Slee´Â lilo.conf ÀÚµ¿ »ý¼º±â¸¦ º¸³»ÁÖ¾ú´Ù. ÀÌ ÀÛÀº ½ºÅ©¸³Æ®´Â /boot¿¡¼ ¸ðµç ¾ÈÁ¤ Ä¿³ÎÀ» ã¾Æ¼ lilo.conf¸¦ ¸¸µç´Ù. °¡Àå ³ôÀº ¹öÀüÀÇ Ä¿³ÎÀ» ±âº»°ªÀ¸·Î Àâ´Â´Ù.
±âº»À¸·Î ÇÊ¿äÇÑ ÀÛ¾÷Àº ¸ðµç lilo.conf¿¡ Æ÷Ç﵃ ¿É¼ÇµéÀ» °¡Áö°í ÀÖ´Â /etc/lilo.conf.static ÆÄÀÏÀ» ¸¸µå´Â °ÍÀÌ´Ù. ±× ÈÄ, ¾Æ¹« ÀÎÀÚ¾øÀÌ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϱ⸸ ÇÏ¸é µÈ´Ù. lilo.conf¸¦ ¸¸µé°í »õ ºÎÆ®·Î´õ¸¦ ¼³Ä¡ÇÑ´Ù.
³»°¡ º¸±â¿¡ ÇÑ °¡Áö ´ÜÁ¡Àº ºÎÆ® Ç׸ñº°·Î ¿É¼ÇÀ» ³ÖÀ» ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù.
#!/bin/bash umask 772 kernel_dir=/boot # lilo assumes the default image is the first one in lilo.conf, so # we sort the kernel images backwards, hence the highest-version'd kernel # will be the default. images=`cd $kernel_dir && ls -1 vmlinuz-* \ | egrep "vmlinuz-([0-9]+).([0-9]+).([0-9]+)[^-]*$" \ | sort -rn` cp -f /etc/lilo.conf.static /tmp/lilo.conf # three lines per entry, 3 x 19 images = 57 ( for img in $images ; do label=`echo $img | sed 's/vmlinuz/linux/ ; s/-//g ; s/\.//g'` echo "image=$kernel_dir/$img" echo "label=$label" echo "" done ) | head -57 >> /tmp/lilo.conf if /sbin/lilo -C /tmp/lilo.conf ; then mv -f /etc/lilo.conf /etc/lilo.conf.last cp -f /tmp/lilo.conf /etc/lilo.conf echo successfully installed new bootloader. rm -f /tmp/lilo.conf exit 0 else echo eek, lilo barfed rm -f /tmp/lilo.conf exit 1 fi
³»°¡ ¹Þ¾Ò´ø ÆíÁö¿¡¼ ¶Ç ´Ù¸¥ ÈçÇÑ ÁÖÁ¦´Â Ä¿³Î ÆÐÄ¡¿¡ ´ëÇÑ ±â»ç¿¡ °ü·ÃµÈ °ÍÀÌ´Ù. ƯÈ÷, ¸¹Àº »ç¶÷µéÀÌ ¿¾³¯ Ä¿³ÎÀ» À§ÇØ ÀÛ¼ºµÈ ÆÐÄ¡¸¦ »õ Ä¿³Î¿¡ Àû¿ëÇÏ·Á´Â µ¥¼ ¹®Á¦¸¦ °Þ°í ÀÖ´Ù. ´ëºÎºÐÀÇ °æ¿ì, ÆÐÄ¡ °úÁ¤Áß¿¡ ¾î¶² °æ°í ¸Þ¼¼Áö¸¦ ¹Þ¾Ò°í ÆÐÄ¡°¡ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ¿ÏÀüÈ÷ ÀÌÇØÇÏÁö ¸ø ÇÑ´Ù¸é, ±× ÆÐÄ¡ÀÇ °ü¸®ÀÚ¿¡°Ô ¿¬¶ôÀ» Çؼ, ¹®Á¦Á¡¿¡ ´ëÇØ ¸»ÇØÁÖ¾î¾ß ÇÑ´Ù.
¸¸¾à 'offset 31 lines'³ª ÀÌ ºñ½ÁÇÑ ¸Þ¼¼Áö°¡ ³ª¿Ô´Ù¸é, ÀÌ´Â ¹®Á¦°¡ ¾Æ´Ï´Ù. ÆÄÀÏ¿¡¼ ÆÐÄ¡ÇÏ·ÁÇÏ´Â ·çƾÀÇ Äڵ尡 ¾à°£ º¯°æµÇ¾îÁö¸¸, ¸ñÇ¥ ·çƾÀº ¹ß°ßµÇ¾î ÆÐÄ¡µÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.