LINUX GAZETTE
...¸®´ª½º¸¦ Á» ´õ Àç¹ÌÀÖ°Ô!
Áö¿öÁø ÆÄÀÏÀ» »ì¸° °æÇè´ã
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À» °¡Áö°í ½è´Ù.

 

[BIO] C.E.C. ArtimeÀº 2000³âºÎÅÍ GNU ÆÒÀÌµÈ ÀÚÀ¯¼ÒÇÁÆ®¿þ¾î ¿ËÈ£ÀÚ´Ù.

[BIO] 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