#!/bin/bash # ramdisk.sh # "ramdisk" ¶õ ½Ã½ºÅÛÀÇ RAM ÀÇ ÀÏÁ¤ ºÎºÐ(segment)À» #+ ÆÄÀϽýºÅÛó·³ ¾²´Â °ÍÀ» ¸»ÇÕ´Ï´Ù. # ·¥µð½ºÅ©ÀÇ ÀåÁ¡Àº Àаí/¾²±â°¡ ¾ÆÁÖ ºü¸£´Ù´Âµ¥ ÀÖ½À´Ï´Ù. # ´ÜÁ¡: Èֹ߼ºÀÌ Àֱ⠶§¹®¿¡ ½Ã½ºÅÛÀÌ ¸®ºÎÆ®µÇ°Å³ª ²¨Áö¸é ±× ³»¿ëÀ» ÀÒ¾î¹ö¸³´Ï´Ù. # ·¥µð½ºÅ©·Î ÇÒ´çÇÑ ¸¸ÅÀÇ ¸Þ¸ð¸®¸¦ ¸ø ¾²°Ô µË´Ï´Ù. # # ·¥µð½ºÅ©°¡ ¹¹°¡ ÁÁÀ»±î¿ä? # Å×À̺íÀ̳ª »çÀüó·³ ¾ÆÁÖ Å« µ¥ÀÌŸ¸¦ ·¥µð½ºÅ©¿¡ ¿Ã·Á ³õÀ¸¸é #+ µð½ºÅ© Á¢±Ù ¼Óµµº¸´Ù ¸Þ¸ð¸® Á¢±Ù ¼Óµµ°¡ ÈξÀ ºü¸£±â ¶§¹®¿¡ µ¥ÀÌŸ Ž»ö ¼Óµµ°¡ »¡¶óÁý´Ï´Ù. E_NON_ROOT_USER=70 # ·çÆ®·Î ½ÇÇà. ROOTUSER_NAME=root MOUNTPT=/mnt/ramdisk SIZE=2000 # 2K ºí·°(ÇÊ¿ä¿¡ µû¶ó ¼öÁ¤) BLOCKSIZE=1024 # 1K (1024 byte) ºí·° Å©±â DEVICE=/dev/ram0 # ù¹ø° ·¥ µð¹ÙÀ̽º username=`id -nu` if [ "$username" != "$ROOTUSER_NAME" ] then echo "\"`basename $0`\" ´Â ·çÆ®·Î ½ÇÇà½ÃÄÑ¾ß µË´Ï´Ù." exit $E_NON_ROOT_USER fi if [ ! -d "$MOUNTPT" ] # ¸¶¿îÆ® Æ÷ÀÎÆ®°¡ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇؼ then #+ ÀÌ ½ºÅ©¸³Æ®¸¦ ¿©·¯¹ø ½ÇÇà½ÃÄѵµ ¿¡·¯°¡ ³ªÁö ¾Êµµ·Ï ÇÔ. mkdir $MOUNTPT fi dd if=/dev/zero of=$DEVICE count=$SIZE bs=$BLOCKSIZE # ·¥ µð¹ÙÀ̽º ÃʱâÈ(zero out). mke2fs $DEVICE # ·¥ µð½ºÅ©¿¡ ext2 ÆÄÀϽýºÅÛÀ» ¸¸µé°í, mount $DEVICE $MOUNTPT # ¸¶¿îÆ®. chmod 777 $MOUNTPT # ÀÏ¹Ý »ç¿ëÀÚµµ Á¢±Ù °¡´ÉÇÏ°Ô. # ÇÏÁö¸¸ ¾ð¸¶¿îÆ®´Â ·çÆ®¸¸. echo "ÀÌÁ¦ \"$MOUNTPT\" ¸¦ ¾µ ¼ö ÀÖ½À´Ï´Ù." # ÀÌÁ¦ºÎÅÍ´Â ÀϹݻç¿ëÀÚ±îÁöµµ ·¥µð½ºÅ©¿¡ ÆÄÀÏÀ» ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. # ÁÖÀÇÇÒ Á¡Àº ·¥µð½ºÅ©°¡ Èֹ߼ºÀ» °®±â ¶§¹®¿¡ ¸®ºÎÆ®³ª Àü¿øÀÌ ²¨Áú ¶§¿¡´Â #+ ±× ³»¿ëÀÌ ¾ø¾îÁý´Ï´Ù. # ÀúÀåÇÏ°í ½ÍÀº °ÍÀÌ ÀÖ´Ù¸é ·¥µð½ºÅ©°¡ ¾Æ´Ñ ÀÏ¹Ý µð·ºÅ丮·Î º¹»çÇؼ ¾²¸é µË´Ï´Ù. # ¸®ºÎÆ®ÈÄ¿¡ ·¥µð½ºÅ©¸¦ ´Ù½Ã ¼Â¾÷ÇÏ°í ½Í´Ù¸é ÀÌ ½ºÅ©¸³Æ®¸¦ ½ÇÇà½ÃÅ°¸é µË´Ï´Ù. # /mnt/ramdisk ¸¦ ÀÌ ½ºÅ©¸³Æ®¸¦ ÅëÇÏÁö ¾Ê°í #+ ´Ù¸¥ ¹æ¹ýÀ¸·Î ´Ù½Ã ¸¶¿îÆ®ÇÏ·Á°í ÇÑ´Ù¸é Á¦´ë·Î µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. exit 0