SHARING SWAP SPACES BETWEEN LINUX AND MS-WINDOWS H. Peter Anvin hpa@yggdrasil.com VERSION: 1.3 Date: 19 Jun 1995 ¹ø¿ª ÀÌÀ±¼ö seyon@nownuri.net c9644168@enter.soongsil.ac.kr ³¯Â¥:1997³â 12¿ù 28ÀÏ ______________________________________________________________________ ¸ñÂ÷ 1. °³¿ä 2. ÇÊ¿äÇÑ°Í 3. ÀýÂ÷ 4. ¸î°¡Áö ÁÖÀÇ »çÇ× ______________________________________________________________________ 1. °³¿ä ¸¹Àº »ç¶÷µéÀÌ ¸®´ª½º¿Í À©µµ¿ìÁ µÑ´Ù »ç¿ëÇÑ´Ù. ±×·¯ÇÑ Çൿ (Áï: »ç¶÷µéÀÌ ±Ô°ÝÇ°À¸·Î ½ÇÇàÇÒ¼ö ÀÖ´Â ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇÏ´Â µ¿¾È ¸®´ª½º·ÎÇÏ´Â ½ÇÇè ±×¸®°í ¸®´ª½º¿¡ ¿­ÁßÇÏ´Â È°µ¿)À» Çϴ°ÍÀº ¸®´ª½ºÀÇ ´ëº¯È­ÀÇ Áß¿äÇÑ ºÎºÐÀÌ´Ù. ¸®´ª½º¿Í À©µµ¿ìÁî°¡ µð½ºÅ© ½º¿ÒÀ¸·Î °¡»ó ¸Þ¸ð¸®¸¦ »ç¿ëÇÑ ÀÌ·¡·Î, comp.os.linux.setup¿¡ ºó¹øÈ÷ ¹ß»ýÇÑ Áú¹®ÀÌ ¹Ù·Î ÇÊ¿äÇÑ disk°ø°£ÀÇ ¾çÀ» ÁÙÀ̱â À§ÇÑ ½º¿Ò °ø°£ÀÇ °øÀ¯ ¹æ¹ýÀÌ´Ù. ½º¿Ò °ø°£À» °øÀ¯ÇÏ´Â ¿©·¯ °¡Áö ¹æ¹ýÀÌ Àִµ¥, À̹®¼­¿¡¼­ ±â¼úµÇ´Â Çϳª´Â ¾Æ¸¶µµ °¡Àå º¹ÀâÇÑ °ÍÀÏÁö ¸ð¸£Áö¸¸ ÃÖ´ëÀÇ ¼öÇà ´É·ÂÀ» °¡Áö°í µð½ºÅ© ÆÄƼ¼ÇÀ» ¸Á°¡¶ß¸®´Â À§ÇèÀÌ ¾ø´Â ³»°¡ ¾Ë°í ÀÖ´Â À¯ÀÏÇÑ ¹æ¹ýÀÌ´Ù. ÁÖÀÇ: ¸¸¾à ÀÌ ¹®¼­ÀÇ ÀÌÀü ¹öÀüÀ» »ç¿ëÇÏ°í ½º¿Ò°ø°£À¸·Î º¹±¸µÇÁö ¾Ê´Â ¹®Á¦°¡ ÀÖÀ¸¸é (¾Æ¸¶ À©µµ¿ìÁî°¡ ´ç½ÅÀÇ ¿µ±¸ ½º¿ÒÈ­ÀÏÀÌ À߸øµÇ¾ú´Ù°í ¾Ë¸± °ÍÀÌ´Ù), ÀÌ ¹öÀü¿¡¼­ shutdown script¸¦ ¾à°£ ¼öÁ¤ÇØ¾ß ÇÑ´Ù. 2. ÇÊ¿äÇÑ°Í ÀÌ °úÁ¤¿¡¼­ ÃæÁ·ÇØ¾ß ÇÒ ¸î°¡Áö Á¶°ÇÀÌ ÀÖ´Ù. ÀÌÀü ¹öÀüÀº ¾à°£ÀÇ ¹®Á¦°¡ ÀÖÀ¸¹Ç·Î ³ª´Â ÀÌ·¯ÇÑ ¿ä±¸ Á¶°ÇÀ» *¾î·µç* ÃæÁ·½ÃÅ°±â¸¦ °­·ÂÈ÷ Ãæ°íÇÑ´Ù. * MS-DOS 5.0 ȤÀº »óÀ§ ¹öÀü * MS-Windows 3.1 ȤÀº »óÀ§ ¹öÀü * ¼Ë´Ù¿î½Ã ÆÄÀÏÀ» ½ÇÇàÇÒ °ÍÀ» ¾Ë¸®´Â shutdown/init (SysVinit-2.50 ´Â À̸¦ ÇÒ¼ö ÀÖ°í, ¿¹¸¦ µé¾î SysVinit-2.50´Â /pub/Linux/system/Daemons¿¡ ÀÖ´Â sunsite.unc.edu·ÎºÎÅÍ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÇöÀç °ÅÀÇ ¸ðµç ¹èÆ÷º»ÀÌ ÀÌ ÆÐÅ°Áö¸¦ ÀÌ¿ëÇÑ´Ù. 3. ÀýÂ÷ o µµ½º·Î ºÎÆÃ. size=¿øÇÏ´Â ¸¸Å­ÀÇ swap°ø°£À¸·Î µµ½º ÆÄƼ¼ÇÀ» »ý¼º (FDISK ÀÌ¿ë). "LABEL X:" ȤÀº "COPY FOO X:DUMMY.DAT" °°Àº ¸í·É¾î¿¡¼­ X·Î Ç¥½ÃµÈ ºÎºÐÀ» µå¶óÀÌºê ¹®ÀÚ·Î ÇÒ´ç ¹ÞÀ»°ÍÀÌ´Ù. o µµ½ºÀÇ Æ÷¸Ë ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ÆÄƼ¼ÇÀ» Æ÷¸ËÇÑ´Ù. FORMAT X: o µµ½ºÀÇ LABEL¸í·ÉÀ» ÀÌ¿ëÇÏ¿© ÀÌ ÆÄƼ¼ÇÀÇ volume labelÀ» SWAP SPACE·Î ¼³Á¤Ç϶ó. DIR¸í·ÉÀ¸·Î À̸¦ È®ÀÎÇ϶ó. ºÎµð º°µµÀÇ ´Ü°è·Î¼­ À̸¦ Çϵµ·Ï ÇÏ¿©¶ó. ¸î¸î FORMATÀÇ ¹öÀüÀº ºÎÆ®¼½ÅÍ¿¡ volume labelÀ» ³ÖÁö ¸øÇÒÁöµµ ¸ð¸¥´Ù. [°æ°í: ¸î¸î »ç¶÷µéÀº volume labelÀÌ ·çÆ® µð·ºÅ丮¿¡ ÀúÀåµÈ´Ù°í ¸»Ç϶ó°í ÇÕ´Ï´Ù. ¸Â´Â ¸»ÀÌÁö¸¸, ÃÖ¼ÒÇÑ µµ½º 5.0ÀÌÈķδ boot sector¿¡ ¾²¿©Áý´Ï´Ù. LABEL X: DIR X: o À©µµ¿ì¸¦ ½ÃÀÛÇÑ´Ù. Á¦¾îÆÇÀ¸·Î °¡¼­ 386 Enhanced¸¦ ¼±ÅÃÇÑÈÄ °¡»ó¸Þ¸ð¸®¸¦ ¼±ÅÃÇÏ°í drive X:¿¡ ÃÖ´ë Å©±âÀÇ (À©µµ¿ì°¡ ÃÖ´ë Å©±â¸¦ ¾Ë·Á ÁÙ °ÍÀÌ´Ù.) À©µµ¿ìÀÇ ¿µ±¸ ½º¿ÒÈ­ÀÏÀ» »ý¼ºÇ϶ó. À©µµ¿ì°¡ Áö³ªÄ¡°Ô Å« ÆÄÀÏÀº »ç¿ëÇÒ¼ö ¾ø´Ù°í ºÒÆòÇÒÁöµµ ¸ð¸¥´Ù. o À©µµ¿ì¸¦ ºüÁ®³ª°£´Ù. o ¸®´ª½º·Î ºÎÆÃÇÑÈÄ ·çÆ®·Î ·Î±×ÀÎÇÑ´Ù. o ÆÄƼ¼ÇÀÇ À̸§°ú ºí·ÏÀÇ Å©±â¸¦ ã±âÀ§Çؼ­ fdisk¸í·É¾î¸¦ ÀÌ¿ëÇÑ´Ù. /dev/winswapÀ¸·ÎºÎÅÍ ÀÌ ÆÄƼ¼Ç¿¡ symbolic link¸¦ »ý¼ºÇÑ´Ù. ¸¸¾à ÆÄƼ¼ÇÀÌ hda7ÀÌ¸é ´ÙÀ½À» typeÇ϶ó. ln -s /dev/hda7 /dev/winswap [¼ø¼öÇϵµ·Ï ÁÖÀÇ: ºÎµð symlink¸¦ ÀÌ¿ëÇ϶ó. ÀÌ ÆÄƼ¼ÇÀÇ À̸§Àº ¸î¸î ¼³Á¤ ÆÄÀÏ·Î °¥°ÍÀÌ°í, ºÒÀÏÄ¡´Â Ä¡¸íÀûÀϼö ÀÖ´Ù. o ´ÙÀ½Àº ÆÄƼ¼ÇÀ» ºÐ¼®ÇÑ ±×¸®°í ¸î°¡Áö Ưº°ÇÑ Á¤º¸·ÎºÎÅÍ ¾ò¾îÁø uuencodeµÈ binaryÀÌ´Ù. ´ÙÀ½ ÆÄÀÏÀ» uudecodeÇÏ°í gunzipÇÏ°í ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇ϶ó. msinfo /dev/winswap begin 755 msinfo.gz "Total special sectors" ¶ó°í ÇÏ´Â ºÎºÐÀÇ ¼ýÀÚ¸¦ ±â·ÏÇصΰí, volume labelÀÌ SWAP SPACEÀÎÁö °ËÁõÇ϶ó. ¸¸¾à ±×·¸Áö ¾ÊÀ¸¸é µµ½º·Î ÀçºÎÆÃÇÏ°í LABEL ¸í·ÉÀ» ´Ù½Ã ½ÇÇà½ÃÄѶó. ¸¸¾à ¿©ÀüÈ÷ ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù¸é ´ç½ÅÀÌ »ç¿ëÁßÀÎ µµ½ºÀÇ ¹öÀü¿¡ ´ëÇØ ³ª¿¡°Ô ¾Ë·ÁÁÖ¸é, ´ç½ÅÀ» µ½µµ·Ï ³ë·ÂÇÒ °ÍÀÌ´Ù. o [¼±Åà °úÁ¤[ À©µµ¿ì´Â ¶§¶§·Î ÀÌ ÆÄƼ¼Ç¿¡ ¾à°£ÀÇ °ø°£À» ³²±æÁöµµ ¸ð¸¥´Ù. ÀÌ °ø°£À» »ç¿ëÇÏ·Á ÇÏÁö ¸¶¶ó. ¿Ö³Ä¸é ´ç½ÅÀÌ ¸®´ª½º¸¦ ½ÇÇàÇÒ ¶§ ¾ðÁ¦µç Áö¿öÁú¼öµµ ÀÖ´Ù. ¸¸¾à ±×°ÍÀ» °©Àڱ⠻ç¿ëÇÏ´Â °Í (±×¸®°í data¸¦ ÀÒ´Â °Í) À» ¸·À¸·Á¸é, ´ç½ÅÀº ´ÙÀ½ ¸í·É¾î¸¦ ÀÌ¿ëÇÏ¿© °ø°£À» ä¿ì´Â dummy fileÀ» ¸¸µé¾î¾ß ÇÑ´Ù: mkdir /mnt mount -t msdos /dev/winswap /mnt dd if=/dev/zero of=/mnt/dummy.fil umount /mnt dd¸í·É¾î´Â ³²Àº ¿ë·®ÀÌ ¾ø´Ù°í ¾Ë¸± °ÍÀÌ´Ù. ÀÌ°ÍÀÌ ¹Ù·Î ¿ì¸®°¡ ¿øÇÏ´Â °ÍÀÌ´Ù. o ¼Ë´Ù¿î ÆÄÀÏÀÇ À̸§À» È®ÀÎÇ϶ó. SysVinit¿¡¼­ ÀÌ°ÍÀº /etc/inittabÀÇ ´ÙÀ½ ¶óÀο¡ ³ª¿­µÇ´Â ÆÄÀÏÀÌ´Ù. ¸¸¾à ±×°ÍÀÌ ¾øÀ¸¸é µ¡ºÙ¿©¶ó. # Runlevel 0 means shut down the system l0:0:wait:/etc/brc ÀÌ ÆÄÀÏÀÇ ³ª¸ÓÁö ºÎºÐ¿¡¼­ ÆÄÀÏÀ̸§ÀÌ /etc/brc¿´´Ù°í °¡Á¤ÇÒ °ÍÀÌ´Ù. o ´ÙÀ½À» ŸÀÌÇÁÇ϶ó. dd if=/dev/winswap bs=512 count=XXX | gzip -9 > /etc/winswap.gz ^^^ ... XXX¸¦ "Total special sectors" ¼ýÀÚ·Î ´ëüÇ϶ó. o ´ÙÀ½ÀÇ /etc/rcÆÄÀÏÀ» codeÀÇ ´ÙÀ½ ºÎºÐ¿¡ µ¡ºÙÀÌ°í,( init°¡ ±×°ÍÀ» È£ÃâÇÏ°Ç°£¿¡), "swapon -a" ¸í·É¾î ¾ÕÀ» Á¤Á¤Ç϶ó. (¸¸¾à ±×·¯ÇÑ ¸í·É¾î°¡ ¾øÀ¸¸é ¾Æ¹« mount ¸í·É¾î ¾ÕÀ» Á¤Á¤Ç϶ó.) ¸¸¾à /etc/rc.d µð·ºÅ丮°¡ ÀÖÀ¸¸é, ¿©±â¿¡ ³Ö±â¸¦ ¿øÇÏ´Â ÆÄÀÏÀº /etc/rc.d/rc.S ȤÀº /etc/rc.d/rc/boot·Î È£ÃâµÇ¾î¾ß ÇÑ´Ù. ¸¸¾à swaponÀÌ /etc¿¡ ÀÖÀ¸¸é /sbin/swaponÀ» /etc/swaponÀ¸·Î ´ëüÇ϶ó. ¸¸¾à ±×°ÍÀÌ /bin¿¡ ÀÖÀ¸¸é /bin/swaponÀ¸·Î ´ëüÇ϶ó. mkswap¿¡ ´ëÇؼ­µµ ¶È°°ÀÌ Ç϶ó. XXXXX¸¦ fdisk¿¡ ÁÖ¾îÁø´ë·Î ºí·ÏÀÇ ½ÇÁ¦ ÆÄƼ¼Ç Å©±â·Î ´ëüÇ϶ó. ___________________________________________________________________ ---[BEGIN CODE SEGMENT]--- # # ½º¿Ò °ø°£À» °ËÁõÇÏ°í ÃʱâÈ­ # echo -n 'Verifying swap space... ' if [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=10 skip=4086`" \ = 'SWAP-SPACE' ]; then echo 'Linux signature found' /sbin/swapon /dev/winswap elif [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=11 skip=43`" \ = 'SWAP SPACE ' ]; then echo 'DOS signature found' /sbin/mkswap /dev/winswap XXXXX /sbin/swapon /dev/winswap else echo 'No signature found' echo 'ERROR: Will not swap' fi ---[END CODE SEGMENT]--- ___________________________________________________________________ o ´ÙÀ½ÀÇ Äڵ带 /etc/brcÆÄÀÏ¿¡ µ¡ºÙ¿©¶ó.(/etc/rc.dµð·ºÅ丮°¡ ÀÖÀ¸¸é /etc/rc.d/rc.0 ȤÀº /etc/rc.d/rc.halt°¡ È£ÃâµÇµç°£¿¡); ½º¿ÒÀÌ ÇÊ¿äÇÑ ¾î¶² ¸í·É¾î µÚ¿¡ ÀÌ°ÍÀ» ³Ö¾î¶ó. ___________________________________________________________________ ---[BEGIN CODE SEGMENT]--- # # Terminate swapping and restore DOS/Windows swap info # /sbin/swapoff /dev/winswap if [ "`/bin/dd 2>/dev/null if=/dev/winswap bs=1 count=10 skip=4086`" \ = 'SWAP-SPACE' ]; then echo 'Restoring DOS/Windows swap info' /bin/zcat /etc/winswap.gz > /dev/winswap else echo 'ERROR: /dev/winswap lacks swap signature, skipping restore' fi ---[END CODE SEGMENT]--- ___________________________________________________________________ o ¸®´ª½º¸¦ ÀçºÎÆÃÇ϶ó. ´ç½ÅÀº Áö±Ý »õ·Î¿î ½º¿Ò ÀåÄ¡¿¡ ½º¿ÒÀ» ÇÏ°í ÀÖÀ» °ÍÀÌ´Ù. 4. ¸î°¡Áö ÁÖÀÇ »çÇ× o /dev/winswapÀ» /etc/fstabÈ­ÀÏ¿¡ µ¡ºÙÀÏ ÇÊ¿ä´Â ¾ø´Ù. »ç½Ç, ¾Æ¸¶ ±×·¸°Ô ÇÏ´Â °ÍÀÌ Çö¸íÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.(ÁÖ¼®À¸·Î °¡´ÉÇÑ °ÍÀº Á¦¿ÜÇÏ°í) o ¸¸¾à ¸®´ª½º sessionÀÌ ¸Á°¡Áö¸é ȤÀº /etc/brc¸¦ ½ÇÇàÇÏÁö ¾Ê°í ³¡³»¸é, windows¿¡¼­ ½º¿ÍÇÎ(swapping)ÀÌ ÀÛµ¿Çϱ⿡ ¾Õ¼­ ¸®´ª½º¸¦ ÀçºÎÆÃÇÏ°í ³¡³»´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. FORMAT X: ¶ÇÇÑ °¡´ÉÇÏ°í, À©µµ¿ìÁî ½º¿ÒÈ­ÀÏÀ» ´Ù½Ã ¸¸µå´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ÀÌ·¯ÇÑ ¶§¿¡ À¯ÀÏÇÑ ¹æ¹ýÀº µµ½ºÀÇ AUTOEXEC.BAT ÆÄÀÏ¿¡¼­ /etc/brc¿Í µ¿ÀÏÇÑ ¸í·É¾î¸¦ ³Ö´Â °ÍÀÌ´Ù. ºÒÇàÈ÷µµ ³ª´Â µµ½º¿¡¼­ ±×·¸°Ô ÇÏ´Â ¹ýÀº ¸ð¸¥´Ù. o ¸¸¾à µµ½ºÀÇ FDISK°¡ "logical DOS drive"·Î¼­ ÆÄƼ¼ÇÀ» ¾Ë¸°´Ù¸é ±×°ÍÀº 5(/dev/hda5) ȤÀº ±× ÀÌ»óÀÌ µÉ °ÍÀÌ´Ù. 4ȤÀº ±× ÀÌÇÏÀÇ ¼ö¸¦ °®´Â "extended"¶ó°í À̸§ ºÙ¿©Áö´Â ÆÄƼ¼ÇÀÌ *¾Æ´Ï´Ù*. ¸¸¾à ¸®´ª½ºÀÇ fdisk°¡ logical partitionÀ» Ç¥½ÃÇÏÁö ¾ÊÀ¸¸é ´ç½ÅÀº ¸®´ª½ºÀÇ ±úÁø fdisk¸¦ °¡Áö°í ÀÖ´Â °ÍÀÌ´Ù. (¿¹¸¦µé¾î, ½½·¢¿þ¾î 2.2´Â ±úÁø fdisk¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù.) ¸¸¾à ´ç½ÅÀÌ ±×·¯ÇÑ ¹èÆ÷º»À» °¡Áö°í ÀÖÀ¸¸é "cfdisk"·Î ½ÃµµÇÒ¼öµµ ÀÖ°í ȤÀº Á¦´ë·Î ÀÛµ¿ÇÏ´Â fdisk¸¦ ¾ò¾î¾ß¸¸ ÇÑ´Ù. o ¸¸¾à msinfo¸¦ ½ÇÇàÇÒ ¶§ floating point exceptionÀÌ ÀÖÀ¸¸é ´ç½ÅÀº °ÅÀÇ À߸øµÈ ÆÄƼ¼Ç¿¡¼­ ½ÇÇàÇÏ´Â °ÍÀÌ´Ù. À§ÀÇ ÁÖÀÇ »çÇ×À» Àß º¸µµ·Ï Ç϶ó. o ºÎµð ´ç½ÅÀÌ ¿Ã¹Ù¸£°Ô ½ºÅ©¸³Æ®¸¦ º¹»çÇÑ°ÍÀ» È®ÀÎÇÏ°í ¶Ç ÀçÈ®ÀÎÇÏÁö ¾Ê¾Ò´Ù¸é ³ª¿¡°Ô ¸ÞÀÏÀ» º¸³»Áö ¸»¶ó. ÀÌ ¹Ì´ÏÇÏ¿ìÅõ¿¡¼­ ¾Ë·ÁÁø Àý¹Ý ÀÌ»óÀÇ ¹®Á¦´Â ½ºÅ©¸³Æ®¸¦ º¹»çÇÒ ¶§ ¿ÀÀÚ¶§¹®À̾ú´Ù. (µÉ ¼ö ÀÖÀ¸¸é cut-and-paste¸¦ ÀÌ¿ëÇ϶ó.)