...¸®´ª½º¸¦ Á» ´õ Àç¹ÌÀÖ°Ô! Áö¿öÁø ÆÄÀÏÀ» »ì¸° °æÇè´ã
By C.E.C. Artime and J.A. Baro
Çѱ۹ø¿ª ÀüÁ¤È£
ÀÌ ±ÛÀº Çѱ۹ø¿ªÆÇÀÔ´Ï´Ù. ¿ø¹®Àº ¿©±â¿¡¼ º¼ ¼ö ÀÖ½À´Ï´Ù.
¿ì¸®´Â ext2 ÆÄÀϽýºÅÛ¿¡¼ ºÎÁÖÀÇÇÏ°Ô Áö¿öÁø ÆÄÀÏÀ» »ì¸° ½Ãµµ¸¦ Àû¾ú´Ù. ÀÌ·± ÀÏÀº ¸Å¿ì ²ûÂïÇϱ⶧¹®¿¡ ¿©·¯ºÐÀº °°Àº ½Ç¼ö¸¦ ÇÏÁö¸»±æ ´çºÎÇÑ´Ù. ¿ì¸®°¡ À§±âµ¿¾È ¹è¿î °ÍµéÀ» º¸¿©ÁÖ±âÀ§ÇØ ¿ì¸®´Â »óȲ Àüü¸¦ À̾߱âÇÏ·Á ÇÑ´Ù.
ÀüÁÖ: Àç³ÀÌ °¡Á®¿Â
ȯ°æ
Çϵå¿þ¾î
Fish¿Í BellÀ̶ó´Â µÎ ÄÄÇ»ÅÍ. Fish´Â Sun E250À̰í, BellÀº ÆæÆ¼¾ö3 (450 MHz)ÀÌ´Ù. µÑ ¸ðµÎ °°Àº ÀÌ´õ³Ý ³×Æ®¿÷ ¾È¿¡ ÀÖ´Ù.
¼ÒÇÁÆ®¿þ¾î
BellÀº 2.2r7¿¡¼ ¹®Á¦¾øÀÌ ¾÷±×·¹À̵åÇÑ Debian GNU/Linux 3.0r0À» ½ÇÇàÇÑ´Ù. Ä¿³ÎÀº Linux 2.4.18 ÀÌ´Ù.
Fishµµ Sparc64¿ë Debian 3.0r0 À» ½ÇÇàÇÑ´Ù. ÃÖ±Ù 2.2r7¿¡¼ ¾÷±×·¹À̵åÇÏ°í º¸´Ï (root°¡ ¾Æ´Ñ) ÀÏ¹Ý »ç¿ëÀÚ°¡ XFree¸¦ »ç¿ëÇÒ ¼ö ¾ø´Â ¹®Á¦°¡ ¹ß»ýÇß´Ù. Ä¿³ÎÀº Linux 2.4.18-SMP ÀÌ´Ù.
¸ðµç ÆÄÀϽýºÅÛÀº ext2ÀÌ´Ù.
¾î¶»°Ô ¸ÁÃÆ³ª
FishÀÇ Xfree¸¦ root´Â »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ ÀÏ¹Ý »ç¿ëÀÚ´Â »ç¿ëÇÒ ¼ö ¾ø¾ú´Ù.
ÁüÀÛ: ±ÇÇÑÀ̳ª »ç¿ëÀÚ ¼³Á¤ÆÄÀÏ¿¡ ¹®Á¦°¡ ÀÖ´Ù.
ÇØ°áÃ¥: »õ·Î¿î »ç¿ëÀÚ¸¦ Ãß°¡ÇÏ¿© Ȩµð·ºÅ丮·Î rootÀÇ (¸¶Ä§Ç¥·Î ½ÃÀÛÇÏ´Â) ¼³Á¤ÆÄÀÏÀ» º¹»çÇÑ´Ù:
root@fish# adduser judas
Enter new UNIX password:
Retype new UNIX password:
root@fish# cp --recursive /root/.[a-zA-Z]* /home/judas
root@fish# chown --recursive judas:judas /home/judas/.*
[cp¿Í chownÀÇ Á¤±ÔÇ¥Çö½Ä ¾Æ±Ô¸ÕÆ® »çÀÌÀÇ Â÷À̸¦ ¹ß°ßÇߴ°¡?]
¸¹Àº ½Ãµµ¿Í ½Ç¼ö ³¡¿¡ X ¹®Á¦¸¦ ÇØ°áÇß´Ù. ÀÌÁ¦ »ç¿ëÀÚ¸¦ Á¦°ÅÇÑ´Ù.
°úÁ¤À» Á¶±Ý ºü¸£°Ô ÇÏ·Á°í ½ÃµµÇÏ´Ù°¡ manpage¿¡¼ ¸Å·ÂÀûÀÎ ¿É¼ÇÀ» ¹ß°ßÇß´Ù:
root@fish# deluser --remove-all-files judas
Â÷Â÷Â÷! Àç³ÀÌ ½ÃÀÛÇß´Ù! ºÒÇàÈ÷µµ ÀÌ ¿É¼ÇÀº deluser°¡ µð½ºÅ© Àüü¿¡¼ judas°¡ ¼ÒÀ¯ÇÑ ÆÄÀÏÀ» ¸ðµÎ Áö¿ì°Ô ¸¸µé¾ú´Ù!
/homeÀÌ ´Ù »ç¶óÁ³´Ù.
À̺ÐÀÌ Áö³ÈÄ ¿ì¸®´Â ÇØ´ç ÀåÄ¡¸¦ (/dev/sda8) ¾ð¸¶¿îÆ®(umount)Çß´Ù.
¹é¾÷
ù¹øÂ° ½Ãµµ
¸ÕÀú ºÒ¿îÇÑ ÀåÄ¡¿¡ ±â·ÏµÈ ¹ÙÀÌÆ®¸¦ ±×´ë·Î º¹»çÇÏ·Á°í Çß´Ù.
Fish¿¡ °ø°£ÀÌ ¾ø¾î¼, BellÀÇ Çϵåµð½ºÅ©¿¡ º¹»çÇß´Ù:
root@fish# ftp bell
ftp> put '|dd if=/dev/sda8' fishbackup
»ç½Ç ÀÌ °úÁ¤Àº ³×Æ®¿÷¿¡ ¹®Á¦°¡ ÀÖ¾î¼ ÀÌ·¸°Ô ½±Áö ¾Ê¾Ò´Ù: Å« ÆÄÀÏÀ» Àü¼ÛÇϸé ÇÑÂüÀÖ´Ù ²÷¾îÁ³´Ù. ÆÄÀÏÀ» ³ª´²¾ß Çß´Ù. ÆÄƼ¼Ç /dev/sda8ÀÇ Å©±â´Â 10142 MiBÀÌ´Ù.
GNU shellutilsÀÇ factor µµ±¸¸¦ »ç¿ëÇß´Ù:
root@fish# factor 10142
10142: 2 11 461
±×·¡¼ ÇÑ Á¶°¢¿¡ ÀûÇÕÇÑ Å©±â¸¦ ¾Ë ¼ö ÀÖ´Ù.
¾ÈÀüÇÑ Àü¼Û
´ÙÀ½À¸·Î ¿ì¸®´Â FTP´ë½Å OpenSSLÀ» »ç¿ëÇß´Ù.
¹èÄ¡(batch)¸ðµå·Î »ç¿ëÇϱâÀ§ÇØ ¸ÕÀú ¾ÏÈ£¸¦ ±³È¯Çß´Ù:
root@fish# ssh-keygen
artime@bell$ ssh-keygen
root@fish# scp /root/.ssh/identity.pub artime@bell:/home/artime/.ssh/authorized.keys
root@fish# scp artime@bell:~/.ssh/identity.pub ~/.ssh/authorized.keys
´ÙÀ½ ½ºÅ©¸³Æ®¸¦ Fish¿¡¼ ½ÇÇàÇß´Ù:
#!/bin/sh
for i in $(seq 0 460)
do
dd if=/dev/sda8 bs=$((2*11*1024)) skip=$i of=fula
scp --batch fula artime@bell:~/fiback.$i
done
Bell¿¡¼ Á¶°¢µéÀ» ºÙ¿´´Ù:
for i in $(seq 0 460)
do cat fiback.$i >> fiback.raw
done
ÀÌ °úÁ¤À» Fish¿¡¼ ´ÙÀ½°ú °°ÀÌ Çѹø¿¡ ÇÒ ¼öµµ ÀÖ´Ù:
#!/bin/sh
for i in $(seq 0 460)
do
dd if=/dev/sda8 bs=$((2*11*1024)) skip=$i | ssh artime@bell "cat >> fiback.raw"
done
ÀÒ¾î¹ö¸° ÀÚ·á ã±â
¿ì¸®´Â Aaron CraneÀÌ ¾´ Linux Ext2fs undeletion mini-HOWTO¿Í Tomas EricssonÀÌ ¾´ Ext2fs undeletion of directory structures mini-HOWTO, Tom Pycke°¡ ¸¸µç recover ÇÁ·Î±×·¥°ú debugfs¸¦ i386¿¡¼ »ç¿ëÇϱâÀ§ÇÑ Torsten WernerÀÇ ÆÐÄ¡¿¡ ¸Å´Þ·È´Ù.
°ÔÀ¸¸¥ ½Ãµµ
Recover´Â ÆÄÀÏÀ» Çϳª¾¿ »ì·Á³»´Â µµ±¸´Ù. ¿ì¸®´Â ÆÄÀÏÀ» °©Àڱ⠼ö¹é°³ ÀÒ¾î¹ö·È´Ù. ±×·¡¼ ÀÌ µµ±¸´Â ÁÁÀº ¼±ÅÃÀÌ ¾Æ´Ñ °Í°°´Ù. °¡Àå Á÷Á¢ÀûÀÎ ¹æ¹ýÀº WernerÀÇ debugfs ÆÐÄ¡¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ¿ì¸®´Â ¼Õ»óµÈ ÆÄÀϽýºÅÛÀÇ º¹»çº»À» ÀÌ¹Ì i386¿¡ ÀúÀåÇß´Ù. ±×·¡¼ ¿ì¸®´Â twerner.debian.org¿¡ ÀÖ´Â ½ÇÇàÆÄÀÏÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù:
artime@bell$ ./debugfs fishback.raw
debugfs> restore
debugfs> quit
artime@bell$ mkdir mnt
artime@bell$ mount -t ext2 -o loop fishback.raw mnt
artime@bell$ ls -l mnt
¿ì¸®´Â ÀÌ·¸°Ô ÆÄÀÏÀ» Çϳªµµ ãÁö¸øÇß´Ù! ¾Æ¸¶µµ Á» ´Ê°Ô /dev/sda8À» ¾ð¸¶¿îÆ®ÇÑ °Í°°´Ù. T. Werner°¡ ȨÆäÀÌÁö¿¡ ÁöÀûÇϵíÀÌ ±×°¡ ¸¸µç µµ±¸´Â ¾ÆÁ÷ À̸§ÀÌ ÀÖ´Â ÆÄÀϸ¸À» »ì¸± ¼ö ÀÖ´Ù.
Àо °Íµé
CraneÀÌ ¾´ undeletion howto
The Linux Documentation Project¿¡¼ ¿ì¸®°¡ ãÀº ÀÌ ¹®¼´Â ÀÒ¾î¹ö¸° ÆÄÀÏÀÇ inode¸¦ ã°í debugfsÀÇ dump ¸í·ÉÀ» »ç¿ëÇÏ¿© ÆÄÀÏÀ» »ì¸®´Â ¹æ¹ýÀ» ¾Ë·ÁÁÖ¾ú´Ù. ±×·¡¼ °°Àº µð·ºÅ丮ÀÇ ¸¹Àº ÆÄÀÏÀ» »ì¸± ¼ö ÀÖ¾ú´Ù. ±×·¯³ª À̵éÀº Áö¿öÁø Àüü ÆÄÀϵéÀÇ ÀÛÀº ÀϺο¡ ºÒ°úÇÏ´Ù. ÀÌ¹Ì ¸»ÇßµíÀÌ ÀÌ HOWTOÀÇ ÆÄÀÏÀ» Çϳª¾¿ »ì¸®´Â ¹æ¹ýÀº ¿ì¸®¿¡°Ô ÀûÇÕÇÏÁö¾Ê´Ù.
EricssonÀÌ ¾´ directory undeletion howto
¿©±â¼ ¿ì¸®´Â µð·ºÅ丮¾È¿¡¼ Áö¿öÁø ÆÄÀϵéÀ» ±¸º°ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Ò´Ù. ¿ì¸®´Â Áö½Ã¸¦ µû¶ú´Ù.
7Àý¿¡ ÀÖ´Â ½ºÅ©¸³Æ®¸¦ ¿ì¸®ÀÇ debugfs¿¡ ¸Âµµ·Ï Á¶±Ý ¼öÁ¤Çß´Ù
#!/bin/sh
awk '{ print "mi <" $1 ">\n"\
"\n\n\n\n\n\n\n"\
"0\n"\
"1\n"\
"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" }'
¾î·µç ¿ì¸®´Â µð·ºÅ丮¸íÀ» ãÁö¸øÇؼ 8Àý·Î ³Ñ¾î°¡Áö ¸øÇß´Ù. ±×·¡¼ ´Ù¸¥ ¹æ¹ýÀ» ã¾Æ¾ß Çß´Ù.
Manpage
¸¶Áö¸· ½Ãµµ´Â
$ man debugfs
¿©±â¼ ¿ì¸®´Â howto¿¡ ¾ð±ÞµÇÁö¾ÊÀº rdump ¸í·É¾î¸¦ ã¾Ò´Ù. Ext2fs Undeletion of Directory Structures mini-HOWTO 6Àý¿¡¼ ¾òÀº lsdel.out¿¡ ±â·ÏµÈ µð·ºÅ丮 inode·Î ´ÙÀ½ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇß´Ù:
#!/bin/sh
awk '{ print "rdump <" $1 "> folders\n" }'
´ëºÎºÐÀÇ µð·ºÅ丮°¡ folders µð·ºÅ丮¿¡ º¹±¸µÇ¾ú´Ù. ±×·¯³ª À̸§ÀÌ ¾ø´Ù! ±×·¡¼ ¸¶Áö¸·À¸·Î ¿ì¸®´Â ³»¿ëÀ» º¸°í µð·ºÅ丮 200°³¿¡ »ç¿ëÀÚÀ̸§À» ºÙ¿´´Ù. ±×·¡µµ ¸î¸î ÆÄÀÏÀ», ƯÈ÷ À̸ÞÀÏ ÆÄÀÏÀ» »ì¸®Áö ¸øÇß´Ù. Á÷Á¢ ã¾Æº¸±â·Î Çß´Ù:
$ strings fishback.raw | grep -B1 -A99 "To: lisistrata" > lisistrata.mbox
°á¸»
¿ì¸®°¡ ´õ ´Ù·ç°í ½ÍÀº °Íµé.
RTFM
±×¸®°í root·Î óÀ½ºÎÅÍ Ã³À½º¸´Â ¿É¼ÇÀ» Àý´ë·Î »ç¿ëÇÏÁö¸¶¶ó.
ÀÚ±âÅ×ÀÔ
Fish¿¡´Â ÀÚ±âÅ×ÀÔÀåÄ¡°¡ ÀÖ´Ù. GNU mt¿Í tar´Â ¹é¾÷¿¡ À¯¿ëÇÑ µµ±¸´Ù. Aaron CraneÀÌ ¾´ howto¿¡´Â ÀÌ¿Í °ü·ÃÇÑ Èï¹Ì·Î¿î ¸µÅ©µéÀÌ ÀÖ´Ù.
Á¤±ÔÇ¥Çö½Ä
½© ¸í·É¾î¿¡¼ Á¤±ÔÇ¥Çö½ÄÀ» »ç¿ëÇϸé, ƯÈ÷ ¸¶Ä§Ç¥·Î ½ÃÀÛÇÏ´Â ¼³Á¤ÆÄÀϵéÀ» ´Ù·ê¶§ ¸Å¿ì À§ÇèÇÏ´Ù. ¾Æ¸¶µµ root´Â ("È®Àå"ÀÌ ¾Æ´Ñ) Á¦ÇÑµÈ Á¤±ÔÇ¥Çö½ÄÀ» Áö¿øÇÏ´Â ½©À» »ç¿ëÇØ¾ß ÇÒ °ÍÀÌ´Ù. ¿ì¸®´Â eshÀ» °í·ÁÇϰí ÀÖ´Ù.
PDA
ÀÌ ±ÛÀº ´ëºÎºÐ (Ǫ¿¡¸£Å丮ÄÚ) Gran Canaria ÇØº¯¿¡¼, Á» À¯º°³ ÀÚÀ¯¼ÒÇÁÆ®¿þ¾î PDAÀÎ Agenda VR3À» °¡Áö°í ½è´Ù.
C.E.C. ArtimeÀº 2000³âºÎÅÍ GNU ÆÒÀÌµÈ ÀÚÀ¯¼ÒÇÁÆ®¿þ¾î ¿ËÈ£ÀÚ´Ù.
J.A. BaroÀº 1996³âºÎÅÍ ¸®´ª½º¸¦ »ç¿ëÇÑ Perl ÇØÄ¿´Ù.
--------------------------------------------------------------------------------
Copyright © 2003, C.E.C. Artime and J.A. Baro. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 86 of Linux Gazette, January 2003
http://www.myscan.org/~mahajjh/paper/lg/issue86/artime.html
|
|