NFS¸¦ ÅëÇÑ ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ ¸¶¿îÆ®Çϱâ(nfsroot) Gero Kuhlmann, gero@gkminix.han.de Martin Mares mj@atrey.kar­ lin.mff.cuni.cz 1996-1997 Â÷ÇöÁøxunil@linuxfan.com 1999³â 6¿ù ¸¸¾à¿¡ X-Å͹̳ÎÀ̳ª ÇÁ¸°ÅÍ ¼­¹ö°°ÀÌ µð½ºÅ© ¾ø´Â ½Ã½ºÅÛÀ» ¾²·Á°í ÇÑ´Ù¸é ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» µð½ºÅ©°¡ ¾Æ´Ñ °÷¿¡ ¼³Á¤À» ÇؾßÇÑ´Ù. ·¥µð½ºÅ©¿¡´Ù°¡ ÇÒ ¼öµµ ÀÖ°í NFS¸¦ ÅëÇؼ­ ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ¹®¼­´Â ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» À§ÇÑ NFS¸¦ ¾î¶»°Ô ¾²´Â°¡¿¡ ´ëÇÑ °ÍÀÌ´Ù. ¾ÕÀ¸·Î "Ŭ¶óÀ̾ðÆ®"¶ó ÇÔÀº µð½ºÅ© ¾ø´Â ½Ã½ºÅÛÀ» ¸»ÇÏ´Â °ÍÀÌ°í, "¼­¹ö"¶ó ÇÔÀº NFS ¼­¹ö¸¦ ¸»ÇÏ´Â °ÍÀÌ´Ù. ______________________________________________________________________ ¸ñÂ÷ 1. nfsroot¸¦ È°¼ºÈ­ ½ÃÅ°±â 2. Ä¿³Î ¸í·É¾î ¶óÀÎ 3. Ä¿³Î ·Î´õ 3.1 dd¸¦ ½á¼­ Ä¿³ÎÀ» Ç÷ÎÇÇ¿¡ ¾²±â 3.2 LILO ¾²±â 3.3 loadlin ¾²±â 3.4 Boot ROM ¾²±â 4. Å©·¹µðÆ® ______________________________________________________________________ 1. nfsroot¸¦ È°¼ºÈ­ ½ÃÅ°±â nfsroot¸¦ ¾²±â À§Çؼ­´Â Ä¿³Î ¼³Á¤¿¡¼­ NFS¸¦ Áö¿øÇϵµ·Ï ÇؾßÇÑ´Ù. ¿©±â¼­ NFS´Â ¸ðµâ·Î ¼³Á¤ÇÏ¸é ¾È µÈ´Ù´Â °ÍÀ» ¸í½ÉÇ϶ó. ¼³Á¤ ½ºÅ©¸³Æ®´Â ´ÙÀ½À¸·Î nfsroot¸¦ ¾µ °ÍÀÎÁö¸¦ ¹°À» °ÍÀÌ°í, ¾µ °ÍÀ̶ó°í ÇÑ´Ù¸é ¾î¶² ÀÚµ¿ ¼³Á¤ ½Ã½ºÅÛÀ» ¾µ °ÍÀÎÁö¸¦ ¹°À» °ÍÀÌ´Ù. BOOTP³ª RARP ¸ðµÎ ¾ÈÀüÇÏ´Ù. 2. Ä¿³Î ¸í·É¾î ¶óÀÎ Ä¿³ÎÀÌ ºÎÆ® ·Î´õ(loadlin, LILO, ³×Æ®¿öÆ® ºÎÆ® ÇÁ·Î±×·¥°°Àº°Íµé)¿¡ ÀÇÇØ ·ÎµùÀÌ µÇ¸é ¾î¶² ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ µð¹ÙÀ̽º¸¦ ¾²´ÂÁö, ¼­¹ö¸¦ ¾îµð¼­ ãÀ»Áö, ¼­¹ö¿¡ ·çÆ®·Î ¸¶¿îÆ®µÉ µð·ºÅ丮ÀÇ À̸§Àº ¹«¾ùÀÎÁö¸¦ ¾Ë¾Æ¾ß ÇÑ´Ù. À̰͵éÀº Ä¿³Î ¸í·É¾î ¶óÀÎ ÆĶó¹ÌÅ͵é·Î ÇØ°áµÉ ¼ö°¡ ÀÖ´Ù. root=/dev/nfs ÀÌ°ÍÀº °¡»ó NFS µð¹ÙÀ̽º¸¦ È°¼ºÈ­ ½ÃÅ°±â À§Çؼ­ ÇÊ¿äÇÏ´Ù. ÁÖÀÇÇÒ °ÍÀº ÀÌ°ÍÀº ÁøÂ¥ µð¹ÙÀ̽º°¡ ¾Æ³ª¶ó ´ÜÁö Ä¿³Î¿¡°Ô ÁøÂ¥ µð¹ÙÀ̽º ´ë½Å NFS¸¦ ¾²¶ó°í ¸»ÇØÁÖ´Â °Í¿¡ ºÒ°úÇÏ´Ù´Â °ÍÀÌ´Ù. nfsroot=[:][,] ¸¸¾à¿¡ nsfroot ÆĶó¹ÌÅÍ°¡ ³Ñ°ÜÁöÁö ¾Ê´Â´Ù¸é µðÆúÆ®·Î "/tftpboot/%s" °¡ ¾²ÀÏ °ÍÀÌ´Ù. NFS ¼­¹öÀÇ IP ÁÖ¼Ò¸¦ ¾Ë·ÁÁØ´Ù. ÀÌ°ÍÀÌ ¾ø´Ù¸é ¹Ø¿¡¼­ ¼³¸íÇÒ ip º¯¼ö¿¡ ÀÇÇÑ ¼³Á¤°ªÀÌ ¾²ÀÏ °ÍÀÌ´Ù. ÀÌ ÆĶó¹ÌÅÍ´Â RARP¿Í NFS¸¦ À§ÇÑ ´Ù¸¥ ¼­¹ö¸¦ ¾²´Â °ÍÀ» Çã¿ëÇÏ´Â ¿¹¿¡¼­ ¾²ÀδÙ. ¼­¹öÃø¿¡ ·çÆ®·Î ¸¶¿îÆ®ÇÒ µð·ºÅ丮ÀÇ À̸§. ¿©±â¿¡ "%s"°¡ µé¾î°¡ ÀÖ´Ù¸é %s´Â Ŭ¶óÀ̾ðÆ® IP ÁÖ¼ÒÀÇ ¾Æ½ºÅ° ÇüÅ·Π¹Ù²ð°ÍÀÌ´Ù. ±âº»ÀûÀÎ NFS ¿É¼Çµé. ¸ðµç ¿É¼ÇÀº ÄÞ¸¶·Î ±¸ºÐµÈ´Ù. ¿É¼Ç Çʵ尡 ºñ¾î ÀÖ´Ù¸é ´ÙÀ½ÀÇ ±âº»°ªÀÌ ¾²ÀÏ °ÍÀÌ´Ù. port = ¼­¹ö Æ÷Æ®¸Ê µ¥¸ó¿¡ ÀÇÇØ ÁÖ¾îÁø °ª rsize = 1024 wsize = 1024 timeo = 7 retrans = 3 acregmin= 3 acregmax= 60 acdirmin= 30 acdirmax= 60 flags = hard, nointr, noposix, cto, ac ip=:::::: ÀÌ ÆĶó¹ÌÅÍ´Â Ä¿³Î¿¡°Ô µð¹ÙÀ̽ºÀÇ IP ÁÖ¼Ò³ª IP ¶ó¿ìÆà Å×À̺íÀ» ¾î¶»°Ô ¼³Ä¡ÇÒ °ÍÀΰ¡¸¦ ¾Ë·ÁÁØ´Ù. ÀÌ ºÎºÐÀº ¿ø·¡ "nfsaddrs"¶ó°í ºÒ·ÈÀ¸³ª Áö±ÝÀº ºÎÆ® ½ÃÀÇ IP ¼³Á¤Àº NFS¿Í´Â »ó°ü¾øÀÌ ÀÌ·ç¾îÁö±â ¶§¹®¿¡ "ip"¶ó°í ¹Ù²î¾úÀ¸¸ç ¿¾³¯ À̸§Àº ȣȯ¼ºÀ» À§ÇØ alias·Î ³²¾Æ ÀÖ´Ù. ÀÌ ÆĶó¹ÌÅÍ°¡ Ä¿³Î ¸í·É¾î ¶óÀο¡¼­ ºüÁ® ÀÖ´Ù¸é, ¸ðµç Çʵå´Â ºñ¾ú´Ù°í °¡Á¤ÇÏ°í, ´ÙÀ½¿¡ ¼³¸íÇÒ ±âº»°ªÀÌ Àû¿ëµÈ´Ù. ÀϹÝÀûÀ¸·Î Ä¿³ÎÀº ¸ðµç°ÍÀ» RARP¿Í BOOTP(Ä¿³Î ¼³Á¤½Ã ¾î¶²°ÍÀÌ ¼¼ÆõǾú³ª¿¡ ´Þ·ÁÀÖ´Ù.)¸¦ ÀÌ¿ëÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. Ŭ¶óÀ̾ðÆ®ÀÇ IP ÁÖ¼Ò. ¸¸¾à ºñ¾ú´Ù¸é RARP³ª BOOTP¿¡ ÀÇÇØ °áÁ¤µÈ´Ù. ¾î¶² ÇÁ·ÎÅäÄÝÀÌ ¾²ÀÏ °ÍÀÎÁö´Â Ä¿³Î ¼³Á¤½Ã °áÁ¤ÇÑ °ÍÀ̳ª ÆĶó¹ÌÅÍ¿¡ ´Þ·ÁÀÖ´Ù. ºñ¾îÀÖÁö ¾Ê´Ù¸é RARP³ª BOOTP´Â ¾²ÀÌÁö ¾Ê´Â´Ù. NFS ¼­¹öÀÇ IP ÁÖ¼Ò. ¸¸¾à¿¡ RARP°¡ Ŭ¶óÀ̾ðÆ®ÀÇ ÁÖ¼Ò¸¦ °áÁ¤ Çß°í ÀÌ ÆĶó¹ÌÅÍ°¡ ºñ¾îÀÖÁö ¾Ê´Ù¸é ¿ÀÁ÷ ¿©±â¼­ Á¤ÇÑ ¼­¹ö¸¸ÀÌ ¹Þ¾Æµé¿©Áø´Ù. RARP¼­¹ö¿Í NFS¼­¹ö¸¦ ´Ù¸£°Ô ÇÏ·Á¸é RARP ¼­¹ö¸¦ ¿©±â¿¡ ½á¶ó.(ȤÀº ºóÄ­À¸·Î ³²°Ü³õ´øÁö), ±×¸®°í NFS ¼­¹ö¸¦ "nfsroot"ÆĶó¹ÌÅÍ¿¡ Á¤ÇØÁÖ¸é µÈ´Ù. ¸¸¾à ¿©±â°¡ ºñ¾î ÀÖ´Ù¸é RARP³ª BOOTP¿¡ ÀÀ´äÇÑ ¼­¹ö°¡ NFS¼­¹ö·Î ¾²ÀÏ °ÍÀÌ´Ù. ¼­¹ö°¡ ´Ù¸¥ ¼­ºê³Ý¿¡ ÀÖÀ»¶§ÀÇ °ÔÀÌÆ®¿þÀÌÀÇ IP ÁÖ¼Ò. ¿©±â°¡ ºñ¾î ÀÖ´Ù¸é °ÔÀÌÆ® ¿þÀÌ´Â ¾²ÀÌÁö ¾Ê°í ¼­¹ö°¡ ·ÎÄà ³×Æ®¿öÅ©¿¡ ÀÖ´Ù°í °¡Á¤Çϰųª BOOTP°¡ ¾Ë·ÁÁØ °ªÀ» ¾´´Ù. ·ÎÄà ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ ³Ý¸¶½ºÅ©. ºñ¾î ÀÖ´Ù¸é Ŭ¶óÀ̾ðÆ® IP ÁÖ¼Ò¿¡¼­ ÃßÃøÀ» ÇÑ °ªÀÌ ³Ý¸¶½ºÅ©·Î ¾²ÀδÙ. ¾Æ´Ô BOOTP ÀÀ´äÀ¸·Î ¼³Á¤µÇ°Å³ª. Ŭ¶óÀ̾ðÆ®ÀÇ À̸§. ºñ¾ú´Ù¸é Ŭ¶óÀ̾ðÆ®ÀÇ IP ÁÖ¼Ò´Â ¾Æ½ºÅ° Ç¥ÇöÀ¸·Î ¾²À̰ųª BOOTP¿¡ ÀÇÇÑ °ªÀÌ ¾²ÀδÙ. ¾µ ³×Æ®¿öÅ© µð¹ÙÀ̽ºÀÇ À̸§. ºñ¾ú´Ù¸é RARP³ª BOOTP ¿äû¿¡ ´ëÇØ ¸ðµç µð¹ÙÀ̽º°¡ ¾²ÀÌ°í ¸ÕÀú ÀÀ´ä¹ÞÀº °ÍÀÌ ¼³Á¤µÈ´Ù. ÇϳªÀÇ µð¹ÙÀ̽º¸¸ ÀÖ´Ù¸é ¿©±â¸¦ ºóÄ­À¸·Î ³²°ÜµÎ¾îµµ ÁÁ´Ù. ÀÚµ¿¼³Á¤¿¡ ´ëÇÑ ¹æ¹ý. ¿©±â¼­ ¼³Á¤ÇÑ RARP³ª BOOTP°¡ ¾²ÀδÙ. µÑ´Ù ¼³Á¤Çϰųª ºñ¿öµÐ´Ù¸é Ä¿³Î ¼³Á¤½Ã °áÁ¤ÇÑ ÇÁ·ÎÅäÄÝÀÌ ¾²ÀδÙ. "off"´Â ÀÚµ¿¼³Á¤À» ¾È ¾´´Ù´Â °ÍÀÌ´Ù. ÆĶó¹ÌÅÍ´Â ÀÚµ¿¼³Á¤ÀÌ ¾²ÀÏ ¶§ "ip" ÆĶó¹ÌÅÍ¿¡ ':'¾øÀÌ ´Üµ¶À¸·Î ¾²ÀÏ ¼ö ÀÖ´Ù. 3. Ä¿³Î ·Î´õ Ä¿³ÎÀ» ¸Þ¸ð¸®·Î ¿Ã¸±¶§ ¿©·¯ ¹æ¹ýÀÌ ¾²ÀÏ ¼ö Àִµ¥ ¾î¶² ±â´ÉÀÌ °¡´ÉÇÑ°¡¿¡ ´Þ·Á ÀÖ´Ù. 3.1. dd¸¦ ½á¼­ Ä¿³ÎÀ» Ç÷ÎÇÇ¿¡ ¾²±â Ç×»ó ÇÏ´øµ¥·Î dd¸¦ ½á¼­ Ä¿³ÎÀ» Ç÷ÎÇÇ¿¡ ¾µ ¼ö°¡ ÀÖ´Ù. ÇÏÁö¸¸ Ä¿³Î ¸í·É¾î ¶óÀÎÀ» ¾µ ¼ö´Â ¾ø´Ù. ±×·¡¼­, "root="ÆĶó¹ÌÅ͸¦ ´ëüÇϱâ À§Çؼ­ mknod¸¦ ÀÌ¿ëÇØ ¸ÞÀÌÀú ³Ñ¹ö 0, ¸¶ÀÌ³Ê ³Ñ¹ö 255Â¥¸® ´õ¹Ì µð¹ÙÀ̽º¸¦ ¸¸µé¾î¾ßÇÑ´Ù. mknod /dev/boot255 c 0 255 ´ÙÀ½¿¡ Ä¿³Î, zImage ÆÄÀÏÀ» dd·Î Ç÷ÎÇÇ¿¡ º¹»çÇضó. dd if=/usr/src/linux/arch/i386/boot/zImage of=/dev/fd0 ±×¸®°í ¸¶Áö¸·À¸·Î rdev¸¦ ½á¼­ ·çÆ® µð¹ÙÀ̽º¸¦ ¼³Á¤ÇØÁà¶ó. rdev /dev/fd0 /dev/boot255 ¿©±â¿¡ ¸Â´Â ÁøÂ¥ µð¹ÙÀ̽º´Â ¾ø±â ¶§¹®¿¡ /dev/boot255 ¸¦ Áö¿öµµ µÈ´Ù. ´Ù¸¥ µÎ°³ÀÇ Ä¿³Î ¸í·É¾î ÆĶó¹ÌÅÍ´Â rdev·Î ¹Ù²Ü ¼ö°¡ ¾ø±â ¶§¹®¿¡ RARP³ª BOOTP¸¦ ¾²´Â ±âº»ÀûÀÎ °ªµéÀÌ ¾²ÀÏ °ÍÀÌ´Ù. ¸¸¾à¿¡ RARP¸¦ ÅëÇØ ÀÀ´äÀ» ¹Þ¾Ò´Ù¸é /tftpboot// °¡ ·çÆ® µð·ºÅ丮·Î ¸¶¿îÆ®µÉ °ÍÀÌ°í, BOOTP¸¦ ÅëÇØ ÀÀ´äÀ» ¹Þ¾Ò´Ù¸é ÀÀ´ä¿¡ Æ÷ÇԵǾî ÀÖ´Â µð·ºÅ丮 À̸§ÀÌ ·çÆ®·Î ¸¶¿îÆ® µÉ°ÍÀÌ´Ù. 3.2. LILO ¾²±â ¸®·Î¸¦ ¾´´Ù¸é ¸®·ÎÀÇ ¼³Á¤ÆÄÀÏ¿¡¼­ "append="¶õ ¸í·ÉÀ¸·Î ÇÊ¿äÇÑ ¸ðµç ÆĶó¹ÌÅ͵éÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. "root=" ¸í·ÉÀ» ¾²±â À§Çؼ­´Â 3.1¿¡¼­ ¼³¸íÇß´ø °Íó·³ ¿ª½Ã ´õ¹Ì µð¹ÙÀ̽º¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ¸®·Î¿Í "append=" ¸í·ÉÀ» ¾²´Â °Í¿¡ ´ëÇÑ »çÇ×Àº ¸®·Î ¹®¼­¸¦ ÂüÁ¶Ç϶ó. 3.3. loadlin ¾²±â ÀÚ½ÅÀÇ ÇÏµå µð½ºÅ©¾øÀÌ ·çÆ®·Î ¸¶¿îÆ®Çϱâ À§ÇØ µµ½º ÇÁ·ÒÇÁÆ®¿¡¼­ ºÎÆÃÀ» ÇÏ·Á°í ÇÑ´Ù¸é ·Îµå¸°À» ¾µ¸é µÈ´Ù. ÀÌ ¹æ¹ýÀÌ µ¿ÀÛÇÑ´Ù´Â ¾ê±â´Â µé¾úÁö¸¸ ³»°¡ Á÷Á¢Çغ¸Áö´Â ¾Ê¾Ò´Ù. º¸Åë ¸®·Î¿¡¼­ ¾²´Â ¹æ¹ýó·³ Ä¿³Î ¸í·É¾î ¶óÀÎÀ» ¾µ ¼ö°¡ ÀÖÀ» °ÍÀÌ´Ù. ´õ ¾Ë·Á¸é ·Îµå¸° ¹®¼­¸¦ ÂüÁ¶Ç϶ó. 3.4. Boot ROM ¾²±â ÀÌ ¹æ¹ýÀº µð½ºÅ© ¾ø´Â Ŭ¶óÀ̾ðÆ®¸¦ ºÎÆýÃÅ°´Â °¡Àå ¼¼·ÃµÈ ¹æ¹ýÀÏ °ÍÀÌ´Ù. ºÎÆ®·ÒÀ» ¾²´Â ¹æ¹ýÀº TFTP ÇÁ·ÎÅäÄÝÀ» ½á¼­ Ä¿³ÎÀ» ·ÎµùÇÑ´Ù. ³»°¡ ¾Æ´Â Çѵµ³»¿¡¼­ ¾ÆÁ÷ ³×Æ®¿öÅ©¸¦ ÅëÇÑ ¸®´ª½º ºÎÆÃÀ» Áö¿øÇÏ´Â »ó¾÷ÀûÀÎ ºÎÆ®·ÒÀº ¾øÁö¸¸ sunsite.unc.edu¿Í ¹Ì·¯ »çÀÌÆ®¿¡ °ø°³ÀûÀ¸·Î ±¸ÇöµÈ µÎ°³ÀÇ ºÎÆ®·ÒÀÌ Àִµ¥ "netboot-nfs"¿Í "etherboot"¶ó°í ÇÑ´Ù. µÑ ´Ù´Â µð½ºÅ© ¾ø´Â ¸®´ª½º Ŭ¶óÀ̾ðÆ®¸¦ ºÎÆýÃÅ°´Âµ¥ ÇÊ¿äÇÑ ¸ðµç°ÍÀ» °®°í ÀÖ´Ù. 4. Å©·¹µðÆ® Ä¿³ÎÀÇ nfsroot ÄÚµå¿Í RARP¿¡ ´ëÇÑ Áö¿øÀº Gero Kuhlmann(gero@gkminix.han.de)ÀÌ ÀÛ¼ºÇß´Ù. IP Ãþ¿¡¼­ÀÇ ÀÚµ¿¼³Á¤ ÄÚµåÀÇ ³ª¸ÓÁö´Â Martin Mares(mj@atrey.karlin.mff.cuni.cz)°¡ ÀÛ¼ºÇß´Ù. nfsrootÀÇ ÃʱâÈ­ ¹öÀüÀ» ¾²±â À§Çؼ­ Jens-Uwe Mager(jum@anubis.han.de)ÀÇ µµ¿ò¿¡ °¨»çÇÑ´Ù.