امروز می خواهیم در ITPRO بصورت بسیار ساده و بدون نیاز به هرگونه ابزار جانبی یک فایل حذف شده در سیستم عامل لینوکس را با استفاده از ابزار debugfs بازیابی یا recovery کنیم ، برای بازگردانی یک فایل حذف شده در سیستم عامل لینوکس مهمترین فاکتور دانستن inode number فایل مورد نظر است که در آموزش زیر این روش به شما آموزش داده شده است ، در ابتدا مشابه دستور پایین ما محتویات را بررسی می کنیم و فایلی که قرار هست حذف شود را به شما نمایش می دهیم ، در دستور زیر فایل unity.txt قرار هست از سیستم عامل حذف شود :
[root@localhost ext3]# ls -la total 24 drwxr-xr-x. 3 root root 4096 Jul 11 09:03 . drwxr-xr-x. 22 root root 3420 Jul 11 09:02 .. drwx------. 2 root root 16384 Jul 10 04:14 lost+found -rw-r--r--. 1 root root 31 Jul 11 09:03 unity.txt
دقت کنید که فایل سیستم ما برای ریکاوری در این حالت حتما باید ext3 یا بالاتر از آن باشد و سناریوی ما نیز بر اساس همین فایل سیستم قرار دارد ، با استفاده از دستور زیر شما می توانید inode number فایل unity.txt را مشاهده کنید :
[root@localhost ext3]# ls -ia unity.txt 12 unity.txt
پارامتر i در دستور بالا به شما inode number ها را نمایش می دهد که با توجه به خروجی دستور بالا در اینجا inode فایل unity.txt عدد 12 می باشد. حالا با استفاده از دستور debugfs بایستی به فایل سیستم مورد نظر متصل شویم ، در دستور پایین ما به پارتیشن اول سیستم که بصورت پیشفرض وجود دارد با استفاده از debugfs متصل می شویم و بلافاصله می توانیم وارد محیط خط فرمان debugfs شویم :
[root@localhost ext3]# debugfs /dev/sdb1 debugfs 1.42.9 (28-Dec-2013) debugfs:
حالا می توانید دستورات مربوط به debugfs را وارد کنید ، مشابه دستورات پیشفرض لینوکس شما می توانید با استفاده از دستور ls لیست فایل های موجود در این فایل سیستم را مشاهده کنید :
debugfs: ls 2 (12) . 2 (12) .. 11 (20) lost+found 12 (4052) unity.txt
همانطور که در بالا مشاهده می کنید فایل unity.txt وجود دارد و ما با استفاده از دستور rm مشابه زیر فایل مورد نظر را از سیستم حذف می کنیم و بنا به دلایلی از debugfs خارج یا quit می کنیم :
debugfs: rm unity.txt rm: Filesystem opened read/only debugfs: quit
فایل مورد نظر حذف شده است اما چرا ما quit کردیم ؟ دقت کنید که در حالت پیشفرض دستور debugfs فایل سیستم را در حالت read only به سیستم mount می کند و امکان نوشتن یا write کردن ندارد ، برای اینکه شما امکان ریکاوری و write مجدد اطلاعات داشته باشید باید از پارامتر w برای mount کردن فایل سیستم به شکل زیر استفاده کنید :
[root@localhost ext3]# debugfs -w /dev/sdb1 debugfs 1.42.9 (28-Dec-2013) debugfs:
البته پیشنهاد می شود که شما به جای استفاده از rm از دستور lsdel برای حذف کردن فایل ها استفاده کنید ، به هر حال فایل مورد نظر اگر با lsdel حذف شود به شکل زیر حذف می شود :
debugfs: lsdel Inode Owner Mode Size Blocks Time deleted 12 0 100644 31 1/ 1 Mon Jul 11 09:07:58 2016 1 deleted inodes found. debugfs: undel 12 tt.txt 12: File not found by ext2_lookup
خوب در خروجی دستور بالا که برای حذف کردن فایل مورد نظر استفاده می شود ما عدد 12 را به عنوان inode مشاهده می کنیم ، حالا کافیست با استفاده از دستور undel و آوردن شماره inode مورد نظر و همچنین اسم فایل مورد نظر جدید فایل را ریکاوری کنیم به دستور زیر دقت کنید :
debugfs: undel <12> tt.txt
حالا با استفاده از دستور ls مشاهده می کنید که فایل مورد نظر با یک اسم جدید بازیابی شده است :
debugfs: ls 2 (12) . 2 (12) .. 11 (20) lost+found 12 (4052) tt.txt
برای اینکه بتوانید به درستی از دستورات بالا استفاده کنید ، باید با لینوکس تا حد مقدماتی کار کرده باشید ، توصیه می کنم اگر می خواهید لینوکس را بصورت اصولی یاد بگیرید ، وارد دوره آموزش لینوکس اسنشیالز در این لینک شوید.
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود