오랫만에 질문 글을 올리는 것 같네요.
다름이 아니라 이번에 구매한 이마트발 디링크 공유기 dd-wrt설정 관련해서 궁금증이 있습니다.
간단히 요약하면 문제는 이렇습니다.
GUI 설정 페이지에서 설정하는 값들은 저장이 되지만, 텔넷 접속 후 쉘에서 각 데몬들의 conf파일을
변경하는 것 같은 경우에는 재부팅 후에 여지없이 설정이 초기화 됩니다.
이는 ROM에서 돌아가는 dd-wrt OS가 기본적으로 read-only 속성을 가져서 생기는 문제로 보이는데
보통 이같은 경우에 어떤 방식으로 설정 파일들을 유지하는지 알고싶습니다.
한가지 상황을 예로 설명드리자면,
proftp같은 경우, 재부팅 후 기본 경로가 [ /tmp/proftpd/users/계정명 ]으로 잡히는데,
이 경로를 공유기 usb에 붙은 외장 하드로 마운트시켜 파일 업로드시 외장하드로 저장되도록 변경해놓았습니다.
요약하면, proftp의 기본경로는 설정을 변경해도 재부팅 후에는 초기화되니, 이 경로 설정은 건드리지 않고
마운트를 이용하여 외장하드를 proftp 기본경로에 붙여놓은 걸로 일단 땜빵^^;을 해놓은 겁니다.
위의 방법을, 기동시 스크립트에 마운트 명령어를 넣어 재부팅 하여도 ftp는 사용가능하도록 해결을 보았는데,
dd-wrt처럼 ROM에 쓰기 금지된 임베디드 리눅스에서, 재부팅을 하여도 사용자가 추가로 설치한 데몬이나 설정들을
그대로 유지하며 사용하는 방법을 알지 못해 질문을 드립니다.
구글링 검색으로 알게 된 한가지 방법은
dd-wrt에 추가적으로 데몬을 설치하는 경우 / 아래에 있는 설치에 필요한 디렉토리 몇개를 외장하드로 마운트하여 설치 후
기동 스크립트에 해당 디렉토리들을 마운트하는 명령어들을 저장하여 부팅시마다 마운트되게하여 사용하는 것입니다만
이것보다 더 간단한 방법이 있을까요?
»ç¿ëÀÌ °¡´ÉÇϽʴϴÙ. Àß Àо´Ï ¹ú½á ÀÌ·¸°Ô ÇÏ°í °è½Ã³×¿ä.
dir-868lw¿¡´Â serial Nor ¸Þ¸ð¸®°¡ ¸¹¾Æ¼ ÆÄƼ¼ÇÀ» Çϳª ¸¸µå¼Åµµ µÉ °Í °°½À´Ï´Ù¸¸... ÀÌ·¸°Ô ÇÏ·Á¸é
Ä¿³ÎÀ» ÄÄÆÄÀÏÇØ¾ß °Ú³×¿ä... ÆÄƼ¼ÇÀ» º¸´Ï... ¸Õ°¡ ¸ÂÁö ¾Ê³×¿ä...
31 0 2048 mtdblock0
31 1 64 mtdblock1
31 2 64 mtdblock2
31 3 32768 mtdblock3
31 4 31231 mtdblock4
31 5 98304 mtdblock5
¾îÄÉ MTDÆÄƼ¼ÇµéÀÇ Å©±âÀÇ ÇÕÀÌ sflash ¿ë·®ÀÎ 128MByteº¸´Ù ¸¹ÀºÁö ¸ð¸£°Ú³×¿ä.^^
¸ÂÃß·Á¸é Ä¿³Î¿¡ ÆÄƼ¼Ç Á¤º¸¸¦ »õ·Î ³Ö°í ¸¸µé¾î¾ß ÇÒ °Í °°³×¿ä...
ÇöÀç·Î½á´Â ¸»¾¸ÇϽŠ°Íó·³ USB¿¡ jffs·Î ¸¶¿îÆ® ÇÏ´Â °ÍÀÌ Á¦ÀÏ ÁÁÀ» µí ÇÕ´Ï´Ù.
http://www.dd-wrt.com/wiki/index.php/Jffs#Enable_JFFS:_Create_.2Fjffs
http://www.dd-wrt.pl/phpBB2/viewtopic.php?t=268455&postdays=0&postorder=asc&start=15&sid=b1dca7b29c2f3f783e43b234624faf1d
¾È±×·¡µµ jffsÀÇ °æ¿ì dd-wrt¿É¼Ç¿¡¼ jffs2 ¼³Á¤À» ÄÑÁÖ´Ï ÇØ´ç Æú´õ´Â ÀçºÎÆÃÇصµ ¼³Á¤ÆÄÀϵéÀÌ ´Ù ³²¾ÆÀֳ׿ä.^^
ÀÚµ¿À¸·Î ÆÄƼ¼ÇÀ» »ý¼ºÇÏ¿© jffsÆú´õ¿¡ ºÙ¿©ÁÖ´Â °Í °°½À´Ï´Ù.
ÀÌ°Ô °¡´ÉÇϸé ÇØ´ç Æú´õ¿¡ startup ½ºÅ©¸³Æ®µéÀ» »ç¿ëÇÏ¿©, ÀçºÎÆà ÈÄ µ¥¸óµéÀÇ Àç¼³Á¤ÀÌ °¡´ÉÇÒ°É·Î º¸ÀÔ´Ï´Ù.
Á¤¸» ¸¹Àº µµ¿òÀÌ µÇ¾ú½À´Ï´Ù.
°¨»çµå¸®°í, ÁÁÀº ÇÏ·ç µÇ½Ã±â ¹Ù¶ø´Ï´Ù^^
ÀÏ´Ü dir-868lw¿¡ dd-wrt Æß¿þ¾î ¸ÔÀ̸é jffs2¿É¼ÇÀ» ÄÑÁÖÁö ¾Ê´Â ÀÌ»ó, usb¿ÜÀå±â±â¸¦ Á¦¿ÜÇÑ ¸ðµç µð·ºÅ丮´Â
ÀçºÎÆÃÇÏ¸é ¸ðµç°Ô ´Ù Ãʱâȵ˴ϴÙ.(GUIÀ¥ÆäÀÌÁö ¼³Á¤Àº Á¦¿ÜÇÕ´Ï´Ù. NVRAM¿¡ ¼³Á¤°ªÀ» µû·Î ÀúÀåÇϱ⿡..)
Àú¿Í°°ÀÌ transmissiondÀ̳ª proftpd, httpd¸¦ usb¿ÜÀå¿¡¼ µ¹¸®°í½ÍÀºµ¥,
ÀçºÎÆø¸ Çϸé conf¼³Á¤À» ´Ù½Ã ¸¸Á®Áà¾ß Çϱ⿡ ¿©°£ ºÒÆíÇÑ°Ô ¾Æ´ÏÁÒ.
ÀÌ °æ¿ì ÇØ°á ¹æ¹ýÀº °£´ÜÇÕ´Ï´Ù.
GUI À¥ÆäÀÌÁö¿¡¼ jffs2¿É¼ÇÀ» ÄÑÁֽøé /jffs´Â ´õÀÌ»ó Áö¿öÁöÁö ¾Ê´Â µð·ºÅ丮·Î º¯°æÀÌ µË´Ï´Ù.
±×¸®°í /jffs/etc/config °æ·Î´ë·Î µð·ºÅ丮¸¦ ¸¸µé¾îÁֽðí, ±× ¾È¿¡ <¿øÇÏ´ÂÆÄÀϸí.startup> À̶ó´Â ÆÄÀÏÀ»
¸¸µé¾îÁÖ½Ã¸é µË´Ï´Ù.
startup ÆÄÀÏ¿¡´Â °¢ µ¥¸óµé(transmission, proftp, http)µéÀÇ ÇÁ·Î¼¼½º¸¦ killÇÑ ÈÄ ´Ù½Ã ½ÇÇà½ÃÄÑÁÖ´Â
½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇØÁÖ½Ã¸é µË´Ï´Ù.
(ÀçºÎÆà ½Ã, dd-wrt¿¡¼ jffs/etc/config µð·ºÅ丮¿¡ ÀÖ´Â startupÆÄÀϵéÀ» ÀÚµ¿À¸·Î °Ë»öÇÏ¿©
½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ¿© ÁÝ´Ï´Ù. ±×¸®°í startupÆÄÀÏÀÇ ±ÇÇÑÀº ¹Ýµå½Ã 700À¸·Î ÇØÁֽñ⠹ٶø´Ï´Ù.)
ÇÑ°¡Áö ¿¹·Î proftpd¸¦ ÀçºÎÆÃÇÏ¿©µµ ¿ø·¡ ¼³Á¤ÇÑ ´ë·Î ½ÇÇàµÇµµ·Ï ÇØÁÖ´Â ½ºÅ©¸³Æ® ÆÄÀÏÀ» Àû¾îº¸°Ú½À´Ï´Ù.
#!/bin/sh
#kill any previously-running instances of proftpd
killall proftpd
sleep 5
#execute proftpd using /jffs/etc/proftpd as the configuration file.
proftpd --config /jffs/etc/proftpd/proftpd.conf
ÀÌ·± ¹æ½ÄÀ¸·Î ÀÛ¼ºÇÏ½Ã¸é µÇ¸ç, --config ¿É¼ÇµÚ¿¡ ¿øÇÏ´Â °æ·ÎÀÇ confÆÄÀÏÀ» ÁöÁ¤ÇØÁÖ½Ã¸é µË´Ï´Ù.
(ÀúÀÇ °æ¿ì /jffs/etc/proftpd/proftpd.conf¿¡ confÆÄÀÏÀ» ÀúÀåÇسù±â¿¡ Àú °æ·Î¸¦ Àû¾îÁØ°Ì´Ï´Ù.)
±×¸®°í jffs2¿É¼ÇÀ» »ç¿ëÇÏÁö ¾Ê°í dd-wrt GUI À¥ÆäÀÌÁö»ó¿¡¼ ±âµ¿½Ã ½ºÅ©¸³Æ® ½ÇÇà¿¡ usb¿ÜÀå¾È¿¡ ÀÖ´Â
jffs µð·ºÅ丮¸¦ dd-wrtÀÇ /jffs µð·ºÅ丮¿¡ ¸¶¿îÆ® ½ÃŲ ÈÄ, usb¿ÜÀå jffsµð·ºÅ丮¿¡ À§ÀÇ ÀÛ¾÷À» µ¿ÀÏÇÏ°Ô
Àû¿ëÇÏ¿©µµ »ç¿ë °¡´ÉÇÕ´Ï´Ù¸¸, Àú´Â °³ÀÎÀûÀ¸·Î jffs2¿É¼ÇÀ» »ç¿ëÇÏ´Â °ÍÀ» Ãßõµå¸³´Ï´Ù.